Merge branch 'openwrt:master' into master
This commit is contained in:
commit
449a54e01d
159 changed files with 4202 additions and 2874 deletions
29
.github/labeler.yml
vendored
29
.github/labeler.yml
vendored
|
@ -9,54 +9,77 @@
|
|||
- "target/linux/armvirt/**"
|
||||
"target/at91":
|
||||
- "target/linux/at91/**"
|
||||
- "package/boot/at91bootstrap/**"
|
||||
- "package/boot/uboot-at91/**"
|
||||
"target/ath25":
|
||||
- "target/linux/ath25/**"
|
||||
"target/ath79":
|
||||
- "target/linux/ath79/**"
|
||||
"target/bcm27xx":
|
||||
- "target/linux/bcm27xx/**"
|
||||
- "package/kernel/bcm27xx-gpu-fw/**"
|
||||
"target/bcm47xx":
|
||||
- "target/linux/bcm47xx/**"
|
||||
"target/bcm4908":
|
||||
- "target/linux/bcm4908/**"
|
||||
- "package/boot/uboot-bcm4908/**"
|
||||
"target/bcm53xx":
|
||||
- "target/linux/bcm53xx/**"
|
||||
"target/bcm63xx":
|
||||
- "target/linux/bcm63xx/**"
|
||||
- "package/kernel/bcm63xx-cfe/**"
|
||||
- "package/boot/arm-trusted-firmware-bcm63xx/**"
|
||||
"target/bmips":
|
||||
- "target/linux/bmips/**"
|
||||
"target/gemini":
|
||||
- "target/linux/gemini/**"
|
||||
"target/imx":
|
||||
- "target/linux/imx/**"
|
||||
- "package/boot/imx-bootlets/**"
|
||||
- "package/boot/uboot-imx/**"
|
||||
"target/ipq40xx":
|
||||
- "target/linux/ipq40xx/**"
|
||||
"target/ipq806x":
|
||||
- "target/linux/ipq806x/**"
|
||||
"target/kirkwood":
|
||||
- "target/linux/kirkwood/**"
|
||||
- "package/boot/uboot-kirkwood/**"
|
||||
"target/lantiq":
|
||||
- "target/linux/lantiq/**"
|
||||
- "package/kernel/lantiq/**"
|
||||
- "package/firmware/lantiq/**"
|
||||
- "package/boot/uboot-lantiq/**"
|
||||
"target/layerscape":
|
||||
- "target/linux/layerscape/**"
|
||||
- "package/firmware/layerscape/**"
|
||||
- "package/boot/tfa-layerscape/**"
|
||||
- "package/boot/uboot-layerscape/**"
|
||||
- "package/network/utils/layerscape/**"
|
||||
"target/malta":
|
||||
- "target/linux/malta/**"
|
||||
"target/mediatek":
|
||||
- "target/linux/mediatek/**"
|
||||
- "package/boot/arm-trusted-firmware-mediatek/**"
|
||||
- "package/boot/uboot-mediatek/**"
|
||||
"target/mpc85xx":
|
||||
- "target/linux/mpc85xx/**"
|
||||
"target/mvebu":
|
||||
- "target/linux/mvebu/**"
|
||||
- "package/boot/arm-trusted-firmware-mvebu/**"
|
||||
- "package/boot/uboot-mvebu/**"
|
||||
"target/mxs":
|
||||
- "target/linux/mxs/**"
|
||||
- "package/boot/uboot-mxs/**"
|
||||
"target/octeon":
|
||||
- "target/linux/octeon/**"
|
||||
"target/octeontx":
|
||||
- "target/linux/octeontx/**"
|
||||
"target/omap":
|
||||
- "target/linux/omap/**"
|
||||
- "package/boot/uboot-omap/**"
|
||||
"target/oxnas":
|
||||
- "target/linux/oxnas/**"
|
||||
- "package/boot/uboot-oxnas/**"
|
||||
"target/pistachio":
|
||||
- "target/linux/pistachio/**"
|
||||
"target/qoriq":
|
||||
|
@ -67,16 +90,22 @@
|
|||
- "target/linux/realtek/**"
|
||||
"target/rockchip":
|
||||
- "target/linux/rockchip/**"
|
||||
- "package/boot/arm-trusted-firmware-rockchip/**"
|
||||
- "package/boot/uboot-rockchip/**"
|
||||
"target/sunxi":
|
||||
- "target/linux/sunxi/**"
|
||||
- "package/boot/arm-trusted-firmware-sunxi/**"
|
||||
- "package/boot/uboot-sunxi/**"
|
||||
"target/tegra":
|
||||
- "target/linux/tegra/**"
|
||||
- "package/boot/uboot-tegra/**"
|
||||
"target/uml":
|
||||
- "target/linux/uml/**"
|
||||
"target/x86":
|
||||
- "target/linux/x86/**"
|
||||
"target/zynq":
|
||||
- "target/linux/zynq/**"
|
||||
- "package/boot/uboot-zynq/**"
|
||||
# target/imagebuilder
|
||||
"target/imagebuilder":
|
||||
- "target/imagebuilder/**"
|
||||
|
|
72
.github/workflows/build-tools.yml
vendored
Normal file
72
.github/workflows/build-tools.yml
vendored
Normal file
|
@ -0,0 +1,72 @@
|
|||
name: Build host tools
|
||||
|
||||
on:
|
||||
workflow_call:
|
||||
inputs:
|
||||
generate_prebuilt_artifacts:
|
||||
type: boolean
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
jobs:
|
||||
build:
|
||||
name: Build tools
|
||||
runs-on: ubuntu-latest
|
||||
container: registry.gitlab.com/openwrt/buildbot/buildworker-3.4.1
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
path: openwrt
|
||||
|
||||
- name: Fix permission
|
||||
run: chown -R buildbot:buildbot openwrt
|
||||
|
||||
- name: Set configs for tools container
|
||||
shell: su buildbot -c "sh -e {0}"
|
||||
working-directory: openwrt
|
||||
run: |
|
||||
touch .config
|
||||
echo CONFIG_DEVEL=y >> .config
|
||||
echo CONFIG_AUTOREMOVE=y >> .config
|
||||
echo CONFIG_CCACHE=y >> .config
|
||||
|
||||
- name: Make prereq
|
||||
shell: su buildbot -c "sh -e {0}"
|
||||
working-directory: openwrt
|
||||
run: make defconfig
|
||||
|
||||
- name: Build tools
|
||||
shell: su buildbot -c "sh -e {0}"
|
||||
working-directory: openwrt
|
||||
run: make tools/install -j$(nproc) BUILD_LOG=1 || ret=$? .github/workflows/scripts/show_build_failures.sh
|
||||
|
||||
- name: Upload logs
|
||||
if: always()
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: linux-buildbot-logs
|
||||
path: openwrt/logs
|
||||
|
||||
- name: Upload config
|
||||
if: always()
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: linux-buildbot-config
|
||||
path: openwrt/.config
|
||||
|
||||
- name: Archive prebuilt tools
|
||||
if: inputs.generate_prebuilt_artifacts == true
|
||||
shell: su buildbot -c "sh -e {0}"
|
||||
working-directory: openwrt
|
||||
run: tar --mtime=now -cf tools.tar staging_dir/host build_dir/host dl
|
||||
|
||||
- name: Upload prebuilt tools
|
||||
if: inputs.generate_prebuilt_artifacts == true
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: linux-buildbot-prebuilt-tools
|
||||
path: openwrt/tools.tar
|
||||
retention-days: 1
|
86
.github/workflows/push-containers.yml
vendored
Normal file
86
.github/workflows/push-containers.yml
vendored
Normal file
|
@ -0,0 +1,86 @@
|
|||
name: Build and Push prebuilt tools container
|
||||
|
||||
on:
|
||||
push:
|
||||
paths:
|
||||
- 'tools/**'
|
||||
- '.github/workflows/build-tools.yml'
|
||||
- '.github/workflows/push-containers.yml'
|
||||
- '.github/workflows/Dockerfile.tools'
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
jobs:
|
||||
build-linux-buildbot:
|
||||
name: Build tools with buildbot container
|
||||
uses: ./.github/workflows/build-tools.yml
|
||||
with:
|
||||
generate_prebuilt_artifacts: true
|
||||
|
||||
push-tools-container:
|
||||
needs: build-linux-buildbot
|
||||
name: Push prebuilt tools container
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
packages: write
|
||||
|
||||
steps:
|
||||
- name: Set lower case owner name
|
||||
env:
|
||||
OWNER: ${{ github.repository_owner }}
|
||||
run: |
|
||||
echo "OWNER_LC=${OWNER,,}" >> "$GITHUB_ENV"
|
||||
|
||||
# Per branch tools container tag
|
||||
# By default stick to latest
|
||||
# For official test targetting openwrt stable branch
|
||||
# Get the branch or parse the tag and push dedicated tools containers
|
||||
# Any branch that will match this pattern openwrt-[0-9][0-9].[0-9][0-9]
|
||||
# will refresh the tools container with the matching tag.
|
||||
# (example branch openwrt-22.03 -> tools:openwrt-22.03)
|
||||
# (example branch openwrt-22.03-test -> tools:openwrt-22.03)
|
||||
- name: Determine tools container tag
|
||||
run: |
|
||||
CONTAINER_TAG=latest
|
||||
|
||||
if [ ${{ github.ref_type }} == "branch" ]; then
|
||||
if echo "${{ github.ref_name }}" | grep -q -E 'openwrt-[0-9][0-9]\.[0-9][0-9]'; then
|
||||
CONTAINER_TAG="$(echo ${{ github.ref_name }} | sed 's/^\(openwrt-[0-9][0-9]\.[0-9][0-9]\).*/\1/')"
|
||||
fi
|
||||
elif [ ${{ github.ref_type }} == "tag" ]; then
|
||||
if echo "${{ github.ref_name }}" | grep -q -E 'v[0-9][0-9]\.[0-9][0-9]\..+'; then
|
||||
CONTAINER_TAG=openwrt-"$(echo ${{ github.ref_name }} | sed 's/v\([0-9][0-9]\.[0-9][0-9]\)\..\+/\1/')"
|
||||
fi
|
||||
fi
|
||||
|
||||
echo "Tools container to push tools:$CONTAINER_TAG"
|
||||
echo "CONTAINER_TAG=$CONTAINER_TAG" >> "$GITHUB_ENV"
|
||||
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
path: 'openwrt'
|
||||
|
||||
- name: Download prebuilt tools from build job
|
||||
uses: actions/download-artifact@v3
|
||||
with:
|
||||
name: linux-buildbot-prebuilt-tools
|
||||
path: openwrt
|
||||
|
||||
- name: Login to GitHub Container Registry
|
||||
uses: docker/login-action@v2
|
||||
with:
|
||||
registry: ghcr.io
|
||||
username: ${{ github.actor }}
|
||||
password: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
- name: Build and push
|
||||
uses: docker/build-push-action@v3
|
||||
with:
|
||||
context: openwrt
|
||||
push: true
|
||||
tags: ghcr.io/${{ env.OWNER_LC }}/tools:${{ env.CONTAINER_TAG }}
|
||||
file: openwrt/.github/workflows/Dockerfile.tools
|
133
.github/workflows/tools.yml
vendored
133
.github/workflows/tools.yml
vendored
|
@ -4,10 +4,12 @@ on:
|
|||
pull_request:
|
||||
paths:
|
||||
- 'tools/**'
|
||||
- '.github/workflows/build-tools.yml'
|
||||
- '.github/workflows/tools.yml'
|
||||
push:
|
||||
paths:
|
||||
- 'tools/**'
|
||||
- '.github/workflows/build-tools.yml'
|
||||
- '.github/workflows/tools.yml'
|
||||
|
||||
permissions:
|
||||
|
@ -15,7 +17,7 @@ permissions:
|
|||
|
||||
jobs:
|
||||
build-macos-latest:
|
||||
if: github.event_name != 'push'
|
||||
name: Build tools with macos latest
|
||||
runs-on: macos-latest
|
||||
|
||||
steps:
|
||||
|
@ -97,130 +99,5 @@ jobs:
|
|||
path: ${{ env.WORKPATH }}/openwrt/.config
|
||||
|
||||
build-linux-buildbot:
|
||||
runs-on: ubuntu-latest
|
||||
container: registry.gitlab.com/openwrt/buildbot/buildworker-3.4.1
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
path: 'openwrt'
|
||||
|
||||
- name: Fix permission
|
||||
run: |
|
||||
chown -R buildbot:buildbot openwrt
|
||||
|
||||
- name: Set configs for tools container
|
||||
if: github.event_name == 'push'
|
||||
shell: su buildbot -c "sh -e {0}"
|
||||
working-directory: openwrt
|
||||
run: |
|
||||
touch .config
|
||||
echo CONFIG_DEVEL=y >> .config
|
||||
echo CONFIG_AUTOREMOVE=y >> .config
|
||||
echo CONFIG_CCACHE=y >> .config
|
||||
|
||||
- name: Make prereq
|
||||
shell: su buildbot -c "sh -e {0}"
|
||||
working-directory: openwrt
|
||||
run: make defconfig
|
||||
|
||||
- name: Build tools BuildBot Container
|
||||
shell: su buildbot -c "sh -e {0}"
|
||||
working-directory: openwrt
|
||||
run: make tools/install -j$(nproc) BUILD_LOG=1 || ret=$? .github/workflows/scripts/show_build_failures.sh
|
||||
|
||||
- name: Upload logs
|
||||
if: always()
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: linux-buildbot-logs
|
||||
path: openwrt/logs
|
||||
|
||||
- name: Upload config
|
||||
if: always()
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: linux-buildbot-config
|
||||
path: openwrt/.config
|
||||
|
||||
- name: Archive prebuilt tools
|
||||
if: github.event_name == 'push'
|
||||
shell: su buildbot -c "sh -e {0}"
|
||||
working-directory: openwrt
|
||||
run: tar --mtime=now -cf tools.tar staging_dir/host build_dir/host dl
|
||||
|
||||
- name: Upload prebuilt tools
|
||||
if: github.event_name == 'push'
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: linux-buildbot-prebuilt-tools
|
||||
path: openwrt/tools.tar
|
||||
retention-days: 1
|
||||
|
||||
push-tools-container:
|
||||
needs: build-linux-buildbot
|
||||
runs-on: ubuntu-latest
|
||||
if: github.event_name == 'push'
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
packages: write
|
||||
|
||||
steps:
|
||||
- name: Set lower case owner name
|
||||
env:
|
||||
OWNER: ${{ github.repository_owner }}
|
||||
run: |
|
||||
echo "OWNER_LC=${OWNER,,}" >> "$GITHUB_ENV"
|
||||
|
||||
# Per branch tools container tag
|
||||
# By default stick to latest
|
||||
# For official test targetting openwrt stable branch
|
||||
# Get the branch or parse the tag and push dedicated tools containers
|
||||
# Any branch that will match this pattern openwrt-[0-9][0-9].[0-9][0-9]
|
||||
# will refresh the tools container with the matching tag.
|
||||
# (example branch openwrt-22.03 -> tools:openwrt-22.03)
|
||||
# (example branch openwrt-22.03-test -> tools:openwrt-22.03)
|
||||
- name: Determine tools container tag
|
||||
run: |
|
||||
CONTAINER_TAG=latest
|
||||
|
||||
if [ ${{ github.ref_type }} == "branch" ]; then
|
||||
if echo "${{ github.ref_name }}" | grep -q -E 'openwrt-[0-9][0-9]\.[0-9][0-9]'; then
|
||||
CONTAINER_TAG="$(echo ${{ github.ref_name }} | sed 's/^\(openwrt-[0-9][0-9]\.[0-9][0-9]\).*/\1/')"
|
||||
fi
|
||||
elif [ ${{ github.ref_type }} == "tag" ]; then
|
||||
if echo "${{ github.ref_name }}" | grep -q -E 'v[0-9][0-9]\.[0-9][0-9]\..+'; then
|
||||
CONTAINER_TAG=openwrt-"$(echo ${{ github.ref_name }} | sed 's/v\([0-9][0-9]\.[0-9][0-9]\)\..\+/\1/')"
|
||||
fi
|
||||
fi
|
||||
|
||||
echo "Tools container to push tools:$CONTAINER_TAG"
|
||||
echo "CONTAINER_TAG=$CONTAINER_TAG" >> "$GITHUB_ENV"
|
||||
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
path: 'openwrt'
|
||||
|
||||
- name: Download prebuilt tools from build job
|
||||
uses: actions/download-artifact@v3
|
||||
with:
|
||||
name: linux-buildbot-prebuilt-tools
|
||||
path: openwrt
|
||||
|
||||
- name: Login to GitHub Container Registry
|
||||
uses: docker/login-action@v2
|
||||
with:
|
||||
registry: ghcr.io
|
||||
username: ${{ github.actor }}
|
||||
password: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
- name: Build and push
|
||||
uses: docker/build-push-action@v3
|
||||
with:
|
||||
context: openwrt
|
||||
push: true
|
||||
tags: ghcr.io/${{ env.OWNER_LC }}/tools:${{ env.CONTAINER_TAG }}
|
||||
file: openwrt/.github/workflows/Dockerfile.tools
|
||||
name: Build tools with buildbot container
|
||||
uses: ./.github/workflows/build-tools.yml
|
||||
|
|
|
@ -1,2 +1,2 @@
|
|||
LINUX_VERSION-5.10 = .160
|
||||
LINUX_KERNEL_HASH-5.10.160 = 30d5076acae863941045880c4c5c5109d26a54a932168fa1324237e8aeaa840b
|
||||
LINUX_VERSION-5.10 = .161
|
||||
LINUX_KERNEL_HASH-5.10.161 = 7aaaf6d0bcd8a2cfa14ad75f02ca62bb2de08aad3bee3eff198de49ea5254079
|
||||
|
|
|
@ -1,2 +1,2 @@
|
|||
LINUX_VERSION-5.15 = .84
|
||||
LINUX_KERNEL_HASH-5.15.84 = 318dc30cb059c2e35b59652b166b39804bb3a941f11878aae6119019a04b8217
|
||||
LINUX_VERSION-5.15 = .85
|
||||
LINUX_KERNEL_HASH-5.15.85 = 2c0bae29fac98e0a9408914a4551b2971365ac0000351cb255d6bd9aa0849808
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
#
|
||||
# Copyright (C) 2006-2020 OpenWrt.org
|
||||
|
||||
PKG_DEFAULT_DEPENDS = +libc +USE_GLIBC:librt +USE_GLIBC:libpthread
|
||||
PKG_DEFAULT_DEPENDS = +libc
|
||||
|
||||
ifneq ($(PKG_NAME),toolchain)
|
||||
PKG_FIXUP_DEPENDS = $(if $(filter kmod-%,$(1)),$(2),$(PKG_DEFAULT_DEPENDS) $(filter-out $(PKG_DEFAULT_DEPENDS),$(2)))
|
||||
|
|
|
@ -235,6 +235,7 @@ ifeq ($(DUMP),1)
|
|||
ifeq ($(ARCH),powerpc)
|
||||
CPU_CFLAGS_603e:=-mcpu=603e
|
||||
CPU_CFLAGS_8540:=-mcpu=8540
|
||||
CPU_CFLAGS_8548:=-mcpu=8548
|
||||
CPU_CFLAGS_405:=-mcpu=405
|
||||
CPU_CFLAGS_440:=-mcpu=440
|
||||
CPU_CFLAGS_464fp:=-mcpu=464fp
|
||||
|
|
|
@ -204,6 +204,14 @@ macaddr_add() {
|
|||
echo $oui:$nic
|
||||
}
|
||||
|
||||
macaddr_generate_from_mmc_cid() {
|
||||
local mmc_dev=$1
|
||||
|
||||
local sd_hash=$(sha256sum /sys/class/block/$mmc_dev/device/cid)
|
||||
local mac_base=$(macaddr_canonicalize "$(echo "${sd_hash}" | dd bs=1 count=12 2>/dev/null)")
|
||||
echo "$(macaddr_unsetbit_mc "$(macaddr_setbit_la "${mac_base}")")"
|
||||
}
|
||||
|
||||
macaddr_geteui() {
|
||||
local mac=$1
|
||||
local sep=$2
|
||||
|
|
|
@ -34,11 +34,18 @@ bananapi,bpi-r3)
|
|||
;;
|
||||
esac
|
||||
;;
|
||||
xiaomi,redmi-router-ax6000|\
|
||||
xiaomi,redmi-router-ax6000-stock)
|
||||
ubootenv_add_uci_config "/dev/mtd1" "0x0" "0x10000" "0x20000"
|
||||
ubootenv_add_uci_sys_config "/dev/mtd2" "0x0" "0x10000" "0x20000"
|
||||
;;
|
||||
xiaomi,redmi-router-ax6000-ubootmod)
|
||||
. /lib/upgrade/nand.sh
|
||||
local envubi=$(nand_find_ubi ubi)
|
||||
local envdev=/dev/$(nand_find_volume $envubi ubootenv)
|
||||
local envdev2=/dev/$(nand_find_volume $envubi ubootenv2)
|
||||
ubootenv_add_uci_config "$envdev" "0x0" "0x1f000" "0x20000" "1"
|
||||
ubootenv_add_uci_config "$envdev2" "0x0" "0x1f000" "0x20000" "1"
|
||||
;;
|
||||
esac
|
||||
|
||||
config_load ubootenv
|
||||
|
|
|
@ -49,6 +49,7 @@ zbtlink,zbt-wg2626|\
|
|||
zte,mf283plus)
|
||||
ubootenv_add_uci_config "/dev/mtd1" "0x0" "0x1000" "0x10000"
|
||||
;;
|
||||
asus,rt-ax53u|\
|
||||
belkin,rt1800|\
|
||||
h3c,tx1800-plus|\
|
||||
h3c,tx1801-plus|\
|
||||
|
|
|
@ -17,6 +17,7 @@ include $(INCLUDE_DIR)/package.mk
|
|||
|
||||
define U-Boot/Default
|
||||
BUILD_TARGET:=kirkwood
|
||||
BUILD_SUBTARGET:=generic
|
||||
endef
|
||||
|
||||
define U-Boot/dockstar
|
||||
|
|
|
@ -236,6 +236,18 @@ define U-Boot/mt7986_bananapi_bpi-r3-nor
|
|||
FIP_COMPRESS:=1
|
||||
endef
|
||||
|
||||
define U-Boot/mt7986_xiaomi_redmi-router-ax6000
|
||||
NAME:=Xiaomi Redmi AX6000
|
||||
BUILD_SUBTARGET:=filogic
|
||||
BUILD_DEVICES:=xiaomi_redmi-router-ax6000-ubootmod
|
||||
UBOOT_CONFIG:=mt7986_xiaomi_redmi-ax6000
|
||||
UBOOT_IMAGE:=u-boot.fip
|
||||
BL2_BOOTDEV:=spim-nand
|
||||
BL2_SOC:=mt7986
|
||||
BL2_DDRTYPE:=ddr4
|
||||
DEPENDS:=+trusted-firmware-a-mt7986-spim-nand-ddr4
|
||||
endef
|
||||
|
||||
UBOOT_TARGETS := \
|
||||
mt7620_mt7530_rfb \
|
||||
mt7620_rfb \
|
||||
|
@ -256,6 +268,7 @@ UBOOT_TARGETS := \
|
|||
mt7986_bananapi_bpi-r3-sdmmc \
|
||||
mt7986_bananapi_bpi-r3-snand \
|
||||
mt7986_bananapi_bpi-r3-nor \
|
||||
mt7986_xiaomi_redmi-router-ax6000 \
|
||||
mt7986_rfb
|
||||
|
||||
ifdef CONFIG_TARGET_mediatek
|
||||
|
|
|
@ -0,0 +1,391 @@
|
|||
--- /dev/null
|
||||
+++ b/configs/mt7986_xiaomi_redmi-ax6000_defconfig
|
||||
@@ -0,0 +1,175 @@
|
||||
+CONFIG_ARM=y
|
||||
+CONFIG_POSITION_INDEPENDENT=y
|
||||
+CONFIG_ARCH_MEDIATEK=y
|
||||
+CONFIG_TARGET_MT7986=y
|
||||
+CONFIG_SYS_TEXT_BASE=0x41e00000
|
||||
+CONFIG_SYS_MALLOC_F_LEN=0x4000
|
||||
+CONFIG_NR_DRAM_BANKS=1
|
||||
+CONFIG_DEFAULT_DEVICE_TREE="mt7986a-xiaomi_redmi-ax6000"
|
||||
+CONFIG_DEFAULT_ENV_FILE="xiaomi_redmi-ax6000_env"
|
||||
+CONFIG_DEFAULT_FDT_FILE="mediatek/mt7986a-xiaomi_redmi-ax6000.dtb"
|
||||
+CONFIG_OF_LIBFDT_OVERLAY=y
|
||||
+CONFIG_DEBUG_UART_BASE=0x11002000
|
||||
+CONFIG_DEBUG_UART_CLOCK=40000000
|
||||
+CONFIG_DEBUG_UART=y
|
||||
+CONFIG_SYS_LOAD_ADDR=0x46000000
|
||||
+CONFIG_SMBIOS_PRODUCT_NAME=""
|
||||
+CONFIG_AUTOBOOT_KEYED=y
|
||||
+CONFIG_BOOTDELAY=30
|
||||
+CONFIG_AUTOBOOT_MENU_SHOW=y
|
||||
+CONFIG_CFB_CONSOLE_ANSI=y
|
||||
+CONFIG_BOARD_LATE_INIT=y
|
||||
+CONFIG_BUTTON=y
|
||||
+CONFIG_BUTTON_GPIO=y
|
||||
+CONFIG_GPIO_HOG=y
|
||||
+CONFIG_CMD_ENV_FLAGS=y
|
||||
+CONFIG_FIT=y
|
||||
+CONFIG_FIT_ENABLE_SHA256_SUPPORT=y
|
||||
+# CONFIG_LED is not set
|
||||
+# CONFIG_LED_BLINK is not set
|
||||
+# CONFIG_LED_GPIO is not set
|
||||
+CONFIG_LOGLEVEL=7
|
||||
+CONFIG_LOG=y
|
||||
+CONFIG_SYS_PROMPT="MT7986> "
|
||||
+CONFIG_CMD_BOOTMENU=y
|
||||
+CONFIG_CMD_BOOTP=y
|
||||
+CONFIG_CMD_BUTTON=y
|
||||
+CONFIG_CMD_CACHE=y
|
||||
+CONFIG_CMD_CDP=y
|
||||
+CONFIG_CMD_CPU=y
|
||||
+CONFIG_CMD_DHCP=y
|
||||
+CONFIG_CMD_DM=y
|
||||
+CONFIG_CMD_DNS=y
|
||||
+CONFIG_CMD_ECHO=y
|
||||
+CONFIG_CMD_ENV_READMEM=y
|
||||
+CONFIG_CMD_ERASEENV=y
|
||||
+# CONFIG_CMD_EXT4 is not set
|
||||
+# CONFIG_CMD_FAT is not set
|
||||
+CONFIG_CMD_FDT=y
|
||||
+# CONFIG_CMD_FS_GENERIC is not set
|
||||
+# CONFIG_CMD_FS_UUID is not set
|
||||
+CONFIG_CMD_GPIO=y
|
||||
+# CONFIG_CMD_GPT is not set
|
||||
+CONFIG_CMD_HASH=y
|
||||
+CONFIG_CMD_ITEST=y
|
||||
+# CONFIG_CMD_LED is not set
|
||||
+CONFIG_CMD_LICENSE=y
|
||||
+CONFIG_CMD_LINK_LOCAL=y
|
||||
+# CONFIG_CMD_MBR is not set
|
||||
+CONFIG_CMD_MTD=y
|
||||
+# CONFIG_CMD_PCI is not set
|
||||
+CONFIG_CMD_PSTORE=y
|
||||
+CONFIG_CMD_PSTORE_MEM_ADDR=0x42ff0000
|
||||
+CONFIG_CMD_SF_TEST=y
|
||||
+CONFIG_CMD_PING=y
|
||||
+CONFIG_CMD_PXE=y
|
||||
+# CONFIG_CMD_PWM is not set
|
||||
+CONFIG_CMD_SMC=y
|
||||
+CONFIG_CMD_TFTPBOOT=y
|
||||
+CONFIG_CMD_TFTPSRV=y
|
||||
+CONFIG_CMD_UBI=y
|
||||
+CONFIG_CMD_UBI_RENAME=y
|
||||
+CONFIG_CMD_UBIFS=y
|
||||
+CONFIG_CMD_ASKENV=y
|
||||
+CONFIG_CMD_PART=y
|
||||
+CONFIG_CMD_RARP=y
|
||||
+CONFIG_CMD_SETEXPR=y
|
||||
+CONFIG_CMD_SLEEP=y
|
||||
+CONFIG_CMD_SNTP=y
|
||||
+CONFIG_CMD_SOURCE=y
|
||||
+CONFIG_CMD_STRINGS=y
|
||||
+# CONFIG_CMD_USB is not set
|
||||
+# CONFIG_CMD_FLASH is not set
|
||||
+CONFIG_CMD_UUID=y
|
||||
+CONFIG_DISPLAY_CPUINFO=y
|
||||
+CONFIG_DM_MTD=y
|
||||
+CONFIG_DM_REGULATOR=y
|
||||
+CONFIG_DM_REGULATOR_FIXED=y
|
||||
+CONFIG_DM_REGULATOR_GPIO=y
|
||||
+# CONFIG_DM_USB is not set
|
||||
+# CONFIG_DM_PWM is not set
|
||||
+# CONFIG_PWM_MTK is not set
|
||||
+CONFIG_HUSH_PARSER=y
|
||||
+CONFIG_SYS_REDUNDAND_ENVIRONMENT=y
|
||||
+CONFIG_SYS_RELOC_GD_ENV_ADDR=y
|
||||
+CONFIG_VERSION_VARIABLE=y
|
||||
+CONFIG_PARTITION_UUIDS=y
|
||||
+CONFIG_NETCONSOLE=y
|
||||
+CONFIG_REGMAP=y
|
||||
+CONFIG_SYSCON=y
|
||||
+CONFIG_CLK=y
|
||||
+CONFIG_DM_GPIO=y
|
||||
+# CONFIG_DM_SCSI is not set
|
||||
+# CONFIG_AHCI is not set
|
||||
+CONFIG_PHY=y
|
||||
+# CONFIG_PHY_MTK_TPHY is not set
|
||||
+CONFIG_PHY_FIXED=y
|
||||
+CONFIG_DM_ETH=y
|
||||
+CONFIG_MEDIATEK_ETH=y
|
||||
+# CONFIG_PCI is not set
|
||||
+# CONFIG_MMC is not set
|
||||
+# CONFIG_DM_MMC is not set
|
||||
+CONFIG_MTD=y
|
||||
+CONFIG_MTD_UBI_FASTMAP=y
|
||||
+# CONFIG_DM_PCI is not set
|
||||
+# CONFIG_PCIE_MEDIATEK is not set
|
||||
+CONFIG_PINCTRL=y
|
||||
+CONFIG_PINCONF=y
|
||||
+# CONFIG_PINCTRL_MT7622 is not set
|
||||
+CONFIG_POWER_DOMAIN=y
|
||||
+CONFIG_PRE_CONSOLE_BUFFER=y
|
||||
+CONFIG_PRE_CON_BUF_ADDR=0x4007EF00
|
||||
+CONFIG_MTK_POWER_DOMAIN=y
|
||||
+CONFIG_RAM=y
|
||||
+CONFIG_DM_SERIAL=y
|
||||
+CONFIG_MTK_SERIAL=y
|
||||
+CONFIG_SPI=y
|
||||
+# CONFIG_I2C is not set
|
||||
+CONFIG_DM_SPI=y
|
||||
+CONFIG_MTK_SPI_NAND=y
|
||||
+CONFIG_MTK_SPI_NAND_MTD=y
|
||||
+CONFIG_SYSRESET_WATCHDOG=y
|
||||
+CONFIG_WDT_MTK=y
|
||||
+CONFIG_LZO=y
|
||||
+CONFIG_ZSTD=y
|
||||
+CONFIG_HEXDUMP=y
|
||||
+CONFIG_RANDOM_UUID=y
|
||||
+CONFIG_REGEX=y
|
||||
+# CONFIG_USB is not set
|
||||
+# CONFIG_USB_HOST is not set
|
||||
+# CONFIG_USB_XHCI_HCD is not set
|
||||
+# CONFIG_USB_XHCI_MTK is not set
|
||||
+# CONFIG_USB_STORAGE is not set
|
||||
+CONFIG_OF_EMBED=y
|
||||
+CONFIG_ENV_OVERWRITE=y
|
||||
+CONFIG_ENV_IS_IN_UBI=y
|
||||
+CONFIG_ENV_UBI_PART="ubi"
|
||||
+CONFIG_ENV_SIZE=0x1f000
|
||||
+CONFIG_ENV_SIZE_REDUND=0x1f000
|
||||
+CONFIG_ENV_UBI_VOLUME="ubootenv"
|
||||
+CONFIG_ENV_UBI_VOLUME_REDUND="ubootenv2"
|
||||
+CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y
|
||||
+CONFIG_NET_RANDOM_ETHADDR=y
|
||||
+CONFIG_REGMAP=y
|
||||
+CONFIG_SYSCON=y
|
||||
+CONFIG_CLK=y
|
||||
+CONFIG_PHY_FIXED=y
|
||||
+CONFIG_DM_ETH=y
|
||||
+CONFIG_MEDIATEK_ETH=y
|
||||
+CONFIG_PINCTRL=y
|
||||
+CONFIG_PINCONF=y
|
||||
+CONFIG_PINCTRL_MT7986=y
|
||||
+CONFIG_POWER_DOMAIN=y
|
||||
+CONFIG_MTK_POWER_DOMAIN=y
|
||||
+CONFIG_DM_REGULATOR=y
|
||||
+CONFIG_DM_REGULATOR_FIXED=y
|
||||
+CONFIG_DM_SERIAL=y
|
||||
+CONFIG_MTK_SERIAL=y
|
||||
+CONFIG_HEXDUMP=y
|
||||
+CONFIG_USE_DEFAULT_ENV_FILE=y
|
||||
+CONFIG_MTD_SPI_NAND=y
|
||||
+CONFIG_MTK_SPIM=y
|
||||
+CONFIG_CMD_MTD=y
|
||||
+CONFIG_CMD_NAND=y
|
||||
+CONFIG_CMD_NAND_TRIMFFS=y
|
||||
+CONFIG_LMB_MAX_REGIONS=64
|
||||
--- /dev/null
|
||||
+++ b/arch/arm/dts/mt7986a-xiaomi_redmi-ax6000.dts
|
||||
@@ -0,0 +1,152 @@
|
||||
+// SPDX-License-Identifier: GPL-2.0
|
||||
+/*
|
||||
+ * Copyright (c) 2021 MediaTek Inc.
|
||||
+ * Author: Sam Shih <sam.shih@mediatek.com>
|
||||
+ */
|
||||
+
|
||||
+/dts-v1/;
|
||||
+#include "mt7986.dtsi"
|
||||
+#include <dt-bindings/gpio/gpio.h>
|
||||
+
|
||||
+/ {
|
||||
+ #address-cells = <1>;
|
||||
+ #size-cells = <1>;
|
||||
+ model = "Xiaomi Redmi AX6000";
|
||||
+ compatible = "mediatek,mt7986", "mediatek,mt7986-sd-rfb";
|
||||
+
|
||||
+ chosen {
|
||||
+ stdout-path = &uart0;
|
||||
+ tick-timer = &timer0;
|
||||
+ };
|
||||
+
|
||||
+ keys {
|
||||
+ compatible = "gpio-keys";
|
||||
+ factory {
|
||||
+ label = "reset";
|
||||
+ gpios = <&gpio 9 GPIO_ACTIVE_LOW>;
|
||||
+ };
|
||||
+ mesh {
|
||||
+ label = "mesh";
|
||||
+ gpios = <&gpio 10 GPIO_ACTIVE_LOW>;
|
||||
+ };
|
||||
+ };
|
||||
+};
|
||||
+
|
||||
+&uart0 {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&uart1 {
|
||||
+ pinctrl-names = "default";
|
||||
+ pinctrl-0 = <&uart1_pins>;
|
||||
+ status = "disabled";
|
||||
+};
|
||||
+
|
||||
+ð {
|
||||
+ status = "okay";
|
||||
+ mediatek,gmac-id = <0>;
|
||||
+ phy-mode = "sgmii";
|
||||
+ mediatek,switch = "mt7531";
|
||||
+ reset-gpios = <&gpio 5 GPIO_ACTIVE_HIGH>;
|
||||
+
|
||||
+ fixed-link {
|
||||
+ speed = <1000>;
|
||||
+ full-duplex;
|
||||
+ };
|
||||
+};
|
||||
+
|
||||
+&pinctrl {
|
||||
+ spic_pins: spi1-pins-func-1 {
|
||||
+ mux {
|
||||
+ function = "spi";
|
||||
+ groups = "spi1_2";
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+ uart1_pins: spi1-pins-func-3 {
|
||||
+ mux {
|
||||
+ function = "uart";
|
||||
+ groups = "uart1_2";
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+ spi_flash_pins: spi0-pins-func-1 {
|
||||
+ mux {
|
||||
+ function = "flash";
|
||||
+ groups = "spi0", "spi0_wp_hold";
|
||||
+ };
|
||||
+
|
||||
+ conf-pu {
|
||||
+ pins = "SPI2_CS", "SPI2_HOLD", "SPI2_WP";
|
||||
+ drive-strength = <MTK_DRIVE_8mA>;
|
||||
+ bias-pull-up = <MTK_PUPD_SET_R1R0_00>;
|
||||
+ };
|
||||
+
|
||||
+ conf-pd {
|
||||
+ pins = "SPI2_CLK", "SPI2_MOSI", "SPI2_MISO";
|
||||
+ drive-strength = <MTK_DRIVE_8mA>;
|
||||
+ bias-pull-down = <MTK_PUPD_SET_R1R0_00>;
|
||||
+ };
|
||||
+ };
|
||||
+};
|
||||
+
|
||||
+&spi0 {
|
||||
+ #address-cells = <1>;
|
||||
+ #size-cells = <0>;
|
||||
+ pinctrl-names = "default";
|
||||
+ pinctrl-0 = <&spi_flash_pins>;
|
||||
+ status = "okay";
|
||||
+ must_tx;
|
||||
+ enhance_timing;
|
||||
+ dma_ext;
|
||||
+ ipm_design;
|
||||
+ support_quad;
|
||||
+ tick_dly = <1>;
|
||||
+ sample_sel = <0>;
|
||||
+
|
||||
+ spi_nand@0 {
|
||||
+ compatible = "spi-nand";
|
||||
+ reg = <0>;
|
||||
+ spi-max-frequency = <52000000>;
|
||||
+
|
||||
+ partitions {
|
||||
+ compatible = "fixed-partitions";
|
||||
+ #address-cells = <1>;
|
||||
+ #size-cells = <1>;
|
||||
+
|
||||
+ partition@0 {
|
||||
+ label = "bl2";
|
||||
+ reg = <0x0 0x80000>;
|
||||
+ };
|
||||
+
|
||||
+ partition@100000 {
|
||||
+ label = "nvram";
|
||||
+ reg = <0x100000 0x40000>;
|
||||
+ };
|
||||
+
|
||||
+ partition@140000 {
|
||||
+ label = "bdata";
|
||||
+ reg = <0x140000 0x40000>;
|
||||
+ };
|
||||
+
|
||||
+ partition@180000 {
|
||||
+ label = "factory";
|
||||
+ reg = <0x180000 0x200000>;
|
||||
+ };
|
||||
+
|
||||
+ partition@380000 {
|
||||
+ label = "fip";
|
||||
+ reg = <0x380000 0x200000>;
|
||||
+ };
|
||||
+
|
||||
+ partition@600000 {
|
||||
+ label = "ubi";
|
||||
+ reg = <0x580000 0x7a80000>;
|
||||
+ };
|
||||
+ };
|
||||
+ };
|
||||
+};
|
||||
+
|
||||
+&watchdog {
|
||||
+ status = "disabled";
|
||||
+};
|
||||
--- /dev/null
|
||||
+++ b/xiaomi_redmi-ax6000_env
|
||||
@@ -0,0 +1,55 @@
|
||||
+ethaddr_factory=mtd read factory 0x40080000 0x0 0x20000 && env readmem -b ethaddr 0x40080004 0x6 ; setenv ethaddr_factory
|
||||
+ipaddr=192.168.1.1
|
||||
+serverip=192.168.1.254
|
||||
+loadaddr=0x46000000
|
||||
+console=earlycon=uart8250,mmio32,0x11002000 console=ttyS0
|
||||
+bootargs=console=ttyS0,115200n8 console_msg_format=syslog
|
||||
+bootcmd=if pstore check ; then run boot_recovery ; else run boot_ubi ; fi
|
||||
+bootconf=config-1
|
||||
+bootdelay=0
|
||||
+bootfile=openwrt-mediatek-filogic-xiaomi_redmi-router-ax6000-ubootmod-initramfs-recovery.itb
|
||||
+bootfile_bl2=openwrt-mediatek-filogic-xiaomi_redmi-router-ax6000-ubootmod-preloader.bin
|
||||
+bootfile_fip=openwrt-mediatek-filogic-xiaomi_redmi-router-ax6000-ubootmod-bl31-uboot.fip
|
||||
+bootfile_upg=openwrt-mediatek-filogic-xiaomi_redmi-router-ax6000-ubootmod-squashfs-sysupgrade.itb
|
||||
+bootmenu_confirm_return=askenv - Press ENTER to return to menu ; bootmenu 60
|
||||
+bootmenu_default=0
|
||||
+bootmenu_delay=0
|
||||
+bootmenu_title= [0;34m( ( ( [1;39mOpenWrt[0;34m ) ) )
|
||||
+bootmenu_0=Initialize environment.=run _firstboot
|
||||
+bootmenu_0d=Run default boot command.=run boot_default
|
||||
+bootmenu_1=Boot system via TFTP.=run boot_tftp ; run bootmenu_confirm_return
|
||||
+bootmenu_2=Boot production system from NAND.=run boot_production ; run bootmenu_confirm_return
|
||||
+bootmenu_3=Boot recovery system from NAND.=run boot_recovery ; run bootmenu_confirm_return
|
||||
+bootmenu_4=Load production system via TFTP then write to NAND.=setenv noboot 1 ; setenv replacevol 1 ; run boot_tftp_production ; setenv noboot ; setenv replacevol ; run bootmenu_confirm_return
|
||||
+bootmenu_5=Load recovery system via TFTP then write to NAND.=setenv noboot 1 ; setenv replacevol 1 ; run boot_tftp_recovery ; setenv noboot ; setenv replacevol ; run bootmenu_confirm_return
|
||||
+bootmenu_6=[31mLoad BL31+U-Boot FIP via TFTP then write to NAND.[0m=run boot_tftp_write_fip ; run bootmenu_confirm_return
|
||||
+bootmenu_7=[31mLoad BL2 preloader via TFTP then write to NAND.[0m=run boot_tftp_write_bl2 ; run bootmenu_confirm_return
|
||||
+bootmenu_8=Reboot.=reset
|
||||
+bootmenu_9=Reset all settings to factory defaults.=run reset_factory ; reset
|
||||
+boot_first=if button reset ; then run boot_tftp_recovery ; setenv flag_recover 1 ; run boot_default ; fi ; bootmenu
|
||||
+boot_default=if env exists flag_recover ; then else run bootcmd ; fi ; run boot_recovery ; setenv replacevol 1 ; run boot_tftp_forever
|
||||
+boot_production=run ubi_read_production && bootm $loadaddr#$bootconf
|
||||
+boot_recovery=run ubi_read_recovery && bootm $loadaddr#$bootconf
|
||||
+boot_ubi=run boot_production ; run boot_recovery ; run boot_tftp_forever
|
||||
+boot_tftp_forever=while true ; do run boot_tftp_recovery ; sleep 1 ; done
|
||||
+boot_tftp_recovery=tftpboot $loadaddr $bootfile && env exists replacevol && iminfo $loadaddr && run ubi_write_recovery ; if env exists noboot ; then else bootm $loadaddr#$bootconf ; fi
|
||||
+boot_tftp_production=tftpboot $loadaddr $bootfile_upg && env exists replacevol && iminfo $loadaddr && run ubi_write_production ; if env exists noboot ; then else bootm $loadaddr#$bootconf ; fi
|
||||
+boot_tftp=tftpboot $loadaddr $bootfile && bootm $loadaddr#$bootconf
|
||||
+boot_tftp_write_fip=tftpboot $loadaddr $bootfile_fip && run mtd_write_fip && run reset_factory
|
||||
+boot_tftp_write_bl2=tftpboot $loadaddr $bootfile_bl2 && run mtd_write_bl2
|
||||
+part_fit=fit
|
||||
+reset_factory=ubi part ubi ; mw $loadaddr 0x0 0x800 ; ubi write $loadaddr ubootenv 0x800 ; ubi write $loadaddr ubootenv2 0x800
|
||||
+mtd_write_fip=mtd erase fip && mtd write fip $loadaddr
|
||||
+mtd_write_bl2=mtd erase bl2 && mtd write bl2 $loadaddr
|
||||
+ubi_create_env=ubi check ubootenv || ubi create ubootenv 0x100000 dynamic 0 ; ubi check ubootenv2 || ubi create ubootenv2 0x100000 dynamic 1
|
||||
+ubi_format=ubi detach ; mtd erase ubi && ubi part ubi ; reset
|
||||
+ubi_prepare_rootfs=if ubi check rootfs_data ; then else if env exists rootfs_data_max ; then ubi create rootfs_data $rootfs_data_max dynamic || ubi create rootfs_data - dynamic ; else ubi create rootfs_data - dynamic ; fi ; fi
|
||||
+ubi_read_production=ubi read $loadaddr $part_fit && iminfo $loadaddr && run ubi_prepare_rootfs
|
||||
+ubi_read_recovery=ubi check recovery && ubi read $loadaddr recovery
|
||||
+ubi_remove_rootfs=ubi check rootfs_data && ubi remove rootfs_data
|
||||
+ubi_write_production=ubi check fit && ubi remove fit ; run ubi_remove_rootfs ; ubi create fit $filesize dynamic && ubi write $loadaddr fit $filesize
|
||||
+ubi_write_recovery=ubi check recovery && ubi remove recovery ; run ubi_remove_rootfs ; ubi create recovery $filesize dynamic && ubi write $loadaddr recovery $filesize
|
||||
+_init_env=setenv _init_env ; run ubi_create_env ; saveenv ; saveenv
|
||||
+_firstboot=setenv _firstboot ; run ethaddr_factory ; run _switch_to_menu ; run _init_env ; run boot_first
|
||||
+_switch_to_menu=setenv _switch_to_menu ; setenv bootdelay 3 ; setenv bootmenu_delay 3 ; setenv bootmenu_0 $bootmenu_0d ; setenv bootmenu_0d ; run _bootmenu_update_title
|
||||
+_bootmenu_update_title=setenv _bootmenu_update_title ; setenv bootmenu_title "$bootmenu_title [33m$ver[0m"
|
|
@ -19,6 +19,7 @@ include $(INCLUDE_DIR)/host-build.mk
|
|||
|
||||
define U-Boot/Default
|
||||
BUILD_TARGET:=mxs
|
||||
BUILD_SUBTARGET:=generic
|
||||
UBOOT_IMAGE:=u-boot.sb
|
||||
DEFAULT:=y
|
||||
HIDDEN:=1
|
||||
|
|
|
@ -18,6 +18,7 @@ include $(INCLUDE_DIR)/package.mk
|
|||
|
||||
define U-Boot/Default
|
||||
BUILD_TARGET:=omap
|
||||
BUILD_SUBTARGET:=generic
|
||||
UBOOT_IMAGE:=u-boot.img MLO
|
||||
endef
|
||||
|
||||
|
|
|
@ -1,6 +1,8 @@
|
|||
setenv fdt_high ffffffff
|
||||
setenv loadkernel fatload mmc 0 \$kernel_addr_r uImage
|
||||
setenv loaddtb fatload mmc 0 \$fdt_addr_r dtb
|
||||
setenv bootargs console=ttyS0,115200 earlyprintk root=/dev/mmcblk0p2 rootwait
|
||||
setenv mmc_rootpart 2
|
||||
part uuid mmc ${mmc_bootdev}:${mmc_rootpart} uuid
|
||||
setenv loadkernel fatload mmc \$mmc_bootdev \$kernel_addr_r uImage
|
||||
setenv loaddtb fatload mmc \$mmc_bootdev \$fdt_addr_r dtb
|
||||
setenv bootargs console=ttyS0,115200 earlyprintk root=PARTUUID=${uuid} rootwait
|
||||
setenv uenvcmd run loadkernel \&\& run loaddtb \&\& bootm \$kernel_addr_r - \$fdt_addr_r
|
||||
run uenvcmd
|
||||
|
|
|
@ -18,6 +18,7 @@ include $(INCLUDE_DIR)/package.mk
|
|||
|
||||
define U-Boot/Default
|
||||
BUILD_TARGET := tegra
|
||||
BUILD_SUBTARGET := generic
|
||||
HIDDEN := y
|
||||
endef
|
||||
|
||||
|
|
|
@ -18,6 +18,7 @@ include $(INCLUDE_DIR)/host-build.mk
|
|||
|
||||
define U-Boot/Default
|
||||
BUILD_TARGET:=zynq
|
||||
BUILD_SUBTARGET:=generic
|
||||
UBOOT_IMAGE:=spl/boot.bin u-boot.img
|
||||
UBOOT_CONFIG:=zynq_$(1)
|
||||
UENV:=default
|
||||
|
|
|
@ -8,12 +8,12 @@
|
|||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=linux-firmware
|
||||
PKG_VERSION:=20221109
|
||||
PKG_RELEASE:=5
|
||||
PKG_VERSION:=20221214
|
||||
PKG_RELEASE:=3
|
||||
|
||||
PKG_SOURCE_URL:=@KERNEL/linux/kernel/firmware
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
|
||||
PKG_HASH:=c0ddffbbcf30f2e015bddd5c6d3ce1f13976b906aceabda4a57e3c41a3190701
|
||||
PKG_HASH:=e793783e92acbde549965521462d1d1327827360664cf242dbda08f075654331
|
||||
|
||||
PKG_MAINTAINER:=Felix Fietkau <nbd@nbd.name>
|
||||
|
||||
|
@ -21,6 +21,9 @@ SCAN_DEPS = *.mk
|
|||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
|
||||
RSTRIP:=:
|
||||
STRIP:=:
|
||||
|
||||
define Package/firmware-default
|
||||
SECTION:=firmware
|
||||
CATEGORY:=Firmware
|
||||
|
|
|
@ -19,5 +19,6 @@ define Package/ath11k-firmware-wcn6855/install
|
|||
$(INSTALL_DIR) $(1)/lib/firmware/ath11k/WCN6855/hw2.0
|
||||
$(INSTALL_DATA) \
|
||||
$(PKG_BUILD_DIR)/ath11k/WCN6855/hw2.0/* $(1)/lib/firmware/ath11k/WCN6855/hw2.0/
|
||||
$(LN) ./hw2.0 $(1)/lib/firmware/ath11k/WCN6855/hw2.1
|
||||
endef
|
||||
$(eval $(call BuildPackage,ath11k-firmware-wcn6855))
|
||||
|
|
|
@ -381,7 +381,7 @@ define KernelPackage/brcmsmac
|
|||
$(call KernelPackage/mac80211/Default)
|
||||
TITLE:=Broadcom IEEE802.11n PCIe SoftMAC WLAN driver
|
||||
URL:=https://wireless.wiki.kernel.org/en/users/drivers/brcm80211
|
||||
DEPENDS+= +kmod-mac80211 +!TARGET_bcm47xx:kmod-bcma +kmod-lib-cordic +kmod-lib-crc8 +kmod-brcmutil +!BRCMSMAC_USE_FW_FROM_WL:brcmsmac-firmware
|
||||
DEPENDS+=@!TARGET_bcm47xx_legacy +kmod-mac80211 +!TARGET_bcm47xx:kmod-bcma +kmod-lib-cordic +kmod-lib-crc8 +kmod-brcmutil +!BRCMSMAC_USE_FW_FROM_WL:brcmsmac-firmware
|
||||
FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/broadcom/brcm80211/brcmsmac/brcmsmac.ko
|
||||
AUTOLOAD:=$(call AutoProbe,brcmsmac)
|
||||
MENU:=1
|
||||
|
|
|
@ -20,7 +20,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||
|
||||
--- a/net/mac80211/rx.c
|
||||
+++ b/net/mac80211/rx.c
|
||||
@@ -4067,6 +4067,56 @@ static void ieee80211_invoke_rx_handlers
|
||||
@@ -4067,6 +4067,58 @@ static void ieee80211_invoke_rx_handlers
|
||||
#undef CALL_RXH
|
||||
}
|
||||
|
||||
|
@ -36,11 +36,15 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||
+static bool ieee80211_rx_data_set_link(struct ieee80211_rx_data *rx,
|
||||
+ u8 link_id)
|
||||
+{
|
||||
+ rx->link_id = link_id;
|
||||
+ rx->link = rcu_dereference(rx->sdata->link[link_id]);
|
||||
+
|
||||
+ if (!rx->sta || !rx->sta->sta.mlo)
|
||||
+ return rx->link;
|
||||
+
|
||||
+ if (!ieee80211_rx_is_valid_sta_link_id(&rx->sta->sta, link_id))
|
||||
+ return false;
|
||||
+
|
||||
+ rx->link_id = link_id;
|
||||
+ rx->link = rcu_dereference(rx->sdata->link[link_id]);
|
||||
+ rx->link_sta = rcu_dereference(rx->sta->link[link_id]);
|
||||
+
|
||||
+ return rx->link && rx->link_sta;
|
||||
|
@ -62,14 +66,12 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||
+ if (!rx->sdata)
|
||||
+ rx->sdata = sta->sdata;
|
||||
+ rx->link_sta = &sta->deflink;
|
||||
+
|
||||
+ if (link_id >= 0 &&
|
||||
+ !ieee80211_rx_data_set_link(rx, link_id))
|
||||
+ return false;
|
||||
+ }
|
||||
+
|
||||
+ if (link_id < 0)
|
||||
+ rx->link = &rx->sdata->deflink;
|
||||
+ else if (!ieee80211_rx_data_set_link(rx, link_id))
|
||||
+ return false;
|
||||
+
|
||||
+ return true;
|
||||
+}
|
||||
|
@ -77,7 +79,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||
/*
|
||||
* This function makes calls into the RX path, therefore
|
||||
* it has to be invoked under RCU read lock.
|
||||
@@ -4075,16 +4125,19 @@ void ieee80211_release_reorder_timeout(s
|
||||
@@ -4075,16 +4127,19 @@ void ieee80211_release_reorder_timeout(s
|
||||
{
|
||||
struct sk_buff_head frames;
|
||||
struct ieee80211_rx_data rx = {
|
||||
|
@ -102,7 +104,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||
|
||||
tid_agg_rx = rcu_dereference(sta->ampdu_mlme.tid_rx[tid]);
|
||||
if (!tid_agg_rx)
|
||||
@@ -4104,10 +4157,6 @@ void ieee80211_release_reorder_timeout(s
|
||||
@@ -4104,10 +4159,6 @@ void ieee80211_release_reorder_timeout(s
|
||||
};
|
||||
drv_event_callback(rx.local, rx.sdata, &event);
|
||||
}
|
||||
|
@ -113,7 +115,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||
|
||||
ieee80211_rx_handlers(&rx, &frames);
|
||||
}
|
||||
@@ -4123,7 +4172,6 @@ void ieee80211_mark_rx_ba_filtered_frame
|
||||
@@ -4123,7 +4174,6 @@ void ieee80211_mark_rx_ba_filtered_frame
|
||||
/* This is OK -- must be QoS data frame */
|
||||
.security_idx = tid,
|
||||
.seqno_idx = tid,
|
||||
|
@ -121,7 +123,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||
};
|
||||
int i, diff;
|
||||
|
||||
@@ -4134,10 +4182,8 @@ void ieee80211_mark_rx_ba_filtered_frame
|
||||
@@ -4134,10 +4184,8 @@ void ieee80211_mark_rx_ba_filtered_frame
|
||||
|
||||
sta = container_of(pubsta, struct sta_info, sta);
|
||||
|
||||
|
@ -134,7 +136,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||
|
||||
rcu_read_lock();
|
||||
tid_agg_rx = rcu_dereference(sta->ampdu_mlme.tid_rx[tid]);
|
||||
@@ -4524,15 +4570,6 @@ void ieee80211_check_fast_rx_iface(struc
|
||||
@@ -4524,15 +4572,6 @@ void ieee80211_check_fast_rx_iface(struc
|
||||
mutex_unlock(&local->sta_mtx);
|
||||
}
|
||||
|
||||
|
@ -150,7 +152,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||
static void ieee80211_rx_8023(struct ieee80211_rx_data *rx,
|
||||
struct ieee80211_fast_rx *fast_rx,
|
||||
int orig_len)
|
||||
@@ -4643,7 +4680,6 @@ static bool ieee80211_invoke_fast_rx(str
|
||||
@@ -4643,7 +4682,6 @@ static bool ieee80211_invoke_fast_rx(str
|
||||
struct sk_buff *skb = rx->skb;
|
||||
struct ieee80211_hdr *hdr = (void *)skb->data;
|
||||
struct ieee80211_rx_status *status = IEEE80211_SKB_RXCB(skb);
|
||||
|
@ -158,7 +160,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||
int orig_len = skb->len;
|
||||
int hdrlen = ieee80211_hdrlen(hdr->frame_control);
|
||||
int snap_offs = hdrlen;
|
||||
@@ -4655,7 +4691,6 @@ static bool ieee80211_invoke_fast_rx(str
|
||||
@@ -4655,7 +4693,6 @@ static bool ieee80211_invoke_fast_rx(str
|
||||
u8 da[ETH_ALEN];
|
||||
u8 sa[ETH_ALEN];
|
||||
} addrs __aligned(2);
|
||||
|
@ -166,7 +168,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||
struct ieee80211_sta_rx_stats *stats;
|
||||
|
||||
/* for parallel-rx, we need to have DUP_VALIDATED, otherwise we write
|
||||
@@ -4758,18 +4793,10 @@ static bool ieee80211_invoke_fast_rx(str
|
||||
@@ -4758,18 +4795,10 @@ static bool ieee80211_invoke_fast_rx(str
|
||||
drop:
|
||||
dev_kfree_skb(skb);
|
||||
|
||||
|
@ -187,7 +189,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||
|
||||
stats->dropped++;
|
||||
return true;
|
||||
@@ -4787,8 +4814,8 @@ static bool ieee80211_prepare_and_rx_han
|
||||
@@ -4787,8 +4816,8 @@ static bool ieee80211_prepare_and_rx_han
|
||||
struct ieee80211_local *local = rx->local;
|
||||
struct ieee80211_sub_if_data *sdata = rx->sdata;
|
||||
struct ieee80211_hdr *hdr = (void *)skb->data;
|
||||
|
@ -198,7 +200,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||
|
||||
rx->skb = skb;
|
||||
|
||||
@@ -4810,35 +4837,6 @@ static bool ieee80211_prepare_and_rx_han
|
||||
@@ -4810,35 +4839,6 @@ static bool ieee80211_prepare_and_rx_han
|
||||
if (!ieee80211_accept_frame(rx))
|
||||
return false;
|
||||
|
||||
|
@ -234,7 +236,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||
if (!consume) {
|
||||
struct skb_shared_hwtstamps *shwt;
|
||||
|
||||
@@ -4858,7 +4856,7 @@ static bool ieee80211_prepare_and_rx_han
|
||||
@@ -4858,7 +4858,7 @@ static bool ieee80211_prepare_and_rx_han
|
||||
shwt->hwtstamp = skb_hwtstamps(skb)->hwtstamp;
|
||||
}
|
||||
|
||||
|
@ -243,7 +245,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||
/* translate to MLD addresses */
|
||||
if (ether_addr_equal(link->conf->addr, hdr->addr1))
|
||||
ether_addr_copy(hdr->addr1, rx->sdata->vif.addr);
|
||||
@@ -4888,6 +4886,7 @@ static void __ieee80211_rx_handle_8023(s
|
||||
@@ -4888,6 +4888,7 @@ static void __ieee80211_rx_handle_8023(s
|
||||
struct ieee80211_rx_status *status = IEEE80211_SKB_RXCB(skb);
|
||||
struct ieee80211_fast_rx *fast_rx;
|
||||
struct ieee80211_rx_data rx;
|
||||
|
@ -251,7 +253,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||
|
||||
memset(&rx, 0, sizeof(rx));
|
||||
rx.skb = skb;
|
||||
@@ -4904,12 +4903,8 @@ static void __ieee80211_rx_handle_8023(s
|
||||
@@ -4904,12 +4905,8 @@ static void __ieee80211_rx_handle_8023(s
|
||||
if (!pubsta)
|
||||
goto drop;
|
||||
|
||||
|
@ -266,7 +268,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||
|
||||
/*
|
||||
* TODO: Should the frame be dropped if the right link_id is not
|
||||
@@ -4918,19 +4913,8 @@ static void __ieee80211_rx_handle_8023(s
|
||||
@@ -4918,19 +4915,8 @@ static void __ieee80211_rx_handle_8023(s
|
||||
* link_id is used only for stats purpose and updating the stats on
|
||||
* the deflink is fine?
|
||||
*/
|
||||
|
@ -288,7 +290,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||
|
||||
fast_rx = rcu_dereference(rx.sta->fast_rx);
|
||||
if (!fast_rx)
|
||||
@@ -4948,6 +4932,8 @@ static bool ieee80211_rx_for_interface(s
|
||||
@@ -4948,6 +4934,8 @@ static bool ieee80211_rx_for_interface(s
|
||||
{
|
||||
struct link_sta_info *link_sta;
|
||||
struct ieee80211_hdr *hdr = (void *)skb->data;
|
||||
|
@ -297,7 +299,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||
|
||||
/*
|
||||
* Look up link station first, in case there's a
|
||||
@@ -4957,24 +4943,19 @@ static bool ieee80211_rx_for_interface(s
|
||||
@@ -4957,24 +4945,19 @@ static bool ieee80211_rx_for_interface(s
|
||||
*/
|
||||
link_sta = link_sta_info_get_bss(rx->sdata, hdr->addr2);
|
||||
if (link_sta) {
|
||||
|
@ -330,7 +332,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||
return ieee80211_prepare_and_rx_handle(rx, skb, consume);
|
||||
}
|
||||
|
||||
@@ -5033,19 +5014,15 @@ static void __ieee80211_rx_handle_packet
|
||||
@@ -5033,19 +5016,15 @@ static void __ieee80211_rx_handle_packet
|
||||
|
||||
if (ieee80211_is_data(fc)) {
|
||||
struct sta_info *sta, *prev_sta;
|
||||
|
@ -355,7 +357,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||
/*
|
||||
* In MLO connection, fetch the link_id using addr2
|
||||
* when the driver does not pass link_id in status.
|
||||
@@ -5063,7 +5040,7 @@ static void __ieee80211_rx_handle_packet
|
||||
@@ -5063,7 +5042,7 @@ static void __ieee80211_rx_handle_packet
|
||||
if (!link_sta)
|
||||
goto out;
|
||||
|
||||
|
@ -364,7 +366,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||
}
|
||||
|
||||
if (ieee80211_prepare_and_rx_handle(&rx, skb, true))
|
||||
@@ -5079,30 +5056,25 @@ static void __ieee80211_rx_handle_packet
|
||||
@@ -5079,30 +5058,27 @@ static void __ieee80211_rx_handle_packet
|
||||
continue;
|
||||
}
|
||||
|
||||
|
@ -372,6 +374,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||
- !ieee80211_rx_is_valid_sta_link_id(&prev_sta->sta,
|
||||
- link_id)) ||
|
||||
- (!status->link_valid && prev_sta->sta.mlo))
|
||||
+ rx.sdata = prev_sta->sdata;
|
||||
+ if (!ieee80211_rx_data_set_sta(&rx, &prev_sta->sta,
|
||||
+ link_id))
|
||||
+ goto out;
|
||||
|
@ -392,6 +395,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||
- !ieee80211_rx_is_valid_sta_link_id(&prev_sta->sta,
|
||||
- link_id)) ||
|
||||
- (!status->link_valid && prev_sta->sta.mlo))
|
||||
+ rx.sdata = prev_sta->sdata;
|
||||
+ if (!ieee80211_rx_data_set_sta(&rx, &prev_sta->sta,
|
||||
+ link_id))
|
||||
goto out;
|
||||
|
|
|
@ -8,9 +8,9 @@ PKG_LICENSE_FILES:=
|
|||
|
||||
PKG_SOURCE_URL:=https://github.com/openwrt/mt76
|
||||
PKG_SOURCE_PROTO:=git
|
||||
PKG_SOURCE_DATE:=2022-12-09
|
||||
PKG_SOURCE_VERSION:=7fae1de12ae7832a6095fd2df198f41fabd5223d
|
||||
PKG_MIRROR_HASH:=c2bf2f23265d5e181c275a62a64f487b190f19b43fc4c584b62b9e6c16e992ef
|
||||
PKG_SOURCE_DATE:=2022-12-22
|
||||
PKG_SOURCE_VERSION:=5b509e80384ab019ac11aa90c81ec0dbb5b0d7f2
|
||||
PKG_MIRROR_HASH:=6fc25df4d28becd010ff4971b23731c08b53e69381a9e4c868091899712f78a9
|
||||
|
||||
PKG_MAINTAINER:=Felix Fietkau <nbd@nbd.name>
|
||||
PKG_USE_NINJA:=0
|
||||
|
|
|
@ -14,6 +14,7 @@ PKG_LICENSE_FILES:=COPYING
|
|||
PKG_INSTALL:=1
|
||||
PKG_BUILD_PARALLEL:=1
|
||||
PKG_BUILD_DEPENDS := libmd
|
||||
PKG_FIXUP:=autoreconf
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
|
||||
|
|
13
package/libs/libbsd/patches/001-fix-libpath.patch
Normal file
13
package/libs/libbsd/patches/001-fix-libpath.patch
Normal file
|
@ -0,0 +1,13 @@
|
|||
do not use host path to fix cross compiling
|
||||
|
||||
--- a/src/Makefile.am
|
||||
+++ b/src/Makefile.am
|
||||
@@ -160,7 +160,7 @@
|
||||
(echo '/* GNU ld script'; \
|
||||
echo ' * The MD5 functions are provided by the libmd library. */'; \
|
||||
cat format.ld; \
|
||||
- echo "GROUP($(runtimelibdir)/$$soname AS_NEEDED($(MD5_LIBS)))"; \
|
||||
+ echo "GROUP($$soname AS_NEEDED($(MD5_LIBS)))"; \
|
||||
)>$(DESTDIR)$(libdir)/libbsd.so
|
||||
else
|
||||
if [ "$(libdir)" != "$(runtimelibdir)" ]; then \
|
|
@ -8,13 +8,13 @@
|
|||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=mbedtls
|
||||
PKG_VERSION:=2.28.1
|
||||
PKG_RELEASE:=$(AUTORELEASE)
|
||||
PKG_VERSION:=2.28.2
|
||||
PKG_RELEASE:=1
|
||||
PKG_USE_MIPS16:=0
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
||||
PKG_SOURCE_URL:=https://codeload.github.com/ARMmbed/mbedtls/tar.gz/v$(PKG_VERSION)?
|
||||
PKG_HASH:=6797a7b6483ef589deeab8d33d401ed235d7be25eeecda1be8ddfed406d40ff4
|
||||
PKG_HASH:=bc55232bf71fd66045122ba9050a29ea7cb2e8f99b064a9e6334a82f715881a0
|
||||
|
||||
PKG_LICENSE:=GPL-2.0-or-later
|
||||
PKG_LICENSE_FILES:=gpl-2.0.txt
|
||||
|
|
|
@ -4,7 +4,7 @@ Bug report: https://github.com/Mbed-TLS/mbedtls/issues/6243
|
|||
|
||||
--- a/programs/ssl/ssl_server2.c
|
||||
+++ b/programs/ssl/ssl_server2.c
|
||||
@@ -2511,7 +2511,6 @@ int main( int argc, char *argv[] )
|
||||
@@ -2529,7 +2529,6 @@ int main( int argc, char *argv[] )
|
||||
}
|
||||
key_cert_init2 = 2;
|
||||
#endif /* MBEDTLS_ECDSA_C */
|
||||
|
@ -12,11 +12,11 @@ Bug report: https://github.com/Mbed-TLS/mbedtls/issues/6243
|
|||
|
||||
#if defined(MBEDTLS_USE_PSA_CRYPTO)
|
||||
if( opt.key_opaque != 0 )
|
||||
@@ -2540,6 +2539,7 @@ int main( int argc, char *argv[] )
|
||||
@@ -2558,6 +2557,7 @@ int main( int argc, char *argv[] )
|
||||
}
|
||||
#endif /* MBEDTLS_USE_PSA_CRYPTO */
|
||||
#endif /* MBEDTLS_CERTS_C */
|
||||
+ }
|
||||
|
||||
mbedtls_printf( " ok (key types: %s - %s)\n", mbedtls_pk_get_name( &pkey ), mbedtls_pk_get_name( &pkey2 ) );
|
||||
#endif /* MBEDTLS_X509_CRT_PARSE_C */
|
||||
#endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */
|
||||
|
|
|
@ -5,9 +5,9 @@ PKG_RELEASE:=1
|
|||
|
||||
PKG_SOURCE_PROTO:=git
|
||||
PKG_SOURCE_URL=$(PROJECT_GIT)/project/netifd.git
|
||||
PKG_SOURCE_DATE:=2022-08-25
|
||||
PKG_SOURCE_VERSION:=76d2d41b7355e02f95fbfa79affbd232fb090595
|
||||
PKG_MIRROR_HASH:=cd754decce7d9f9c69e0ad8c6801f306fa37dd6c8a7039aea610c1c71d06b8f9
|
||||
PKG_SOURCE_DATE:=2022-12-30
|
||||
PKG_SOURCE_VERSION:=81c1fbcba2f27f687c2a471f341502d47679f401
|
||||
PKG_MIRROR_HASH:=41d19f2804759aa42708942e27116bec78b169abee639d97c2ec7f0f62fa7739
|
||||
PKG_MAINTAINER:=Felix Fietkau <nbd@nbd.name>
|
||||
|
||||
PKG_LICENSE:=GPL-2.0
|
||||
|
|
|
@ -8,13 +8,13 @@
|
|||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=dnsmasq
|
||||
PKG_UPSTREAM_VERSION:=2.87
|
||||
PKG_UPSTREAM_VERSION:=2.88
|
||||
PKG_VERSION:=$(subst test,~~test,$(subst rc,~rc,$(PKG_UPSTREAM_VERSION)))
|
||||
PKG_RELEASE:=$(AUTORELEASE)
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_UPSTREAM_VERSION).tar.xz
|
||||
PKG_SOURCE_URL:=https://thekelleys.org.uk/dnsmasq/
|
||||
PKG_HASH:=0228c0364a7f2356fd7e7f1549937cbf3099a78d3b2eb1ba5bb0c31e2b89de7a
|
||||
PKG_HASH:=23544deda10340c053bea6f15a93fed6ea7f5aaa85316bfc671ffa6d22fbc1b3
|
||||
|
||||
PKG_LICENSE:=GPL-2.0
|
||||
PKG_LICENSE_FILES:=COPYING
|
||||
|
|
|
@ -26,7 +26,7 @@ Signed-off-by: Kevin Darbyshire-Bryant <ldir@darbyshire-bryant.me.uk>
|
|||
|
||||
--- a/src/dnsmasq.h
|
||||
+++ b/src/dnsmasq.h
|
||||
@@ -1229,7 +1229,7 @@ extern struct daemon {
|
||||
@@ -1247,7 +1247,7 @@ extern struct daemon {
|
||||
int inotifyfd;
|
||||
#endif
|
||||
#if defined(HAVE_LINUX_NETWORK)
|
||||
|
@ -35,7 +35,7 @@ Signed-off-by: Kevin Darbyshire-Bryant <ldir@darbyshire-bryant.me.uk>
|
|||
#elif defined(HAVE_BSD_NETWORK)
|
||||
int dhcp_raw_fd, dhcp_icmp_fd, routefd;
|
||||
#endif
|
||||
@@ -1422,9 +1422,6 @@ int read_write(int fd, unsigned char *pa
|
||||
@@ -1452,9 +1452,6 @@ int read_write(int fd, unsigned char *pa
|
||||
void close_fds(long max_fd, int spare1, int spare2, int spare3);
|
||||
int wildcard_match(const char* wildcard, const char* match);
|
||||
int wildcard_matchn(const char* wildcard, const char* match, int num);
|
||||
|
@ -140,7 +140,7 @@ Signed-off-by: Kevin Darbyshire-Bryant <ldir@darbyshire-bryant.me.uk>
|
|||
my_syslog(LOG_ERR, _("failed to update ipset %s: %s"), setname, strerror(errno));
|
||||
--- a/src/util.c
|
||||
+++ b/src/util.c
|
||||
@@ -833,22 +833,3 @@ int wildcard_matchn(const char* wildcard
|
||||
@@ -855,22 +855,3 @@ int wildcard_matchn(const char* wildcard
|
||||
|
||||
return (!num) || (*wildcard == *match);
|
||||
}
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
--- a/src/dnsmasq.h
|
||||
+++ b/src/dnsmasq.h
|
||||
@@ -1598,14 +1598,26 @@ void emit_dbus_signal(int action, struct
|
||||
@@ -1630,14 +1630,26 @@ void emit_dbus_signal(int action, struct
|
||||
|
||||
/* ubus.c */
|
||||
#ifdef HAVE_UBUS
|
||||
|
@ -151,7 +151,7 @@
|
|||
if (!ADD_RDLEN(header, p, qlen, rdlen))
|
||||
return 0; /* bad packet */
|
||||
}
|
||||
@@ -568,7 +637,7 @@ int extract_addresses(struct dns_header
|
||||
@@ -570,7 +639,7 @@ int extract_addresses(struct dns_header
|
||||
cache_start_insert();
|
||||
|
||||
/* find_soa is needed for dns_doctor side effects, so don't call it lazily if there are any. */
|
||||
|
@ -269,7 +269,7 @@
|
|||
struct ubus_context *ubus = (struct ubus_context *)daemon->ubus;
|
||||
--- a/src/dnsmasq.c
|
||||
+++ b/src/dnsmasq.c
|
||||
@@ -1998,6 +1998,10 @@ static void check_dns_listeners(time_t n
|
||||
@@ -2003,6 +2003,10 @@ static void check_dns_listeners(time_t n
|
||||
daemon->pipe_to_parent = pipefd[1];
|
||||
}
|
||||
|
||||
|
|
|
@ -139,11 +139,6 @@ ifneq ($(LOCAL_TYPE),hostapd)
|
|||
endif
|
||||
endif
|
||||
|
||||
ifdef CONFIG_USE_GLIBC
|
||||
TARGET_LDFLAGS += -lrt
|
||||
TARGET_LDFLAGS_C += -lrt
|
||||
endif
|
||||
|
||||
DRV_DEPENDS:=+PACKAGE_kmod-cfg80211:libnl-tiny
|
||||
|
||||
|
||||
|
|
|
@ -0,0 +1,298 @@
|
|||
--- a/src/radius/radius_das.h
|
||||
+++ b/src/radius/radius_das.h
|
||||
@@ -44,6 +44,7 @@ struct radius_das_attrs {
|
||||
struct radius_das_conf {
|
||||
int port;
|
||||
const u8 *shared_secret;
|
||||
+ const u8 *nas_identifier;
|
||||
size_t shared_secret_len;
|
||||
const struct hostapd_ip_addr *client_addr;
|
||||
unsigned int time_window;
|
||||
--- a/src/ap/hostapd.c
|
||||
+++ b/src/ap/hostapd.c
|
||||
@@ -1367,6 +1367,7 @@ static int hostapd_setup_bss(struct host
|
||||
struct radius_das_conf das_conf;
|
||||
os_memset(&das_conf, 0, sizeof(das_conf));
|
||||
das_conf.port = conf->radius_das_port;
|
||||
+ das_conf.nas_identifier = conf->nas_identifier;
|
||||
das_conf.shared_secret = conf->radius_das_shared_secret;
|
||||
das_conf.shared_secret_len =
|
||||
conf->radius_das_shared_secret_len;
|
||||
--- a/src/radius/radius_das.c
|
||||
+++ b/src/radius/radius_das.c
|
||||
@@ -12,13 +12,26 @@
|
||||
#include "utils/common.h"
|
||||
#include "utils/eloop.h"
|
||||
#include "utils/ip_addr.h"
|
||||
+#include "utils/list.h"
|
||||
#include "radius.h"
|
||||
#include "radius_das.h"
|
||||
|
||||
|
||||
-struct radius_das_data {
|
||||
+static struct dl_list das_ports = DL_LIST_HEAD_INIT(das_ports);
|
||||
+
|
||||
+struct radius_das_port {
|
||||
+ struct dl_list list;
|
||||
+ struct dl_list das_data;
|
||||
+
|
||||
+ int port;
|
||||
int sock;
|
||||
+};
|
||||
+
|
||||
+struct radius_das_data {
|
||||
+ struct dl_list list;
|
||||
+ struct radius_das_port *port;
|
||||
u8 *shared_secret;
|
||||
+ u8 *nas_identifier;
|
||||
size_t shared_secret_len;
|
||||
struct hostapd_ip_addr client_addr;
|
||||
unsigned int time_window;
|
||||
@@ -378,56 +391,17 @@ fail:
|
||||
}
|
||||
|
||||
|
||||
-static void radius_das_receive(int sock, void *eloop_ctx, void *sock_ctx)
|
||||
+static void
|
||||
+radius_das_receive_msg(struct radius_das_data *das, struct radius_msg *msg,
|
||||
+ struct sockaddr *from, socklen_t fromlen,
|
||||
+ char *abuf, int from_port)
|
||||
{
|
||||
- struct radius_das_data *das = eloop_ctx;
|
||||
- u8 buf[1500];
|
||||
- union {
|
||||
- struct sockaddr_storage ss;
|
||||
- struct sockaddr_in sin;
|
||||
-#ifdef CONFIG_IPV6
|
||||
- struct sockaddr_in6 sin6;
|
||||
-#endif /* CONFIG_IPV6 */
|
||||
- } from;
|
||||
- char abuf[50];
|
||||
- int from_port = 0;
|
||||
- socklen_t fromlen;
|
||||
- int len;
|
||||
- struct radius_msg *msg, *reply = NULL;
|
||||
+ struct radius_msg *reply = NULL;
|
||||
struct radius_hdr *hdr;
|
||||
struct wpabuf *rbuf;
|
||||
+ struct os_time now;
|
||||
u32 val;
|
||||
int res;
|
||||
- struct os_time now;
|
||||
-
|
||||
- fromlen = sizeof(from);
|
||||
- len = recvfrom(sock, buf, sizeof(buf), 0,
|
||||
- (struct sockaddr *) &from.ss, &fromlen);
|
||||
- if (len < 0) {
|
||||
- wpa_printf(MSG_ERROR, "DAS: recvfrom: %s", strerror(errno));
|
||||
- return;
|
||||
- }
|
||||
-
|
||||
- os_strlcpy(abuf, inet_ntoa(from.sin.sin_addr), sizeof(abuf));
|
||||
- from_port = ntohs(from.sin.sin_port);
|
||||
-
|
||||
- wpa_printf(MSG_DEBUG, "DAS: Received %d bytes from %s:%d",
|
||||
- len, abuf, from_port);
|
||||
- if (das->client_addr.u.v4.s_addr &&
|
||||
- das->client_addr.u.v4.s_addr != from.sin.sin_addr.s_addr) {
|
||||
- wpa_printf(MSG_DEBUG, "DAS: Drop message from unknown client");
|
||||
- return;
|
||||
- }
|
||||
-
|
||||
- msg = radius_msg_parse(buf, len);
|
||||
- if (msg == NULL) {
|
||||
- wpa_printf(MSG_DEBUG, "DAS: Parsing incoming RADIUS packet "
|
||||
- "from %s:%d failed", abuf, from_port);
|
||||
- return;
|
||||
- }
|
||||
-
|
||||
- if (wpa_debug_level <= MSG_MSGDUMP)
|
||||
- radius_msg_dump(msg);
|
||||
|
||||
if (radius_msg_verify_das_req(msg, das->shared_secret,
|
||||
das->shared_secret_len,
|
||||
@@ -494,9 +468,8 @@ static void radius_das_receive(int sock,
|
||||
radius_msg_dump(reply);
|
||||
|
||||
rbuf = radius_msg_get_buf(reply);
|
||||
- res = sendto(das->sock, wpabuf_head(rbuf),
|
||||
- wpabuf_len(rbuf), 0,
|
||||
- (struct sockaddr *) &from.ss, fromlen);
|
||||
+ res = sendto(das->port->sock, wpabuf_head(rbuf),
|
||||
+ wpabuf_len(rbuf), 0, from, fromlen);
|
||||
if (res < 0) {
|
||||
wpa_printf(MSG_ERROR, "DAS: sendto(to %s:%d): %s",
|
||||
abuf, from_port, strerror(errno));
|
||||
@@ -508,6 +481,72 @@ fail:
|
||||
radius_msg_free(reply);
|
||||
}
|
||||
|
||||
+static void radius_das_receive(int sock, void *eloop_ctx, void *sock_ctx)
|
||||
+{
|
||||
+ struct radius_das_port *p = eloop_ctx;
|
||||
+ struct radius_das_data *das;
|
||||
+ u8 buf[1500];
|
||||
+ union {
|
||||
+ struct sockaddr_storage ss;
|
||||
+ struct sockaddr_in sin;
|
||||
+#ifdef CONFIG_IPV6
|
||||
+ struct sockaddr_in6 sin6;
|
||||
+#endif /* CONFIG_IPV6 */
|
||||
+ } from;
|
||||
+ struct radius_msg *msg;
|
||||
+ size_t nasid_len = 0;
|
||||
+ u8 *nasid_buf = NULL;
|
||||
+ char abuf[50];
|
||||
+ int from_port = 0;
|
||||
+ socklen_t fromlen;
|
||||
+ int found = 0;
|
||||
+ int len;
|
||||
+
|
||||
+ fromlen = sizeof(from);
|
||||
+ len = recvfrom(sock, buf, sizeof(buf), 0,
|
||||
+ (struct sockaddr *) &from.ss, &fromlen);
|
||||
+ if (len < 0) {
|
||||
+ wpa_printf(MSG_ERROR, "DAS: recvfrom: %s", strerror(errno));
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
+ os_strlcpy(abuf, inet_ntoa(from.sin.sin_addr), sizeof(abuf));
|
||||
+ from_port = ntohs(from.sin.sin_port);
|
||||
+
|
||||
+ msg = radius_msg_parse(buf, len);
|
||||
+ if (msg == NULL) {
|
||||
+ wpa_printf(MSG_DEBUG, "DAS: Parsing incoming RADIUS packet "
|
||||
+ "from %s:%d failed", abuf, from_port);
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
+ wpa_printf(MSG_DEBUG, "DAS: Received %d bytes from %s:%d",
|
||||
+ len, abuf, from_port);
|
||||
+
|
||||
+ if (wpa_debug_level <= MSG_MSGDUMP)
|
||||
+ radius_msg_dump(msg);
|
||||
+
|
||||
+ radius_msg_get_attr_ptr(msg, RADIUS_ATTR_NAS_IDENTIFIER,
|
||||
+ &nasid_buf, &nasid_len, NULL);
|
||||
+ dl_list_for_each(das, &p->das_data, struct radius_das_data, list) {
|
||||
+ if (das->client_addr.u.v4.s_addr &&
|
||||
+ das->client_addr.u.v4.s_addr != from.sin.sin_addr.s_addr)
|
||||
+ continue;
|
||||
+
|
||||
+ if (das->nas_identifier && nasid_buf &&
|
||||
+ (nasid_len != os_strlen(das->nas_identifier) ||
|
||||
+ os_memcmp(das->nas_identifier, nasid_buf, nasid_len) != 0))
|
||||
+ continue;
|
||||
+
|
||||
+ found = 1;
|
||||
+ radius_das_receive_msg(das, msg, (struct sockaddr *)&from.ss,
|
||||
+ fromlen, abuf, from_port);
|
||||
+ }
|
||||
+
|
||||
+ if (!found)
|
||||
+ wpa_printf(MSG_DEBUG, "DAS: Drop message from unknown client");
|
||||
+}
|
||||
+
|
||||
|
||||
static int radius_das_open_socket(int port)
|
||||
{
|
||||
@@ -533,6 +572,49 @@ static int radius_das_open_socket(int po
|
||||
}
|
||||
|
||||
|
||||
+static struct radius_das_port *
|
||||
+radius_das_open_port(int port)
|
||||
+{
|
||||
+ struct radius_das_port *p;
|
||||
+
|
||||
+ dl_list_for_each(p, &das_ports, struct radius_das_port, list) {
|
||||
+ if (p->port == port)
|
||||
+ return p;
|
||||
+ }
|
||||
+
|
||||
+ p = os_zalloc(sizeof(*p));
|
||||
+ if (p == NULL)
|
||||
+ return NULL;
|
||||
+
|
||||
+ dl_list_init(&p->das_data);
|
||||
+ p->port = port;
|
||||
+ p->sock = radius_das_open_socket(port);
|
||||
+ if (p->sock < 0)
|
||||
+ goto free_port;
|
||||
+
|
||||
+ if (eloop_register_read_sock(p->sock, radius_das_receive, p, NULL))
|
||||
+ goto close_port;
|
||||
+
|
||||
+ dl_list_add(&das_ports, &p->list);
|
||||
+
|
||||
+ return p;
|
||||
+
|
||||
+close_port:
|
||||
+ close(p->sock);
|
||||
+free_port:
|
||||
+ os_free(p);
|
||||
+
|
||||
+ return NULL;
|
||||
+}
|
||||
+
|
||||
+static void radius_das_close_port(struct radius_das_port *p)
|
||||
+{
|
||||
+ dl_list_del(&p->list);
|
||||
+ eloop_unregister_read_sock(p->sock);
|
||||
+ close(p->sock);
|
||||
+ free(p);
|
||||
+}
|
||||
+
|
||||
struct radius_das_data *
|
||||
radius_das_init(struct radius_das_conf *conf)
|
||||
{
|
||||
@@ -553,6 +635,8 @@ radius_das_init(struct radius_das_conf *
|
||||
das->ctx = conf->ctx;
|
||||
das->disconnect = conf->disconnect;
|
||||
das->coa = conf->coa;
|
||||
+ if (conf->nas_identifier)
|
||||
+ das->nas_identifier = os_strdup(conf->nas_identifier);
|
||||
|
||||
os_memcpy(&das->client_addr, conf->client_addr,
|
||||
sizeof(das->client_addr));
|
||||
@@ -565,19 +649,15 @@ radius_das_init(struct radius_das_conf *
|
||||
}
|
||||
das->shared_secret_len = conf->shared_secret_len;
|
||||
|
||||
- das->sock = radius_das_open_socket(conf->port);
|
||||
- if (das->sock < 0) {
|
||||
+ das->port = radius_das_open_port(conf->port);
|
||||
+ if (!das->port) {
|
||||
wpa_printf(MSG_ERROR, "Failed to open UDP socket for RADIUS "
|
||||
"DAS");
|
||||
radius_das_deinit(das);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
- if (eloop_register_read_sock(das->sock, radius_das_receive, das, NULL))
|
||||
- {
|
||||
- radius_das_deinit(das);
|
||||
- return NULL;
|
||||
- }
|
||||
+ dl_list_add(&das->port->das_data, &das->list);
|
||||
|
||||
return das;
|
||||
}
|
||||
@@ -588,11 +668,14 @@ void radius_das_deinit(struct radius_das
|
||||
if (das == NULL)
|
||||
return;
|
||||
|
||||
- if (das->sock >= 0) {
|
||||
- eloop_unregister_read_sock(das->sock);
|
||||
- close(das->sock);
|
||||
+ if (das->port) {
|
||||
+ dl_list_del(&das->list);
|
||||
+
|
||||
+ if (dl_list_empty(&das->port->das_data))
|
||||
+ radius_das_close_port(das->port);
|
||||
}
|
||||
|
||||
+ os_free(das->nas_identifier);
|
||||
os_free(das->shared_secret);
|
||||
os_free(das);
|
||||
}
|
|
@ -8,13 +8,13 @@
|
|||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=uhttpd
|
||||
PKG_RELEASE:=3
|
||||
PKG_RELEASE:=1
|
||||
|
||||
PKG_SOURCE_PROTO:=git
|
||||
PKG_SOURCE_URL=$(PROJECT_GIT)/project/uhttpd.git
|
||||
PKG_SOURCE_DATE:=2022-08-12
|
||||
PKG_SOURCE_VERSION:=e3395cd90bed9b7b9fc319e79528fedcc0d947fe
|
||||
PKG_MIRROR_HASH:=14e9df9f85c406b8abbb14427e5f678383782500c549d842c0481cd954fc4ea3
|
||||
PKG_SOURCE_DATE:=2022-10-31
|
||||
PKG_SOURCE_VERSION:=23977554d9694d025eada50a5547e99ee1be7838
|
||||
PKG_MIRROR_HASH:=e546fd57d0d0be6a51e2aeb5797febe8c89d2bba61b26c930ecb0616d5f6ace9
|
||||
PKG_MAINTAINER:=Felix Fietkau <nbd@nbd.name>
|
||||
PKG_LICENSE:=ISC
|
||||
|
||||
|
|
|
@ -0,0 +1,43 @@
|
|||
From 3a3a2f6be704c970938eb8dac4eb0118f1c2fb06 Mon Sep 17 00:00:00 2001
|
||||
From: Hauke Mehrtens <hauke@hauke-m.de>
|
||||
Date: Wed, 21 Dec 2022 23:26:28 +0100
|
||||
Subject: [PATCH iproute2 v2] configure: Remove include <sys/stat.h>
|
||||
|
||||
The check_name_to_handle_at() function in the configure script is
|
||||
including sys/stat.h. This include fails with glibc 2.36 like this:
|
||||
````
|
||||
In file included from /linux-5.15.84/include/uapi/linux/stat.h:5,
|
||||
from /toolchain-x86_64_gcc-12.2.0_glibc/include/bits/statx.h:31,
|
||||
from /toolchain-x86_64_gcc-12.2.0_glibc/include/sys/stat.h:465,
|
||||
from config.YExfMc/name_to_handle_at_test.c:3:
|
||||
/linux-5.15.84/include/uapi/linux/types.h:10:2: warning: #warning "Attempt to use kernel headers from user space, see https://kernelnewbies.org/KernelHeaders" [-Wcpp]
|
||||
10 | #warning "Attempt to use kernel headers from user space, see https://kernelnewbies.org/KernelHeaders"
|
||||
| ^~~~~~~
|
||||
In file included from /linux-5.15.84/include/uapi/linux/posix_types.h:5,
|
||||
from /linux-5.15.84/include/uapi/linux/types.h:14:
|
||||
/linux-5.15.84/include/uapi/linux/stddef.h:5:10: fatal error: linux/compiler_types.h: No such file or directory
|
||||
5 | #include <linux/compiler_types.h>
|
||||
| ^~~~~~~~~~~~~~~~~~~~~~~~
|
||||
compilation terminated.
|
||||
````
|
||||
|
||||
Just removing the include works, the manpage of name_to_handle_at() says
|
||||
only fcntl.h is needed.
|
||||
|
||||
Fixes: c5b72cc56bf8 ("lib/fs: fix issue when {name,open}_to_handle_at() is not implemented")
|
||||
Tested-by: Heiko Thiery <heiko.thiery@gmail.com>
|
||||
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
|
||||
---
|
||||
configure | 1 -
|
||||
1 file changed, 1 deletion(-)
|
||||
|
||||
--- a/configure
|
||||
+++ b/configure
|
||||
@@ -215,7 +215,6 @@ check_name_to_handle_at()
|
||||
cat >$TMPDIR/name_to_handle_at_test.c <<EOF
|
||||
#define _GNU_SOURCE
|
||||
#include <sys/types.h>
|
||||
-#include <sys/stat.h>
|
||||
#include <fcntl.h>
|
||||
int main(int argc, char **argv)
|
||||
{
|
|
@ -31,7 +31,6 @@ PKG_MAINTAINER:=John Crispin <john@phrozen.org>
|
|||
include $(INCLUDE_DIR)/package.mk
|
||||
include $(INCLUDE_DIR)/cmake.mk
|
||||
|
||||
TARGET_LDFLAGS += $(if $(CONFIG_USE_GLIBC),-lrt)
|
||||
CMAKE_OPTIONS += $(if $(CONFIG_FSTOOLS_UBIFS_EXTROOT),-DCMAKE_UBIFS_EXTROOT=y)
|
||||
CMAKE_OPTIONS += $(if $(CONFIG_FSTOOLS_OVL_MOUNT_FULL_ACCESS_TIME),-DCMAKE_OVL_MOUNT_FULL_ACCESS_TIME=y)
|
||||
CMAKE_OPTIONS += $(if $(CONFIG_FSTOOLS_OVL_MOUNT_COMPRESS_ZLIB),-DCMAKE_OVL_MOUNT_COMPRESS_ZLIB=y)
|
||||
|
@ -39,7 +38,7 @@ CMAKE_OPTIONS += $(if $(CONFIG_FSTOOLS_OVL_MOUNT_COMPRESS_ZLIB),-DCMAKE_OVL_MOUN
|
|||
define Package/fstools
|
||||
SECTION:=base
|
||||
CATEGORY:=Base system
|
||||
DEPENDS:=+ubox +USE_GLIBC:librt +NAND_SUPPORT:ubi-utils
|
||||
DEPENDS:=+ubox +NAND_SUPPORT:ubi-utils
|
||||
TITLE:=OpenWrt filesystem tools
|
||||
MENU:=1
|
||||
endef
|
||||
|
|
|
@ -35,7 +35,6 @@ ifeq ($(DUMP),)
|
|||
endif
|
||||
|
||||
CMAKE_OPTIONS += -DEARLY_PATH="$(TARGET_INIT_PATH)"
|
||||
TARGET_LDFLAGS += $(if $(CONFIG_USE_GLIBC),-lrt)
|
||||
|
||||
TARGET_CFLAGS += -flto
|
||||
TARGET_LDFLAGS += -flto
|
||||
|
@ -43,7 +42,7 @@ TARGET_LDFLAGS += -flto
|
|||
define Package/procd/Default
|
||||
SECTION:=base
|
||||
CATEGORY:=Base system
|
||||
DEPENDS:=+ubusd +ubus +libjson-script +ubox +USE_GLIBC:librt +libubox \
|
||||
DEPENDS:=+ubusd +ubus +libjson-script +ubox +libubox \
|
||||
+libubus +libblobmsg-json +libjson-c +jshn
|
||||
TITLE:=OpenWrt system process manager
|
||||
USERID:=:dialout=20 :audio=29
|
||||
|
|
|
@ -18,12 +18,10 @@ PKG_MAINTAINER:=John Crispin <john@phrozen.org>
|
|||
include $(INCLUDE_DIR)/package.mk
|
||||
include $(INCLUDE_DIR)/cmake.mk
|
||||
|
||||
TARGET_LDFLAGS += $(if $(CONFIG_USE_GLIBC),-lrt)
|
||||
|
||||
define Package/ubox
|
||||
SECTION:=base
|
||||
CATEGORY:=Base system
|
||||
DEPENDS:=+libubox +ubusd +ubus +libubus +libuci +USE_GLIBC:librt
|
||||
DEPENDS:=+libubox +ubusd +ubus +libubus +libuci
|
||||
TITLE:=OpenWrt system helper toolbox
|
||||
ALTERNATIVES:=\
|
||||
100:/sbin/rmmod:/sbin/kmodloader \
|
||||
|
@ -46,7 +44,7 @@ endef
|
|||
define Package/logd
|
||||
SECTION:=base
|
||||
CATEGORY:=Base system
|
||||
DEPENDS:=+libubox +libubus +libblobmsg-json +USE_GLIBC:librt
|
||||
DEPENDS:=+libubox +libubus +libblobmsg-json
|
||||
TITLE:=OpenWrt system log implementation
|
||||
USERID:=logd=514:logd=514
|
||||
endef
|
||||
|
|
|
@ -144,7 +144,6 @@ endef
|
|||
|
||||
TARGET_CFLAGS += $(FPIC) -ffunction-sections -fdata-sections -flto
|
||||
|
||||
TARGET_LDFLAGS += $(if $(CONFIG_USE_GLIBC),-lrt)
|
||||
TARGET_LDFLAGS += -flto
|
||||
|
||||
CONFIGURE_ARGS += \
|
||||
|
|
|
@ -99,7 +99,7 @@ define Build/Compile
|
|||
RANLIB="$(TARGET_CROSS)ranlib" \
|
||||
INSTALL_ROOT=/usr \
|
||||
CFLAGS="$(TARGET_CPPFLAGS) $(TARGET_CFLAGS)" \
|
||||
MYLDFLAGS="$(TARGET_LDFLAGS) $(if $(CONFIG_USE_GLIBC),-lm -ldl)" \
|
||||
MYLDFLAGS="$(TARGET_LDFLAGS)" \
|
||||
PKG_VERSION=$(PKG_VERSION) \
|
||||
linux
|
||||
rm -rf $(PKG_INSTALL_DIR)
|
||||
|
|
2
rules.mk
2
rules.mk
|
@ -184,7 +184,7 @@ ifndef DUMP
|
|||
-include $(TOOLCHAIN_DIR)/info.mk
|
||||
export GCC_HONOUR_COPTS:=0
|
||||
TARGET_CROSS:=$(if $(TARGET_CROSS),$(TARGET_CROSS),$(OPTIMIZE_FOR_CPU)-openwrt-linux$(if $(TARGET_SUFFIX),-$(TARGET_SUFFIX))-)
|
||||
TARGET_CFLAGS+= -fhonour-copts -Wno-error=unused-but-set-variable -Wno-error=unused-result
|
||||
TARGET_CFLAGS+= -fhonour-copts
|
||||
TARGET_CPPFLAGS+= -I$(TOOLCHAIN_DIR)/usr/include
|
||||
ifeq ($(CONFIG_USE_MUSL),y)
|
||||
TARGET_CPPFLAGS+= -I$(TOOLCHAIN_DIR)/include/fortify
|
||||
|
|
|
@ -13,7 +13,7 @@ produce a noisy warning.
|
|||
|
||||
--- a/drivers/usb/host/xhci-pci.c
|
||||
+++ b/drivers/usb/host/xhci-pci.c
|
||||
@@ -274,6 +274,7 @@ static void xhci_pci_quirks(struct devic
|
||||
@@ -276,6 +276,7 @@ static void xhci_pci_quirks(struct devic
|
||||
pdev->device == 0x0015) {
|
||||
xhci->quirks |= XHCI_RESET_ON_RESUME;
|
||||
xhci->quirks |= XHCI_ZERO_64B_REGS;
|
||||
|
|
|
@ -8,6 +8,7 @@ ARCH:=mips
|
|||
BOARD:=ath25
|
||||
BOARDNAME:=Atheros AR231x/AR5312
|
||||
FEATURES:=squashfs low_mem small_flash
|
||||
SUBTARGETS:=generic
|
||||
|
||||
KERNEL_PATCHVER:=5.10
|
||||
KERNEL_TESTING_PATCHVER:=5.10
|
||||
|
|
1
target/linux/ath25/generic/target.mk
Normal file
1
target/linux/ath25/generic/target.mk
Normal file
|
@ -0,0 +1 @@
|
|||
BOARDNAME:=Generic
|
|
@ -86,7 +86,8 @@ case "$FIRMWARE" in
|
|||
avm,fritz300e)
|
||||
caldata_extract_reverse "urloader" 0x1541 0x440
|
||||
;;
|
||||
buffalo,wzr-hp-g450h)
|
||||
buffalo,wzr-hp-g450h|\
|
||||
pcs,cap324)
|
||||
caldata_extract "art" 0x1000 0x440
|
||||
;;
|
||||
dlink,dir-825-c1|\
|
||||
|
@ -103,9 +104,8 @@ case "$FIRMWARE" in
|
|||
;;
|
||||
netgear,wnr2200-8m|\
|
||||
netgear,wnr2200-16m|\
|
||||
pcs,cap324|\
|
||||
tplink,tl-wr842n-v1)
|
||||
caldata_extract "art" 0x1000 0x1000
|
||||
caldata_extract "art" 0x1000 0x3e0
|
||||
;;
|
||||
wd,mynet-n600|\
|
||||
wd,mynet-n750)
|
||||
|
@ -113,7 +113,7 @@ case "$FIRMWARE" in
|
|||
ath9k_patch_mac $(mtd_get_mac_ascii devdata "wlan5mac")
|
||||
;;
|
||||
wd,mynet-wifi-rangeextender)
|
||||
caldata_extract "art" 0x1000 0x1000
|
||||
caldata_extract "art" 0x1000 0x440
|
||||
ath9k_patch_mac $(nvram get wl0_hwaddr)
|
||||
;;
|
||||
*)
|
||||
|
|
|
@ -0,0 +1,31 @@
|
|||
From 882882912cd25a637ba0cf09932ad248f584e680 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= <noltari@gmail.com>
|
||||
Date: Wed, 28 Dec 2022 13:19:49 +0100
|
||||
Subject: [PATCH 1/2] Revert "net: broadcom: Add PTP_1588_CLOCK_OPTIONAL
|
||||
dependency for BCMGENET under ARCH_BCM2835"
|
||||
|
||||
[ Upstream commit 421f8663b3a775c32f724f793264097c60028f2e ]
|
||||
|
||||
This reverts commit eb96fd3983b2cca1c90db45eaff1de67b94f9950.
|
||||
---
|
||||
drivers/net/ethernet/broadcom/Kconfig | 3 +--
|
||||
1 file changed, 1 insertion(+), 2 deletions(-)
|
||||
|
||||
--- a/drivers/net/ethernet/broadcom/Kconfig
|
||||
+++ b/drivers/net/ethernet/broadcom/Kconfig
|
||||
@@ -71,14 +71,13 @@ config BCM63XX_ENET
|
||||
config BCMGENET
|
||||
tristate "Broadcom GENET internal MAC support"
|
||||
depends on HAS_IOMEM
|
||||
- depends on PTP_1588_CLOCK_OPTIONAL || !ARCH_BCM2835
|
||||
select MII
|
||||
select PHYLIB
|
||||
select FIXED_PHY
|
||||
select BCM7XXX_PHY
|
||||
select MDIO_BCM_UNIMAC
|
||||
select DIMLIB
|
||||
- select BROADCOM_PHY if ARCH_BCM2835
|
||||
+ select BROADCOM_PHY if (ARCH_BCM2835 && PTP_1588_CLOCK_OPTIONAL)
|
||||
help
|
||||
This driver supports the built-in Ethernet MACs found in the
|
||||
Broadcom BCM7xxx Set Top Box family chipset.
|
|
@ -0,0 +1,23 @@
|
|||
From f032f801658ce6b47498f3e140f7e4aef0645042 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= <noltari@gmail.com>
|
||||
Date: Wed, 28 Dec 2022 13:20:24 +0100
|
||||
Subject: [PATCH 2/2] Revert "net: broadcom: Fix BCMGENET Kconfig"
|
||||
|
||||
[ Upstream commit 8d820bc9d12b8beebca836cceaf2bbe68216c2f8 ]
|
||||
|
||||
This reverts commit 6a264203dbdb0d076891d83bf3bb274d6b3863f2.
|
||||
---
|
||||
drivers/net/ethernet/broadcom/Kconfig | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
--- a/drivers/net/ethernet/broadcom/Kconfig
|
||||
+++ b/drivers/net/ethernet/broadcom/Kconfig
|
||||
@@ -77,7 +77,7 @@ config BCMGENET
|
||||
select BCM7XXX_PHY
|
||||
select MDIO_BCM_UNIMAC
|
||||
select DIMLIB
|
||||
- select BROADCOM_PHY if (ARCH_BCM2835 && PTP_1588_CLOCK_OPTIONAL)
|
||||
+ select BROADCOM_PHY if ARCH_BCM2835
|
||||
help
|
||||
This driver supports the built-in Ethernet MACs found in the
|
||||
Broadcom BCM7xxx Set Top Box family chipset.
|
|
@ -22,7 +22,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
|
|||
|
||||
--- a/drivers/usb/host/xhci-pci.c
|
||||
+++ b/drivers/usb/host/xhci-pci.c
|
||||
@@ -291,6 +291,7 @@ static void xhci_pci_quirks(struct devic
|
||||
@@ -293,6 +293,7 @@ static void xhci_pci_quirks(struct devic
|
||||
if (pdev->vendor == PCI_VENDOR_ID_VIA && pdev->device == 0x3483) {
|
||||
xhci->quirks |= XHCI_LPM_SUPPORT;
|
||||
xhci->quirks |= XHCI_EP_CTX_BROKEN_DCS;
|
||||
|
|
|
@ -53,7 +53,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
|
|||
cycle_state, type, max_packet, flags);
|
||||
--- a/drivers/usb/host/xhci-pci.c
|
||||
+++ b/drivers/usb/host/xhci-pci.c
|
||||
@@ -292,6 +292,7 @@ static void xhci_pci_quirks(struct devic
|
||||
@@ -294,6 +294,7 @@ static void xhci_pci_quirks(struct devic
|
||||
xhci->quirks |= XHCI_LPM_SUPPORT;
|
||||
xhci->quirks |= XHCI_EP_CTX_BROKEN_DCS;
|
||||
xhci->quirks |= XHCI_AVOID_DQ_ON_LINK;
|
||||
|
|
|
@ -26,7 +26,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
|
|||
|
||||
--- a/drivers/usb/host/xhci-pci.c
|
||||
+++ b/drivers/usb/host/xhci-pci.c
|
||||
@@ -293,6 +293,7 @@ static void xhci_pci_quirks(struct devic
|
||||
@@ -295,6 +295,7 @@ static void xhci_pci_quirks(struct devic
|
||||
xhci->quirks |= XHCI_EP_CTX_BROKEN_DCS;
|
||||
xhci->quirks |= XHCI_AVOID_DQ_ON_LINK;
|
||||
xhci->quirks |= XHCI_VLI_TRB_CACHE_BUG;
|
||||
|
|
|
@ -1,268 +0,0 @@
|
|||
--- a/arch/mips/bcm47xx/board.c
|
||||
+++ b/arch/mips/bcm47xx/board.c
|
||||
@@ -141,6 +141,7 @@ struct bcm47xx_board_type_list2 bcm47xx_
|
||||
{{BCM47XX_BOARD_LINKSYS_WRT300NV11, "Linksys WRT300N V1.1"}, "WRT300N", "1.1"},
|
||||
{{BCM47XX_BOARD_LINKSYS_WRT310NV1, "Linksys WRT310N V1"}, "WRT310N", "1.0"},
|
||||
{{BCM47XX_BOARD_LINKSYS_WRT310NV2, "Linksys WRT310N V2"}, "WRT310N", "2.0"},
|
||||
+ {{BCM47XX_BOARD_LINKSYS_WRT320N_V1, "Linksys WRT320N V1"}, "WRT320N", "1.0"},
|
||||
{{BCM47XX_BOARD_LINKSYS_WRT54G3GV2, "Linksys WRT54G3GV2-VF"}, "WRT54G3GV2-VF", "1.0"},
|
||||
{{BCM47XX_BOARD_LINKSYS_WRT610NV1, "Linksys WRT610N V1"}, "WRT610N", "1.0"},
|
||||
{{BCM47XX_BOARD_LINKSYS_WRT610NV2, "Linksys WRT610N V2"}, "WRT610N", "2.0"},
|
||||
@@ -161,9 +162,12 @@ struct bcm47xx_board_type_list1 bcm47xx_
|
||||
{{BCM47XX_BOARD_LUXUL_XWR_600_V1, "Luxul XWR-600 V1"}, "luxul_xwr600_v1"},
|
||||
{{BCM47XX_BOARD_LUXUL_XWR_1750_V1, "Luxul XWR-1750 V1"}, "luxul_xwr1750_v1"},
|
||||
{{BCM47XX_BOARD_NETGEAR_R6200_V1, "Netgear R6200 V1"}, "U12H192T00_NETGEAR"},
|
||||
+ {{BCM47XX_BOARD_NETGEAR_R6300_V1, "Netgear R6300 V1"}, "U12H218T00_NETGEAR"},
|
||||
{{BCM47XX_BOARD_NETGEAR_WGR614V8, "Netgear WGR614 V8"}, "U12H072T00_NETGEAR"},
|
||||
{{BCM47XX_BOARD_NETGEAR_WGR614V9, "Netgear WGR614 V9"}, "U12H094T00_NETGEAR"},
|
||||
{{BCM47XX_BOARD_NETGEAR_WGR614_V10, "Netgear WGR614 V10"}, "U12H139T01_NETGEAR"},
|
||||
+ {{BCM47XX_BOARD_NETGEAR_WN2500RP_V1, "Netgear WN2500RP V1"}, "U12H197T00_NETGEAR"},
|
||||
+ {{BCM47XX_BOARD_NETGEAR_WN2500RP_V2, "Netgear WN2500RP V2"}, "U12H294T00_NETGEAR"},
|
||||
{{BCM47XX_BOARD_NETGEAR_WNDR3300, "Netgear WNDR3300"}, "U12H093T00_NETGEAR"},
|
||||
{{BCM47XX_BOARD_NETGEAR_WNDR3400V1, "Netgear WNDR3400 V1"}, "U12H155T00_NETGEAR"},
|
||||
{{BCM47XX_BOARD_NETGEAR_WNDR3400V2, "Netgear WNDR3400 V2"}, "U12H187T00_NETGEAR"},
|
||||
@@ -177,6 +181,7 @@ struct bcm47xx_board_type_list1 bcm47xx_
|
||||
{{BCM47XX_BOARD_NETGEAR_WNR1000_V3, "Netgear WNR1000 V3"}, "U12H139T50_NETGEAR"},
|
||||
{{BCM47XX_BOARD_NETGEAR_WNR2000, "Netgear WNR2000"}, "U12H114T00_NETGEAR"},
|
||||
{{BCM47XX_BOARD_NETGEAR_WNR3500L, "Netgear WNR3500L"}, "U12H136T99_NETGEAR"},
|
||||
+ {{BCM47XX_BOARD_NETGEAR_WNR3500L_V2, "Netgear WNR3500L V2"}, "U12H172T00_NETGEAR"},
|
||||
{{BCM47XX_BOARD_NETGEAR_WNR3500U, "Netgear WNR3500U"}, "U12H136T00_NETGEAR"},
|
||||
{{BCM47XX_BOARD_NETGEAR_WNR3500V2, "Netgear WNR3500 V2"}, "U12H127T00_NETGEAR"},
|
||||
{{BCM47XX_BOARD_NETGEAR_WNR3500V2VC, "Netgear WNR3500 V2vc"}, "U12H127T70_NETGEAR"},
|
||||
@@ -191,6 +196,7 @@ struct bcm47xx_board_type_list3 bcm47xx_
|
||||
{{BCM47XX_BOARD_PHICOMM_M1, "Phicomm M1"}, "0x0590", "80", "0x1104"},
|
||||
{{BCM47XX_BOARD_ZTE_H218N, "ZTE H218N"}, "0x053d", "1234", "0x1305"},
|
||||
{{BCM47XX_BOARD_NETGEAR_WNR3500L, "Netgear WNR3500L"}, "0x04CF", "3500", "02"},
|
||||
+ {{BCM47XX_BOARD_NETGEAR_WNR3500L_V2, "Netgear WNR3500L V2"}, "0x052b", "3500L", "02"},
|
||||
{{BCM47XX_BOARD_LINKSYS_WRT54G_TYPE_0101, "Linksys WRT54G/GS/GL"}, "0x0101", "42", "0x10"},
|
||||
{{BCM47XX_BOARD_LINKSYS_WRT54G_TYPE_0467, "Linksys WRT54G/GS/GL"}, "0x0467", "42", "0x10"},
|
||||
{{BCM47XX_BOARD_LINKSYS_WRT54G_TYPE_0708, "Linksys WRT54G/GS/GL"}, "0x0708", "42", "0x10"},
|
||||
--- a/arch/mips/bcm47xx/buttons.c
|
||||
+++ b/arch/mips/bcm47xx/buttons.c
|
||||
@@ -27,6 +27,12 @@
|
||||
/* Asus */
|
||||
|
||||
static const struct gpio_keys_button
|
||||
+bcm47xx_buttons_asus_rtn10u[] __initconst = {
|
||||
+ BCM47XX_GPIO_KEY(20, KEY_WPS_BUTTON),
|
||||
+ BCM47XX_GPIO_KEY(21, KEY_RESTART),
|
||||
+};
|
||||
+
|
||||
+static const struct gpio_keys_button
|
||||
bcm47xx_buttons_asus_rtn12[] __initconst = {
|
||||
BCM47XX_GPIO_KEY(0, KEY_WPS_BUTTON),
|
||||
BCM47XX_GPIO_KEY(1, KEY_RESTART),
|
||||
@@ -277,6 +283,18 @@ bcm47xx_buttons_linksys_wrt310nv1[] __in
|
||||
};
|
||||
|
||||
static const struct gpio_keys_button
|
||||
+bcm47xx_buttons_linksys_wrt310n_v2[] __initconst = {
|
||||
+ BCM47XX_GPIO_KEY(5, KEY_WPS_BUTTON),
|
||||
+ BCM47XX_GPIO_KEY(6, KEY_RESTART),
|
||||
+};
|
||||
+
|
||||
+static const struct gpio_keys_button
|
||||
+bcm47xx_buttons_linksys_wrt320n_v1[] __initconst = {
|
||||
+ BCM47XX_GPIO_KEY(5, KEY_WPS_BUTTON),
|
||||
+ BCM47XX_GPIO_KEY(8, KEY_RESTART),
|
||||
+};
|
||||
+
|
||||
+static const struct gpio_keys_button
|
||||
bcm47xx_buttons_linksys_wrt54g3gv2[] __initconst = {
|
||||
BCM47XX_GPIO_KEY(5, KEY_WIMAX),
|
||||
BCM47XX_GPIO_KEY(6, KEY_RESTART),
|
||||
@@ -392,6 +410,17 @@ bcm47xx_buttons_netgear_r6200_v1[] __ini
|
||||
};
|
||||
|
||||
static const struct gpio_keys_button
|
||||
+bcm47xx_buttons_netgear_r6300_v1[] __initconst = {
|
||||
+ BCM47XX_GPIO_KEY(6, KEY_RESTART),
|
||||
+};
|
||||
+
|
||||
+static const struct gpio_keys_button
|
||||
+bcm47xx_buttons_netgear_wn2500rp_v1[] __initconst = {
|
||||
+ BCM47XX_GPIO_KEY(12, KEY_RESTART),
|
||||
+ BCM47XX_GPIO_KEY(31, KEY_WPS_BUTTON),
|
||||
+};
|
||||
+
|
||||
+static const struct gpio_keys_button
|
||||
bcm47xx_buttons_netgear_wndr3400v1[] __initconst = {
|
||||
BCM47XX_GPIO_KEY(4, KEY_RESTART),
|
||||
BCM47XX_GPIO_KEY(6, KEY_WPS_BUTTON),
|
||||
@@ -431,6 +460,13 @@ bcm47xx_buttons_netgear_wnr3500lv1[] __i
|
||||
};
|
||||
|
||||
static const struct gpio_keys_button
|
||||
+bcm47xx_buttons_netgear_wnr3500lv2[] __initconst = {
|
||||
+ BCM47XX_GPIO_KEY(4, KEY_RESTART),
|
||||
+ BCM47XX_GPIO_KEY(6, KEY_WPS_BUTTON),
|
||||
+ BCM47XX_GPIO_KEY(8, KEY_RFKILL),
|
||||
+};
|
||||
+
|
||||
+static const struct gpio_keys_button
|
||||
bcm47xx_buttons_netgear_wnr834bv2[] __initconst = {
|
||||
BCM47XX_GPIO_KEY(6, KEY_RESTART),
|
||||
};
|
||||
@@ -478,6 +514,9 @@ int __init bcm47xx_buttons_register(void
|
||||
int err;
|
||||
|
||||
switch (board) {
|
||||
+ case BCM47XX_BOARD_ASUS_RTN10U:
|
||||
+ err = bcm47xx_copy_bdata(bcm47xx_buttons_asus_rtn10u);
|
||||
+ break;
|
||||
case BCM47XX_BOARD_ASUS_RTN12:
|
||||
err = bcm47xx_copy_bdata(bcm47xx_buttons_asus_rtn12);
|
||||
break;
|
||||
@@ -608,6 +647,12 @@ int __init bcm47xx_buttons_register(void
|
||||
case BCM47XX_BOARD_LINKSYS_WRT310NV1:
|
||||
err = bcm47xx_copy_bdata(bcm47xx_buttons_linksys_wrt310nv1);
|
||||
break;
|
||||
+ case BCM47XX_BOARD_LINKSYS_WRT310NV2:
|
||||
+ err = bcm47xx_copy_bdata(bcm47xx_buttons_linksys_wrt310n_v2);
|
||||
+ break;
|
||||
+ case BCM47XX_BOARD_LINKSYS_WRT320N_V1:
|
||||
+ err = bcm47xx_copy_bdata(bcm47xx_buttons_linksys_wrt320n_v1);
|
||||
+ break;
|
||||
case BCM47XX_BOARD_LINKSYS_WRT54G3GV2:
|
||||
err = bcm47xx_copy_bdata(bcm47xx_buttons_linksys_wrt54g3gv2);
|
||||
break;
|
||||
@@ -674,6 +719,12 @@ int __init bcm47xx_buttons_register(void
|
||||
case BCM47XX_BOARD_NETGEAR_R6200_V1:
|
||||
err = bcm47xx_copy_bdata(bcm47xx_buttons_netgear_r6200_v1);
|
||||
break;
|
||||
+ case BCM47XX_BOARD_NETGEAR_R6300_V1:
|
||||
+ err = bcm47xx_copy_bdata(bcm47xx_buttons_netgear_r6300_v1);
|
||||
+ break;
|
||||
+ case BCM47XX_BOARD_NETGEAR_WN2500RP_V1:
|
||||
+ err = bcm47xx_copy_bdata(bcm47xx_buttons_netgear_wn2500rp_v1);
|
||||
+ break;
|
||||
case BCM47XX_BOARD_NETGEAR_WNDR3400V1:
|
||||
err = bcm47xx_copy_bdata(bcm47xx_buttons_netgear_wndr3400v1);
|
||||
break;
|
||||
@@ -692,6 +743,9 @@ int __init bcm47xx_buttons_register(void
|
||||
case BCM47XX_BOARD_NETGEAR_WNR3500L:
|
||||
err = bcm47xx_copy_bdata(bcm47xx_buttons_netgear_wnr3500lv1);
|
||||
break;
|
||||
+ case BCM47XX_BOARD_NETGEAR_WNR3500L_V2:
|
||||
+ err = bcm47xx_copy_bdata(bcm47xx_buttons_netgear_wnr3500lv2);
|
||||
+ break;
|
||||
case BCM47XX_BOARD_NETGEAR_WNR834BV2:
|
||||
err = bcm47xx_copy_bdata(bcm47xx_buttons_netgear_wnr834bv2);
|
||||
break;
|
||||
--- a/arch/mips/bcm47xx/leds.c
|
||||
+++ b/arch/mips/bcm47xx/leds.c
|
||||
@@ -30,6 +30,14 @@
|
||||
/* Asus */
|
||||
|
||||
static const struct gpio_led
|
||||
+bcm47xx_leds_asus_rtn10u[] __initconst = {
|
||||
+ BCM47XX_GPIO_LED(5, "green", "wlan", 0, LEDS_GPIO_DEFSTATE_OFF),
|
||||
+ BCM47XX_GPIO_LED(6, "green", "power", 1, LEDS_GPIO_DEFSTATE_ON),
|
||||
+ BCM47XX_GPIO_LED(7, "green", "wps", 0, LEDS_GPIO_DEFSTATE_OFF),
|
||||
+ BCM47XX_GPIO_LED(8, "green", "usb", 0, LEDS_GPIO_DEFSTATE_OFF),
|
||||
+};
|
||||
+
|
||||
+static const struct gpio_led
|
||||
bcm47xx_leds_asus_rtn12[] __initconst = {
|
||||
BCM47XX_GPIO_LED(2, "unk", "power", 1, LEDS_GPIO_DEFSTATE_ON),
|
||||
BCM47XX_GPIO_LED(7, "unk", "wlan", 0, LEDS_GPIO_DEFSTATE_OFF),
|
||||
@@ -314,6 +322,13 @@ bcm47xx_leds_linksys_wrt310nv1[] __initc
|
||||
};
|
||||
|
||||
static const struct gpio_led
|
||||
+bcm47xx_leds_linksys_wrt320n_v1[] __initconst = {
|
||||
+ BCM47XX_GPIO_LED(1, "blue", "wlan", 1, LEDS_GPIO_DEFSTATE_OFF),
|
||||
+ BCM47XX_GPIO_LED(2, "blue", "power", 0, LEDS_GPIO_DEFSTATE_ON),
|
||||
+ BCM47XX_GPIO_LED(4, "amber", "wps", 1, LEDS_GPIO_DEFSTATE_OFF),
|
||||
+};
|
||||
+
|
||||
+static const struct gpio_led
|
||||
bcm47xx_leds_linksys_wrt54g_generic[] __initconst = {
|
||||
BCM47XX_GPIO_LED(0, "unk", "dmz", 1, LEDS_GPIO_DEFSTATE_OFF),
|
||||
BCM47XX_GPIO_LED(1, "unk", "power", 0, LEDS_GPIO_DEFSTATE_ON),
|
||||
@@ -513,6 +528,14 @@ bcm47xx_leds_netgear_wnr3500lv1[] __init
|
||||
};
|
||||
|
||||
static const struct gpio_led
|
||||
+bcm47xx_leds_netgear_wnr3500lv2[] __initconst = {
|
||||
+ BCM47XX_GPIO_LED(0, "blue", "wlan", 0, LEDS_GPIO_DEFSTATE_OFF),
|
||||
+ BCM47XX_GPIO_LED(1, "green", "wps", 0, LEDS_GPIO_DEFSTATE_OFF),
|
||||
+ BCM47XX_GPIO_LED(3, "green", "power", 0, LEDS_GPIO_DEFSTATE_ON),
|
||||
+ BCM47XX_GPIO_LED(7, "amber", "power", 0, LEDS_GPIO_DEFSTATE_OFF),
|
||||
+};
|
||||
+
|
||||
+static const struct gpio_led
|
||||
bcm47xx_leds_netgear_wnr834bv2[] __initconst = {
|
||||
BCM47XX_GPIO_LED(2, "green", "power", 0, LEDS_GPIO_DEFSTATE_ON),
|
||||
BCM47XX_GPIO_LED(3, "amber", "power", 0, LEDS_GPIO_DEFSTATE_OFF),
|
||||
@@ -556,6 +579,9 @@ void __init bcm47xx_leds_register(void)
|
||||
enum bcm47xx_board board = bcm47xx_board_get();
|
||||
|
||||
switch (board) {
|
||||
+ case BCM47XX_BOARD_ASUS_RTN10U:
|
||||
+ bcm47xx_set_pdata(bcm47xx_leds_asus_rtn10u);
|
||||
+ break;
|
||||
case BCM47XX_BOARD_ASUS_RTN12:
|
||||
bcm47xx_set_pdata(bcm47xx_leds_asus_rtn12);
|
||||
break;
|
||||
@@ -689,6 +715,9 @@ void __init bcm47xx_leds_register(void)
|
||||
case BCM47XX_BOARD_LINKSYS_WRT310NV1:
|
||||
bcm47xx_set_pdata(bcm47xx_leds_linksys_wrt310nv1);
|
||||
break;
|
||||
+ case BCM47XX_BOARD_LINKSYS_WRT320N_V1:
|
||||
+ bcm47xx_set_pdata(bcm47xx_leds_linksys_wrt320n_v1);
|
||||
+ break;
|
||||
case BCM47XX_BOARD_LINKSYS_WRT54G3GV2:
|
||||
bcm47xx_set_pdata(bcm47xx_leds_linksys_wrt54g3gv2);
|
||||
break;
|
||||
@@ -770,6 +799,9 @@ void __init bcm47xx_leds_register(void)
|
||||
case BCM47XX_BOARD_NETGEAR_WNR3500L:
|
||||
bcm47xx_set_pdata(bcm47xx_leds_netgear_wnr3500lv1);
|
||||
break;
|
||||
+ case BCM47XX_BOARD_NETGEAR_WNR3500L_V2:
|
||||
+ bcm47xx_set_pdata(bcm47xx_leds_netgear_wnr3500lv2);
|
||||
+ break;
|
||||
case BCM47XX_BOARD_NETGEAR_WNR834BV2:
|
||||
bcm47xx_set_pdata(bcm47xx_leds_netgear_wnr834bv2);
|
||||
break;
|
||||
--- a/arch/mips/bcm47xx/workarounds.c
|
||||
+++ b/arch/mips/bcm47xx/workarounds.c
|
||||
@@ -22,6 +22,7 @@ void __init bcm47xx_workarounds(void)
|
||||
|
||||
switch (board) {
|
||||
case BCM47XX_BOARD_NETGEAR_WNR3500L:
|
||||
+ case BCM47XX_BOARD_NETGEAR_WNR3500L_V2:
|
||||
bcm47xx_workarounds_enable_usb_power(12);
|
||||
break;
|
||||
case BCM47XX_BOARD_NETGEAR_WNDR3400V2:
|
||||
--- a/arch/mips/include/asm/mach-bcm47xx/bcm47xx_board.h
|
||||
+++ b/arch/mips/include/asm/mach-bcm47xx/bcm47xx_board.h
|
||||
@@ -72,6 +72,7 @@ enum bcm47xx_board {
|
||||
BCM47XX_BOARD_LINKSYS_WRT300NV11,
|
||||
BCM47XX_BOARD_LINKSYS_WRT310NV1,
|
||||
BCM47XX_BOARD_LINKSYS_WRT310NV2,
|
||||
+ BCM47XX_BOARD_LINKSYS_WRT320N_V1,
|
||||
BCM47XX_BOARD_LINKSYS_WRT54G3GV2,
|
||||
BCM47XX_BOARD_LINKSYS_WRT54G_TYPE_0101,
|
||||
BCM47XX_BOARD_LINKSYS_WRT54G_TYPE_0467,
|
||||
@@ -99,9 +100,12 @@ enum bcm47xx_board {
|
||||
BCM47XX_BOARD_MOTOROLA_WR850GV2V3,
|
||||
|
||||
BCM47XX_BOARD_NETGEAR_R6200_V1,
|
||||
+ BCM47XX_BOARD_NETGEAR_R6300_V1,
|
||||
BCM47XX_BOARD_NETGEAR_WGR614V8,
|
||||
BCM47XX_BOARD_NETGEAR_WGR614V9,
|
||||
BCM47XX_BOARD_NETGEAR_WGR614_V10,
|
||||
+ BCM47XX_BOARD_NETGEAR_WN2500RP_V1,
|
||||
+ BCM47XX_BOARD_NETGEAR_WN2500RP_V2,
|
||||
BCM47XX_BOARD_NETGEAR_WNDR3300,
|
||||
BCM47XX_BOARD_NETGEAR_WNDR3400V1,
|
||||
BCM47XX_BOARD_NETGEAR_WNDR3400V2,
|
||||
@@ -114,6 +118,7 @@ enum bcm47xx_board {
|
||||
BCM47XX_BOARD_NETGEAR_WNR1000_V3,
|
||||
BCM47XX_BOARD_NETGEAR_WNR2000,
|
||||
BCM47XX_BOARD_NETGEAR_WNR3500L,
|
||||
+ BCM47XX_BOARD_NETGEAR_WNR3500L_V2,
|
||||
BCM47XX_BOARD_NETGEAR_WNR3500U,
|
||||
BCM47XX_BOARD_NETGEAR_WNR3500V2,
|
||||
BCM47XX_BOARD_NETGEAR_WNR3500V2VC,
|
|
@ -0,0 +1,89 @@
|
|||
From 3829e4f10a232964cc728c0479c8097922e5e073 Mon Sep 17 00:00:00 2001
|
||||
From: Florian Fainelli <f.fainelli@gmail.com>
|
||||
Date: Thu, 6 Jan 2022 19:51:38 -0800
|
||||
Subject: [PATCH] MIPS: BCM47XX: Add board entry for Linksys WRT320N v1
|
||||
|
||||
This router is based on a Broadcom BCM4717A1 chipset and supports
|
||||
802.11n Wi-Fi. Add a board entry for that router and register LEDs and
|
||||
buttons accordingly.
|
||||
|
||||
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
|
||||
Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
|
||||
---
|
||||
arch/mips/bcm47xx/board.c | 1 +
|
||||
arch/mips/bcm47xx/buttons.c | 9 +++++++++
|
||||
arch/mips/bcm47xx/leds.c | 10 ++++++++++
|
||||
arch/mips/include/asm/mach-bcm47xx/bcm47xx_board.h | 1 +
|
||||
4 files changed, 21 insertions(+)
|
||||
|
||||
--- a/arch/mips/bcm47xx/board.c
|
||||
+++ b/arch/mips/bcm47xx/board.c
|
||||
@@ -141,6 +141,7 @@ struct bcm47xx_board_type_list2 bcm47xx_
|
||||
{{BCM47XX_BOARD_LINKSYS_WRT300NV11, "Linksys WRT300N V1.1"}, "WRT300N", "1.1"},
|
||||
{{BCM47XX_BOARD_LINKSYS_WRT310NV1, "Linksys WRT310N V1"}, "WRT310N", "1.0"},
|
||||
{{BCM47XX_BOARD_LINKSYS_WRT310NV2, "Linksys WRT310N V2"}, "WRT310N", "2.0"},
|
||||
+ {{BCM47XX_BOARD_LINKSYS_WRT320N_V1, "Linksys WRT320N V1"}, "WRT320N", "1.0"},
|
||||
{{BCM47XX_BOARD_LINKSYS_WRT54G3GV2, "Linksys WRT54G3GV2-VF"}, "WRT54G3GV2-VF", "1.0"},
|
||||
{{BCM47XX_BOARD_LINKSYS_WRT610NV1, "Linksys WRT610N V1"}, "WRT610N", "1.0"},
|
||||
{{BCM47XX_BOARD_LINKSYS_WRT610NV2, "Linksys WRT610N V2"}, "WRT610N", "2.0"},
|
||||
--- a/arch/mips/bcm47xx/buttons.c
|
||||
+++ b/arch/mips/bcm47xx/buttons.c
|
||||
@@ -277,6 +277,12 @@ bcm47xx_buttons_linksys_wrt310nv1[] __in
|
||||
};
|
||||
|
||||
static const struct gpio_keys_button
|
||||
+bcm47xx_buttons_linksys_wrt320n_v1[] __initconst = {
|
||||
+ BCM47XX_GPIO_KEY(5, KEY_WPS_BUTTON),
|
||||
+ BCM47XX_GPIO_KEY(8, KEY_RESTART),
|
||||
+};
|
||||
+
|
||||
+static const struct gpio_keys_button
|
||||
bcm47xx_buttons_linksys_wrt54g3gv2[] __initconst = {
|
||||
BCM47XX_GPIO_KEY(5, KEY_WIMAX),
|
||||
BCM47XX_GPIO_KEY(6, KEY_RESTART),
|
||||
@@ -608,6 +614,9 @@ int __init bcm47xx_buttons_register(void
|
||||
case BCM47XX_BOARD_LINKSYS_WRT310NV1:
|
||||
err = bcm47xx_copy_bdata(bcm47xx_buttons_linksys_wrt310nv1);
|
||||
break;
|
||||
+ case BCM47XX_BOARD_LINKSYS_WRT320N_V1:
|
||||
+ err = bcm47xx_copy_bdata(bcm47xx_buttons_linksys_wrt320n_v1);
|
||||
+ break;
|
||||
case BCM47XX_BOARD_LINKSYS_WRT54G3GV2:
|
||||
err = bcm47xx_copy_bdata(bcm47xx_buttons_linksys_wrt54g3gv2);
|
||||
break;
|
||||
--- a/arch/mips/bcm47xx/leds.c
|
||||
+++ b/arch/mips/bcm47xx/leds.c
|
||||
@@ -314,6 +314,13 @@ bcm47xx_leds_linksys_wrt310nv1[] __initc
|
||||
};
|
||||
|
||||
static const struct gpio_led
|
||||
+bcm47xx_leds_linksys_wrt320n_v1[] __initconst = {
|
||||
+ BCM47XX_GPIO_LED(1, "blue", "wlan", 1, LEDS_GPIO_DEFSTATE_OFF),
|
||||
+ BCM47XX_GPIO_LED(2, "blue", "power", 0, LEDS_GPIO_DEFSTATE_ON),
|
||||
+ BCM47XX_GPIO_LED(4, "amber", "wps", 1, LEDS_GPIO_DEFSTATE_OFF),
|
||||
+};
|
||||
+
|
||||
+static const struct gpio_led
|
||||
bcm47xx_leds_linksys_wrt54g_generic[] __initconst = {
|
||||
BCM47XX_GPIO_LED(0, "unk", "dmz", 1, LEDS_GPIO_DEFSTATE_OFF),
|
||||
BCM47XX_GPIO_LED(1, "unk", "power", 0, LEDS_GPIO_DEFSTATE_ON),
|
||||
@@ -689,6 +696,9 @@ void __init bcm47xx_leds_register(void)
|
||||
case BCM47XX_BOARD_LINKSYS_WRT310NV1:
|
||||
bcm47xx_set_pdata(bcm47xx_leds_linksys_wrt310nv1);
|
||||
break;
|
||||
+ case BCM47XX_BOARD_LINKSYS_WRT320N_V1:
|
||||
+ bcm47xx_set_pdata(bcm47xx_leds_linksys_wrt320n_v1);
|
||||
+ break;
|
||||
case BCM47XX_BOARD_LINKSYS_WRT54G3GV2:
|
||||
bcm47xx_set_pdata(bcm47xx_leds_linksys_wrt54g3gv2);
|
||||
break;
|
||||
--- a/arch/mips/include/asm/mach-bcm47xx/bcm47xx_board.h
|
||||
+++ b/arch/mips/include/asm/mach-bcm47xx/bcm47xx_board.h
|
||||
@@ -72,6 +72,7 @@ enum bcm47xx_board {
|
||||
BCM47XX_BOARD_LINKSYS_WRT300NV11,
|
||||
BCM47XX_BOARD_LINKSYS_WRT310NV1,
|
||||
BCM47XX_BOARD_LINKSYS_WRT310NV2,
|
||||
+ BCM47XX_BOARD_LINKSYS_WRT320N_V1,
|
||||
BCM47XX_BOARD_LINKSYS_WRT54G3GV2,
|
||||
BCM47XX_BOARD_LINKSYS_WRT54G_TYPE_0101,
|
||||
BCM47XX_BOARD_LINKSYS_WRT54G_TYPE_0467,
|
|
@ -0,0 +1,60 @@
|
|||
From 15e690af5cc3cd8f5d14ee2aa3a093f80196110e Mon Sep 17 00:00:00 2001
|
||||
From: Florian Fainelli <f.fainelli@gmail.com>
|
||||
Date: Thu, 6 Jan 2022 19:51:40 -0800
|
||||
Subject: [PATCH] MIPS: BCM47XX: Add support for Netgear R6300 v1
|
||||
|
||||
Add support for the Netgear R6300 v1 Wi-Fi router using a Broadcom
|
||||
BCM4706 chipset and supporting 802.11n and 802.11ac.
|
||||
|
||||
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
|
||||
Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
|
||||
---
|
||||
arch/mips/bcm47xx/board.c | 1 +
|
||||
arch/mips/bcm47xx/buttons.c | 8 ++++++++
|
||||
arch/mips/include/asm/mach-bcm47xx/bcm47xx_board.h | 1 +
|
||||
3 files changed, 10 insertions(+)
|
||||
|
||||
--- a/arch/mips/bcm47xx/board.c
|
||||
+++ b/arch/mips/bcm47xx/board.c
|
||||
@@ -162,6 +162,7 @@ struct bcm47xx_board_type_list1 bcm47xx_
|
||||
{{BCM47XX_BOARD_LUXUL_XWR_600_V1, "Luxul XWR-600 V1"}, "luxul_xwr600_v1"},
|
||||
{{BCM47XX_BOARD_LUXUL_XWR_1750_V1, "Luxul XWR-1750 V1"}, "luxul_xwr1750_v1"},
|
||||
{{BCM47XX_BOARD_NETGEAR_R6200_V1, "Netgear R6200 V1"}, "U12H192T00_NETGEAR"},
|
||||
+ {{BCM47XX_BOARD_NETGEAR_R6300_V1, "Netgear R6300 V1"}, "U12H218T00_NETGEAR"},
|
||||
{{BCM47XX_BOARD_NETGEAR_WGR614V8, "Netgear WGR614 V8"}, "U12H072T00_NETGEAR"},
|
||||
{{BCM47XX_BOARD_NETGEAR_WGR614V9, "Netgear WGR614 V9"}, "U12H094T00_NETGEAR"},
|
||||
{{BCM47XX_BOARD_NETGEAR_WGR614_V10, "Netgear WGR614 V10"}, "U12H139T01_NETGEAR"},
|
||||
--- a/arch/mips/bcm47xx/buttons.c
|
||||
+++ b/arch/mips/bcm47xx/buttons.c
|
||||
@@ -398,6 +398,11 @@ bcm47xx_buttons_netgear_r6200_v1[] __ini
|
||||
};
|
||||
|
||||
static const struct gpio_keys_button
|
||||
+bcm47xx_buttons_netgear_r6300_v1[] __initconst = {
|
||||
+ BCM47XX_GPIO_KEY(6, KEY_RESTART),
|
||||
+};
|
||||
+
|
||||
+static const struct gpio_keys_button
|
||||
bcm47xx_buttons_netgear_wndr3400v1[] __initconst = {
|
||||
BCM47XX_GPIO_KEY(4, KEY_RESTART),
|
||||
BCM47XX_GPIO_KEY(6, KEY_WPS_BUTTON),
|
||||
@@ -683,6 +688,9 @@ int __init bcm47xx_buttons_register(void
|
||||
case BCM47XX_BOARD_NETGEAR_R6200_V1:
|
||||
err = bcm47xx_copy_bdata(bcm47xx_buttons_netgear_r6200_v1);
|
||||
break;
|
||||
+ case BCM47XX_BOARD_NETGEAR_R6300_V1:
|
||||
+ err = bcm47xx_copy_bdata(bcm47xx_buttons_netgear_r6300_v1);
|
||||
+ break;
|
||||
case BCM47XX_BOARD_NETGEAR_WNDR3400V1:
|
||||
err = bcm47xx_copy_bdata(bcm47xx_buttons_netgear_wndr3400v1);
|
||||
break;
|
||||
--- a/arch/mips/include/asm/mach-bcm47xx/bcm47xx_board.h
|
||||
+++ b/arch/mips/include/asm/mach-bcm47xx/bcm47xx_board.h
|
||||
@@ -100,6 +100,7 @@ enum bcm47xx_board {
|
||||
BCM47XX_BOARD_MOTOROLA_WR850GV2V3,
|
||||
|
||||
BCM47XX_BOARD_NETGEAR_R6200_V1,
|
||||
+ BCM47XX_BOARD_NETGEAR_R6300_V1,
|
||||
BCM47XX_BOARD_NETGEAR_WGR614V8,
|
||||
BCM47XX_BOARD_NETGEAR_WGR614V9,
|
||||
BCM47XX_BOARD_NETGEAR_WGR614_V10,
|
|
@ -0,0 +1,63 @@
|
|||
From 4da27b6d550427a0560a15df36de99cb17629216 Mon Sep 17 00:00:00 2001
|
||||
From: Florian Fainelli <f.fainelli@gmail.com>
|
||||
Date: Thu, 6 Jan 2022 19:51:41 -0800
|
||||
Subject: [PATCH] MIPS: BCM47XX: Add support for Netgear WN2500RP v1 & v2
|
||||
|
||||
Add support for the Netgear WN2500 RP v1 and v2 Wi-Fi range extenders
|
||||
based on the BCM5357 chipset and supporting 802.11n and 802.11ac.
|
||||
|
||||
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
|
||||
Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
|
||||
---
|
||||
arch/mips/bcm47xx/board.c | 2 ++
|
||||
arch/mips/bcm47xx/buttons.c | 9 +++++++++
|
||||
arch/mips/include/asm/mach-bcm47xx/bcm47xx_board.h | 2 ++
|
||||
3 files changed, 13 insertions(+)
|
||||
|
||||
--- a/arch/mips/bcm47xx/board.c
|
||||
+++ b/arch/mips/bcm47xx/board.c
|
||||
@@ -166,6 +166,8 @@ struct bcm47xx_board_type_list1 bcm47xx_
|
||||
{{BCM47XX_BOARD_NETGEAR_WGR614V8, "Netgear WGR614 V8"}, "U12H072T00_NETGEAR"},
|
||||
{{BCM47XX_BOARD_NETGEAR_WGR614V9, "Netgear WGR614 V9"}, "U12H094T00_NETGEAR"},
|
||||
{{BCM47XX_BOARD_NETGEAR_WGR614_V10, "Netgear WGR614 V10"}, "U12H139T01_NETGEAR"},
|
||||
+ {{BCM47XX_BOARD_NETGEAR_WN2500RP_V1, "Netgear WN2500RP V1"}, "U12H197T00_NETGEAR"},
|
||||
+ {{BCM47XX_BOARD_NETGEAR_WN2500RP_V2, "Netgear WN2500RP V2"}, "U12H294T00_NETGEAR"},
|
||||
{{BCM47XX_BOARD_NETGEAR_WNDR3300, "Netgear WNDR3300"}, "U12H093T00_NETGEAR"},
|
||||
{{BCM47XX_BOARD_NETGEAR_WNDR3400V1, "Netgear WNDR3400 V1"}, "U12H155T00_NETGEAR"},
|
||||
{{BCM47XX_BOARD_NETGEAR_WNDR3400V2, "Netgear WNDR3400 V2"}, "U12H187T00_NETGEAR"},
|
||||
--- a/arch/mips/bcm47xx/buttons.c
|
||||
+++ b/arch/mips/bcm47xx/buttons.c
|
||||
@@ -403,6 +403,12 @@ bcm47xx_buttons_netgear_r6300_v1[] __ini
|
||||
};
|
||||
|
||||
static const struct gpio_keys_button
|
||||
+bcm47xx_buttons_netgear_wn2500rp_v1[] __initconst = {
|
||||
+ BCM47XX_GPIO_KEY(12, KEY_RESTART),
|
||||
+ BCM47XX_GPIO_KEY(31, KEY_WPS_BUTTON),
|
||||
+};
|
||||
+
|
||||
+static const struct gpio_keys_button
|
||||
bcm47xx_buttons_netgear_wndr3400v1[] __initconst = {
|
||||
BCM47XX_GPIO_KEY(4, KEY_RESTART),
|
||||
BCM47XX_GPIO_KEY(6, KEY_WPS_BUTTON),
|
||||
@@ -691,6 +697,9 @@ int __init bcm47xx_buttons_register(void
|
||||
case BCM47XX_BOARD_NETGEAR_R6300_V1:
|
||||
err = bcm47xx_copy_bdata(bcm47xx_buttons_netgear_r6300_v1);
|
||||
break;
|
||||
+ case BCM47XX_BOARD_NETGEAR_WN2500RP_V1:
|
||||
+ err = bcm47xx_copy_bdata(bcm47xx_buttons_netgear_wn2500rp_v1);
|
||||
+ break;
|
||||
case BCM47XX_BOARD_NETGEAR_WNDR3400V1:
|
||||
err = bcm47xx_copy_bdata(bcm47xx_buttons_netgear_wndr3400v1);
|
||||
break;
|
||||
--- a/arch/mips/include/asm/mach-bcm47xx/bcm47xx_board.h
|
||||
+++ b/arch/mips/include/asm/mach-bcm47xx/bcm47xx_board.h
|
||||
@@ -104,6 +104,8 @@ enum bcm47xx_board {
|
||||
BCM47XX_BOARD_NETGEAR_WGR614V8,
|
||||
BCM47XX_BOARD_NETGEAR_WGR614V9,
|
||||
BCM47XX_BOARD_NETGEAR_WGR614_V10,
|
||||
+ BCM47XX_BOARD_NETGEAR_WN2500RP_V1,
|
||||
+ BCM47XX_BOARD_NETGEAR_WN2500RP_V2,
|
||||
BCM47XX_BOARD_NETGEAR_WNDR3300,
|
||||
BCM47XX_BOARD_NETGEAR_WNDR3400V1,
|
||||
BCM47XX_BOARD_NETGEAR_WNDR3400V2,
|
|
@ -0,0 +1,109 @@
|
|||
From c022e87162219d67d687df22c977d1c2fc95fb42 Mon Sep 17 00:00:00 2001
|
||||
From: Florian Fainelli <f.fainelli@gmail.com>
|
||||
Date: Thu, 14 Jul 2022 14:13:01 -0700
|
||||
Subject: [PATCH] MIPS: BCM47XX: Add support for Netgear WNR3500L v2
|
||||
|
||||
Add support for the Netgear WNR3500L v2 router based on the BCM47186
|
||||
chipset and supporting 802.11n Wi-Fi.
|
||||
|
||||
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
|
||||
Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
|
||||
---
|
||||
arch/mips/bcm47xx/board.c | 2 ++
|
||||
arch/mips/bcm47xx/buttons.c | 10 ++++++++++
|
||||
arch/mips/bcm47xx/leds.c | 11 +++++++++++
|
||||
arch/mips/bcm47xx/workarounds.c | 1 +
|
||||
arch/mips/include/asm/mach-bcm47xx/bcm47xx_board.h | 1 +
|
||||
5 files changed, 25 insertions(+)
|
||||
|
||||
--- a/arch/mips/bcm47xx/board.c
|
||||
+++ b/arch/mips/bcm47xx/board.c
|
||||
@@ -181,6 +181,7 @@ struct bcm47xx_board_type_list1 bcm47xx_
|
||||
{{BCM47XX_BOARD_NETGEAR_WNR1000_V3, "Netgear WNR1000 V3"}, "U12H139T50_NETGEAR"},
|
||||
{{BCM47XX_BOARD_NETGEAR_WNR2000, "Netgear WNR2000"}, "U12H114T00_NETGEAR"},
|
||||
{{BCM47XX_BOARD_NETGEAR_WNR3500L, "Netgear WNR3500L"}, "U12H136T99_NETGEAR"},
|
||||
+ {{BCM47XX_BOARD_NETGEAR_WNR3500L_V2, "Netgear WNR3500L V2"}, "U12H172T00_NETGEAR"},
|
||||
{{BCM47XX_BOARD_NETGEAR_WNR3500U, "Netgear WNR3500U"}, "U12H136T00_NETGEAR"},
|
||||
{{BCM47XX_BOARD_NETGEAR_WNR3500V2, "Netgear WNR3500 V2"}, "U12H127T00_NETGEAR"},
|
||||
{{BCM47XX_BOARD_NETGEAR_WNR3500V2VC, "Netgear WNR3500 V2vc"}, "U12H127T70_NETGEAR"},
|
||||
@@ -195,6 +196,7 @@ struct bcm47xx_board_type_list3 bcm47xx_
|
||||
{{BCM47XX_BOARD_PHICOMM_M1, "Phicomm M1"}, "0x0590", "80", "0x1104"},
|
||||
{{BCM47XX_BOARD_ZTE_H218N, "ZTE H218N"}, "0x053d", "1234", "0x1305"},
|
||||
{{BCM47XX_BOARD_NETGEAR_WNR3500L, "Netgear WNR3500L"}, "0x04CF", "3500", "02"},
|
||||
+ {{BCM47XX_BOARD_NETGEAR_WNR3500L_V2, "Netgear WNR3500L V2"}, "0x052b", "3500L", "02"},
|
||||
{{BCM47XX_BOARD_LINKSYS_WRT54G_TYPE_0101, "Linksys WRT54G/GS/GL"}, "0x0101", "42", "0x10"},
|
||||
{{BCM47XX_BOARD_LINKSYS_WRT54G_TYPE_0467, "Linksys WRT54G/GS/GL"}, "0x0467", "42", "0x10"},
|
||||
{{BCM47XX_BOARD_LINKSYS_WRT54G_TYPE_0708, "Linksys WRT54G/GS/GL"}, "0x0708", "42", "0x10"},
|
||||
--- a/arch/mips/bcm47xx/buttons.c
|
||||
+++ b/arch/mips/bcm47xx/buttons.c
|
||||
@@ -448,6 +448,13 @@ bcm47xx_buttons_netgear_wnr3500lv1[] __i
|
||||
};
|
||||
|
||||
static const struct gpio_keys_button
|
||||
+bcm47xx_buttons_netgear_wnr3500lv2[] __initconst = {
|
||||
+ BCM47XX_GPIO_KEY(4, KEY_RESTART),
|
||||
+ BCM47XX_GPIO_KEY(6, KEY_WPS_BUTTON),
|
||||
+ BCM47XX_GPIO_KEY(8, KEY_RFKILL),
|
||||
+};
|
||||
+
|
||||
+static const struct gpio_keys_button
|
||||
bcm47xx_buttons_netgear_wnr834bv2[] __initconst = {
|
||||
BCM47XX_GPIO_KEY(6, KEY_RESTART),
|
||||
};
|
||||
@@ -718,6 +725,9 @@ int __init bcm47xx_buttons_register(void
|
||||
case BCM47XX_BOARD_NETGEAR_WNR3500L:
|
||||
err = bcm47xx_copy_bdata(bcm47xx_buttons_netgear_wnr3500lv1);
|
||||
break;
|
||||
+ case BCM47XX_BOARD_NETGEAR_WNR3500L_V2:
|
||||
+ err = bcm47xx_copy_bdata(bcm47xx_buttons_netgear_wnr3500lv2);
|
||||
+ break;
|
||||
case BCM47XX_BOARD_NETGEAR_WNR834BV2:
|
||||
err = bcm47xx_copy_bdata(bcm47xx_buttons_netgear_wnr834bv2);
|
||||
break;
|
||||
--- a/arch/mips/bcm47xx/leds.c
|
||||
+++ b/arch/mips/bcm47xx/leds.c
|
||||
@@ -520,6 +520,14 @@ bcm47xx_leds_netgear_wnr3500lv1[] __init
|
||||
};
|
||||
|
||||
static const struct gpio_led
|
||||
+bcm47xx_leds_netgear_wnr3500lv2[] __initconst = {
|
||||
+ BCM47XX_GPIO_LED(0, "blue", "wlan", 0, LEDS_GPIO_DEFSTATE_OFF),
|
||||
+ BCM47XX_GPIO_LED(1, "green", "wps", 0, LEDS_GPIO_DEFSTATE_OFF),
|
||||
+ BCM47XX_GPIO_LED(3, "green", "power", 0, LEDS_GPIO_DEFSTATE_ON),
|
||||
+ BCM47XX_GPIO_LED(7, "amber", "power", 0, LEDS_GPIO_DEFSTATE_OFF),
|
||||
+};
|
||||
+
|
||||
+static const struct gpio_led
|
||||
bcm47xx_leds_netgear_wnr834bv2[] __initconst = {
|
||||
BCM47XX_GPIO_LED(2, "green", "power", 0, LEDS_GPIO_DEFSTATE_ON),
|
||||
BCM47XX_GPIO_LED(3, "amber", "power", 0, LEDS_GPIO_DEFSTATE_OFF),
|
||||
@@ -780,6 +788,9 @@ void __init bcm47xx_leds_register(void)
|
||||
case BCM47XX_BOARD_NETGEAR_WNR3500L:
|
||||
bcm47xx_set_pdata(bcm47xx_leds_netgear_wnr3500lv1);
|
||||
break;
|
||||
+ case BCM47XX_BOARD_NETGEAR_WNR3500L_V2:
|
||||
+ bcm47xx_set_pdata(bcm47xx_leds_netgear_wnr3500lv2);
|
||||
+ break;
|
||||
case BCM47XX_BOARD_NETGEAR_WNR834BV2:
|
||||
bcm47xx_set_pdata(bcm47xx_leds_netgear_wnr834bv2);
|
||||
break;
|
||||
--- a/arch/mips/bcm47xx/workarounds.c
|
||||
+++ b/arch/mips/bcm47xx/workarounds.c
|
||||
@@ -22,6 +22,7 @@ void __init bcm47xx_workarounds(void)
|
||||
|
||||
switch (board) {
|
||||
case BCM47XX_BOARD_NETGEAR_WNR3500L:
|
||||
+ case BCM47XX_BOARD_NETGEAR_WNR3500L_V2:
|
||||
bcm47xx_workarounds_enable_usb_power(12);
|
||||
break;
|
||||
case BCM47XX_BOARD_NETGEAR_WNDR3400V2:
|
||||
--- a/arch/mips/include/asm/mach-bcm47xx/bcm47xx_board.h
|
||||
+++ b/arch/mips/include/asm/mach-bcm47xx/bcm47xx_board.h
|
||||
@@ -118,6 +118,7 @@ enum bcm47xx_board {
|
||||
BCM47XX_BOARD_NETGEAR_WNR1000_V3,
|
||||
BCM47XX_BOARD_NETGEAR_WNR2000,
|
||||
BCM47XX_BOARD_NETGEAR_WNR3500L,
|
||||
+ BCM47XX_BOARD_NETGEAR_WNR3500L_V2,
|
||||
BCM47XX_BOARD_NETGEAR_WNR3500U,
|
||||
BCM47XX_BOARD_NETGEAR_WNR3500V2,
|
||||
BCM47XX_BOARD_NETGEAR_WNR3500V2VC,
|
|
@ -0,0 +1,67 @@
|
|||
From aecf89f2f8e8a604c33085c230a1f04ea325de64 Mon Sep 17 00:00:00 2001
|
||||
From: Florian Fainelli <f.fainelli@gmail.com>
|
||||
Date: Thu, 6 Jan 2022 19:51:39 -0800
|
||||
Subject: [PATCH] MIPS: BCM47XX: Add LEDs and buttons for Asus RTN-10U
|
||||
|
||||
Add the definitions for the buttons and LEDs used on the Asus RTN-10U
|
||||
router.
|
||||
|
||||
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
|
||||
Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
|
||||
---
|
||||
arch/mips/bcm47xx/buttons.c | 9 +++++++++
|
||||
arch/mips/bcm47xx/leds.c | 11 +++++++++++
|
||||
2 files changed, 20 insertions(+)
|
||||
|
||||
--- a/arch/mips/bcm47xx/buttons.c
|
||||
+++ b/arch/mips/bcm47xx/buttons.c
|
||||
@@ -27,6 +27,12 @@
|
||||
/* Asus */
|
||||
|
||||
static const struct gpio_keys_button
|
||||
+bcm47xx_buttons_asus_rtn10u[] __initconst = {
|
||||
+ BCM47XX_GPIO_KEY(20, KEY_WPS_BUTTON),
|
||||
+ BCM47XX_GPIO_KEY(21, KEY_RESTART),
|
||||
+};
|
||||
+
|
||||
+static const struct gpio_keys_button
|
||||
bcm47xx_buttons_asus_rtn12[] __initconst = {
|
||||
BCM47XX_GPIO_KEY(0, KEY_WPS_BUTTON),
|
||||
BCM47XX_GPIO_KEY(1, KEY_RESTART),
|
||||
@@ -502,6 +508,9 @@ int __init bcm47xx_buttons_register(void
|
||||
int err;
|
||||
|
||||
switch (board) {
|
||||
+ case BCM47XX_BOARD_ASUS_RTN10U:
|
||||
+ err = bcm47xx_copy_bdata(bcm47xx_buttons_asus_rtn10u);
|
||||
+ break;
|
||||
case BCM47XX_BOARD_ASUS_RTN12:
|
||||
err = bcm47xx_copy_bdata(bcm47xx_buttons_asus_rtn12);
|
||||
break;
|
||||
--- a/arch/mips/bcm47xx/leds.c
|
||||
+++ b/arch/mips/bcm47xx/leds.c
|
||||
@@ -30,6 +30,14 @@
|
||||
/* Asus */
|
||||
|
||||
static const struct gpio_led
|
||||
+bcm47xx_leds_asus_rtn10u[] __initconst = {
|
||||
+ BCM47XX_GPIO_LED(5, "green", "wlan", 0, LEDS_GPIO_DEFSTATE_OFF),
|
||||
+ BCM47XX_GPIO_LED(6, "green", "power", 1, LEDS_GPIO_DEFSTATE_ON),
|
||||
+ BCM47XX_GPIO_LED(7, "green", "wps", 0, LEDS_GPIO_DEFSTATE_OFF),
|
||||
+ BCM47XX_GPIO_LED(8, "green", "usb", 0, LEDS_GPIO_DEFSTATE_OFF),
|
||||
+};
|
||||
+
|
||||
+static const struct gpio_led
|
||||
bcm47xx_leds_asus_rtn12[] __initconst = {
|
||||
BCM47XX_GPIO_LED(2, "unk", "power", 1, LEDS_GPIO_DEFSTATE_ON),
|
||||
BCM47XX_GPIO_LED(7, "unk", "wlan", 0, LEDS_GPIO_DEFSTATE_OFF),
|
||||
@@ -571,6 +579,9 @@ void __init bcm47xx_leds_register(void)
|
||||
enum bcm47xx_board board = bcm47xx_board_get();
|
||||
|
||||
switch (board) {
|
||||
+ case BCM47XX_BOARD_ASUS_RTN10U:
|
||||
+ bcm47xx_set_pdata(bcm47xx_leds_asus_rtn10u);
|
||||
+ break;
|
||||
case BCM47XX_BOARD_ASUS_RTN12:
|
||||
bcm47xx_set_pdata(bcm47xx_leds_asus_rtn12);
|
||||
break;
|
|
@ -0,0 +1,40 @@
|
|||
From eea175eedf3e2f71b9538d21e643e7a1be4923df Mon Sep 17 00:00:00 2001
|
||||
From: Florian Fainelli <f.fainelli@gmail.com>
|
||||
Date: Thu, 6 Jan 2022 19:51:37 -0800
|
||||
Subject: [PATCH] MIPS: BCM47XX: Define Linksys WRT310N V2 buttons
|
||||
|
||||
Update the buttons registration code to register the two buttons (WPS,
|
||||
system rester) using the existing BCM47XX_BOARD_LINKSYS_WRT310NV2 board
|
||||
entry.
|
||||
|
||||
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
|
||||
Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
|
||||
---
|
||||
arch/mips/bcm47xx/buttons.c | 9 +++++++++
|
||||
1 file changed, 9 insertions(+)
|
||||
|
||||
--- a/arch/mips/bcm47xx/buttons.c
|
||||
+++ b/arch/mips/bcm47xx/buttons.c
|
||||
@@ -289,6 +289,12 @@ bcm47xx_buttons_linksys_wrt320n_v1[] __i
|
||||
};
|
||||
|
||||
static const struct gpio_keys_button
|
||||
+bcm47xx_buttons_linksys_wrt310n_v2[] __initconst = {
|
||||
+ BCM47XX_GPIO_KEY(5, KEY_WPS_BUTTON),
|
||||
+ BCM47XX_GPIO_KEY(6, KEY_RESTART),
|
||||
+};
|
||||
+
|
||||
+static const struct gpio_keys_button
|
||||
bcm47xx_buttons_linksys_wrt54g3gv2[] __initconst = {
|
||||
BCM47XX_GPIO_KEY(5, KEY_WIMAX),
|
||||
BCM47XX_GPIO_KEY(6, KEY_RESTART),
|
||||
@@ -644,6 +650,9 @@ int __init bcm47xx_buttons_register(void
|
||||
case BCM47XX_BOARD_LINKSYS_WRT320N_V1:
|
||||
err = bcm47xx_copy_bdata(bcm47xx_buttons_linksys_wrt320n_v1);
|
||||
break;
|
||||
+ case BCM47XX_BOARD_LINKSYS_WRT310NV2:
|
||||
+ err = bcm47xx_copy_bdata(bcm47xx_buttons_linksys_wrt310n_v2);
|
||||
+ break;
|
||||
case BCM47XX_BOARD_LINKSYS_WRT54G3GV2:
|
||||
err = bcm47xx_copy_bdata(bcm47xx_buttons_linksys_wrt54g3gv2);
|
||||
break;
|
|
@ -9,6 +9,7 @@ BOARD:=gemini
|
|||
BOARDNAME:=Cortina Systems CS351x
|
||||
FEATURES:=squashfs pci rtc usb dt gpio display ext4 rootfs-part boot-part
|
||||
CPU_TYPE:=fa526
|
||||
SUBTARGETS:=generic
|
||||
|
||||
KERNEL_PATCHVER:=5.15
|
||||
|
||||
|
|
1
target/linux/gemini/generic/target.mk
Normal file
1
target/linux/gemini/generic/target.mk
Normal file
|
@ -0,0 +1 @@
|
|||
BOARDNAME:=Generic
|
|
@ -4641,7 +4641,9 @@ CONFIG_PROC_SYSCTL=y
|
|||
# CONFIG_PWM is not set
|
||||
# CONFIG_PWM_DEBUG is not set
|
||||
# CONFIG_PWM_FSL_FTM is not set
|
||||
# CONFIG_PWM_IMG is not set
|
||||
# CONFIG_PWM_JZ4740 is not set
|
||||
# CONFIG_PWM_MEDIATEK is not set
|
||||
# CONFIG_PWM_PCA9685 is not set
|
||||
CONFIG_PWRSEQ_EMMC=y
|
||||
# CONFIG_PWRSEQ_SD8787 is not set
|
||||
|
|
|
@ -1666,6 +1666,7 @@ CONFIG_DQL=y
|
|||
# CONFIG_DRM_VKMS is not set
|
||||
# CONFIG_DRM_VMWGFX is not set
|
||||
# CONFIG_DRM_XEN is not set
|
||||
# CONFIG_DRM_XEN_FRONTEND is not set
|
||||
# CONFIG_DS1682 is not set
|
||||
# CONFIG_DS1803 is not set
|
||||
# CONFIG_DS4424 is not set
|
||||
|
@ -4860,7 +4861,9 @@ CONFIG_PSTORE_DEFAULT_KMSG_BYTES=10240
|
|||
# CONFIG_PWM_DEBUG is not set
|
||||
# CONFIG_PWM_DWC is not set
|
||||
# CONFIG_PWM_FSL_FTM is not set
|
||||
# CONFIG_PWM_IMG is not set
|
||||
# CONFIG_PWM_JZ4740 is not set
|
||||
# CONFIG_PWM_MEDIATEK is not set
|
||||
# CONFIG_PWM_PCA9685 is not set
|
||||
# CONFIG_PWM_RASPBERRYPI_POE is not set
|
||||
CONFIG_PWRSEQ_EMMC=y
|
||||
|
|
|
@ -33,7 +33,7 @@ Submitted-by: Daniel Golle <daniel@makrotopia.org>
|
|||
|
||||
#define QUECTEL_VENDOR_ID 0x2c7c
|
||||
/* These Quectel products use Quectel's vendor ID */
|
||||
@@ -1155,6 +1157,11 @@ static const struct usb_device_id option
|
||||
@@ -1156,6 +1158,11 @@ static const struct usb_device_id option
|
||||
.driver_info = ZLP },
|
||||
{ USB_DEVICE(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_BG96),
|
||||
.driver_info = RSVD(4) },
|
||||
|
|
|
@ -29,7 +29,7 @@ Subject: [PATCH] net/usb/qmi_wwan: add MeigLink modem support
|
|||
|
||||
#define QUECTEL_VENDOR_ID 0x2c7c
|
||||
/* These Quectel products use Quectel's vendor ID */
|
||||
@@ -1155,6 +1157,11 @@ static const struct usb_device_id option
|
||||
@@ -1156,6 +1158,11 @@ static const struct usb_device_id option
|
||||
.driver_info = ZLP },
|
||||
{ USB_DEVICE(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_BG96),
|
||||
.driver_info = RSVD(4) },
|
||||
|
|
|
@ -1,12 +1,15 @@
|
|||
From: Felix Fietkau <nbd@nbd.name>
|
||||
Date: Thu, 3 Nov 2022 12:38:49 +0100
|
||||
Subject: [PATCH] net: ethernet: mtk_eth_soc: work around issue with
|
||||
sending small fragments
|
||||
Subject: [PATCH] net: ethernet: mtk_eth_soc: work around issue with sending
|
||||
small fragments
|
||||
|
||||
When frames are sent with very small fragments, the DMA engine appears to
|
||||
lock up and transmit attempts time out. Fix this by detecting the presence
|
||||
of small fragments and use skb_gso_segment + skb_linearize to deal with
|
||||
them
|
||||
When lots of frames are sent with a number of very small fragments, an
|
||||
internal FIFO can overflow, causing the DMA engine to lock up lock up and
|
||||
transmit attempts time out.
|
||||
|
||||
Fix this on MT7986 by increasing the reserved FIFO space.
|
||||
Fix this on older chips by detecting the presence of small fragments and use
|
||||
skb_gso_segment + skb_linearize to deal with them.
|
||||
|
||||
Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
---
|
||||
|
@ -42,11 +45,12 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||
bool gso = false;
|
||||
int tx_num;
|
||||
|
||||
@@ -1423,6 +1439,17 @@ static netdev_tx_t mtk_start_xmit(struct
|
||||
@@ -1423,6 +1439,18 @@ static netdev_tx_t mtk_start_xmit(struct
|
||||
return NETDEV_TX_BUSY;
|
||||
}
|
||||
|
||||
+ if (skb_is_gso(skb) && mtk_skb_has_small_frag(skb)) {
|
||||
+ if (!MTK_HAS_CAPS(eth->soc->caps, MTK_NETSYS_V2) &&
|
||||
+ skb_is_gso(skb) && mtk_skb_has_small_frag(skb)) {
|
||||
+ segs = skb_gso_segment(skb, dev->features & ~NETIF_F_ALL_TSO);
|
||||
+ if (IS_ERR(segs))
|
||||
+ goto drop;
|
||||
|
@ -60,19 +64,31 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||
/* TSO: fill MSS info in tcp checksum field */
|
||||
if (skb_is_gso(skb)) {
|
||||
if (skb_cow_head(skb, 0)) {
|
||||
@@ -1438,8 +1465,13 @@ static netdev_tx_t mtk_start_xmit(struct
|
||||
@@ -1438,8 +1466,14 @@ static netdev_tx_t mtk_start_xmit(struct
|
||||
}
|
||||
}
|
||||
|
||||
- if (mtk_tx_map(skb, dev, tx_num, ring, gso) < 0)
|
||||
- goto drop;
|
||||
+ skb_list_walk_safe(skb, skb, next) {
|
||||
+ if ((mtk_skb_has_small_frag(skb) && skb_linearize(skb)) ||
|
||||
+ if ((!MTK_HAS_CAPS(eth->soc->caps, MTK_NETSYS_V2) &&
|
||||
+ mtk_skb_has_small_frag(skb) && skb_linearize(skb)) ||
|
||||
+ mtk_tx_map(skb, dev, tx_num, ring, gso) < 0) {
|
||||
+ stats->tx_dropped++;
|
||||
+ dev_kfree_skb_any(skb);
|
||||
+ stats->tx_dropped++;
|
||||
+ dev_kfree_skb_any(skb);
|
||||
+ }
|
||||
+ }
|
||||
|
||||
if (unlikely(atomic_read(&ring->free_count) <= ring->thresh))
|
||||
netif_tx_stop_all_queues(dev);
|
||||
--- a/drivers/net/ethernet/mediatek/mtk_eth_soc.h
|
||||
+++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.h
|
||||
@@ -246,7 +246,7 @@
|
||||
#define MTK_CHK_DDONE_EN BIT(28)
|
||||
#define MTK_DMAD_WR_WDONE BIT(26)
|
||||
#define MTK_WCOMP_EN BIT(24)
|
||||
-#define MTK_RESV_BUF (0x40 << 16)
|
||||
+#define MTK_RESV_BUF (0x80 << 16)
|
||||
#define MTK_MUTLI_CNT (0x4 << 12)
|
||||
#define MTK_LEAKY_BUCKET_EN BIT(11)
|
||||
|
||||
|
|
|
@ -11,7 +11,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||
|
||||
--- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
|
||||
+++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
|
||||
@@ -3531,9 +3531,12 @@ static int mtk_hw_init(struct mtk_eth *e
|
||||
@@ -3533,9 +3533,12 @@ static int mtk_hw_init(struct mtk_eth *e
|
||||
mtk_w32(eth, 0x21021000, MTK_FE_INT_GRP);
|
||||
|
||||
if (MTK_HAS_CAPS(eth->soc->caps, MTK_NETSYS_V2)) {
|
||||
|
|
|
@ -17,7 +17,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||
|
||||
--- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
|
||||
+++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
|
||||
@@ -1993,29 +1993,16 @@ static int mtk_poll_rx(struct napi_struc
|
||||
@@ -1995,29 +1995,16 @@ static int mtk_poll_rx(struct napi_struc
|
||||
if (reason == MTK_PPE_CPU_REASON_HIT_UNBIND_RATE_REACHED)
|
||||
mtk_ppe_check_skb(eth->ppe[0], skb, hash);
|
||||
|
||||
|
@ -50,7 +50,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||
}
|
||||
|
||||
skb_record_rx_queue(skb, 0);
|
||||
@@ -2832,29 +2819,11 @@ static netdev_features_t mtk_fix_feature
|
||||
@@ -2834,29 +2821,11 @@ static netdev_features_t mtk_fix_feature
|
||||
|
||||
static int mtk_set_features(struct net_device *dev, netdev_features_t features)
|
||||
{
|
||||
|
@ -80,7 +80,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||
return 0;
|
||||
}
|
||||
|
||||
@@ -3153,30 +3122,6 @@ static int mtk_open(struct net_device *d
|
||||
@@ -3155,30 +3124,6 @@ static int mtk_open(struct net_device *d
|
||||
struct mtk_eth *eth = mac->hw;
|
||||
int i, err;
|
||||
|
||||
|
@ -111,7 +111,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||
err = phylink_of_phy_connect(mac->phylink, mac->of_node, 0);
|
||||
if (err) {
|
||||
netdev_err(dev, "%s: could not attach PHY: %d\n", __func__,
|
||||
@@ -3217,6 +3162,35 @@ static int mtk_open(struct net_device *d
|
||||
@@ -3219,6 +3164,35 @@ static int mtk_open(struct net_device *d
|
||||
phylink_start(mac->phylink);
|
||||
netif_tx_start_all_queues(dev);
|
||||
|
||||
|
@ -147,7 +147,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||
return 0;
|
||||
}
|
||||
|
||||
@@ -3510,10 +3484,9 @@ static int mtk_hw_init(struct mtk_eth *e
|
||||
@@ -3512,10 +3486,9 @@ static int mtk_hw_init(struct mtk_eth *e
|
||||
if (!MTK_HAS_CAPS(eth->soc->caps, MTK_NETSYS_V2)) {
|
||||
val = mtk_r32(eth, MTK_CDMP_IG_CTRL);
|
||||
mtk_w32(eth, val | MTK_CDMP_STAG_EN, MTK_CDMP_IG_CTRL);
|
||||
|
@ -160,7 +160,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||
|
||||
/* set interrupt delays based on current Net DIM sample */
|
||||
mtk_dim_rx(ð->rx_dim.work);
|
||||
@@ -4134,7 +4107,7 @@ static int mtk_add_mac(struct mtk_eth *e
|
||||
@@ -4136,7 +4109,7 @@ static int mtk_add_mac(struct mtk_eth *e
|
||||
eth->netdev[id]->hw_features |= NETIF_F_LRO;
|
||||
|
||||
eth->netdev[id]->vlan_features = eth->soc->hw_features &
|
||||
|
|
|
@ -0,0 +1,55 @@
|
|||
From: Felix Fietkau <nbd@nbd.name>
|
||||
Date: Tue, 27 Dec 2022 15:02:51 +0100
|
||||
Subject: [PATCH] net: ethernet: mtk_eth_soc: ppe: fix L2 offloading with DSA
|
||||
untagging offload enabled
|
||||
|
||||
Check for skb metadata in order to detect the case where the DSA header is not
|
||||
present.
|
||||
|
||||
Fixes: 2d7605a72906 ("net: ethernet: mtk_eth_soc: enable hardware DSA untagging")
|
||||
Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
---
|
||||
|
||||
--- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
|
||||
+++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
|
||||
@@ -1992,9 +1992,6 @@ static int mtk_poll_rx(struct napi_struc
|
||||
skb_checksum_none_assert(skb);
|
||||
skb->protocol = eth_type_trans(skb, netdev);
|
||||
|
||||
- if (reason == MTK_PPE_CPU_REASON_HIT_UNBIND_RATE_REACHED)
|
||||
- mtk_ppe_check_skb(eth->ppe[0], skb, hash);
|
||||
-
|
||||
/* When using VLAN untagging in combination with DSA, the
|
||||
* hardware treats the MTK special tag as a VLAN and untags it.
|
||||
*/
|
||||
@@ -2007,6 +2004,9 @@ static int mtk_poll_rx(struct napi_struc
|
||||
skb_dst_set_noref(skb, ð->dsa_meta[port]->dst);
|
||||
}
|
||||
|
||||
+ if (reason == MTK_PPE_CPU_REASON_HIT_UNBIND_RATE_REACHED)
|
||||
+ mtk_ppe_check_skb(eth->ppe[0], skb, hash);
|
||||
+
|
||||
skb_record_rx_queue(skb, 0);
|
||||
napi_gro_receive(napi, skb);
|
||||
|
||||
--- a/drivers/net/ethernet/mediatek/mtk_ppe.c
|
||||
+++ b/drivers/net/ethernet/mediatek/mtk_ppe.c
|
||||
@@ -8,6 +8,7 @@
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/if_ether.h>
|
||||
#include <linux/if_vlan.h>
|
||||
+#include <net/dst_metadata.h>
|
||||
#include <net/dsa.h>
|
||||
#include "mtk_eth_soc.h"
|
||||
#include "mtk_ppe.h"
|
||||
@@ -756,7 +757,9 @@ void __mtk_ppe_check_skb(struct mtk_ppe
|
||||
skb->dev->dsa_ptr->tag_ops->proto != DSA_TAG_PROTO_MTK)
|
||||
goto out;
|
||||
|
||||
- tag += 4;
|
||||
+ if (!skb_metadata_dst(skb))
|
||||
+ tag += 4;
|
||||
+
|
||||
if (get_unaligned_be16(tag) != ETH_P_8021Q)
|
||||
break;
|
||||
|
|
@ -69,6 +69,7 @@ ipq40xx_setup_interfaces()
|
|||
mikrotik,wap-r-ac)
|
||||
ucidef_set_interface_lan "sw-eth1 sw-eth2"
|
||||
;;
|
||||
aruba,ap-303h|\
|
||||
netgear,rbr50|\
|
||||
netgear,rbs50|\
|
||||
netgear,srr60|\
|
||||
|
|
|
@ -420,6 +420,38 @@
|
|||
status = "okay";
|
||||
};
|
||||
|
||||
&gmac {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&switch {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&swport2 {
|
||||
status = "okay";
|
||||
|
||||
label = "lan1";
|
||||
};
|
||||
|
||||
&swport3 {
|
||||
status = "okay";
|
||||
|
||||
label = "lan2";
|
||||
};
|
||||
|
||||
&swport4 {
|
||||
status = "okay";
|
||||
|
||||
label = "lan3";
|
||||
};
|
||||
|
||||
&swport5 {
|
||||
status = "okay";
|
||||
|
||||
label = "wan";
|
||||
};
|
||||
|
||||
&wifi0 {
|
||||
status = "okay";
|
||||
qcom,ath10k-calibration-variant = "Aruba-AP-303";
|
||||
|
|
|
@ -181,8 +181,7 @@ define Device/aruba_ap-303h
|
|||
$(call Device/aruba_glenmorangie)
|
||||
DEVICE_MODEL := AP-303H
|
||||
endef
|
||||
# Missing DSA Setup
|
||||
#TARGET_DEVICES += aruba_ap-303h
|
||||
TARGET_DEVICES += aruba_ap-303h
|
||||
|
||||
define Device/aruba_ap-365
|
||||
$(call Device/aruba_glenmorangie)
|
||||
|
|
|
@ -9,6 +9,7 @@ BOARD:=kirkwood
|
|||
BOARDNAME:=Marvell Kirkwood
|
||||
FEATURES:=usb nand squashfs ramdisk
|
||||
CPU_TYPE:=xscale
|
||||
SUBTARGETS:=generic
|
||||
|
||||
KERNEL_PATCHVER:=5.10
|
||||
KERNEL_TESTING_PATCHVER:=5.15
|
||||
|
|
1
target/linux/kirkwood/generic/target.mk
Normal file
1
target/linux/kirkwood/generic/target.mk
Normal file
|
@ -0,0 +1 @@
|
|||
BOARDNAME:=Generic
|
|
@ -8,7 +8,25 @@
|
|||
compatible = "xiaomi,redmi-router-ax6000-stock", "mediatek,mt7986a";
|
||||
};
|
||||
|
||||
&spi_nand_flash {
|
||||
mediatek,nmbm;
|
||||
mediatek,bmt-max-ratio = <1>;
|
||||
mediatek,bmt-max-reserved-blocks = <64>;
|
||||
};
|
||||
|
||||
&partitions {
|
||||
partition@580000 {
|
||||
label = "crash";
|
||||
reg = <0x580000 0x40000>;
|
||||
read-only;
|
||||
};
|
||||
|
||||
partition@5c0000 {
|
||||
label = "crash_log";
|
||||
reg = <0x5c0000 0x40000>;
|
||||
read-only;
|
||||
};
|
||||
|
||||
partition@600000 {
|
||||
label = "ubi_kernel";
|
||||
reg = <0x600000 0x1e00000>;
|
||||
|
|
|
@ -0,0 +1,16 @@
|
|||
// SPDX-License-Identifier: (GPL-2.0 OR MIT)
|
||||
|
||||
/dts-v1/;
|
||||
#include "mt7986a-xiaomi-redmi-router-ax6000.dtsi"
|
||||
|
||||
/ {
|
||||
model = "Xiaomi Redmi Router AX6000 (OpenWrt U-Boot layout)";
|
||||
compatible = "xiaomi,redmi-router-ax6000-ubootmod", "mediatek,mt7986a";
|
||||
};
|
||||
|
||||
&partitions {
|
||||
partition@580000 {
|
||||
label = "ubi";
|
||||
reg = <0x580000 0x7a80000>;
|
||||
};
|
||||
};
|
|
@ -1,24 +0,0 @@
|
|||
// SPDX-License-Identifier: (GPL-2.0 OR MIT)
|
||||
|
||||
/dts-v1/;
|
||||
#include "mt7986a-xiaomi-redmi-router-ax6000.dtsi"
|
||||
|
||||
/ {
|
||||
model = "Xiaomi Redmi Router AX6000";
|
||||
compatible = "xiaomi,redmi-router-ax6000", "mediatek,mt7986a";
|
||||
};
|
||||
|
||||
&partitions {
|
||||
/* ubi partition is the result of squashing
|
||||
* consecutive stock partitions:
|
||||
* - ubi
|
||||
* - ubi1
|
||||
* - overlay
|
||||
*/
|
||||
partition@600000 {
|
||||
label = "ubi";
|
||||
reg = <0x600000 0x6e00000>;
|
||||
};
|
||||
|
||||
/* last 12 MiB is reserved for NMBM bad block table */
|
||||
};
|
|
@ -127,16 +127,12 @@
|
|||
pinctrl-0 = <&spi_flash_pins>;
|
||||
status = "okay";
|
||||
|
||||
flash@0 {
|
||||
spi_nand_flash: flash@0 {
|
||||
compatible = "spi-nand";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
reg = <0>;
|
||||
|
||||
mediatek,nmbm;
|
||||
mediatek,bmt-max-ratio = <1>;
|
||||
mediatek,bmt-max-reserved-blocks = <64>;
|
||||
|
||||
spi-max-frequency = <20000000>;
|
||||
spi-tx-buswidth = <4>;
|
||||
spi-rx-buswidth = <4>;
|
||||
|
@ -181,18 +177,6 @@
|
|||
reg = <0x380000 0x200000>;
|
||||
read-only;
|
||||
};
|
||||
|
||||
partition@580000 {
|
||||
label = "crash";
|
||||
reg = <0x580000 0x40000>;
|
||||
read-only;
|
||||
};
|
||||
|
||||
partition@5c0000 {
|
||||
label = "crash_log";
|
||||
reg = <0x5c0000 0x40000>;
|
||||
read-only;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
|
|
@ -6,8 +6,8 @@ board=$(board_name)
|
|||
board_config_update
|
||||
|
||||
case $board in
|
||||
xiaomi,redmi-router-ax6000|\
|
||||
xiaomi,redmi-router-ax6000-stock)
|
||||
xiaomi,redmi-router-ax6000-stock|\
|
||||
xiaomi,redmi-router-ax6000-ubootmod)
|
||||
ucidef_set_led_netdev "wan" "wan" "rgb:network" "wan"
|
||||
;;
|
||||
esac
|
||||
|
|
|
@ -16,8 +16,8 @@ mediatek_setup_interfaces()
|
|||
ucidef_set_interfaces_lan_wan "lan1 lan2 lan3 lan4 sfp2" "eth1 wan"
|
||||
ucidef_set_interface_macaddr "wan" "$(macaddr_add $(cat /sys/class/net/eth0/address) 1)"
|
||||
;;
|
||||
xiaomi,redmi-router-ax6000|\
|
||||
xiaomi,redmi-router-ax6000-stock)
|
||||
xiaomi,redmi-router-ax6000-stock|\
|
||||
xiaomi,redmi-router-ax6000-ubootmod)
|
||||
ucidef_set_interfaces_lan_wan "lan2 lan3 lan4" wan
|
||||
;;
|
||||
*)
|
||||
|
@ -34,8 +34,8 @@ mediatek_setup_macs()
|
|||
local label_mac=""
|
||||
|
||||
case $board in
|
||||
xiaomi,redmi-router-ax6000|\
|
||||
xiaomi,redmi-router-ax6000-stock)
|
||||
xiaomi,redmi-router-ax6000-stock|\
|
||||
xiaomi,redmi-router-ax6000-ubootmod)
|
||||
wan_mac=$(mtd_get_mac_ascii Bdata ethaddr_wan)
|
||||
label_mac=$wan_mac
|
||||
;;
|
||||
|
|
|
@ -64,6 +64,10 @@ platform_do_upgrade() {
|
|||
CI_ROOT_UBIPART=ubi
|
||||
nand_do_upgrade "$1"
|
||||
;;
|
||||
xiaomi,redmi-router-ax6000-ubootmod)
|
||||
CI_KERNPART="fit"
|
||||
nand_do_upgrade "$1"
|
||||
;;
|
||||
*)
|
||||
nand_do_upgrade "$1"
|
||||
;;
|
||||
|
|
|
@ -125,21 +125,6 @@ define Device/mediatek_mt7986b-rfb
|
|||
endef
|
||||
TARGET_DEVICES += mediatek_mt7986b-rfb
|
||||
|
||||
define Device/xiaomi_redmi-router-ax6000
|
||||
DEVICE_VENDOR := Xiaomi
|
||||
DEVICE_MODEL := Redmi Router AX6000
|
||||
DEVICE_DTS := mt7986a-xiaomi-redmi-router-ax6000
|
||||
DEVICE_DTS_DIR := ../dts
|
||||
DEVICE_PACKAGES := kmod-leds-ws2812b
|
||||
KERNEL_LOADADDR := 0x48000000
|
||||
UBINIZE_OPTS := -E 5
|
||||
BLOCKSIZE := 128k
|
||||
PAGESIZE := 2048
|
||||
KERNEL_IN_UBI := 1
|
||||
IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata
|
||||
endef
|
||||
TARGET_DEVICES += xiaomi_redmi-router-ax6000
|
||||
|
||||
define Device/xiaomi_redmi-router-ax6000-stock
|
||||
DEVICE_VENDOR := Xiaomi
|
||||
DEVICE_MODEL := Redmi Router AX6000 (stock layout)
|
||||
|
@ -157,3 +142,32 @@ endif
|
|||
IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata
|
||||
endef
|
||||
TARGET_DEVICES += xiaomi_redmi-router-ax6000-stock
|
||||
|
||||
define Device/xiaomi_redmi-router-ax6000-ubootmod
|
||||
DEVICE_VENDOR := Xiaomi
|
||||
DEVICE_MODEL := Redmi Router AX6000 (OpenWrt U-Boot layout)
|
||||
DEVICE_DTS := mt7986a-xiaomi-redmi-router-ax6000-ubootmod
|
||||
DEVICE_DTS_DIR := ../dts
|
||||
DEVICE_PACKAGES := kmod-leds-ws2812b
|
||||
KERNEL_INITRAMFS_SUFFIX := -recovery.itb
|
||||
IMAGES := sysupgrade.itb
|
||||
KERNEL_LOADADDR := 0x48000000
|
||||
UBINIZE_OPTS := -E 5
|
||||
BLOCKSIZE := 128k
|
||||
PAGESIZE := 2048
|
||||
KERNEL_IN_UBI := 1
|
||||
UBOOTENV_IN_UBI := 1
|
||||
KERNEL := kernel-bin | gzip
|
||||
KERNEL_INITRAMFS := kernel-bin | lzma | \
|
||||
fit lzma $$(KDIR)/image-$$(firstword $$(DEVICE_DTS)).dtb with-initrd | pad-to 64k
|
||||
IMAGE/sysupgrade.itb := append-kernel | \
|
||||
fit gzip $$(KDIR)/image-$$(firstword $$(DEVICE_DTS)).dtb external-static-with-rootfs | append-metadata
|
||||
ARTIFACTS := preloader.bin bl31-uboot.fip
|
||||
ARTIFACT/preloader.bin := bl2 spim-nand-ddr4
|
||||
ARTIFACT/bl31-uboot.fip := bl31-uboot xiaomi_redmi-router-ax6000
|
||||
ifneq ($(CONFIG_TARGET_ROOTFS_INITRAMFS),)
|
||||
ARTIFACTS += initramfs-factory.ubi
|
||||
ARTIFACT/initramfs-factory.ubi := append-image-stage initramfs-recovery.itb | ubinize-kernel
|
||||
endif
|
||||
endef
|
||||
TARGET_DEVICES += xiaomi_redmi-router-ax6000-ubootmod
|
||||
|
|
|
@ -7,7 +7,7 @@ include $(TOPDIR)/rules.mk
|
|||
ARCH:=powerpc
|
||||
BOARD:=mpc85xx
|
||||
BOARDNAME:=Freescale MPC85xx
|
||||
CPU_TYPE:=8540
|
||||
CPU_TYPE:=8548
|
||||
FEATURES:=squashfs ramdisk nand
|
||||
SUBTARGETS:=p1010 p1020 p2020
|
||||
|
||||
|
|
|
@ -9,6 +9,7 @@ BOARD:=mxs
|
|||
BOARDNAME:=Freescale i.MX23/i.MX28
|
||||
FEATURES:=ext4 rtc usb gpio
|
||||
CPU_TYPE:=arm926ej-s
|
||||
SUBTARGETS:=generic
|
||||
|
||||
KERNEL_PATCHVER:=5.10
|
||||
KERNEL_TESTING_PATCHVER:=5.15
|
||||
|
|
1
target/linux/mxs/generic/target.mk
Normal file
1
target/linux/mxs/generic/target.mk
Normal file
|
@ -0,0 +1 @@
|
|||
BOARDNAME:=Generic
|
|
@ -8,6 +8,7 @@ ARCH:=aarch64
|
|||
BOARD:=octeontx
|
||||
BOARDNAME:=Octeon-TX
|
||||
FEATURES:=targz pcie gpio rtc usb fpu
|
||||
SUBTARGETS:=generic
|
||||
|
||||
KERNEL_PATCHVER:=5.10
|
||||
|
||||
|
|
1
target/linux/octeontx/generic/target.mk
Normal file
1
target/linux/octeontx/generic/target.mk
Normal file
|
@ -0,0 +1 @@
|
|||
BOARDNAME:=Generic
|
|
@ -10,6 +10,7 @@ BOARDNAME:=TI OMAP3/4/AM33xx
|
|||
FEATURES:=usb usbgadget ext4 targz fpu audio display nand rootfs-part squashfs
|
||||
CPU_TYPE:=cortex-a8
|
||||
CPU_SUBTYPE:=vfpv3
|
||||
SUBTARGETS:=generic
|
||||
|
||||
KERNEL_PATCHVER:=5.10
|
||||
KERNEL_TESTING_PATCHVER:=5.15
|
||||
|
|
1
target/linux/omap/generic/target.mk
Normal file
1
target/linux/omap/generic/target.mk
Normal file
|
@ -0,0 +1 @@
|
|||
BOARDNAME:=Generic
|
|
@ -10,6 +10,7 @@ BOARDNAME:=MIPS pistachio
|
|||
FEATURES:=fpu usb usbgadget squashfs targz nand
|
||||
CPU_TYPE:=24kc
|
||||
CPU_SUBTYPE:=24kf
|
||||
SUBTARGETS:=generic
|
||||
|
||||
KERNEL_PATCHVER:=5.10
|
||||
|
||||
|
|
1
target/linux/pistachio/generic/target.mk
Normal file
1
target/linux/pistachio/generic/target.mk
Normal file
|
@ -0,0 +1 @@
|
|||
BOARDNAME:=Generic
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue