diff --git a/.github/workflows/formal.yml b/.github/workflows/formal.yml
index 8083c5832c..081129d6f0 100644
--- a/.github/workflows/formal.yml
+++ b/.github/workflows/formal.yml
@@ -9,65 +9,4 @@ permissions:
jobs:
build:
name: Test Formalities
- runs-on: ubuntu-latest
- strategy:
- fail-fast: false
-
- steps:
- - uses: actions/checkout@v3
- with:
- ref: ${{ github.event.pull_request.head.sha }}
- fetch-depth: 0
-
- - name: Determine branch name
- run: |
- BRANCH="${GITHUB_BASE_REF#refs/heads/}"
- echo "Building for $BRANCH"
- echo "BRANCH=$BRANCH" >> $GITHUB_ENV
-
- - name: Test formalities
- run: |
- source .github/workflows/scripts/ci_helpers.sh
-
- RET=0
- for commit in $(git rev-list HEAD ^origin/$BRANCH); do
- info "=== Checking commit '$commit'"
- if git show --format='%P' -s $commit | grep -qF ' '; then
- err "Pull request should not include merge commits"
- RET=1
- fi
-
- author="$(git show -s --format=%aN $commit)"
- if echo $author | grep -q '\S\+\s\+\S\+'; then
- success "Author name ($author) seems ok"
- else
- err "Author name ($author) need to be your real name 'firstname lastname'"
- RET=1
- fi
-
- subject="$(git show -s --format=%s $commit)"
- if echo "$subject" | grep -q -e '^[0-9A-Za-z,+/_\.-]\+: ' -e '^Revert '; then
- success "Commit subject line seems ok ($subject)"
- else
- err "Commit subject line MUST start with ': ' ($subject)"
- RET=1
- fi
-
- body="$(git show -s --format=%b $commit)"
- sob="$(git show -s --format='Signed-off-by: %aN <%aE>' $commit)"
- if echo "$body" | grep -qF "$sob"; then
- success "Signed-off-by match author"
- else
- err "Signed-off-by is missing or doesn't match author (should be '$sob')"
- RET=1
- fi
-
- if echo "$body" | grep -v "Signed-off-by:"; then
- success "A commit message exists"
- else
- err "Missing commit message. Please describe your changes"
- RET=1
- fi
- done
-
- exit $RET
+ uses: openwrt/actions-shared-workflows/.github/workflows/formal.yml@main
diff --git a/config/Config-build.in b/config/Config-build.in
index ebfce8add4..24c2bcf130 100644
--- a/config/Config-build.in
+++ b/config/Config-build.in
@@ -293,6 +293,8 @@ menu "Global build settings"
bool "Regular"
config PKG_CC_STACKPROTECTOR_STRONG
bool "Strong"
+ config PKG_CC_STACKPROTECTOR_ALL
+ bool "All"
endchoice
choice
diff --git a/include/hardening.mk b/include/hardening.mk
index 6acd862f5c..4a8874261b 100644
--- a/include/hardening.mk
+++ b/include/hardening.mk
@@ -36,6 +36,11 @@ ifdef CONFIG_PKG_CC_STACKPROTECTOR_STRONG
TARGET_CFLAGS += -fstack-protector-strong
endif
endif
+ifdef CONFIG_PKG_CC_STACKPROTECTOR_ALL
+ ifeq ($(strip $(PKG_SSP)),1)
+ TARGET_CFLAGS += -fstack-protector-all
+ endif
+endif
ifdef CONFIG_PKG_FORTIFY_SOURCE_1
ifeq ($(strip $(PKG_FORTIFY_SOURCE)),1)
TARGET_CFLAGS += -D_FORTIFY_SOURCE=1
diff --git a/include/image.mk b/include/image.mk
index 096ccb5f18..f5ab1d7953 100644
--- a/include/image.mk
+++ b/include/image.mk
@@ -151,17 +151,13 @@ endif
# Disable noisy checks by default as in upstream
DTC_WARN_FLAGS := \
+ -Wno-interrupt_provider \
+ -Wno-unique_unit_address \
-Wno-unit_address_vs_reg \
- -Wno-simple_bus_reg \
- -Wno-unit_address_format \
- -Wno-pci_bridge \
- -Wno-pci_device_bus_num \
- -Wno-pci_device_reg \
-Wno-avoid_unnecessary_addr_size \
-Wno-alias_paths \
-Wno-graph_child_address \
- -Wno-graph_port \
- -Wno-unique_unit_address
+ -Wno-simple_bus_reg
DTC_FLAGS += $(DTC_WARN_FLAGS)
DTCO_FLAGS += $(DTC_WARN_FLAGS)
diff --git a/include/kernel-5.15 b/include/kernel-5.15
index 2948d10bdc..5cc07434b2 100644
--- a/include/kernel-5.15
+++ b/include/kernel-5.15
@@ -1,2 +1,2 @@
-LINUX_VERSION-5.15 = .145
-LINUX_KERNEL_HASH-5.15.145 = b2a49d87605f3a9491581150315e22337c1afb599efc1e2737481be3a2d6d620
+LINUX_VERSION-5.15 = .147
+LINUX_KERNEL_HASH-5.15.147 = 56c1e65625d201db431efda7a3816e7b424071e7cb0245b2ba594d15b1fdfcd4
diff --git a/include/kernel-6.1 b/include/kernel-6.1
index b42886811e..87c6bf5097 100644
--- a/include/kernel-6.1
+++ b/include/kernel-6.1
@@ -1,2 +1,2 @@
-LINUX_VERSION-6.1 = .69
-LINUX_KERNEL_HASH-6.1.69 = 7e3d2694d18ce502068cc88a430da809abbd17d0773268524ebece442612b541
+LINUX_VERSION-6.1 = .74
+LINUX_KERNEL_HASH-6.1.74 = b7fbd1d79faed2ce3570ef79dc1223e4e19c868b86326b14a435db56ebbb2022
diff --git a/include/kernel-build.mk b/include/kernel-build.mk
index 5b332258f8..b9513ec414 100644
--- a/include/kernel-build.mk
+++ b/include/kernel-build.mk
@@ -63,7 +63,7 @@ ifdef CONFIG_COLLECT_KERNEL_DEBUG
mkdir -p $(KERNEL_BUILD_DIR)/debug/modules
$(CP) $(LINUX_DIR)/vmlinux $(KERNEL_BUILD_DIR)/debug/
-$(CP) \
- $(STAGING_DIR_ROOT)/lib/modules/$(LINUX_VERSION)/* \
+ $(STAGING_DIR_ROOT)/lib/modules/$(LINUX_VERSION)/*.ko \
$(KERNEL_BUILD_DIR)/debug/modules/
$(FIND) $(KERNEL_BUILD_DIR)/debug -type f | $(XARGS) $(KERNEL_CROSS)strip --only-keep-debug
$(TAR) c -C $(KERNEL_BUILD_DIR) debug \
diff --git a/include/package-defaults.mk b/include/package-defaults.mk
index 2cff26b531..30b112c7d8 100644
--- a/include/package-defaults.mk
+++ b/include/package-defaults.mk
@@ -49,7 +49,7 @@ define Package/Default
KCONFIG:=
BUILDONLY:=
HIDDEN:=
- URL:=
+ URL:=$(PKG_URL)
VARIANT:=
DEFAULT_VARIANT:=
USERID:=
diff --git a/include/package-dumpinfo.mk b/include/package-dumpinfo.mk
index 6baf10225d..fc25099ad3 100644
--- a/include/package-dumpinfo.mk
+++ b/include/package-dumpinfo.mk
@@ -37,14 +37,14 @@ $(if $(USERID),Require-User: $(USERID)
$(if $(LICENSE),License: $(LICENSE)
)$(if $(LICENSE_FILES),LicenseFiles: $(LICENSE_FILES)
)$(if $(PKG_CPE_ID),CPE-ID: $(PKG_CPE_ID)
+)$(if $(URL),URL: $(URL)
)$(if $(ABI_VERSION),ABI-Version: $(ABI_VERSION)
)Type: $(if $(Package/$(1)/targets),$(Package/$(1)/targets),$(if $(PKG_TARGETS),$(PKG_TARGETS),ipkg))
$(if $(KCONFIG),Kernel-Config: $(KCONFIG)
)$(if $(BUILDONLY),Build-Only: $(BUILDONLY)
)$(if $(HIDDEN),Hidden: $(HIDDEN)
)Description: $(if $(Package/$(1)/description),$(Package/$(1)/description),$(TITLE))
-$(if $(URL),$(URL)
-)$(MAINTAINER)
+$(MAINTAINER)
@@
$(if $(Package/$(1)/config),Config:
$(Package/$(1)/config)
diff --git a/include/package-ipkg.mk b/include/package-ipkg.mk
index afa2b81eb9..5f5f7e1317 100644
--- a/include/package-ipkg.mk
+++ b/include/package-ipkg.mk
@@ -185,6 +185,7 @@ $$(call addfield,Depends,$$(Package/$(1)/DEPENDS)
)$$(call addfield,Section,$(SECTION)
)$$(call addfield,Require-User,$(USERID)
)$$(call addfield,SourceDateEpoch,$(PKG_SOURCE_DATE_EPOCH)
+)$$(call addfield,URL,$(URL)
)$$(if $$(ABIV_$(1)),ABIVersion: $$(ABIV_$(1))
)$(if $(PKG_CPE_ID),CPE-ID: $(PKG_CPE_ID)
)$(if $(filter hold,$(PKG_FLAGS)),Status: unknown hold not-installed
diff --git a/include/toplevel.mk b/include/toplevel.mk
index 328214be1b..f2dfde60cf 100644
--- a/include/toplevel.mk
+++ b/include/toplevel.mk
@@ -212,7 +212,7 @@ prereq:: prepare-tmpinfo .config
check: .config FORCE
@+$(NO_TRACE_MAKE) -r -s $@ QUIET= V=s
-val.%: FORCE
+val.% var.%: FORCE
@+$(NO_TRACE_MAKE) -r -s $@ QUIET= V=s
WARN_PARALLEL_ERROR = $(if $(BUILD_LOG),,$(and $(filter -j,$(MAKEFLAGS)),$(findstring s,$(OPENWRT_VERBOSE))))
diff --git a/include/verbose.mk b/include/verbose.mk
index 4487a207e8..f6aa0d7012 100644
--- a/include/verbose.mk
+++ b/include/verbose.mk
@@ -30,12 +30,18 @@ ifeq ($(IS_TTY),1)
endif
define ERROR_MESSAGE
- printf "$(_R)%s$(_N)\n" "$(1)" >&8
+ { \
+ printf "$(_R)%s$(_N)\n" "$(1)" >&9 || \
+ printf "$(_R)%s$(_N)\n" "$(1)"; \
+ } >&2 2>/dev/null
endef
ifeq ($(findstring s,$(OPENWRT_VERBOSE)),)
define MESSAGE
- printf "$(_Y)%s$(_N)\n" "$(1)" >&8
+ { \
+ printf "$(_Y)%s$(_N)\n" "$(1)" >&8 || \
+ printf "$(_Y)%s$(_N)\n" "$(1)"; \
+ } 2>/dev/null
endef
ifeq ($(QUIET),1)
@@ -44,9 +50,12 @@ ifeq ($(findstring s,$(OPENWRT_VERBOSE)),)
else
_DIR:=
endif
- _NULL:=$(if $(MAKECMDGOALS),$(shell \
+ _MESSAGE:=$(if $(MAKECMDGOALS),$(shell \
$(call MESSAGE, make[$(MAKELEVEL)]$(if $(_DIR), -C $(_DIR)) $(MAKECMDGOALS)); \
))
+ ifneq ($(strip $(_MESSAGE)),)
+ $(info $(_MESSAGE))
+ endif
SUBMAKE=$(MAKE)
else
SILENT:=>/dev/null $(if $(findstring w,$(OPENWRT_VERBOSE)),,2>&1)
diff --git a/package/base-files/files/lib/functions.sh b/package/base-files/files/lib/functions.sh
index 851d2f1791..d23a56e0cf 100644
--- a/package/base-files/files/lib/functions.sh
+++ b/package/base-files/files/lib/functions.sh
@@ -45,7 +45,7 @@ prepend() {
local value="$2"
local sep="${3:- }"
- eval "export ${NO_EXPORT:+-n} -- \"$var=\${$value:+\${$value}\$sep}\$var\""
+ eval "export ${NO_EXPORT:+-n} -- \"$var=\$value\${$var:+\${sep}\${$var}}\""
}
list_contains() {
diff --git a/package/base-files/files/lib/preinit/80_mount_root b/package/base-files/files/lib/preinit/80_mount_root
index c3816c2cbf..fa6abcde57 100644
--- a/package/base-files/files/lib/preinit/80_mount_root
+++ b/package/base-files/files/lib/preinit/80_mount_root
@@ -14,8 +14,27 @@ missing_lines() {
IFS="$oIFS"
}
+# Rootfs mount options can be passed by declaring in the kernel
+# cmdline as much options as needed prefixed with "rootfs_mount_options."
+#
+# Example:
+# rootfs_mount_options.compress_algorithm=zstd rootfs_mount_options.noinline_data
+#
+compose_rootfs_mount_options() {
+ local mount_options
+ local cmdlinevar
+
+ for cmdlinevar in $(cat /proc/cmdline); do
+ if [ "$cmdlinevar" != "${cmdlinevar#rootfs_mount_options\.}" ]; then
+ append mount_options "${cmdlinevar#rootfs_mount_options\.}"
+ fi
+ done
+
+ echo $mount_options
+}
+
do_mount_root() {
- mount_root
+ mount_root start "$(compose_rootfs_mount_options)"
boot_run_hook preinit_mount_root
[ -f /sysupgrade.tgz -o -f /tmp/sysupgrade.tar ] && {
echo "- config restore -"
diff --git a/package/boot/arm-trusted-firmware-rockchip/Makefile b/package/boot/arm-trusted-firmware-rockchip/Makefile
index aaae4ce392..6fbcbef0a8 100644
--- a/package/boot/arm-trusted-firmware-rockchip/Makefile
+++ b/package/boot/arm-trusted-firmware-rockchip/Makefile
@@ -7,10 +7,10 @@
include $(TOPDIR)/rules.mk
-PKG_VERSION:=2.9
+PKG_VERSION:=2.10
PKG_RELEASE:=1
-PKG_HASH:=76a66a1de0c01aeb83dfc7b72b51173fe62c6e51d6fca17cc562393117bed08b
+PKG_HASH:=88215a62291b9ba87da8e50b077741103cdc08fb6c9e1ebd34dfaace746d3201
PKG_MAINTAINER:=Tobias Maedel
diff --git a/package/boot/uboot-bcm53xx/Makefile b/package/boot/uboot-bcm53xx/Makefile
index ab80b9608a..f1c026e25b 100644
--- a/package/boot/uboot-bcm53xx/Makefile
+++ b/package/boot/uboot-bcm53xx/Makefile
@@ -1,7 +1,7 @@
include $(TOPDIR)/rules.mk
-PKG_VERSION:=2023.04
-PKG_HASH:=e31cac91545ff41b71cec5d8c22afd695645cd6e2a442ccdacacd60534069341
+PKG_VERSION:=2024.01
+PKG_HASH:=b99611f1ed237bf3541bdc8434b68c96a6e05967061f992443cb30aabebef5b3
PKG_RELEASE:=$(AUTORELEASE)
include $(INCLUDE_DIR)/u-boot.mk
diff --git a/package/boot/uboot-bcm53xx/patches/0001-nand-brcmnand-add-iproc-support.patch b/package/boot/uboot-bcm53xx/patches/0001-nand-brcmnand-add-iproc-support.patch
deleted file mode 100644
index fe6f4d944a..0000000000
--- a/package/boot/uboot-bcm53xx/patches/0001-nand-brcmnand-add-iproc-support.patch
+++ /dev/null
@@ -1,199 +0,0 @@
-From 854dc4b790ce1291326d52b8405ebe771bff2edd Mon Sep 17 00:00:00 2001
-From: Linus Walleij
-Date: Wed, 8 Mar 2023 22:42:31 +0100
-Subject: [PATCH 1/5] nand: brcmnand: add iproc support
-
-Add support for the iproc Broadcom NAND controller,
-used in Northstar SoCs for example. Based on the Linux
-driver.
-
-Cc: Philippe Reynes
-Cc: Dario Binacchi
-Reviewed-by: Michael Trimarchi
-Signed-off-by: Linus Walleij
-Acked-by: William Zhang
-Link: https://lore.kernel.org/all/20230308214231.378013-1-linus.walleij@linaro.org/
-Signed-off-by: Dario Binacchi
----
- drivers/mtd/nand/raw/Kconfig | 7 +
- drivers/mtd/nand/raw/brcmnand/Makefile | 1 +
- drivers/mtd/nand/raw/brcmnand/iproc_nand.c | 148 +++++++++++++++++++++
- 3 files changed, 156 insertions(+)
- create mode 100644 drivers/mtd/nand/raw/brcmnand/iproc_nand.c
-
---- a/drivers/mtd/nand/raw/Kconfig
-+++ b/drivers/mtd/nand/raw/Kconfig
-@@ -156,6 +156,13 @@ config NAND_BRCMNAND_63158
- help
- Enable support for broadcom nand driver on bcm63158.
-
-+config NAND_BRCMNAND_IPROC
-+ bool "Support Broadcom NAND controller on the iproc family"
-+ depends on NAND_BRCMNAND
-+ help
-+ Enable support for broadcom nand driver on the Broadcom
-+ iproc family such as Northstar (BCM5301x, BCM4708...)
-+
- config NAND_DAVINCI
- bool "Support TI Davinci NAND controller"
- select SYS_NAND_SELF_INIT if TARGET_DA850EVM
---- a/drivers/mtd/nand/raw/brcmnand/Makefile
-+++ b/drivers/mtd/nand/raw/brcmnand/Makefile
-@@ -6,5 +6,6 @@ obj-$(CONFIG_NAND_BRCMNAND_6753) += bcm6
- obj-$(CONFIG_NAND_BRCMNAND_68360) += bcm68360_nand.o
- obj-$(CONFIG_NAND_BRCMNAND_6838) += bcm6838_nand.o
- obj-$(CONFIG_NAND_BRCMNAND_6858) += bcm6858_nand.o
-+obj-$(CONFIG_NAND_BRCMNAND_IPROC) += iproc_nand.o
- obj-$(CONFIG_NAND_BRCMNAND) += brcmnand.o
- obj-$(CONFIG_NAND_BRCMNAND) += brcmnand_compat.o
---- /dev/null
-+++ b/drivers/mtd/nand/raw/brcmnand/iproc_nand.c
-@@ -0,0 +1,148 @@
-+// SPDX-License-Identifier: GPL-2.0
-+/*
-+ * Code borrowed from the Linux driver
-+ * Copyright (C) 2015 Broadcom Corporation
-+ */
-+
-+#include
-+#include
-+#include
-+#include
-+#include
-+#include
-+#include
-+#include
-+#include
-+#include
-+
-+#include "brcmnand.h"
-+
-+struct iproc_nand_soc {
-+ struct brcmnand_soc soc;
-+ void __iomem *idm_base;
-+ void __iomem *ext_base;
-+};
-+
-+#define IPROC_NAND_CTLR_READY_OFFSET 0x10
-+#define IPROC_NAND_CTLR_READY BIT(0)
-+
-+#define IPROC_NAND_IO_CTRL_OFFSET 0x00
-+#define IPROC_NAND_APB_LE_MODE BIT(24)
-+#define IPROC_NAND_INT_CTRL_READ_ENABLE BIT(6)
-+
-+static bool iproc_nand_intc_ack(struct brcmnand_soc *soc)
-+{
-+ struct iproc_nand_soc *priv =
-+ container_of(soc, struct iproc_nand_soc, soc);
-+ void __iomem *mmio = priv->ext_base + IPROC_NAND_CTLR_READY_OFFSET;
-+ u32 val = brcmnand_readl(mmio);
-+
-+ if (val & IPROC_NAND_CTLR_READY) {
-+ brcmnand_writel(IPROC_NAND_CTLR_READY, mmio);
-+ return true;
-+ }
-+
-+ return false;
-+}
-+
-+static void iproc_nand_intc_set(struct brcmnand_soc *soc, bool en)
-+{
-+ struct iproc_nand_soc *priv =
-+ container_of(soc, struct iproc_nand_soc, soc);
-+ void __iomem *mmio = priv->idm_base + IPROC_NAND_IO_CTRL_OFFSET;
-+ u32 val = brcmnand_readl(mmio);
-+
-+ if (en)
-+ val |= IPROC_NAND_INT_CTRL_READ_ENABLE;
-+ else
-+ val &= ~IPROC_NAND_INT_CTRL_READ_ENABLE;
-+
-+ brcmnand_writel(val, mmio);
-+}
-+
-+static void iproc_nand_apb_access(struct brcmnand_soc *soc, bool prepare,
-+ bool is_param)
-+{
-+ struct iproc_nand_soc *priv =
-+ container_of(soc, struct iproc_nand_soc, soc);
-+ void __iomem *mmio = priv->idm_base + IPROC_NAND_IO_CTRL_OFFSET;
-+ u32 val;
-+
-+ val = brcmnand_readl(mmio);
-+
-+ /*
-+ * In the case of BE or when dealing with NAND data, always configure
-+ * the APB bus to LE mode before accessing the FIFO and back to BE mode
-+ * after the access is done
-+ */
-+ if (IS_ENABLED(CONFIG_SYS_BIG_ENDIAN) || !is_param) {
-+ if (prepare)
-+ val |= IPROC_NAND_APB_LE_MODE;
-+ else
-+ val &= ~IPROC_NAND_APB_LE_MODE;
-+ } else { /* when in LE accessing the parameter page, keep APB in BE */
-+ val &= ~IPROC_NAND_APB_LE_MODE;
-+ }
-+
-+ brcmnand_writel(val, mmio);
-+}
-+
-+static int iproc_nand_probe(struct udevice *dev)
-+{
-+ struct udevice *pdev = dev;
-+ struct iproc_nand_soc *priv = dev_get_priv(dev);
-+ struct brcmnand_soc *soc;
-+ struct resource res;
-+ int ret;
-+
-+ soc = &priv->soc;
-+
-+ ret = dev_read_resource_byname(pdev, "iproc-idm", &res);
-+ if (ret)
-+ return ret;
-+
-+ priv->idm_base = devm_ioremap(dev, res.start, resource_size(&res));
-+ if (IS_ERR(priv->idm_base))
-+ return PTR_ERR(priv->idm_base);
-+
-+ ret = dev_read_resource_byname(pdev, "iproc-ext", &res);
-+ if (ret)
-+ return ret;
-+
-+ priv->ext_base = devm_ioremap(dev, res.start, resource_size(&res));
-+ if (IS_ERR(priv->ext_base))
-+ return PTR_ERR(priv->ext_base);
-+
-+ soc->ctlrdy_ack = iproc_nand_intc_ack;
-+ soc->ctlrdy_set_enabled = iproc_nand_intc_set;
-+ soc->prepare_data_bus = iproc_nand_apb_access;
-+
-+ return brcmnand_probe(pdev, soc);
-+}
-+
-+static const struct udevice_id iproc_nand_dt_ids[] = {
-+ {
-+ .compatible = "brcm,nand-iproc",
-+ },
-+ { /* sentinel */ }
-+};
-+
-+U_BOOT_DRIVER(iproc_nand) = {
-+ .name = "iproc-nand",
-+ .id = UCLASS_MTD,
-+ .of_match = iproc_nand_dt_ids,
-+ .probe = iproc_nand_probe,
-+ .priv_auto = sizeof(struct iproc_nand_soc),
-+};
-+
-+void board_nand_init(void)
-+{
-+ struct udevice *dev;
-+ int ret;
-+
-+ ret = uclass_get_device_by_driver(UCLASS_MTD,
-+ DM_DRIVER_GET(iproc_nand), &dev);
-+ if (ret && ret != -ENODEV)
-+ pr_err("Failed to initialize %s. (error %d)\n", dev->name,
-+ ret);
-+}
diff --git a/package/boot/uboot-bcm53xx/patches/0002-mtd-rawnand-nand_base-Handle-algorithm-selection.patch b/package/boot/uboot-bcm53xx/patches/0002-mtd-rawnand-nand_base-Handle-algorithm-selection.patch
deleted file mode 100644
index eb2a5ec703..0000000000
--- a/package/boot/uboot-bcm53xx/patches/0002-mtd-rawnand-nand_base-Handle-algorithm-selection.patch
+++ /dev/null
@@ -1,80 +0,0 @@
-From d75483f8892f3a0dfb8f5aa4147e72c02c8b034c Mon Sep 17 00:00:00 2001
-From: Linus Walleij
-Date: Fri, 7 Apr 2023 15:40:05 +0200
-Subject: [PATCH 2/5] mtd: rawnand: nand_base: Handle algorithm selection
-
-For BRCMNAND with 1-bit BCH ECC (BCH-1) such as used on the
-D-Link DIR-885L and DIR-890L routers, we need to explicitly
-select the ECC like this in the device tree:
-
- nand-ecc-algo = "bch";
- nand-ecc-strength = <1>;
- nand-ecc-step-size = <512>;
-
-This is handled by the Linux kernel but U-Boot core does
-not respect this. Fix it up by parsing the algorithm and
-preserve the behaviour using this property to select
-software BCH as far as possible.
-
-Reviewed-by: Michael Trimarchi
-Acked-by: William Zhang
-Signed-off-by: Linus Walleij
-Tested-by: Tom Rini [am335x_evm]
-Link: https://lore.kernel.org/all/20230407134008.1939717-3-linus.walleij@linaro.org/
-Signed-off-by: Dario Binacchi
----
- drivers/mtd/nand/raw/nand_base.c | 29 +++++++++++++++++++++++++----
- 1 file changed, 25 insertions(+), 4 deletions(-)
-
---- a/drivers/mtd/nand/raw/nand_base.c
-+++ b/drivers/mtd/nand/raw/nand_base.c
-@@ -4487,6 +4487,7 @@ EXPORT_SYMBOL(nand_detect);
- static int nand_dt_init(struct mtd_info *mtd, struct nand_chip *chip, ofnode node)
- {
- int ret, ecc_mode = -1, ecc_strength, ecc_step;
-+ int ecc_algo = NAND_ECC_UNKNOWN;
- const char *str;
-
- ret = ofnode_read_s32_default(node, "nand-bus-width", -1);
-@@ -4512,10 +4513,22 @@ static int nand_dt_init(struct mtd_info
- ecc_mode = NAND_ECC_SOFT_BCH;
- }
-
-- if (ecc_mode == NAND_ECC_SOFT) {
-- str = ofnode_read_string(node, "nand-ecc-algo");
-- if (str && !strcmp(str, "bch"))
-- ecc_mode = NAND_ECC_SOFT_BCH;
-+ str = ofnode_read_string(node, "nand-ecc-algo");
-+ if (str) {
-+ /*
-+ * If we are in NAND_ECC_SOFT mode, just alter the
-+ * soft mode to BCH here. No change of algorithm.
-+ */
-+ if (ecc_mode == NAND_ECC_SOFT) {
-+ if (!strcmp(str, "bch"))
-+ ecc_mode = NAND_ECC_SOFT_BCH;
-+ } else {
-+ if (!strcmp(str, "bch")) {
-+ ecc_algo = NAND_ECC_BCH;
-+ } else if (!strcmp(str, "hamming")) {
-+ ecc_algo = NAND_ECC_HAMMING;
-+ }
-+ }
- }
-
- ecc_strength = ofnode_read_s32_default(node,
-@@ -4529,6 +4542,14 @@ static int nand_dt_init(struct mtd_info
- return -EINVAL;
- }
-
-+ /*
-+ * Chip drivers may have assigned default algorithms here,
-+ * onlt override it if we have found something explicitly
-+ * specified in the device tree.
-+ */
-+ if (ecc_algo != NAND_ECC_UNKNOWN)
-+ chip->ecc.algo = ecc_algo;
-+
- if (ecc_mode >= 0)
- chip->ecc.mode = ecc_mode;
-
diff --git a/package/boot/uboot-bcm53xx/patches/0003-arm-dts-Import-device-tree-for-Broadcom-Northstar.patch b/package/boot/uboot-bcm53xx/patches/0003-arm-dts-Import-device-tree-for-Broadcom-Northstar.patch
deleted file mode 100644
index 6a4eef77f8..0000000000
--- a/package/boot/uboot-bcm53xx/patches/0003-arm-dts-Import-device-tree-for-Broadcom-Northstar.patch
+++ /dev/null
@@ -1,659 +0,0 @@
-From 3d6098a662b7ff5b80c4b75c54fcd1b2baf9f150 Mon Sep 17 00:00:00 2001
-From: Linus Walleij
-Date: Mon, 24 Apr 2023 09:38:28 +0200
-Subject: [PATCH 3/5] arm: dts: Import device tree for Broadcom Northstar
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-This brings in the main SoC device tree used by the
-Broadcom Northstar chipset, i.e. BCM4709x and BCM5301x.
-This is taken from the v6.3 Linux kernel.
-
-Cc: Rafał Miłecki
-Signed-off-by: Linus Walleij
----
- arch/arm/dts/bcm5301x.dtsi | 581 ++++++++++++++++++++++++++++
- include/dt-bindings/clock/bcm-nsp.h | 51 +++
- 2 files changed, 632 insertions(+)
- create mode 100644 arch/arm/dts/bcm5301x.dtsi
- create mode 100644 include/dt-bindings/clock/bcm-nsp.h
-
---- /dev/null
-+++ b/arch/arm/dts/bcm5301x.dtsi
-@@ -0,0 +1,581 @@
-+/*
-+ * Broadcom BCM470X / BCM5301X ARM platform code.
-+ * Generic DTS part for all BCM53010, BCM53011, BCM53012, BCM53014, BCM53015,
-+ * BCM53016, BCM53017, BCM53018, BCM4707, BCM4708 and BCM4709 SoCs
-+ *
-+ * Copyright 2013-2014 Hauke Mehrtens
-+ *
-+ * Licensed under the GNU/GPL. See COPYING for details.
-+ */
-+
-+#include
-+#include
-+#include
-+#include
-+#include
-+
-+/ {
-+ #address-cells = <1>;
-+ #size-cells = <1>;
-+ interrupt-parent = <&gic>;
-+
-+ chipcommon-a-bus@18000000 {
-+ compatible = "simple-bus";
-+ ranges = <0x00000000 0x18000000 0x00001000>;
-+ #address-cells = <1>;
-+ #size-cells = <1>;
-+
-+ uart0: serial@300 {
-+ compatible = "ns16550";
-+ reg = <0x0300 0x100>;
-+ interrupts = ;
-+ clocks = <&iprocslow>;
-+ status = "disabled";
-+ };
-+
-+ uart1: serial@400 {
-+ compatible = "ns16550";
-+ reg = <0x0400 0x100>;
-+ interrupts = ;
-+ clocks = <&iprocslow>;
-+ pinctrl-names = "default";
-+ pinctrl-0 = <&pinmux_uart1>;
-+ status = "disabled";
-+ };
-+ };
-+
-+ mpcore-bus@19000000 {
-+ compatible = "simple-bus";
-+ ranges = <0x00000000 0x19000000 0x00023000>;
-+ #address-cells = <1>;
-+ #size-cells = <1>;
-+
-+ a9pll: arm_clk@0 {
-+ #clock-cells = <0>;
-+ compatible = "brcm,nsp-armpll";
-+ clocks = <&osc>;
-+ reg = <0x00000 0x1000>;
-+ };
-+
-+ scu@20000 {
-+ compatible = "arm,cortex-a9-scu";
-+ reg = <0x20000 0x100>;
-+ };
-+
-+ timer@20200 {
-+ compatible = "arm,cortex-a9-global-timer";
-+ reg = <0x20200 0x100>;
-+ interrupts = ;
-+ clocks = <&periph_clk>;
-+ };
-+
-+ timer@20600 {
-+ compatible = "arm,cortex-a9-twd-timer";
-+ reg = <0x20600 0x20>;
-+ interrupts = ;
-+ clocks = <&periph_clk>;
-+ };
-+
-+ watchdog@20620 {
-+ compatible = "arm,cortex-a9-twd-wdt";
-+ reg = <0x20620 0x20>;
-+ interrupts = ;
-+ clocks = <&periph_clk>;
-+ };
-+
-+ gic: interrupt-controller@21000 {
-+ compatible = "arm,cortex-a9-gic";
-+ #interrupt-cells = <3>;
-+ #address-cells = <0>;
-+ interrupt-controller;
-+ reg = <0x21000 0x1000>,
-+ <0x20100 0x100>;
-+ };
-+
-+ L2: cache-controller@22000 {
-+ compatible = "arm,pl310-cache";
-+ reg = <0x22000 0x1000>;
-+ cache-unified;
-+ arm,shared-override;
-+ prefetch-data = <1>;
-+ prefetch-instr = <1>;
-+ cache-level = <2>;
-+ };
-+ };
-+
-+ pmu {
-+ compatible = "arm,cortex-a9-pmu";
-+ interrupts =
-+ ,
-+ ;
-+ };
-+
-+ clocks {
-+ #address-cells = <1>;
-+ #size-cells = <1>;
-+ ranges;
-+
-+ osc: oscillator {
-+ #clock-cells = <0>;
-+ compatible = "fixed-clock";
-+ clock-frequency = <25000000>;
-+ };
-+
-+ iprocmed: iprocmed {
-+ #clock-cells = <0>;
-+ compatible = "fixed-factor-clock";
-+ clocks = <&genpll BCM_NSP_GENPLL_IPROCFAST_CLK>;
-+ clock-div = <2>;
-+ clock-mult = <1>;
-+ };
-+
-+ iprocslow: iprocslow {
-+ #clock-cells = <0>;
-+ compatible = "fixed-factor-clock";
-+ clocks = <&genpll BCM_NSP_GENPLL_IPROCFAST_CLK>;
-+ clock-div = <4>;
-+ clock-mult = <1>;
-+ };
-+
-+ periph_clk: periph_clk {
-+ #clock-cells = <0>;
-+ compatible = "fixed-factor-clock";
-+ clocks = <&a9pll>;
-+ clock-div = <2>;
-+ clock-mult = <1>;
-+ };
-+ };
-+
-+ axi@18000000 {
-+ compatible = "brcm,bus-axi";
-+ reg = <0x18000000 0x1000>;
-+ ranges = <0x00000000 0x18000000 0x00100000>;
-+ #address-cells = <1>;
-+ #size-cells = <1>;
-+
-+ #interrupt-cells = <1>;
-+ interrupt-map-mask = <0x000fffff 0xffff>;
-+ interrupt-map =
-+ /* ChipCommon */
-+ <0x00000000 0 &gic GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>,
-+
-+ /* Switch Register Access Block */
-+ <0x00007000 0 &gic GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>,
-+ <0x00007000 1 &gic GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>,
-+ <0x00007000 2 &gic GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>,
-+ <0x00007000 3 &gic GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>,
-+ <0x00007000 4 &gic GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>,
-+ <0x00007000 5 &gic GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>,
-+ <0x00007000 6 &gic GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>,
-+ <0x00007000 7 &gic GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>,
-+ <0x00007000 8 &gic GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>,
-+ <0x00007000 9 &gic GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>,
-+ <0x00007000 10 &gic GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>,
-+ <0x00007000 11 &gic GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>,
-+ <0x00007000 12 &gic GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>,
-+
-+ /* PCIe Controller 0 */
-+ <0x00012000 0 &gic GIC_SPI 126 IRQ_TYPE_LEVEL_HIGH>,
-+ <0x00012000 1 &gic GIC_SPI 127 IRQ_TYPE_LEVEL_HIGH>,
-+ <0x00012000 2 &gic GIC_SPI 128 IRQ_TYPE_LEVEL_HIGH>,
-+ <0x00012000 3 &gic GIC_SPI 129 IRQ_TYPE_LEVEL_HIGH>,
-+ <0x00012000 4 &gic GIC_SPI 130 IRQ_TYPE_LEVEL_HIGH>,
-+ <0x00012000 5 &gic GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>,
-+
-+ /* PCIe Controller 1 */
-+ <0x00013000 0 &gic GIC_SPI 132 IRQ_TYPE_LEVEL_HIGH>,
-+ <0x00013000 1 &gic GIC_SPI 133 IRQ_TYPE_LEVEL_HIGH>,
-+ <0x00013000 2 &gic GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>,
-+ <0x00013000 3 &gic GIC_SPI 135 IRQ_TYPE_LEVEL_HIGH>,
-+ <0x00013000 4 &gic GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>,
-+ <0x00013000 5 &gic GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>,
-+
-+ /* PCIe Controller 2 */
-+ <0x00014000 0 &gic GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>,
-+ <0x00014000 1 &gic GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>,
-+ <0x00014000 2 &gic GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>,
-+ <0x00014000 3 &gic GIC_SPI 141 IRQ_TYPE_LEVEL_HIGH>,
-+ <0x00014000 4 &gic GIC_SPI 142 IRQ_TYPE_LEVEL_HIGH>,
-+ <0x00014000 5 &gic GIC_SPI 143 IRQ_TYPE_LEVEL_HIGH>,
-+
-+ /* USB 2.0 Controller */
-+ <0x00021000 0 &gic GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>,
-+
-+ /* USB 3.0 Controller */
-+ <0x00023000 0 &gic GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>,
-+
-+ /* Ethernet Controller 0 */
-+ <0x00024000 0 &gic GIC_SPI 147 IRQ_TYPE_LEVEL_HIGH>,
-+
-+ /* Ethernet Controller 1 */
-+ <0x00025000 0 &gic GIC_SPI 148 IRQ_TYPE_LEVEL_HIGH>,
-+
-+ /* Ethernet Controller 2 */
-+ <0x00026000 0 &gic GIC_SPI 149 IRQ_TYPE_LEVEL_HIGH>,
-+
-+ /* Ethernet Controller 3 */
-+ <0x00027000 0 &gic GIC_SPI 150 IRQ_TYPE_LEVEL_HIGH>,
-+
-+ /* NAND Controller */
-+ <0x00028000 0 &gic GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>,
-+ <0x00028000 1 &gic GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>,
-+ <0x00028000 2 &gic GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH>,
-+ <0x00028000 3 &gic GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>,
-+ <0x00028000 4 &gic GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>,
-+ <0x00028000 5 &gic GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>,
-+ <0x00028000 6 &gic GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>,
-+ <0x00028000 7 &gic GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>;
-+
-+ chipcommon: chipcommon@0 {
-+ reg = <0x00000000 0x1000>;
-+
-+ gpio-controller;
-+ #gpio-cells = <2>;
-+ interrupt-controller;
-+ #interrupt-cells = <2>;
-+ };
-+
-+ pcie0: pcie@12000 {
-+ reg = <0x00012000 0x1000>;
-+ };
-+
-+ pcie1: pcie@13000 {
-+ reg = <0x00013000 0x1000>;
-+ };
-+
-+ pcie2: pcie@14000 {
-+ reg = <0x00014000 0x1000>;
-+ };
-+
-+ usb2: usb2@21000 {
-+ reg = <0x00021000 0x1000>;
-+
-+ #address-cells = <1>;
-+ #size-cells = <1>;
-+ ranges;
-+
-+ interrupt-parent = <&gic>;
-+
-+ ehci: usb@21000 {
-+ #usb-cells = <0>;
-+
-+ compatible = "generic-ehci";
-+ reg = <0x00021000 0x1000>;
-+ interrupts = ;
-+ phys = <&usb2_phy>;
-+
-+ #address-cells = <1>;
-+ #size-cells = <0>;
-+
-+ ehci_port1: port@1 {
-+ reg = <1>;
-+ #trigger-source-cells = <0>;
-+ };
-+
-+ ehci_port2: port@2 {
-+ reg = <2>;
-+ #trigger-source-cells = <0>;
-+ };
-+ };
-+
-+ ohci: usb@22000 {
-+ #usb-cells = <0>;
-+
-+ compatible = "generic-ohci";
-+ reg = <0x00022000 0x1000>;
-+ interrupts = ;
-+
-+ #address-cells = <1>;
-+ #size-cells = <0>;
-+
-+ ohci_port1: port@1 {
-+ reg = <1>;
-+ #trigger-source-cells = <0>;
-+ };
-+
-+ ohci_port2: port@2 {
-+ reg = <2>;
-+ #trigger-source-cells = <0>;
-+ };
-+ };
-+ };
-+
-+ usb3: usb3@23000 {
-+ reg = <0x00023000 0x1000>;
-+
-+ #address-cells = <1>;
-+ #size-cells = <1>;
-+ ranges;
-+
-+ interrupt-parent = <&gic>;
-+
-+ xhci: usb@23000 {
-+ #usb-cells = <0>;
-+
-+ compatible = "generic-xhci";
-+ reg = <0x00023000 0x1000>;
-+ interrupts = ;
-+ phys = <&usb3_phy>;
-+ phy-names = "usb";
-+
-+ #address-cells = <1>;
-+ #size-cells = <0>;
-+
-+ xhci_port1: port@1 {
-+ reg = <1>;
-+ #trigger-source-cells = <0>;
-+ };
-+ };
-+ };
-+
-+ gmac0: ethernet@24000 {
-+ reg = <0x24000 0x800>;
-+ };
-+
-+ gmac1: ethernet@25000 {
-+ reg = <0x25000 0x800>;
-+ };
-+
-+ gmac2: ethernet@26000 {
-+ reg = <0x26000 0x800>;
-+ };
-+
-+ gmac3: ethernet@27000 {
-+ reg = <0x27000 0x800>;
-+ };
-+ };
-+
-+ pwm: pwm@18002000 {
-+ compatible = "brcm,iproc-pwm";
-+ reg = <0x18002000 0x28>;
-+ clocks = <&osc>;
-+ #pwm-cells = <3>;
-+ status = "disabled";
-+ };
-+
-+ mdio: mdio@18003000 {
-+ compatible = "brcm,iproc-mdio";
-+ reg = <0x18003000 0x8>;
-+ #size-cells = <0>;
-+ #address-cells = <1>;
-+ };
-+
-+ mdio-mux@18003000 {
-+ compatible = "mdio-mux-mmioreg", "mdio-mux";
-+ mdio-parent-bus = <&mdio>;
-+ #address-cells = <1>;
-+ #size-cells = <0>;
-+ reg = <0x18003000 0x4>;
-+ mux-mask = <0x200>;
-+
-+ mdio@0 {
-+ reg = <0x0>;
-+ #address-cells = <1>;
-+ #size-cells = <0>;
-+
-+ usb3_phy: usb3-phy@10 {
-+ compatible = "brcm,ns-ax-usb3-phy";
-+ reg = <0x10>;
-+ usb3-dmp-syscon = <&usb3_dmp>;
-+ #phy-cells = <0>;
-+ status = "disabled";
-+ };
-+ };
-+ };
-+
-+ usb3_dmp: syscon@18105000 {
-+ reg = <0x18105000 0x1000>;
-+ };
-+
-+ uart2: serial@18008000 {
-+ compatible = "ns16550a";
-+ reg = <0x18008000 0x20>;
-+ clocks = <&iprocslow>;
-+ interrupts = ;
-+ reg-shift = <2>;
-+ status = "disabled";
-+ };
-+
-+ i2c0: i2c@18009000 {
-+ compatible = "brcm,iproc-i2c";
-+ reg = <0x18009000 0x50>;
-+ interrupts = ;
-+ #address-cells = <1>;
-+ #size-cells = <0>;
-+ clock-frequency = <100000>;
-+ status = "disabled";
-+ };
-+
-+ dmu-bus@1800c000 {
-+ compatible = "simple-bus";
-+ ranges = <0 0x1800c000 0x1000>;
-+ #address-cells = <1>;
-+ #size-cells = <1>;
-+
-+ cru-bus@100 {
-+ compatible = "brcm,ns-cru", "simple-mfd";
-+ reg = <0x100 0x1a4>;
-+ ranges;
-+ #address-cells = <1>;
-+ #size-cells = <1>;
-+
-+ lcpll0: clock-controller@100 {
-+ #clock-cells = <1>;
-+ compatible = "brcm,nsp-lcpll0";
-+ reg = <0x100 0x14>;
-+ clocks = <&osc>;
-+ clock-output-names = "lcpll0", "pcie_phy",
-+ "sdio", "ddr_phy";
-+ };
-+
-+ genpll: clock-controller@140 {
-+ #clock-cells = <1>;
-+ compatible = "brcm,nsp-genpll";
-+ reg = <0x140 0x24>;
-+ clocks = <&osc>;
-+ clock-output-names = "genpll", "phy",
-+ "ethernetclk",
-+ "usbclk", "iprocfast",
-+ "sata1", "sata2";
-+ };
-+
-+ usb2_phy: phy@164 {
-+ compatible = "brcm,ns-usb2-phy";
-+ reg = <0x164 0x4>;
-+ brcm,syscon-clkset = <&cru_clkset>;
-+ clocks = <&genpll BCM_NSP_GENPLL_USB_PHY_REF_CLK>;
-+ clock-names = "phy-ref-clk";
-+ #phy-cells = <0>;
-+ };
-+
-+ cru_clkset: syscon@180 {
-+ compatible = "brcm,cru-clkset", "syscon";
-+ reg = <0x180 0x4>;
-+ };
-+
-+ pinctrl: pinctrl@1c0 {
-+ compatible = "brcm,bcm4708-pinmux";
-+ reg = <0x1c0 0x24>;
-+ reg-names = "cru_gpio_control";
-+
-+ spi-pins {
-+ groups = "spi_grp";
-+ function = "spi";
-+ };
-+
-+ pinmux_i2c: i2c-pins {
-+ groups = "i2c_grp";
-+ function = "i2c";
-+ };
-+
-+ pinmux_pwm: pwm-pins {
-+ groups = "pwm0_grp", "pwm1_grp",
-+ "pwm2_grp", "pwm3_grp";
-+ function = "pwm";
-+ };
-+
-+ pinmux_uart1: uart1-pins {
-+ groups = "uart1_grp";
-+ function = "uart1";
-+ };
-+ };
-+
-+ thermal: thermal@2c0 {
-+ compatible = "brcm,ns-thermal";
-+ reg = <0x2c0 0x10>;
-+ #thermal-sensor-cells = <0>;
-+ };
-+ };
-+ };
-+
-+ srab: ethernet-switch@18007000 {
-+ compatible = "brcm,bcm53011-srab", "brcm,bcm5301x-srab";
-+ reg = <0x18007000 0x1000>;
-+
-+ status = "disabled";
-+
-+ /* ports are defined in board DTS */
-+ ports {
-+ #address-cells = <1>;
-+ #size-cells = <0>;
-+ };
-+ };
-+
-+ rng: rng@18004000 {
-+ compatible = "brcm,bcm5301x-rng";
-+ reg = <0x18004000 0x14>;
-+ };
-+
-+ nand_controller: nand-controller@18028000 {
-+ compatible = "brcm,nand-iproc", "brcm,brcmnand-v6.1", "brcm,brcmnand";
-+ reg = <0x18028000 0x600>, <0x1811a408 0x600>, <0x18028f00 0x20>;
-+ reg-names = "nand", "iproc-idm", "iproc-ext";
-+ interrupts = ;
-+
-+ #address-cells = <1>;
-+ #size-cells = <0>;
-+
-+ brcm,nand-has-wp;
-+ };
-+
-+ spi@18029200 {
-+ compatible = "brcm,spi-nsp-qspi", "brcm,spi-bcm-qspi";
-+ reg = <0x18029200 0x184>,
-+ <0x18029000 0x124>,
-+ <0x1811b408 0x004>,
-+ <0x180293a0 0x01c>;
-+ reg-names = "mspi", "bspi", "intr_regs", "intr_status_reg";
-+ interrupts = ,
-+ ,
-+ ,
-+ ,
-+ ,
-+ ,
-+ ;
-+ interrupt-names = "mspi_done",
-+ "mspi_halted",
-+ "spi_lr_fullness_reached",
-+ "spi_lr_session_aborted",
-+ "spi_lr_impatient",
-+ "spi_lr_session_done",
-+ "spi_lr_overread";
-+ clocks = <&iprocmed>;
-+ clock-names = "iprocmed";
-+ num-cs = <2>;
-+ #address-cells = <1>;
-+ #size-cells = <0>;
-+
-+ spi_nor: flash@0 {
-+ compatible = "jedec,spi-nor";
-+ reg = <0>;
-+ spi-max-frequency = <20000000>;
-+ status = "disabled";
-+
-+ partitions {
-+ compatible = "brcm,bcm947xx-cfe-partitions";
-+ };
-+ };
-+ };
-+
-+ thermal-zones {
-+ cpu_thermal: cpu-thermal {
-+ polling-delay-passive = <0>;
-+ polling-delay = <1000>;
-+ coefficients = <(-556) 418000>;
-+ thermal-sensors = <&thermal>;
-+
-+ trips {
-+ cpu-crit {
-+ temperature = <125000>;
-+ hysteresis = <0>;
-+ type = "critical";
-+ };
-+ };
-+
-+ cooling-maps {
-+ };
-+ };
-+ };
-+};
---- /dev/null
-+++ b/include/dt-bindings/clock/bcm-nsp.h
-@@ -0,0 +1,51 @@
-+/*
-+ * BSD LICENSE
-+ *
-+ * Copyright(c) 2015 Broadcom Corporation. All rights reserved.
-+ *
-+ * Redistribution and use in source and binary forms, with or without
-+ * modification, are permitted provided that the following conditions
-+ * are met:
-+ *
-+ * * Redistributions of source code must retain the above copyright
-+ * notice, this list of conditions and the following disclaimer.
-+ * * Redistributions in binary form must reproduce the above copyright
-+ * notice, this list of conditions and the following disclaimer in
-+ * the documentation and/or other materials provided with the
-+ * distribution.
-+ * * Neither the name of Broadcom Corporation nor the names of its
-+ * contributors may be used to endorse or promote products derived
-+ * from this software without specific prior written permission.
-+ *
-+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-+ */
-+
-+#ifndef _CLOCK_BCM_NSP_H
-+#define _CLOCK_BCM_NSP_H
-+
-+/* GENPLL clock channel ID */
-+#define BCM_NSP_GENPLL 0
-+#define BCM_NSP_GENPLL_PHY_CLK 1
-+#define BCM_NSP_GENPLL_ENET_SW_CLK 2
-+#define BCM_NSP_GENPLL_USB_PHY_REF_CLK 3
-+#define BCM_NSP_GENPLL_IPROCFAST_CLK 4
-+#define BCM_NSP_GENPLL_SATA1_CLK 5
-+#define BCM_NSP_GENPLL_SATA2_CLK 6
-+
-+/* LCPLL0 clock channel ID */
-+#define BCM_NSP_LCPLL0 0
-+#define BCM_NSP_LCPLL0_PCIE_PHY_REF_CLK 1
-+#define BCM_NSP_LCPLL0_SDIO_CLK 2
-+#define BCM_NSP_LCPLL0_DDR_PHY_CLK 3
-+
-+#endif /* _CLOCK_BCM_NSP_H */
diff --git a/package/boot/uboot-bcm53xx/patches/0004-arm-Add-support-for-the-Broadcom-Northstar-SoCs.patch b/package/boot/uboot-bcm53xx/patches/0004-arm-Add-support-for-the-Broadcom-Northstar-SoCs.patch
deleted file mode 100644
index 92eaa46e51..0000000000
--- a/package/boot/uboot-bcm53xx/patches/0004-arm-Add-support-for-the-Broadcom-Northstar-SoCs.patch
+++ /dev/null
@@ -1,66 +0,0 @@
-From b81ea0a64b01ae42e8b41d2a8b9a3fabffe97489 Mon Sep 17 00:00:00 2001
-From: Linus Walleij
-Date: Mon, 24 Apr 2023 09:38:29 +0200
-Subject: [PATCH 4/5] arm: Add support for the Broadcom Northstar SoCs
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-The original Northstar is an ARM SoC series that comprise
-BCM4709x and BCM5301x and uses a dual-core Cortex A9, the
-global timer and a few other things.
-
-This series should not be confused with North Star Plus
-(NSP) which is partly supported by U-Boot already.
-
-The SoC is well supported by the Linux kernel and OpenWrt
-as it is used in many routers.
-
-Since we currently don't need any chip-specific quirks
-and can get the system up from just the device tree, a
-mach-* directory doesn't even need to be added, just
-some small Kconfig fragments.
-
-Cc: Rafał Miłecki
-Signed-off-by: Linus Walleij
----
- arch/arm/Kconfig | 21 ++++++++++++++++++++-
- 1 file changed, 20 insertions(+), 1 deletion(-)
-
---- a/arch/arm/Kconfig
-+++ b/arch/arm/Kconfig
-@@ -357,7 +357,7 @@ config SYS_ARM_ARCH
-
- choice
- prompt "Select the ARM data write cache policy"
-- default SYS_ARM_CACHE_WRITETHROUGH if TARGET_BCMCYGNUS || RZA1
-+ default SYS_ARM_CACHE_WRITETHROUGH if TARGET_BCMCYGNUS || TARGET_BCMNS || RZA1
- default SYS_ARM_CACHE_WRITEBACK
-
- config SYS_ARM_CACHE_WRITEBACK
-@@ -670,6 +670,25 @@ config TARGET_BCMCYGNUS
- imply HASH_VERIFY
- imply NETDEVICES
-
-+config TARGET_BCMNS
-+ bool "Support Broadcom Northstar"
-+ select CPU_V7A
-+ select DM
-+ select DM_GPIO
-+ select DM_SERIAL
-+ select OF_CONTROL
-+ select TIMER
-+ select SYS_NS16550
-+ select ARM_GLOBAL_TIMER
-+ imply SYS_THUMB_BUILD
-+ imply MTD_RAW_NAND
-+ imply NAND_BRCMNAND
-+ imply NAND_BRCMNAND_IPROC
-+ help
-+ Support for Broadcom Northstar SoCs. NS is a dual-core 32-bit
-+ ARMv7 Cortex-A9 SoC family including BCM4708, BCM47094,
-+ BCM5301x etc.
-+
- config TARGET_BCMNS2
- bool "Support Broadcom Northstar2"
- select ARM64
diff --git a/package/boot/uboot-bcm53xx/patches/0005-board-Add-new-Broadcom-Northstar-board.patch b/package/boot/uboot-bcm53xx/patches/0005-board-Add-new-Broadcom-Northstar-board.patch
deleted file mode 100644
index 158718133d..0000000000
--- a/package/boot/uboot-bcm53xx/patches/0005-board-Add-new-Broadcom-Northstar-board.patch
+++ /dev/null
@@ -1,372 +0,0 @@
-From 652a6fa45b6c9d52dd9685fc12ad662e54a9092e Mon Sep 17 00:00:00 2001
-From: Linus Walleij
-Date: Mon, 24 Apr 2023 09:38:30 +0200
-Subject: [PATCH 5/5] board: Add new Broadcom Northstar board
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-This adds a simple Northstar "BRCMNS" board to be used with
-the BCM4708x and BCM5301x chips.
-
-The main intention is to use this with the D-Link DIR-890L
-and DIR-885L routers for loading the kernel into RAM from
-NAND memory using the BCH-1 ECC and using the separately
-submitted SEAMA load command, so we are currently not adding
-support for things such as networking.
-
-The DTS file is a multiplatform NorthStar board, designed to
-be usable with several NorthStar designs by avoiding any
-particulars not related to the operation of U-Boot.
-
-If other board need other ECC for example, they need to
-create a separate DTS file and augment the code, but I don't
-know if any other users will turn up.
-
-Cc: Rafał Miłecki
-Signed-off-by: Linus Walleij
----
- arch/arm/Kconfig | 1 +
- arch/arm/dts/Makefile | 2 ++
- arch/arm/dts/ns-board.dts | 57 ++++++++++++++++++++++++++++++
- board/broadcom/bcmns/Kconfig | 12 +++++++
- board/broadcom/bcmns/MAINTAINERS | 6 ++++
- board/broadcom/bcmns/Makefile | 2 ++
- board/broadcom/bcmns/ns.c | 60 ++++++++++++++++++++++++++++++++
- configs/bcmns_defconfig | 41 ++++++++++++++++++++++
- doc/board/broadcom/index.rst | 1 +
- doc/board/broadcom/northstar.rst | 44 +++++++++++++++++++++++
- include/configs/bcmns.h | 49 ++++++++++++++++++++++++++
- 11 files changed, 275 insertions(+)
- create mode 100644 arch/arm/dts/ns-board.dts
- create mode 100644 board/broadcom/bcmns/Kconfig
- create mode 100644 board/broadcom/bcmns/MAINTAINERS
- create mode 100644 board/broadcom/bcmns/Makefile
- create mode 100644 board/broadcom/bcmns/ns.c
- create mode 100644 configs/bcmns_defconfig
- create mode 100644 doc/board/broadcom/northstar.rst
- create mode 100644 include/configs/bcmns.h
-
---- a/arch/arm/Kconfig
-+++ b/arch/arm/Kconfig
-@@ -2286,6 +2286,7 @@ source "board/Marvell/octeontx2/Kconfig"
- source "board/armltd/vexpress/Kconfig"
- source "board/armltd/vexpress64/Kconfig"
- source "board/cortina/presidio-asic/Kconfig"
-+source "board/broadcom/bcmns/Kconfig"
- source "board/broadcom/bcmns3/Kconfig"
- source "board/cavium/thunderx/Kconfig"
- source "board/eets/pdu001/Kconfig"
---- a/arch/arm/dts/Makefile
-+++ b/arch/arm/dts/Makefile
-@@ -1185,6 +1185,8 @@ dtb-$(CONFIG_ARCH_BCM283X) += \
- bcm2837-rpi-cm3-io3.dtb \
- bcm2711-rpi-4-b.dtb
-
-+dtb-$(CONFIG_TARGET_BCMNS) += ns-board.dtb
-+
- dtb-$(CONFIG_TARGET_BCMNS3) += ns3-board.dtb
-
- dtb-$(CONFIG_ARCH_BCMSTB) += bcm7xxx.dtb
---- /dev/null
-+++ b/arch/arm/dts/ns-board.dts
-@@ -0,0 +1,57 @@
-+// SPDX-License-Identifier: GPL-2.0+
-+
-+/dts-v1/;
-+
-+#include "bcm5301x.dtsi"
-+
-+/ {
-+ /*
-+ * The Northstar does not have a proper fallback compatible, but
-+ * these basic chips will suffice.
-+ */
-+ model = "Northstar model";
-+ compatible = "brcm,bcm47094", "brcm,bcm4708";
-+ #address-cells = <1>;
-+ #size-cells = <1>;
-+ interrupt-parent = <&gic>;
-+
-+ memory {
-+ device_type = "memory";
-+ reg = <0x00000000 0x08000000>,
-+ <0x88000000 0x08000000>;
-+ };
-+
-+ aliases {
-+ serial0 = &uart0;
-+ };
-+
-+ chosen {
-+ stdout-path = "serial0:115200n8";
-+ };
-+
-+ nand-controller@18028000 {
-+ nandcs: nand@0 {
-+ compatible = "brcm,nandcs";
-+ reg = <0>;
-+ #address-cells = <1>;
-+ #size-cells = <1>;
-+
-+ /*
-+ * Same as using the bcm5301x-nand-cs0-bch1.dtsi
-+ * include from the Linux kernel.
-+ */
-+ nand-ecc-algo = "bch";
-+ nand-ecc-strength = <1>;
-+ nand-ecc-step-size = <512>;
-+
-+ partitions {
-+ compatible = "brcm,bcm947xx-cfe-partitions";
-+ };
-+ };
-+ };
-+};
-+
-+&uart0 {
-+ clock-frequency = <125000000>;
-+ status = "okay";
-+};
---- /dev/null
-+++ b/board/broadcom/bcmns/Kconfig
-@@ -0,0 +1,12 @@
-+if TARGET_BCMNS
-+
-+config SYS_BOARD
-+ default "bcmns"
-+
-+config SYS_VENDOR
-+ default "broadcom"
-+
-+config SYS_CONFIG_NAME
-+ default "bcmns"
-+
-+endif
---- /dev/null
-+++ b/board/broadcom/bcmns/MAINTAINERS
-@@ -0,0 +1,6 @@
-+BCMNS BOARD
-+M: Linus Walleij
-+S: Maintained
-+F: board/broadcom/bcmnsp/
-+F: configs/bcmnsp_defconfig
-+F: include/configs/bcmnsp.h
---- /dev/null
-+++ b/board/broadcom/bcmns/Makefile
-@@ -0,0 +1,2 @@
-+# SPDX-License-Identifier: GPL-2.0-or-later
-+obj-y := ns.o
---- /dev/null
-+++ b/board/broadcom/bcmns/ns.c
-@@ -0,0 +1,60 @@
-+// SPDX-License-Identifier: GPL-2.0+
-+/*
-+ * Broadcom Northstar generic board set-up code
-+ * Copyright (C) 2023 Linus Walleij
-+ */
-+
-+#include
-+#include
-+#include
-+#include
-+#include
-+#include
-+#include
-+#include
-+#include
-+
-+DECLARE_GLOBAL_DATA_PTR;
-+
-+int dram_init(void)
-+{
-+ return fdtdec_setup_mem_size_base();
-+}
-+
-+int dram_init_banksize(void)
-+{
-+ return fdtdec_setup_memory_banksize();
-+}
-+
-+int board_late_init(void)
-+{
-+ /* LEDs etc can be initialized here */
-+ return 0;
-+}
-+
-+int board_init(void)
-+{
-+ return 0;
-+}
-+
-+void reset_cpu(void)
-+{
-+}
-+
-+int print_cpuinfo(void)
-+{
-+ printf("BCMNS Northstar SoC\n");
-+ return 0;
-+}
-+
-+int misc_init_r(void)
-+{
-+ return 0;
-+}
-+
-+int ft_board_setup(void *fdt, struct bd_info *bd)
-+{
-+ printf("Northstar board setup: DTB at 0x%08lx\n", (ulong)fdt);
-+ return 0;
-+}
-+
---- /dev/null
-+++ b/configs/bcmns_defconfig
-@@ -0,0 +1,41 @@
-+CONFIG_ARM=y
-+CONFIG_TARGET_BCMNS=y
-+CONFIG_TEXT_BASE=0x00008000
-+CONFIG_SYS_MALLOC_LEN=0x2000000
-+CONFIG_SYS_MALLOC_F_LEN=0x8000
-+CONFIG_NR_DRAM_BANKS=2
-+CONFIG_DEFAULT_DEVICE_TREE="ns-board"
-+CONFIG_IDENT_STRING="Broadcom Northstar"
-+CONFIG_SYS_LOAD_ADDR=0x00008000
-+CONFIG_HAS_CUSTOM_SYS_INIT_SP_ADDR=y
-+CONFIG_CUSTOM_SYS_INIT_SP_ADDR=0x00100000
-+# CONFIG_BOOTSTD is not set
-+CONFIG_AUTOBOOT_KEYED=y
-+CONFIG_AUTOBOOT_PROMPT="Boot Northstar system in %d seconds\n"
-+CONFIG_BOOTDELAY=1
-+CONFIG_USE_BOOTCOMMAND=y
-+CONFIG_BOOTCOMMAND="run bootcmd_dlink_dir8xxl"
-+CONFIG_SYS_PROMPT="northstar> "
-+CONFIG_ENV_VARS_UBOOT_CONFIG=y
-+CONFIG_OF_BOARD_SETUP=y
-+CONFIG_OF_STDOUT_VIA_ALIAS=y
-+CONFIG_DISPLAY_BOARDINFO_LATE=y
-+CONFIG_HUSH_PARSER=y
-+CONFIG_SYS_MAXARGS=64
-+CONFIG_CMD_SEAMA=y
-+CONFIG_CMD_BOOTZ=y
-+CONFIG_CMD_CACHE=y
-+CONFIG_OF_EMBED=y
-+CONFIG_USE_HOSTNAME=y
-+CONFIG_HOSTNAME="NS"
-+CONFIG_CLK=y
-+CONFIG_MTD=y
-+CONFIG_DM_MTD=y
-+CONFIG_MTD_RAW_NAND=y
-+CONFIG_NAND_BRCMNAND=y
-+CONFIG_SYS_NAND_ONFI_DETECTION=y
-+CONFIG_CMD_NAND=y
-+CONFIG_DM_SERIAL=y
-+CONFIG_SYS_NS16550=y
-+# CONFIG_NET is not set
-+# CONFIG_EFI_LOADER is not set
---- a/doc/board/broadcom/index.rst
-+++ b/doc/board/broadcom/index.rst
-@@ -9,3 +9,4 @@ Broadcom
-
- bcm7xxx
- raspberrypi
-+ northstar
---- /dev/null
-+++ b/doc/board/broadcom/northstar.rst
-@@ -0,0 +1,44 @@
-+.. SPDX-License-Identifier: GPL-2.0+
-+.. Copyright (C) 2023 Linus Walleij
-+
-+Broadcom Northstar Boards
-+=========================
-+
-+This document describes how to use U-Boot on the Broadcom Northstar
-+boards, comprised of the Cortex A9 ARM-based BCM470x and BCM5301x SoCs. These
-+were introduced in 2012-2013 and some of them are also called StrataGX.
-+
-+Northstar is part of the iProc SoC family.
-+
-+A good overview of these boards can be found in Jon Mason's presentation
-+"Enabling New Hardware in U-Boot" where the difference between Northstar
-+and Northstar Plus and Northstar 2 (Aarch64) is addressed.
-+
-+The ROM in the Northstar SoC will typically look into NOR flash memory
-+for a boot loader, and the way this works is undocumented. It should be
-+possible to execute U-Boot as the first binary from the NOR flash but
-+this usage path is unexplored. Please add information if you know more.
-+
-+D-Link Boards
-+-------------
-+
-+When we use U-Boot with D-Link routers, the NOR flash has a boot loader
-+and web server that can re-flash the bigger NAND flash memory for object
-+code in the SEAMA format, so on these platforms U-Boot is converted into
-+a SEAMA binary and installed in the SoC using the flash tool resident in
-+the NOR flash. Details can be found in the OpenWrt project codebase.
-+
-+Configure
-+---------
-+
-+.. code-block:: console
-+
-+ $ make CROSS_COMPILE=${CROSS_COMPILE} bcmns_defconfig
-+
-+Build
-+-----
-+
-+.. code-block:: console
-+
-+ $ make CROSS_COMPILE=${CROSS_COMPILE}
-+ $ ${CROSS_COMPILE}strip u-boot
---- /dev/null
-+++ b/include/configs/bcmns.h
-@@ -0,0 +1,49 @@
-+/* SPDX-License-Identifier: GPL-2.0+ */
-+
-+#ifndef __BCM_NS_H
-+#define __BCM_NS_H
-+
-+#include
-+
-+/* Physical Memory Map */
-+#define V2M_BASE 0x00000000
-+#define PHYS_SDRAM_1 V2M_BASE
-+
-+#define CFG_SYS_SDRAM_BASE PHYS_SDRAM_1
-+
-+/* Called "periph_clk" in Linux, used by the global timer */
-+#define CFG_SYS_HZ_CLOCK 500000000
-+
-+/* Called "iprocslow" in Linux */
-+#define CFG_SYS_NS16550_CLK 125000000
-+
-+/* console configuration */
-+#define CONSOLE_ARGS "console_args=console=ttyS0,115200n8\0"
-+#define MAX_CPUS "max_cpus=maxcpus=2\0"
-+#define EXTRA_ARGS "extra_args=earlycon=uart8250,mmio32,0x18000300\0"
-+
-+#define BASE_ARGS "${console_args} ${extra_args} ${pcie_args}" \
-+ " ${max_cpus} ${log_level} ${reserved_mem}"
-+#define SETBOOTARGS "setbootargs=setenv bootargs " BASE_ARGS "\0"
-+
-+#define KERNEL_LOADADDR_CFG \
-+ "loadaddr=0x01000000\0" \
-+ "dtb_loadaddr=0x02000000\0"
-+
-+/*
-+ * Hardcoded for the only boards we support, if you add more
-+ * boards, add a more clever bootcmd!
-+ */
-+#define NS_BOOTCMD "bootcmd_dlink_dir8xxl=seama 0x00fe0000; go 0x01000000"
-+
-+#define ARCH_ENV_SETTINGS \
-+ CONSOLE_ARGS \
-+ MAX_CPUS \
-+ EXTRA_ARGS \
-+ KERNEL_LOADADDR_CFG \
-+ NS_BOOTCMD
-+
-+#define CFG_EXTRA_ENV_SETTINGS \
-+ ARCH_ENV_SETTINGS
-+
-+#endif /* __BCM_NS_H */
diff --git a/package/boot/uboot-envtools/files/mediatek_filogic b/package/boot/uboot-envtools/files/mediatek_filogic
index b4957c212b..4c483ca614 100644
--- a/package/boot/uboot-envtools/files/mediatek_filogic
+++ b/package/boot/uboot-envtools/files/mediatek_filogic
@@ -69,6 +69,7 @@ qihoo,360t7|\
tplink,tl-xdr4288|\
tplink,tl-xdr6086|\
tplink,tl-xdr6088|\
+xiaomi,mi-router-ax3000t-ubootmod|\
xiaomi,mi-router-wr30u-ubootmod|\
xiaomi,redmi-router-ax6000-ubootmod)
. /lib/upgrade/nand.sh
@@ -86,6 +87,11 @@ glinet,gl-mt6000)
glinet,gl-mt3000)
ubootenv_add_uci_config "/dev/mtd1" "0x0" "0x80000" "0x20000"
;;
+jdcloud,re-cp-03)
+ local envdev=$(find_mmc_part "ubootenv" "mmcblk0")
+ ubootenv_add_uci_config "$envdev" "0x0" "0x40000" "0x40000" "1"
+ ubootenv_add_uci_config "$envdev" "0x40000" "0x40000" "0x40000" "1"
+ ;;
mercusys,mr90x-v1|\
routerich,ax3000)
local envdev=/dev/mtd$(find_mtd_index "u-boot-env")
@@ -94,7 +100,7 @@ routerich,ax3000)
ubnt,unifi-6-plus)
ubootenv_add_uci_config "/dev/mtd1" "0x0" "0x80000" "0x10000"
;;
-xiaomi,mi-router-wr30u-112m-nmbm|\
+xiaomi,mi-router-ax3000t|\
xiaomi,mi-router-wr30u-stock|\
xiaomi,redmi-router-ax6000-stock)
ubootenv_add_uci_config "/dev/mtd1" "0x0" "0x10000" "0x20000"
diff --git a/package/boot/uboot-envtools/files/mediatek_mt7622 b/package/boot/uboot-envtools/files/mediatek_mt7622
index e01dcc4fef..fdf0d331fc 100644
--- a/package/boot/uboot-envtools/files/mediatek_mt7622
+++ b/package/boot/uboot-envtools/files/mediatek_mt7622
@@ -12,6 +12,10 @@ touch /etc/config/ubootenv
board=$(board_name)
case "$board" in
+dlink,eagle-pro-ai-m32-a1|\
+dlink,eagle-pro-ai-r32-a1)
+ ubootenv_add_uci_config "/dev/mtd3" "0x0" "0x2000" "0x2000"
+ ;;
linksys,e8450-ubi)
ubootenv_add_uci_config "/dev/ubi0_0" "0x0" "0x1f000" "0x1f000" "1"
ubootenv_add_uci_config "/dev/ubi0_1" "0x0" "0x1f000" "0x1f000" "1"
diff --git a/package/boot/uboot-envtools/files/qualcommax_ipq807x b/package/boot/uboot-envtools/files/qualcommax_ipq807x
index 761d5dfcc9..bcedfd9adc 100644
--- a/package/boot/uboot-envtools/files/qualcommax_ipq807x
+++ b/package/boot/uboot-envtools/files/qualcommax_ipq807x
@@ -29,6 +29,12 @@ edimax,cax1800)
[ -n "$idx" ] && \
ubootenv_add_uci_config "/dev/mtd$idx" "0x0" "0x10000" "0x20000"
;;
+linksys,mx4200v1|\
+linksys,mx4200v2)
+ idx="$(find_mtd_index u_env)"
+ [ -n "$idx" ] && \
+ ubootenv_add_uci_config "/dev/mtd$idx" "0x0" "0x40000" "0x20000" "2"
+ ;;
redmi,ax6|\
xiaomi,ax3600|\
xiaomi,ax9000)
diff --git a/package/boot/uboot-mediatek/Makefile b/package/boot/uboot-mediatek/Makefile
index a9e6d35f00..8c0419f90c 100644
--- a/package/boot/uboot-mediatek/Makefile
+++ b/package/boot/uboot-mediatek/Makefile
@@ -322,6 +322,18 @@ define U-Boot/mt7981_qihoo_360t7
DEPENDS:=+trusted-firmware-a-mt7981-spim-nand-ddr3
endef
+define U-Boot/mt7981_xiaomi_mi-router-ax3000t
+ NAME:=Xiaomi Router AX3000T
+ BUILD_SUBTARGET:=filogic
+ BUILD_DEVICES:=xiaomi_mi-router-ax3000t-ubootmod
+ UBOOT_CONFIG:=mt7981_xiaomi_mi-router-ax3000t
+ UBOOT_IMAGE:=u-boot.fip
+ BL2_BOOTDEV:=spim-nand
+ BL2_SOC:=mt7981
+ BL2_DDRTYPE:=ddr3
+ DEPENDS:=+trusted-firmware-a-mt7981-spim-nand-ddr3
+endef
+
define U-Boot/mt7981_xiaomi_mi-router-wr30u
NAME:=Xiaomi Router WR30U
BUILD_SUBTARGET:=filogic
@@ -407,6 +419,18 @@ define U-Boot/mt7986_glinet_gl-mt6000
DEPENDS:=+trusted-firmware-a-mt7986-emmc-ddr4
endef
+define U-Boot/mt7986_jdcloud_re-cp-03
+ NAME:=JDCloud RE-CP-03
+ BUILD_SUBTARGET:=filogic
+ BUILD_DEVICES:=jdcloud_re-cp-03
+ UBOOT_CONFIG:=mt7986a_jdcloud_re-cp-03
+ UBOOT_IMAGE:=u-boot.fip
+ BL2_BOOTDEV:=emmc
+ BL2_SOC:=mt7986
+ BL2_DDRTYPE:=ddr4
+ DEPENDS:=+trusted-firmware-a-mt7986-emmc-ddr4
+endef
+
define U-Boot/mt7986_tplink_tl-xdr4288
NAME:=TP-LINK TL-XDR4288
BUILD_SUBTARGET:=filogic
@@ -556,12 +580,14 @@ UBOOT_TARGETS := \
mt7981_rfb-sd \
mt7981_rfb-snfi \
mt7981_qihoo_360t7 \
+ mt7981_xiaomi_mi-router-ax3000t \
mt7981_xiaomi_mi-router-wr30u \
mt7986_bananapi_bpi-r3-emmc \
mt7986_bananapi_bpi-r3-sdmmc \
mt7986_bananapi_bpi-r3-snand \
mt7986_bananapi_bpi-r3-nor \
mt7986_glinet_gl-mt6000 \
+ mt7986_jdcloud_re-cp-03 \
mt7986_tplink_tl-xdr4288 \
mt7986_tplink_tl-xdr6086 \
mt7986_tplink_tl-xdr6088 \
diff --git a/package/boot/uboot-mediatek/patches/440-add-jdcloud_re-cp-03.patch b/package/boot/uboot-mediatek/patches/440-add-jdcloud_re-cp-03.patch
new file mode 100644
index 0000000000..e0f3a6e235
--- /dev/null
+++ b/package/boot/uboot-mediatek/patches/440-add-jdcloud_re-cp-03.patch
@@ -0,0 +1,324 @@
+--- /dev/null
++++ b/configs/mt7986a_jdcloud_re-cp-03_defconfig
+@@ -0,0 +1,112 @@
++CONFIG_ARM=y
++CONFIG_SYS_HAS_NONCACHED_MEMORY=y
++CONFIG_POSITION_INDEPENDENT=y
++CONFIG_ARCH_MEDIATEK=y
++CONFIG_TEXT_BASE=0x41e00000
++CONFIG_SYS_MALLOC_F_LEN=0x4000
++CONFIG_NR_DRAM_BANKS=1
++CONFIG_ENV_SIZE=0x40000
++CONFIG_ENV_OFFSET=0x400000
++CONFIG_DEFAULT_DEVICE_TREE="mt7986a-jdcloud_re-cp-03"
++CONFIG_SYS_PROMPT="MT7986> "
++CONFIG_OF_LIBFDT_OVERLAY=y
++CONFIG_TARGET_MT7986=y
++CONFIG_PRE_CON_BUF_ADDR=0x4007EF00
++CONFIG_DEBUG_UART_BASE=0x11002000
++CONFIG_DEBUG_UART_CLOCK=40000000
++CONFIG_ENV_OFFSET_REDUND=0x440000
++CONFIG_SYS_LOAD_ADDR=0x46000000
++CONFIG_DEBUG_UART=y
++CONFIG_FIT=y
++CONFIG_BOOTDELAY=30
++CONFIG_AUTOBOOT_KEYED=y
++CONFIG_AUTOBOOT_MENU_SHOW=y
++CONFIG_DEFAULT_FDT_FILE="mediatek/mt7986a-jdcloud_re-cp-03.dtb"
++CONFIG_LOGLEVEL=7
++CONFIG_PRE_CONSOLE_BUFFER=y
++CONFIG_LOG=y
++CONFIG_BOARD_LATE_INIT=y
++CONFIG_HUSH_PARSER=y
++CONFIG_CMD_CPU=y
++CONFIG_CMD_LICENSE=y
++CONFIG_CMD_BOOTMENU=y
++CONFIG_CMD_ASKENV=y
++CONFIG_CMD_ERASEENV=y
++CONFIG_CMD_ENV_FLAGS=y
++CONFIG_CMD_STRINGS=y
++CONFIG_CMD_DM=y
++CONFIG_CMD_GPIO=y
++CONFIG_CMD_PWM=y
++CONFIG_CMD_GPT=y
++CONFIG_CMD_MMC=y
++CONFIG_CMD_PART=y
++CONFIG_CMD_DHCP=y
++CONFIG_CMD_TFTPSRV=y
++CONFIG_CMD_RARP=y
++CONFIG_CMD_PING=y
++CONFIG_CMD_CDP=y
++CONFIG_CMD_SNTP=y
++CONFIG_CMD_DNS=y
++CONFIG_CMD_LINK_LOCAL=y
++CONFIG_CMD_PXE=y
++CONFIG_CMD_CACHE=y
++CONFIG_CMD_PSTORE=y
++CONFIG_CMD_PSTORE_MEM_ADDR=0x42ff0000
++CONFIG_CMD_UUID=y
++CONFIG_CMD_HASH=y
++CONFIG_CMD_SMC=y
++CONFIG_CMD_EXT4=y
++CONFIG_CMD_FAT=y
++CONFIG_CMD_FS_GENERIC=y
++CONFIG_CMD_FS_UUID=y
++CONFIG_OF_EMBED=y
++CONFIG_ENV_OVERWRITE=y
++CONFIG_ENV_IS_IN_MMC=y
++CONFIG_SYS_REDUNDAND_ENVIRONMENT=y
++CONFIG_SYS_RELOC_GD_ENV_ADDR=y
++CONFIG_USE_DEFAULT_ENV_FILE=y
++CONFIG_DEFAULT_ENV_FILE="jdcloud_re-cp-03_env"
++CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y
++CONFIG_VERSION_VARIABLE=y
++CONFIG_NET_RANDOM_ETHADDR=y
++CONFIG_NETCONSOLE=y
++CONFIG_USE_IPADDR=y
++CONFIG_IPADDR="192.168.1.1"
++CONFIG_USE_SERVERIP=y
++CONFIG_SERVERIP="192.168.1.254"
++CONFIG_REGMAP=y
++CONFIG_SYSCON=y
++CONFIG_BUTTON=y
++CONFIG_BUTTON_GPIO=y
++CONFIG_CLK=y
++CONFIG_GPIO_HOG=y
++CONFIG_LED=y
++CONFIG_LED_BLINK=y
++CONFIG_LED_GPIO=y
++CONFIG_SUPPORT_EMMC_BOOT=y
++CONFIG_MMC_HS200_SUPPORT=y
++CONFIG_MMC_MTK=y
++CONFIG_PHY_FIXED=y
++CONFIG_DM_MDIO=y
++CONFIG_MEDIATEK_ETH=y
++CONFIG_PHY=y
++CONFIG_PHY_MTK_TPHY=y
++CONFIG_PINCTRL=y
++CONFIG_PINCONF=y
++CONFIG_PINCTRL_MT7622=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_REGULATOR_GPIO=y
++CONFIG_DM_PWM=y
++CONFIG_PWM_MTK=y
++CONFIG_RAM=y
++CONFIG_SCSI=y
++CONFIG_DM_SCSI=y
++CONFIG_DM_SERIAL=y
++CONFIG_MTK_SERIAL=y
++CONFIG_ZSTD=y
++CONFIG_HEXDUMP=y
++CONFIG_LMB_MAX_REGIONS=64
+--- /dev/null
++++ b/arch/arm/dts/mt7986a-jdcloud_re-cp-03.dts
+@@ -0,0 +1,148 @@
++// SPDX-License-Identifier: GPL-2.0-or-later
++
++/dts-v1/;
++#include
++#include "mt7986.dtsi"
++#include
++
++/ {
++ #address-cells = <1>;
++ #size-cells = <1>;
++ model = "JDCloud RE-CP-03";
++ compatible = "mediatek,mt7986", "mediatek,mt7986-rfb";
++
++ chosen {
++ stdout-path = &uart0;
++ tick-timer = &timer0;
++ };
++
++ memory@40000000 {
++ device_type = "memory";
++ reg = <0x40000000 0x40000000>;
++ };
++
++ gpio-keys {
++ compatible = "gpio-keys";
++
++ button-joylink {
++ label = "joylink";
++ linux,code = ;
++ gpios = <&gpio 10 GPIO_ACTIVE_LOW>;
++ };
++
++ button-reset {
++ label = "reset";
++ linux,code = ;
++ gpios = <&gpio 9 GPIO_ACTIVE_LOW>;
++ };
++ };
++
++ gpio-leds {
++ compatible = "gpio-leds";
++
++ led-0 {
++ label = "blue:status";
++ gpios = <&gpio 7 GPIO_ACTIVE_HIGH>;
++ default-state = "off";
++ };
++
++ led-1 {
++ label = "red:status";
++ gpios = <&gpio 11 GPIO_ACTIVE_HIGH>;
++ default-state = "on";
++ };
++
++ led-2 {
++ label = "green:status";
++ gpios = <&gpio 12 GPIO_ACTIVE_LOW>;
++ default-state = "off";
++ };
++ };
++
++ reg_1p8v: regulator-1p8v {
++ compatible = "regulator-fixed";
++ regulator-name = "fixed-1.8V";
++ regulator-min-microvolt = <1800000>;
++ regulator-max-microvolt = <1800000>;
++ regulator-boot-on;
++ regulator-always-on;
++ };
++
++ reg_3p3v: regulator-3p3v {
++ compatible = "regulator-fixed";
++ regulator-name = "fixed-3.3V";
++ regulator-min-microvolt = <3300000>;
++ regulator-max-microvolt = <3300000>;
++ regulator-boot-on;
++ regulator-always-on;
++ };
++};
++
++ð {
++ status = "okay";
++ mediatek,gmac-id = <0>;
++ phy-mode = "2500base-x";
++ mediatek,switch = "mt7531";
++ reset-gpios = <&gpio 5 GPIO_ACTIVE_HIGH>;
++
++ fixed-link {
++ speed = <2500>;
++ full-duplex;
++ };
++};
++
++&mmc0 {
++ bus-width = <8>;
++ cap-mmc-highspeed;
++ cap-mmc-hw-reset;
++ max-frequency = <200000000>;
++ non-removable;
++ pinctrl-names = "default";
++ pinctrl-0 = <&mmc0_pins_default>;
++ vmmc-supply = <®_3p3v>;
++ vqmmc-supply = <®_1p8v>;
++ status = "okay";
++};
++
++&pinctrl {
++ mmc0_pins_default: mmc0default {
++ mux {
++ function = "flash";
++ groups = "emmc_51";
++ };
++
++ conf-cmd-dat {
++ pins = "EMMC_DATA_0", "EMMC_DATA_1", "EMMC_DATA_2",
++ "EMMC_DATA_3", "EMMC_DATA_4", "EMMC_DATA_5",
++ "EMMC_DATA_6", "EMMC_DATA_7", "EMMC_CMD";
++ input-enable;
++ drive-strength = ;
++ bias-pull-up = ;
++ };
++
++ conf-clk {
++ pins = "EMMC_CK";
++ drive-strength = ;
++ bias-pull-down = ;
++ };
++
++ conf-dsl {
++ pins = "EMMC_DSL";
++ bias-pull-down = ;
++ };
++
++ conf-rst {
++ pins = "EMMC_RSTB";
++ drive-strength = ;
++ bias-pull-up = ;
++ };
++ };
++};
++
++&uart0 {
++ status = "okay";
++};
++
++&watchdog {
++ status = "disabled";
++};
+--- /dev/null
++++ b/jdcloud_re-cp-03_env
+@@ -0,0 +1,55 @@
++ipaddr=192.168.1.1
++serverip=192.168.1.254
++loadaddr=0x46000000
++console=earlycon=uart8250,mmio32,0x11002000 console=ttyS0
++bootargs=root=/dev/mmcblk0p65
++bootcmd=if pstore check ; then run boot_recovery ; else run boot_emmc ; fi
++bootconf=config-1
++bootdelay=0
++bootfile=openwrt-mediatek-filogic-jdcloud_re-cp-03-initramfs-recovery.itb
++bootfile_bl2=openwrt-mediatek-filogic-jdcloud_re-cp-03-preloader.bin
++bootfile_fip=openwrt-mediatek-filogic-jdcloud_re-cp-03-bl31-uboot.fip
++bootfile_upg=openwrt-mediatek-filogic-jdcloud_re-cp-03-squashfs-sysupgrade.itb
++bootled_pwr=red:status
++bootled_rec=blue:status
++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 eMMC.=run boot_production ; run bootmenu_confirm_return
++bootmenu_3=Boot recovery system from eMMC.=run boot_recovery ; run bootmenu_confirm_return
++bootmenu_4=Load production system via TFTP then write to eMMC.=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 eMMC.=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 eMMC.[0m=run boot_tftp_write_fip ; run bootmenu_confirm_return
++bootmenu_7=[31mLoad BL2 preloader via TFTP then write to eMMC.[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 led $bootled_rec on ; 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=led $bootled_pwr on ; run emmc_read_production && bootm $loadaddr#$bootconf ; led $bootled_pwr off
++boot_recovery=led $bootled_rec on ; run emmc_read_recovery && bootm $loadaddr#$bootconf ; led $bootled_rec off
++boot_emmc=run boot_production ; run boot_recovery
++boot_tftp_forever=led $bootled_rec on ; while true ; do run boot_tftp_recovery ; sleep 1 ; done
++boot_tftp_production=tftpboot $loadaddr $bootfile_upg && env exists replacevol && iminfo $loadaddr && run emmc_write_production ; if env exists noboot ; then else bootm $loadaddr#$bootconf ; fi
++boot_tftp_recovery=tftpboot $loadaddr $bootfile && env exists replacevol && iminfo $loadaddr && run emmc_write_recovery ; if env exists noboot ; then else bootm $loadaddr#$bootconf ; fi
++boot_tftp_write_fip=tftpboot $loadaddr $bootfile_fip && run emmc_write_fip
++boot_tftp_write_bl2=tftpboot $loadaddr $bootfile_bl2 && run emmc_write_bl2
++boot_tftp=tftpboot $loadaddr $bootfile && bootm $loadaddr#$bootconf
++mmc_write_vol=imszb $loadaddr image_size && test 0x$image_size -le 0x$part_size && mmc erase 0x$part_addr 0x$image_size && mmc write $loadaddr 0x$part_addr 0x$image_size
++mmc_read_vol=mmc read $loadaddr $part_addr 0x100 && imszb $loadaddr image_size && test 0x$image_size -le 0x$part_size && mmc read $loadaddr 0x$part_addr 0x$image_size && setexpr filesize $image_size * 0x200
++part_default=production
++part_recovery=recovery
++reset_factory=eraseenv && reset
++emmc_read_production=part start mmc 0 $part_default part_addr && part size mmc 0 $part_default part_size && run mmc_read_vol
++emmc_read_recovery=part start mmc 0 $part_recovery part_addr && part size mmc 0 $part_recovery part_size && run mmc_read_vol
++emmc_write_bl2=mmc partconf 0 1 1 1 && mmc erase 0x0 0x400 && mmc write $fileaddr 0x0 0x400 ; mmc partconf 0 1 1 0
++emmc_write_fip=mmc erase 0x3400 0x2000 && mmc write $fileaddr 0x3400 0x2000 && mmc erase 0x2000 0x800
++emmc_write_production=part start mmc 0 $part_default part_addr && part size mmc 0 $part_default part_size && run mmc_write_vol
++emmc_write_recovery=part start mmc 0 $part_recovery part_addr && part size mmc 0 $part_recovery part_size && run mmc_write_vol
++_init_env=setenv _init_env ; setenv _create_env ; saveenv ; saveenv
++_firstboot=setenv _firstboot ; 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"
diff --git a/package/boot/uboot-mediatek/patches/440-add-xiaomi_mi-router-ax3000t.patch b/package/boot/uboot-mediatek/patches/440-add-xiaomi_mi-router-ax3000t.patch
new file mode 100644
index 0000000000..9b50166a94
--- /dev/null
+++ b/package/boot/uboot-mediatek/patches/440-add-xiaomi_mi-router-ax3000t.patch
@@ -0,0 +1,414 @@
+--- /dev/null
++++ b/configs/mt7981_xiaomi_mi-router-ax3000t_defconfig
+@@ -0,0 +1,163 @@
++CONFIG_ARM=y
++CONFIG_POSITION_INDEPENDENT=y
++CONFIG_ARCH_MEDIATEK=y
++CONFIG_TARGET_MT7981=y
++CONFIG_TEXT_BASE=0x41e00000
++CONFIG_SYS_MALLOC_F_LEN=0x4000
++CONFIG_SYS_HAS_NONCACHED_MEMORY=y
++CONFIG_NR_DRAM_BANKS=1
++CONFIG_DEFAULT_DEVICE_TREE="mt7981_xiaomi_mi-router-ax3000t"
++CONFIG_DEFAULT_ENV_FILE="xiaomi_mi-router-ax3000t_env"
++CONFIG_DEFAULT_FDT_FILE="mediatek/mt7981_xiaomi_mi-router-ax3000t.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=y
++CONFIG_LED_BLINK=y
++CONFIG_LED_GPIO=y
++CONFIG_LOGLEVEL=7
++CONFIG_LOG=y
++CONFIG_SYS_PROMPT="MT7981> "
++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=y
++CONFIG_CMD_HASH=y
++CONFIG_CMD_ITEST=y
++CONFIG_CMD_LED=y
++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_MTK_AHCI=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_MT7981=y
++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_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_USE_DEFAULT_ENV_FILE=y
++CONFIG_MTD_SPI_NAND=y
++CONFIG_MTK_SPIM=y
++CONFIG_CMD_NAND=y
++CONFIG_CMD_NAND_TRIMFFS=y
++CONFIG_LMB_MAX_REGIONS=64
++CONFIG_USE_IPADDR=y
++CONFIG_IPADDR="192.168.1.1"
++CONFIG_USE_SERVERIP=y
++CONFIG_SERVERIP="192.168.1.254"
+--- /dev/null
++++ b/arch/arm/dts/mt7981_xiaomi_mi-router-ax3000t.dts
+@@ -0,0 +1,187 @@
++// SPDX-License-Identifier: GPL-2.0
++/*
++ * Copyright (c) 2022 MediaTek Inc.
++ * Author: Sam Shih
++ */
++
++/dts-v1/;
++#include "mt7981.dtsi"
++#include
++#include
++
++/ {
++ #address-cells = <1>;
++ #size-cells = <1>;
++ model = "Xiaomi Router AX3000T";
++ compatible = "mediatek,mt7981", "mediatek,mt7981-rfb";
++
++ chosen {
++ stdout-path = &uart0;
++ tick-timer = &timer0;
++ };
++
++ memory@40000000 {
++ device_type = "memory";
++ reg = <0x40000000 0x10000000>;
++ };
++
++ gpio-keys {
++ compatible = "gpio-keys";
++
++ reset {
++ label = "reset";
++ gpios = <&gpio 1 GPIO_ACTIVE_LOW>;
++ linux,code = ;
++ };
++
++ mesh {
++ label = "mesh";
++ gpios = <&gpio 0 GPIO_ACTIVE_LOW>;
++ linux,code = ;
++ linux,input-type = ;
++ };
++ };
++
++ leds {
++ compatible = "gpio-leds";
++
++ led_status_blue {
++ label = "blue:status";
++ gpios = <&gpio 9 GPIO_ACTIVE_LOW>;
++ };
++
++ led_status_yellow {
++ label = "yellow:status";
++ gpios = <&gpio 10 GPIO_ACTIVE_LOW>;
++ };
++ };
++};
++
++&uart0 {
++ mediatek,force-highspeed;
++ status = "okay";
++};
++
++ð {
++ status = "okay";
++ mediatek,gmac-id = <0>;
++ phy-mode = "2500base-x";
++ mediatek,switch = "mt7531";
++ reset-gpios = <&gpio 39 GPIO_ACTIVE_HIGH>;
++
++ fixed-link {
++ speed = <2500>;
++ full-duplex;
++ };
++};
++
++&pinctrl {
++ spic_pins: spi1-pins-func-1 {
++ mux {
++ function = "spi";
++ groups = "spi1_1";
++ };
++ };
++
++ 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 = "SPI0_CS", "SPI0_HOLD", "SPI0_WP";
++ drive-strength = ;
++ bias-pull-up = ;
++ };
++
++ conf-pd {
++ pins = "SPI0_CLK", "SPI0_MOSI", "SPI0_MISO";
++ drive-strength = ;
++ bias-pull-down = ;
++ };
++ };
++};
++
++&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 = <2>;
++ 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 = <0x00 0x100000>;
++ };
++
++ 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@580000 {
++ label = "crash";
++ reg = <0x580000 0x40000>;
++ };
++
++ partition@5c0000 {
++ label = "crash_log";
++ reg = <0x5c0000 0x40000>;
++ };
++
++ partition@600000 {
++ label = "ubi";
++ reg = <0x600000 0x7000000>;
++ };
++
++ partition@7600000 {
++ label = "KF";
++ reg = <0x7600000 0x40000>;
++ };
++ };
++ };
++};
++
++&watchdog {
++ status = "disabled";
++};
+--- /dev/null
++++ b/xiaomi_mi-router-ax3000t_env
+@@ -0,0 +1,55 @@
++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_mi-router-ax3000t-ubootmod-initramfs-recovery.itb
++bootfile_bl2=openwrt-mediatek-filogic-xiaomi_mi-router-ax3000t-ubootmod-preloader.bin
++bootfile_fip=openwrt-mediatek-filogic-xiaomi_mi-router-ax3000t-ubootmod-bl31-uboot.fip
++bootfile_upg=openwrt-mediatek-filogic-xiaomi_mi-router-ax3000t-ubootmod-squashfs-sysupgrade.itb
++bootled_pwr=yellow:status
++bootled_rec=blue:status
++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 led $bootled_rec on ; 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=led $bootled_pwr on ; run ubi_read_production && bootm $loadaddr#$bootconf ; led $bootled_pwr off
++boot_recovery=led $bootled_rec on ; run ubi_read_recovery && bootm $loadaddr#$bootconf ; led $bootled_rec off
++boot_ubi=run boot_production ; run boot_recovery ; run boot_tftp_forever
++boot_tftp_forever=led $bootled_rec on ; 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
++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 || run ubi_format ; ubi check ubootenv2 || ubi create ubootenv2 0x100000 dynamic 1 || run ubi_format
++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 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 2 && ubi write $loadaddr fit $filesize
++ubi_write_recovery=ubi check recovery && ubi remove recovery ; run ubi_remove_rootfs ; ubi create recovery $filesize dynamic 3 && ubi write $loadaddr recovery $filesize
++_init_env=setenv _init_env ; run ubi_create_env ; saveenv ; saveenv
++_firstboot=setenv _firstboot ; 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"
diff --git a/package/boot/uboot-rockchip/Makefile b/package/boot/uboot-rockchip/Makefile
index 1dad3c1e1c..71eac09d98 100644
--- a/package/boot/uboot-rockchip/Makefile
+++ b/package/boot/uboot-rockchip/Makefile
@@ -5,9 +5,9 @@
include $(TOPDIR)/rules.mk
include $(INCLUDE_DIR)/kernel.mk
-PKG_VERSION:=2023.07.02
+PKG_VERSION:=2024.01
PKG_RELEASE:=1
-PKG_HASH:=6b6a48581c14abb0f95bd87c1af4d740922406d7b801002a9f94727fdde021d5
+PKG_HASH:=b99611f1ed237bf3541bdc8434b68c96a6e05967061f992443cb30aabebef5b3
PKG_MAINTAINER:=Tobias Maedel
diff --git a/package/boot/uboot-rockchip/patches/100-rockchip-rk3328-Add-support-for-Orange-Pi-R1-Plus.patch b/package/boot/uboot-rockchip/patches/100-rockchip-rk3328-Add-support-for-Orange-Pi-R1-Plus.patch
deleted file mode 100644
index 487e6afda8..0000000000
--- a/package/boot/uboot-rockchip/patches/100-rockchip-rk3328-Add-support-for-Orange-Pi-R1-Plus.patch
+++ /dev/null
@@ -1,594 +0,0 @@
-From 89afb631d965292aaf433806d8224b53d9e74036 Mon Sep 17 00:00:00 2001
-From: Tianling Shen
-Date: Sat, 20 May 2023 18:50:38 +0800
-Subject: [PATCH] rockchip: rk3328: Add support for Orange Pi R1 Plus
-
-Orange Pi R1 Plus is a Rockchip RK3328 based SBC by Xunlong.
-
-This device is similar to the NanoPi R2S, and has a 16MB
-SPI NOR (mx25l12805d). The reset button is changed to
-directly reset the power supply, another detail is that
-both network ports have independent MAC addresses.
-
-The device tree and description are taken from kernel v6.3-rc1.
-
-Reviewed-by: Kever Yang
-Signed-off-by: Tianling Shen
----
- arch/arm/dts/Makefile | 1 +
- .../dts/rk3328-orangepi-r1-plus-u-boot.dtsi | 46 +++
- arch/arm/dts/rk3328-orangepi-r1-plus.dts | 373 ++++++++++++++++++
- board/rockchip/evb_rk3328/MAINTAINERS | 6 +
- configs/orangepi-r1-plus-rk3328_defconfig | 114 ++++++
- 5 files changed, 540 insertions(+)
- create mode 100644 arch/arm/dts/rk3328-orangepi-r1-plus-u-boot.dtsi
- create mode 100644 arch/arm/dts/rk3328-orangepi-r1-plus.dts
- create mode 100644 configs/orangepi-r1-plus-rk3328_defconfig
-
---- a/arch/arm/dts/Makefile
-+++ b/arch/arm/dts/Makefile
-@@ -125,6 +125,7 @@ dtb-$(CONFIG_ROCKCHIP_RK3328) += \
- rk3328-evb.dtb \
- rk3328-nanopi-r2c.dtb \
- rk3328-nanopi-r2s.dtb \
-+ rk3328-orangepi-r1-plus.dtb \
- rk3328-roc-cc.dtb \
- rk3328-rock64.dtb \
- rk3328-rock-pi-e.dtb
---- /dev/null
-+++ b/arch/arm/dts/rk3328-orangepi-r1-plus-u-boot.dtsi
-@@ -0,0 +1,46 @@
-+// SPDX-License-Identifier: GPL-2.0-or-later
-+/*
-+ * (C) Copyright 2018-2019 Rockchip Electronics Co., Ltd
-+ * (C) Copyright 2020 David Bauer
-+ */
-+
-+#include "rk3328-u-boot.dtsi"
-+#include "rk3328-sdram-ddr4-666.dtsi"
-+/ {
-+ chosen {
-+ u-boot,spl-boot-order = "same-as-spl", &sdmmc, &emmc;
-+ };
-+};
-+
-+&gpio0 {
-+ bootph-pre-ram;
-+};
-+
-+&pinctrl {
-+ bootph-pre-ram;
-+};
-+
-+&sdmmc0m1_pin {
-+ bootph-pre-ram;
-+};
-+
-+&pcfg_pull_up_4ma {
-+ bootph-pre-ram;
-+};
-+
-+/* Need this and all the pinctrl/gpio stuff above to set pinmux */
-+&vcc_sd {
-+ bootph-pre-ram;
-+};
-+
-+&gmac2io {
-+ snps,reset-gpio = <&gpio1 RK_PC2 GPIO_ACTIVE_LOW>;
-+ snps,reset-active-low;
-+ snps,reset-delays-us = <0 10000 50000>;
-+};
-+
-+&spi0 {
-+ spi_flash: spiflash@0 {
-+ bootph-all;
-+ };
-+};
---- /dev/null
-+++ b/arch/arm/dts/rk3328-orangepi-r1-plus.dts
-@@ -0,0 +1,373 @@
-+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
-+/*
-+ * Based on rk3328-nanopi-r2s.dts, which is:
-+ * Copyright (c) 2020 David Bauer
-+ */
-+
-+/dts-v1/;
-+
-+#include
-+#include
-+#include "rk3328.dtsi"
-+
-+/ {
-+ model = "Xunlong Orange Pi R1 Plus";
-+ compatible = "xunlong,orangepi-r1-plus", "rockchip,rk3328";
-+
-+ aliases {
-+ ethernet1 = &rtl8153;
-+ mmc0 = &sdmmc;
-+ };
-+
-+ chosen {
-+ stdout-path = "serial2:1500000n8";
-+ };
-+
-+ gmac_clk: gmac-clock {
-+ compatible = "fixed-clock";
-+ clock-frequency = <125000000>;
-+ clock-output-names = "gmac_clkin";
-+ #clock-cells = <0>;
-+ };
-+
-+ leds {
-+ compatible = "gpio-leds";
-+ pinctrl-0 = <&lan_led_pin>, <&sys_led_pin>, <&wan_led_pin>;
-+ pinctrl-names = "default";
-+
-+ led-0 {
-+ function = LED_FUNCTION_LAN;
-+ color = ;
-+ gpios = <&gpio2 RK_PB7 GPIO_ACTIVE_HIGH>;
-+ };
-+
-+ led-1 {
-+ function = LED_FUNCTION_STATUS;
-+ color = ;
-+ gpios = <&gpio3 RK_PC5 GPIO_ACTIVE_HIGH>;
-+ linux,default-trigger = "heartbeat";
-+ };
-+
-+ led-2 {
-+ function = LED_FUNCTION_WAN;
-+ color = ;
-+ gpios = <&gpio2 RK_PC2 GPIO_ACTIVE_HIGH>;
-+ };
-+ };
-+
-+ vcc_sd: sdmmc-regulator {
-+ compatible = "regulator-fixed";
-+ gpio = <&gpio0 RK_PD6 GPIO_ACTIVE_LOW>;
-+ pinctrl-0 = <&sdmmc0m1_pin>;
-+ pinctrl-names = "default";
-+ regulator-name = "vcc_sd";
-+ regulator-boot-on;
-+ vin-supply = <&vcc_io>;
-+ };
-+
-+ vcc_sys: vcc-sys-regulator {
-+ compatible = "regulator-fixed";
-+ regulator-name = "vcc_sys";
-+ regulator-always-on;
-+ regulator-boot-on;
-+ regulator-min-microvolt = <5000000>;
-+ regulator-max-microvolt = <5000000>;
-+ };
-+
-+ vdd_5v_lan: vdd-5v-lan-regulator {
-+ compatible = "regulator-fixed";
-+ enable-active-high;
-+ gpio = <&gpio2 RK_PC6 GPIO_ACTIVE_HIGH>;
-+ pinctrl-0 = <&lan_vdd_pin>;
-+ pinctrl-names = "default";
-+ regulator-name = "vdd_5v_lan";
-+ regulator-always-on;
-+ regulator-boot-on;
-+ vin-supply = <&vcc_sys>;
-+ };
-+};
-+
-+&cpu0 {
-+ cpu-supply = <&vdd_arm>;
-+};
-+
-+&cpu1 {
-+ cpu-supply = <&vdd_arm>;
-+};
-+
-+&cpu2 {
-+ cpu-supply = <&vdd_arm>;
-+};
-+
-+&cpu3 {
-+ cpu-supply = <&vdd_arm>;
-+};
-+
-+&display_subsystem {
-+ status = "disabled";
-+};
-+
-+&gmac2io {
-+ assigned-clocks = <&cru SCLK_MAC2IO>, <&cru SCLK_MAC2IO_EXT>;
-+ assigned-clock-parents = <&gmac_clk>, <&gmac_clk>;
-+ clock_in_out = "input";
-+ phy-handle = <&rtl8211e>;
-+ phy-mode = "rgmii";
-+ phy-supply = <&vcc_io>;
-+ pinctrl-0 = <&rgmiim1_pins>;
-+ pinctrl-names = "default";
-+ snps,aal;
-+ rx_delay = <0x18>;
-+ tx_delay = <0x24>;
-+ status = "okay";
-+
-+ mdio {
-+ compatible = "snps,dwmac-mdio";
-+ #address-cells = <1>;
-+ #size-cells = <0>;
-+
-+ rtl8211e: ethernet-phy@1 {
-+ reg = <1>;
-+ pinctrl-0 = <ð_phy_reset_pin>;
-+ pinctrl-names = "default";
-+ reset-assert-us = <10000>;
-+ reset-deassert-us = <50000>;
-+ reset-gpios = <&gpio1 RK_PC2 GPIO_ACTIVE_LOW>;
-+ };
-+ };
-+};
-+
-+&i2c1 {
-+ status = "okay";
-+
-+ rk805: pmic@18 {
-+ compatible = "rockchip,rk805";
-+ reg = <0x18>;
-+ interrupt-parent = <&gpio1>;
-+ interrupts = <24 IRQ_TYPE_LEVEL_LOW>;
-+ #clock-cells = <1>;
-+ clock-output-names = "xin32k", "rk805-clkout2";
-+ gpio-controller;
-+ #gpio-cells = <2>;
-+ pinctrl-0 = <&pmic_int_l>;
-+ pinctrl-names = "default";
-+ rockchip,system-power-controller;
-+ wakeup-source;
-+
-+ vcc1-supply = <&vcc_sys>;
-+ vcc2-supply = <&vcc_sys>;
-+ vcc3-supply = <&vcc_sys>;
-+ vcc4-supply = <&vcc_sys>;
-+ vcc5-supply = <&vcc_io>;
-+ vcc6-supply = <&vcc_sys>;
-+
-+ regulators {
-+ vdd_log: DCDC_REG1 {
-+ regulator-name = "vdd_log";
-+ regulator-always-on;
-+ regulator-boot-on;
-+ regulator-min-microvolt = <712500>;
-+ regulator-max-microvolt = <1450000>;
-+ regulator-ramp-delay = <12500>;
-+
-+ regulator-state-mem {
-+ regulator-on-in-suspend;
-+ regulator-suspend-microvolt = <1000000>;
-+ };
-+ };
-+
-+ vdd_arm: DCDC_REG2 {
-+ regulator-name = "vdd_arm";
-+ regulator-always-on;
-+ regulator-boot-on;
-+ regulator-min-microvolt = <712500>;
-+ regulator-max-microvolt = <1450000>;
-+ regulator-ramp-delay = <12500>;
-+
-+ regulator-state-mem {
-+ regulator-on-in-suspend;
-+ regulator-suspend-microvolt = <950000>;
-+ };
-+ };
-+
-+ vcc_ddr: DCDC_REG3 {
-+ regulator-name = "vcc_ddr";
-+ regulator-always-on;
-+ regulator-boot-on;
-+
-+ regulator-state-mem {
-+ regulator-on-in-suspend;
-+ };
-+ };
-+
-+ vcc_io: DCDC_REG4 {
-+ regulator-name = "vcc_io";
-+ regulator-always-on;
-+ regulator-boot-on;
-+ regulator-min-microvolt = <3300000>;
-+ regulator-max-microvolt = <3300000>;
-+
-+ regulator-state-mem {
-+ regulator-on-in-suspend;
-+ regulator-suspend-microvolt = <3300000>;
-+ };
-+ };
-+
-+ vcc_18: LDO_REG1 {
-+ regulator-name = "vcc_18";
-+ regulator-always-on;
-+ regulator-boot-on;
-+ regulator-min-microvolt = <1800000>;
-+ regulator-max-microvolt = <1800000>;
-+
-+ regulator-state-mem {
-+ regulator-on-in-suspend;
-+ regulator-suspend-microvolt = <1800000>;
-+ };
-+ };
-+
-+ vcc18_emmc: LDO_REG2 {
-+ regulator-name = "vcc18_emmc";
-+ regulator-always-on;
-+ regulator-boot-on;
-+ regulator-min-microvolt = <1800000>;
-+ regulator-max-microvolt = <1800000>;
-+
-+ regulator-state-mem {
-+ regulator-on-in-suspend;
-+ regulator-suspend-microvolt = <1800000>;
-+ };
-+ };
-+
-+ vdd_10: LDO_REG3 {
-+ regulator-name = "vdd_10";
-+ regulator-always-on;
-+ regulator-boot-on;
-+ regulator-min-microvolt = <1000000>;
-+ regulator-max-microvolt = <1000000>;
-+
-+ regulator-state-mem {
-+ regulator-on-in-suspend;
-+ regulator-suspend-microvolt = <1000000>;
-+ };
-+ };
-+ };
-+ };
-+};
-+
-+&io_domains {
-+ pmuio-supply = <&vcc_io>;
-+ vccio1-supply = <&vcc_io>;
-+ vccio2-supply = <&vcc18_emmc>;
-+ vccio3-supply = <&vcc_io>;
-+ vccio4-supply = <&vcc_io>;
-+ vccio5-supply = <&vcc_io>;
-+ vccio6-supply = <&vcc_io>;
-+ status = "okay";
-+};
-+
-+&pinctrl {
-+ gmac2io {
-+ eth_phy_reset_pin: eth-phy-reset-pin {
-+ rockchip,pins = <1 RK_PC2 RK_FUNC_GPIO &pcfg_pull_down>;
-+ };
-+ };
-+
-+ leds {
-+ lan_led_pin: lan-led-pin {
-+ rockchip,pins = <2 RK_PB7 RK_FUNC_GPIO &pcfg_pull_none>;
-+ };
-+
-+ sys_led_pin: sys-led-pin {
-+ rockchip,pins = <3 RK_PC5 RK_FUNC_GPIO &pcfg_pull_none>;
-+ };
-+
-+ wan_led_pin: wan-led-pin {
-+ rockchip,pins = <2 RK_PC2 RK_FUNC_GPIO &pcfg_pull_none>;
-+ };
-+ };
-+
-+ lan {
-+ lan_vdd_pin: lan-vdd-pin {
-+ rockchip,pins = <2 RK_PC6 RK_FUNC_GPIO &pcfg_pull_none>;
-+ };
-+ };
-+
-+ pmic {
-+ pmic_int_l: pmic-int-l {
-+ rockchip,pins = <1 RK_PD0 RK_FUNC_GPIO &pcfg_pull_up>;
-+ };
-+ };
-+};
-+
-+&pwm2 {
-+ status = "okay";
-+};
-+
-+&sdmmc {
-+ bus-width = <4>;
-+ cap-sd-highspeed;
-+ disable-wp;
-+ pinctrl-0 = <&sdmmc0_clk>, <&sdmmc0_cmd>, <&sdmmc0_dectn>, <&sdmmc0_bus4>;
-+ pinctrl-names = "default";
-+ vmmc-supply = <&vcc_sd>;
-+ status = "okay";
-+};
-+
-+&spi0 {
-+ status = "okay";
-+
-+ flash@0 {
-+ compatible = "jedec,spi-nor";
-+ reg = <0>;
-+ spi-max-frequency = <50000000>;
-+ };
-+};
-+
-+&tsadc {
-+ rockchip,hw-tshut-mode = <0>;
-+ rockchip,hw-tshut-polarity = <0>;
-+ status = "okay";
-+};
-+
-+&u2phy {
-+ status = "okay";
-+};
-+
-+&u2phy_host {
-+ status = "okay";
-+};
-+
-+&u2phy_otg {
-+ status = "okay";
-+};
-+
-+&uart2 {
-+ status = "okay";
-+};
-+
-+&usb20_otg {
-+ dr_mode = "host";
-+ status = "okay";
-+};
-+
-+&usbdrd3 {
-+ dr_mode = "host";
-+ status = "okay";
-+ #address-cells = <1>;
-+ #size-cells = <0>;
-+
-+ /* Second port is for USB 3.0 */
-+ rtl8153: device@2 {
-+ compatible = "usbbda,8153";
-+ reg = <2>;
-+ };
-+};
-+
-+&usb_host0_ehci {
-+ status = "okay";
-+};
-+
-+&usb_host0_ohci {
-+ status = "okay";
-+};
---- a/board/rockchip/evb_rk3328/MAINTAINERS
-+++ b/board/rockchip/evb_rk3328/MAINTAINERS
-@@ -18,6 +18,12 @@ F: configs/nanopi-r2s-rk3328_defcon
- F: arch/arm/dts/rk3328-nanopi-r2s-u-boot.dtsi
- F: arch/arm/dts/rk3328-nanopi-r2s.dts
-
-+ORANGEPI-R1-PLUS-RK3328
-+M: Tianling Shen
-+S: Maintained
-+F: configs/orangepi-r1-plus-rk3328_defconfig
-+F: arch/arm/dts/rk3328-orangepi-r1-plus-u-boot.dtsi
-+
- ROC-RK3328-CC
- M: Loic Devulder
- M: Chen-Yu Tsai
---- /dev/null
-+++ b/configs/orangepi-r1-plus-rk3328_defconfig
-@@ -0,0 +1,114 @@
-+CONFIG_ARM=y
-+CONFIG_SKIP_LOWLEVEL_INIT=y
-+CONFIG_COUNTER_FREQUENCY=24000000
-+CONFIG_ARCH_ROCKCHIP=y
-+CONFIG_TEXT_BASE=0x00200000
-+CONFIG_SPL_GPIO=y
-+CONFIG_NR_DRAM_BANKS=1
-+CONFIG_HAS_CUSTOM_SYS_INIT_SP_ADDR=y
-+CONFIG_CUSTOM_SYS_INIT_SP_ADDR=0x300000
-+CONFIG_ENV_OFFSET=0x3F8000
-+CONFIG_DEFAULT_DEVICE_TREE="rk3328-orangepi-r1-plus"
-+CONFIG_DM_RESET=y
-+CONFIG_ROCKCHIP_RK3328=y
-+CONFIG_TPL_ROCKCHIP_COMMON_BOARD=y
-+CONFIG_TPL_LIBCOMMON_SUPPORT=y
-+CONFIG_TPL_LIBGENERIC_SUPPORT=y
-+CONFIG_SPL_DRIVERS_MISC=y
-+CONFIG_SPL_STACK_R_ADDR=0x600000
-+CONFIG_SPL_STACK=0x400000
-+CONFIG_TPL_SYS_MALLOC_F_LEN=0x800
-+CONFIG_DEBUG_UART_BASE=0xFF130000
-+CONFIG_DEBUG_UART_CLOCK=24000000
-+CONFIG_SYS_LOAD_ADDR=0x800800
-+CONFIG_DEBUG_UART=y
-+# CONFIG_ANDROID_BOOT_IMAGE is not set
-+CONFIG_FIT=y
-+CONFIG_FIT_VERBOSE=y
-+CONFIG_SPL_LOAD_FIT=y
-+CONFIG_DEFAULT_FDT_FILE="rockchip/rk3328-orangepi-r1-plus.dtb"
-+# CONFIG_DISPLAY_CPUINFO is not set
-+CONFIG_DISPLAY_BOARDINFO_LATE=y
-+CONFIG_MISC_INIT_R=y
-+CONFIG_SPL_MAX_SIZE=0x40000
-+CONFIG_SPL_PAD_TO=0x7f8000
-+CONFIG_SPL_HAS_BSS_LINKER_SECTION=y
-+CONFIG_SPL_BSS_START_ADDR=0x2000000
-+CONFIG_SPL_BSS_MAX_SIZE=0x2000
-+# CONFIG_SPL_RAW_IMAGE_SUPPORT is not set
-+# CONFIG_SPL_SHARES_INIT_SP_ADDR is not set
-+CONFIG_SPL_STACK_R=y
-+CONFIG_SPL_I2C=y
-+CONFIG_SPL_POWER=y
-+CONFIG_SPL_ATF=y
-+CONFIG_SPL_ATF_NO_PLATFORM_PARAM=y
-+CONFIG_TPL_SYS_MALLOC_SIMPLE=y
-+CONFIG_CMD_BOOTZ=y
-+CONFIG_CMD_GPT=y
-+CONFIG_CMD_MMC=y
-+CONFIG_CMD_USB=y
-+# CONFIG_CMD_SETEXPR is not set
-+CONFIG_CMD_TIME=y
-+CONFIG_SPL_OF_CONTROL=y
-+CONFIG_TPL_OF_CONTROL=y
-+CONFIG_OF_SPL_REMOVE_PROPS="clock-names interrupt-parent assigned-clocks assigned-clock-rates assigned-clock-parents"
-+CONFIG_TPL_OF_PLATDATA=y
-+CONFIG_ENV_IS_IN_MMC=y
-+CONFIG_SYS_RELOC_GD_ENV_ADDR=y
-+CONFIG_SYS_MMC_ENV_DEV=1
-+CONFIG_NET_RANDOM_ETHADDR=y
-+CONFIG_TPL_DM=y
-+CONFIG_REGMAP=y
-+CONFIG_SPL_REGMAP=y
-+CONFIG_TPL_REGMAP=y
-+CONFIG_SYSCON=y
-+CONFIG_SPL_SYSCON=y
-+CONFIG_TPL_SYSCON=y
-+CONFIG_CLK=y
-+CONFIG_SPL_CLK=y
-+CONFIG_FASTBOOT_BUF_ADDR=0x800800
-+CONFIG_FASTBOOT_CMD_OEM_FORMAT=y
-+CONFIG_ROCKCHIP_GPIO=y
-+CONFIG_SYS_I2C_ROCKCHIP=y
-+CONFIG_MMC_DW=y
-+CONFIG_MMC_DW_ROCKCHIP=y
-+CONFIG_SF_DEFAULT_SPEED=20000000
-+CONFIG_SPI_FLASH_GIGADEVICE=y
-+CONFIG_ETH_DESIGNWARE=y
-+CONFIG_GMAC_ROCKCHIP=y
-+CONFIG_PINCTRL=y
-+CONFIG_SPL_PINCTRL=y
-+CONFIG_DM_PMIC=y
-+CONFIG_PMIC_RK8XX=y
-+CONFIG_SPL_PMIC_RK8XX=y
-+CONFIG_SPL_DM_REGULATOR=y
-+CONFIG_REGULATOR_PWM=y
-+CONFIG_DM_REGULATOR_FIXED=y
-+CONFIG_SPL_DM_REGULATOR_FIXED=y
-+CONFIG_REGULATOR_RK8XX=y
-+CONFIG_PWM_ROCKCHIP=y
-+CONFIG_RAM=y
-+CONFIG_SPL_RAM=y
-+CONFIG_TPL_RAM=y
-+CONFIG_BAUDRATE=1500000
-+CONFIG_DEBUG_UART_SHIFT=2
-+CONFIG_SYS_NS16550_MEM32=y
-+CONFIG_ROCKCHIP_SPI=y
-+CONFIG_SYSINFO=y
-+CONFIG_SYSRESET=y
-+# CONFIG_TPL_SYSRESET is not set
-+CONFIG_USB=y
-+CONFIG_USB_XHCI_HCD=y
-+CONFIG_USB_XHCI_DWC3=y
-+CONFIG_USB_EHCI_HCD=y
-+CONFIG_USB_EHCI_GENERIC=y
-+CONFIG_USB_OHCI_HCD=y
-+CONFIG_USB_OHCI_GENERIC=y
-+CONFIG_USB_DWC2=y
-+CONFIG_USB_DWC3=y
-+# CONFIG_USB_DWC3_GADGET is not set
-+CONFIG_USB_GADGET=y
-+CONFIG_USB_GADGET_DWC2_OTG=y
-+CONFIG_SPL_TINY_MEMSET=y
-+CONFIG_TPL_TINY_MEMSET=y
-+CONFIG_ERRNO_STR=y
diff --git a/package/boot/uboot-rockchip/patches/101-rockchip-rk3328-Add-support-for-Orange-Pi-R1-Plus-LT.patch b/package/boot/uboot-rockchip/patches/101-rockchip-rk3328-Add-support-for-Orange-Pi-R1-Plus-LT.patch
deleted file mode 100644
index 56d36c74dc..0000000000
--- a/package/boot/uboot-rockchip/patches/101-rockchip-rk3328-Add-support-for-Orange-Pi-R1-Plus-LT.patch
+++ /dev/null
@@ -1,257 +0,0 @@
-From 408fd4570c0f1e6b1fe3722998394651144f2a29 Mon Sep 17 00:00:00 2001
-From: Tianling Shen
-Date: Sat, 20 May 2023 18:52:14 +0800
-Subject: [PATCH] rockchip: rk3328: Add support for Orange Pi R1 Plus LTS
-
-The OrangePi R1 Plus LTS is a minor variant of OrangePi R1 Plus with
-the on-board NIC chip changed from rtl8211e to yt8531c, and RAM type
-changed from DDR4 to LPDDR3.
-
-The device tree is taken from kernel v6.4-rc1.
-
-Signed-off-by: Tianling Shen
----
- arch/arm/dts/Makefile | 1 +
- .../rk3328-orangepi-r1-plus-lts-u-boot.dtsi | 46 +++++++
- arch/arm/dts/rk3328-orangepi-r1-plus-lts.dts | 40 ++++++
- board/rockchip/evb_rk3328/MAINTAINERS | 6 +
- configs/orangepi-r1-plus-lts-rk3328_defconfig | 114 ++++++++++++++++++
- 5 files changed, 207 insertions(+)
- create mode 100644 arch/arm/dts/rk3328-orangepi-r1-plus-lts-u-boot.dtsi
- create mode 100644 arch/arm/dts/rk3328-orangepi-r1-plus-lts.dts
- create mode 100644 configs/orangepi-r1-plus-lts-rk3328_defconfig
-
---- a/arch/arm/dts/Makefile
-+++ b/arch/arm/dts/Makefile
-@@ -126,6 +126,7 @@ dtb-$(CONFIG_ROCKCHIP_RK3328) += \
- rk3328-nanopi-r2c.dtb \
- rk3328-nanopi-r2s.dtb \
- rk3328-orangepi-r1-plus.dtb \
-+ rk3328-orangepi-r1-plus-lts.dtb \
- rk3328-roc-cc.dtb \
- rk3328-rock64.dtb \
- rk3328-rock-pi-e.dtb
---- /dev/null
-+++ b/arch/arm/dts/rk3328-orangepi-r1-plus-lts-u-boot.dtsi
-@@ -0,0 +1,46 @@
-+// SPDX-License-Identifier: GPL-2.0-or-later
-+/*
-+ * (C) Copyright 2018-2019 Rockchip Electronics Co., Ltd
-+ * (C) Copyright 2020 David Bauer
-+ */
-+
-+#include "rk3328-u-boot.dtsi"
-+#include "rk3328-sdram-lpddr3-666.dtsi"
-+/ {
-+ chosen {
-+ u-boot,spl-boot-order = "same-as-spl", &sdmmc, &emmc;
-+ };
-+};
-+
-+&gpio0 {
-+ bootph-pre-ram;
-+};
-+
-+&pinctrl {
-+ bootph-pre-ram;
-+};
-+
-+&sdmmc0m1_pin {
-+ bootph-pre-ram;
-+};
-+
-+&pcfg_pull_up_4ma {
-+ bootph-pre-ram;
-+};
-+
-+/* Need this and all the pinctrl/gpio stuff above to set pinmux */
-+&vcc_sd {
-+ bootph-pre-ram;
-+};
-+
-+&gmac2io {
-+ snps,reset-gpio = <&gpio1 RK_PC2 GPIO_ACTIVE_LOW>;
-+ snps,reset-active-low;
-+ snps,reset-delays-us = <0 10000 50000>;
-+};
-+
-+&spi0 {
-+ spi_flash: spiflash@0 {
-+ bootph-all;
-+ };
-+};
---- /dev/null
-+++ b/arch/arm/dts/rk3328-orangepi-r1-plus-lts.dts
-@@ -0,0 +1,40 @@
-+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
-+/*
-+ * Copyright (c) 2016 Xunlong Software. Co., Ltd.
-+ * (http://www.orangepi.org)
-+ *
-+ * Copyright (c) 2021-2023 Tianling Shen
-+ */
-+
-+/dts-v1/;
-+#include "rk3328-orangepi-r1-plus.dts"
-+
-+/ {
-+ model = "Xunlong Orange Pi R1 Plus LTS";
-+ compatible = "xunlong,orangepi-r1-plus-lts", "rockchip,rk3328";
-+};
-+
-+&gmac2io {
-+ phy-handle = <&yt8531c>;
-+ tx_delay = <0x19>;
-+ rx_delay = <0x05>;
-+
-+ mdio {
-+ /delete-node/ ethernet-phy@1;
-+
-+ yt8531c: ethernet-phy@0 {
-+ compatible = "ethernet-phy-ieee802.3-c22";
-+ reg = <0>;
-+
-+ motorcomm,clk-out-frequency-hz = <125000000>;
-+ motorcomm,keep-pll-enabled;
-+ motorcomm,auto-sleep-disabled;
-+
-+ pinctrl-0 = <ð_phy_reset_pin>;
-+ pinctrl-names = "default";
-+ reset-assert-us = <15000>;
-+ reset-deassert-us = <50000>;
-+ reset-gpios = <&gpio1 RK_PC2 GPIO_ACTIVE_LOW>;
-+ };
-+ };
-+};
---- a/board/rockchip/evb_rk3328/MAINTAINERS
-+++ b/board/rockchip/evb_rk3328/MAINTAINERS
-@@ -24,6 +24,12 @@ S: Maintained
- F: configs/orangepi-r1-plus-rk3328_defconfig
- F: arch/arm/dts/rk3328-orangepi-r1-plus-u-boot.dtsi
-
-+ORANGEPI-R1-PLUS-LTS-RK3328
-+M: Tianling Shen
-+S: Maintained
-+F: configs/orangepi-r1-plus-lts-rk3328_defconfig
-+F: arch/arm/dts/rk3328-orangepi-r1-plus-lts-u-boot.dtsi
-+
- ROC-RK3328-CC
- M: Loic Devulder
- M: Chen-Yu Tsai
---- /dev/null
-+++ b/configs/orangepi-r1-plus-lts-rk3328_defconfig
-@@ -0,0 +1,114 @@
-+CONFIG_ARM=y
-+CONFIG_SKIP_LOWLEVEL_INIT=y
-+CONFIG_COUNTER_FREQUENCY=24000000
-+CONFIG_ARCH_ROCKCHIP=y
-+CONFIG_TEXT_BASE=0x00200000
-+CONFIG_SPL_GPIO=y
-+CONFIG_NR_DRAM_BANKS=1
-+CONFIG_HAS_CUSTOM_SYS_INIT_SP_ADDR=y
-+CONFIG_CUSTOM_SYS_INIT_SP_ADDR=0x300000
-+CONFIG_ENV_OFFSET=0x3F8000
-+CONFIG_DEFAULT_DEVICE_TREE="rk3328-orangepi-r1-plus-lts"
-+CONFIG_DM_RESET=y
-+CONFIG_ROCKCHIP_RK3328=y
-+CONFIG_TPL_ROCKCHIP_COMMON_BOARD=y
-+CONFIG_TPL_LIBCOMMON_SUPPORT=y
-+CONFIG_TPL_LIBGENERIC_SUPPORT=y
-+CONFIG_SPL_DRIVERS_MISC=y
-+CONFIG_SPL_STACK_R_ADDR=0x600000
-+CONFIG_SPL_STACK=0x400000
-+CONFIG_TPL_SYS_MALLOC_F_LEN=0x800
-+CONFIG_DEBUG_UART_BASE=0xFF130000
-+CONFIG_DEBUG_UART_CLOCK=24000000
-+CONFIG_SYS_LOAD_ADDR=0x800800
-+CONFIG_DEBUG_UART=y
-+# CONFIG_ANDROID_BOOT_IMAGE is not set
-+CONFIG_FIT=y
-+CONFIG_FIT_VERBOSE=y
-+CONFIG_SPL_LOAD_FIT=y
-+CONFIG_DEFAULT_FDT_FILE="rockchip/rk3328-orangepi-r1-plus-lts.dtb"
-+# CONFIG_DISPLAY_CPUINFO is not set
-+CONFIG_DISPLAY_BOARDINFO_LATE=y
-+CONFIG_MISC_INIT_R=y
-+CONFIG_SPL_MAX_SIZE=0x40000
-+CONFIG_SPL_PAD_TO=0x7f8000
-+CONFIG_SPL_HAS_BSS_LINKER_SECTION=y
-+CONFIG_SPL_BSS_START_ADDR=0x2000000
-+CONFIG_SPL_BSS_MAX_SIZE=0x2000
-+# CONFIG_SPL_RAW_IMAGE_SUPPORT is not set
-+# CONFIG_SPL_SHARES_INIT_SP_ADDR is not set
-+CONFIG_SPL_STACK_R=y
-+CONFIG_SPL_I2C=y
-+CONFIG_SPL_POWER=y
-+CONFIG_SPL_ATF=y
-+CONFIG_SPL_ATF_NO_PLATFORM_PARAM=y
-+CONFIG_TPL_SYS_MALLOC_SIMPLE=y
-+CONFIG_CMD_BOOTZ=y
-+CONFIG_CMD_GPT=y
-+CONFIG_CMD_MMC=y
-+CONFIG_CMD_USB=y
-+# CONFIG_CMD_SETEXPR is not set
-+CONFIG_CMD_TIME=y
-+CONFIG_SPL_OF_CONTROL=y
-+CONFIG_TPL_OF_CONTROL=y
-+CONFIG_OF_SPL_REMOVE_PROPS="clock-names interrupt-parent assigned-clocks assigned-clock-rates assigned-clock-parents"
-+CONFIG_TPL_OF_PLATDATA=y
-+CONFIG_ENV_IS_IN_MMC=y
-+CONFIG_SYS_RELOC_GD_ENV_ADDR=y
-+CONFIG_SYS_MMC_ENV_DEV=1
-+CONFIG_NET_RANDOM_ETHADDR=y
-+CONFIG_TPL_DM=y
-+CONFIG_REGMAP=y
-+CONFIG_SPL_REGMAP=y
-+CONFIG_TPL_REGMAP=y
-+CONFIG_SYSCON=y
-+CONFIG_SPL_SYSCON=y
-+CONFIG_TPL_SYSCON=y
-+CONFIG_CLK=y
-+CONFIG_SPL_CLK=y
-+CONFIG_FASTBOOT_BUF_ADDR=0x800800
-+CONFIG_FASTBOOT_CMD_OEM_FORMAT=y
-+CONFIG_ROCKCHIP_GPIO=y
-+CONFIG_SYS_I2C_ROCKCHIP=y
-+CONFIG_MMC_DW=y
-+CONFIG_MMC_DW_ROCKCHIP=y
-+CONFIG_SF_DEFAULT_SPEED=20000000
-+CONFIG_SPI_FLASH_GIGADEVICE=y
-+CONFIG_ETH_DESIGNWARE=y
-+CONFIG_GMAC_ROCKCHIP=y
-+CONFIG_PINCTRL=y
-+CONFIG_SPL_PINCTRL=y
-+CONFIG_DM_PMIC=y
-+CONFIG_PMIC_RK8XX=y
-+CONFIG_SPL_PMIC_RK8XX=y
-+CONFIG_SPL_DM_REGULATOR=y
-+CONFIG_REGULATOR_PWM=y
-+CONFIG_DM_REGULATOR_FIXED=y
-+CONFIG_SPL_DM_REGULATOR_FIXED=y
-+CONFIG_REGULATOR_RK8XX=y
-+CONFIG_PWM_ROCKCHIP=y
-+CONFIG_RAM=y
-+CONFIG_SPL_RAM=y
-+CONFIG_TPL_RAM=y
-+CONFIG_BAUDRATE=1500000
-+CONFIG_DEBUG_UART_SHIFT=2
-+CONFIG_SYS_NS16550_MEM32=y
-+CONFIG_ROCKCHIP_SPI=y
-+CONFIG_SYSINFO=y
-+CONFIG_SYSRESET=y
-+# CONFIG_TPL_SYSRESET is not set
-+CONFIG_USB=y
-+CONFIG_USB_XHCI_HCD=y
-+CONFIG_USB_XHCI_DWC3=y
-+CONFIG_USB_EHCI_HCD=y
-+CONFIG_USB_EHCI_GENERIC=y
-+CONFIG_USB_OHCI_HCD=y
-+CONFIG_USB_OHCI_GENERIC=y
-+CONFIG_USB_DWC2=y
-+CONFIG_USB_DWC3=y
-+# CONFIG_USB_DWC3_GADGET is not set
-+CONFIG_USB_GADGET=y
-+CONFIG_USB_GADGET_DWC2_OTG=y
-+CONFIG_SPL_TINY_MEMSET=y
-+CONFIG_TPL_TINY_MEMSET=y
-+CONFIG_ERRNO_STR=y
diff --git a/package/boot/uboot-rockchip/patches/103-rockchip-rk3568-Add-support-for-FriendlyARM-NanoPi-R.patch b/package/boot/uboot-rockchip/patches/103-rockchip-rk3568-Add-support-for-FriendlyARM-NanoPi-R.patch
deleted file mode 100644
index 09cafb3227..0000000000
--- a/package/boot/uboot-rockchip/patches/103-rockchip-rk3568-Add-support-for-FriendlyARM-NanoPi-R.patch
+++ /dev/null
@@ -1,917 +0,0 @@
-From c84214aab0e4c5b2f619dd89655f27b3ae40e82b Mon Sep 17 00:00:00 2001
-From: Tianling Shen
-Date: Tue, 30 May 2023 15:00:33 +0800
-Subject: [PATCH] rockchip: rk3568: Add support for FriendlyARM NanoPi R5S
-
-FriendlyARM NanoPi R5S is an open-sourced mini IoT gateway device.
-
-Board Specifications
-- Rockchip RK3568
-- 2 or 4GB LPDDR4X
-- 8GB or 16GB eMMC, SD card slot
-- GbE LAN (Native)
-- 2x 2.5G LAN (PCIe)
-- M.2 Connector
-- HDMI 2.0, MIPI DSI/CSI
-- 2xUSB 3.0 Host
-- USB Type C PD, 5V/9V/12V
-- GPIO: 12-pin 0.5mm FPC connector
-
-The device tree is taken from kernel v6.4-rc1.
-
-Reviewed-by: Kever Yang
-Signed-off-by: Tianling Shen
----
- arch/arm/dts/Makefile | 1 +
- arch/arm/dts/rk3568-nanopi-r5s-u-boot.dtsi | 31 ++
- arch/arm/dts/rk3568-nanopi-r5s.dts | 136 +++++
- arch/arm/dts/rk3568-nanopi-r5s.dtsi | 590 +++++++++++++++++++++
- board/rockchip/evb_rk3568/MAINTAINERS | 8 +
- configs/nanopi-r5s-rk3568_defconfig | 85 +++
- 6 files changed, 851 insertions(+)
- create mode 100644 arch/arm/dts/rk3568-nanopi-r5s-u-boot.dtsi
- create mode 100644 arch/arm/dts/rk3568-nanopi-r5s.dts
- create mode 100644 arch/arm/dts/rk3568-nanopi-r5s.dtsi
- create mode 100644 configs/nanopi-r5s-rk3568_defconfig
-
---- a/arch/arm/dts/Makefile
-+++ b/arch/arm/dts/Makefile
-@@ -171,6 +171,7 @@ dtb-$(CONFIG_ROCKCHIP_RK3568) += \
- rk3566-anbernic-rgxx3.dtb \
- rk3566-radxa-cm3-io.dtb \
- rk3568-evb.dtb \
-+ rk3568-nanopi-r5s.dtb \
- rk3568-rock-3a.dtb
-
- dtb-$(CONFIG_ROCKCHIP_RK3588) += \
---- /dev/null
-+++ b/arch/arm/dts/rk3568-nanopi-r5s-u-boot.dtsi
-@@ -0,0 +1,31 @@
-+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
-+/*
-+ * Copyright (c) 2022 FriendlyElec Computer Tech. Co., Ltd.
-+ * (http://www.friendlyelec.com)
-+ *
-+ * Copyright (c) 2023 Tianling Shen
-+ */
-+
-+#include "rk356x-u-boot.dtsi"
-+
-+/ {
-+ chosen {
-+ stdout-path = &uart2;
-+ u-boot,spl-boot-order = "same-as-spl", &sdmmc0, &sdhci;
-+ };
-+};
-+
-+&sdhci {
-+ cap-mmc-highspeed;
-+ mmc-ddr-1_8v;
-+ mmc-hs200-1_8v;
-+ mmc-hs400-1_8v;
-+ mmc-hs400-enhanced-strobe;
-+ pinctrl-0 = <&emmc_bus8 &emmc_clk &emmc_cmd &emmc_datastrobe>;
-+};
-+
-+&uart2 {
-+ clock-frequency = <24000000>;
-+ bootph-all;
-+ status = "okay";
-+};
---- /dev/null
-+++ b/arch/arm/dts/rk3568-nanopi-r5s.dts
-@@ -0,0 +1,136 @@
-+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
-+/*
-+ * Copyright (c) 2022 FriendlyElec Computer Tech. Co., Ltd.
-+ * (http://www.friendlyelec.com)
-+ *
-+ * Copyright (c) 2023 Tianling Shen
-+ */
-+
-+/dts-v1/;
-+#include "rk3568-nanopi-r5s.dtsi"
-+
-+/ {
-+ model = "FriendlyElec NanoPi R5S";
-+ compatible = "friendlyarm,nanopi-r5s", "rockchip,rk3568";
-+
-+ aliases {
-+ ethernet0 = &gmac0;
-+ };
-+
-+ gpio-leds {
-+ compatible = "gpio-leds";
-+ pinctrl-names = "default";
-+ pinctrl-0 = <&lan1_led_pin>, <&lan2_led_pin>, <&power_led_pin>, <&wan_led_pin>;
-+
-+ led-lan1 {
-+ color = ;
-+ function = LED_FUNCTION_LAN;
-+ function-enumerator = <1>;
-+ gpios = <&gpio3 RK_PD6 GPIO_ACTIVE_HIGH>;
-+ };
-+
-+ led-lan2 {
-+ color = ;
-+ function = LED_FUNCTION_LAN;
-+ function-enumerator = <2>;
-+ gpios = <&gpio3 RK_PD7 GPIO_ACTIVE_HIGH>;
-+ };
-+
-+ power_led: led-power {
-+ color = ;
-+ function = LED_FUNCTION_POWER;
-+ linux,default-trigger = "heartbeat";
-+ gpios = <&gpio4 RK_PD2 GPIO_ACTIVE_HIGH>;
-+ };
-+
-+ led-wan {
-+ color = ;
-+ function = LED_FUNCTION_WAN;
-+ gpios = <&gpio2 RK_PC1 GPIO_ACTIVE_HIGH>;
-+ };
-+ };
-+};
-+
-+&gmac0 {
-+ assigned-clocks = <&cru SCLK_GMAC0_RX_TX>, <&cru SCLK_GMAC0>;
-+ assigned-clock-parents = <&cru SCLK_GMAC0_RGMII_SPEED>, <&cru CLK_MAC0_2TOP>;
-+ assigned-clock-rates = <0>, <125000000>;
-+ clock_in_out = "output";
-+ phy-handle = <&rgmii_phy0>;
-+ phy-mode = "rgmii";
-+ pinctrl-names = "default";
-+ pinctrl-0 = <&gmac0_miim
-+ &gmac0_tx_bus2
-+ &gmac0_rx_bus2
-+ &gmac0_rgmii_clk
-+ &gmac0_rgmii_bus>;
-+ snps,reset-gpio = <&gpio0 RK_PC5 GPIO_ACTIVE_LOW>;
-+ snps,reset-active-low;
-+ /* Reset time is 15ms, 50ms for rtl8211f */
-+ snps,reset-delays-us = <0 15000 50000>;
-+ tx_delay = <0x3c>;
-+ rx_delay = <0x2f>;
-+ status = "okay";
-+};
-+
-+&mdio0 {
-+ rgmii_phy0: ethernet-phy@1 {
-+ compatible = "ethernet-phy-ieee802.3-c22";
-+ reg = <1>;
-+ pinctrl-0 = <ð_phy0_reset_pin>;
-+ pinctrl-names = "default";
-+ };
-+};
-+
-+&pcie2x1 {
-+ num-lanes = <1>;
-+ reset-gpios = <&gpio0 RK_PB6 GPIO_ACTIVE_HIGH>;
-+ status = "okay";
-+};
-+
-+&pcie30phy {
-+ data-lanes = <1 2>;
-+ status = "okay";
-+};
-+
-+&pcie3x1 {
-+ num-lanes = <1>;
-+ reset-gpios = <&gpio0 RK_PA0 GPIO_ACTIVE_HIGH>;
-+ vpcie3v3-supply = <&vcc3v3_pcie>;
-+ status = "okay";
-+};
-+
-+&pcie3x2 {
-+ num-lanes = <1>;
-+ num-ib-windows = <8>;
-+ num-ob-windows = <8>;
-+ reset-gpios = <&gpio2 RK_PD6 GPIO_ACTIVE_HIGH>;
-+ vpcie3v3-supply = <&vcc3v3_pcie>;
-+ status = "okay";
-+};
-+
-+&pinctrl {
-+ gmac0 {
-+ eth_phy0_reset_pin: eth-phy0-reset-pin {
-+ rockchip,pins = <0 RK_PC4 RK_FUNC_GPIO &pcfg_pull_up>;
-+ };
-+ };
-+
-+ gpio-leds {
-+ lan1_led_pin: lan1-led-pin {
-+ rockchip,pins = <3 RK_PD6 RK_FUNC_GPIO &pcfg_pull_none>;
-+ };
-+
-+ lan2_led_pin: lan2-led-pin {
-+ rockchip,pins = <3 RK_PD7 RK_FUNC_GPIO &pcfg_pull_none>;
-+ };
-+
-+ power_led_pin: power-led-pin {
-+ rockchip,pins = <4 RK_PD2 RK_FUNC_GPIO &pcfg_pull_none>;
-+ };
-+
-+ wan_led_pin: wan-led-pin {
-+ rockchip,pins = <2 RK_PC1 RK_FUNC_GPIO &pcfg_pull_none>;
-+ };
-+ };
-+};
---- /dev/null
-+++ b/arch/arm/dts/rk3568-nanopi-r5s.dtsi
-@@ -0,0 +1,590 @@
-+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
-+/*
-+ * Copyright (c) 2022 FriendlyElec Computer Tech. Co., Ltd.
-+ * (http://www.friendlyelec.com)
-+ *
-+ * Copyright (c) 2023 Tianling Shen
-+ */
-+
-+/dts-v1/;
-+#include
-+#include
-+#include
-+#include
-+#include
-+#include "rk3568.dtsi"
-+
-+/ {
-+ aliases {
-+ mmc0 = &sdmmc0;
-+ mmc1 = &sdhci;
-+ };
-+
-+ chosen: chosen {
-+ stdout-path = "serial2:1500000n8";
-+ };
-+
-+ hdmi-con {
-+ compatible = "hdmi-connector";
-+ type = "a";
-+
-+ port {
-+ hdmi_con_in: endpoint {
-+ remote-endpoint = <&hdmi_out_con>;
-+ };
-+ };
-+ };
-+
-+ vdd_usbc: vdd-usbc-regulator {
-+ compatible = "regulator-fixed";
-+ regulator-name = "vdd_usbc";
-+ regulator-always-on;
-+ regulator-boot-on;
-+ regulator-min-microvolt = <5000000>;
-+ regulator-max-microvolt = <5000000>;
-+ };
-+
-+ vcc3v3_sys: vcc3v3-sys-regulator {
-+ compatible = "regulator-fixed";
-+ regulator-name = "vcc3v3_sys";
-+ regulator-always-on;
-+ regulator-boot-on;
-+ regulator-min-microvolt = <3300000>;
-+ regulator-max-microvolt = <3300000>;
-+ vin-supply = <&vdd_usbc>;
-+ };
-+
-+ vcc5v0_sys: vcc5v0-sys-regulator {
-+ compatible = "regulator-fixed";
-+ regulator-name = "vcc5v0_sys";
-+ regulator-always-on;
-+ regulator-boot-on;
-+ regulator-min-microvolt = <5000000>;
-+ regulator-max-microvolt = <5000000>;
-+ vin-supply = <&vdd_usbc>;
-+ };
-+
-+ vcc3v3_pcie: vcc3v3-pcie-regulator {
-+ compatible = "regulator-fixed";
-+ regulator-name = "vcc3v3_pcie";
-+ regulator-min-microvolt = <3300000>;
-+ regulator-max-microvolt = <3300000>;
-+ enable-active-high;
-+ gpios = <&gpio0 RK_PD4 GPIO_ACTIVE_HIGH>;
-+ startup-delay-us = <200000>;
-+ vin-supply = <&vcc5v0_sys>;
-+ };
-+
-+ vcc5v0_usb: vcc5v0-usb-regulator {
-+ compatible = "regulator-fixed";
-+ regulator-name = "vcc5v0_usb";
-+ regulator-always-on;
-+ regulator-boot-on;
-+ regulator-min-microvolt = <5000000>;
-+ regulator-max-microvolt = <5000000>;
-+ vin-supply = <&vdd_usbc>;
-+ };
-+
-+ vcc5v0_usb_host: vcc5v0-usb-host-regulator {
-+ compatible = "regulator-fixed";
-+ enable-active-high;
-+ gpio = <&gpio0 RK_PA6 GPIO_ACTIVE_HIGH>;
-+ pinctrl-names = "default";
-+ pinctrl-0 = <&vcc5v0_usb_host_en>;
-+ regulator-name = "vcc5v0_usb_host";
-+ regulator-always-on;
-+ regulator-boot-on;
-+ regulator-min-microvolt = <5000000>;
-+ regulator-max-microvolt = <5000000>;
-+ vin-supply = <&vcc5v0_usb>;
-+ };
-+
-+ vcc5v0_usb_otg: vcc5v0-usb-otg-regulator {
-+ compatible = "regulator-fixed";
-+ enable-active-high;
-+ gpio = <&gpio0 RK_PA5 GPIO_ACTIVE_HIGH>;
-+ pinctrl-names = "default";
-+ pinctrl-0 = <&vcc5v0_usb_otg_en>;
-+ regulator-name = "vcc5v0_usb_otg";
-+ regulator-min-microvolt = <5000000>;
-+ regulator-max-microvolt = <5000000>;
-+ vin-supply = <&vcc5v0_usb>;
-+ };
-+
-+ pcie30_avdd0v9: pcie30-avdd0v9-regulator {
-+ compatible = "regulator-fixed";
-+ regulator-name = "pcie30_avdd0v9";
-+ regulator-always-on;
-+ regulator-boot-on;
-+ regulator-min-microvolt = <900000>;
-+ regulator-max-microvolt = <900000>;
-+ vin-supply = <&vcc3v3_sys>;
-+ };
-+
-+ pcie30_avdd1v8: pcie30-avdd1v8-regulator {
-+ compatible = "regulator-fixed";
-+ regulator-name = "pcie30_avdd1v8";
-+ regulator-always-on;
-+ regulator-boot-on;
-+ regulator-min-microvolt = <1800000>;
-+ regulator-max-microvolt = <1800000>;
-+ vin-supply = <&vcc3v3_sys>;
-+ };
-+};
-+
-+&combphy0 {
-+ status = "okay";
-+};
-+
-+&combphy1 {
-+ status = "okay";
-+};
-+
-+&combphy2 {
-+ status = "okay";
-+};
-+
-+&cpu0 {
-+ cpu-supply = <&vdd_cpu>;
-+};
-+
-+&cpu1 {
-+ cpu-supply = <&vdd_cpu>;
-+};
-+
-+&cpu2 {
-+ cpu-supply = <&vdd_cpu>;
-+};
-+
-+&cpu3 {
-+ cpu-supply = <&vdd_cpu>;
-+};
-+
-+&gpu {
-+ mali-supply = <&vdd_gpu>;
-+ status = "okay";
-+};
-+
-+&hdmi {
-+ avdd-0v9-supply = <&vdda0v9_image>;
-+ avdd-1v8-supply = <&vcca1v8_image>;
-+ status = "okay";
-+};
-+
-+&hdmi_in {
-+ hdmi_in_vp0: endpoint {
-+ remote-endpoint = <&vp0_out_hdmi>;
-+ };
-+};
-+
-+&hdmi_out {
-+ hdmi_out_con: endpoint {
-+ remote-endpoint = <&hdmi_con_in>;
-+ };
-+};
-+
-+&hdmi_sound {
-+ status = "okay";
-+};
-+
-+&i2c0 {
-+ status = "okay";
-+
-+ vdd_cpu: regulator@1c {
-+ compatible = "tcs,tcs4525";
-+ reg = <0x1c>;
-+ fcs,suspend-voltage-selector = <1>;
-+ regulator-name = "vdd_cpu";
-+ regulator-always-on;
-+ regulator-boot-on;
-+ regulator-min-microvolt = <800000>;
-+ regulator-max-microvolt = <1150000>;
-+ regulator-ramp-delay = <2300>;
-+ vin-supply = <&vcc5v0_sys>;
-+
-+ regulator-state-mem {
-+ regulator-off-in-suspend;
-+ };
-+ };
-+
-+ rk809: pmic@20 {
-+ compatible = "rockchip,rk809";
-+ reg = <0x20>;
-+ interrupt-parent = <&gpio0>;
-+ interrupts = ;
-+ #clock-cells = <1>;
-+ pinctrl-names = "default";
-+ pinctrl-0 = <&pmic_int>;
-+ rockchip,system-power-controller;
-+ vcc1-supply = <&vcc3v3_sys>;
-+ vcc2-supply = <&vcc3v3_sys>;
-+ vcc3-supply = <&vcc3v3_sys>;
-+ vcc4-supply = <&vcc3v3_sys>;
-+ vcc5-supply = <&vcc3v3_sys>;
-+ vcc6-supply = <&vcc3v3_sys>;
-+ vcc7-supply = <&vcc3v3_sys>;
-+ vcc8-supply = <&vcc3v3_sys>;
-+ vcc9-supply = <&vcc3v3_sys>;
-+ wakeup-source;
-+
-+ regulators {
-+ vdd_logic: DCDC_REG1 {
-+ regulator-name = "vdd_logic";
-+ regulator-always-on;
-+ regulator-boot-on;
-+ regulator-init-microvolt = <900000>;
-+ regulator-initial-mode = <0x2>;
-+ regulator-min-microvolt = <500000>;
-+ regulator-max-microvolt = <1350000>;
-+ regulator-ramp-delay = <6001>;
-+
-+ regulator-state-mem {
-+ regulator-off-in-suspend;
-+ };
-+ };
-+
-+ vdd_gpu: DCDC_REG2 {
-+ regulator-name = "vdd_gpu";
-+ regulator-always-on;
-+ regulator-init-microvolt = <900000>;
-+ regulator-initial-mode = <0x2>;
-+ regulator-min-microvolt = <500000>;
-+ regulator-max-microvolt = <1350000>;
-+ regulator-ramp-delay = <6001>;
-+
-+ regulator-state-mem {
-+ regulator-off-in-suspend;
-+ };
-+ };
-+
-+ vcc_ddr: DCDC_REG3 {
-+ regulator-name = "vcc_ddr";
-+ regulator-always-on;
-+ regulator-boot-on;
-+ regulator-initial-mode = <0x2>;
-+
-+ regulator-state-mem {
-+ regulator-on-in-suspend;
-+ };
-+ };
-+
-+ vdd_npu: DCDC_REG4 {
-+ regulator-name = "vdd_npu";
-+ regulator-init-microvolt = <900000>;
-+ regulator-initial-mode = <0x2>;
-+ regulator-min-microvolt = <500000>;
-+ regulator-max-microvolt = <1350000>;
-+ regulator-ramp-delay = <6001>;
-+
-+ regulator-state-mem {
-+ regulator-off-in-suspend;
-+ };
-+ };
-+
-+ vcc_1v8: DCDC_REG5 {
-+ regulator-name = "vcc_1v8";
-+ regulator-always-on;
-+ regulator-boot-on;
-+ regulator-min-microvolt = <1800000>;
-+ regulator-max-microvolt = <1800000>;
-+
-+ regulator-state-mem {
-+ regulator-off-in-suspend;
-+ };
-+ };
-+
-+ vdda0v9_image: LDO_REG1 {
-+ regulator-name = "vdda0v9_image";
-+ regulator-min-microvolt = <950000>;
-+ regulator-max-microvolt = <950000>;
-+
-+ regulator-state-mem {
-+ regulator-off-in-suspend;
-+ };
-+ };
-+
-+ vdda_0v9: LDO_REG2 {
-+ regulator-name = "vdda_0v9";
-+ regulator-always-on;
-+ regulator-boot-on;
-+ regulator-min-microvolt = <900000>;
-+ regulator-max-microvolt = <900000>;
-+
-+ regulator-state-mem {
-+ regulator-off-in-suspend;
-+ };
-+ };
-+
-+ vdda0v9_pmu: LDO_REG3 {
-+ regulator-name = "vdda0v9_pmu";
-+ regulator-always-on;
-+ regulator-boot-on;
-+ regulator-min-microvolt = <900000>;
-+ regulator-max-microvolt = <900000>;
-+
-+ regulator-state-mem {
-+ regulator-on-in-suspend;
-+ regulator-suspend-microvolt = <900000>;
-+ };
-+ };
-+
-+ vccio_acodec: LDO_REG4 {
-+ regulator-name = "vccio_acodec";
-+ regulator-min-microvolt = <3300000>;
-+ regulator-max-microvolt = <3300000>;
-+
-+ regulator-state-mem {
-+ regulator-off-in-suspend;
-+ };
-+ };
-+
-+ vccio_sd: LDO_REG5 {
-+ regulator-name = "vccio_sd";
-+ regulator-min-microvolt = <1800000>;
-+ regulator-max-microvolt = <3300000>;
-+
-+ regulator-state-mem {
-+ regulator-off-in-suspend;
-+ };
-+ };
-+
-+ vcc3v3_pmu: LDO_REG6 {
-+ regulator-name = "vcc3v3_pmu";
-+ regulator-always-on;
-+ regulator-boot-on;
-+ regulator-min-microvolt = <3300000>;
-+ regulator-max-microvolt = <3300000>;
-+
-+ regulator-state-mem {
-+ regulator-on-in-suspend;
-+ regulator-suspend-microvolt = <3300000>;
-+ };
-+ };
-+
-+ vcca_1v8: LDO_REG7 {
-+ regulator-name = "vcca_1v8";
-+ regulator-always-on;
-+ regulator-boot-on;
-+ regulator-min-microvolt = <1800000>;
-+ regulator-max-microvolt = <1800000>;
-+
-+ regulator-state-mem {
-+ regulator-off-in-suspend;
-+ };
-+ };
-+
-+ vcca1v8_pmu: LDO_REG8 {
-+ regulator-name = "vcca1v8_pmu";
-+ regulator-always-on;
-+ regulator-boot-on;
-+ regulator-min-microvolt = <1800000>;
-+ regulator-max-microvolt = <1800000>;
-+
-+ regulator-state-mem {
-+ regulator-on-in-suspend;
-+ regulator-suspend-microvolt = <1800000>;
-+ };
-+ };
-+
-+ vcca1v8_image: LDO_REG9 {
-+ regulator-name = "vcca1v8_image";
-+ regulator-min-microvolt = <1800000>;
-+ regulator-max-microvolt = <1800000>;
-+
-+ regulator-state-mem {
-+ regulator-off-in-suspend;
-+ };
-+ };
-+
-+ vcc_3v3: SWITCH_REG1 {
-+ regulator-name = "vcc_3v3";
-+ regulator-always-on;
-+ regulator-boot-on;
-+
-+ regulator-state-mem {
-+ regulator-off-in-suspend;
-+ };
-+ };
-+
-+ vcc3v3_sd: SWITCH_REG2 {
-+ regulator-name = "vcc3v3_sd";
-+ regulator-always-on;
-+ regulator-boot-on;
-+
-+ regulator-state-mem {
-+ regulator-off-in-suspend;
-+ };
-+ };
-+ };
-+
-+ };
-+};
-+
-+&i2c5 {
-+ status = "okay";
-+
-+ hym8563: rtc@51 {
-+ compatible = "haoyu,hym8563";
-+ reg = <0x51>;
-+ interrupt-parent = <&gpio0>;
-+ interrupts = ;
-+ #clock-cells = <0>;
-+ clock-output-names = "rtcic_32kout";
-+ pinctrl-names = "default";
-+ pinctrl-0 = <&hym8563_int>;
-+ wakeup-source;
-+ };
-+};
-+
-+&i2s0_8ch {
-+ status = "okay";
-+};
-+
-+&pcie30phy {
-+ data-lanes = <1 2>;
-+ status = "okay";
-+};
-+
-+&pinctrl {
-+ hym8563 {
-+ hym8563_int: hym8563-int {
-+ rockchip,pins = <0 RK_PD3 RK_FUNC_GPIO &pcfg_pull_up>;
-+ };
-+ };
-+
-+ pmic {
-+ pmic_int: pmic-int {
-+ rockchip,pins = <0 RK_PA3 RK_FUNC_GPIO &pcfg_pull_up>;
-+ };
-+ };
-+
-+ usb {
-+ vcc5v0_usb_host_en: vcc5v0-usb-host-en {
-+ rockchip,pins = <0 RK_PA6 RK_FUNC_GPIO &pcfg_pull_none>;
-+ };
-+
-+ vcc5v0_usb_otg_en: vcc5v0-usb-otg-en {
-+ rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_none>;
-+ };
-+ };
-+};
-+
-+&pmu_io_domains {
-+ pmuio1-supply = <&vcc3v3_pmu>;
-+ pmuio2-supply = <&vcc3v3_pmu>;
-+ vccio1-supply = <&vccio_acodec>;
-+ vccio3-supply = <&vccio_sd>;
-+ vccio4-supply = <&vcc_1v8>;
-+ vccio5-supply = <&vcc_3v3>;
-+ vccio6-supply = <&vcc_1v8>;
-+ vccio7-supply = <&vcc_3v3>;
-+ status = "okay";
-+};
-+
-+&saradc {
-+ vref-supply = <&vcca_1v8>;
-+ status = "okay";
-+};
-+
-+&sdhci {
-+ bus-width = <8>;
-+ max-frequency = <200000000>;
-+ non-removable;
-+ pinctrl-names = "default";
-+ pinctrl-0 = <&emmc_bus8 &emmc_clk &emmc_cmd>;
-+ status = "okay";
-+};
-+
-+&sdmmc0 {
-+ max-frequency = <150000000>;
-+ no-sdio;
-+ no-mmc;
-+ bus-width = <4>;
-+ cap-mmc-highspeed;
-+ cap-sd-highspeed;
-+ disable-wp;
-+ vmmc-supply = <&vcc3v3_sd>;
-+ vqmmc-supply = <&vccio_sd>;
-+ pinctrl-names = "default";
-+ pinctrl-0 = <&sdmmc0_bus4 &sdmmc0_clk &sdmmc0_cmd &sdmmc0_det>;
-+ status = "okay";
-+};
-+
-+&tsadc {
-+ rockchip,hw-tshut-mode = <1>;
-+ rockchip,hw-tshut-polarity = <0>;
-+ status = "okay";
-+};
-+
-+&uart2 {
-+ status = "okay";
-+};
-+
-+&usb_host0_ehci {
-+ status = "okay";
-+};
-+
-+&usb_host0_ohci {
-+ status = "okay";
-+};
-+
-+&usb_host0_xhci {
-+ extcon = <&usb2phy0>;
-+ dr_mode = "host";
-+ status = "okay";
-+};
-+
-+&usb_host1_ehci {
-+ status = "okay";
-+};
-+
-+&usb_host1_ohci {
-+ status = "okay";
-+};
-+
-+&usb_host1_xhci {
-+ status = "okay";
-+};
-+
-+&usb2phy0 {
-+ status = "okay";
-+};
-+
-+&usb2phy0_host {
-+ phy-supply = <&vcc5v0_usb_host>;
-+ status = "okay";
-+};
-+
-+&usb2phy0_otg {
-+ status = "okay";
-+};
-+
-+&usb2phy1 {
-+ status = "okay";
-+};
-+
-+&usb2phy1_host {
-+ phy-supply = <&vcc5v0_usb_otg>;
-+ status = "okay";
-+};
-+
-+&usb2phy1_otg {
-+ status = "okay";
-+};
-+
-+&vop {
-+ assigned-clocks = <&cru DCLK_VOP0>, <&cru DCLK_VOP1>;
-+ assigned-clock-parents = <&pmucru PLL_HPLL>, <&cru PLL_VPLL>;
-+ status = "okay";
-+};
-+
-+&vop_mmu {
-+ status = "okay";
-+};
-+
-+&vp0 {
-+ vp0_out_hdmi: endpoint@ROCKCHIP_VOP2_EP_HDMI0 {
-+ reg = ;
-+ remote-endpoint = <&hdmi_in_vp0>;
-+ };
-+};
---- a/board/rockchip/evb_rk3568/MAINTAINERS
-+++ b/board/rockchip/evb_rk3568/MAINTAINERS
-@@ -7,6 +7,14 @@ F: configs/evb-rk3568_defconfig
- F: arch/arm/dts/rk3568-evb-boot.dtsi
- F: arch/arm/dts/rk3568-evb.dts
-
-+NANOPI-R5S
-+M: Tianling Shen
-+S: Maintained
-+F: configs/nanopi-r5s-rk3568_defconfig
-+F: arch/arm/dts/rk3568-nanopi-r5s.dts
-+F: arch/arm/dts/rk3568-nanopi-r5s.dtsi
-+F: arch/arm/dts/rk3568-nanopi-r5s-u-boot.dtsi
-+
- RADXA-CM3
- M: Jagan Teki
- S: Maintained
---- /dev/null
-+++ b/configs/nanopi-r5s-rk3568_defconfig
-@@ -0,0 +1,85 @@
-+CONFIG_ARM=y
-+CONFIG_SKIP_LOWLEVEL_INIT=y
-+CONFIG_COUNTER_FREQUENCY=24000000
-+CONFIG_ARCH_ROCKCHIP=y
-+CONFIG_TEXT_BASE=0x00a00000
-+CONFIG_SPL_LIBCOMMON_SUPPORT=y
-+CONFIG_SPL_LIBGENERIC_SUPPORT=y
-+CONFIG_NR_DRAM_BANKS=2
-+CONFIG_HAS_CUSTOM_SYS_INIT_SP_ADDR=y
-+CONFIG_CUSTOM_SYS_INIT_SP_ADDR=0xc00000
-+CONFIG_DEFAULT_DEVICE_TREE="rk3568-nanopi-r5s"
-+CONFIG_ROCKCHIP_RK3568=y
-+CONFIG_SPL_ROCKCHIP_COMMON_BOARD=y
-+CONFIG_SPL_SERIAL=y
-+CONFIG_SPL_STACK_R_ADDR=0x600000
-+CONFIG_TARGET_EVB_RK3568=y
-+CONFIG_SPL_STACK=0x400000
-+CONFIG_DEBUG_UART_BASE=0xFE660000
-+CONFIG_DEBUG_UART_CLOCK=24000000
-+CONFIG_SYS_LOAD_ADDR=0xc00800
-+CONFIG_DEBUG_UART=y
-+CONFIG_FIT=y
-+CONFIG_FIT_VERBOSE=y
-+CONFIG_SPL_LOAD_FIT=y
-+CONFIG_DEFAULT_FDT_FILE="rockchip/rk3568-nanopi-r5s.dtb"
-+# CONFIG_DISPLAY_CPUINFO is not set
-+CONFIG_DISPLAY_BOARDINFO_LATE=y
-+CONFIG_SPL_MAX_SIZE=0x40000
-+CONFIG_SPL_PAD_TO=0x7f8000
-+CONFIG_SPL_HAS_BSS_LINKER_SECTION=y
-+CONFIG_SPL_BSS_START_ADDR=0x4000000
-+CONFIG_SPL_BSS_MAX_SIZE=0x4000
-+# CONFIG_SPL_RAW_IMAGE_SUPPORT is not set
-+# CONFIG_SPL_SHARES_INIT_SP_ADDR is not set
-+CONFIG_SPL_STACK_R=y
-+CONFIG_SPL_ATF=y
-+CONFIG_CMD_GPIO=y
-+CONFIG_CMD_GPT=y
-+CONFIG_CMD_I2C=y
-+CONFIG_CMD_MMC=y
-+CONFIG_CMD_USB=y
-+CONFIG_CMD_PMIC=y
-+CONFIG_CMD_REGULATOR=y
-+# CONFIG_SPL_DOS_PARTITION is not set
-+CONFIG_SPL_OF_CONTROL=y
-+CONFIG_OF_LIVE=y
-+CONFIG_OF_SPL_REMOVE_PROPS="pinctrl-0 pinctrl-names clock-names interrupt-parent assigned-clocks assigned-clock-rates assigned-clock-parents"
-+CONFIG_SPL_DM_WARN=y
-+CONFIG_SPL_REGMAP=y
-+CONFIG_SPL_SYSCON=y
-+CONFIG_SPL_CLK=y
-+CONFIG_ROCKCHIP_GPIO=y
-+CONFIG_SYS_I2C_ROCKCHIP=y
-+CONFIG_MISC=y
-+CONFIG_SUPPORT_EMMC_RPMB=y
-+CONFIG_MMC_DW=y
-+CONFIG_MMC_DW_ROCKCHIP=y
-+CONFIG_MMC_SDHCI=y
-+CONFIG_MMC_SDHCI_SDMA=y
-+CONFIG_MMC_SDHCI_ROCKCHIP=y
-+CONFIG_ETH_DESIGNWARE=y
-+CONFIG_GMAC_ROCKCHIP=y
-+CONFIG_PHY_ROCKCHIP_INNO_USB2=y
-+CONFIG_PHY_ROCKCHIP_NANENG_COMBOPHY=y
-+CONFIG_POWER_DOMAIN=y
-+CONFIG_DM_PMIC=y
-+CONFIG_PMIC_RK8XX=y
-+CONFIG_SPL_DM_REGULATOR_FIXED=y
-+CONFIG_REGULATOR_RK8XX=y
-+CONFIG_PWM_ROCKCHIP=y
-+CONFIG_SPL_RAM=y
-+CONFIG_BAUDRATE=1500000
-+CONFIG_DEBUG_UART_SHIFT=2
-+CONFIG_SYS_NS16550_MEM32=y
-+CONFIG_SYSRESET=y
-+CONFIG_SYSRESET_PSCI=y
-+CONFIG_USB=y
-+CONFIG_USB_XHCI_HCD=y
-+CONFIG_USB_XHCI_DWC3=y
-+CONFIG_USB_EHCI_HCD=y
-+CONFIG_USB_EHCI_GENERIC=y
-+CONFIG_USB_OHCI_HCD=y
-+CONFIG_USB_OHCI_GENERIC=y
-+CONFIG_USB_DWC3=y
-+CONFIG_ERRNO_STR=y
diff --git a/package/boot/uboot-rockchip/patches/104-rockchip-rk3568-Add-support-for-FriendlyARM-NanoPi-R.patch b/package/boot/uboot-rockchip/patches/104-rockchip-rk3568-Add-support-for-FriendlyARM-NanoPi-R.patch
deleted file mode 100644
index d1a5197e7d..0000000000
--- a/package/boot/uboot-rockchip/patches/104-rockchip-rk3568-Add-support-for-FriendlyARM-NanoPi-R.patch
+++ /dev/null
@@ -1,269 +0,0 @@
-From 41538742491c46100f570680c02fbdd0d2b6b880 Mon Sep 17 00:00:00 2001
-From: Tianling Shen
-Date: Tue, 30 May 2023 15:00:33 +0800
-Subject: [PATCH] rockchip: rk3568: Add support for FriendlyARM NanoPi R5C
-
-FriendlyARM NanoPi R5C is an open-sourced mini IoT gateway device.
-
-Specification:
-- Rockchip RK3568
-- 1/4GB LPDDR4X RAM
-- 8/32GB eMMC
-- SD card slot
-- M.2 Connector
-- 2x USB 3.0 Port
-- 2x 2500 Base-T (PCIe, r8125)
-- HDMI 2.0
-- MIPI DSI/CSI
-- USB Type C 5V
-
-The device tree is taken from kernel v6.4-rc1.
-
-Reviewed-by: Kever Yang
-Signed-off-by: Tianling Shen
----
- arch/arm/dts/Makefile | 1 +
- arch/arm/dts/rk3568-nanopi-r5c-u-boot.dtsi | 3 +
- arch/arm/dts/rk3568-nanopi-r5c.dts | 112 +++++++++++++++++++++
- board/rockchip/evb_rk3568/MAINTAINERS | 7 ++
- configs/nanopi-r5c-rk3568_defconfig | 85 ++++++++++++++++
- 5 files changed, 208 insertions(+)
- create mode 100644 arch/arm/dts/rk3568-nanopi-r5c-u-boot.dtsi
- create mode 100644 arch/arm/dts/rk3568-nanopi-r5c.dts
- create mode 100644 configs/nanopi-r5c-rk3568_defconfig
-
---- a/arch/arm/dts/Makefile
-+++ b/arch/arm/dts/Makefile
-@@ -171,6 +171,7 @@ dtb-$(CONFIG_ROCKCHIP_RK3568) += \
- rk3566-anbernic-rgxx3.dtb \
- rk3566-radxa-cm3-io.dtb \
- rk3568-evb.dtb \
-+ rk3568-nanopi-r5c.dtb \
- rk3568-nanopi-r5s.dtb \
- rk3568-rock-3a.dtb
-
---- /dev/null
-+++ b/arch/arm/dts/rk3568-nanopi-r5c-u-boot.dtsi
-@@ -0,0 +1,3 @@
-+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
-+
-+#include "rk3568-nanopi-r5s-u-boot.dtsi"
---- /dev/null
-+++ b/arch/arm/dts/rk3568-nanopi-r5c.dts
-@@ -0,0 +1,112 @@
-+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
-+/*
-+ * Copyright (c) 2022 FriendlyElec Computer Tech. Co., Ltd.
-+ * (http://www.friendlyelec.com)
-+ *
-+ * Copyright (c) 2023 Tianling Shen
-+ */
-+
-+/dts-v1/;
-+#include "rk3568-nanopi-r5s.dtsi"
-+
-+/ {
-+ model = "FriendlyElec NanoPi R5C";
-+ compatible = "friendlyarm,nanopi-r5c", "rockchip,rk3568";
-+
-+ gpio-keys {
-+ compatible = "gpio-keys";
-+ pinctrl-names = "default";
-+ pinctrl-0 = <&reset_button_pin>;
-+
-+ button-reset {
-+ debounce-interval = <50>;
-+ gpios = <&gpio0 RK_PB7 GPIO_ACTIVE_LOW>;
-+ label = "reset";
-+ linux,code = ;
-+ };
-+ };
-+
-+ gpio-leds {
-+ compatible = "gpio-leds";
-+ pinctrl-names = "default";
-+ pinctrl-0 = <&lan_led_pin>, <&power_led_pin>, <&wan_led_pin>, <&wlan_led_pin>;
-+
-+ led-lan {
-+ color = ;
-+ function = LED_FUNCTION_LAN;
-+ gpios = <&gpio3 RK_PA3 GPIO_ACTIVE_HIGH>;
-+ };
-+
-+ power_led: led-power {
-+ color = ;
-+ function = LED_FUNCTION_POWER;
-+ linux,default-trigger = "heartbeat";
-+ gpios = <&gpio3 RK_PA2 GPIO_ACTIVE_HIGH>;
-+ };
-+
-+ led-wan {
-+ color = ;
-+ function = LED_FUNCTION_WAN;
-+ gpios = <&gpio3 RK_PA4 GPIO_ACTIVE_HIGH>;
-+ };
-+
-+ led-wlan {
-+ color = ;
-+ function = LED_FUNCTION_WLAN;
-+ gpios = <&gpio3 RK_PA5 GPIO_ACTIVE_HIGH>;
-+ };
-+ };
-+};
-+
-+&pcie2x1 {
-+ pinctrl-names = "default";
-+ pinctrl-0 = <&pcie20_reset_pin>;
-+ reset-gpios = <&gpio3 RK_PC1 GPIO_ACTIVE_HIGH>;
-+ status = "okay";
-+};
-+
-+&pcie3x1 {
-+ num-lanes = <1>;
-+ reset-gpios = <&gpio0 RK_PA0 GPIO_ACTIVE_HIGH>;
-+ vpcie3v3-supply = <&vcc3v3_pcie>;
-+ status = "okay";
-+};
-+
-+&pcie3x2 {
-+ num-lanes = <1>;
-+ reset-gpios = <&gpio0 RK_PB6 GPIO_ACTIVE_HIGH>;
-+ vpcie3v3-supply = <&vcc3v3_pcie>;
-+ status = "okay";
-+};
-+
-+&pinctrl {
-+ gpio-leds {
-+ lan_led_pin: lan-led-pin {
-+ rockchip,pins = <3 RK_PA3 RK_FUNC_GPIO &pcfg_pull_none>;
-+ };
-+
-+ power_led_pin: power-led-pin {
-+ rockchip,pins = <3 RK_PA2 RK_FUNC_GPIO &pcfg_pull_none>;
-+ };
-+
-+ wan_led_pin: wan-led-pin {
-+ rockchip,pins = <3 RK_PA4 RK_FUNC_GPIO &pcfg_pull_none>;
-+ };
-+
-+ wlan_led_pin: wlan-led-pin {
-+ rockchip,pins = <3 RK_PA5 RK_FUNC_GPIO &pcfg_pull_none>;
-+ };
-+ };
-+
-+ pcie {
-+ pcie20_reset_pin: pcie20-reset-pin {
-+ rockchip,pins = <2 RK_PD2 RK_FUNC_GPIO &pcfg_pull_up>;
-+ };
-+ };
-+
-+ rockchip-key {
-+ reset_button_pin: reset-button-pin {
-+ rockchip,pins = <4 RK_PA0 RK_FUNC_GPIO &pcfg_pull_up>;
-+ };
-+ };
-+};
---- a/board/rockchip/evb_rk3568/MAINTAINERS
-+++ b/board/rockchip/evb_rk3568/MAINTAINERS
-@@ -7,6 +7,13 @@ F: configs/evb-rk3568_defconfig
- F: arch/arm/dts/rk3568-evb-boot.dtsi
- F: arch/arm/dts/rk3568-evb.dts
-
-+NANOPI-R5C
-+M: Tianling Shen
-+S: Maintained
-+F: configs/nanopi-r5c-rk3568_defconfig
-+F: arch/arm/dts/rk3568-nanopi-r5c.dts
-+F: arch/arm/dts/rk3568-nanopi-r5c-u-boot.dtsi
-+
- NANOPI-R5S
- M: Tianling Shen
- S: Maintained
---- /dev/null
-+++ b/configs/nanopi-r5c-rk3568_defconfig
-@@ -0,0 +1,85 @@
-+CONFIG_ARM=y
-+CONFIG_SKIP_LOWLEVEL_INIT=y
-+CONFIG_COUNTER_FREQUENCY=24000000
-+CONFIG_ARCH_ROCKCHIP=y
-+CONFIG_TEXT_BASE=0x00a00000
-+CONFIG_SPL_LIBCOMMON_SUPPORT=y
-+CONFIG_SPL_LIBGENERIC_SUPPORT=y
-+CONFIG_NR_DRAM_BANKS=2
-+CONFIG_HAS_CUSTOM_SYS_INIT_SP_ADDR=y
-+CONFIG_CUSTOM_SYS_INIT_SP_ADDR=0xc00000
-+CONFIG_DEFAULT_DEVICE_TREE="rk3568-nanopi-r5c"
-+CONFIG_ROCKCHIP_RK3568=y
-+CONFIG_SPL_ROCKCHIP_COMMON_BOARD=y
-+CONFIG_SPL_SERIAL=y
-+CONFIG_SPL_STACK_R_ADDR=0x600000
-+CONFIG_TARGET_EVB_RK3568=y
-+CONFIG_SPL_STACK=0x400000
-+CONFIG_DEBUG_UART_BASE=0xFE660000
-+CONFIG_DEBUG_UART_CLOCK=24000000
-+CONFIG_SYS_LOAD_ADDR=0xc00800
-+CONFIG_DEBUG_UART=y
-+CONFIG_FIT=y
-+CONFIG_FIT_VERBOSE=y
-+CONFIG_SPL_LOAD_FIT=y
-+CONFIG_DEFAULT_FDT_FILE="rockchip/rk3568-nanopi-r5c.dtb"
-+# CONFIG_DISPLAY_CPUINFO is not set
-+CONFIG_DISPLAY_BOARDINFO_LATE=y
-+CONFIG_SPL_MAX_SIZE=0x40000
-+CONFIG_SPL_PAD_TO=0x7f8000
-+CONFIG_SPL_HAS_BSS_LINKER_SECTION=y
-+CONFIG_SPL_BSS_START_ADDR=0x4000000
-+CONFIG_SPL_BSS_MAX_SIZE=0x4000
-+# CONFIG_SPL_RAW_IMAGE_SUPPORT is not set
-+# CONFIG_SPL_SHARES_INIT_SP_ADDR is not set
-+CONFIG_SPL_STACK_R=y
-+CONFIG_SPL_ATF=y
-+CONFIG_CMD_GPIO=y
-+CONFIG_CMD_GPT=y
-+CONFIG_CMD_I2C=y
-+CONFIG_CMD_MMC=y
-+CONFIG_CMD_USB=y
-+CONFIG_CMD_PMIC=y
-+CONFIG_CMD_REGULATOR=y
-+# CONFIG_SPL_DOS_PARTITION is not set
-+CONFIG_SPL_OF_CONTROL=y
-+CONFIG_OF_LIVE=y
-+CONFIG_OF_SPL_REMOVE_PROPS="pinctrl-0 pinctrl-names clock-names interrupt-parent assigned-clocks assigned-clock-rates assigned-clock-parents"
-+CONFIG_SPL_DM_WARN=y
-+CONFIG_SPL_REGMAP=y
-+CONFIG_SPL_SYSCON=y
-+CONFIG_SPL_CLK=y
-+CONFIG_ROCKCHIP_GPIO=y
-+CONFIG_SYS_I2C_ROCKCHIP=y
-+CONFIG_MISC=y
-+CONFIG_SUPPORT_EMMC_RPMB=y
-+CONFIG_MMC_DW=y
-+CONFIG_MMC_DW_ROCKCHIP=y
-+CONFIG_MMC_SDHCI=y
-+CONFIG_MMC_SDHCI_SDMA=y
-+CONFIG_MMC_SDHCI_ROCKCHIP=y
-+CONFIG_ETH_DESIGNWARE=y
-+CONFIG_GMAC_ROCKCHIP=y
-+CONFIG_PHY_ROCKCHIP_INNO_USB2=y
-+CONFIG_PHY_ROCKCHIP_NANENG_COMBOPHY=y
-+CONFIG_POWER_DOMAIN=y
-+CONFIG_DM_PMIC=y
-+CONFIG_PMIC_RK8XX=y
-+CONFIG_SPL_DM_REGULATOR_FIXED=y
-+CONFIG_REGULATOR_RK8XX=y
-+CONFIG_PWM_ROCKCHIP=y
-+CONFIG_SPL_RAM=y
-+CONFIG_BAUDRATE=1500000
-+CONFIG_DEBUG_UART_SHIFT=2
-+CONFIG_SYS_NS16550_MEM32=y
-+CONFIG_SYSRESET=y
-+CONFIG_SYSRESET_PSCI=y
-+CONFIG_USB=y
-+CONFIG_USB_XHCI_HCD=y
-+CONFIG_USB_XHCI_DWC3=y
-+CONFIG_USB_EHCI_HCD=y
-+CONFIG_USB_EHCI_GENERIC=y
-+CONFIG_USB_OHCI_HCD=y
-+CONFIG_USB_OHCI_GENERIC=y
-+CONFIG_USB_DWC3=y
-+CONFIG_ERRNO_STR=y
diff --git a/package/boot/uboot-rockchip/patches/105-nanopc-t4-fix-memory-unstability.patch b/package/boot/uboot-rockchip/patches/105-nanopc-t4-fix-memory-unstability.patch
index 7d2161ae42..b467f48f72 100644
--- a/package/boot/uboot-rockchip/patches/105-nanopc-t4-fix-memory-unstability.patch
+++ b/package/boot/uboot-rockchip/patches/105-nanopc-t4-fix-memory-unstability.patch
@@ -12,8 +12,6 @@ Signed-off-by: Lu jicong
arch/arm/dts/rk3399-nanopc-t4-u-boot.dtsi | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
-diff --git a/arch/arm/dts/rk3399-nanopc-t4-u-boot.dtsi b/arch/arm/dts/rk3399-nanopc-t4-u-boot.dtsi
-index 17201bcf41..8b6c9059ab 100644
--- a/arch/arm/dts/rk3399-nanopc-t4-u-boot.dtsi
+++ b/arch/arm/dts/rk3399-nanopc-t4-u-boot.dtsi
@@ -4,4 +4,4 @@
diff --git a/package/devel/gdb/Makefile b/package/devel/gdb/Makefile
index 3efbce28f4..cf897b79f2 100644
--- a/package/devel/gdb/Makefile
+++ b/package/devel/gdb/Makefile
@@ -8,12 +8,12 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=gdb
-PKG_VERSION:=13.2
-PKG_RELEASE:=2
+PKG_VERSION:=14.1
+PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
PKG_SOURCE_URL:=@GNU/gdb
-PKG_HASH:=fd5bebb7be1833abdb6e023c2f498a354498281df9d05523d8915babeb893f0a
+PKG_HASH:=d66df51276143451fcbff464cc8723d68f1e9df45a6a2d5635a54e71643edb80
PKG_BUILD_PARALLEL:=1
PKG_INSTALL:=1
@@ -33,7 +33,7 @@ endef
define Package/gdb
$(call Package/gdb/Default)
TITLE:=GNU Debugger
- DEPENDS+=+libreadline +libncurses +zlib +libgmp
+ DEPENDS+=+libreadline +libncurses +zlib +libgmp +libmpfr
endef
define Package/gdb/description
@@ -64,8 +64,6 @@ CONFIGURE_ARGS+= \
--disable-sim \
--disable-werror \
--disable-source-highlight \
- --without-mpc \
- --without-mpfr \
--without-isl \
--without-xxhash \
--with-libgmp-prefix=$(STAGING_DIR)/usr
diff --git a/package/devel/gdb/patches/110-shared_libgcc.patch b/package/devel/gdb/patches/110-shared_libgcc.patch
index 44d4ffa77f..1a02ad1160 100644
--- a/package/devel/gdb/patches/110-shared_libgcc.patch
+++ b/package/devel/gdb/patches/110-shared_libgcc.patch
@@ -1,6 +1,6 @@
--- a/configure.ac
+++ b/configure.ac
-@@ -1435,13 +1435,13 @@ if test -z "$LD"; then
+@@ -1400,13 +1400,13 @@ if test -z "$LD"; then
fi
fi
@@ -17,7 +17,7 @@
AC_LANG_PUSH(C++)
AC_LINK_IFELSE([AC_LANG_SOURCE([
#if (__GNUC__ < 4) || (__GNUC__ == 4 && __GNUC_MINOR__ < 5)
-@@ -1838,7 +1838,7 @@ AC_ARG_WITH(stage1-ldflags,
+@@ -1836,7 +1836,7 @@ AC_ARG_WITH(stage1-ldflags,
# trust that they are doing what they want.
if test "$with_static_standard_libraries" = yes -a "$stage1_libs" = "" \
-a "$have_static_libs" = yes; then
@@ -26,7 +26,7 @@
fi])
AC_SUBST(stage1_ldflags)
-@@ -1867,7 +1867,7 @@ AC_ARG_WITH(boot-ldflags,
+@@ -1865,7 +1865,7 @@ AC_ARG_WITH(boot-ldflags,
# statically. But if the user explicitly specified the libraries to
# use, trust that they are doing what they want.
if test "$poststage1_libs" = ""; then
@@ -37,7 +37,7 @@
--- a/configure
+++ b/configure
-@@ -5442,14 +5442,14 @@ if test -z "$LD"; then
+@@ -5413,14 +5413,14 @@ if test -z "$LD"; then
fi
fi
@@ -56,7 +56,7 @@
ac_ext=cpp
ac_cpp='$CXXCPP $CPPFLAGS'
ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-@@ -8440,7 +8440,7 @@ else
+@@ -8464,7 +8464,7 @@ else
# trust that they are doing what they want.
if test "$with_static_standard_libraries" = yes -a "$stage1_libs" = "" \
-a "$have_static_libs" = yes; then
@@ -65,7 +65,7 @@
fi
fi
-@@ -8476,7 +8476,7 @@ else
+@@ -8500,7 +8500,7 @@ else
# statically. But if the user explicitly specified the libraries to
# use, trust that they are doing what they want.
if test "$poststage1_libs" = ""; then
diff --git a/package/devel/gdb/patches/130-gdb-ctrl-c.patch b/package/devel/gdb/patches/130-gdb-ctrl-c.patch
index 8650ce844c..5272b7e969 100644
--- a/package/devel/gdb/patches/130-gdb-ctrl-c.patch
+++ b/package/devel/gdb/patches/130-gdb-ctrl-c.patch
@@ -24,7 +24,7 @@ Signed-off-by: Khem Raj
--- a/gdbserver/linux-low.cc
+++ b/gdbserver/linux-low.cc
-@@ -5467,7 +5467,7 @@ linux_process_target::request_interrupt
+@@ -5481,7 +5481,7 @@ linux_process_target::request_interrupt
{
/* Send a SIGINT to the process group. This acts just like the user
typed a ^C on the controlling terminal. */
diff --git a/package/firmware/ipq-wifi/Makefile b/package/firmware/ipq-wifi/Makefile
index ef1a456403..5806654ecf 100644
--- a/package/firmware/ipq-wifi/Makefile
+++ b/package/firmware/ipq-wifi/Makefile
@@ -6,9 +6,9 @@ PKG_RELEASE:=1
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL=$(PROJECT_GIT)/project/firmware/qca-wireless.git
-PKG_SOURCE_DATE:=2023-11-10
-PKG_SOURCE_VERSION:=0c2e810e71ed0a59fb00246c7fa2c236ff67a0ee
-PKG_MIRROR_HASH:=fc6016540bd2c67484952d0e4432d740f0e022d9b688e851bb6321def8d36844
+PKG_SOURCE_DATE:=2024-01-06
+PKG_SOURCE_VERSION:=71f45cff8944405b7cc2bf5c19df2bd8fe7f2421
+PKG_MIRROR_HASH:=90c3c1659c54cdb4685d0a71633746c1000230e459801eb8ce12c805a994cc37
PKG_FLAGS:=nonshared
@@ -34,6 +34,7 @@ ALLWIFIBOARDS:= \
dynalink_dl-wrx36 \
edgecore_eap102 \
edimax_cax1800 \
+ linksys_mx4200 \
netgear_rax120v2 \
netgear_wax218 \
netgear_wax620 \
@@ -83,7 +84,7 @@ define ipq-wifi-install-one
$(call ipq-wifi-install-one-to,$(1),$(2),QCA9984/hw1.0),\
$(if $(filter $(suffix $(1)),.QCA99X0 .qca99x0),\
$(call ipq-wifi-install-one-to,$(1),$(2),QCA99X0/hw2.0),\
- $(if $(filter $(suffix $(1)),.IPQ8074 .ipq8074),\
+ $(if $(filter $(suffix $(1)),.IPQ8074 .ipq8074 .ipq8174),\
$(call ipq-wifi-install-ath11-one-to,$(1),$(2),IPQ8074/hw2.0),\
$(if $(filter $(suffix $(1)),.QCN9074 .qcn9074),\
$(call ipq-wifi-install-ath11-one-to,$(1),$(2),QCN9074/hw1.0),\
@@ -144,6 +145,7 @@ $(eval $(call generate-ipq-wifi-package,compex_wpq873,Compex WPQ-873))
$(eval $(call generate-ipq-wifi-package,dynalink_dl-wrx36,Dynalink DL-WRX36))
$(eval $(call generate-ipq-wifi-package,edgecore_eap102,Edgecore EAP102))
$(eval $(call generate-ipq-wifi-package,edimax_cax1800,Edimax CAX1800))
+$(eval $(call generate-ipq-wifi-package,linksys_mx4200,Linksys MX4200))
$(eval $(call generate-ipq-wifi-package,netgear_rax120v2,Netgear RAX120v2))
$(eval $(call generate-ipq-wifi-package,netgear_wax218,Netgear WAX218))
$(eval $(call generate-ipq-wifi-package,netgear_wax620,Netgear WAX620))
diff --git a/package/firmware/linux-firmware/Makefile b/package/firmware/linux-firmware/Makefile
index 79341c30cb..f7f1f978e3 100644
--- a/package/firmware/linux-firmware/Makefile
+++ b/package/firmware/linux-firmware/Makefile
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
PKG_NAME:=linux-firmware
PKG_VERSION:=20231211
-PKG_RELEASE:=1
+PKG_RELEASE:=2
PKG_SOURCE_URL:=@KERNEL/linux/kernel/firmware
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
diff --git a/package/firmware/linux-firmware/broadcom.mk b/package/firmware/linux-firmware/broadcom.mk
index 4f64b423eb..088a2665cc 100644
--- a/package/firmware/linux-firmware/broadcom.mk
+++ b/package/firmware/linux-firmware/broadcom.mk
@@ -125,9 +125,15 @@ define Package/brcmfmac-nvram-43455-sdio/install
$(LN) \
brcmfmac43455-sdio.raspberrypi,4-model-b.txt \
$(1)/lib/firmware/brcm/brcmfmac43455-sdio.Raspberry\ Pi\ Foundation-Raspberry\ Pi\ 4\ Model\ B.txt
+ $(LN) \
+ brcmfmac43455-sdio.raspberrypi,4-model-b.txt \
+ $(1)/lib/firmware/brcm/brcmfmac43455-sdio.raspberrypi,5-model-b.txt
$(LN) \
brcmfmac43455-sdio.raspberrypi,4-model-b.txt \
$(1)/lib/firmware/brcm/brcmfmac43455-sdio.Raspberry\ Pi\ Foundation-Raspberry\ Pi\ Compute\ Module\ 4.txt
+ $(LN) \
+ brcmfmac43455-sdio.raspberrypi,4-model-b.txt \
+ $(1)/lib/firmware/brcm/brcmfmac43455-sdio.Raspberry\ Pi\ Foundation-Raspberry\ Pi\ 5\ Model\ B.txt
$(INSTALL_DATA) \
$(PKG_BUILD_DIR)/brcm/brcmfmac43455-sdio.MINIX-NEO\ Z83-4.txt \
$(1)/lib/firmware/brcm/
diff --git a/package/kernel/bcm27xx-gpu-fw/Makefile b/package/kernel/bcm27xx-gpu-fw/Makefile
index b3323c8b28..048dd0d3a9 100644
--- a/package/kernel/bcm27xx-gpu-fw/Makefile
+++ b/package/kernel/bcm27xx-gpu-fw/Makefile
@@ -2,8 +2,8 @@ include $(TOPDIR)/rules.mk
include $(INCLUDE_DIR)/kernel.mk
PKG_NAME:=bcm27xx-gpu-fw
-PKG_VERSION:=2022-05-16
-PKG_RELEASE:=3673be308132de102fdff491d1333d9d0f823557
+PKG_VERSION:=2024-01-11
+PKG_RELEASE:=0968de28716a9b1f106b8492646d0ed0a2800152
PKG_BUILD_DIR:=$(KERNEL_BUILD_DIR)/$(PKG_NAME)/rpi-firmware-$(PKG_RELEASE)
@@ -26,7 +26,7 @@ define Download/bootcode_bin
FILE:=$(RPI_FIRMWARE_FILE)-bootcode.bin
URL:=$(RPI_FIRMWARE_URL)
URL_FILE:=bootcode.bin
- HASH:=69309823da13dc96b89e3d82b44f820e4f84efa79d207adad2c8784559794f03
+ HASH:=af603ebd97e7b692c30195563f7b25656eb05d57838cf1a715ebb470d1614ce4
endef
$(eval $(call Download,bootcode_bin))
@@ -34,7 +34,7 @@ define Download/fixup_dat
FILE:=$(RPI_FIRMWARE_FILE)-fixup.dat
URL:=$(RPI_FIRMWARE_URL)
URL_FILE:=fixup.dat
- HASH:=921f56c62ad1995addb984b156c869202dc5d46bbe9ebcbd02c20f0def9058e3
+ HASH:=c28ea955e672e374016dca61d63afa026490f0473a98115908586ab48e324aeb
endef
$(eval $(call Download,fixup_dat))
@@ -42,7 +42,7 @@ define Download/fixup_cd_dat
FILE:=$(RPI_FIRMWARE_FILE)-fixup_cd.dat
URL:=$(RPI_FIRMWARE_URL)
URL_FILE:=fixup_cd.dat
- HASH:=83a985aa0d73844786f3b3bf674826c520212f6f72fc6a890f2ebb5f87de5d8c
+ HASH:=3cf1aef5f596ca106203ed5dac9ad45e85929ec55ce44c813588645e174442ec
endef
$(eval $(call Download,fixup_cd_dat))
@@ -50,7 +50,7 @@ define Download/fixup_x_dat
FILE:=$(RPI_FIRMWARE_FILE)-fixup_x.dat
URL:=$(RPI_FIRMWARE_URL)
URL_FILE:=fixup_x.dat
- HASH:=8b00b00678adafe01e087240d156dbc87822e745b269be4f282596b69265cd1e
+ HASH:=56525c8feabde1ab86f36bb09bc55171659b2993f94132cf81ffc4293d62269d
endef
$(eval $(call Download,fixup_x_dat))
@@ -58,7 +58,7 @@ define Download/fixup4_dat
FILE:=$(RPI_FIRMWARE_FILE)-fixup4.dat
URL:=$(RPI_FIRMWARE_URL)
URL_FILE:=fixup4.dat
- HASH:=ef2b5d2a0a95ca48e00a1ce78b7650ee9e947cc1c588704c8ae30c1623122e2f
+ HASH:=615f8595801bf52373039f73ad5ad9513f83400d355eb1b2c075c7ae907e927c
endef
$(eval $(call Download,fixup4_dat))
@@ -66,7 +66,7 @@ define Download/fixup4cd_dat
FILE:=$(RPI_FIRMWARE_FILE)-fixup4cd.dat
URL:=$(RPI_FIRMWARE_URL)
URL_FILE:=fixup4cd.dat
- HASH:=83a985aa0d73844786f3b3bf674826c520212f6f72fc6a890f2ebb5f87de5d8c
+ HASH:=3cf1aef5f596ca106203ed5dac9ad45e85929ec55ce44c813588645e174442ec
endef
$(eval $(call Download,fixup4cd_dat))
@@ -74,7 +74,7 @@ define Download/fixup4x_dat
FILE:=$(RPI_FIRMWARE_FILE)-fixup4x.dat
URL:=$(RPI_FIRMWARE_URL)
URL_FILE:=fixup4x.dat
- HASH:=a6c4e30ada5a00fe7de83c460638ca824647651bb4a3644b8c65d7ba1d9f2d2b
+ HASH:=6d27a4b8ecb78cef9e1f03751b4aaec5ce8749d36988f381145a8a41dbf164ae
endef
$(eval $(call Download,fixup4x_dat))
@@ -82,7 +82,7 @@ define Download/start_elf
FILE:=$(RPI_FIRMWARE_FILE)-start.elf
URL:=$(RPI_FIRMWARE_URL)
URL_FILE:=start.elf
- HASH:=5455c148f4b8b04c553809bd22b995ee49ba5279ca3848df8bde6f80a388f7e0
+ HASH:=e8348e88522e7a1d0e2b0944ab66d7d8f4f30da98f326e2b3c123522e45f71b2
endef
$(eval $(call Download,start_elf))
@@ -90,7 +90,7 @@ define Download/start_cd_elf
FILE:=$(RPI_FIRMWARE_FILE)-start_cd.elf
URL:=$(RPI_FIRMWARE_URL)
URL_FILE:=start_cd.elf
- HASH:=168c0a9178d5a3b4bd89ef770826a85b4ea3132560ba3600c212c0cec4c575c6
+ HASH:=c9b4de3f12bec7808868b898c49f656b5378ddc315f12ccab83d6519bad51680
endef
$(eval $(call Download,start_cd_elf))
@@ -98,7 +98,7 @@ define Download/start_x_elf
FILE:=$(RPI_FIRMWARE_FILE)-start_x.elf
URL:=$(RPI_FIRMWARE_URL)
URL_FILE:=start_x.elf
- HASH:=30c6a7f32a25185053ca3ca9e4bcfe932246ed42a1b7c37f8803209f93d86404
+ HASH:=0b5c06c109984361eeed0ab14d146f686d8aa8da2025689b887e9cb098636db9
endef
$(eval $(call Download,start_x_elf))
@@ -106,7 +106,7 @@ define Download/start4_elf
FILE:=$(RPI_FIRMWARE_FILE)-start4.elf
URL:=$(RPI_FIRMWARE_URL)
URL_FILE:=start4.elf
- HASH:=be8bbff41dba2749b7b0e812f0a9d87a9122d18508f7b5ff3cd20f303d15bc07
+ HASH:=fedc4ecd72c9d21018e210240dcd2e41a8bb5f936fb5674c3351f2a447a22203
endef
$(eval $(call Download,start4_elf))
@@ -114,7 +114,7 @@ define Download/start4cd_elf
FILE:=$(RPI_FIRMWARE_FILE)-start4cd.elf
URL:=$(RPI_FIRMWARE_URL)
URL_FILE:=start4cd.elf
- HASH:=000372e9cf6815ade595948dbd6328665f2a535eeee44e74b0ec8e56b6fbbf90
+ HASH:=ea22282a77666801378137a651e7e0b17cc186f63cdbdc8b9bb98749cd12b256
endef
$(eval $(call Download,start4cd_elf))
@@ -122,7 +122,7 @@ define Download/start4x_elf
FILE:=$(RPI_FIRMWARE_FILE)-start4x.elf
URL:=$(RPI_FIRMWARE_URL)
URL_FILE:=start4x.elf
- HASH:=48895858f7936570dfab44c67bdcb0357ac8fcd630162c36ac9ed8f2de85c038
+ HASH:=c509e73a9cba7af3223dea885f58294bd04845e822aa3d6278500fa4dcdb112f
endef
$(eval $(call Download,start4x_elf))
diff --git a/package/kernel/linux/Makefile b/package/kernel/linux/Makefile
index c88b5c1b31..6592b01678 100644
--- a/package/kernel/linux/Makefile
+++ b/package/kernel/linux/Makefile
@@ -58,7 +58,12 @@ define Package/kernel
endef
define Package/kernel/install
- # nothing to do
+ $(INSTALL_DIR) $(1)/$(MODULES_SUBDIR)
+ $(INSTALL_DATA) $(LINUX_DIR)/modules.builtin $(1)/$(MODULES_SUBDIR)
+ $(SED) 's,.*/,,' $(1)/$(MODULES_SUBDIR)/modules.builtin
+ strings $(LINUX_DIR)/modules.builtin.modinfo | \
+ grep -E -v "\.(file$(if CONFIG_MODULE_STRIPPED,|parmtype))=" | \
+ tr '\n' '\0' > $(1)/$(MODULES_SUBDIR)/modules.builtin.modinfo
endef
define Package/kernel/extra_provides
diff --git a/package/kernel/linux/modules/fs.mk b/package/kernel/linux/modules/fs.mk
index f2acaa7439..58af180c28 100644
--- a/package/kernel/linux/modules/fs.mk
+++ b/package/kernel/linux/modules/fs.mk
@@ -359,8 +359,7 @@ define KernelPackage/fs-ksmbd
DEPENDS:= \
+kmod-nls-base \
+kmod-nls-utf8 \
- +kmod-crypto-md4 \
- +kmod-crypto-md5 \
+ +kmod-crypto-md5 \
+kmod-crypto-hmac \
+kmod-crypto-ecb \
+kmod-crypto-des \
diff --git a/package/kernel/linux/modules/leds.mk b/package/kernel/linux/modules/leds.mk
index 24af1b7f61..60465a8ad5 100644
--- a/package/kernel/linux/modules/leds.mk
+++ b/package/kernel/linux/modules/leds.mk
@@ -261,3 +261,37 @@ define KernelPackage/input-leds/description
endef
$(eval $(call KernelPackage,input-leds))
+
+
+define KernelPackage/leds-lp55xx-common
+ SUBMENU:=$(LEDS_MENU)
+ TITLE:=LED common driver for LP5521/LP5523/LP55231/LP5562 controllers
+ DEPENDS:=+kmod-i2c-core
+ KCONFIG:=CONFIG_LEDS_LP55XX_COMMON
+ FILES:=$(LINUX_DIR)/drivers/leds/leds-lp55xx-common.ko
+ AUTOLOAD:=$(call AutoLoad,60,leds-lp55xx-common,1)
+endef
+
+define KernelPackage/leds-lp55xx-common/description
+ This option enables support for Texas Instruments
+ LP5521/LP5523/LP55231/LP5562 common driver.
+endef
+
+$(eval $(call KernelPackage,leds-lp55xx-common))
+
+
+define KernelPackage/leds-lp5562
+ SUBMENU:=$(LEDS_MENU)
+ TITLE:=LED driver for LP5562 controllers
+ DEPENDS:=+kmod-i2c-core +kmod-leds-lp55xx-common
+ KCONFIG:=CONFIG_LEDS_LP5562
+ FILES:=$(LINUX_DIR)/drivers/leds/leds-lp5562.ko
+ AUTOLOAD:=$(call AutoLoad,60,leds-lp5562,1)
+endef
+
+define KernelPackage/leds-lp5562/description
+ This option enables support for Texas Instruments LP5562
+ LED controllers.
+endef
+
+$(eval $(call KernelPackage,leds-lp5562))
\ No newline at end of file
diff --git a/package/kernel/linux/modules/netdevices.mk b/package/kernel/linux/modules/netdevices.mk
index 46dcdfdef7..63f75e9591 100644
--- a/package/kernel/linux/modules/netdevices.mk
+++ b/package/kernel/linux/modules/netdevices.mk
@@ -380,9 +380,7 @@ define KernelPackage/phy-aquantia
TITLE:=Aquantia Ethernet PHYs
DEPENDS:=+kmod-libphy +kmod-hwmon-core +kmod-lib-crc-ccitt
KCONFIG:=CONFIG_AQUANTIA_PHY
- FILES:= \
- $(LINUX_DIR)/drivers/net/phy/aquantia.ko@lt6.1 \
- $(LINUX_DIR)/drivers/net/phy/aquantia/aquantia.ko@ge6.1
+ FILES:=$(LINUX_DIR)/drivers/net/phy/aquantia/aquantia.ko
AUTOLOAD:=$(call AutoLoad,18,aquantia,1)
endef
diff --git a/package/kernel/mac80211/files/lib/netifd/wireless/mac80211.sh b/package/kernel/mac80211/files/lib/netifd/wireless/mac80211.sh
index 1bf4db6e5f..49ffb219bc 100644
--- a/package/kernel/mac80211/files/lib/netifd/wireless/mac80211.sh
+++ b/package/kernel/mac80211/files/lib/netifd/wireless/mac80211.sh
@@ -19,6 +19,10 @@ wdev_tool() {
ucode /usr/share/hostap/wdev.uc "$@"
}
+ubus_call() {
+ flock /var/run/hostapd.lock ubus call "$@"
+}
+
drv_mac80211_init_device_config() {
hostapd_common_add_device_config
@@ -145,7 +149,7 @@ mac80211_hostapd_setup_base() {
[ "$auto_channel" = 0 ] && [ -z "$channel_list" ] && \
channel_list="$channel"
- [ "$min_tx_power" -gt 0 ] && append base_cfg "min_tx_power=$min_tx_power"
+ [ "$min_tx_power" -gt 0 ] && append base_cfg "min_tx_power=$min_tx_power" "$N"
set_default noscan 0
@@ -327,6 +331,11 @@ mac80211_hostapd_setup_base() {
[ "$rx_stbc" -lt "$cap_rx_stbc" ] && cap_rx_stbc="$rx_stbc"
vht_cap="$(( ($vht_cap & ~(0x700)) | ($cap_rx_stbc << 8) ))"
+ [ "$vht_oper_chwidth" -lt 2 ] && {
+ vht160=0
+ short_gi_160=0
+ }
+
mac80211_add_capabilities vht_capab $vht_cap \
RXLDPC:0x10::$rxldpc \
SHORT-GI-80:0x20::$short_gi_80 \
@@ -550,7 +559,7 @@ get_board_phy_name() (
local ref_path="$3"
json_select "$key"
- json_get_values path
+ json_get_vars path
json_select ..
[ "${ref_path%+*}" = "$path" ] && fallback_phy=$key
@@ -582,7 +591,7 @@ rename_board_phy_by_name() (
json_load_file /etc/board.json
json_select wlan
json_select "${phy%.*}" || return 0
- json_get_values path
+ json_get_vars path
prev_phy="$(iwinfo nl80211 phyname "path=$path${suffix:++$suffix}")"
[ -n "$prev_phy" ] || return 0
@@ -898,7 +907,7 @@ wpa_supplicant_set_config() {
ubus wait_for wpa_supplicant
}
- local supplicant_res="$(ubus call wpa_supplicant config_set "$data")"
+ local supplicant_res="$(ubus_call wpa_supplicant config_set "$data")"
ret="$?"
[ "$ret" != 0 -o -z "$supplicant_res" ] && wireless_setup_vif_failed WPA_SUPPLICANT_FAILED
@@ -908,12 +917,12 @@ wpa_supplicant_set_config() {
hostapd_set_config() {
[ -n "$hostapd_ctrl" ] || {
- ubus call hostapd config_set '{ "phy": "'"$phy"'", "config": "", "prev_config": "'"${hostapd_conf_file}.prev"'" }' > /dev/null
+ ubus_call hostapd config_set '{ "phy": "'"$phy"'", "config": "", "prev_config": "'"${hostapd_conf_file}.prev"'" }' > /dev/null
return 0;
}
ubus wait_for hostapd
- local hostapd_res="$(ubus call hostapd config_set "{ \"phy\": \"$phy\", \"config\":\"${hostapd_conf_file}\", \"prev_config\": \"${hostapd_conf_file}.prev\"}")"
+ local hostapd_res="$(ubus_call hostapd config_set "{ \"phy\": \"$phy\", \"config\":\"${hostapd_conf_file}\", \"prev_config\": \"${hostapd_conf_file}.prev\"}")"
ret="$?"
[ "$ret" != 0 -o -z "$hostapd_res" ] && {
wireless_setup_failed HOSTAPD_START_FAILED
@@ -928,7 +937,7 @@ wpa_supplicant_start() {
[ -n "$wpa_supp_init" ] || return 0
- ubus call wpa_supplicant config_set '{ "phy": "'"$phy"'" }' > /dev/null
+ ubus_call wpa_supplicant config_set '{ "phy": "'"$phy"'" }' > /dev/null
}
mac80211_setup_supplicant() {
@@ -1029,15 +1038,15 @@ mac80211_set_noscan() {
}
drv_mac80211_cleanup() {
- hostapd_common_cleanup
+ :
}
mac80211_reset_config() {
local phy="$1"
hostapd_conf_file="/var/run/hostapd-$phy.conf"
- ubus call hostapd config_set '{ "phy": "'"$phy"'", "config": "", "prev_config": "'"$hostapd_conf_file"'" }' > /dev/null
- ubus call wpa_supplicant config_set '{ "phy": "'"$phy"'", "config": [] }' > /dev/null
+ ubus_call hostapd config_set '{ "phy": "'"$phy"'", "config": "", "prev_config": "'"$hostapd_conf_file"'" }' > /dev/null
+ ubus_call wpa_supplicant config_set '{ "phy": "'"$phy"'", "config": [] }' > /dev/null
wdev_tool "$phy" set_config '{}'
}
diff --git a/package/kernel/mac80211/patches/ath9k/512-ath9k_channelbw_debugfs.patch b/package/kernel/mac80211/patches/ath9k/512-ath9k_channelbw_debugfs.patch
index 54abb4d425..474fb3fdbe 100644
--- a/package/kernel/mac80211/patches/ath9k/512-ath9k_channelbw_debugfs.patch
+++ b/package/kernel/mac80211/patches/ath9k/512-ath9k_channelbw_debugfs.patch
@@ -79,7 +79,7 @@
}
--- a/drivers/net/wireless/ath/ath9k/common-debug.c
+++ b/drivers/net/wireless/ath/ath9k/common-debug.c
-@@ -316,3 +316,55 @@ void ath9k_cmn_debug_eeprom(struct dentr
+@@ -315,3 +315,55 @@ void ath9k_cmn_debug_eeprom(struct dentr
&fops_eeprom);
}
EXPORT_SYMBOL(ath9k_cmn_debug_eeprom);
diff --git a/package/kernel/mac80211/patches/ath9k/542-ath9k_debugfs_diag.patch b/package/kernel/mac80211/patches/ath9k/542-ath9k_debugfs_diag.patch
index e09bbc08ea..c54dbbb188 100644
--- a/package/kernel/mac80211/patches/ath9k/542-ath9k_debugfs_diag.patch
+++ b/package/kernel/mac80211/patches/ath9k/542-ath9k_debugfs_diag.patch
@@ -1,8 +1,8 @@
--- a/drivers/net/wireless/ath/ath9k/debug.c
+++ b/drivers/net/wireless/ath/ath9k/debug.c
-@@ -1562,6 +1562,50 @@ static const struct file_operations fops
- #endif
-
+@@ -1468,6 +1468,50 @@ void ath9k_deinit_debug(struct ath_softc
+ ath9k_cmn_spectral_deinit_debug(&sc->spec_priv);
+ }
+static ssize_t read_file_diag(struct file *file, char __user *user_buf,
+ size_t count, loff_t *ppos)
@@ -51,7 +51,7 @@
int ath9k_init_debug(struct ath_hw *ah)
{
struct ath_common *common = ath9k_hw_common(ah);
-@@ -1589,6 +1633,8 @@ int ath9k_init_debug(struct ath_hw *ah)
+@@ -1491,6 +1535,8 @@ int ath9k_init_debug(struct ath_hw *ah)
debugfs_create_file("gpio_led", S_IWUSR,
sc->debug.debugfs_phy, sc, &fops_gpio_led);
#endif
diff --git a/package/kernel/mac80211/patches/ath9k/543-ath9k_entropy_from_adc.patch b/package/kernel/mac80211/patches/ath9k/543-ath9k_entropy_from_adc.patch
index 00451061f2..8b399f4b4c 100644
--- a/package/kernel/mac80211/patches/ath9k/543-ath9k_entropy_from_adc.patch
+++ b/package/kernel/mac80211/patches/ath9k/543-ath9k_entropy_from_adc.patch
@@ -55,7 +55,7 @@
ops->spectral_scan_config = ar9003_hw_spectral_scan_config;
--- a/drivers/net/wireless/ath/ath9k/init.c
+++ b/drivers/net/wireless/ath/ath9k/init.c
-@@ -870,7 +870,8 @@ static void ath9k_init_txpower_limits(st
+@@ -871,7 +871,8 @@ static void ath9k_init_txpower_limits(st
if (ah->caps.hw_caps & ATH9K_HW_CAP_5GHZ)
ath9k_init_band_txpower(sc, NL80211_BAND_5GHZ);
@@ -65,7 +65,7 @@
}
static const struct ieee80211_iface_limit if_limits[] = {
-@@ -1048,6 +1049,18 @@ static void ath9k_set_hw_capab(struct at
+@@ -1049,6 +1050,18 @@ static void ath9k_set_hw_capab(struct at
wiphy_ext_feature_set(hw->wiphy, NL80211_EXT_FEATURE_CAN_REPLACE_PTK0);
}
@@ -84,7 +84,7 @@
int ath9k_init_device(u16 devid, struct ath_softc *sc,
const struct ath_bus_ops *bus_ops)
{
-@@ -1095,6 +1108,8 @@ int ath9k_init_device(u16 devid, struct
+@@ -1096,6 +1109,8 @@ int ath9k_init_device(u16 devid, struct
wiphy_read_of_freq_limits(hw->wiphy);
diff --git a/package/kernel/mac80211/patches/ath9k/553-ath9k_of_gpio_mask.patch b/package/kernel/mac80211/patches/ath9k/553-ath9k_of_gpio_mask.patch
index 6d1820ecb7..752a4980a4 100644
--- a/package/kernel/mac80211/patches/ath9k/553-ath9k_of_gpio_mask.patch
+++ b/package/kernel/mac80211/patches/ath9k/553-ath9k_of_gpio_mask.patch
@@ -13,7 +13,7 @@
static int ath9k_init_softc(u16 devid, struct ath_softc *sc,
const struct ath_bus_ops *bus_ops)
{
-@@ -803,6 +809,9 @@ static int ath9k_init_softc(u16 devid, s
+@@ -804,6 +810,9 @@ static int ath9k_init_softc(u16 devid, s
if (ret)
goto err_hw;
diff --git a/package/kernel/mac80211/patches/brcm/865-brcmfmac-Read-alternative-firmware-names-from-DT.patch b/package/kernel/mac80211/patches/brcm/865-brcmfmac-Read-alternative-firmware-names-from-DT.patch
deleted file mode 100644
index 22e26e7698..0000000000
--- a/package/kernel/mac80211/patches/brcm/865-brcmfmac-Read-alternative-firmware-names-from-DT.patch
+++ /dev/null
@@ -1,191 +0,0 @@
-From 4e32024cbb14230af3048e249e84f8c2b25ce45a Mon Sep 17 00:00:00 2001
-From: Phil Elwell
-Date: Thu, 28 Oct 2021 15:03:16 +0100
-Subject: [PATCH] brcmfmac: Read alternative firmware names from DT
-
-Add the ability to load the names of alternative firmwares from the
-Device Tree node. This permits separate firmwares for 43436s and 43438
-and allows downstream firmwares to coexist with upstream.
-
-Signed-off-by: Phil Elwell
----
- .../wireless/broadcom/brcm80211/brcmfmac/of.c | 36 ++++++++++++++
- .../wireless/broadcom/brcm80211/brcmfmac/of.h | 7 +++
- .../broadcom/brcm80211/brcmfmac/sdio.c | 47 +++++++++++++++++--
- 3 files changed, 87 insertions(+), 3 deletions(-)
-
---- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/of.c
-+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/of.c
-@@ -11,6 +11,7 @@
- #include "debug.h"
- #include "core.h"
- #include "common.h"
-+#include "firmware.h"
- #include "of.h"
-
- static int brcmf_of_get_country_codes(struct device *dev,
-@@ -175,3 +176,38 @@ void brcmf_of_probe(struct device *dev,
- sdio->oob_irq_nr = irq;
- sdio->oob_irq_flags = irqf;
- }
-+
-+struct brcmf_firmware_mapping *
-+brcmf_of_fwnames(struct device *dev, u32 *fwname_count)
-+{
-+ struct device_node *np = dev->of_node;
-+ struct brcmf_firmware_mapping *fwnames;
-+ struct device_node *map_np, *fw_np;
-+ int of_count;
-+ int count = 0;
-+
-+ map_np = of_get_child_by_name(np, "firmwares");
-+ of_count = of_get_child_count(map_np);
-+ if (!of_count)
-+ return NULL;
-+
-+ fwnames = devm_kcalloc(dev, of_count,
-+ sizeof(struct brcmf_firmware_mapping),
-+ GFP_KERNEL);
-+
-+ for_each_child_of_node(map_np, fw_np)
-+ {
-+ struct brcmf_firmware_mapping *cur = &fwnames[count];
-+
-+ if (of_property_read_u32(fw_np, "chipid", &cur->chipid) ||
-+ of_property_read_u32(fw_np, "revmask", &cur->revmask))
-+ continue;
-+ cur->fw_base = of_get_property(fw_np, "fw_base", NULL);
-+ if (cur->fw_base)
-+ count++;
-+ }
-+
-+ *fwname_count = count;
-+
-+ return count ? fwnames : NULL;
-+}
---- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/of.h
-+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/of.h
-@@ -5,9 +5,20 @@
- #ifdef CONFIG_OF
- void brcmf_of_probe(struct device *dev, enum brcmf_bus_type bus_type,
- struct brcmf_mp_device *settings);
-+#ifdef CPTCFG_BRCMFMAC_SDIO
-+struct brcmf_firmware_mapping *
-+brcmf_of_fwnames(struct device *dev, u32 *map_count);
-+#endif
- #else
- static void brcmf_of_probe(struct device *dev, enum brcmf_bus_type bus_type,
- struct brcmf_mp_device *settings)
- {
- }
-+#ifdef CPTCFG_BRCMFMAC_SDIO
-+static struct brcmf_firmware_mapping *
-+brcmf_of_fwnames(struct device *dev, u32 *map_count)
-+{
-+ return NULL;
-+}
-+#endif
- #endif /* CONFIG_OF */
---- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c
-+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c
-@@ -35,6 +35,7 @@
- #include "core.h"
- #include "common.h"
- #include "bcdc.h"
-+#include "of.h"
-
- #define DCMD_RESP_TIMEOUT msecs_to_jiffies(2500)
- #define CTL_DONE_TIMEOUT msecs_to_jiffies(2500)
-@@ -632,7 +633,7 @@ MODULE_FIRMWARE(BRCMF_FW_DEFAULT_PATH "b
- /* per-board firmware binaries */
- MODULE_FIRMWARE(BRCMF_FW_DEFAULT_PATH "brcmfmac*-sdio.*.bin");
-
--static const struct brcmf_firmware_mapping brcmf_sdio_fwnames[] = {
-+static const struct brcmf_firmware_mapping sdio_fwnames[] = {
- BRCMF_FW_ENTRY(BRCM_CC_43143_CHIP_ID, 0xFFFFFFFF, 43143),
- BRCMF_FW_ENTRY(BRCM_CC_43241_CHIP_ID, 0x0000001F, 43241B0),
- BRCMF_FW_ENTRY(BRCM_CC_43241_CHIP_ID, 0x00000020, 43241B4),
-@@ -660,6 +661,9 @@ static const struct brcmf_firmware_mappi
- BRCMF_FW_ENTRY(CY_CC_43752_CHIP_ID, 0xFFFFFFFF, 43752)
- };
-
-+static const struct brcmf_firmware_mapping *brcmf_sdio_fwnames = sdio_fwnames;
-+static u32 brcmf_sdio_fwnames_count = ARRAY_SIZE(sdio_fwnames);
-+
- #define TXCTL_CREDITS 2
-
- static void pkt_align(struct sk_buff *p, int len, int align)
-@@ -4201,6 +4205,9 @@ static const struct brcmf_bus_ops brcmf_
- #define BRCMF_SDIO_FW_NVRAM 1
- #define BRCMF_SDIO_FW_CLM 2
-
-+static struct brcmf_fw_request *
-+brcmf_sdio_prepare_fw_request(struct brcmf_sdio *bus);
-+
- static void brcmf_sdio_firmware_callback(struct device *dev, int err,
- struct brcmf_fw_request *fwreq)
- {
-@@ -4216,6 +4223,22 @@ static void brcmf_sdio_firmware_callback
-
- brcmf_dbg(TRACE, "Enter: dev=%s, err=%d\n", dev_name(dev), err);
-
-+ if (err && brcmf_sdio_fwnames != sdio_fwnames) {
-+ /* Try again with the standard firmware names */
-+ brcmf_sdio_fwnames = sdio_fwnames;
-+ brcmf_sdio_fwnames_count = ARRAY_SIZE(sdio_fwnames);
-+ kfree(fwreq);
-+ fwreq = brcmf_sdio_prepare_fw_request(bus);
-+ if (!fwreq) {
-+ err = -ENOMEM;
-+ goto fail;
-+ }
-+ err = brcmf_fw_get_firmwares(dev, fwreq,
-+ brcmf_sdio_firmware_callback);
-+ if (!err)
-+ return;
-+ }
-+
- if (err)
- goto fail;
-
-@@ -4426,7 +4449,7 @@ brcmf_sdio_prepare_fw_request(struct brc
-
- fwreq = brcmf_fw_alloc_request(bus->ci->chip, bus->ci->chiprev,
- brcmf_sdio_fwnames,
-- ARRAY_SIZE(brcmf_sdio_fwnames),
-+ brcmf_sdio_fwnames_count,
- fwnames, ARRAY_SIZE(fwnames));
- if (!fwreq)
- return NULL;
-@@ -4446,6 +4469,9 @@ struct brcmf_sdio *brcmf_sdio_probe(stru
- struct brcmf_sdio *bus;
- struct workqueue_struct *wq;
- struct brcmf_fw_request *fwreq;
-+ struct brcmf_firmware_mapping *of_fwnames, *fwnames = NULL;
-+ const int fwname_size = sizeof(struct brcmf_firmware_mapping);
-+ u32 of_fw_count;
-
- brcmf_dbg(TRACE, "Enter\n");
-
-@@ -4528,6 +4554,21 @@ struct brcmf_sdio *brcmf_sdio_probe(stru
-
- brcmf_dbg(INFO, "completed!!\n");
-
-+ of_fwnames = brcmf_of_fwnames(sdiodev->dev, &of_fw_count);
-+ if (of_fwnames)
-+ fwnames = devm_kcalloc(sdiodev->dev,
-+ of_fw_count + brcmf_sdio_fwnames_count,
-+ fwname_size, GFP_KERNEL);
-+
-+ if (fwnames) {
-+ /* The array is scanned in order, so overrides come first */
-+ memcpy(fwnames, of_fwnames, of_fw_count * fwname_size);
-+ memcpy(fwnames + of_fw_count, sdio_fwnames,
-+ brcmf_sdio_fwnames_count * fwname_size);
-+ brcmf_sdio_fwnames = fwnames;
-+ brcmf_sdio_fwnames_count += of_fw_count;
-+ }
-+
- fwreq = brcmf_sdio_prepare_fw_request(bus);
- if (!fwreq) {
- ret = -ENOMEM;
diff --git a/package/kernel/mac80211/patches/brcm/865-brcmfmac-disable-dump_survey-on-bcm2835.patch b/package/kernel/mac80211/patches/brcm/865-brcmfmac-disable-dump_survey-on-bcm2835.patch
new file mode 100644
index 0000000000..e4d9270ce8
--- /dev/null
+++ b/package/kernel/mac80211/patches/brcm/865-brcmfmac-disable-dump_survey-on-bcm2835.patch
@@ -0,0 +1,22 @@
+brcmfmac: disable dump_survey on Raspberry Pi
+
+Enabling this causes slow iwinfo calls on Raspberry Pi and LuCI slows down
+when wireless is enabled.
+https://github.com/openwrt/openwrt/issues/14013
+
+Signed-off-by: Álvaro Fernández Rojas
+---
+
+--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
++++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
+@@ -8361,8 +8361,10 @@ struct brcmf_cfg80211_info *brcmf_cfg802
+ if (brcmf_feat_is_enabled(ifp, BRCMF_FEAT_WOWL_GTK))
+ ops->set_rekey_data = brcmf_cfg80211_set_rekey_data;
+ #endif
++#if !defined(CONFIG_ARCH_BCM2835)
+ if (brcmf_feat_is_enabled(ifp, BRCMF_FEAT_DUMP_OBSS))
+ ops->dump_survey = brcmf_cfg80211_dump_survey;
++#endif /* CONFIG_ARCH_BCM2835 */
+
+ err = wiphy_register(wiphy);
+ if (err < 0) {
diff --git a/package/kernel/mac80211/patches/subsys/314-wifi-mac80211-fix-race-condition-on-enabling-fast-xm.patch b/package/kernel/mac80211/patches/subsys/314-wifi-mac80211-fix-race-condition-on-enabling-fast-xm.patch
new file mode 100644
index 0000000000..191eb67e8e
--- /dev/null
+++ b/package/kernel/mac80211/patches/subsys/314-wifi-mac80211-fix-race-condition-on-enabling-fast-xm.patch
@@ -0,0 +1,34 @@
+From: Felix Fietkau
+Date: Wed, 3 Jan 2024 15:10:18 +0100
+Subject: [PATCH] wifi: mac80211: fix race condition on enabling fast-xmit
+
+fast-xmit must only be enabled after the sta has been uploaded to the driver,
+otherwise it could end up passing the not-yet-uploaded sta via drv_tx calls
+to the driver, leading to potential crashes because of uninitialized drv_priv
+data.
+Add a missing sta->uploaded check and re-check fast xmit after inserting a sta.
+
+Signed-off-by: Felix Fietkau
+---
+
+--- a/net/mac80211/sta_info.c
++++ b/net/mac80211/sta_info.c
+@@ -911,6 +911,7 @@ static int sta_info_insert_finish(struct
+
+ if (ieee80211_vif_is_mesh(&sdata->vif))
+ mesh_accept_plinks_update(sdata);
++ ieee80211_check_fast_xmit(sta);
+
+ return 0;
+ out_remove:
+--- a/net/mac80211/tx.c
++++ b/net/mac80211/tx.c
+@@ -3033,7 +3033,7 @@ void ieee80211_check_fast_xmit(struct st
+ sdata->vif.type == NL80211_IFTYPE_STATION)
+ goto out;
+
+- if (!test_sta_flag(sta, WLAN_STA_AUTHORIZED))
++ if (!test_sta_flag(sta, WLAN_STA_AUTHORIZED) || !sta->uploaded)
+ goto out;
+
+ if (test_sta_flag(sta, WLAN_STA_PS_STA) ||
diff --git a/package/kernel/mac80211/patches/subsys/780-avoid-crashing-missing-band.patch b/package/kernel/mac80211/patches/subsys/780-avoid-crashing-missing-band.patch
new file mode 100644
index 0000000000..4bbd786043
--- /dev/null
+++ b/package/kernel/mac80211/patches/subsys/780-avoid-crashing-missing-band.patch
@@ -0,0 +1,34 @@
+From: David Bauer
+Date: Thu, 30 Nov 2023 07:32:52 +0100
+Subject: [PATCH] mac80211: avoid crashing on invalid band info
+
+Frequent crashes have been observed on MT7916 based platforms. While the
+root of these crashes are currently unknown, they happen when decoding
+rate information of connected STAs in AP mode. The rate-information is
+associated with a band which is not available on the PHY.
+
+Check for this condition in order to avoid crashing the whole system.
+This patch should be removed once the roout cause has been found and
+fixed.
+
+Link: https://github.com/freifunk-gluon/gluon/issues/2980
+
+Signed-off-by: David Bauer
+---
+
+--- a/net/mac80211/sta_info.c
++++ b/net/mac80211/sta_info.c
+@@ -2423,6 +2423,13 @@ static void sta_stats_decode_rate(struct
+
+ sband = local->hw.wiphy->bands[band];
+
++ if (!sband) {
++ wiphy_warn(local->hw.wiphy,
++ "Invalid band %d\n",
++ band);
++ break;
++ }
++
+ if (WARN_ON_ONCE(!sband->bitrates))
+ break;
+
diff --git a/package/kernel/mt76/Makefile b/package/kernel/mt76/Makefile
index 65f6ca1e8e..1fea3bd0e9 100644
--- a/package/kernel/mt76/Makefile
+++ b/package/kernel/mt76/Makefile
@@ -8,9 +8,9 @@ PKG_LICENSE_FILES:=
PKG_SOURCE_URL:=https://github.com/openwrt/mt76
PKG_SOURCE_PROTO:=git
-PKG_SOURCE_DATE:=2023-12-18
-PKG_SOURCE_VERSION:=bebd9cffc2aeb2cecb40aadbb8c6eab3bdf7971b
-PKG_MIRROR_HASH:=580261755bc3f251b8bc5f7f610274693c067432187570694d2f2ccab0edb62b
+PKG_SOURCE_DATE:=2024-01-18
+PKG_SOURCE_VERSION:=f77188160441d5f77f08dd517632ae3f60c653b0
+PKG_MIRROR_HASH:=133a5e44624fe1933c893ee0b8ac75a847753f3490c26518c2ed9798f9ef53e0
PKG_MAINTAINER:=Felix Fietkau
PKG_USE_NINJA:=0
diff --git a/package/libs/gettext-full/Makefile b/package/libs/gettext-full/Makefile
index 1ed0e82df0..eb5b6d31bd 100644
--- a/package/libs/gettext-full/Makefile
+++ b/package/libs/gettext-full/Makefile
@@ -25,6 +25,8 @@ PKG_INSTALL:=1
PKG_BUILD_DEPENDS:=gettext-full/host libunistring libxml2
PKG_BUILD_PARALLEL:=0
+PKG_FIXUP:=autoreconf
+
HOST_BUILD_DEPENDS:=gperf/host libunistring/host libxml2/host
HOST_BUILD_PARALLEL:=0
diff --git a/package/libs/libnl/Makefile b/package/libs/libnl/Makefile
index 56f2c2825d..93817e5f40 100644
--- a/package/libs/libnl/Makefile
+++ b/package/libs/libnl/Makefile
@@ -6,12 +6,12 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=libnl
-PKG_VERSION:=3.8.0
+PKG_VERSION:=3.9.0
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://github.com/thom311/libnl/releases/download/libnl$(subst .,_,$(PKG_VERSION))
-PKG_HASH:=bb726c6d7a08b121978d73ff98425bf313fa26a27a331d465e4f1d7ec5b838c6
+PKG_HASH:=aed507004d728a5cf11eab48ca4bf9e6e1874444e33939b9d3dfed25018ee9bb
PKG_LICENSE:=LGPL-2.1
PKG_LICENSE_FILES:=COPYING
diff --git a/package/libs/libtraceevent/Makefile b/package/libs/libtraceevent/Makefile
index bcba7eaf43..54e8652192 100644
--- a/package/libs/libtraceevent/Makefile
+++ b/package/libs/libtraceevent/Makefile
@@ -1,12 +1,12 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=libtraceevent
-PKG_VERSION:=1.7.3
+PKG_VERSION:=1.8.2
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://git.kernel.org/pub/scm/libs/libtrace/libtraceevent.git/snapshot/
-PKG_HASH:=097b72e0d907f3107825fb2edf0188324bf70dc9da360f6efa68dc484ffde541
+PKG_HASH:=919f0c024c7b5059eace52d854d4df00ae7e361a4033e1b4d6fe01d97064a1b9
PKG_MAINTAINER:=Nick Hainke
diff --git a/package/libs/libtracefs/Makefile b/package/libs/libtracefs/Makefile
index eb879ee66d..0496f5983e 100644
--- a/package/libs/libtracefs/Makefile
+++ b/package/libs/libtracefs/Makefile
@@ -1,12 +1,12 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=libtracefs
-PKG_VERSION:=1.7.0
+PKG_VERSION:=1.8.0
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://git.kernel.org/pub/scm/libs/libtrace/libtracefs.git/snapshot/
-PKG_HASH:=411fcbf3434ecbaefa6c2b1bf092266293a672e2d7ee46fdd6b402753cb8bd16
+PKG_HASH:=f92475d5c4cb509983697fb359ee615bef4f08ed8bdc9c690f6118ba68886de0
PKG_MAINTAINER:=Nick Hainke
diff --git a/package/libs/libubox/Makefile b/package/libs/libubox/Makefile
index 549e604679..a987304ba1 100644
--- a/package/libs/libubox/Makefile
+++ b/package/libs/libubox/Makefile
@@ -5,9 +5,9 @@ PKG_RELEASE=1
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL=$(PROJECT_GIT)/project/libubox.git
-PKG_MIRROR_HASH:=daf411244a7f87c09c383c6fb69636a038c85f351bba93e80cc9aa530301199e
-PKG_SOURCE_DATE:=2023-12-04.1
-PKG_SOURCE_VERSION:=ca3f6d0cdb1e588283c42d039779ceab303ceef2
+PKG_MIRROR_HASH:=071139fed757bea240d4ba8f55a0ff5a81862d23e16b39fc871ae07da78ae6a4
+PKG_SOURCE_DATE:=2024-01-26
+PKG_SOURCE_VERSION:=c1be505732e6d254464973bdeacb955214c76c46
PKG_ABI_VERSION:=$(call abi_version_str,$(PKG_SOURCE_DATE))
CMAKE_INSTALL:=1
@@ -105,6 +105,14 @@ CMAKE_HOST_OPTIONS += \
-DCMAKE_MACOSX_RPATH=1 \
-DCMAKE_INSTALL_RPATH="${STAGING_DIR_HOST}/lib" \
+ifeq ($(HOST_OS),Darwin)
+ define Host/Install
+ $(Host/Install/Default)
+ $(INSTALL_DIR) $(STAGING_DIR_HOSTPKG)/lib
+ cd "$(STAGING_DIR_HOSTPKG)/lib" && ln -sf ../../host/lib/libubox.* .
+ endef
+endif
+
$(eval $(call BuildPackage,libubox))
$(eval $(call BuildPackage,libblobmsg-json))
$(eval $(call BuildPackage,jshn))
diff --git a/package/libs/libxml2/Makefile b/package/libs/libxml2/Makefile
index d65085c9c1..030f7e45e8 100644
--- a/package/libs/libxml2/Makefile
+++ b/package/libs/libxml2/Makefile
@@ -1,12 +1,12 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=libxml2
-PKG_VERSION:=2.12.1
+PKG_VERSION:=2.12.4
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
PKG_SOURCE_URL:=@GNOME/libxml2/$(basename $(PKG_VERSION))
-PKG_HASH:=8982b9ccdf7f456e30d8f7012d50858c6623e495333b6191def455c7e95427eb
+PKG_HASH:=497360e423cf0bd99eacdb7c6215dea92e6d6e89ee940393c2bae0e77cb9b7d0
PKG_LICENSE:=MIT
PKG_LICENSE_FILES:=COPYING
diff --git a/package/libs/mpfr/Makefile b/package/libs/mpfr/Makefile
new file mode 100644
index 0000000000..39d6a035ab
--- /dev/null
+++ b/package/libs/mpfr/Makefile
@@ -0,0 +1,64 @@
+#
+# Copyright (C) 2023 Jeffery To
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=mpfr
+PKG_VERSION:=4.2.1
+PKG_RELEASE:=1
+
+PKG_SOURCE_URL:=@GNU/mpfr http://www.mpfr.org/mpfr-$(PKG_VERSION)
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
+PKG_HASH:=277807353a6726978996945af13e52829e3abd7a9a5b7fb2793894e18f1fcbb2
+
+PKG_LICENSE:=LGPL-3.0-or-later
+PKG_LICENSE_FILES:=COPYING.LESSER
+PKG_MAINTAINER:=Jeffery To
+PKG_CPE_ID:=cpe:/a:mpfr:gnu_mpfr
+
+PKG_BUILD_PARALLEL:=1
+PKG_FIXUP:=autoreconf
+PKG_INSTALL:=1
+
+include $(INCLUDE_DIR)/package.mk
+
+define Package/libmpfr
+ SECTION:=libs
+ CATEGORY:=Libraries
+ TITLE:=GNU MPFR library
+ URL:=https://www.mpfr.org/
+ DEPENDS:=+libgmp
+ ABI_VERSION:=6
+endef
+
+define Package/libmpfr/description
+MPFR is a portable library written in C for arbitrary precision
+arithmetic on floating-point numbers. It is based on the GNU MP library.
+It aims to provide a class of floating-point numbers with precise
+semantics.
+endef
+
+CONFIGURE_ARGS += \
+ --enable-thread-safe
+
+define Build/InstallDev
+ $(INSTALL_DIR) $(1)/usr/include
+ $(CP) $(PKG_INSTALL_DIR)/usr/include/mpf* $(1)/usr/include/
+
+ $(INSTALL_DIR) $(1)/usr/lib
+ $(CP) $(PKG_INSTALL_DIR)/usr/lib/libmpfr.{a,so*} $(1)/usr/lib/
+
+ $(INSTALL_DIR) $(1)/usr/lib/pkgconfig
+ $(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/mpfr.pc $(1)/usr/lib/pkgconfig/
+endef
+
+define Package/libmpfr/install
+ $(INSTALL_DIR) $(1)/usr/lib
+ $(CP) $(PKG_INSTALL_DIR)/usr/lib/libmpfr.so.* $(1)/usr/lib/
+endef
+
+$(eval $(call BuildPackage,libmpfr))
diff --git a/package/libs/mpfr/patches/001-only-src.patch b/package/libs/mpfr/patches/001-only-src.patch
new file mode 100644
index 0000000000..bd9e38aefb
--- /dev/null
+++ b/package/libs/mpfr/patches/001-only-src.patch
@@ -0,0 +1,22 @@
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -38,7 +38,7 @@ AUTOMAKE_OPTIONS = gnu
+ # old Automake version.
+ ACLOCAL_AMFLAGS = -I m4
+
+-SUBDIRS = doc src tests tune tools/bench
++SUBDIRS = src
+
+ pkgconfigdir = $(libdir)/pkgconfig
+ pkgconfig_DATA = mpfr.pc
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -401,7 +401,7 @@ AUTOMAKE_OPTIONS = gnu
+ # libtoolize and in case some developer needs to switch back to an
+ # old Automake version.
+ ACLOCAL_AMFLAGS = -I m4
+-SUBDIRS = doc src tests tune tools/bench
++SUBDIRS = src
+ pkgconfigdir = $(libdir)/pkgconfig
+ pkgconfig_DATA = mpfr.pc
+ nobase_dist_doc_DATA = AUTHORS BUGS COPYING COPYING.LESSER NEWS TODO \
diff --git a/package/libs/wolfssl/Makefile b/package/libs/wolfssl/Makefile
index 6451dca68d..8477fb85c5 100644
--- a/package/libs/wolfssl/Makefile
+++ b/package/libs/wolfssl/Makefile
@@ -8,12 +8,12 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=wolfssl
-PKG_VERSION:=5.6.4-stable
+PKG_VERSION:=5.6.6-stable
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://github.com/wolfSSL/wolfssl/archive/v$(PKG_VERSION)
-PKG_HASH:=031691906794ff45e1e792561cf31759f5d29ac74936bc8dffb8b14f16d820b4
+PKG_HASH:=3d2ca672d41c2c2fa667885a80d6fa03c3e91f0f4f72f87aef2bc947e8c87237
PKG_FIXUP:=libtool libtool-abiver
PKG_INSTALL:=1
diff --git a/package/libs/wolfssl/patches/100-disable-hardening-check.patch b/package/libs/wolfssl/patches/100-disable-hardening-check.patch
index 368ec3e7e0..019645d796 100644
--- a/package/libs/wolfssl/patches/100-disable-hardening-check.patch
+++ b/package/libs/wolfssl/patches/100-disable-hardening-check.patch
@@ -1,6 +1,6 @@
--- a/wolfssl/wolfcrypt/settings.h
+++ b/wolfssl/wolfcrypt/settings.h
-@@ -2630,7 +2630,7 @@ extern void uITRON4_free(void *p) ;
+@@ -2774,7 +2774,7 @@ extern void uITRON4_free(void *p) ;
/* warning for not using harden build options (default with ./configure) */
/* do not warn if big integer support is disabled */
diff --git a/package/network/config/netifd/Makefile b/package/network/config/netifd/Makefile
index 790bcfec63..558463e8ea 100644
--- a/package/network/config/netifd/Makefile
+++ b/package/network/config/netifd/Makefile
@@ -5,9 +5,9 @@ PKG_RELEASE:=1
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL=$(PROJECT_GIT)/project/netifd.git
-PKG_SOURCE_DATE:=2023-12-19
-PKG_SOURCE_VERSION:=a2d32f0dcf16880226680d07b07b249f77a3af58
-PKG_MIRROR_HASH:=765f51335ffa0a143421efbe129d484a90d7c4a0f3e08cb7840cc85408f3e60c
+PKG_SOURCE_DATE:=2024-01-04
+PKG_SOURCE_VERSION:=f01345ec13b9b27ffd314d8689fb2d3f9c81a47d
+PKG_MIRROR_HASH:=58e92e9ce1a2c8ccb487e95dadf806f38b38abbe7cb3cde61ff880de5eb85c2f
PKG_MAINTAINER:=Felix Fietkau
PKG_LICENSE:=GPL-2.0
diff --git a/package/network/services/hostapd/files/hostapd.sh b/package/network/services/hostapd/files/hostapd.sh
index 271c1f7bec..1a664abbf2 100644
--- a/package/network/services/hostapd/files/hostapd.sh
+++ b/package/network/services/hostapd/files/hostapd.sh
@@ -43,7 +43,7 @@ hostapd_append_wpa_key_mgmt() {
case "$auth_type" in
psk|eap)
append wpa_key_mgmt "WPA-$auth_type_l"
- [ "${ieee80211r:-0}" -gt 0 ] && append wpa_key_mgmt "FT-${auth_type_l}"
+ [ "${wpa:-2}" -ge 2 ] && [ "${ieee80211r:-0}" -gt 0 ] && append wpa_key_mgmt "FT-${auth_type_l}"
[ "${ieee80211w:-0}" -gt 0 ] && append wpa_key_mgmt "WPA-${auth_type_l}-SHA256"
;;
eap192)
@@ -897,10 +897,21 @@ hostapd_set_bss_options() {
}
fi
+ json_get_vars ieee80211r
+ set_default ieee80211r 0
if [ "$wpa" -ge "1" ]; then
- json_get_vars ieee80211r
- set_default ieee80211r 0
+ if [ "$fils" -gt 0 ]; then
+ json_get_vars fils_realm
+ set_default fils_realm "$(echo "$ssid" | md5sum | head -c 8)"
+ fi
+ append bss_conf "wpa_disable_eapol_key_retries=$wpa_disable_eapol_key_retries" "$N"
+
+ hostapd_append_wpa_key_mgmt
+ [ -n "$wpa_key_mgmt" ] && append bss_conf "wpa_key_mgmt=$wpa_key_mgmt" "$N"
+ fi
+
+ if [ "$wpa" -ge "2" ]; then
if [ "$ieee80211r" -gt "0" ]; then
json_get_vars mobility_domain ft_psk_generate_local ft_over_ds reassociation_deadline
@@ -909,7 +920,7 @@ hostapd_set_bss_options() {
set_default reassociation_deadline 1000
case "$auth_type" in
- psk|sae|psk-sae)
+ psk)
set_default ft_psk_generate_local 1
;;
*)
@@ -932,6 +943,10 @@ hostapd_set_bss_options() {
set_default pmk_r1_push 0
[ -n "$r0kh" -a -n "$r1kh" ] || {
+ if [ -z "$auth_secret" -a -z "$key" ]; then
+ wireless_setup_vif_failed FT_KEY_CANT_BE_DERIVED
+ return 1
+ fi
ft_key=`echo -n "$mobility_domain/${auth_secret:-${key}}" | md5sum | awk '{print $1}'`
set_default r0kh "ff:ff:ff:ff:ff:ff,*,$ft_key"
@@ -950,18 +965,7 @@ hostapd_set_bss_options() {
done
fi
fi
- if [ "$fils" -gt 0 ]; then
- json_get_vars fils_realm
- set_default fils_realm "$(echo "$ssid" | md5sum | head -c 8)"
- fi
- append bss_conf "wpa_disable_eapol_key_retries=$wpa_disable_eapol_key_retries" "$N"
-
- hostapd_append_wpa_key_mgmt
- [ -n "$wpa_key_mgmt" ] && append bss_conf "wpa_key_mgmt=$wpa_key_mgmt" "$N"
- fi
-
- if [ "$wpa" -ge "2" ]; then
if [ -n "$network_bridge" -a "$rsn_preauth" = 1 ]; then
set_default auth_cache 1
append bss_conf "rsn_preauth=1" "$N"
@@ -1592,7 +1596,3 @@ EOF
fi
return 0
}
-
-hostapd_common_cleanup() {
- killall meshd-nl80211
-}
diff --git a/package/network/services/hostapd/files/hostapd.uc b/package/network/services/hostapd/files/hostapd.uc
index b85f523b35..dfddf8185b 100644
--- a/package/network/services/hostapd/files/hostapd.uc
+++ b/package/network/services/hostapd/files/hostapd.uc
@@ -2,9 +2,10 @@ let libubus = require("ubus");
import { open, readfile } from "fs";
import { wdev_create, wdev_remove, is_equal, vlist_new, phy_is_fullmac, phy_open } from "common";
-let ubus = libubus.connect();
+let ubus = libubus.connect(null, 60);
hostapd.data.config = {};
+hostapd.data.pending_config = {};
hostapd.data.file_fields = {
vlan_file: true,
@@ -127,12 +128,114 @@ function iface_update_supplicant_macaddr(phy, config)
let macaddr_list = [];
for (let i = 0; i < length(config.bss); i++)
push(macaddr_list, config.bss[i].bssid);
- ubus.call("wpa_supplicant", "phy_set_macaddr_list", { phy: phy, macaddr: macaddr_list });
+ ubus.defer("wpa_supplicant", "phy_set_macaddr_list", { phy: phy, macaddr: macaddr_list });
+}
+
+function __iface_pending_next(pending, state, ret, data)
+{
+ let config = pending.config;
+ let phydev = pending.phydev;
+ let phy = pending.phy;
+ let bss = config.bss[0];
+
+ if (pending.defer)
+ pending.defer.abort();
+ delete pending.defer;
+ switch (state) {
+ case "init":
+ let macaddr_list = [];
+ for (let i = 0; i < length(config.bss); i++)
+ push(macaddr_list, config.bss[i].bssid);
+ pending.call("wpa_supplicant", "phy_set_macaddr_list", { phy: phy, macaddr: macaddr_list });
+ return "create_bss";
+ case "create_bss":
+ let err = wdev_create(phy, bss.ifname, { mode: "ap" });
+ if (err) {
+ hostapd.printf(`Failed to create ${bss.ifname} on phy ${phy}: ${err}`);
+ return null;
+ }
+
+ pending.call("wpa_supplicant", "phy_status", { phy: phy });
+ return "check_phy";
+ case "check_phy":
+ let phy_status = data;
+ if (phy_status && phy_status.state == "COMPLETED") {
+ if (iface_add(phy, config, phy_status))
+ return "done";
+
+ hostapd.printf(`Failed to bring up phy ${phy} ifname=${bss.ifname} with supplicant provided frequency`);
+ }
+ pending.call("wpa_supplicant", "phy_set_state", { phy: phy, stop: true });
+ return "wpas_stopped";
+ case "wpas_stopped":
+ if (!iface_add(phy, config))
+ hostapd.printf(`hostapd.add_iface failed for phy ${phy} ifname=${bss.ifname}`);
+ pending.call("wpa_supplicant", "phy_set_state", { phy: phy, stop: false });
+ return null;
+ case "done":
+ default:
+ delete hostapd.data.pending_config[phy];
+ break;
+ }
+}
+
+function iface_pending_next(ret, data)
+{
+ let pending = true;
+ let cfg = this;
+
+ while (pending) {
+ this.next_state = __iface_pending_next(cfg, this.next_state, ret, data);
+ if (!this.next_state) {
+ __iface_pending_next(cfg, "done");
+ return;
+ }
+ pending = !this.defer;
+ }
+}
+
+function iface_pending_abort()
+{
+ this.next_state = "done";
+ this.next();
+}
+
+function iface_pending_ubus_call(obj, method, arg)
+{
+ let ubus = hostapd.data.ubus;
+ let pending = this;
+ this.defer = ubus.defer(obj, method, arg, (ret, data) => { delete pending.defer; pending.next(ret, data) });
+}
+
+const iface_pending_proto = {
+ next: iface_pending_next,
+ call: iface_pending_ubus_call,
+ abort: iface_pending_abort,
+};
+
+function iface_pending_init(phydev, config)
+{
+ let phy = phydev.name;
+
+ let pending = proto({
+ next_state: "init",
+ phydev: phydev,
+ phy: phy,
+ config: config,
+ next: iface_pending_next,
+ }, iface_pending_proto);
+
+ hostapd.data.pending_config[phy] = pending;
+ pending.next();
}
function iface_restart(phydev, config, old_config)
{
let phy = phydev.name;
+ let pending = hostapd.data.pending_config[phy];
+
+ if (pending)
+ pending.abort();
hostapd.remove_iface(phy);
iface_remove(old_config);
@@ -150,26 +253,7 @@ function iface_restart(phydev, config, old_config)
bss.bssid = phydev.macaddr_next();
}
- iface_update_supplicant_macaddr(phy, config);
-
- let bss = config.bss[0];
- let err = wdev_create(phy, bss.ifname, { mode: "ap" });
- if (err)
- hostapd.printf(`Failed to create ${bss.ifname} on phy ${phy}: ${err}`);
-
- let ubus = hostapd.data.ubus;
- let phy_status = ubus.call("wpa_supplicant", "phy_status", { phy: phy });
- if (phy_status && phy_status.state == "COMPLETED") {
- if (iface_add(phy, config, phy_status))
- return;
-
- hostapd.printf(`Failed to bring up phy ${phy} ifname=${bss.ifname} with supplicant provided frequency`);
- }
-
- ubus.call("wpa_supplicant", "phy_set_state", { phy: phy, stop: true });
- if (!iface_add(phy, config))
- hostapd.printf(`hostapd.add_iface failed for phy ${phy} ifname=${bss.ifname}`);
- ubus.call("wpa_supplicant", "phy_set_state", { phy: phy, stop: false });
+ iface_pending_init(phydev, config);
}
function array_to_obj(arr, key, start)
@@ -274,6 +358,9 @@ function iface_reload_config(phydev, config, old_config)
if (is_equal(old_config.bss, config.bss))
return true;
+ if (hostapd.data.pending_config[phy])
+ return false;
+
if (!old_config.bss || !old_config.bss[0])
return false;
diff --git a/package/network/services/hostapd/patches/993-2023-10-28-ACS-Fix-typo-in-bw_40-frequency-array.patch b/package/network/services/hostapd/patches/993-2023-10-28-ACS-Fix-typo-in-bw_40-frequency-array.patch
new file mode 100644
index 0000000000..948c51b196
--- /dev/null
+++ b/package/network/services/hostapd/patches/993-2023-10-28-ACS-Fix-typo-in-bw_40-frequency-array.patch
@@ -0,0 +1,25 @@
+From 7a733993211ad46cf3032038c1e7e6bdc2322336 Mon Sep 17 00:00:00 2001
+From: Michael-CY Lee
+Date: Tue, 5 Sep 2023 09:43:25 +0800
+Subject: [PATCH] ACS: Fix typo in bw_40 frequency array
+
+The range for the 5 GHz channel 118 was encoded with an incorrect
+channel number.
+
+Fixes: ed8e13decc71 (ACS: Extract bw40/80/160 freqs out of acs_usable_bwXXX_chan())
+Signed-off-by: Michael Lee
+---
+ src/ap/acs.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/src/ap/acs.c
++++ b/src/ap/acs.c
+@@ -256,7 +256,7 @@ struct bw_item {
+ static const struct bw_item bw_40[] = {
+ { 5180, 5200, 38 }, { 5220, 5240, 46 }, { 5260, 5280, 54 },
+ { 5300, 5320, 62 }, { 5500, 5520, 102 }, { 5540, 5560, 110 },
+- { 5580, 5600, 110 }, { 5620, 5640, 126}, { 5660, 5680, 134 },
++ { 5580, 5600, 118 }, { 5620, 5640, 126 }, { 5660, 5680, 134 },
+ { 5700, 5720, 142 }, { 5745, 5765, 151 }, { 5785, 5805, 159 },
+ { 5825, 5845, 167 }, { 5865, 5885, 175 },
+ { 5955, 5975, 3 }, { 5995, 6015, 11 }, { 6035, 6055, 19 },
diff --git a/package/network/services/hostapd/src/src/ap/ubus.c b/package/network/services/hostapd/src/src/ap/ubus.c
index 6ff2257c32..66eba99901 100644
--- a/package/network/services/hostapd/src/src/ap/ubus.c
+++ b/package/network/services/hostapd/src/src/ap/ubus.c
@@ -1907,6 +1907,9 @@ void hostapd_ubus_notify_radar_detected(struct hostapd_iface *iface, int frequen
struct hostapd_data *hapd;
int i;
+ if (!ctx)
+ return;
+
blob_buf_init(&b, 0);
blobmsg_add_u16(&b, "frequency", frequency);
blobmsg_add_u16(&b, "width", chan_width);
diff --git a/package/network/services/uhttpd/Makefile b/package/network/services/uhttpd/Makefile
index 02a02405fd..37117bf911 100644
--- a/package/network/services/uhttpd/Makefile
+++ b/package/network/services/uhttpd/Makefile
@@ -8,7 +8,7 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=uhttpd
-PKG_RELEASE:=1
+PKG_RELEASE:=2
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL=$(PROJECT_GIT)/project/uhttpd.git
@@ -107,6 +107,13 @@ define Package/uhttpd-mod-ubus/install
$(INSTALL_DATA) ./files/ubus.default $(1)/etc/uci-defaults/00_uhttpd_ubus
endef
+define Package/uhttpd-mod-ubus/postinst
+#!/bin/sh
+if [ -z "$${IPKG_INSTROOT}" ]; then
+ /etc/init.d/uhttpd reload
+fi
+endef
+
define Package/uhttpd-mod-ucode/install
$(INSTALL_DIR) $(1)/usr/lib
$(INSTALL_BIN) $(PKG_BUILD_DIR)/uhttpd_ucode.so $(1)/usr/lib/
diff --git a/package/network/services/uhttpd/files/ubus.default b/package/network/services/uhttpd/files/ubus.default
index 474016c1c5..d0a218a0ad 100644
--- a/package/network/services/uhttpd/files/ubus.default
+++ b/package/network/services/uhttpd/files/ubus.default
@@ -1,17 +1,11 @@
#!/bin/sh
-commit=0
-
if [ -z "$(uci -q get uhttpd.main.ubus_prefix)" ]; then
uci set uhttpd.main.ubus_prefix=/ubus
- commit=1
fi
[ "$(uci -q get uhttpd.main.ubus_socket)" = "/var/run/ubus.sock" ] && {
uci set uhttpd.main.ubus_socket='/var/run/ubus/ubus.sock'
- commit=1
}
-[ "$commit" = 1 ] && uci commit uhttpd && /etc/init.d/uhttpd reload
-
exit 0
diff --git a/package/network/utils/iproute2/Makefile b/package/network/utils/iproute2/Makefile
index c21b78916b..2f9d2f2bc9 100644
--- a/package/network/utils/iproute2/Makefile
+++ b/package/network/utils/iproute2/Makefile
@@ -8,12 +8,12 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=iproute2
-PKG_VERSION:=6.6.0
+PKG_VERSION:=6.7.0
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
PKG_SOURCE_URL:=@KERNEL/linux/utils/net/iproute2
-PKG_HASH:=8738c804afd09f0bf756937f0c3de23117832a98d8cbbf50386cf5005cd613ce
+PKG_HASH:=ff942dd9828d7d1f867f61fe72ce433078c31e5d8e4a78e20f02cb5892e8841d
PKG_BUILD_PARALLEL:=1
PKG_BUILD_DEPENDS:=iptables
PKG_LICENSE:=GPL-2.0
diff --git a/package/network/utils/iproute2/patches/100-configure.patch b/package/network/utils/iproute2/patches/100-configure.patch
deleted file mode 100644
index 2d4fb7b9b3..0000000000
--- a/package/network/utils/iproute2/patches/100-configure.patch
+++ /dev/null
@@ -1,12 +0,0 @@
---- a/configure
-+++ b/configure
-@@ -36,7 +36,8 @@ int main(int argc, char **argv) {
- }
- EOF
-
-- if $CC -I$INCLUDE -o $TMPDIR/atmtest $TMPDIR/atmtest.c -latm >/dev/null 2>&1; then
-+# OpenWrt: disable ATM support even if present on host system
-+ if [ 1 -eq 0 ]; then
- echo "TC_CONFIG_ATM:=y" >>$CONFIG
- echo yes
- else
diff --git a/package/network/utils/iproute2/patches/130-no_netem_tipc_dcb_man_vdpa.patch b/package/network/utils/iproute2/patches/130-no_netem_tipc_dcb_man_vdpa.patch
index ba6ca4c9b2..8c70c14489 100644
--- a/package/network/utils/iproute2/patches/130-no_netem_tipc_dcb_man_vdpa.patch
+++ b/package/network/utils/iproute2/patches/130-no_netem_tipc_dcb_man_vdpa.patch
@@ -1,6 +1,6 @@
--- a/Makefile
+++ b/Makefile
-@@ -67,9 +67,9 @@ WFLAGS += -Wmissing-declarations -Wold-s
+@@ -68,9 +68,9 @@ WFLAGS += -Wmissing-declarations -Wold-s
CFLAGS := $(WFLAGS) $(CCOPTS) -I../include -I../include/uapi $(DEFINES) $(CFLAGS)
YACCFLAGS = -d -t -v
diff --git a/package/network/utils/iproute2/patches/140-keep_libmnl_optional.patch b/package/network/utils/iproute2/patches/140-keep_libmnl_optional.patch
index a8cdd103ba..0d22875751 100644
--- a/package/network/utils/iproute2/patches/140-keep_libmnl_optional.patch
+++ b/package/network/utils/iproute2/patches/140-keep_libmnl_optional.patch
@@ -1,6 +1,6 @@
--- a/configure
+++ b/configure
-@@ -411,7 +411,7 @@ check_tirpc()
+@@ -391,7 +391,7 @@ check_tirpc()
check_mnl()
{
diff --git a/package/network/utils/iproute2/patches/145-keep_libelf_optional.patch b/package/network/utils/iproute2/patches/145-keep_libelf_optional.patch
index 0c5c3f59ed..bffacddb21 100644
--- a/package/network/utils/iproute2/patches/145-keep_libelf_optional.patch
+++ b/package/network/utils/iproute2/patches/145-keep_libelf_optional.patch
@@ -1,6 +1,6 @@
--- a/configure
+++ b/configure
-@@ -266,7 +266,7 @@ EOF
+@@ -246,7 +246,7 @@ EOF
check_elf()
{
diff --git a/package/network/utils/iproute2/patches/150-keep_libcap_optional.patch b/package/network/utils/iproute2/patches/150-keep_libcap_optional.patch
index 4cce2c3ca6..570e9c7038 100644
--- a/package/network/utils/iproute2/patches/150-keep_libcap_optional.patch
+++ b/package/network/utils/iproute2/patches/150-keep_libcap_optional.patch
@@ -1,6 +1,6 @@
--- a/configure
+++ b/configure
-@@ -469,7 +469,7 @@ EOF
+@@ -449,7 +449,7 @@ EOF
check_cap()
{
diff --git a/package/network/utils/iproute2/patches/155-keep_tirpc_optional.patch b/package/network/utils/iproute2/patches/155-keep_tirpc_optional.patch
index 28ba7e5217..4d7fb76308 100644
--- a/package/network/utils/iproute2/patches/155-keep_tirpc_optional.patch
+++ b/package/network/utils/iproute2/patches/155-keep_tirpc_optional.patch
@@ -1,6 +1,6 @@
--- a/configure
+++ b/configure
-@@ -398,7 +398,7 @@ check_selinux()
+@@ -378,7 +378,7 @@ check_selinux()
check_tirpc()
{
diff --git a/package/network/utils/iproute2/patches/190-fix-nls-rpath-link.patch b/package/network/utils/iproute2/patches/190-fix-nls-rpath-link.patch
index c7fceb2e22..765e4ad2e8 100644
--- a/package/network/utils/iproute2/patches/190-fix-nls-rpath-link.patch
+++ b/package/network/utils/iproute2/patches/190-fix-nls-rpath-link.patch
@@ -1,6 +1,6 @@
--- a/configure
+++ b/configure
-@@ -290,7 +290,7 @@ int main(int argc, char **argv) {
+@@ -270,7 +270,7 @@ int main(int argc, char **argv) {
}
EOF
@@ -9,7 +9,7 @@
local ret=$?
rm -f $TMPDIR/libbpf_test.c $TMPDIR/libbpf_test
-@@ -308,7 +308,7 @@ int main(int argc, char **argv) {
+@@ -288,7 +288,7 @@ int main(int argc, char **argv) {
}
EOF
diff --git a/package/network/utils/iproute2/patches/200-drop_libbsd_dependency.patch b/package/network/utils/iproute2/patches/200-drop_libbsd_dependency.patch
index d1948860e8..92bf5cb66d 100644
--- a/package/network/utils/iproute2/patches/200-drop_libbsd_dependency.patch
+++ b/package/network/utils/iproute2/patches/200-drop_libbsd_dependency.patch
@@ -1,12 +1,12 @@
--- a/configure
+++ b/configure
-@@ -455,14 +455,8 @@ EOF
+@@ -435,14 +435,8 @@ EOF
if $CC -I$INCLUDE -o $TMPDIR/strtest $TMPDIR/strtest.c >/dev/null 2>&1; then
echo "no"
else
- if ${PKG_CONFIG} libbsd --exists; then
-- echo 'CFLAGS += -DHAVE_LIBBSD' `${PKG_CONFIG} libbsd --cflags` >>$CONFIG
-- echo 'LDLIBS +=' `${PKG_CONFIG} libbsd --libs` >> $CONFIG
+- echo 'CFLAGS += -DHAVE_LIBBSD' "$(${PKG_CONFIG} libbsd --cflags)" >>$CONFIG
+- echo 'LDLIBS +=' "$(${PKG_CONFIG} libbsd --libs)" >> $CONFIG
- echo "no"
- else
- echo 'CFLAGS += -DNEED_STRLCPY' >>$CONFIG
diff --git a/package/network/utils/iproute2/patches/300-selinux-configurable.patch b/package/network/utils/iproute2/patches/300-selinux-configurable.patch
index 817abf7d17..a611ba75f0 100644
--- a/package/network/utils/iproute2/patches/300-selinux-configurable.patch
+++ b/package/network/utils/iproute2/patches/300-selinux-configurable.patch
@@ -1,6 +1,6 @@
--- a/configure
+++ b/configure
-@@ -385,7 +385,7 @@ check_libbpf()
+@@ -365,7 +365,7 @@ check_libbpf()
check_selinux()
# SELinux is a compile time option in the ss utility
{
diff --git a/package/network/utils/iwinfo/Makefile b/package/network/utils/iwinfo/Makefile
index c6a14956fd..4fef2babbb 100644
--- a/package/network/utils/iwinfo/Makefile
+++ b/package/network/utils/iwinfo/Makefile
@@ -11,9 +11,9 @@ PKG_RELEASE:=1
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL=$(PROJECT_GIT)/project/iwinfo.git
-PKG_SOURCE_DATE:=2023-07-01
-PKG_SOURCE_VERSION:=ca79f64154b107f192ec3c1ba631816cb8b07922
-PKG_MIRROR_HASH:=5eddf584a1c3ed5637162d6bfc573ed1ce3691fcb38bdd55bf9f1e11e82ccc46
+PKG_SOURCE_DATE:=2023-11-19
+PKG_SOURCE_VERSION:=a34977c0760c93480491c8eb94da656b57d7f4cc
+PKG_MIRROR_HASH:=cb01671a2a9155f8ba55751ab1fe28488c5821212dd97ba5b79653640abb787e
PKG_MAINTAINER:=Jo-Philipp Wich
PKG_LICENSE:=GPL-2.0
diff --git a/package/network/utils/uqmi/Makefile b/package/network/utils/uqmi/Makefile
index 26b588c7ef..6753e47cdb 100644
--- a/package/network/utils/uqmi/Makefile
+++ b/package/network/utils/uqmi/Makefile
@@ -5,9 +5,9 @@ PKG_RELEASE:=1
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL=$(PROJECT_GIT)/project/uqmi.git
-PKG_SOURCE_DATE:=2023-10-29
-PKG_SOURCE_VERSION:=eea292401c388a4eb59c0caf5d00aa046c6059f4
-PKG_MIRROR_HASH:=744f7e2010bd16ca08b03551287a0e1d119e1e6e099f8abf935328d3d1344893
+PKG_SOURCE_DATE:=2024-01-16
+PKG_SOURCE_VERSION:=c3488b831ce6285c8107704156b9b8ed7d59deb3
+PKG_MIRROR_HASH:=3ca47f2ae22bc1adcb05560e6dbea824063fa914670c13f107e7e78f33399779
PKG_MAINTAINER:=Matti Laakso
PKG_LICENSE:=GPL-2.0
diff --git a/package/network/utils/uqmi/files/lib/netifd/proto/qmi.sh b/package/network/utils/uqmi/files/lib/netifd/proto/qmi.sh
index f8e655455a..49fd87ff9d 100755
--- a/package/network/utils/uqmi/files/lib/netifd/proto/qmi.sh
+++ b/package/network/utils/uqmi/files/lib/netifd/proto/qmi.sh
@@ -85,8 +85,8 @@ proto_qmi_setup() {
echo "Waiting for SIM initialization"
local uninitialized_timeout=0
# timeout 3s for first call to avoid hanging uqmi
- uqmi -d "$device" --get-pin-status -t 3000 > /dev/null 2>&1
- while uqmi -s -d "$device" --get-pin-status | grep '"UIM uninitialized"' > /dev/null; do
+ uqmi -d "$device" -t 3000 --get-pin-status > /dev/null 2>&1
+ while uqmi -s -d "$device" -t 1000 --get-pin-status | grep '"UIM uninitialized"' > /dev/null; do
[ -e "$device" ] || return 1
if [ "$uninitialized_timeout" -lt "$timeout" -o "$timeout" = "0" ]; then
let uninitialized_timeout++
@@ -102,7 +102,7 @@ proto_qmi_setup() {
# Check if UIM application is stuck in illegal state
local uim_state_timeout=0
while true; do
- json_load "$(uqmi -s -d "$device" --uim-get-sim-state)"
+ json_load "$(uqmi -s -d "$device" -t 1000 --uim-get-sim-state)"
json_get_var card_application_state card_application_state
# SIM card is either completely absent or state is labeled as illegal
@@ -111,9 +111,9 @@ proto_qmi_setup() {
echo "SIM in illegal state - Power-cycling SIM"
# Try to reset SIM application
- uqmi -d "$device" --uim-power-off --uim-slot 1
+ uqmi -d "$device" -t 1000 --uim-power-off --uim-slot 1
sleep 3
- uqmi -d "$device" --uim-power-on --uim-slot 1
+ uqmi -d "$device" -t 1000 --uim-power-on --uim-slot 1
if [ "$uim_state_timeout" -lt "$timeout" ] || [ "$timeout" = "0" ]; then
let uim_state_timeout++
@@ -130,10 +130,10 @@ proto_qmi_setup() {
fi
done
- if uqmi -s -d "$device" --uim-get-sim-state | grep -q '"Not supported"\|"Invalid QMI command"' &&
- uqmi -s -d "$device" --get-pin-status | grep -q '"Not supported"\|"Invalid QMI command"' ; then
+ if uqmi -s -d "$device" -t 1000 --uim-get-sim-state | grep -q '"Not supported"\|"Invalid QMI command"' &&
+ uqmi -s -d "$device" -t 1000 --get-pin-status | grep -q '"Not supported"\|"Invalid QMI command"' ; then
[ -n "$pincode" ] && {
- uqmi -s -d "$device" --verify-pin1 "$pincode" > /dev/null || uqmi -s -d "$device" --uim-verify-pin1 "$pincode" > /dev/null || {
+ uqmi -s -d "$device" -t 1000 --verify-pin1 "$pincode" > /dev/null || uqmi -s -d "$device" -t 1000 --uim-verify-pin1 "$pincode" > /dev/null || {
echo "Unable to verify PIN"
proto_notify_error "$interface" PIN_FAILED
proto_block_restart "$interface"
@@ -141,10 +141,10 @@ proto_qmi_setup() {
}
}
else
- json_load "$(uqmi -s -d "$device" --get-pin-status)"
+ json_load "$(uqmi -s -d "$device" -t 1000 --get-pin-status)"
json_get_var pin1_status pin1_status
if [ -z "$pin1_status" ]; then
- json_load "$(uqmi -s -d "$device" --uim-get-sim-state)"
+ json_load "$(uqmi -s -d "$device" -t 1000 --uim-get-sim-state)"
json_get_var pin1_status pin1_status
fi
json_get_var pin1_verify_tries pin1_verify_tries
@@ -167,7 +167,7 @@ proto_qmi_setup() {
return 1
}
if [ -n "$pincode" ]; then
- uqmi -s -d "$device" --verify-pin1 "$pincode" > /dev/null 2>&1 || uqmi -s -d "$device" --uim-verify-pin1 "$pincode" > /dev/null 2>&1 || {
+ uqmi -s -d "$device" -t 1000 --verify-pin1 "$pincode" > /dev/null 2>&1 || uqmi -s -d "$device" -t 1000 --uim-verify-pin1 "$pincode" > /dev/null 2>&1 || {
echo "Unable to verify PIN"
proto_notify_error "$interface" PIN_FAILED
proto_block_restart "$interface"
@@ -194,7 +194,7 @@ proto_qmi_setup() {
fi
if [ -n "$plmn" ]; then
- json_load "$(uqmi -s -d "$device" --get-plmn)"
+ json_load "$(uqmi -s -d "$device" -t 1000 --get-plmn)"
json_get_var plmn_mode mode
json_get_vars mcc mnc || {
mcc=0
@@ -218,16 +218,16 @@ proto_qmi_setup() {
fi
# Cleanup current state if any
- uqmi -s -d "$device" --stop-network 0xffffffff --autoconnect > /dev/null 2>&1
- uqmi -s -d "$device" --set-ip-family ipv6 --stop-network 0xffffffff --autoconnect > /dev/null 2>&1
+ uqmi -s -d "$device" -t 1000 --stop-network 0xffffffff --autoconnect > /dev/null 2>&1
+ uqmi -s -d "$device" -t 1000 --set-ip-family ipv6 --stop-network 0xffffffff --autoconnect > /dev/null 2>&1
# Go online
- uqmi -s -d "$device" --set-device-operating-mode online > /dev/null 2>&1
+ uqmi -s -d "$device" -t 1000 --set-device-operating-mode online > /dev/null 2>&1
# Set IP format
- uqmi -s -d "$device" --set-data-format 802.3 > /dev/null 2>&1
- uqmi -s -d "$device" --wda-set-data-format 802.3 > /dev/null 2>&1
- dataformat="$(uqmi -s -d "$device" --wda-get-data-format)"
+ uqmi -s -d "$device" -t 1000 --set-data-format 802.3 > /dev/null 2>&1
+ uqmi -s -d "$device" -t 1000 --wda-set-data-format 802.3 > /dev/null 2>&1
+ dataformat="$(uqmi -s -d "$device" -t 1000 --wda-get-data-format)"
if [ "$dataformat" = '"raw-ip"' ]; then
@@ -240,13 +240,13 @@ proto_qmi_setup() {
echo "Y" > /sys/class/net/$ifname/qmi/raw_ip
fi
- uqmi -s -d "$device" --sync > /dev/null 2>&1
+ uqmi -s -d "$device" -t 1000 --sync > /dev/null 2>&1
- uqmi -s -d "$device" --network-register > /dev/null 2>&1
+ uqmi -s -d "$device" -t 20000 --network-register > /dev/null 2>&1
# PLMN selection must happen after the call to network-register
if [ -n "$mcc" -a -n "$mnc" ]; then
- uqmi -s -d "$device" --set-plmn --mcc "$mcc" --mnc "$mnc" > /dev/null 2>&1 || {
+ uqmi -s -d "$device" -t 1000 --set-plmn --mcc "$mcc" --mnc "$mnc" > /dev/null 2>&1 || {
echo "Unable to set PLMN"
proto_notify_error "$interface" PLMN_FAILED
proto_block_restart "$interface"
@@ -255,10 +255,10 @@ proto_qmi_setup() {
fi
[ -n "$modes" ] && {
- uqmi -s -d "$device" --set-network-modes "$modes" > /dev/null 2>&1
+ uqmi -s -d "$device" -t 1000 --set-network-modes "$modes" > /dev/null 2>&1
sleep 3
# Scan network to not rely on registration-timeout after RAT change
- uqmi -s -d "$device" --network-scan > /dev/null 2>&1
+ uqmi -s -d "$device" -t 30000 --network-scan > /dev/null 2>&1
}
echo "Waiting for network registration"
@@ -266,7 +266,7 @@ proto_qmi_setup() {
local registration_timeout=0
local registration_state=""
while true; do
- registration_state=$(uqmi -s -d "$device" --get-serving-system 2>/dev/null | jsonfilter -e "@.registration" 2>/dev/null)
+ registration_state=$(uqmi -s -d "$device" -t 1000 --get-serving-system 2>/dev/null | jsonfilter -e "@.registration" 2>/dev/null)
[ "$registration_state" = "registered" ] && break
@@ -274,7 +274,7 @@ proto_qmi_setup() {
if [ "$registration_timeout" -lt "$timeout" ] || [ "$timeout" = "0" ]; then
[ "$registration_state" = "searching" ] || {
echo "Device stopped network registration. Restart network registration"
- uqmi -s -d "$device" --network-register > /dev/null 2>&1
+ uqmi -s -d "$device" -t 20000 --network-register > /dev/null 2>&1
}
let registration_timeout++
sleep 1
@@ -302,7 +302,7 @@ proto_qmi_setup() {
# establish a non-LTE data session.
profile_pdptype="$pdptype"
[ "$profile_pdptype" = "ip" ] && profile_pdptype="ipv4"
- uqmi -s -d "$device" --modify-profile "3gpp,1" --apn "$apn" --pdp-type "$profile_pdptype" > /dev/null 2>&1
+ uqmi -s -d "$device" -t 1000 --modify-profile "3gpp,1" --apn "$apn" --pdp-type "$profile_pdptype" > /dev/null 2>&1
if [ "$pdptype" = "ip" ]; then
[ -z "$autoconnect" ] && autoconnect=1
@@ -312,16 +312,16 @@ proto_qmi_setup() {
fi
[ "$pdptype" = "ip" -o "$pdptype" = "ipv4v6" ] && {
- cid_4=$(uqmi -s -d "$device" --get-client-id wds)
+ cid_4=$(uqmi -s -d "$device" -t 1000 --get-client-id wds)
if ! [ "$cid_4" -eq "$cid_4" ] 2> /dev/null; then
echo "Unable to obtain client ID"
proto_notify_error "$interface" NO_CID
return 1
fi
- uqmi -s -d "$device" --set-client-id wds,"$cid_4" --set-ip-family ipv4 > /dev/null 2>&1
+ uqmi -s -d "$device" -t 1000 --set-client-id wds,"$cid_4" --set-ip-family ipv4 > /dev/null 2>&1
- pdh_4=$(uqmi -s -d "$device" --set-client-id wds,"$cid_4" \
+ pdh_4=$(uqmi -s -d "$device" -t 5000 --set-client-id wds,"$cid_4" \
--start-network \
${apn:+--apn $apn} \
${profile:+--profile $profile} \
@@ -333,35 +333,35 @@ proto_qmi_setup() {
# pdh_4 is a numeric value on success
if ! [ "$pdh_4" -eq "$pdh_4" ] 2> /dev/null; then
echo "Unable to connect IPv4"
- uqmi -s -d "$device" --set-client-id wds,"$cid_4" --release-client-id wds > /dev/null 2>&1
+ uqmi -s -d "$device" -t 1000 --set-client-id wds,"$cid_4" --release-client-id wds > /dev/null 2>&1
proto_notify_error "$interface" CALL_FAILED
return 1
fi
# Check data connection state
- connstat=$(uqmi -s -d "$device" --set-client-id wds,"$cid_4" --get-data-status)
+ connstat=$(uqmi -s -d "$device" -t 1000 --set-client-id wds,"$cid_4" --get-data-status)
[ "$connstat" == '"connected"' ] || {
echo "No data link!"
- uqmi -s -d "$device" --set-client-id wds,"$cid_4" --release-client-id wds > /dev/null 2>&1
+ uqmi -s -d "$device" -t 1000 --set-client-id wds,"$cid_4" --release-client-id wds > /dev/null 2>&1
proto_notify_error "$interface" CALL_FAILED
return 1
}
}
[ "$pdptype" = "ipv6" -o "$pdptype" = "ipv4v6" ] && {
- cid_6=$(uqmi -s -d "$device" --get-client-id wds)
+ cid_6=$(uqmi -s -d "$device" -t 1000 --get-client-id wds)
if ! [ "$cid_6" -eq "$cid_6" ] 2> /dev/null; then
echo "Unable to obtain client ID"
proto_notify_error "$interface" NO_CID
return 1
fi
- uqmi -s -d "$device" --set-client-id wds,"$cid_6" --set-ip-family ipv6 > /dev/null 2>&1
+ uqmi -s -d "$device" -t 1000 --set-client-id wds,"$cid_6" --set-ip-family ipv6 > /dev/null 2>&1
: "${v6apn:=${apn}}"
: "${v6profile:=${profile}}"
- pdh_6=$(uqmi -s -d "$device" --set-client-id wds,"$cid_6" \
+ pdh_6=$(uqmi -s -d "$device" -t 5000 --set-client-id wds,"$cid_6" \
--start-network \
${v6apn:+--apn $v6apn} \
${v6profile:+--profile $v6profile} \
@@ -373,16 +373,16 @@ proto_qmi_setup() {
# pdh_6 is a numeric value on success
if ! [ "$pdh_6" -eq "$pdh_6" ] 2> /dev/null; then
echo "Unable to connect IPv6"
- uqmi -s -d "$device" --set-client-id wds,"$cid_6" --release-client-id wds > /dev/null 2>&1
+ uqmi -s -d "$device" -t 1000 --set-client-id wds,"$cid_6" --release-client-id wds > /dev/null 2>&1
proto_notify_error "$interface" CALL_FAILED
return 1
fi
# Check data connection state
- connstat=$(uqmi -s -d "$device" --set-client-id wds,"$cid_6" --set-ip-family ipv6 --get-data-status)
+ connstat=$(uqmi -s -d "$device" -t 1000 --set-client-id wds,"$cid_6" --set-ip-family ipv6 --get-data-status)
[ "$connstat" == '"connected"' ] || {
echo "No data link!"
- uqmi -s -d "$device" --set-client-id wds,"$cid_6" --release-client-id wds > /dev/null 2>&1
+ uqmi -s -d "$device" -t 1000 --set-client-id wds,"$cid_6" --release-client-id wds > /dev/null 2>&1
proto_notify_error "$interface" CALL_FAILED
return 1
}
@@ -407,7 +407,7 @@ proto_qmi_setup() {
[ -n "$pdh_6" ] && {
if [ -z "$dhcpv6" -o "$dhcpv6" = 0 ]; then
- json_load "$(uqmi -s -d $device --set-client-id wds,$cid_6 --get-current-settings)"
+ json_load "$(uqmi -s -d $device -t 1000 --set-client-id wds,$cid_6 --get-current-settings)"
json_select ipv6
json_get_var ip_6 ip
json_get_var gateway_6 gateway
@@ -449,7 +449,7 @@ proto_qmi_setup() {
[ -n "$pdh_4" ] && {
if [ "$dhcp" = 0 ]; then
- json_load "$(uqmi -s -d $device --set-client-id wds,$cid_4 --get-current-settings)"
+ json_load "$(uqmi -s -d $device -t 1000 --set-client-id wds,$cid_4 --get-current-settings)"
json_select ipv4
json_get_var ip_4 ip
json_get_var gateway_4 gateway
@@ -492,16 +492,16 @@ qmi_wds_stop() {
[ -n "$cid" ] || return
- uqmi -s -d "$device" --set-client-id wds,"$cid" \
+ uqmi -s -d "$device" -t 1000 --set-client-id wds,"$cid" \
--stop-network 0xffffffff \
--autoconnect > /dev/null 2>&1
[ -n "$pdh" ] && {
- uqmi -s -d "$device" --set-client-id wds,"$cid" \
+ uqmi -s -d "$device" -t 1000 --set-client-id wds,"$cid" \
--stop-network "$pdh" > /dev/null 2>&1
}
- uqmi -s -d "$device" --set-client-id wds,"$cid" \
+ uqmi -s -d "$device" -t 1000 --set-client-id wds,"$cid" \
--release-client-id wds > /dev/null 2>&1
}
diff --git a/package/network/utils/wireguard-tools/Makefile b/package/network/utils/wireguard-tools/Makefile
index 5b1fab057d..e2a86c97d8 100644
--- a/package/network/utils/wireguard-tools/Makefile
+++ b/package/network/utils/wireguard-tools/Makefile
@@ -11,7 +11,7 @@ include $(TOPDIR)/rules.mk
PKG_NAME:=wireguard-tools
PKG_VERSION:=1.0.20210914
-PKG_RELEASE:=2
+PKG_RELEASE:=3
PKG_SOURCE:=wireguard-tools-$(PKG_VERSION).tar.xz
PKG_SOURCE_URL:=https://git.zx2c4.com/wireguard-tools/snapshot/
diff --git a/package/network/utils/wireguard-tools/files/wireguard_watchdog b/package/network/utils/wireguard-tools/files/wireguard_watchdog
index 0126f699bb..fc90f4a25b 100644
--- a/package/network/utils/wireguard-tools/files/wireguard_watchdog
+++ b/package/network/utils/wireguard-tools/files/wireguard_watchdog
@@ -59,7 +59,7 @@ check_peer_activity() {
}
# query ubus for all active wireguard interfaces
-wg_ifaces=$(ubus -S call network.interface dump | jsonfilter -e '@.interface[@.up=true]' | jsonfilter -a -e '@[@.proto="wireguard"].interface' | tr "\n" " ")
+eval $(ubus -S call network.interface dump | jsonfilter -e 'wg_ifaces=@.interface[@.up=true && @.proto="wireguard"].interface')
# check every peer in every active wireguard interface
config_load network
diff --git a/package/system/fstools/Makefile b/package/system/fstools/Makefile
index 7e3779e61e..717e59f836 100644
--- a/package/system/fstools/Makefile
+++ b/package/system/fstools/Makefile
@@ -12,9 +12,9 @@ PKG_RELEASE:=1
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL=$(PROJECT_GIT)/project/fstools.git
-PKG_MIRROR_HASH:=e9953b038a2c2ed2c4783b66d1c0d0cea0deab2f2bfa6712929243e3197c3bdd
-PKG_SOURCE_DATE:=2023-05-28
-PKG_SOURCE_VERSION:=3a07943e1e60699ba952e605f0cf23c82de356cb
+PKG_MIRROR_HASH:=32e39891455b602e9deb367c9ce2d099dc72353fad0bf0433307416925f7b393
+PKG_SOURCE_DATE:=2024-01-22
+PKG_SOURCE_VERSION:=08cd7083cac4bddf88459efa0881ee52858e7d0a
CMAKE_INSTALL:=1
PKG_LICENSE:=GPL-2.0
diff --git a/package/system/mtd/src/Makefile b/package/system/mtd/src/Makefile
index e204ecb221..a1277a6739 100644
--- a/package/system/mtd/src/Makefile
+++ b/package/system/mtd/src/Makefile
@@ -20,6 +20,7 @@ obj.mvebu = linksys_bootcount.o
obj.kirkwood = linksys_bootcount.o
obj.ipq806x = linksys_bootcount.o
obj.ipq40xx = linksys_bootcount.o
+obj.qualcommax = linksys_bootcount.o
ifdef FIS_SUPPORT
obj += fis.o
diff --git a/package/system/ubox/Makefile b/package/system/ubox/Makefile
index ed55617cfa..e74ae00b3f 100644
--- a/package/system/ubox/Makefile
+++ b/package/system/ubox/Makefile
@@ -5,9 +5,9 @@ PKG_RELEASE:=1
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL=$(PROJECT_GIT)/project/ubox.git
-PKG_SOURCE_DATE:=2023-11-30
-PKG_SOURCE_VERSION:=c08709cceb554cba02c935d1442f6a042fe6b2a8
-PKG_MIRROR_HASH:=719ae701546df7c5972352d778a980cbc9f48623dda86443398698837124818b
+PKG_SOURCE_DATE:=2024-01-24
+PKG_SOURCE_VERSION:=2c5887cb46883a28d69071c4349c3dabbbe3972c
+PKG_MIRROR_HASH:=0ded95382fd3a2e9751ea5fdd16c2afb7dcc52499f6ab47951c5db9525a4faa9
CMAKE_INSTALL:=1
PKG_LICENSE:=GPL-2.0
diff --git a/package/utils/bcm27xx-userland/Makefile b/package/utils/bcm27xx-userland/Makefile
index 9d7f6dd822..461cf3e954 100644
--- a/package/utils/bcm27xx-userland/Makefile
+++ b/package/utils/bcm27xx-userland/Makefile
@@ -8,12 +8,12 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=bcm27xx-userland
-PKG_VERSION:=c4fd1b8986c6d6d4ae5cd51e65a8bbeb495dfa4e
+PKG_VERSION:=96a7334ae9d5fc9db7ac92e59852377df63f1848
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://codeload.github.com/raspberrypi/userland/tar.gz/$(PKG_VERSION)?
-PKG_HASH:=ab8a5b27c34cf1b97de87b895448a6355229f73b679866b47c51a723273cc8ae
+PKG_HASH:=557ee8390de5db1ed90386c1ba0221e7f6f9dd87e858a00a34be3b1f9ede193f
PKG_FLAGS:=nonshared
@@ -41,7 +41,6 @@ define Package/bcm27xx-userland
CATEGORY:=Utilities
DEPENDS:=@TARGET_bcm27xx
TITLE:=BCM27xx userland tools
- DEFAULT:=y if TARGET_bcm27xx
endef
define Package/bcm27xx-userland/description
diff --git a/package/utils/bcm27xx-utils/Makefile b/package/utils/bcm27xx-utils/Makefile
new file mode 100644
index 0000000000..ec41b70c30
--- /dev/null
+++ b/package/utils/bcm27xx-utils/Makefile
@@ -0,0 +1,64 @@
+# SPDX-License-Identifier: GPL-2.0-only
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=bcm27xx-utils
+PKG_VERSION:=2024-01-18
+PKG_RELEASE:=1
+
+PKG_SOURCE_PROTO:=git
+PKG_SOURCE_URL:=https://github.com/raspberrypi/utils.git
+PKG_SOURCE_VERSION:=e65f5ec102e74218cda7da9fdc8b1caa0fd1127d
+PKG_MIRROR_HASH:=14f4aa1a8115240d702251bc399b53cbfa0928813f70a73ca27b22da94b696d2
+
+PKG_FLAGS:=nonshared
+PKG_BUILD_FLAGS:=no-lto
+
+PKG_LICENSE:=BSD-3-Clause
+PKG_LICENSE_FILES:=LICENCE
+
+CMAKE_INSTALL:=1
+
+include $(INCLUDE_DIR)/package.mk
+include $(INCLUDE_DIR)/cmake.mk
+
+define Package/bcm27xx-utils
+ SECTION:=utils
+ CATEGORY:=Utilities
+ DEPENDS:=@TARGET_bcm27xx +libfdt
+ TITLE:=BCM27xx scripts and simple applications
+ PROVIDES:=bcm27xx-userland
+endef
+
+define Package/bcm27xx-utils/description
+ BCM27xx scripts and simple applications.
+ Replaces bcm27xx-userland scripts and applications.
+endef
+
+define Package/bcm27xx-utils/install
+ $(INSTALL_DIR) $(1)/usr/bin
+
+ $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/dtmerge $(1)/usr/bin
+ $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/dtoverlay $(1)/usr/bin
+ $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/dtparam $(1)/usr/bin
+
+ $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/eepdump $(1)/usr/bin
+ $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/eepflash.sh $(1)/usr/bin
+ $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/eepmake $(1)/usr/bin
+
+ $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/otpset $(1)/usr/bin
+
+ $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/overlaycheck $(1)/usr/bin
+ $(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/bin/overlaycheck_exclusions.txt $(1)/usr/bin
+ $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/ovmerge $(1)/usr/bin
+
+ $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/pinctrl $(1)/usr/bin
+
+ $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/raspinfo $(1)/usr/bin
+
+ $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/vcgencmd $(1)/usr/bin
+ $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/vclog $(1)/usr/bin
+ $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/vcmailbox $(1)/usr/bin
+endef
+
+$(eval $(call BuildPackage,bcm27xx-utils))
diff --git a/package/utils/bcm27xx-utils/patches/0001-raspinfo-adapt-to-OpenWrt.patch b/package/utils/bcm27xx-utils/patches/0001-raspinfo-adapt-to-OpenWrt.patch
new file mode 100644
index 0000000000..9dd6d99626
--- /dev/null
+++ b/package/utils/bcm27xx-utils/patches/0001-raspinfo-adapt-to-OpenWrt.patch
@@ -0,0 +1,255 @@
+From 0db3fb3119eda8c2360454c2a01f84602a879c38 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?=
+Date: Tue, 16 Jan 2024 15:32:12 +0100
+Subject: [PATCH] raspinfo: adapt to OpenWrt
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Signed-off-by: Álvaro Fernández Rojas
+---
+ raspinfo/raspinfo | 186 ++++------------------------------------------
+ 1 file changed, 13 insertions(+), 173 deletions(-)
+
+--- a/raspinfo/raspinfo
++++ b/raspinfo/raspinfo
+@@ -1,4 +1,4 @@
+-#!/bin/bash
++#!/bin/sh
+
+ # Some of the regex's used in sed
+ # Catch basic IP6 address "s/\([0-9a-fA-F]\{1,4\}:\)\{7,7\}[0-9a-fA-F]\{1,4\}/y.y.y.y.y.y.y.y/g"
+@@ -6,147 +6,6 @@
+ # IP4 d.d.d.d decimal "s/\([0-9]\{1,3\}\.\)\{3,3\}[0-9]\{1,3\}/x.x.x.x/g"
+ # mac address "s/\([0-9a-fA-F]\{2,2\}\:\)\{5,5\}[0-9a-fA-F]\{2,2\}/m.m.m.m/g"
+
+-
+-display_info_drm() {
+- # If running X then can use xrandr, otherwise
+- # dump the /sys/class entries for the displays
+- if command -v xrandr > /dev/null &&
+- DISPLAY=${DISPLAY:-:0} xrandr --listmonitors &>/dev/null;
+- then
+- echo "Running (F)KMS and X"
+- echo
+-
+- DISPLAY=${DISPLAY:-:0} xrandr --verbose
+- else
+- echo "Running (F)KMS, console"
+- echo
+-
+- for card in /sys/class/drm/card[0-9]-*;
+- do
+- echo $card
+-
+- # if kmsprint isn't installed print basic mode info
+- if ! command -v kmsprint > /dev/null; then
+- if [ -f $card/modes ];
+- then
+- cat $card/modes
+- else
+- echo "No modes found"
+- fi
+- fi
+-
+- if [ -f $card/edid ];
+- then
+- base64 $card/edid
+- else
+- echo "No EDID found"
+- fi
+- echo
+- done
+- fi
+-
+- # kmsprint is more useful, but not always installed
+- echo
+- if command -v kmsprint > /dev/null; then
+- kmsprint
+- echo
+- kmsprint -m
+- else
+- echo "kmsprint is not installed. Install with: sudo apt install kms++-utils"
+- fi
+-
+- echo
+-
+- # dump the /sys/class entries for the displays
+- cardfound=0
+- for card in `seq 0 9`;
+- do
+- if sudo test -f "/sys/kernel/debug/dri/${card}/state";
+- then
+- for hdmi in 0 1;
+- do
+- if sudo test -f "/sys/kernel/debug/dri/${card}/hdmi${hdmi}_regs";
+- then
+- echo "HDMI${hdmi}: $(sudo cat /sys/kernel/debug/dri/$card/hdmi${hdmi}_regs | grep HOTPLUG)"
+- fi
+- done
+- echo
+- echo "/sys/kernel/debug/dri/$card/state:"
+- sudo cat "/sys/kernel/debug/dri/$card/state"
+- echo
+- cardfound=1
+- fi
+- done
+- if [ "$cardfound" == "0" ];
+- then
+- echo "kms state not found"
+- fi
+- echo
+-
+-}
+-
+-display_info_legacy() {
+- # Legacy mode
+- echo "Running Legacy framebuffer"
+- echo
+-
+- for card in `seq 0 9`;
+- do
+- F="/dev/fb${card}"
+- if test -e $F;
+- then
+- echo Framebuffer: $F
+- fbset -s -fb $F
+- fi
+- done
+-
+- disps=`tvservice -l | awk '/Display Number/{print substr($3,1,1)}'`
+-
+- tmp=$(mktemp)
+-
+- for display in $disps
+- do
+- echo
+- echo "Display: " $display
+-
+- tvservice -v $display -s
+- tvservice -v $display -n
+- tvservice -v $display -m CEA
+- tvservice -v $display -m DMT
+-
+- echo
+- tvservice -v $display -d $tmp > /dev/null
+- base64 $tmp
+- done
+-
+- rm $tmp
+-}
+-
+-display_info() {
+- # Check if we are running a KMS/DRM system
+-
+- if [ -d "/dev/dri" ];
+- then
+- display_info_drm
+- else
+- display_info_legacy
+- fi
+-}
+-
+-audio_info() {
+- aplay -l
+- echo
+- aplay -L
+- echo
+- systemctl --user status pipewire.socket pipewire.service pulseaudio.service pulseaudio.socket
+- echo
+- if command -v pactl > /dev/null; then
+- pactl info
+- else
+- echo pactl not installed
+- fi
+-}
+-
+ OUT=raspinfo.txt
+
+ rm -f $OUT
+@@ -163,8 +22,6 @@ echo
+ cat /etc/os-release | head -4
+ echo
+
+-cat /etc/rpi-issue
+-echo
+ uname -a
+
+ cat /proc/cpuinfo | tail -3
+@@ -190,17 +47,6 @@ echo
+ cat /proc/swaps
+
+ echo
+-echo "Package version information"
+-echo "---------------------------"
+-
+-apt-cache policy raspberrypi-ui-mods | head -2
+-apt-cache policy raspberrypi-sys-mods | head -2
+-apt-cache policy openbox | head -2
+-apt-cache policy lxpanel | head -2
+-apt-cache policy pcmanfm | head -2
+-apt-cache policy rpd-plym-splash | head -2
+-
+-echo
+ echo "Networking Information"
+ echo "----------------------"
+ echo
+@@ -212,21 +58,11 @@ echo "USB Information"
+ echo "---------------"
+ echo
+
+-lsusb -t
+-
+-echo
+-echo "Display Information"
+-echo "-------------------"
+-echo
+-
+-display_info
+-
+-echo
+-echo "Audio Information"
+-echo "-------------------"
+-echo
+-
+-audio_info
++if command -v lsusb > /dev/null; then
++ lsusb -t
++else
++ echo usbutils not installed
++fi
+
+ echo
+ echo "config.txt"
+@@ -250,7 +86,7 @@ echo "-----------------"
+ echo
+
+ if command -v pinctrl > /dev/null; then
+- sudo pinctrl 2>&1
++ pinctrl 2>&1
+ elif command -v raspi-gpio > /dev/null; then
+ raspi-gpio get 2>&1
+ else
+@@ -263,9 +99,9 @@ echo "------------------"
+ echo
+
+ if command -v vcdbg > /dev/null; then
+- sudo vcdbg log msg 2>&1
++ vcdbg log msg 2>&1
+ elif command -v vclog > /dev/null; then
+- sudo vclog --msg 2>&1
++ vclog --msg 2>&1
+ else
+ echo "vcdbg not found"
+ fi
+@@ -284,5 +120,9 @@ echo
+ echo "EEPROM"
+ echo "------"
+ echo
+-sudo rpi-eeprom-update
++if command -v rpi-eeprom-update > /dev/null; then
++ rpi-eeprom-update
++else
++ echo bcm27xx-eeprom not installed
++fi
+ fi
diff --git a/package/utils/busybox/Config-defaults.in b/package/utils/busybox/Config-defaults.in
index b3c3f9a0b2..515bea3d1d 100644
--- a/package/utils/busybox/Config-defaults.in
+++ b/package/utils/busybox/Config-defaults.in
@@ -1333,7 +1333,7 @@ config BUSYBOX_DEFAULT_USE_BB_CRYPT
default n
config BUSYBOX_DEFAULT_USE_BB_CRYPT_SHA
bool
- default n
+ default y
config BUSYBOX_DEFAULT_ADD_SHELL
bool
default n
@@ -1366,7 +1366,7 @@ config BUSYBOX_DEFAULT_CHPASSWD
default n
config BUSYBOX_DEFAULT_FEATURE_DEFAULT_PASSWD_ALGO
string
- default "md5"
+ default "sha256"
config BUSYBOX_DEFAULT_CRYPTPW
bool
default n
diff --git a/package/utils/jsonfilter/Makefile b/package/utils/jsonfilter/Makefile
index 56f96d52b5..fda66bbfb4 100644
--- a/package/utils/jsonfilter/Makefile
+++ b/package/utils/jsonfilter/Makefile
@@ -5,9 +5,9 @@ PKG_RELEASE:=1
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL=$(PROJECT_GIT)/project/jsonpath.git
-PKG_SOURCE_DATE:=2018-02-04
-PKG_SOURCE_VERSION:=c7e938d6582a436dddc938539e72dd1320625c54
-PKG_MIRROR_HASH:=0601b4d7aa5ee096e99388a57cb0701673ab58fccd6ed2984a2abbd4f846e045
+PKG_SOURCE_DATE:=2024-01-23
+PKG_SOURCE_VERSION:=594cfa86469c005972ba750614f5b3f1af84d0f6
+PKG_MIRROR_HASH:=70d2e0870b746920af4569631218c38c1dddfee4f5d029ec8ea0a67999bdafcd
CMAKE_INSTALL:=1
PKG_MAINTAINER:=Jo-Philipp Wich
diff --git a/scripts/ipkg-build b/scripts/ipkg-build
index 122cca2cb4..6abcc58832 100755
--- a/scripts/ipkg-build
+++ b/scripts/ipkg-build
@@ -181,7 +181,7 @@ for file_mode in $file_modes; do
done
$TAR -X "$tmp_dir"/tarX --format=gnu --numeric-owner --sort=name -cpf - --mtime="$TIMESTAMP" . | gzip -n - > "$tmp_dir"/data.tar.gz
-installed_size=$(stat -c "%s" "$tmp_dir"/data.tar.gz)
+installed_size=$(zcat < "$tmp_dir"/data.tar.gz | wc -c)
sed -i -e "s/^Installed-Size: .*/Installed-Size: $installed_size/" \
"$pkg_dir"/$CONTROL/control
diff --git a/scripts/json_overview_image_info.py b/scripts/json_overview_image_info.py
index 89b7d4fe20..0d2cf7f1ef 100755
--- a/scripts/json_overview_image_info.py
+++ b/scripts/json_overview_image_info.py
@@ -55,9 +55,9 @@ if output:
"target/linux/",
"val.DEFAULT_PACKAGES",
"val.ARCH_PACKAGES",
+ "V=s",
],
stdout=PIPE,
- stderr=PIPE,
check=True,
env=environ.copy().update({"TOPDIR": Path().cwd()}),
universal_newlines=True,
diff --git a/scripts/metadata.pm b/scripts/metadata.pm
index 587ce7207d..ecfe42c0bc 100644
--- a/scripts/metadata.pm
+++ b/scripts/metadata.pm
@@ -257,6 +257,7 @@ sub parse_package_metadata($) {
/^License: \s*(.+)\s*$/ and $pkg->{license} = $1;
/^LicenseFiles: \s*(.+)\s*$/ and $pkg->{licensefiles} = $1;
/^CPE-ID: \s*(.+)\s*$/ and $pkg->{cpe_id} = $1;
+ /^URL: \s*(.+)\s*$/ and $pkg->{url} = $1;
/^ABI-Version: \s*(.+)\s*$/ and $pkg->{abi_version} = $1;
/^Default: \s*(.+)\s*$/ and $pkg->{default} = $1;
/^Provides: \s*(.+)\s*$/ and do {
@@ -344,6 +345,7 @@ sub parse_package_manifest_metadata($) {
/^Section:\s*(.+)\s*$/ and $pkg->{section} = $1;
/^SourceDateEpoch: \s*(.+)\s*$/ and $pkg->{sourcedateepoch} = $1;
/^CPE-ID:\s*(.+)\s*$/ and $pkg->{cpe_id} = $1;
+ /^URL:\s*(.+)\s*$/ and $pkg->{url} = $1;
/^Architecture:\s*(.+)\s*$/ and $pkg->{architecture} = $1;
/^Installed-Size:\s*(.+)\s*$/ and $pkg->{installedsize} = $1;
/^Filename:\s*(.+)\s*$/ and $pkg->{filename} = $1;
diff --git a/scripts/rstrip.sh b/scripts/rstrip.sh
index e47960a941..2aa7e96fda 100755
--- a/scripts/rstrip.sh
+++ b/scripts/rstrip.sh
@@ -20,7 +20,7 @@ TARGETS=$*
exit 1
}
-find $TARGETS -type f -a -exec file {} \; | \
+find $TARGETS -not -path \*/lib/firmware/\* -a -type f -a -exec file {} \; | \
sed -n -e 's/^\(.*\):.*ELF.*\(executable\|relocatable\|shared object\).*,.*/\1:\2/p' | \
(
IFS=":"
diff --git a/target/imagebuilder/Makefile b/target/imagebuilder/Makefile
index 3bbadc7204..c3b6c9c10c 100644
--- a/target/imagebuilder/Makefile
+++ b/target/imagebuilder/Makefile
@@ -27,7 +27,7 @@ all: compile
$(BIN_DIR)/$(IB_NAME).tar.xz: clean
rm -rf $(PKG_BUILD_DIR)
mkdir -p $(IB_KDIR) $(IB_LDIR) $(PKG_BUILD_DIR)/staging_dir/host/lib \
- $(PKG_BUILD_DIR)/target $(PKG_BUILD_DIR)/scripts $(IB_DTSDIR)
+ $(PKG_BUILD_DIR)/target/linux $(PKG_BUILD_DIR)/scripts $(IB_DTSDIR)
-cp $(TOPDIR)/.config $(PKG_BUILD_DIR)/.config
$(SED) 's/^CONFIG_BINARY_FOLDER=.*/# CONFIG_BINARY_FOLDER is not set/' $(PKG_BUILD_DIR)/.config
$(SED) 's/^CONFIG_DOWNLOAD_FOLDER=.*/# CONFIG_DOWNLOAD_FOLDER is not set/' $(PKG_BUILD_DIR)/.config
@@ -78,7 +78,9 @@ ifneq ($(CONFIG_SIGNATURE_CHECK),)
$(CP) -L $(STAGING_DIR_ROOT)/usr/sbin/opkg-key $(PKG_BUILD_DIR)/scripts/
endif
- $(CP) -L $(TOPDIR)/target/linux $(PKG_BUILD_DIR)/target/
+ $(CP) -L $(TOPDIR)/target/linux/Makefile $(PKG_BUILD_DIR)/target/linux
+ $(CP) -L $(TOPDIR)/target/linux/generic $(PKG_BUILD_DIR)/target/linux
+ $(CP) -L $(TOPDIR)/target/linux/$(BOARD) $(PKG_BUILD_DIR)/target/linux
if [ -d $(TOPDIR)/staging_dir/host/lib/grub ]; then \
$(CP) $(TOPDIR)/staging_dir/host/lib/grub/ $(PKG_BUILD_DIR)/staging_dir/host/lib; \
fi
diff --git a/target/linux/armsr/patches-6.1/701-v6.2-0001-net-dpaa2-eth-don-t-use-ENOTSUPP-error-code.patch b/target/linux/armsr/patches-6.1/701-v6.2-0001-net-dpaa2-eth-don-t-use-ENOTSUPP-error-code.patch
index 2c70b44f4b..ec72f91d0f 100644
--- a/target/linux/armsr/patches-6.1/701-v6.2-0001-net-dpaa2-eth-don-t-use-ENOTSUPP-error-code.patch
+++ b/target/linux/armsr/patches-6.1/701-v6.2-0001-net-dpaa2-eth-don-t-use-ENOTSUPP-error-code.patch
@@ -22,7 +22,7 @@ Signed-off-by: Paolo Abeni
--- a/drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c
+++ b/drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c
-@@ -3611,7 +3611,7 @@ static int dpaa2_eth_setup_dpni(struct f
+@@ -3614,7 +3614,7 @@ static int dpaa2_eth_setup_dpni(struct f
dev_err(dev, "DPNI version %u.%u not supported, need >= %u.%u\n",
priv->dpni_ver_major, priv->dpni_ver_minor,
DPNI_VER_MAJOR, DPNI_VER_MINOR);
diff --git a/target/linux/armsr/patches-6.1/701-v6.2-0003-net-dpaa2-mac-absorb-phylink_start-call-into-dpaa2_m.patch b/target/linux/armsr/patches-6.1/701-v6.2-0003-net-dpaa2-mac-absorb-phylink_start-call-into-dpaa2_m.patch
index c47598749c..af5ff2aea6 100644
--- a/target/linux/armsr/patches-6.1/701-v6.2-0003-net-dpaa2-mac-absorb-phylink_start-call-into-dpaa2_m.patch
+++ b/target/linux/armsr/patches-6.1/701-v6.2-0003-net-dpaa2-mac-absorb-phylink_start-call-into-dpaa2_m.patch
@@ -21,7 +21,7 @@ Signed-off-by: Paolo Abeni
--- a/drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c
+++ b/drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c
-@@ -2080,10 +2080,8 @@ static int dpaa2_eth_open(struct net_dev
+@@ -2083,10 +2083,8 @@ static int dpaa2_eth_open(struct net_dev
goto enable_err;
}
@@ -33,7 +33,7 @@ Signed-off-by: Paolo Abeni
return 0;
-@@ -2157,7 +2155,6 @@ static int dpaa2_eth_stop(struct net_dev
+@@ -2160,7 +2158,6 @@ static int dpaa2_eth_stop(struct net_dev
int retries = 10;
if (dpaa2_eth_is_type_phy(priv)) {
diff --git a/target/linux/armsr/patches-6.1/701-v6.2-0005-net-dpaa2-eth-assign-priv-mac-after-dpaa2_mac_connec.patch b/target/linux/armsr/patches-6.1/701-v6.2-0005-net-dpaa2-eth-assign-priv-mac-after-dpaa2_mac_connec.patch
index 45f07decc9..c31a470182 100644
--- a/target/linux/armsr/patches-6.1/701-v6.2-0005-net-dpaa2-eth-assign-priv-mac-after-dpaa2_mac_connec.patch
+++ b/target/linux/armsr/patches-6.1/701-v6.2-0005-net-dpaa2-eth-assign-priv-mac-after-dpaa2_mac_connec.patch
@@ -49,7 +49,7 @@ Signed-off-by: Paolo Abeni
--- a/drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c
+++ b/drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c
-@@ -4441,9 +4441,8 @@ static int dpaa2_eth_connect_mac(struct
+@@ -4444,9 +4444,8 @@ static int dpaa2_eth_connect_mac(struct
err = dpaa2_mac_open(mac);
if (err)
goto err_free_mac;
@@ -60,7 +60,7 @@ Signed-off-by: Paolo Abeni
err = dpaa2_mac_connect(mac);
if (err && err != -EPROBE_DEFER)
netdev_err(priv->net_dev, "Error connecting to the MAC endpoint: %pe",
-@@ -4452,11 +4451,12 @@ static int dpaa2_eth_connect_mac(struct
+@@ -4455,11 +4454,12 @@ static int dpaa2_eth_connect_mac(struct
goto err_close_mac;
}
@@ -74,7 +74,7 @@ Signed-off-by: Paolo Abeni
err_free_mac:
kfree(mac);
return err;
-@@ -4464,15 +4464,18 @@ err_free_mac:
+@@ -4467,15 +4467,18 @@ err_free_mac:
static void dpaa2_eth_disconnect_mac(struct dpaa2_eth_priv *priv)
{
diff --git a/target/linux/armsr/patches-6.1/701-v6.2-0009-net-dpaa2-eth-connect-to-MAC-before-requesting-the-e.patch b/target/linux/armsr/patches-6.1/701-v6.2-0009-net-dpaa2-eth-connect-to-MAC-before-requesting-the-e.patch
index 7c394c55db..4e39e9a0ac 100644
--- a/target/linux/armsr/patches-6.1/701-v6.2-0009-net-dpaa2-eth-connect-to-MAC-before-requesting-the-e.patch
+++ b/target/linux/armsr/patches-6.1/701-v6.2-0009-net-dpaa2-eth-connect-to-MAC-before-requesting-the-e.patch
@@ -33,7 +33,7 @@ Signed-off-by: Paolo Abeni
--- a/drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c
+++ b/drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c
-@@ -4708,6 +4708,10 @@ static int dpaa2_eth_probe(struct fsl_mc
+@@ -4711,6 +4711,10 @@ static int dpaa2_eth_probe(struct fsl_mc
}
#endif
@@ -44,7 +44,7 @@ Signed-off-by: Paolo Abeni
err = dpaa2_eth_setup_irqs(dpni_dev);
if (err) {
netdev_warn(net_dev, "Failed to set link interrupt, fall back to polling\n");
-@@ -4720,10 +4724,6 @@ static int dpaa2_eth_probe(struct fsl_mc
+@@ -4723,10 +4727,6 @@ static int dpaa2_eth_probe(struct fsl_mc
priv->do_link_poll = true;
}
@@ -55,7 +55,7 @@ Signed-off-by: Paolo Abeni
err = dpaa2_eth_dl_alloc(priv);
if (err)
goto err_dl_register;
-@@ -4759,13 +4759,13 @@ err_dl_port_add:
+@@ -4762,13 +4762,13 @@ err_dl_port_add:
err_dl_trap_register:
dpaa2_eth_dl_free(priv);
err_dl_register:
@@ -71,7 +71,7 @@ Signed-off-by: Paolo Abeni
dpaa2_eth_free_rings(priv);
err_alloc_rings:
err_csum:
-@@ -4813,9 +4813,6 @@ static int dpaa2_eth_remove(struct fsl_m
+@@ -4816,9 +4816,6 @@ static int dpaa2_eth_remove(struct fsl_m
#endif
unregister_netdev(net_dev);
@@ -81,7 +81,7 @@ Signed-off-by: Paolo Abeni
dpaa2_eth_dl_port_del(priv);
dpaa2_eth_dl_traps_unregister(priv);
-@@ -4826,6 +4823,9 @@ static int dpaa2_eth_remove(struct fsl_m
+@@ -4829,6 +4826,9 @@ static int dpaa2_eth_remove(struct fsl_m
else
fsl_mc_free_irqs(ls_dev);
diff --git a/target/linux/armsr/patches-6.1/701-v6.2-0010-net-dpaa2-eth-serialize-changes-to-priv-mac-with-a-m.patch b/target/linux/armsr/patches-6.1/701-v6.2-0010-net-dpaa2-eth-serialize-changes-to-priv-mac-with-a-m.patch
index 28ffe2288c..9b068ce8f5 100644
--- a/target/linux/armsr/patches-6.1/701-v6.2-0010-net-dpaa2-eth-serialize-changes-to-priv-mac-with-a-m.patch
+++ b/target/linux/armsr/patches-6.1/701-v6.2-0010-net-dpaa2-eth-serialize-changes-to-priv-mac-with-a-m.patch
@@ -41,7 +41,7 @@ Signed-off-by: Paolo Abeni
--- a/drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c
+++ b/drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c
-@@ -2018,8 +2018,11 @@ static int dpaa2_eth_link_state_update(s
+@@ -2021,8 +2021,11 @@ static int dpaa2_eth_link_state_update(s
/* When we manage the MAC/PHY using phylink there is no need
* to manually update the netif_carrier.
@@ -54,7 +54,7 @@ Signed-off-by: Paolo Abeni
goto out;
/* Chech link state; speed / duplex changes are not treated yet */
-@@ -2058,6 +2061,8 @@ static int dpaa2_eth_open(struct net_dev
+@@ -2061,6 +2064,8 @@ static int dpaa2_eth_open(struct net_dev
priv->dpbp_dev->obj_desc.id, priv->bpid);
}
@@ -63,7 +63,7 @@ Signed-off-by: Paolo Abeni
if (!dpaa2_eth_is_type_phy(priv)) {
/* We'll only start the txqs when the link is actually ready;
* make sure we don't race against the link up notification,
-@@ -2076,6 +2081,7 @@ static int dpaa2_eth_open(struct net_dev
+@@ -2079,6 +2084,7 @@ static int dpaa2_eth_open(struct net_dev
err = dpni_enable(priv->mc_io, 0, priv->mc_token);
if (err < 0) {
@@ -71,7 +71,7 @@ Signed-off-by: Paolo Abeni
netdev_err(net_dev, "dpni_enable() failed\n");
goto enable_err;
}
-@@ -2083,6 +2089,8 @@ static int dpaa2_eth_open(struct net_dev
+@@ -2086,6 +2092,8 @@ static int dpaa2_eth_open(struct net_dev
if (dpaa2_eth_is_type_phy(priv))
dpaa2_mac_start(priv->mac);
@@ -80,7 +80,7 @@ Signed-off-by: Paolo Abeni
return 0;
enable_err:
-@@ -2154,6 +2162,8 @@ static int dpaa2_eth_stop(struct net_dev
+@@ -2157,6 +2165,8 @@ static int dpaa2_eth_stop(struct net_dev
int dpni_enabled = 0;
int retries = 10;
@@ -89,7 +89,7 @@ Signed-off-by: Paolo Abeni
if (dpaa2_eth_is_type_phy(priv)) {
dpaa2_mac_stop(priv->mac);
} else {
-@@ -2161,6 +2171,8 @@ static int dpaa2_eth_stop(struct net_dev
+@@ -2164,6 +2174,8 @@ static int dpaa2_eth_stop(struct net_dev
netif_carrier_off(net_dev);
}
@@ -98,7 +98,7 @@ Signed-off-by: Paolo Abeni
/* On dpni_disable(), the MC firmware will:
* - stop MAC Rx and wait for all Rx frames to be enqueued to software
* - cut off WRIOP dequeues from egress FQs and wait until transmission
-@@ -2486,12 +2498,20 @@ static int dpaa2_eth_ts_ioctl(struct net
+@@ -2489,12 +2501,20 @@ static int dpaa2_eth_ts_ioctl(struct net
static int dpaa2_eth_ioctl(struct net_device *dev, struct ifreq *rq, int cmd)
{
struct dpaa2_eth_priv *priv = netdev_priv(dev);
@@ -121,7 +121,7 @@ Signed-off-by: Paolo Abeni
return -EOPNOTSUPP;
}
-@@ -4451,7 +4471,9 @@ static int dpaa2_eth_connect_mac(struct
+@@ -4454,7 +4474,9 @@ static int dpaa2_eth_connect_mac(struct
goto err_close_mac;
}
@@ -131,7 +131,7 @@ Signed-off-by: Paolo Abeni
return 0;
-@@ -4464,9 +4486,12 @@ err_free_mac:
+@@ -4467,9 +4489,12 @@ err_free_mac:
static void dpaa2_eth_disconnect_mac(struct dpaa2_eth_priv *priv)
{
@@ -145,7 +145,7 @@ Signed-off-by: Paolo Abeni
if (!mac)
return;
-@@ -4485,6 +4510,7 @@ static irqreturn_t dpni_irq0_handler_thr
+@@ -4488,6 +4513,7 @@ static irqreturn_t dpni_irq0_handler_thr
struct fsl_mc_device *dpni_dev = to_fsl_mc_device(dev);
struct net_device *net_dev = dev_get_drvdata(dev);
struct dpaa2_eth_priv *priv = netdev_priv(net_dev);
@@ -153,7 +153,7 @@ Signed-off-by: Paolo Abeni
int err;
err = dpni_get_irq_status(dpni_dev->mc_io, 0, dpni_dev->mc_handle,
-@@ -4502,7 +4528,12 @@ static irqreturn_t dpni_irq0_handler_thr
+@@ -4505,7 +4531,12 @@ static irqreturn_t dpni_irq0_handler_thr
dpaa2_eth_update_tx_fqids(priv);
rtnl_lock();
@@ -167,7 +167,7 @@ Signed-off-by: Paolo Abeni
dpaa2_eth_disconnect_mac(priv);
else
dpaa2_eth_connect_mac(priv);
-@@ -4603,6 +4634,8 @@ static int dpaa2_eth_probe(struct fsl_mc
+@@ -4606,6 +4637,8 @@ static int dpaa2_eth_probe(struct fsl_mc
priv = netdev_priv(net_dev);
priv->net_dev = net_dev;
@@ -305,7 +305,7 @@ Signed-off-by: Paolo Abeni
if (pause->autoneg)
return -EOPNOTSUPP;
-@@ -309,8 +341,12 @@ static void dpaa2_eth_get_ethtool_stats(
+@@ -307,8 +339,12 @@ static void dpaa2_eth_get_ethtool_stats(
}
*(data + i++) = buf_cnt;
diff --git a/target/linux/armsr/patches-6.1/701-v6.2-0012-net-dpaa2-mac-move-rtnl_lock-only-around-phylink.patch b/target/linux/armsr/patches-6.1/701-v6.2-0012-net-dpaa2-mac-move-rtnl_lock-only-around-phylink.patch
index f72f9e3a43..521c9d4a54 100644
--- a/target/linux/armsr/patches-6.1/701-v6.2-0012-net-dpaa2-mac-move-rtnl_lock-only-around-phylink.patch
+++ b/target/linux/armsr/patches-6.1/701-v6.2-0012-net-dpaa2-mac-move-rtnl_lock-only-around-phylink.patch
@@ -34,7 +34,7 @@ Signed-off-by: Paolo Abeni
--- a/drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c
+++ b/drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c
-@@ -4527,7 +4527,6 @@ static irqreturn_t dpni_irq0_handler_thr
+@@ -4530,7 +4530,6 @@ static irqreturn_t dpni_irq0_handler_thr
dpaa2_eth_set_mac_addr(netdev_priv(net_dev));
dpaa2_eth_update_tx_fqids(priv);
@@ -42,7 +42,7 @@ Signed-off-by: Paolo Abeni
/* We can avoid locking because the "endpoint changed" IRQ
* handler is the only one who changes priv->mac at runtime,
* so we are not racing with anyone.
-@@ -4537,7 +4536,6 @@ static irqreturn_t dpni_irq0_handler_thr
+@@ -4540,7 +4539,6 @@ static irqreturn_t dpni_irq0_handler_thr
dpaa2_eth_disconnect_mac(priv);
else
dpaa2_eth_connect_mac(priv);
@@ -50,7 +50,7 @@ Signed-off-by: Paolo Abeni
}
return IRQ_HANDLED;
-@@ -4856,9 +4854,7 @@ static int dpaa2_eth_remove(struct fsl_m
+@@ -4859,9 +4857,7 @@ static int dpaa2_eth_remove(struct fsl_m
else
fsl_mc_free_irqs(ls_dev);
diff --git a/target/linux/ath79/dts/ar7100.dtsi b/target/linux/ath79/dts/ar7100.dtsi
index a03f282a0f..6648311619 100644
--- a/target/linux/ath79/dts/ar7100.dtsi
+++ b/target/linux/ath79/dts/ar7100.dtsi
@@ -113,7 +113,7 @@
#reset-cells = <1>;
};
- pcie0: pcie-controller@17010000 {
+ pcie0: pcie@17010000 {
compatible = "qca,ar7100-pci";
#address-cells = <3>;
#size-cells = <2>;
diff --git a/target/linux/ath79/dts/ar7161_aruba_ap-105.dts b/target/linux/ath79/dts/ar7161_aruba_ap-105.dts
index c8510a8944..dd110fc185 100644
--- a/target/linux/ath79/dts/ar7161_aruba_ap-105.dts
+++ b/target/linux/ath79/dts/ar7161_aruba_ap-105.dts
@@ -94,7 +94,7 @@
&pcie0 {
status = "okay";
- ath9k0: wifi@0,11 { /* 2.4 GHz */
+ ath9k0: wifi@11,0 { /* 2.4 GHz */
compatible = "pci168c,0029";
nvmem-cells = <&macaddr_hwinfo_1c 1>;
nvmem-cell-names = "mac-address";
@@ -103,7 +103,7 @@
gpio-controller;
};
- ath9k1: wifi@0,12 { /* 5 GHz */
+ ath9k1: wifi@12,0 { /* 5 GHz */
compatible = "pci168c,0029";
nvmem-cells = <&macaddr_hwinfo_1c 2>;
nvmem-cell-names = "mac-address";
diff --git a/target/linux/ath79/dts/ar7161_aruba_ap-175.dts b/target/linux/ath79/dts/ar7161_aruba_ap-175.dts
index 96a76a3cfc..62a2083d20 100644
--- a/target/linux/ath79/dts/ar7161_aruba_ap-175.dts
+++ b/target/linux/ath79/dts/ar7161_aruba_ap-175.dts
@@ -120,7 +120,7 @@
&pcie0 {
status = "okay";
- ath9k0: wifi@0,11 {
+ ath9k0: wifi@11,0 {
compatible = "pci168c,0029";
nvmem-cells = <&macaddr_hwinfo_1c 1>;
nvmem-cell-names = "mac-address";
@@ -129,7 +129,7 @@
gpio-controller;
};
- ath9k1: wifi@0,12 {
+ ath9k1: wifi@12,0 {
compatible = "pci168c,0029";
nvmem-cells = <&macaddr_hwinfo_1c 2>;
nvmem-cell-names = "mac-address";
diff --git a/target/linux/ath79/dts/ar7161_buffalo_wzr-hp-ag300h.dtsi b/target/linux/ath79/dts/ar7161_buffalo_wzr-hp-ag300h.dtsi
index e3f48fee85..50c0748a38 100644
--- a/target/linux/ath79/dts/ar7161_buffalo_wzr-hp-ag300h.dtsi
+++ b/target/linux/ath79/dts/ar7161_buffalo_wzr-hp-ag300h.dtsi
@@ -196,7 +196,7 @@
&pcie0 {
status = "okay";
- ath9k0: wifi@0,11 {
+ ath9k0: wifi@11,0 {
compatible = "pci168c,0029";
reg = <0x8800 0 0 0 0>;
qca,no-eeprom;
@@ -204,7 +204,7 @@
gpio-controller;
};
- ath9k1: wifi@0,12 {
+ ath9k1: wifi@12,0 {
compatible = "pci168c,0029";
reg = <0x9000 0 0 0 0>;
qca,no-eeprom;
diff --git a/target/linux/ath79/dts/ar7161_dlink_dir-825-b1.dts b/target/linux/ath79/dts/ar7161_dlink_dir-825-b1.dts
index b62111c110..639736d9c4 100644
--- a/target/linux/ath79/dts/ar7161_dlink_dir-825-b1.dts
+++ b/target/linux/ath79/dts/ar7161_dlink_dir-825-b1.dts
@@ -136,7 +136,7 @@
&pcie0 {
status = "okay";
- ath9k0: wifi@0,11 {
+ ath9k0: wifi@11,0 {
compatible = "pci168c,0029";
reg = <0x8800 0 0 0 0>;
nvmem-cells = <&macaddr_lan 0>, <&cal_art_1000>;
@@ -145,7 +145,7 @@
gpio-controller;
};
- ath9k1: wifi@0,12 {
+ ath9k1: wifi@12,0 {
compatible = "pci168c,0029";
reg = <0x9000 0 0 0 0>;
nvmem-cells = <&macaddr_wan 1>, <&cal_art_5000>;
diff --git a/target/linux/ath79/dts/ar7161_fortinet_fap-220-b.dts b/target/linux/ath79/dts/ar7161_fortinet_fap-220-b.dts
index ddcf68970d..e0aa5704cd 100644
--- a/target/linux/ath79/dts/ar7161_fortinet_fap-220-b.dts
+++ b/target/linux/ath79/dts/ar7161_fortinet_fap-220-b.dts
@@ -95,7 +95,7 @@
&pcie0 {
status = "okay";
- ath9k0: wifi@0,11 { /* 2.4 GHz */
+ ath9k0: wifi@11,0 { /* 2.4 GHz */
compatible = "pci168c,0029";
reg = <0x8800 0 0 0 0>;
ieee80211-freq-limit = <2402000 2482000>;
@@ -105,7 +105,7 @@
gpio-controller;
};
- ath9k1: wifi@0,12 { /* 5 GHz */
+ ath9k1: wifi@12,0 { /* 5 GHz */
compatible = "pci168c,0029";
reg = <0x9000 0 0 0 0>;
ieee80211-freq-limit = <2402000 2482000 4900000 5990000>;
diff --git a/target/linux/ath79/dts/ar7161_meraki_mr16.dts b/target/linux/ath79/dts/ar7161_meraki_mr16.dts
index 6b8574e880..b732010446 100644
--- a/target/linux/ath79/dts/ar7161_meraki_mr16.dts
+++ b/target/linux/ath79/dts/ar7161_meraki_mr16.dts
@@ -70,7 +70,7 @@
&pcie0 {
status = "okay";
- ath9k0: wifi@0,11 { /* 2.4 GHz */
+ ath9k0: wifi@11,0 { /* 2.4 GHz */
compatible = "pci168c,0029";
reg = <0x8800 0 0 0 0>;
qca,no-eeprom;
@@ -80,7 +80,7 @@
gpio-controller;
};
- ath9k1: wifi@0,12 { /* 5 GHz */
+ ath9k1: wifi@12,0 { /* 5 GHz */
compatible = "pci168c,0029";
reg = <0x9000 0 0 0 0>;
qca,no-eeprom;
diff --git a/target/linux/ath79/dts/ar7161_netgear_wndap360.dts b/target/linux/ath79/dts/ar7161_netgear_wndap360.dts
index 9761234714..020b45d9e1 100644
--- a/target/linux/ath79/dts/ar7161_netgear_wndap360.dts
+++ b/target/linux/ath79/dts/ar7161_netgear_wndap360.dts
@@ -147,7 +147,7 @@
&pcie0 {
status = "okay";
- ath9k0: wifi@0,11 {
+ ath9k0: wifi@11,0 {
compatible = "pci168c,0029";
reg = <0x8800 0 0 0 0>;
nvmem-cells = <&macaddr_art_120c>, <&calibration_art_1000>;
@@ -156,7 +156,7 @@
gpio-controller;
};
- ath9k1: wifi@0,12 {
+ ath9k1: wifi@12,0 {
compatible = "pci168c,0029";
reg = <0x9000 0 0 0 0>;
nvmem-cells = <&macaddr_art_520c 1>, <&calibration_art_5000>;
diff --git a/target/linux/ath79/dts/ar7161_netgear_wndr.dtsi b/target/linux/ath79/dts/ar7161_netgear_wndr.dtsi
index 296ecc8c4e..d30b4dad30 100644
--- a/target/linux/ath79/dts/ar7161_netgear_wndr.dtsi
+++ b/target/linux/ath79/dts/ar7161_netgear_wndr.dtsi
@@ -126,7 +126,7 @@
&pcie0 {
status = "okay";
- ath9k0: wifi@0,11 {
+ ath9k0: wifi@11,0 {
compatible = "pci168c,0029";
reg = <0x8800 0 0 0 0>;
@@ -153,7 +153,7 @@
};
};
- ath9k1: wifi@0,12 {
+ ath9k1: wifi@12,0 {
compatible = "pci168c,0029";
reg = <0x9000 0 0 0 0>;
diff --git a/target/linux/ath79/dts/ar7161_ruckus_gd11.dtsi b/target/linux/ath79/dts/ar7161_ruckus_gd11.dtsi
index 065068571c..54a15c49c1 100644
--- a/target/linux/ath79/dts/ar7161_ruckus_gd11.dtsi
+++ b/target/linux/ath79/dts/ar7161_ruckus_gd11.dtsi
@@ -131,7 +131,7 @@
&pcie0 {
status = "okay";
- ath9k0: wifi@0,11 { /* 2.4 GHz */
+ ath9k0: wifi@11,0 { /* 2.4 GHz */
compatible = "pci168c,0029";
reg = <0x8800 0 0 0 0>;
nvmem-cells = <&macaddr_bdata_60>;
@@ -140,7 +140,7 @@
gpio-controller;
};
- ath9k1: wifi@0,12 { /* 5 GHz */
+ ath9k1: wifi@12,0 { /* 5 GHz */
compatible = "pci168c,0029";
reg = <0x9000 0 0 0 0>;
nvmem-cells = <&macaddr_bdata_76>;
diff --git a/target/linux/ath79/dts/ar7161_trendnet_tew-673gru.dts b/target/linux/ath79/dts/ar7161_trendnet_tew-673gru.dts
index a770ca04a8..7508be1df1 100644
--- a/target/linux/ath79/dts/ar7161_trendnet_tew-673gru.dts
+++ b/target/linux/ath79/dts/ar7161_trendnet_tew-673gru.dts
@@ -92,13 +92,13 @@
&pcie0 {
status = "okay";
- wifi@0,11 {
+ wifi@11,0 {
compatible = "pci168c,0029";
reg = <0x8800 0 0 0 0>;
qca,no-eeprom;
};
- wifi@0,12 {
+ wifi@12,0 {
compatible = "pci168c,0029";
reg = <0x9000 0 0 0 0>;
qca,no-eeprom;
diff --git a/target/linux/ath79/dts/ar7242_avm_fritz300e.dts b/target/linux/ath79/dts/ar7242_avm_fritz300e.dts
index 310a2b1ee2..7a0d7dd268 100644
--- a/target/linux/ath79/dts/ar7242_avm_fritz300e.dts
+++ b/target/linux/ath79/dts/ar7242_avm_fritz300e.dts
@@ -85,7 +85,7 @@
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
- gpio = <&gpio 11 GPIO_ACTIVE_LOW>;
+ gpios = <&gpio 11 GPIO_ACTIVE_LOW>;
startup-delay-us = <300000>;
enable-active-high;
diff --git a/target/linux/ath79/dts/ar7242_engenius_eap350-v1.dts b/target/linux/ath79/dts/ar7242_engenius_eap350-v1.dts
index 8e8deba933..861964fdfc 100644
--- a/target/linux/ath79/dts/ar7242_engenius_eap350-v1.dts
+++ b/target/linux/ath79/dts/ar7242_engenius_eap350-v1.dts
@@ -75,7 +75,7 @@
&pcie {
status = "okay";
- ath9k: wifi@0,0,0 {
+ ath9k: wifi@0,0 {
compatible = "pci168c,002a";
reg = <0x0 0 0 0 0>;
nvmem-cells = <&macaddr_art_0 1>;
diff --git a/target/linux/ath79/dts/ar7242_engenius_ecb350-v1.dts b/target/linux/ath79/dts/ar7242_engenius_ecb350-v1.dts
index 69629335b3..a7def14c73 100644
--- a/target/linux/ath79/dts/ar7242_engenius_ecb350-v1.dts
+++ b/target/linux/ath79/dts/ar7242_engenius_ecb350-v1.dts
@@ -75,7 +75,7 @@
&pcie {
status = "okay";
- ath9k: wifi@0,0,0 {
+ ath9k: wifi@0,0 {
compatible = "pci168c,002a";
reg = <0x0 0 0 0 0>;
nvmem-cells = <&macaddr_art_0 (-1)>;
diff --git a/target/linux/ath79/dts/ar7242_meraki_mr12.dts b/target/linux/ath79/dts/ar7242_meraki_mr12.dts
index adea2778ea..5218a5ce27 100644
--- a/target/linux/ath79/dts/ar7242_meraki_mr12.dts
+++ b/target/linux/ath79/dts/ar7242_meraki_mr12.dts
@@ -70,7 +70,7 @@
&pcie {
status = "okay";
- wifi@0,0,0 {
+ wifi@0,0 {
compatible = "pci168c,002a";
reg = <0x0000 0 0 0 0>;
qca,no-eeprom;
diff --git a/target/linux/ath79/dts/ar724x.dtsi b/target/linux/ath79/dts/ar724x.dtsi
index c090eb5e0f..c758fc244e 100644
--- a/target/linux/ath79/dts/ar724x.dtsi
+++ b/target/linux/ath79/dts/ar724x.dtsi
@@ -121,7 +121,7 @@
#reset-cells = <1>;
};
- pcie: pcie-controller@180c0000 {
+ pcie: pcie@180c0000 {
compatible = "qcom,ar7240-pci";
#address-cells = <3>;
#size-cells = <2>;
diff --git a/target/linux/ath79/dts/ar9331_glinet_gl-mifi.dts b/target/linux/ath79/dts/ar9331_glinet_gl-mifi.dts
index 211c565c24..e4d2ff1e11 100644
--- a/target/linux/ath79/dts/ar9331_glinet_gl-mifi.dts
+++ b/target/linux/ath79/dts/ar9331_glinet_gl-mifi.dts
@@ -54,7 +54,7 @@
regulator-name = "usb_vbus";
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
- gpio = <&gpio 6 GPIO_ACTIVE_LOW>;
+ gpios = <&gpio 6 GPIO_ACTIVE_LOW>;
};
gpio-export {
diff --git a/target/linux/ath79/dts/ar9331_hiwifi_hc6361.dts b/target/linux/ath79/dts/ar9331_hiwifi_hc6361.dts
index 3751374af6..b10f7fc965 100644
--- a/target/linux/ath79/dts/ar9331_hiwifi_hc6361.dts
+++ b/target/linux/ath79/dts/ar9331_hiwifi_hc6361.dts
@@ -52,7 +52,7 @@
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
enable-active-high;
- gpio = <&gpio 20 GPIO_ACTIVE_HIGH>;
+ gpios = <&gpio 20 GPIO_ACTIVE_HIGH>;
};
};
diff --git a/target/linux/ath79/dts/ar9331_onion_omega.dts b/target/linux/ath79/dts/ar9331_onion_omega.dts
index 81fab872b5..5d9e96e048 100644
--- a/target/linux/ath79/dts/ar9331_onion_omega.dts
+++ b/target/linux/ath79/dts/ar9331_onion_omega.dts
@@ -43,7 +43,7 @@
regulator-name = "usb_vbus";
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
- gpio = <&gpio 8 GPIO_ACTIVE_HIGH>;
+ gpios = <&gpio 8 GPIO_ACTIVE_HIGH>;
enable-active-high;
};
};
diff --git a/target/linux/ath79/dts/ar9331_pisen_wmm003n.dts b/target/linux/ath79/dts/ar9331_pisen_wmm003n.dts
index 61cbb1aae2..63f394a4f9 100644
--- a/target/linux/ath79/dts/ar9331_pisen_wmm003n.dts
+++ b/target/linux/ath79/dts/ar9331_pisen_wmm003n.dts
@@ -41,7 +41,7 @@
regulator-name = "usb_vbus";
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
- gpio = <&gpio 8 GPIO_ACTIVE_HIGH>;
+ gpios = <&gpio 8 GPIO_ACTIVE_HIGH>;
enable-active-high;
};
};
diff --git a/target/linux/ath79/dts/ar9331_teltonika_rut230-v1.dts b/target/linux/ath79/dts/ar9331_teltonika_rut230-v1.dts
index 69965f86a8..ad987dbca1 100644
--- a/target/linux/ath79/dts/ar9331_teltonika_rut230-v1.dts
+++ b/target/linux/ath79/dts/ar9331_teltonika_rut230-v1.dts
@@ -101,7 +101,7 @@
regulator-name = "usb_vbus";
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
- gpio = <&gpio 19 GPIO_ACTIVE_HIGH>;
+ gpios = <&gpio 19 GPIO_ACTIVE_HIGH>;
enable-active-high;
};
};
diff --git a/target/linux/ath79/dts/ar9331_tplink_tl-mr10u.dts b/target/linux/ath79/dts/ar9331_tplink_tl-mr10u.dts
index 3597a0d1bb..20f412e918 100644
--- a/target/linux/ath79/dts/ar9331_tplink_tl-mr10u.dts
+++ b/target/linux/ath79/dts/ar9331_tplink_tl-mr10u.dts
@@ -8,5 +8,5 @@
};
®_usb_vbus {
- gpio = <&gpio 18 GPIO_ACTIVE_HIGH>;
+ gpios = <&gpio 18 GPIO_ACTIVE_HIGH>;
};
diff --git a/target/linux/ath79/dts/ar9331_tplink_tl-mr3020-v1.dts b/target/linux/ath79/dts/ar9331_tplink_tl-mr3020-v1.dts
index 7a1a577ed7..7b307cd6d0 100644
--- a/target/linux/ath79/dts/ar9331_tplink_tl-mr3020-v1.dts
+++ b/target/linux/ath79/dts/ar9331_tplink_tl-mr3020-v1.dts
@@ -76,7 +76,7 @@
regulator-name = "usb_vbus";
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
- gpio = <&gpio 8 GPIO_ACTIVE_HIGH>;
+ gpios = <&gpio 8 GPIO_ACTIVE_HIGH>;
enable-active-high;
};
};
diff --git a/target/linux/ath79/dts/ar9331_tplink_tl-mr3040-v2.dts b/target/linux/ath79/dts/ar9331_tplink_tl-mr3040-v2.dts
index b07f9a7820..91023111a6 100644
--- a/target/linux/ath79/dts/ar9331_tplink_tl-mr3040-v2.dts
+++ b/target/linux/ath79/dts/ar9331_tplink_tl-mr3040-v2.dts
@@ -72,7 +72,7 @@
regulator-name = "usb_vbus";
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
- gpio = <&gpio 18 GPIO_ACTIVE_HIGH>;
+ gpios = <&gpio 18 GPIO_ACTIVE_HIGH>;
enable-active-high;
};
};
diff --git a/target/linux/ath79/dts/ar9331_tplink_tl-wr703n.dts b/target/linux/ath79/dts/ar9331_tplink_tl-wr703n.dts
index 0806bcc170..7fb87dab0f 100644
--- a/target/linux/ath79/dts/ar9331_tplink_tl-wr703n.dts
+++ b/target/linux/ath79/dts/ar9331_tplink_tl-wr703n.dts
@@ -8,5 +8,5 @@
};
®_usb_vbus {
- gpio = <&gpio 8 GPIO_ACTIVE_HIGH>;
+ gpios = <&gpio 8 GPIO_ACTIVE_HIGH>;
};
diff --git a/target/linux/ath79/dts/ar9331_tplink_tl-wr710n.dtsi b/target/linux/ath79/dts/ar9331_tplink_tl-wr710n.dtsi
index 329822ad10..303cb566ab 100644
--- a/target/linux/ath79/dts/ar9331_tplink_tl-wr710n.dtsi
+++ b/target/linux/ath79/dts/ar9331_tplink_tl-wr710n.dtsi
@@ -38,7 +38,7 @@
regulator-name = "usb_vbus";
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
- gpio = <&gpio 8 GPIO_ACTIVE_HIGH>;
+ gpios = <&gpio 8 GPIO_ACTIVE_HIGH>;
enable-active-high;
};
};
diff --git a/target/linux/ath79/dts/ar9342_mikrotik_routerboard-911g-xhpnd.dts b/target/linux/ath79/dts/ar9342_mikrotik_routerboard-911g-xhpnd.dts
new file mode 100644
index 0000000000..5fa44b4412
--- /dev/null
+++ b/target/linux/ath79/dts/ar9342_mikrotik_routerboard-911g-xhpnd.dts
@@ -0,0 +1,11 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#include "ar9342_mikrotik_routerboard-911g.dtsi"
+
+#include
+#include
+
+/ {
+ compatible = "mikrotik,routerboard-911g-xhpnd", "qca,ar9342";
+ model = "MikroTik RouterBOARD 911G-(2,5)HPnD";
+};
diff --git a/target/linux/ath79/dts/ar9342_mikrotik_routerboard-911g.dtsi b/target/linux/ath79/dts/ar9342_mikrotik_routerboard-911g.dtsi
new file mode 100644
index 0000000000..86b4bc358b
--- /dev/null
+++ b/target/linux/ath79/dts/ar9342_mikrotik_routerboard-911g.dtsi
@@ -0,0 +1,224 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#include "ar9344.dtsi"
+
+#include
+#include
+
+/ {
+ aliases {
+ led-boot = &led_power;
+ led-failsafe = &led_power;
+ led-running = &led_power;
+ led-upgrade = &led_power;
+ };
+
+ gpio_key: gpio_key {
+ compatible = "mikrotik,gpio-rb91x-key";
+ gpio-controller;
+ #gpio-cells = <2>;
+ gpios = <&gpio 15 GPIO_ACTIVE_HIGH>;
+ };
+
+ gpio_latch: gpio_latch {
+ compatible = "gpio-latch";
+ gpio-controller;
+ #gpio-cells = <2>;
+ gpios = <&gpio 0 GPIO_ACTIVE_HIGH>,
+ <&gpio 1 GPIO_ACTIVE_HIGH>,
+ <&gpio 2 GPIO_ACTIVE_HIGH>,
+ <&gpio 3 GPIO_ACTIVE_HIGH>,
+ <0>, /* Not connected */
+ <&gpio 13 GPIO_ACTIVE_HIGH>,
+ <&gpio 14 GPIO_ACTIVE_HIGH>,
+ <&gpio_key 0 GPIO_ACTIVE_HIGH>,
+ <&gpio 11 GPIO_ACTIVE_LOW>; /* Latch Enable */
+ };
+
+ nand_gpio {
+ compatible = "mikrotik,rb91x-nand";
+
+ gpios = <&gpio_latch 3 GPIO_ACTIVE_HIGH>, /* Read */
+ <&gpio 4 GPIO_ACTIVE_HIGH>, /* Ready (RDY) */
+ <&gpio_latch 5 GPIO_ACTIVE_LOW>, /* Chip Enable (nCE) */
+ <&gpio_latch 6 GPIO_ACTIVE_HIGH>, /* Command Latch Enable (CLE) */
+ <&gpio_latch 7 GPIO_ACTIVE_HIGH>, /* Address Latch Enable (ALE) */
+ <&gpio 12 GPIO_ACTIVE_LOW>, /* Read/Write Enable (nRW) */
+ <&gpio_latch 8 GPIO_ACTIVE_LOW>, /* Latch Enable (nLE) */
+ <&gpio_key 2 GPIO_ACTIVE_HIGH>; /* Key poll disable */
+
+ partitions {
+ compatible = "fixed-partitions";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partition@0 {
+ label = "booter";
+ reg = <0x0 0x0040000>;
+ read-only;
+ };
+
+ partition@40000 {
+ label = "kernel";
+ reg = <0x0040000 0x03c0000>;
+ };
+
+ partition@400000 {
+ label = "ubi";
+ reg = <0x0400000 0x7c00000>;
+ };
+ };
+ };
+
+ keys {
+ compatible = "gpio-keys-polled";
+ poll-interval = <20>;
+
+ button-reset {
+ label = "reset";
+ linux,code = ;
+ gpios = <&gpio_key 1 GPIO_ACTIVE_LOW>;
+ };
+ };
+
+ leds {
+ compatible = "gpio-leds";
+
+ led_power: power {
+ label = "green:power";
+ gpios = <&gpio_latch 1 GPIO_ACTIVE_HIGH>;
+ default-state = "on";
+ };
+
+ user {
+ label = "green:user";
+ gpios = <&gpio_latch 2 GPIO_ACTIVE_HIGH>;
+ };
+
+ led1 {
+ label = "green:led1";
+ gpios = <&ssr 0 GPIO_ACTIVE_HIGH>;
+ };
+
+ led2 {
+ label = "green:led2";
+ gpios = <&ssr 1 GPIO_ACTIVE_HIGH>;
+ };
+
+ led3 {
+ label = "green:led3";
+ gpios = <&ssr 2 GPIO_ACTIVE_HIGH>;
+ };
+
+ led4 {
+ label = "green:led4";
+ gpios = <&ssr 3 GPIO_ACTIVE_HIGH>;
+ };
+
+ led5 {
+ label = "green:led5";
+ gpios = <&ssr 4 GPIO_ACTIVE_HIGH>;
+ };
+ };
+
+ gpio-export {
+ compatible = "gpio-export";
+
+ beeper {
+ gpio-export,name = "beeper";
+ gpio-export,output = <1>; /* Must be 1 to avoid EMI induced clicking noise */
+ gpios = <&ssr 5 GPIO_ACTIVE_HIGH>;
+ };
+
+ usb_power {
+ gpio-export,name = "power-usb";
+ gpio-export,output = <1>;
+ gpios = <&ssr 6 GPIO_ACTIVE_HIGH>;
+ };
+
+ pcie_power {
+ gpio-export,name = "power-pcie";
+ gpio-export,output = <0>;
+ gpios = <&ssr 7 GPIO_ACTIVE_HIGH>;
+ };
+ };
+};
+
+&ref {
+ clock-frequency = <40000000>;
+};
+
+&spi {
+ status = "okay";
+
+ compatible = "qca,ar7100-spi";
+
+ cs-gpios = <0>, <&gpio_latch 0 GPIO_ACTIVE_LOW>;
+
+ flash@0 {
+ compatible = "jedec,spi-nor";
+ reg = <0>;
+ spi-max-frequency = <50000000>;
+
+ partitions {
+ compatible = "mikrotik,routerboot-partitions";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partition@0 {
+ label = "routerboot";
+ reg = <0x0 0x0>;
+ read-only;
+ };
+
+ hard_config {
+ read-only;
+ };
+
+ bios {
+ size = <0x1000>;
+ read-only;
+ };
+
+ soft_config {
+ };
+ };
+ };
+
+ ssr: ssr@1 {
+ compatible = "fairchild,74hc595";
+ gpio-controller;
+ #gpio-cells = <2>;
+ registers-number = <1>;
+ reg = <1>;
+ spi-max-frequency = <50000000>;
+ };
+};
+
+&mdio0 {
+ status = "okay";
+
+ phy0: ethernet-phy@0 {
+ reg = <0>;
+ };
+};
+
+ð0 {
+ status = "okay";
+
+ phy-mode = "rgmii-id";
+ phy-handle = <&phy0>;
+ pll-data = <0x02000000 0x00000101 0x00001313>;
+
+ gmac-config {
+ device = <&gmac>;
+ rgmii-gmac0 = <1>;
+ rxd-delay = <1>;
+ txd-delay = <1>;
+ };
+};
+
+&wmac {
+ status = "okay";
+ qca,no-eeprom;
+};
diff --git a/target/linux/ath79/dts/ar9342_mikrotik_routerboard-912uag-2hpnd.dts b/target/linux/ath79/dts/ar9342_mikrotik_routerboard-912uag-2hpnd.dts
index f14e138026..81d7284b3d 100644
--- a/target/linux/ath79/dts/ar9342_mikrotik_routerboard-912uag-2hpnd.dts
+++ b/target/linux/ath79/dts/ar9342_mikrotik_routerboard-912uag-2hpnd.dts
@@ -1,229 +1,13 @@
// SPDX-License-Identifier: GPL-2.0-or-later
-#include "ar9344.dtsi"
+#include "ar9342_mikrotik_routerboard-911g.dtsi"
#include
#include
/ {
compatible = "mikrotik,routerboard-912uag-2hpnd", "qca,ar9342";
- model = "MikroTik RouterBOARD 912UAG-2HPnD";
-
- aliases {
- led-boot = &led_power;
- led-failsafe = &led_power;
- led-running = &led_power;
- led-upgrade = &led_power;
- };
-
- gpio_key: gpio_key {
- compatible = "mikrotik,gpio-rb91x-key";
- gpio-controller;
- #gpio-cells = <2>;
- gpio = <&gpio 15 GPIO_ACTIVE_HIGH>;
- };
-
- gpio_latch: gpio_latch {
- compatible = "gpio-latch";
- gpio-controller;
- #gpio-cells = <2>;
- gpios = <&gpio 0 GPIO_ACTIVE_HIGH>,
- <&gpio 1 GPIO_ACTIVE_HIGH>,
- <&gpio 2 GPIO_ACTIVE_HIGH>,
- <&gpio 3 GPIO_ACTIVE_HIGH>,
- <0>, /* Not connected */
- <&gpio 13 GPIO_ACTIVE_HIGH>,
- <&gpio 14 GPIO_ACTIVE_HIGH>,
- <&gpio_key 0 GPIO_ACTIVE_HIGH>,
- <&gpio 11 GPIO_ACTIVE_LOW>; /* Latch Enable */
- };
-
- nand_gpio {
- compatible = "mikrotik,rb91x-nand";
-
- gpios = <&gpio_latch 3 GPIO_ACTIVE_HIGH>, /* Read */
- <&gpio 4 GPIO_ACTIVE_HIGH>, /* Ready (RDY) */
- <&gpio_latch 5 GPIO_ACTIVE_LOW>, /* Chip Enable (nCE) */
- <&gpio_latch 6 GPIO_ACTIVE_HIGH>, /* Command Latch Enable (CLE) */
- <&gpio_latch 7 GPIO_ACTIVE_HIGH>, /* Address Latch Enable (ALE) */
- <&gpio 12 GPIO_ACTIVE_LOW>, /* Read/Write Enable (nRW) */
- <&gpio_latch 8 GPIO_ACTIVE_LOW>, /* Latch Enable (nLE) */
- <&gpio_key 2 GPIO_ACTIVE_HIGH>; /* Key poll disable */
-
- partitions {
- compatible = "fixed-partitions";
- #address-cells = <1>;
- #size-cells = <1>;
-
- partition@0 {
- label = "booter";
- reg = <0x0 0x0040000>;
- read-only;
- };
-
- partition@40000 {
- label = "kernel";
- reg = <0x0040000 0x03c0000>;
- };
-
- partition@400000 {
- label = "ubi";
- reg = <0x0400000 0x7c00000>;
- };
- };
- };
-
- keys {
- compatible = "gpio-keys-polled";
- poll-interval = <20>;
-
- button@0 {
- label = "reset";
- linux,code = ;
- gpios = <&gpio_key 1 GPIO_ACTIVE_LOW>;
- };
- };
-
- leds {
- compatible = "gpio-leds";
-
- led_power: power {
- label = "green:power";
- gpios = <&gpio_latch 1 GPIO_ACTIVE_HIGH>;
- default-state = "on";
- };
-
- user {
- label = "green:user";
- gpios = <&gpio_latch 2 GPIO_ACTIVE_HIGH>;
- };
-
- led1 {
- label = "green:led1";
- gpios = <&ssr 0 GPIO_ACTIVE_HIGH>;
- };
-
- led2 {
- label = "green:led2";
- gpios = <&ssr 1 GPIO_ACTIVE_HIGH>;
- };
-
- led3 {
- label = "green:led3";
- gpios = <&ssr 2 GPIO_ACTIVE_HIGH>;
- };
-
- led4 {
- label = "green:led4";
- gpios = <&ssr 3 GPIO_ACTIVE_HIGH>;
- };
-
- led5 {
- label = "green:led5";
- gpios = <&ssr 4 GPIO_ACTIVE_HIGH>;
- };
- };
-
- gpio-export {
- compatible = "gpio-export";
-
- beeper {
- gpio-export,name = "beeper";
- gpio-export,output = <1>; /* Must be 1 to avoid EMI induced clicking noise */
- gpios = <&ssr 5 GPIO_ACTIVE_HIGH>;
- };
-
- usb_power {
- gpio-export,name = "power-usb";
- gpio-export,output = <1>;
- gpios = <&ssr 6 GPIO_ACTIVE_HIGH>;
- };
-
- pcie_power {
- gpio-export,name = "power-pcie";
- gpio-export,output = <0>;
- gpios = <&ssr 7 GPIO_ACTIVE_HIGH>;
- };
- };
-};
-
-&ref {
- clock-frequency = <40000000>;
-};
-
-&spi {
- status = "okay";
-
- compatible = "qca,ar7100-spi";
-
- cs-gpios = <0>, <&gpio_latch 0 GPIO_ACTIVE_LOW>;
-
- flash@0 {
- compatible = "jedec,spi-nor";
- reg = <0>;
- spi-max-frequency = <50000000>;
-
- partitions {
- compatible = "mikrotik,routerboot-partitions";
- #address-cells = <1>;
- #size-cells = <1>;
-
- partition@0 {
- label = "routerboot";
- reg = <0x0 0x0>;
- read-only;
- };
-
- hard_config {
- read-only;
- };
-
- bios {
- size = <0x1000>;
- read-only;
- };
-
- soft_config {
- };
- };
- };
-
- ssr: ssr@1 {
- compatible = "fairchild,74hc595";
- gpio-controller;
- #gpio-cells = <2>;
- registers-number = <1>;
- reg = <1>;
- spi-max-frequency = <50000000>;
- };
-};
-
-&mdio0 {
- status = "okay";
-
- phy0: ethernet-phy@0 {
- reg = <0>;
- };
-};
-
-ð0 {
- status = "okay";
-
- phy-mode = "rgmii-id";
- phy-handle = <&phy0>;
- pll-data = <0x02000000 0x00000101 0x00001313>;
-
- gmac-config {
- device = <&gmac>;
- rgmii-gmac0 = <1>;
- rxd-delay = <1>;
- txd-delay = <1>;
- };
-};
-
-&wmac {
- status = "okay";
- qca,no-eeprom;
+ model = "MikroTik RouterBOARD 912UAG-(2,5)HPnD";
};
&pcie {
diff --git a/target/linux/ath79/dts/ar9342_ubnt_bullet-m-xw.dts b/target/linux/ath79/dts/ar9342_ubnt_bullet-m-xw.dts
index c448ac4e61..ee73428625 100644
--- a/target/linux/ath79/dts/ar9342_ubnt_bullet-m-xw.dts
+++ b/target/linux/ath79/dts/ar9342_ubnt_bullet-m-xw.dts
@@ -1,6 +1,6 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
-#include "ar9342_ubnt_xw.dtsi"
+#include "ar9342_ubnt_xw_rssileds.dtsi"
/ {
compatible = "ubnt,bullet-m-xw", "ubnt,xw", "qca,ar9342";
@@ -11,15 +11,15 @@
status = "okay";
phy4: ethernet-phy@4 {
- phy-mode = "rgmii";
reg = <4>;
+ max-speed = <100>;
};
};
ð0 {
status = "okay";
- phy-mode = "rgmii";
+ phy-mode = "rgmii-txid";
phy-handle = <&phy4>;
gmac-config {
diff --git a/target/linux/ath79/dts/ar9342_ubnt_litebeam-m5-xw.dts b/target/linux/ath79/dts/ar9342_ubnt_litebeam-m5-xw.dts
new file mode 100644
index 0000000000..bc01bdffb5
--- /dev/null
+++ b/target/linux/ath79/dts/ar9342_ubnt_litebeam-m5-xw.dts
@@ -0,0 +1,59 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+
+#include "ar9342_ubnt_xw.dtsi"
+
+#include
+#include
+#include
+
+/ {
+ compatible = "ubnt,litebeam-m5-xw", "qca,ar9342";
+ model = "Ubiquiti LiteBeam M5 (XW)";
+
+ aliases {
+ led-boot = &led_status;
+ led-running = &led_status;
+ led-upgrade = &led_status;
+ led-failsafe = &led_status;
+ label-mac-device = &wmac;
+ };
+
+ leds {
+ compatible = "gpio-leds";
+
+ led-lan {
+ color = ;
+ function = LED_FUNCTION_LAN;
+ gpios = <&gpio 13 GPIO_ACTIVE_LOW>;
+ };
+
+ led-wlan {
+ color = ;
+ function = LED_FUNCTION_WLAN;
+ linux,default-trigger = "phy0tpt";
+ gpios = <&gpio 14 GPIO_ACTIVE_LOW>;
+ };
+
+ led_status: led-power {
+ color = ;
+ function = LED_FUNCTION_POWER;
+ gpios = <&gpio 16 GPIO_ACTIVE_LOW>;
+ };
+ };
+};
+
+&mdio0 {
+ status = "okay";
+
+ phy1: ethernet-phy@1 {
+ reg = <1>;
+ phy-mode = "mii";
+ reset-gpios = <&gpio 0 GPIO_ACTIVE_LOW>;
+ };
+};
+
+ð0 {
+ status = "okay";
+
+ phy-handle = <&phy1>;
+};
diff --git a/target/linux/ath79/dts/ar9342_ubnt_nanobeam-m5-xw.dts b/target/linux/ath79/dts/ar9342_ubnt_nanobeam-m5-xw.dts
deleted file mode 100644
index 9b9b217f24..0000000000
--- a/target/linux/ath79/dts/ar9342_ubnt_nanobeam-m5-xw.dts
+++ /dev/null
@@ -1,24 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
-
-#include "ar9342_ubnt_xw.dtsi"
-
-/ {
- compatible = "ubnt,nanobeam-m5-xw", "ubnt,xw", "qca,ar9342";
- model = "Ubiquiti NanoBeam M5 (XW)";
-};
-
-&mdio0 {
- status = "okay";
-
- phy1: ethernet-phy@1 {
- reg = <1>;
- phy-mode = "mii";
- reset-gpios = <&gpio 0 GPIO_ACTIVE_LOW>;
- };
-};
-
-ð0 {
- status = "okay";
-
- phy-handle = <&phy1>;
-};
diff --git a/target/linux/ath79/dts/ar9342_ubnt_nanostation-loco-m-xw.dts b/target/linux/ath79/dts/ar9342_ubnt_nanostation-loco-m-xw.dts
index c71cf11dd2..ba3ad5a8d0 100644
--- a/target/linux/ath79/dts/ar9342_ubnt_nanostation-loco-m-xw.dts
+++ b/target/linux/ath79/dts/ar9342_ubnt_nanostation-loco-m-xw.dts
@@ -1,6 +1,6 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
-#include "ar9342_ubnt_xw.dtsi"
+#include "ar9342_ubnt_xw_rssileds.dtsi"
/ {
compatible = "ubnt,nanostation-loco-m-xw", "ubnt,xw", "qca,ar9342";
diff --git a/target/linux/ath79/dts/ar9342_ubnt_nanostation-m-xw.dts b/target/linux/ath79/dts/ar9342_ubnt_nanostation-m-xw.dts
index e359297661..fb02bb188a 100644
--- a/target/linux/ath79/dts/ar9342_ubnt_nanostation-m-xw.dts
+++ b/target/linux/ath79/dts/ar9342_ubnt_nanostation-m-xw.dts
@@ -1,6 +1,6 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
-#include "ar9342_ubnt_xw.dtsi"
+#include "ar9342_ubnt_xw_rssileds.dtsi"
/ {
compatible = "ubnt,nanostation-m-xw", "ubnt,xw", "qca,ar9342";
diff --git a/target/linux/ath79/dts/ar9342_ubnt_powerbeam-m2-xw.dts b/target/linux/ath79/dts/ar9342_ubnt_powerbeam-m2-xw.dts
index 762a17b177..11bd71ca3d 100644
--- a/target/linux/ath79/dts/ar9342_ubnt_powerbeam-m2-xw.dts
+++ b/target/linux/ath79/dts/ar9342_ubnt_powerbeam-m2-xw.dts
@@ -1,6 +1,6 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
-#include "ar9342_ubnt_xw.dtsi"
+#include "ar9342_ubnt_xw_rssileds.dtsi"
/ {
compatible = "ubnt,powerbeam-m2-xw", "ubnt,xw", "qca,ar9342";
diff --git a/target/linux/ath79/dts/ar9342_ubnt_powerbeam-m5-xw.dts b/target/linux/ath79/dts/ar9342_ubnt_powerbeam-m5-xw.dts
index 978a05fed6..7199d184e9 100644
--- a/target/linux/ath79/dts/ar9342_ubnt_powerbeam-m5-xw.dts
+++ b/target/linux/ath79/dts/ar9342_ubnt_powerbeam-m5-xw.dts
@@ -1,6 +1,6 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
-#include "ar9342_ubnt_xw.dtsi"
+#include "ar9342_ubnt_xw_rssileds.dtsi"
/ {
compatible = "ubnt,powerbeam-m5-xw", "ubnt,xw", "qca,ar9342";
diff --git a/target/linux/ath79/dts/ar9342_ubnt_xw.dtsi b/target/linux/ath79/dts/ar9342_ubnt_xw.dtsi
index 899f167748..cd39410be5 100644
--- a/target/linux/ath79/dts/ar9342_ubnt_xw.dtsi
+++ b/target/linux/ath79/dts/ar9342_ubnt_xw.dtsi
@@ -9,38 +9,6 @@
compatible = "ubnt,xw", "qca,ar9342";
model = "Ubiquiti Networks XW board";
- aliases {
- led-boot = &led_link4;
- led-running = &led_link4;
- led-upgrade = &led_link4;
- led-failsafe = &led_link4;
- label-mac-device = &wmac;
- };
-
- leds {
- compatible = "gpio-leds";
-
- link1 {
- label = "red:link1";
- gpios = <&gpio 11 GPIO_ACTIVE_LOW>;
- };
-
- link2 {
- label = "orange:link2";
- gpios = <&gpio 16 GPIO_ACTIVE_LOW>;
- };
-
- link3 {
- label = "green:link3";
- gpios = <&gpio 13 GPIO_ACTIVE_LOW>;
- };
-
- led_link4: link4 {
- label = "green:link4";
- gpios = <&gpio 14 GPIO_ACTIVE_LOW>;
- };
- };
-
keys {
compatible = "gpio-keys";
@@ -107,6 +75,10 @@
macaddr_art_0: macaddr@0 {
reg = <0x0 0x6>;
};
+
+ calibration_art_1000: calibration@1000 {
+ reg = <0x1000 0x440>;
+ };
};
};
};
@@ -116,7 +88,8 @@
&wmac {
status = "okay";
- mtd-cal-data = <&art 0x1000>;
+ nvmem-cells = <&calibration_art_1000>;
+ nvmem-cell-names = "calibration";
};
ð0 {
diff --git a/target/linux/ath79/dts/ar9342_ubnt_xw_rssileds.dtsi b/target/linux/ath79/dts/ar9342_ubnt_xw_rssileds.dtsi
new file mode 100644
index 0000000000..d54dbeba38
--- /dev/null
+++ b/target/linux/ath79/dts/ar9342_ubnt_xw_rssileds.dtsi
@@ -0,0 +1,43 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+
+#include "ar9342_ubnt_xw.dtsi"
+
+#include
+#include
+
+/ {
+ compatible = "ubnt,xw", "qca,ar9342";
+ model = "Ubiquiti Networks XW board";
+
+ aliases {
+ led-boot = &led_link4;
+ led-running = &led_link4;
+ led-upgrade = &led_link4;
+ led-failsafe = &led_link4;
+ label-mac-device = &wmac;
+ };
+
+ leds {
+ compatible = "gpio-leds";
+
+ link1 {
+ label = "red:link1";
+ gpios = <&gpio 11 GPIO_ACTIVE_LOW>;
+ };
+
+ link2 {
+ label = "orange:link2";
+ gpios = <&gpio 16 GPIO_ACTIVE_LOW>;
+ };
+
+ link3 {
+ label = "green:link3";
+ gpios = <&gpio 13 GPIO_ACTIVE_LOW>;
+ };
+
+ led_link4: link4 {
+ label = "green:link4";
+ gpios = <&gpio 14 GPIO_ACTIVE_LOW>;
+ };
+ };
+};
diff --git a/target/linux/ath79/dts/ar9344.dtsi b/target/linux/ath79/dts/ar9344.dtsi
index fb23c53d41..dff912f8ca 100644
--- a/target/linux/ath79/dts/ar9344.dtsi
+++ b/target/linux/ath79/dts/ar9344.dtsi
@@ -32,7 +32,7 @@
};
&ahb {
- pcie: pcie-controller@180c0000 {
+ pcie: pcie@180c0000 {
compatible = "qcom,ar9340-pci", "qcom,ar7240-pci";
#address-cells = <3>;
#size-cells = <2>;
diff --git a/target/linux/ath79/dts/ar9344_araknis_an-300-ap-i-n.dts b/target/linux/ath79/dts/ar9344_araknis_an-300-ap-i-n.dts
index a45aa444de..c2c7cbb960 100644
--- a/target/linux/ath79/dts/ar9344_araknis_an-300-ap-i-n.dts
+++ b/target/linux/ath79/dts/ar9344_araknis_an-300-ap-i-n.dts
@@ -84,7 +84,7 @@
&pcie {
status = "okay";
- ath9k: wifi@0,0,0 {
+ ath9k: wifi@0,0 {
compatible = "pci168c,0030";
reg = <0x0 0 0 0 0>;
nvmem-cells = <&macaddr_art_0 1>, <&calibration_art_5000>;
diff --git a/target/linux/ath79/dts/ar9344_engenius_eap600.dts b/target/linux/ath79/dts/ar9344_engenius_eap600.dts
index 888e3f82ad..4d3a149e3e 100644
--- a/target/linux/ath79/dts/ar9344_engenius_eap600.dts
+++ b/target/linux/ath79/dts/ar9344_engenius_eap600.dts
@@ -34,7 +34,7 @@
};
&pcie {
- wifi@0,0,0 {
+ wifi@0,0 {
nvmem-cells = <&macaddr_art_0 0>, <&calibration_art_5000>;
nvmem-cell-names = "mac-address", "calibration";
};
diff --git a/target/linux/ath79/dts/ar9344_engenius_ecb600.dts b/target/linux/ath79/dts/ar9344_engenius_ecb600.dts
index ac9bbea5d4..e7b8b9c3ce 100644
--- a/target/linux/ath79/dts/ar9344_engenius_ecb600.dts
+++ b/target/linux/ath79/dts/ar9344_engenius_ecb600.dts
@@ -29,7 +29,7 @@
};
&pcie {
- wifi@0,0,0 {
+ wifi@0,0 {
nvmem-cells = <&macaddr_art_0 (-2)>, <&calibration_art_5000>;
nvmem-cell-names = "mac-address", "calibration";
};
diff --git a/target/linux/ath79/dts/ar9344_fortinet_ap-dual.dtsi b/target/linux/ath79/dts/ar9344_fortinet_ap-dual.dtsi
index c8f12a1bfb..6b1ae8ac93 100644
--- a/target/linux/ath79/dts/ar9344_fortinet_ap-dual.dtsi
+++ b/target/linux/ath79/dts/ar9344_fortinet_ap-dual.dtsi
@@ -56,7 +56,7 @@
&pcie {
status = "okay";
- ath9k: wifi@0,0,0 {
+ ath9k: wifi@0,0 {
compatible = "pci168c,0030";
reg = <0x0 0 0 0 0>;
};
diff --git a/target/linux/ath79/dts/ar9344_netgear_r6100.dts b/target/linux/ath79/dts/ar9344_netgear_r6100.dts
index 419fa51f61..5952e0140f 100644
--- a/target/linux/ath79/dts/ar9344_netgear_r6100.dts
+++ b/target/linux/ath79/dts/ar9344_netgear_r6100.dts
@@ -203,7 +203,7 @@
&pcie {
status = "okay";
- wifi@0,0,0 {
+ wifi@0,0 {
compatible = "qcom,ath10k";
reg = <0x0000 0 0 0 0>;
diff --git a/target/linux/ath79/dts/ar9344_netgear_wndr.dtsi b/target/linux/ath79/dts/ar9344_netgear_wndr.dtsi
index d2a3000004..49057548f8 100644
--- a/target/linux/ath79/dts/ar9344_netgear_wndr.dtsi
+++ b/target/linux/ath79/dts/ar9344_netgear_wndr.dtsi
@@ -90,7 +90,7 @@
#address-cells = <1>;
#size-cells = <1>;
- ubi@ac0000 {
+ ubi@0 {
label = "ubi";
reg = <0x0 0x7500000>;
};
@@ -171,22 +171,23 @@
reg = <0x3c0000 0x300000>;
};
- kernel@6c0000 {
- label = "kernel";
- reg = <0x6c0000 0x400000>;
- };
-
- ubiconcat0: partition@ac0000 {
- label = "ubiconcat0";
- reg = <0xac0000 0x1500000>;
- };
-
partition@6c0000 {
label = "firmware";
reg = <0x6c0000 0x1900000>;
- compatible = "openwrt,uimage", "denx,uimage";
- openwrt,ih-magic = <0x33373033>;
- openwrt,ih-type = ;
+
+ compatible = "fixed-partitions";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ kernel@0 {
+ label = "kernel";
+ reg = <0x0 0x400000>;
+ };
+
+ ubiconcat0: partition@400000 {
+ label = "ubiconcat0";
+ reg = <0x400000 0x1500000>;
+ };
};
partition@1fc0000 {
diff --git a/target/linux/ath79/dts/ar9344_qihoo_c301.dts b/target/linux/ath79/dts/ar9344_qihoo_c301.dts
index 616036fcfc..d7e2e24239 100644
--- a/target/linux/ath79/dts/ar9344_qihoo_c301.dts
+++ b/target/linux/ath79/dts/ar9344_qihoo_c301.dts
@@ -48,7 +48,7 @@
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
regulator-always-on;
- gpio = <&gpio 18 GPIO_ACTIVE_LOW>;
+ gpios = <&gpio 18 GPIO_ACTIVE_LOW>;
};
usb_vbus: reg_usb_vbus {
@@ -57,7 +57,7 @@
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
enable-active-high;
- gpio = <&gpio 19 GPIO_ACTIVE_HIGH>;
+ gpios = <&gpio 19 GPIO_ACTIVE_HIGH>;
};
};
@@ -103,8 +103,6 @@
pinctrl-0 = <&pmx_spi_cs1>;
flash@0 {
- #address-cells = <1>;
- #size-cells = <1>;
compatible = "jedec,spi-nor";
reg = <0>;
spi-max-frequency = <25000000>;
@@ -164,8 +162,6 @@
};
flash@1 {
- #address-cells = <1>;
- #size-cells = <1>;
compatible = "jedec,spi-nor";
reg = <1>;
spi-max-frequency = <25000000>;
diff --git a/target/linux/ath79/dts/ar9344_senao_ap-dual.dtsi b/target/linux/ath79/dts/ar9344_senao_ap-dual.dtsi
index c0e95065d5..f1d6ffda7c 100644
--- a/target/linux/ath79/dts/ar9344_senao_ap-dual.dtsi
+++ b/target/linux/ath79/dts/ar9344_senao_ap-dual.dtsi
@@ -59,7 +59,7 @@
&pcie {
status = "okay";
- ath9k: wifi@0,0,0 {
+ ath9k: wifi@0,0 {
compatible = "pci168c,0030";
reg = <0x0 0 0 0 0>;
ieee80211-freq-limit = <2402000 2482000>;
diff --git a/target/linux/ath79/dts/ar9344_watchguard_ap100.dts b/target/linux/ath79/dts/ar9344_watchguard_ap100.dts
index 2fd9a6e51b..e09d539c56 100644
--- a/target/linux/ath79/dts/ar9344_watchguard_ap100.dts
+++ b/target/linux/ath79/dts/ar9344_watchguard_ap100.dts
@@ -63,7 +63,7 @@
&pcie {
status = "disabled";
- wifi@0,0,0 {
+ wifi@0,0 {
nvmem-cells = <&calibration_art_5000>;
nvmem-cell-names = "calibration";
};
diff --git a/target/linux/ath79/dts/ar9344_watchguard_ap200.dts b/target/linux/ath79/dts/ar9344_watchguard_ap200.dts
index 9cf6819958..c3d7c50813 100644
--- a/target/linux/ath79/dts/ar9344_watchguard_ap200.dts
+++ b/target/linux/ath79/dts/ar9344_watchguard_ap200.dts
@@ -61,7 +61,7 @@
};
&pcie {
- wifi@0,0,0 {
+ wifi@0,0 {
nvmem-cells = <&macaddr_art_0 (-1)>, <&calibration_art_5000>;
nvmem-cell-names = "mac-address", "calibration";
};
diff --git a/target/linux/ath79/dts/ar934x.dtsi b/target/linux/ath79/dts/ar934x.dtsi
index 94dfde4125..98cd76629f 100644
--- a/target/linux/ath79/dts/ar934x.dtsi
+++ b/target/linux/ath79/dts/ar934x.dtsi
@@ -197,9 +197,6 @@
nand-ecc-mode = "hw";
- #address-cells = <1>;
- #size-cells = <0>;
-
status = "disabled";
};
diff --git a/target/linux/ath79/dts/qca9531_glinet_gl-ar750.dts b/target/linux/ath79/dts/qca9531_glinet_gl-ar750.dts
index 1c6dcee8bf..b81485f465 100644
--- a/target/linux/ath79/dts/qca9531_glinet_gl-ar750.dts
+++ b/target/linux/ath79/dts/qca9531_glinet_gl-ar750.dts
@@ -72,7 +72,6 @@
wifi@0,0 {
compatible = "qcom,ath10k";
reg = <0 0 0 0 0>;
- device_type = "pci";
};
};
diff --git a/target/linux/ath79/dts/qca9531_tplink_tl-wr810n-v1.dts b/target/linux/ath79/dts/qca9531_tplink_tl-wr810n-v1.dts
index 227f57b9b4..6f96b61392 100644
--- a/target/linux/ath79/dts/qca9531_tplink_tl-wr810n-v1.dts
+++ b/target/linux/ath79/dts/qca9531_tplink_tl-wr810n-v1.dts
@@ -11,7 +11,7 @@
regulator-name = "usb_vbus";
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
- gpio = <&gpio 11 GPIO_ACTIVE_HIGH>;
+ gpios = <&gpio 11 GPIO_ACTIVE_HIGH>;
enable-active-high;
regulator-always-on;
};
diff --git a/target/linux/ath79/dts/qca9533_tplink_cpexxx.dtsi b/target/linux/ath79/dts/qca9533_tplink_cpexxx.dtsi
index e7044b60a4..f17dd513e2 100644
--- a/target/linux/ath79/dts/qca9533_tplink_cpexxx.dtsi
+++ b/target/linux/ath79/dts/qca9533_tplink_cpexxx.dtsi
@@ -53,8 +53,6 @@
status = "okay";
flash@0 {
- #address-cells = <1>;
- #size-cells = <1>;
compatible = "jedec,spi-nor";
reg = <0>;
spi-max-frequency = <25000000>;
diff --git a/target/linux/ath79/dts/qca9533_tplink_tl-wa850re-v2.dts b/target/linux/ath79/dts/qca9533_tplink_tl-wa850re-v2.dts
index 762197f255..c3d42a8b35 100644
--- a/target/linux/ath79/dts/qca9533_tplink_tl-wa850re-v2.dts
+++ b/target/linux/ath79/dts/qca9533_tplink_tl-wa850re-v2.dts
@@ -95,8 +95,6 @@
status = "okay";
flash@0 {
- #address-cells = <1>;
- #size-cells = <1>;
compatible = "jedec,spi-nor";
reg = <0>;
spi-max-frequency = <25000000>;
diff --git a/target/linux/ath79/dts/qca953x.dtsi b/target/linux/ath79/dts/qca953x.dtsi
index 4300c741ad..cc26db5ba2 100644
--- a/target/linux/ath79/dts/qca953x.dtsi
+++ b/target/linux/ath79/dts/qca953x.dtsi
@@ -150,7 +150,7 @@
reg = <0x18070000 0x4>;
};
- pcie0: pcie-controller@180c0000 {
+ pcie0: pcie@180c0000 {
compatible = "qcom,ar7240-pci";
#address-cells = <3>;
#size-cells = <2>;
diff --git a/target/linux/ath79/dts/qca9557_extreme-networks_ws-ap3805i.dts b/target/linux/ath79/dts/qca9557_extreme-networks_ws-ap3805i.dts
index 59dd83d5f8..4a68f53075 100644
--- a/target/linux/ath79/dts/qca9557_extreme-networks_ws-ap3805i.dts
+++ b/target/linux/ath79/dts/qca9557_extreme-networks_ws-ap3805i.dts
@@ -75,7 +75,7 @@
&pcie0 {
status = "okay";
- wifi@0,0,0 {
+ wifi@0,0 {
compatible = "qcom,ath10k";
reg = <0x0 0 0 0 0>;
};
diff --git a/target/linux/ath79/dts/qca9558_aruba_ap-115.dts b/target/linux/ath79/dts/qca9558_aruba_ap-115.dts
index c15cb677b9..9d95282451 100644
--- a/target/linux/ath79/dts/qca9558_aruba_ap-115.dts
+++ b/target/linux/ath79/dts/qca9558_aruba_ap-115.dts
@@ -83,7 +83,7 @@
regulator-name = "usb_vbus";
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
- gpio = <&gpio 3 GPIO_ACTIVE_HIGH>;
+ gpios = <&gpio 3 GPIO_ACTIVE_HIGH>;
enable-active-high;
regulator-always-on;
};
diff --git a/target/linux/ath79/dts/qca9558_engenius_esr900.dts b/target/linux/ath79/dts/qca9558_engenius_esr900.dts
index 269f743223..ef0e21a3b5 100644
--- a/target/linux/ath79/dts/qca9558_engenius_esr900.dts
+++ b/target/linux/ath79/dts/qca9558_engenius_esr900.dts
@@ -76,7 +76,7 @@
&pcie0 {
status = "okay";
- wifi@0,0,0 {
+ wifi@0,0 {
compatible = "pci168c,0033";
reg = <0x0000 0 0 0 0>;
nvmem-cells = <&calibration_art_5000>;
diff --git a/target/linux/ath79/dts/qca9558_jjplus_jwap230.dts b/target/linux/ath79/dts/qca9558_jjplus_jwap230.dts
index 6cd93f6b33..ee2e82ef10 100644
--- a/target/linux/ath79/dts/qca9558_jjplus_jwap230.dts
+++ b/target/linux/ath79/dts/qca9558_jjplus_jwap230.dts
@@ -109,7 +109,7 @@
&mdio0 {
status = "okay";
- switch {
+ switch@0 {
compatible = "qca,ar8327";
reg = <0>;
diff --git a/target/linux/ath79/dts/qca9558_mikrotik_routerboard-911g-5hpacd.dts b/target/linux/ath79/dts/qca9558_mikrotik_routerboard-911g-5hpacd.dts
new file mode 100644
index 0000000000..22784075f6
--- /dev/null
+++ b/target/linux/ath79/dts/qca9558_mikrotik_routerboard-911g-5hpacd.dts
@@ -0,0 +1,29 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+
+#include "qca9558_mikrotik_routerboard-92x.dtsi"
+
+/ {
+ compatible = "mikrotik,routerboard-911g-5hpacd", "qca,qca9558";
+ model = "MikroTik RouterBOARD 911G-5HPacD";
+
+ ath10k-leds {
+ compatible = "gpio-leds";
+
+ wlan5g {
+ label = "green:wlan5g";
+ gpios = <&ath10k 0 GPIO_ACTIVE_LOW>;
+ linux,default-trigger = "phy0tpt";
+ };
+ };
+};
+
+&pcie1 {
+ status = "okay";
+
+ ath10k: wifi@0,0 {
+ compatible = "qcom,ath10k";
+ reg = <0 0 0 0 0>;
+ #gpio-cells = <2>;
+ gpio-controller;
+ };
+};
diff --git a/target/linux/ath79/dts/qca9558_mikrotik_routerboard-921gs-5hpacd-15s.dts b/target/linux/ath79/dts/qca9558_mikrotik_routerboard-921gs-5hpacd-15s.dts
index d1f307bd48..36283ec228 100644
--- a/target/linux/ath79/dts/qca9558_mikrotik_routerboard-921gs-5hpacd-15s.dts
+++ b/target/linux/ath79/dts/qca9558_mikrotik_routerboard-921gs-5hpacd-15s.dts
@@ -17,6 +17,14 @@
};
};
+&mdio1 {
+ status = "okay";
+};
+
+ð1 {
+ status = "okay";
+};
+
&pcie1 {
status = "okay";
diff --git a/target/linux/ath79/dts/qca9558_mikrotik_routerboard-922uags-5hpacd.dts b/target/linux/ath79/dts/qca9558_mikrotik_routerboard-922uags-5hpacd.dts
index 8ad834fe61..553dff0853 100644
--- a/target/linux/ath79/dts/qca9558_mikrotik_routerboard-922uags-5hpacd.dts
+++ b/target/linux/ath79/dts/qca9558_mikrotik_routerboard-922uags-5hpacd.dts
@@ -25,6 +25,14 @@
};
};
+&mdio1 {
+ status = "okay";
+};
+
+ð1 {
+ status = "okay";
+};
+
&pcie0 {
status = "okay";
diff --git a/target/linux/ath79/dts/qca9558_mikrotik_routerboard-92x.dtsi b/target/linux/ath79/dts/qca9558_mikrotik_routerboard-92x.dtsi
index 82b8c2ae56..bc85cad9b3 100644
--- a/target/linux/ath79/dts/qca9558_mikrotik_routerboard-92x.dtsi
+++ b/target/linux/ath79/dts/qca9558_mikrotik_routerboard-92x.dtsi
@@ -86,8 +86,6 @@
};
&mdio1 {
- status = "okay";
-
phy_sfp: ethernet-phy@0 {
reg = <0>;
phy-mode = "sgmii";
@@ -96,8 +94,6 @@
};
ð1 {
- status = "okay";
-
phy-handle = <&phy_sfp>;
pll-data = <0x03000000 0x00000101 0x00001616>;
qca955x-sgmii-fixup;
diff --git a/target/linux/ath79/dts/qca9558_sophos_ap.dtsi b/target/linux/ath79/dts/qca9558_sophos_ap.dtsi
index 8abd3e60b7..0cf5eb6e66 100644
--- a/target/linux/ath79/dts/qca9558_sophos_ap.dtsi
+++ b/target/linux/ath79/dts/qca9558_sophos_ap.dtsi
@@ -62,7 +62,7 @@
regulator-name = "usb_vbus";
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
- gpio = <&gpio 11 GPIO_ACTIVE_HIGH>;
+ gpios = <&gpio 11 GPIO_ACTIVE_HIGH>;
enable-active-high;
regulator-boot-on;
status = "disabled";
diff --git a/target/linux/ath79/dts/qca9558_tplink_archer-d7.dtsi b/target/linux/ath79/dts/qca9558_tplink_archer-d7.dtsi
index c4d910bf1e..35532f42c8 100644
--- a/target/linux/ath79/dts/qca9558_tplink_archer-d7.dtsi
+++ b/target/linux/ath79/dts/qca9558_tplink_archer-d7.dtsi
@@ -72,7 +72,7 @@
regulator-name = "usb_vbus";
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
- gpio = <&gpio 21 GPIO_ACTIVE_HIGH>;
+ gpios = <&gpio 21 GPIO_ACTIVE_HIGH>;
enable-active-high;
};
@@ -81,7 +81,7 @@
regulator-name = "usb_vbus";
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
- gpio = <&gpio 22 GPIO_ACTIVE_HIGH>;
+ gpios = <&gpio 22 GPIO_ACTIVE_HIGH>;
enable-active-high;
};
};
diff --git a/target/linux/ath79/dts/qca9558_zyxel_nbg6716.dts b/target/linux/ath79/dts/qca9558_zyxel_nbg6716.dts
index 9aee8c362c..20230e684e 100644
--- a/target/linux/ath79/dts/qca9558_zyxel_nbg6716.dts
+++ b/target/linux/ath79/dts/qca9558_zyxel_nbg6716.dts
@@ -143,16 +143,20 @@
firmware@500000 {
label = "firmware";
reg = <0x500000 0x7b00000>;
- };
- partition@500000 {
- label = "kernel";
- reg = <0x500000 0x400000>;
- };
+ compatible = "fixed-partitions";
+ #address-cells = <1>;
+ #size-cells = <1>;
- partition@900000 {
- label = "ubi";
- reg = <0x900000 0x7700000>;
+ partition@0 {
+ label = "kernel";
+ reg = <0x0 0x400000>;
+ };
+
+ partition@400000 {
+ label = "ubi";
+ reg = <0x400000 0x7700000>;
+ };
};
};
};
diff --git a/target/linux/ath79/dts/qca955x.dtsi b/target/linux/ath79/dts/qca955x.dtsi
index e7daa9d827..c17a15c55e 100644
--- a/target/linux/ath79/dts/qca955x.dtsi
+++ b/target/linux/ath79/dts/qca955x.dtsi
@@ -185,7 +185,7 @@
reg = <0x18070000 0x58>;
};
- pcie0: pcie-controller@180c0000 {
+ pcie0: pcie@180c0000 {
compatible = "qcom,qca9550-pci", "qcom,ar7240-pci";
#address-cells = <3>;
#size-cells = <2>;
@@ -222,7 +222,7 @@
status = "disabled";
};
- pcie1: pcie-controller@18250000 {
+ pcie1: pcie@18250000 {
compatible = "qcom,qca9550-pci", "qcom,ar7240-pci";
#address-cells = <3>;
#size-cells = <2>;
@@ -313,9 +313,6 @@
nand-ecc-mode = "hw";
- #address-cells = <1>;
- #size-cells = <0>;
-
status = "disabled";
};
diff --git a/target/linux/ath79/dts/qca955x_engenius_ecb1xxx.dtsi b/target/linux/ath79/dts/qca955x_engenius_ecb1xxx.dtsi
index e448cd3012..66f2e38853 100644
--- a/target/linux/ath79/dts/qca955x_engenius_ecb1xxx.dtsi
+++ b/target/linux/ath79/dts/qca955x_engenius_ecb1xxx.dtsi
@@ -119,7 +119,7 @@
&pcie0 {
status = "okay";
- wifi@0,0,0 {
+ wifi@0,0 {
compatible = "qcom,ath10k";
reg = <0x0 0 0 0 0>;
qca,no-eeprom;
diff --git a/target/linux/ath79/dts/qca955x_senao_loader.dtsi b/target/linux/ath79/dts/qca955x_senao_loader.dtsi
index cf82c050b6..31e00ce063 100644
--- a/target/linux/ath79/dts/qca955x_senao_loader.dtsi
+++ b/target/linux/ath79/dts/qca955x_senao_loader.dtsi
@@ -26,16 +26,16 @@
};
&pcie0 {
- ath10k_0: wifi@0,0,0 {
+ ath10k_0: wifi@0,0 {
compatible = "qcom,ath10k";
reg = <0x0 0 0 0 0>;
};
};
&pcie1 {
- ath10k_1: wifi@0,1,0 {
+ ath10k_1: wifi@0,0 {
compatible = "qcom,ath10k";
- reg = <0x0 1 0 0 0>;
+ reg = <0x0 0 0 0 0>;
};
};
diff --git a/target/linux/ath79/dts/qca955x_senao_router-dual.dtsi b/target/linux/ath79/dts/qca955x_senao_router-dual.dtsi
index 61446263c4..8f62cf442c 100644
--- a/target/linux/ath79/dts/qca955x_senao_router-dual.dtsi
+++ b/target/linux/ath79/dts/qca955x_senao_router-dual.dtsi
@@ -43,7 +43,7 @@
&pcie0 {
status = "okay";
- ath10k_0: wifi@0,0,0 {
+ ath10k_0: wifi@0,0 {
compatible = "qcom,ath10k";
reg = <0x0000 0 0 0 0>;
};
diff --git a/target/linux/ath79/dts/qca9561_tplink_tl-wdr6500-v2.dts b/target/linux/ath79/dts/qca9561_tplink_tl-wdr6500-v2.dts
index 04567e6b88..8767693c82 100644
--- a/target/linux/ath79/dts/qca9561_tplink_tl-wdr6500-v2.dts
+++ b/target/linux/ath79/dts/qca9561_tplink_tl-wdr6500-v2.dts
@@ -86,9 +86,9 @@
#address-cells = <1>;
#size-cells = <1>;
- macaddr_uboot_0fc00: macaddr@0fc00 {
+ macaddr_uboot_fc00: macaddr@fc00 {
compatible = "mac-base";
- reg = <0x0fc00 0x6>;
+ reg = <0xfc00 0x6>;
#nvmem-cell-cells = <1>;
};
};
@@ -134,7 +134,7 @@
compatible = "qcom,ath10k";
reg = <0 0 0 0 0>;
- nvmem-cells = <&macaddr_uboot_0fc00 (-2)>, <&calibration_ath10k>;
+ nvmem-cells = <&macaddr_uboot_fc00 (-2)>, <&calibration_ath10k>;
nvmem-cell-names = "mac-address", "calibration";
};
};
@@ -148,21 +148,21 @@
phy-handle = <&swphy4>;
- nvmem-cells = <&macaddr_uboot_0fc00 1>;
+ nvmem-cells = <&macaddr_uboot_fc00 1>;
nvmem-cell-names = "mac-address";
};
ð1 {
status = "okay";
- nvmem-cells = <&macaddr_uboot_0fc00 0>;
+ nvmem-cells = <&macaddr_uboot_fc00 0>;
nvmem-cell-names = "mac-address";
};
&wmac {
status = "okay";
- nvmem-cells = <&macaddr_uboot_0fc00 (-1)>, <&calibration_ath9k>;
+ nvmem-cells = <&macaddr_uboot_fc00 (-1)>, <&calibration_ath9k>;
nvmem-cell-names = "mac-address", "calibration";
};
diff --git a/target/linux/ath79/dts/qca9563_tplink_eap225-outdoor-v1.dts b/target/linux/ath79/dts/qca9563_tplink_eap225-outdoor-v1.dts
index 9c1e82bf98..c3f1a130eb 100644
--- a/target/linux/ath79/dts/qca9563_tplink_eap225-outdoor-v1.dts
+++ b/target/linux/ath79/dts/qca9563_tplink_eap225-outdoor-v1.dts
@@ -35,12 +35,6 @@
#address-cells = <1>;
#size-cells = <1>;
- macaddr_info_8: macaddr@8 {
- compatible = "mac-base";
- reg = <0x8 0x6>;
- #nvmem-cell-cells = <1>;
- };
-
precalibration_ath10k: pre-calibration@5000 {
reg = <0x5000 0x2f20>;
};
diff --git a/target/linux/ath79/dts/qca9563_tplink_eap225-outdoor-v3.dts b/target/linux/ath79/dts/qca9563_tplink_eap225-outdoor-v3.dts
index 73700b626f..1fac6082cf 100644
--- a/target/linux/ath79/dts/qca9563_tplink_eap225-outdoor-v3.dts
+++ b/target/linux/ath79/dts/qca9563_tplink_eap225-outdoor-v3.dts
@@ -35,12 +35,6 @@
#address-cells = <1>;
#size-cells = <1>;
- macaddr_info_8: macaddr@8 {
- compatible = "mac-base";
- reg = <0x8 0x6>;
- #nvmem-cell-cells = <1>;
- };
-
precalibration_ath10k: pre-calibration@5000 {
reg = <0x5000 0x2f20>;
};
diff --git a/target/linux/ath79/dts/qca9563_tplink_eap225-v1.dts b/target/linux/ath79/dts/qca9563_tplink_eap225-v1.dts
index 1e100b31a7..9d06a49626 100644
--- a/target/linux/ath79/dts/qca9563_tplink_eap225-v1.dts
+++ b/target/linux/ath79/dts/qca9563_tplink_eap225-v1.dts
@@ -56,12 +56,6 @@
#address-cells = <1>;
#size-cells = <1>;
- macaddr_info_8: macaddr@8 {
- compatible = "mac-base";
- reg = <0x8 0x6>;
- #nvmem-cell-cells = <1>;
- };
-
calibration_ath10k: calibration@5000 {
reg = <0x5000 0x844>;
};
diff --git a/target/linux/ath79/dts/qca9563_tplink_eap225-v3.dts b/target/linux/ath79/dts/qca9563_tplink_eap225-v3.dts
index 32fba98051..5139bc7670 100644
--- a/target/linux/ath79/dts/qca9563_tplink_eap225-v3.dts
+++ b/target/linux/ath79/dts/qca9563_tplink_eap225-v3.dts
@@ -35,12 +35,6 @@
#address-cells = <1>;
#size-cells = <1>;
- macaddr_info_8: macaddr@8 {
- compatible = "mac-base";
- reg = <0x8 0x6>;
- #nvmem-cell-cells = <1>;
- };
-
precalibration_ath10k: pre-calibration@5000 {
reg = <0x5000 0x2f20>;
};
diff --git a/target/linux/ath79/dts/qca9563_tplink_eap225-v4.dts b/target/linux/ath79/dts/qca9563_tplink_eap225-v4.dts
index 1c48775cdf..6e7ba5fede 100644
--- a/target/linux/ath79/dts/qca9563_tplink_eap225-v4.dts
+++ b/target/linux/ath79/dts/qca9563_tplink_eap225-v4.dts
@@ -35,12 +35,6 @@
#address-cells = <1>;
#size-cells = <1>;
- macaddr_info_8: macaddr@8 {
- compatible = "mac-base";
- reg = <0x8 0x6>;
- #nvmem-cell-cells = <1>;
- };
-
precalibration_ath10k: pre-calibration@5000 {
reg = <0x5000 0x2f20>;
};
diff --git a/target/linux/ath79/dts/qca9563_tplink_eap245-v1.dts b/target/linux/ath79/dts/qca9563_tplink_eap245-v1.dts
index e7f21fafa5..af133813e7 100644
--- a/target/linux/ath79/dts/qca9563_tplink_eap245-v1.dts
+++ b/target/linux/ath79/dts/qca9563_tplink_eap245-v1.dts
@@ -49,12 +49,6 @@
#address-cells = <1>;
#size-cells = <1>;
- macaddr_info_8: macaddr@8 {
- compatible = "mac-base";
- reg = <0x8 0x6>;
- #nvmem-cell-cells = <1>;
- };
-
calibration_ath10k: calibration@5000 {
reg = <0x5000 0x844>;
};
diff --git a/target/linux/ath79/dts/qca9563_tplink_eap2x5-1port.dtsi b/target/linux/ath79/dts/qca9563_tplink_eap2x5-1port.dtsi
index 9e0b97fcbf..3b36049d5e 100644
--- a/target/linux/ath79/dts/qca9563_tplink_eap2x5-1port.dtsi
+++ b/target/linux/ath79/dts/qca9563_tplink_eap2x5-1port.dtsi
@@ -55,6 +55,18 @@
label = "info";
reg = <0x030000 0x010000>;
read-only;
+
+ nvmem-layout {
+ compatible = "fixed-layout";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ macaddr_info_8: macaddr@8 {
+ compatible = "mac-base";
+ reg = <0x8 0x6>;
+ #nvmem-cell-cells = <1>;
+ };
+ };
};
partition@40000 {
diff --git a/target/linux/ath79/dts/qca9563_ubnt_uk-ultra.dts b/target/linux/ath79/dts/qca9563_ubnt_uk-ultra.dts
new file mode 100644
index 0000000000..1ba635117e
--- /dev/null
+++ b/target/linux/ath79/dts/qca9563_ubnt_uk-ultra.dts
@@ -0,0 +1,35 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+
+#include "qca9563_ubnt_unifiac-lite.dtsi"
+
+/ {
+ compatible = "ubnt,uk-ultra", "qca,qca9563";
+ model = "Ubiquiti UniFi Swiss Army Knife Ultra";
+};
+
+&leds {
+ led-rssi0 {
+ label = "white:rssi0";
+ gpios = <&gpio 21 GPIO_ACTIVE_HIGH>;
+ };
+
+ led-rssi1 {
+ label = "white:rssi1";
+ gpios = <&gpio 20 GPIO_ACTIVE_HIGH>;
+ };
+
+ led-rssi2 {
+ label = "white:rssi2";
+ gpios = <&gpio 15 GPIO_ACTIVE_HIGH>;
+ };
+
+ led-rssi3 {
+ label = "white:rssi3";
+ gpios = <&gpio 1 GPIO_ACTIVE_HIGH>;
+ };
+};
+
+/**
+ * Antenna selection on GPIO5 and GPIO6
+ * High = Internal ; Low = External
+ */
diff --git a/target/linux/ath79/dts/qca9563_ubnt_unifiac.dtsi b/target/linux/ath79/dts/qca9563_ubnt_unifiac.dtsi
index da01251f3b..60d6fbc895 100644
--- a/target/linux/ath79/dts/qca9563_ubnt_unifiac.dtsi
+++ b/target/linux/ath79/dts/qca9563_ubnt_unifiac.dtsi
@@ -13,7 +13,7 @@
led-upgrade = &led_blue;
};
- leds {
+ leds: leds {
compatible = "gpio-leds";
led_white: led_white {
diff --git a/target/linux/ath79/dts/qca956x.dtsi b/target/linux/ath79/dts/qca956x.dtsi
index e46f0676e2..8b261568f0 100644
--- a/target/linux/ath79/dts/qca956x.dtsi
+++ b/target/linux/ath79/dts/qca956x.dtsi
@@ -157,7 +157,7 @@
status = "disabled";
};
- pcie: pcie-controller@18250000 {
+ pcie: pcie@18250000 {
compatible = "qcom,ar7240-pci";
#address-cells = <3>;
#size-cells = <2>;
diff --git a/target/linux/ath79/files/drivers/net/ethernet/atheros/ag71xx/ag71xx.h b/target/linux/ath79/files/drivers/net/ethernet/atheros/ag71xx/ag71xx.h
index 0773f1a5af..fca072a83a 100644
--- a/target/linux/ath79/files/drivers/net/ethernet/atheros/ag71xx/ag71xx.h
+++ b/target/linux/ath79/files/drivers/net/ethernet/atheros/ag71xx/ag71xx.h
@@ -310,11 +310,11 @@ ag71xx_ring_size_order(int size)
#define FIFO_CFG4_MC BIT(8) /* Multicast Packet */
#define FIFO_CFG4_BC BIT(9) /* Broadcast Packet */
#define FIFO_CFG4_DR BIT(10) /* Dribble */
-#define FIFO_CFG4_LE BIT(11) /* Long Event */
-#define FIFO_CFG4_CF BIT(12) /* Control Frame */
-#define FIFO_CFG4_PF BIT(13) /* Pause Frame */
-#define FIFO_CFG4_UO BIT(14) /* Unsupported Opcode */
-#define FIFO_CFG4_VT BIT(15) /* VLAN tag detected */
+#define FIFO_CFG4_CF BIT(11) /* Control Frame */
+#define FIFO_CFG4_PF BIT(12) /* Pause Frame */
+#define FIFO_CFG4_UO BIT(13) /* Unsupported Opcode */
+#define FIFO_CFG4_VT BIT(14) /* VLAN tag detected */
+#define FIFO_CFG4_LE BIT(15) /* Long Event */
#define FIFO_CFG4_FT BIT(16) /* Frame Truncated */
#define FIFO_CFG4_UC BIT(17) /* Unicast Packet */
@@ -322,20 +322,20 @@ ag71xx_ring_size_order(int size)
#define FIFO_CFG5_DV BIT(1) /* RX_DV Event */
#define FIFO_CFG5_FC BIT(2) /* False Carrier */
#define FIFO_CFG5_CE BIT(3) /* Code Error */
-#define FIFO_CFG5_LM BIT(4) /* Length Mismatch */
-#define FIFO_CFG5_LO BIT(5) /* Length Out of Range */
-#define FIFO_CFG5_OK BIT(6) /* Packet is OK */
-#define FIFO_CFG5_MC BIT(7) /* Multicast Packet */
-#define FIFO_CFG5_BC BIT(8) /* Broadcast Packet */
-#define FIFO_CFG5_DR BIT(9) /* Dribble */
-#define FIFO_CFG5_CF BIT(10) /* Control Frame */
-#define FIFO_CFG5_PF BIT(11) /* Pause Frame */
-#define FIFO_CFG5_UO BIT(12) /* Unsupported Opcode */
-#define FIFO_CFG5_VT BIT(13) /* VLAN tag detected */
-#define FIFO_CFG5_LE BIT(14) /* Long Event */
-#define FIFO_CFG5_FT BIT(15) /* Frame Truncated */
-#define FIFO_CFG5_16 BIT(16) /* unknown */
-#define FIFO_CFG5_17 BIT(17) /* unknown */
+#define FIFO_CFG5_CR BIT(4) /* CRC error */
+#define FIFO_CFG5_LM BIT(5) /* Length Mismatch */
+#define FIFO_CFG5_LO BIT(6) /* Length out of range */
+#define FIFO_CFG5_OK BIT(7) /* Packet is OK */
+#define FIFO_CFG5_MC BIT(8) /* Multicast Packet */
+#define FIFO_CFG5_BC BIT(9) /* Broadcast Packet */
+#define FIFO_CFG5_DR BIT(10) /* Dribble */
+#define FIFO_CFG5_CF BIT(11) /* Control Frame */
+#define FIFO_CFG5_PF BIT(12) /* Pause Frame */
+#define FIFO_CFG5_UO BIT(13) /* Unsupported Opcode */
+#define FIFO_CFG5_VT BIT(14) /* VLAN tag detected */
+#define FIFO_CFG5_LE BIT(15) /* Long Event */
+#define FIFO_CFG5_FT BIT(16) /* Frame Truncated */
+#define FIFO_CFG5_UC BIT(17) /* Unicast Packet */
#define FIFO_CFG5_SF BIT(18) /* Short Frame */
#define FIFO_CFG5_BM BIT(19) /* Byte Mode */
diff --git a/target/linux/ath79/files/drivers/net/ethernet/atheros/ag71xx/ag71xx_ethtool.c b/target/linux/ath79/files/drivers/net/ethernet/atheros/ag71xx/ag71xx_ethtool.c
index e5adc821d2..b022a3e9fb 100644
--- a/target/linux/ath79/files/drivers/net/ethernet/atheros/ag71xx/ag71xx_ethtool.c
+++ b/target/linux/ath79/files/drivers/net/ethernet/atheros/ag71xx/ag71xx_ethtool.c
@@ -169,8 +169,7 @@ static void ag71xx_ethtool_get_strings(struct net_device *netdev, u32 sset,
int i;
for (i = 0; i < ARRAY_SIZE(ag71xx_statistics); i++)
- memcpy(data + i * ETH_GSTRING_LEN,
- ag71xx_statistics[i].name, ETH_GSTRING_LEN);
+ ethtool_puts(&data, ag71xx_statistics[i].name);
}
}
diff --git a/target/linux/ath79/files/drivers/net/ethernet/atheros/ag71xx/ag71xx_main.c b/target/linux/ath79/files/drivers/net/ethernet/atheros/ag71xx/ag71xx_main.c
index 8f95210e0f..8a5cd3bcde 100644
--- a/target/linux/ath79/files/drivers/net/ethernet/atheros/ag71xx/ag71xx_main.c
+++ b/target/linux/ath79/files/drivers/net/ethernet/atheros/ag71xx/ag71xx_main.c
@@ -407,11 +407,11 @@ static void ag71xx_dma_reset(struct ag71xx *ag)
FIFO_CFG4_VT)
#define FIFO_CFG5_INIT (FIFO_CFG5_DE | FIFO_CFG5_DV | FIFO_CFG5_FC | \
- FIFO_CFG5_CE | FIFO_CFG5_LO | FIFO_CFG5_OK | \
- FIFO_CFG5_MC | FIFO_CFG5_BC | FIFO_CFG5_DR | \
- FIFO_CFG5_CF | FIFO_CFG5_PF | FIFO_CFG5_VT | \
- FIFO_CFG5_LE | FIFO_CFG5_FT | FIFO_CFG5_16 | \
- FIFO_CFG5_17 | FIFO_CFG5_SF)
+ FIFO_CFG5_CE | FIFO_CFG5_LM | FIFO_CFG5_LO | \
+ FIFO_CFG5_OK | FIFO_CFG5_MC | FIFO_CFG5_BC | \
+ FIFO_CFG5_DR | FIFO_CFG5_CF | FIFO_CFG5_UO | \
+ FIFO_CFG5_VT | FIFO_CFG5_LE | FIFO_CFG5_FT | \
+ FIFO_CFG5_UC | FIFO_CFG5_SF)
static void ag71xx_hw_stop(struct ag71xx *ag)
{
diff --git a/target/linux/ath79/generic/base-files/etc/board.d/01_leds b/target/linux/ath79/generic/base-files/etc/board.d/01_leds
index 615abe4b3b..525224bec9 100644
--- a/target/linux/ath79/generic/base-files/etc/board.d/01_leds
+++ b/target/linux/ath79/generic/base-files/etc/board.d/01_leds
@@ -27,7 +27,8 @@ pcs,cap324|\
tplink,cpe605-v1|\
tplink,cpe610-v1|\
tplink,cpe610-v2|\
-tplink,tl-wa1201-v2)
+tplink,tl-wa1201-v2|\
+ubnt,litebeam-m5-xw)
ucidef_set_led_netdev "lan" "LAN" "green:lan" "eth0"
;;
tplink,tl-wdr6500-v2)
@@ -516,6 +517,13 @@ ubnt,rocket-m)
ucidef_set_led_rssi "rssimediumhigh" "RSSIMEDIUMHIGH" "green:link3" "wlan0" "51" "100"
ucidef_set_led_rssi "rssihigh" "RSSIHIGH" "green:link4" "wlan0" "76" "100"
;;
+ubnt,uk-ultra)
+ ucidef_set_rssimon "wlan0" "200000" "1"
+ ucidef_set_led_rssi "rssilow" "RSSILOW" "white:rssi0" "wlan0" "1" "100"
+ ucidef_set_led_rssi "rssimediumlow" "RSSIMEDIUMLOW" "white:rssi1" "wlan0" "26" "100"
+ ucidef_set_led_rssi "rssimediumhigh" "RSSIMEDIUMHIGH" "white:rssi2" "wlan0" "51" "100"
+ ucidef_set_led_rssi "rssihigh" "RSSIHIGH" "white:rssi3" "wlan0" "76" "100"
+ ;;
wallys,dr531)
ucidef_set_led_netdev "lan" "LAN" "green:lan" "eth0"
ucidef_set_led_switch "wan" "WAN" "green:wan" "switch0" "0x2"
diff --git a/target/linux/ath79/generic/base-files/etc/board.d/02_network b/target/linux/ath79/generic/base-files/etc/board.d/02_network
index b74a7ff6b4..01747acae0 100644
--- a/target/linux/ath79/generic/base-files/etc/board.d/02_network
+++ b/target/linux/ath79/generic/base-files/etc/board.d/02_network
@@ -105,6 +105,7 @@ ath79_setup_interfaces()
ubnt,bullet-m-xw|\
ubnt,lap-120|\
ubnt,litebeam-ac-gen2|\
+ ubnt,litebeam-m5-xw|\
ubnt,nanobeam-ac|\
ubnt,nanobeam-ac-xc|\
ubnt,nanostation-ac-loco|\
@@ -116,6 +117,7 @@ ath79_setup_interfaces()
ubnt,powerbridge-m|\
ubnt,rocket-5ac-lite|\
ubnt,rocket-m|\
+ ubnt,uk-ultra|\
ubnt,unifiac-lite|\
ubnt,unifiac-lr|\
ubnt,unifiac-mesh|\
diff --git a/target/linux/ath79/generic/base-files/etc/board.d/03_gpio_switches b/target/linux/ath79/generic/base-files/etc/board.d/03_gpio_switches
index 899a8ba97e..279f518409 100644
--- a/target/linux/ath79/generic/base-files/etc/board.d/03_gpio_switches
+++ b/target/linux/ath79/generic/base-files/etc/board.d/03_gpio_switches
@@ -92,6 +92,10 @@ ubnt,nanostation-m)
ubnt,nanostation-m-xw)
ucidef_add_gpio_switch "poe_passthrough" "PoE Passthrough" "2"
;;
+ubnt,uk-ultra)
+ ucidef_add_gpio_switch "ant0_internal" "ANT0 Internal" "5" "1"
+ ucidef_add_gpio_switch "ant1_internal" "ANT1 Internal" "6" "1"
+ ;;
zbtlink,zbt-wd323)
ucidef_add_gpio_switch "io0" "IO#0" "0"
ucidef_add_gpio_switch "io1" "IO#1" "1"
diff --git a/target/linux/ath79/generic/base-files/etc/hotplug.d/firmware/11-ath10k-caldata b/target/linux/ath79/generic/base-files/etc/hotplug.d/firmware/11-ath10k-caldata
index dd627ad2d6..1acbf35947 100644
--- a/target/linux/ath79/generic/base-files/etc/hotplug.d/firmware/11-ath10k-caldata
+++ b/target/linux/ath79/generic/base-files/etc/hotplug.d/firmware/11-ath10k-caldata
@@ -37,6 +37,7 @@ case "$FIRMWARE" in
sophos,ap100|\
sophos,ap100c|\
ubnt,bullet-ac|\
+ ubnt,uk-ultra|\
ubnt,unifiac-lite|\
ubnt,unifiac-lr|\
ubnt,unifiac-mesh|\
diff --git a/target/linux/ath79/image/common-ubnt.mk b/target/linux/ath79/image/common-ubnt.mk
index 76d6de000b..f44e06e110 100644
--- a/target/linux/ath79/image/common-ubnt.mk
+++ b/target/linux/ath79/image/common-ubnt.mk
@@ -121,6 +121,13 @@ define Device/ubnt-xw
UBNT_VERSION := 6.0.4
endef
+define Device/ubnt_unifiac
+ DEVICE_VENDOR := Ubiquiti
+ SOC := qca9563
+ IMAGE_SIZE := 15488k
+ DEVICE_PACKAGES := kmod-ath10k-ct ath10k-firmware-qca988x-ct
+endef
+
define Device/ubnt-unifi-jffs2
$(Device/ubnt)
KERNEL_SIZE := 3072k
diff --git a/target/linux/ath79/image/generic-ubnt.mk b/target/linux/ath79/image/generic-ubnt.mk
index fa4daa3aaa..a4d118456f 100644
--- a/target/linux/ath79/image/generic-ubnt.mk
+++ b/target/linux/ath79/image/generic-ubnt.mk
@@ -28,6 +28,9 @@ TARGET_DEVICES += ubnt_bullet-ac
define Device/ubnt_bullet-m-xw
$(Device/ubnt-xw)
DEVICE_MODEL := Bullet M
+ DEVICE_ALT0_VENDOR := Ubiquiti
+ DEVICE_ALT0_MODEL := Rocket M
+ DEVICE_ALT0_VARIANT := XW
DEVICE_PACKAGES += rssileds
SUPPORTED_DEVICES += bullet-m-xw
endef
@@ -62,6 +65,14 @@ define Device/ubnt_litebeam-ac-gen2
endef
TARGET_DEVICES += ubnt_litebeam-ac-gen2
+define Device/ubnt_litebeam-m5-xw
+ $(Device/ubnt-xw)
+ DEVICE_MODEL := LiteBeam M5
+ SUPPORTED_DEVICES += lbe-m5
+ DEVICE_PACKAGES := -kmod-usb2
+endef
+TARGET_DEVICES += ubnt_litebeam-m5-xw
+
define Device/ubnt_nanobeam-ac
$(Device/ubnt-wa)
DEVICE_MODEL := NanoBeam AC
@@ -87,14 +98,6 @@ define Device/ubnt_nanobeam-ac-xc
endef
TARGET_DEVICES += ubnt_nanobeam-ac-xc
-define Device/ubnt_nanobeam-m5-xw
- $(Device/ubnt-xw)
- DEVICE_MODEL := NanoBeam M5
- DEVICE_PACKAGES += rssileds
- SUPPORTED_DEVICES += loco-m-xw
-endef
-TARGET_DEVICES += ubnt_nanobeam-m5-xw
-
define Device/ubnt_nanostation-ac
$(Device/ubnt-wa)
DEVICE_MODEL := Nanostation AC
@@ -112,8 +115,17 @@ TARGET_DEVICES += ubnt_nanostation-ac-loco
define Device/ubnt_nanostation-loco-m-xw
$(Device/ubnt-xw)
DEVICE_MODEL := Nanostation Loco M
- DEVICE_PACKAGES += rssileds
- SUPPORTED_DEVICES += loco-m-xw
+ DEVICE_PACKAGES += rssileds -kmod-usb2
+ DEVICE_ALT0_VENDOR := Ubiquiti
+ DEVICE_ALT0_MODEL := AirGrid M5 HP
+ DEVICE_ALT0_VARIANT := XW
+ DEVICE_ALT1_VENDOR := Ubiquiti
+ DEVICE_ALT1_MODEL := PowerBeam M5 300
+ DEVICE_ALT1_VARIANT := XW
+ DEVICE_ALT2_VENDOR := Ubiquiti
+ DEVICE_ALT2_MODEL := NanoBeam M5
+ DEVICE_ALT2_VARIANT := XW
+ SUPPORTED_DEVICES += loco-m-xw nanostation-m-xw ubnt,nanobeam-m5-xw
endef
TARGET_DEVICES += ubnt_nanostation-loco-m-xw
@@ -229,6 +241,13 @@ define Device/ubnt_routerstation-pro
endef
TARGET_DEVICES += ubnt_routerstation-pro
+define Device/ubnt_uk-ultra
+ $(Device/ubnt_unifiac)
+ DEVICE_MODEL := UniFi Swiss Army Knife Ultra
+ DEVICE_PACKAGES += rssileds -swconfig
+endef
+TARGET_DEVICES += ubnt_uk-ultra
+
define Device/ubnt_unifi-ap
$(Device/ubnt-bz)
DEVICE_MODEL := UniFi AP
@@ -244,13 +263,6 @@ define Device/ubnt_unifi-ap-lr
endef
TARGET_DEVICES += ubnt_unifi-ap-lr
-define Device/ubnt_unifiac
- DEVICE_VENDOR := Ubiquiti
- SOC := qca9563
- IMAGE_SIZE := 15488k
- DEVICE_PACKAGES := kmod-ath10k-ct ath10k-firmware-qca988x-ct
-endef
-
define Device/ubnt_unifiac-lite
$(Device/ubnt_unifiac)
DEVICE_MODEL := UniFi AC Lite
diff --git a/target/linux/ath79/image/mikrotik.mk b/target/linux/ath79/image/mikrotik.mk
index d26420c7f5..19cbf30933 100644
--- a/target/linux/ath79/image/mikrotik.mk
+++ b/target/linux/ath79/image/mikrotik.mk
@@ -28,15 +28,37 @@ define Device/mikrotik_routerboard-911-lite
endef
TARGET_DEVICES += mikrotik_routerboard-911-lite
+define Device/mikrotik_routerboard-911g-xhpnd
+ $(Device/mikrotik_nand)
+ SOC := ar9342
+ DEVICE_MODEL := RouterBOARD 911G-2HPnD
+ DEVICE_ALT0_VENDOR := Mikrotik
+ DEVICE_ALT0_MODEL := RouterBOARD 911G-5HPnD
+ DEVICE_PACKAGES += rssileds
+ SUPPORTED_DEVICES += rb-912uag-2hpnd
+endef
+TARGET_DEVICES += mikrotik_routerboard-911g-xhpnd
+
define Device/mikrotik_routerboard-912uag-2hpnd
$(Device/mikrotik_nand)
SOC := ar9342
DEVICE_MODEL := RouterBOARD 912UAG-2HPnD
- DEVICE_PACKAGES += kmod-usb-ehci kmod-usb2
+ DEVICE_ALT0_VENDOR := Mikrotik
+ DEVICE_ALT0_MODEL := RouterBOARD 912UAG-5HPnD
+ DEVICE_PACKAGES += kmod-usb-ehci kmod-usb2 rssileds
SUPPORTED_DEVICES += rb-912uag-2hpnd
endef
TARGET_DEVICES += mikrotik_routerboard-912uag-2hpnd
+define Device/mikrotik_routerboard-911g-5hpacd
+ $(Device/mikrotik_nand)
+ SOC := qca9558
+ DEVICE_MODEL := RouterBOARD 911G-5HPacD
+ DEVICE_PACKAGES += kmod-ath10k-ct ath10k-firmware-qca988x-ct
+ SUPPORTED_DEVICES += rb-921gs-5hpacd-r2
+endef
+TARGET_DEVICES += mikrotik_routerboard-911g-5hpacd
+
define Device/mikrotik_routerboard-921gs-5hpacd-15s
$(Device/mikrotik_nand)
SOC := qca9558
diff --git a/target/linux/ath79/mikrotik/base-files/etc/board.d/01_leds b/target/linux/ath79/mikrotik/base-files/etc/board.d/01_leds
index 66fa2ee6ac..16cb628445 100644
--- a/target/linux/ath79/mikrotik/base-files/etc/board.d/01_leds
+++ b/target/linux/ath79/mikrotik/base-files/etc/board.d/01_leds
@@ -16,6 +16,15 @@ mikrotik,routerboard-lhg-5nd)
ucidef_set_led_rssi "rssimediumhigh" "rssimediumhigh" "green:rssimediumhigh" "wlan0" "60" "100"
ucidef_set_led_rssi "rssihigh" "rssihigh" "green:rssihigh" "wlan0" "80" "100"
;;
+mikrotik,routerboard-911g-xhpnd|\
+mikrotik,routerboard-912uag-2hpnd)
+ ucidef_set_rssimon "wlan0" "200000" "1"
+ ucidef_set_led_rssi "rssilow" "rssilow" "green:led1" "wlan0" "1" "100"
+ ucidef_set_led_rssi "rssimediumlow" "rssimediumlow" "green:led2" "wlan0" "20" "100"
+ ucidef_set_led_rssi "rssimedium" "rssimedium" "green:led3" "wlan0" "40" "100"
+ ucidef_set_led_rssi "rssimediumhigh" "rssimediumhigh" "green:led4" "wlan0" "60" "100"
+ ucidef_set_led_rssi "rssihigh" "rssihigh" "green:led5" "wlan0" "80" "100"
+ ;;
mikrotik,routerboard-750-r2|\
mikrotik,routerboard-951ui-2hnd|\
mikrotik,routerboard-951ui-2nd|\
diff --git a/target/linux/ath79/mikrotik/base-files/etc/board.d/02_network b/target/linux/ath79/mikrotik/base-files/etc/board.d/02_network
index d45af6dbb3..4da5884045 100644
--- a/target/linux/ath79/mikrotik/base-files/etc/board.d/02_network
+++ b/target/linux/ath79/mikrotik/base-files/etc/board.d/02_network
@@ -20,6 +20,7 @@ ath79_setup_interfaces()
"0@eth0" "1:lan:4" "2:lan:1" "3:lan:3" "4:lan:2"
;;
mikrotik,routerboard-911-lite|\
+ mikrotik,routerboard-911g-xhpnd|\
mikrotik,routerboard-912uag-2hpnd|\
mikrotik,routerboard-lhg-2nd|\
mikrotik,routerboard-lhg-5nd|\
@@ -61,6 +62,8 @@ ath79_setup_macs()
case "$board" in
mikrotik,routerboard-911-lite|\
+ mikrotik,routerboard-911g-5hpacd|\
+ mikrotik,routerboard-911g-xhpnd|\
mikrotik,routerboard-912uag-2hpnd|\
mikrotik,routerboard-lhg-2nd|\
mikrotik,routerboard-lhg-5nd|\
diff --git a/target/linux/ath79/mikrotik/base-files/etc/hotplug.d/firmware/10-ath9k-eeprom b/target/linux/ath79/mikrotik/base-files/etc/hotplug.d/firmware/10-ath9k-eeprom
index cc05ba080b..e7bf17d0ec 100644
--- a/target/linux/ath79/mikrotik/base-files/etc/hotplug.d/firmware/10-ath9k-eeprom
+++ b/target/linux/ath79/mikrotik/base-files/etc/hotplug.d/firmware/10-ath9k-eeprom
@@ -24,6 +24,7 @@ case "$FIRMWARE" in
"ath9k-eeprom-ahb-18100000.wmac.bin")
case $board in
mikrotik,routerboard-911-lite|\
+ mikrotik,routerboard-911g-xhpnd|\
mikrotik,routerboard-912uag-2hpnd|\
mikrotik,routerboard-lhg-2nd|\
mikrotik,routerboard-lhg-5nd|\
diff --git a/target/linux/ath79/mikrotik/base-files/etc/hotplug.d/firmware/11-ath10k-caldata b/target/linux/ath79/mikrotik/base-files/etc/hotplug.d/firmware/11-ath10k-caldata
index 5b918d966c..da331dc0ea 100644
--- a/target/linux/ath79/mikrotik/base-files/etc/hotplug.d/firmware/11-ath10k-caldata
+++ b/target/linux/ath79/mikrotik/base-files/etc/hotplug.d/firmware/11-ath10k-caldata
@@ -11,6 +11,7 @@ board=$(board_name)
case "$FIRMWARE" in
"ath10k/cal-pci-0000:00:00.0.bin")
case $board in
+ mikrotik,routerboard-911g-5hpacd|\
mikrotik,routerboard-921gs-5hpacd-15s|\
mikrotik,routerboard-951ui-2nd|\
mikrotik,routerboard-952ui-5ac2nd|\
diff --git a/target/linux/ath79/mikrotik/base-files/lib/upgrade/platform.sh b/target/linux/ath79/mikrotik/base-files/lib/upgrade/platform.sh
index e3887bfc50..c4d401b8ae 100644
--- a/target/linux/ath79/mikrotik/base-files/lib/upgrade/platform.sh
+++ b/target/linux/ath79/mikrotik/base-files/lib/upgrade/platform.sh
@@ -30,6 +30,8 @@ platform_do_upgrade() {
case "$board" in
mikrotik,routerboard-493g|\
+ mikrotik,routerboard-911g-5hpacd|\
+ mikrotik,routerboard-911g-xhpnd|\
mikrotik,routerboard-912uag-2hpnd|\
mikrotik,routerboard-921gs-5hpacd-15s|\
mikrotik,routerboard-922uags-5hpacd|\
diff --git a/target/linux/ath79/patches-5.15/100-reset-ath79-read-back-reset-register.patch b/target/linux/ath79/patches-5.15/100-reset-ath79-read-back-reset-register.patch
new file mode 100644
index 0000000000..7aa501514d
--- /dev/null
+++ b/target/linux/ath79/patches-5.15/100-reset-ath79-read-back-reset-register.patch
@@ -0,0 +1,33 @@
+From 661edfc3dab943a67c8821353b63cc23057f7ce9 Mon Sep 17 00:00:00 2001
+From: David Bauer
+Date: Tue, 9 Jan 2024 20:48:46 +0100
+Subject: [PATCH] reset: ath79: read back reset register
+
+Read back the reset register in order to flush the cache. This fixes
+spurious reboot hangs on TP-Link TL-WDR3600 and TL-WDR4300 with Zentel
+DRAM chips.
+
+This issue was fixed in the past, but switching to the reset-driver
+specific implementation removed the old fix.
+
+Link: https://github.com/freifunk-gluon/gluon/issues/2904
+Link: https://github.com/openwrt/openwrt/issues/13043
+Link: https://dev.archive.openwrt.org/ticket/17839
+Link: f8a7bfe1cb2c ("MIPS: ath79: fix system restart")
+
+Signed-off-by: David Bauer
+---
+ drivers/reset/reset-ath79.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+--- a/drivers/reset/reset-ath79.c
++++ b/drivers/reset/reset-ath79.c
+@@ -37,6 +37,8 @@ static int ath79_reset_update(struct res
+ else
+ val &= ~BIT(id);
+ writel(val, ath79_reset->base);
++ /* Flush cache */
++ readl(ath79_reset->base);
+ spin_unlock_irqrestore(&ath79_reset->lock, flags);
+
+ return 0;
diff --git a/target/linux/ath79/patches-5.15/310-dt-bindings-PCI-qcom-ar7100-adds-binding-doc.patch b/target/linux/ath79/patches-5.15/310-dt-bindings-PCI-qcom-ar7100-adds-binding-doc.patch
index bf7eb691a5..cf0a75c791 100644
--- a/target/linux/ath79/patches-5.15/310-dt-bindings-PCI-qcom-ar7100-adds-binding-doc.patch
+++ b/target/linux/ath79/patches-5.15/310-dt-bindings-PCI-qcom-ar7100-adds-binding-doc.patch
@@ -37,7 +37,7 @@ Signed-off-by: John Crispin
+- interrupt-parent: phandle to the MIPS IRQ controller
+
+* Example for ar7100
-+ pcie-controller@180c0000 {
++ pcie@180c0000 {
+ compatible = "qca,ar7100-pci";
+ #address-cells = <3>;
+ #size-cells = <2>;
diff --git a/target/linux/ath79/patches-5.15/312-dt-bindings-PCI-qcom-ar7240-adds-binding-doc.patch b/target/linux/ath79/patches-5.15/312-dt-bindings-PCI-qcom-ar7240-adds-binding-doc.patch
index a0af79cb4d..a32c9bdcde 100644
--- a/target/linux/ath79/patches-5.15/312-dt-bindings-PCI-qcom-ar7240-adds-binding-doc.patch
+++ b/target/linux/ath79/patches-5.15/312-dt-bindings-PCI-qcom-ar7240-adds-binding-doc.patch
@@ -39,7 +39,7 @@ Signed-off-by: John Crispin
+- interrupt-controller: define to enable the builtin IRQ cascade.
+
+* Example for qca9557
-+ pcie-controller@180c0000 {
++ pcie@180c0000 {
+ compatible = "qcom,ar7240-pci";
+ #address-cells = <3>;
+ #size-cells = <2>;
diff --git a/target/linux/ath79/patches-6.1/100-reset-ath79-read-back-reset-register.patch b/target/linux/ath79/patches-6.1/100-reset-ath79-read-back-reset-register.patch
new file mode 100644
index 0000000000..7aa501514d
--- /dev/null
+++ b/target/linux/ath79/patches-6.1/100-reset-ath79-read-back-reset-register.patch
@@ -0,0 +1,33 @@
+From 661edfc3dab943a67c8821353b63cc23057f7ce9 Mon Sep 17 00:00:00 2001
+From: David Bauer
+Date: Tue, 9 Jan 2024 20:48:46 +0100
+Subject: [PATCH] reset: ath79: read back reset register
+
+Read back the reset register in order to flush the cache. This fixes
+spurious reboot hangs on TP-Link TL-WDR3600 and TL-WDR4300 with Zentel
+DRAM chips.
+
+This issue was fixed in the past, but switching to the reset-driver
+specific implementation removed the old fix.
+
+Link: https://github.com/freifunk-gluon/gluon/issues/2904
+Link: https://github.com/openwrt/openwrt/issues/13043
+Link: https://dev.archive.openwrt.org/ticket/17839
+Link: f8a7bfe1cb2c ("MIPS: ath79: fix system restart")
+
+Signed-off-by: David Bauer
+---
+ drivers/reset/reset-ath79.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+--- a/drivers/reset/reset-ath79.c
++++ b/drivers/reset/reset-ath79.c
+@@ -37,6 +37,8 @@ static int ath79_reset_update(struct res
+ else
+ val &= ~BIT(id);
+ writel(val, ath79_reset->base);
++ /* Flush cache */
++ readl(ath79_reset->base);
+ spin_unlock_irqrestore(&ath79_reset->lock, flags);
+
+ return 0;
diff --git a/target/linux/ath79/patches-6.1/310-dt-bindings-PCI-qcom-ar7100-adds-binding-doc.patch b/target/linux/ath79/patches-6.1/310-dt-bindings-PCI-qcom-ar7100-adds-binding-doc.patch
index bf7eb691a5..cf0a75c791 100644
--- a/target/linux/ath79/patches-6.1/310-dt-bindings-PCI-qcom-ar7100-adds-binding-doc.patch
+++ b/target/linux/ath79/patches-6.1/310-dt-bindings-PCI-qcom-ar7100-adds-binding-doc.patch
@@ -37,7 +37,7 @@ Signed-off-by: John Crispin
+- interrupt-parent: phandle to the MIPS IRQ controller
+
+* Example for ar7100
-+ pcie-controller@180c0000 {
++ pcie@180c0000 {
+ compatible = "qca,ar7100-pci";
+ #address-cells = <3>;
+ #size-cells = <2>;
diff --git a/target/linux/ath79/patches-6.1/312-dt-bindings-PCI-qcom-ar7240-adds-binding-doc.patch b/target/linux/ath79/patches-6.1/312-dt-bindings-PCI-qcom-ar7240-adds-binding-doc.patch
index a0af79cb4d..a32c9bdcde 100644
--- a/target/linux/ath79/patches-6.1/312-dt-bindings-PCI-qcom-ar7240-adds-binding-doc.patch
+++ b/target/linux/ath79/patches-6.1/312-dt-bindings-PCI-qcom-ar7240-adds-binding-doc.patch
@@ -39,7 +39,7 @@ Signed-off-by: John Crispin
+- interrupt-controller: define to enable the builtin IRQ cascade.
+
+* Example for qca9557
-+ pcie-controller@180c0000 {
++ pcie@180c0000 {
+ compatible = "qcom,ar7240-pci";
+ #address-cells = <3>;
+ #size-cells = <2>;
diff --git a/target/linux/ath79/patches-6.1/900-unaligned_access_hacks.patch b/target/linux/ath79/patches-6.1/900-unaligned_access_hacks.patch
index 1a2d4426ab..2235c28fd9 100644
--- a/target/linux/ath79/patches-6.1/900-unaligned_access_hacks.patch
+++ b/target/linux/ath79/patches-6.1/900-unaligned_access_hacks.patch
@@ -336,7 +336,7 @@ SVN-Revision: 35130
#endif /* _LINUX_TYPES_H */
--- a/net/ipv4/af_inet.c
+++ b/net/ipv4/af_inet.c
-@@ -1494,8 +1494,8 @@ struct sk_buff *inet_gro_receive(struct
+@@ -1512,8 +1512,8 @@ struct sk_buff *inet_gro_receive(struct
if (unlikely(ip_fast_csum((u8 *)iph, 5)))
goto out;
diff --git a/target/linux/bcm27xx/Makefile b/target/linux/bcm27xx/Makefile
index 99c5fa75aa..d7b56b23bc 100644
--- a/target/linux/bcm27xx/Makefile
+++ b/target/linux/bcm27xx/Makefile
@@ -9,7 +9,7 @@ ARCH:=arm
BOARD:=bcm27xx
BOARDNAME:=Broadcom BCM27xx
FEATURES:=audio boot-part display ext4 fpu gpio rootfs-part rtc squashfs usb usbgadget
-SUBTARGETS:=bcm2708 bcm2709 bcm2710 bcm2711
+SUBTARGETS:=bcm2708 bcm2709 bcm2710 bcm2711 bcm2712
KERNEL_PATCHVER:=6.1
@@ -22,7 +22,7 @@ include $(INCLUDE_DIR)/target.mk
DEFAULT_PACKAGES := $(filter-out urngd,$(DEFAULT_PACKAGES))
DEFAULT_PACKAGES += \
- bcm27xx-gpu-fw \
+ bcm27xx-gpu-fw bcm27xx-utils \
kmod-usb-hid \
kmod-sound-core kmod-sound-arm-bcm2835 \
kmod-fs-vfat kmod-nls-cp437 kmod-nls-iso8859-1 \
diff --git a/target/linux/bcm27xx/base-files/etc/board.d/02_network b/target/linux/bcm27xx/base-files/etc/board.d/02_network
index 23bc9afdb9..f246139c38 100644
--- a/target/linux/bcm27xx/base-files/etc/board.d/02_network
+++ b/target/linux/bcm27xx/base-files/etc/board.d/02_network
@@ -17,6 +17,7 @@ raspberrypi,3-model-b-plus |\
raspberrypi,400 |\
raspberrypi,4-compute-module |\
raspberrypi,4-model-b |\
+raspberrypi,5-model-b |\
raspberrypi,model-b |\
raspberrypi,model-b-plus |\
raspberrypi,model-b-rev2)
diff --git a/target/linux/bcm27xx/base-files/etc/diag.sh b/target/linux/bcm27xx/base-files/etc/diag.sh
index 180b31ec95..92d72bea11 100644
--- a/target/linux/bcm27xx/base-files/etc/diag.sh
+++ b/target/linux/bcm27xx/base-files/etc/diag.sh
@@ -14,6 +14,7 @@ set_state() {
raspberrypi,400 |\
raspberrypi,4-compute-module |\
raspberrypi,4-model-b |\
+ raspberrypi,5-model-b |\
raspberrypi,model-b-plus)
status_led="led1"
;;
diff --git a/target/linux/bcm27xx/bcm2708/config-6.1 b/target/linux/bcm27xx/bcm2708/config-6.1
index c5d604e6bc..cef17940a3 100644
--- a/target/linux/bcm27xx/bcm2708/config-6.1
+++ b/target/linux/bcm27xx/bcm2708/config-6.1
@@ -30,7 +30,6 @@ CONFIG_ARM_UNWIND=y
CONFIG_AUTO_ZRELADDR=y
CONFIG_BCM2708_VCMEM=y
# CONFIG_BCM2711_THERMAL is not set
-CONFIG_BCM2835_DEVGPIOMEM=y
CONFIG_BCM2835_FAST_MEMCPY=y
CONFIG_BCM2835_MBOX=y
CONFIG_BCM2835_POWER=y
@@ -151,7 +150,6 @@ CONFIG_FB_CFB_COPYAREA=y
CONFIG_FB_CFB_FILLRECT=y
CONFIG_FB_CFB_IMAGEBLIT=y
CONFIG_FB_CMDLINE=y
-# CONFIG_FB_RPISENSE is not set
CONFIG_FB_SIMPLE=y
CONFIG_FIQ=y
CONFIG_FIXED_PHY=y
@@ -239,8 +237,6 @@ CONFIG_MDIO_DEVRES=y
CONFIG_MEMFD_CREATE=y
CONFIG_MEMORY_ISOLATION=y
CONFIG_MFD_CORE=y
-# CONFIG_MFD_RASPBERRYPI_POE_HAT is not set
-# CONFIG_MFD_RPISENSE_CORE is not set
CONFIG_MFD_SYSCON=y
CONFIG_MIGHT_HAVE_CACHE_L2X0=y
CONFIG_MIGRATION=y
@@ -266,6 +262,7 @@ CONFIG_NO_HZ=y
CONFIG_NO_HZ_COMMON=y
CONFIG_NO_HZ_IDLE=y
CONFIG_NVMEM=y
+CONFIG_NVMEM_LAYOUTS=y
CONFIG_OF=y
CONFIG_OF_ADDRESS=y
CONFIG_OF_CONFIGFS=y
@@ -296,7 +293,6 @@ CONFIG_PM_GENERIC_DOMAINS_OF=y
CONFIG_PM_GENERIC_DOMAINS_SLEEP=y
CONFIG_PM_OPP=y
CONFIG_PM_SLEEP=y
-# CONFIG_PM_USERSPACE_AUTOSLEEP is not set
CONFIG_POWER_SUPPLY=y
CONFIG_PREEMPT_NONE_BUILD=y
CONFIG_PRINTK_TIME=y
@@ -306,6 +302,7 @@ CONFIG_PWM_BCM2835=y
CONFIG_PWM_SYSFS=y
CONFIG_RANDSTRUCT_NONE=y
CONFIG_RASPBERRYPI_FIRMWARE=y
+CONFIG_RASPBERRYPI_GPIOMEM=y
CONFIG_RASPBERRYPI_POWER=y
CONFIG_RATIONAL=y
# CONFIG_RAVE_SP_CORE is not set
diff --git a/target/linux/bcm27xx/bcm2709/config-6.1 b/target/linux/bcm27xx/bcm2709/config-6.1
index ec2e7f3fa6..15bbaabd74 100644
--- a/target/linux/bcm27xx/bcm2709/config-6.1
+++ b/target/linux/bcm27xx/bcm2709/config-6.1
@@ -39,7 +39,6 @@ CONFIG_ASSOCIATIVE_ARRAY=y
CONFIG_AUTO_ZRELADDR=y
CONFIG_BCM2708_VCMEM=y
CONFIG_BCM2711_THERMAL=y
-CONFIG_BCM2835_DEVGPIOMEM=y
CONFIG_BCM2835_MBOX=y
CONFIG_BCM2835_POWER=y
# CONFIG_BCM2835_SMI is not set
@@ -186,7 +185,6 @@ CONFIG_FB_CFB_COPYAREA=y
CONFIG_FB_CFB_FILLRECT=y
CONFIG_FB_CFB_IMAGEBLIT=y
CONFIG_FB_CMDLINE=y
-# CONFIG_FB_RPISENSE is not set
CONFIG_FB_SIMPLE=y
CONFIG_FIQ=y
CONFIG_FIXED_PHY=y
@@ -297,8 +295,6 @@ CONFIG_MDIO_DEVRES=y
CONFIG_MEMFD_CREATE=y
CONFIG_MEMORY_ISOLATION=y
CONFIG_MFD_CORE=y
-# CONFIG_MFD_RASPBERRYPI_POE_HAT is not set
-# CONFIG_MFD_RPISENSE_CORE is not set
CONFIG_MFD_SYSCON=y
CONFIG_MICROCHIP_PHY=y
CONFIG_MIGHT_HAVE_CACHE_L2X0=y
@@ -332,6 +328,7 @@ CONFIG_NO_HZ_COMMON=y
CONFIG_NO_HZ_IDLE=y
CONFIG_NR_CPUS=4
CONFIG_NVMEM=y
+CONFIG_NVMEM_LAYOUTS=y
CONFIG_OF=y
CONFIG_OF_ADDRESS=y
CONFIG_OF_CONFIGFS=y
@@ -374,7 +371,6 @@ CONFIG_PM_GENERIC_DOMAINS_SLEEP=y
CONFIG_PM_OPP=y
CONFIG_PM_SLEEP=y
CONFIG_PM_SLEEP_SMP=y
-# CONFIG_PM_USERSPACE_AUTOSLEEP is not set
CONFIG_POWER_SUPPLY=y
CONFIG_PPS=y
CONFIG_PREEMPT_NONE_BUILD=y
@@ -387,6 +383,7 @@ CONFIG_PWM_SYSFS=y
CONFIG_RANDSTRUCT_NONE=y
CONFIG_RAS=y
CONFIG_RASPBERRYPI_FIRMWARE=y
+CONFIG_RASPBERRYPI_GPIOMEM=y
CONFIG_RASPBERRYPI_POWER=y
CONFIG_RATIONAL=y
# CONFIG_RAVE_SP_CORE is not set
diff --git a/target/linux/bcm27xx/bcm2710/config-6.1 b/target/linux/bcm27xx/bcm2710/config-6.1
index b0abd49c7f..50b3f87d7d 100644
--- a/target/linux/bcm27xx/bcm2710/config-6.1
+++ b/target/linux/bcm27xx/bcm2710/config-6.1
@@ -60,7 +60,6 @@ CONFIG_ASSOCIATIVE_ARRAY=y
CONFIG_AUDIT_ARCH_COMPAT_GENERIC=y
CONFIG_BCM2708_VCMEM=y
# CONFIG_BCM2711_THERMAL is not set
-CONFIG_BCM2835_DEVGPIOMEM=y
CONFIG_BCM2835_MBOX=y
CONFIG_BCM2835_POWER=y
# CONFIG_BCM2835_SMI is not set
@@ -152,7 +151,6 @@ CONFIG_CRYPTO_LIB_BLAKE2S_GENERIC=y
CONFIG_CRYPTO_LIB_SHA1=y
CONFIG_CRYPTO_LIB_SHA256=y
CONFIG_CRYPTO_LIB_UTILS=y
-# CONFIG_CRYPTO_POLYVAL_ARM64_CE is not set
CONFIG_CRYPTO_RNG=y
CONFIG_CRYPTO_RNG2=y
CONFIG_CRYPTO_RNG_DEFAULT=y
@@ -161,8 +159,6 @@ CONFIG_CRYPTO_SHA256=y
CONFIG_CRYPTO_SHA256_ARM64=y
CONFIG_CRYPTO_SHA512=y
CONFIG_CRYPTO_SHA512_ARM64=y
-# CONFIG_CRYPTO_SM4_ARM64_CE_BLK is not set
-# CONFIG_CRYPTO_SM4_ARM64_NEON_BLK is not set
CONFIG_CRYPTO_XTS=y
CONFIG_DCACHE_WORD_ACCESS=y
CONFIG_DEBUG_BUGVERBOSE=y
@@ -195,7 +191,6 @@ CONFIG_FB_CFB_COPYAREA=y
CONFIG_FB_CFB_FILLRECT=y
CONFIG_FB_CFB_IMAGEBLIT=y
CONFIG_FB_CMDLINE=y
-# CONFIG_FB_RPISENSE is not set
CONFIG_FB_SIMPLE=y
CONFIG_FIXED_PHY=y
CONFIG_FIX_EARLYCON_MEM=y
@@ -299,8 +294,6 @@ CONFIG_MDIO_DEVRES=y
CONFIG_MEMFD_CREATE=y
CONFIG_MEMORY_ISOLATION=y
CONFIG_MFD_CORE=y
-# CONFIG_MFD_RASPBERRYPI_POE_HAT is not set
-# CONFIG_MFD_RPISENSE_CORE is not set
CONFIG_MFD_SYSCON=y
CONFIG_MICROCHIP_PHY=y
CONFIG_MIGRATION=y
@@ -332,6 +325,7 @@ CONFIG_NO_HZ_COMMON=y
CONFIG_NO_HZ_IDLE=y
CONFIG_NR_CPUS=4
CONFIG_NVMEM=y
+CONFIG_NVMEM_LAYOUTS=y
CONFIG_OF=y
CONFIG_OF_ADDRESS=y
CONFIG_OF_CONFIGFS=y
@@ -368,7 +362,6 @@ CONFIG_PM_GENERIC_DOMAINS_SLEEP=y
CONFIG_PM_OPP=y
CONFIG_PM_SLEEP=y
CONFIG_PM_SLEEP_SMP=y
-# CONFIG_PM_USERSPACE_AUTOSLEEP is not set
CONFIG_POSIX_CPU_TIMERS_TASK_WORK=y
CONFIG_POWER_RESET=y
CONFIG_POWER_SUPPLY=y
@@ -382,6 +375,7 @@ CONFIG_QUEUED_RWLOCKS=y
CONFIG_QUEUED_SPINLOCKS=y
CONFIG_RANDSTRUCT_NONE=y
CONFIG_RASPBERRYPI_FIRMWARE=y
+CONFIG_RASPBERRYPI_GPIOMEM=y
CONFIG_RASPBERRYPI_POWER=y
CONFIG_RATIONAL=y
# CONFIG_RAVE_SP_CORE is not set
diff --git a/target/linux/bcm27xx/bcm2711/config-6.1 b/target/linux/bcm27xx/bcm2711/config-6.1
index ff88926e3d..0441305067 100644
--- a/target/linux/bcm27xx/bcm2711/config-6.1
+++ b/target/linux/bcm27xx/bcm2711/config-6.1
@@ -24,14 +24,8 @@ CONFIG_ARM64=y
CONFIG_ARM64_4K_PAGES=y
CONFIG_ARM64_CNP=y
CONFIG_ARM64_EPAN=y
-CONFIG_ARM64_ERRATUM_819472=y
-CONFIG_ARM64_ERRATUM_824069=y
-CONFIG_ARM64_ERRATUM_826319=y
-CONFIG_ARM64_ERRATUM_827319=y
-CONFIG_ARM64_ERRATUM_832075=y
-CONFIG_ARM64_ERRATUM_843419=y
+CONFIG_ARM64_ERRATUM_1319367=y
CONFIG_ARM64_HW_AFDBM=y
-CONFIG_ARM64_LD_HAS_FIX_ERRATUM_843419=y
CONFIG_ARM64_PAGE_SHIFT=12
CONFIG_ARM64_PAN=y
CONFIG_ARM64_PA_BITS=48
@@ -60,7 +54,6 @@ CONFIG_ASSOCIATIVE_ARRAY=y
CONFIG_AUDIT_ARCH_COMPAT_GENERIC=y
CONFIG_BCM2708_VCMEM=y
CONFIG_BCM2711_THERMAL=y
-CONFIG_BCM2835_DEVGPIOMEM=y
CONFIG_BCM2835_MBOX=y
CONFIG_BCM2835_POWER=y
# CONFIG_BCM2835_SMI is not set
@@ -156,7 +149,6 @@ CONFIG_CRYPTO_LIB_BLAKE2S_GENERIC=y
CONFIG_CRYPTO_LIB_SHA1=y
CONFIG_CRYPTO_LIB_SHA256=y
CONFIG_CRYPTO_LIB_UTILS=y
-# CONFIG_CRYPTO_POLYVAL_ARM64_CE is not set
CONFIG_CRYPTO_RNG=y
CONFIG_CRYPTO_RNG2=y
CONFIG_CRYPTO_RNG_DEFAULT=y
@@ -165,8 +157,6 @@ CONFIG_CRYPTO_SHA256=y
CONFIG_CRYPTO_SHA256_ARM64=y
CONFIG_CRYPTO_SHA512=y
CONFIG_CRYPTO_SHA512_ARM64=y
-# CONFIG_CRYPTO_SM4_ARM64_CE_BLK is not set
-# CONFIG_CRYPTO_SM4_ARM64_NEON_BLK is not set
CONFIG_CRYPTO_XTS=y
CONFIG_DCACHE_WORD_ACCESS=y
CONFIG_DEBUG_BUGVERBOSE=y
@@ -200,7 +190,6 @@ CONFIG_FB_CFB_COPYAREA=y
CONFIG_FB_CFB_FILLRECT=y
CONFIG_FB_CFB_IMAGEBLIT=y
CONFIG_FB_CMDLINE=y
-# CONFIG_FB_RPISENSE is not set
CONFIG_FB_SIMPLE=y
CONFIG_FIXED_PHY=y
CONFIG_FIX_EARLYCON_MEM=y
@@ -306,8 +295,6 @@ CONFIG_MDIO_DEVRES=y
CONFIG_MEMFD_CREATE=y
CONFIG_MEMORY_ISOLATION=y
CONFIG_MFD_CORE=y
-# CONFIG_MFD_RASPBERRYPI_POE_HAT is not set
-# CONFIG_MFD_RPISENSE_CORE is not set
CONFIG_MFD_SYSCON=y
CONFIG_MIGRATION=y
CONFIG_MMC=y
@@ -339,6 +326,7 @@ CONFIG_NO_HZ_COMMON=y
CONFIG_NO_HZ_IDLE=y
CONFIG_NR_CPUS=4
CONFIG_NVMEM=y
+CONFIG_NVMEM_LAYOUTS=y
CONFIG_OF=y
CONFIG_OF_ADDRESS=y
CONFIG_OF_CONFIGFS=y
@@ -378,7 +366,6 @@ CONFIG_PM_GENERIC_DOMAINS_SLEEP=y
CONFIG_PM_OPP=y
CONFIG_PM_SLEEP=y
CONFIG_PM_SLEEP_SMP=y
-# CONFIG_PM_USERSPACE_AUTOSLEEP is not set
CONFIG_POSIX_CPU_TIMERS_TASK_WORK=y
CONFIG_POWER_RESET=y
CONFIG_POWER_SUPPLY=y
@@ -395,6 +382,7 @@ CONFIG_QUEUED_SPINLOCKS=y
CONFIG_RANDSTRUCT_NONE=y
CONFIG_RAS=y
CONFIG_RASPBERRYPI_FIRMWARE=y
+CONFIG_RASPBERRYPI_GPIOMEM=y
CONFIG_RASPBERRYPI_POWER=y
CONFIG_RATIONAL=y
# CONFIG_RAVE_SP_CORE is not set
diff --git a/target/linux/bcm27xx/bcm2712/config-6.1 b/target/linux/bcm27xx/bcm2712/config-6.1
new file mode 100644
index 0000000000..08445ffee2
--- /dev/null
+++ b/target/linux/bcm27xx/bcm2712/config-6.1
@@ -0,0 +1,600 @@
+CONFIG_64BIT=y
+# CONFIG_AIO is not set
+CONFIG_APERTURE_HELPERS=y
+CONFIG_ARCH_BCM=y
+CONFIG_ARCH_BCM2835=y
+CONFIG_ARCH_BINFMT_ELF_EXTRA_PHDRS=y
+CONFIG_ARCH_BRCMSTB=y
+CONFIG_ARCH_CORRECT_STACKTRACE_ON_KRETPROBE=y
+CONFIG_ARCH_DMA_ADDR_T_64BIT=y
+CONFIG_ARCH_HIBERNATION_POSSIBLE=y
+CONFIG_ARCH_KEEP_MEMBLOCK=y
+CONFIG_ARCH_MHP_MEMMAP_ON_MEMORY_ENABLE=y
+CONFIG_ARCH_MMAP_RND_BITS=18
+CONFIG_ARCH_MMAP_RND_BITS_MAX=24
+CONFIG_ARCH_MMAP_RND_BITS_MIN=18
+CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MIN=11
+CONFIG_ARCH_NR_GPIO=0
+CONFIG_ARCH_PROC_KCORE_TEXT=y
+CONFIG_ARCH_SPARSEMEM_ENABLE=y
+CONFIG_ARCH_STACKWALK=y
+CONFIG_ARCH_SUSPEND_POSSIBLE=y
+CONFIG_ARCH_WANTS_NO_INSTR=y
+CONFIG_ARCH_WANTS_THP_SWAP=y
+CONFIG_ARM64=y
+CONFIG_ARM64_4K_PAGES=y
+CONFIG_ARM64_CNP=y
+CONFIG_ARM64_EPAN=y
+CONFIG_ARM64_ERRATUM_1165522=y
+CONFIG_ARM64_ERRATUM_1286807=y
+CONFIG_ARM64_ERRATUM_1463225=y
+CONFIG_ARM64_HW_AFDBM=y
+CONFIG_ARM64_LD_HAS_FIX_ERRATUM_843419=y
+CONFIG_ARM64_PAGE_SHIFT=12
+CONFIG_ARM64_PAN=y
+CONFIG_ARM64_PA_BITS=48
+CONFIG_ARM64_PA_BITS_48=y
+CONFIG_ARM64_PTR_AUTH=y
+CONFIG_ARM64_PTR_AUTH_KERNEL=y
+CONFIG_ARM64_SVE=y
+CONFIG_ARM64_TAGGED_ADDR_ABI=y
+CONFIG_ARM64_VA_BITS=39
+CONFIG_ARM64_VA_BITS_39=y
+CONFIG_ARM64_WORKAROUND_REPEAT_TLBI=y
+CONFIG_ARM64_WORKAROUND_SPECULATIVE_AT=y
+CONFIG_ARM_AMBA=y
+CONFIG_ARM_ARCH_TIMER=y
+CONFIG_ARM_ARCH_TIMER_EVTSTREAM=y
+CONFIG_ARM_ARCH_TIMER_OOL_WORKAROUND=y
+CONFIG_ARM_BRCMSTB_AVS_CPUFREQ=y
+CONFIG_ARM_GIC=y
+CONFIG_ARM_GIC_V2M=y
+CONFIG_ARM_GIC_V3=y
+CONFIG_ARM_GIC_V3_ITS=y
+CONFIG_ARM_GIC_V3_ITS_PCI=y
+# CONFIG_ARM_MHU_V2 is not set
+# CONFIG_ARM_PL172_MPMC is not set
+CONFIG_ARM_PSCI_FW=y
+CONFIG_ARM_RASPBERRYPI_CPUFREQ=y
+# CONFIG_ARM_SMMU is not set
+# CONFIG_ARM_SMMU_V3 is not set
+CONFIG_ARM_TIMER_SP804=y
+CONFIG_ASSOCIATIVE_ARRAY=y
+CONFIG_AUDIT_ARCH_COMPAT_GENERIC=y
+CONFIG_BCM2708_VCMEM=y
+CONFIG_BCM2711_THERMAL=y
+CONFIG_BCM2712_IOMMU=y
+CONFIG_BCM2712_MIP=y
+CONFIG_BCM2835_MBOX=y
+CONFIG_BCM2835_POWER=y
+CONFIG_BCM2835_SMI=y
+CONFIG_BCM2835_SMI_DEV=m
+CONFIG_BCM2835_THERMAL=y
+CONFIG_BCM2835_VCHIQ=y
+# CONFIG_BCM2835_VCHIQ_MMAL is not set
+CONFIG_BCM2835_WDT=y
+CONFIG_BCM7038_L1_IRQ=y
+CONFIG_BCM7120_L2_IRQ=y
+CONFIG_BCM7XXX_PHY=y
+CONFIG_BCMA=y
+CONFIG_BCMA_BLOCKIO=y
+# CONFIG_BCMA_DEBUG is not set
+# CONFIG_BCMA_DRIVER_GMAC_CMN is not set
+CONFIG_BCMA_DRIVER_PCI=y
+CONFIG_BCMA_FALLBACK_SPROM=y
+CONFIG_BCMA_HOST_PCI=y
+CONFIG_BCMA_HOST_PCI_POSSIBLE=y
+# CONFIG_BCMA_HOST_SOC is not set
+CONFIG_BCMGENET=y
+CONFIG_BCM_NET_PHYLIB=y
+CONFIG_BCM_VCIO=y
+# CONFIG_BCM_VC_SM_CMA is not set
+CONFIG_BCM_VIDEOCORE=y
+# CONFIG_BLK_DEV_INITRD is not set
+CONFIG_BLK_DEV_LOOP=y
+CONFIG_BLK_DEV_NVME=y
+CONFIG_BLK_DEV_RAM=y
+CONFIG_BLK_DEV_RAM_COUNT=16
+CONFIG_BLK_DEV_RAM_SIZE=4096
+CONFIG_BLK_DEV_SD=y
+CONFIG_BLK_MQ_PCI=y
+CONFIG_BLK_PM=y
+CONFIG_BRCMSTB_DPFE=y
+CONFIG_BRCMSTB_L2_IRQ=y
+CONFIG_BRCMSTB_MEMC=y
+CONFIG_BRCMSTB_PM=y
+# CONFIG_BRCMSTB_THERMAL is not set
+CONFIG_BRCM_CHAR_DRIVERS=y
+CONFIG_BRCM_USB_PINMAP=y
+CONFIG_BROADCOM_PHY=y
+CONFIG_CC_HAVE_SHADOW_CALL_STACK=y
+CONFIG_CC_HAVE_STACKPROTECTOR_SYSREG=y
+CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5"
+CONFIG_CC_NO_ARRAY_BOUNDS=y
+CONFIG_CLKSRC_MMIO=y
+CONFIG_CLK_BCM2711_DVP=y
+CONFIG_CLK_BCM2835=y
+CONFIG_CLK_RASPBERRYPI=y
+CONFIG_CLONE_BACKWARDS=y
+CONFIG_CMA=y
+CONFIG_CMA_ALIGNMENT=8
+CONFIG_CMA_AREAS=7
+# CONFIG_CMA_DEBUG is not set
+# CONFIG_CMA_DEBUGFS is not set
+CONFIG_CMA_SIZE_MBYTES=5
+# CONFIG_CMA_SIZE_SEL_MAX is not set
+CONFIG_CMA_SIZE_SEL_MBYTES=y
+# CONFIG_CMA_SIZE_SEL_MIN is not set
+# CONFIG_CMA_SIZE_SEL_PERCENTAGE is not set
+# CONFIG_CMA_SYSFS is not set
+CONFIG_COMMON_CLK=y
+CONFIG_COMMON_CLK_RP1=y
+# CONFIG_COMMON_CLK_RP1_SDIO is not set
+CONFIG_COMMON_CLK_XGENE=y
+CONFIG_COMPACT_UNEVICTABLE_DEFAULT=1
+# CONFIG_COMPAT_32BIT_TIME is not set
+CONFIG_CONFIGFS_FS=y
+CONFIG_CONSOLE_TRANSLATIONS=y
+CONFIG_CONTEXT_TRACKING=y
+CONFIG_CONTEXT_TRACKING_IDLE=y
+CONFIG_CONTIG_ALLOC=y
+CONFIG_CPUFREQ_DT=y
+CONFIG_CPUFREQ_DT_PLATDEV=y
+CONFIG_CPU_FREQ=y
+CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y
+# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set
+CONFIG_CPU_FREQ_GOV_ATTR_SET=y
+CONFIG_CPU_FREQ_GOV_COMMON=y
+CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y
+CONFIG_CPU_FREQ_GOV_ONDEMAND=y
+CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
+CONFIG_CPU_FREQ_GOV_POWERSAVE=y
+CONFIG_CPU_FREQ_GOV_SCHEDUTIL=y
+CONFIG_CPU_FREQ_GOV_USERSPACE=y
+CONFIG_CPU_FREQ_STAT=y
+CONFIG_CPU_IDLE=y
+CONFIG_CPU_IDLE_GOV_LADDER=y
+CONFIG_CPU_IDLE_GOV_MENU=y
+CONFIG_CPU_LITTLE_ENDIAN=y
+CONFIG_CPU_PM=y
+CONFIG_CPU_RMAP=y
+CONFIG_CRC16=y
+CONFIG_CRYPTO_AES_ARM64=y
+CONFIG_CRYPTO_AES_ARM64_BS=y
+CONFIG_CRYPTO_AES_ARM64_CE=y
+CONFIG_CRYPTO_AES_ARM64_CE_BLK=y
+CONFIG_CRYPTO_AES_ARM64_CE_CCM=y
+CONFIG_CRYPTO_AES_ARM64_NEON_BLK=y
+CONFIG_CRYPTO_CBC=y
+CONFIG_CRYPTO_CRC32=y
+CONFIG_CRYPTO_CRC32C=y
+CONFIG_CRYPTO_CRYPTD=y
+CONFIG_CRYPTO_CTS=y
+CONFIG_CRYPTO_DRBG=y
+CONFIG_CRYPTO_DRBG_HMAC=y
+CONFIG_CRYPTO_DRBG_MENU=y
+CONFIG_CRYPTO_ECB=y
+CONFIG_CRYPTO_GHASH_ARM64_CE=y
+CONFIG_CRYPTO_HMAC=y
+CONFIG_CRYPTO_JITTERENTROPY=y
+CONFIG_CRYPTO_LIB_BLAKE2S_GENERIC=y
+CONFIG_CRYPTO_LIB_SHA1=y
+CONFIG_CRYPTO_LIB_SHA256=y
+CONFIG_CRYPTO_LIB_UTILS=y
+CONFIG_CRYPTO_RNG=y
+CONFIG_CRYPTO_RNG2=y
+CONFIG_CRYPTO_RNG_DEFAULT=y
+CONFIG_CRYPTO_SEQIV=y
+CONFIG_CRYPTO_SHA1=y
+CONFIG_CRYPTO_SHA1_ARM64_CE=y
+CONFIG_CRYPTO_SHA256=y
+CONFIG_CRYPTO_SHA256_ARM64=y
+CONFIG_CRYPTO_SHA2_ARM64_CE=y
+CONFIG_CRYPTO_SHA3=y
+CONFIG_CRYPTO_SHA3_ARM64=y
+CONFIG_CRYPTO_SHA512=y
+CONFIG_CRYPTO_SHA512_ARM64=y
+CONFIG_CRYPTO_SHA512_ARM64_CE=y
+CONFIG_CRYPTO_SM3=y
+CONFIG_CRYPTO_SM3_ARM64_CE=y
+CONFIG_CRYPTO_SM4=y
+CONFIG_CRYPTO_SM4_ARM64_CE=y
+CONFIG_CRYPTO_SM4_ARM64_CE_BLK=y
+CONFIG_CRYPTO_XTS=y
+CONFIG_DCACHE_WORD_ACCESS=y
+CONFIG_DEBUG_BUGVERBOSE=y
+CONFIG_DEBUG_INFO=y
+CONFIG_DIMLIB=y
+CONFIG_DMABUF_HEAPS=y
+CONFIG_DMABUF_HEAPS_CMA=y
+CONFIG_DMABUF_HEAPS_SYSTEM=y
+CONFIG_DMADEVICES=y
+CONFIG_DMA_BCM2708=y
+CONFIG_DMA_BCM2835=y
+CONFIG_DMA_CMA=y
+CONFIG_DMA_DIRECT_REMAP=y
+CONFIG_DMA_ENGINE=y
+CONFIG_DMA_OF=y
+CONFIG_DMA_OPS=y
+CONFIG_DMA_SHARED_BUFFER=y
+CONFIG_DMA_VIRTUAL_CHANNELS=y
+CONFIG_DNOTIFY=y
+CONFIG_DTC=y
+CONFIG_DUMMY_CONSOLE=y
+CONFIG_EDAC_SUPPORT=y
+CONFIG_EXCLUSIVE_SYSTEM_RAM=y
+CONFIG_EXT4_FS=y
+CONFIG_EXT4_FS_POSIX_ACL=y
+CONFIG_EXT4_FS_SECURITY=y
+CONFIG_EXTCON=y
+CONFIG_F2FS_FS=y
+CONFIG_FB=y
+CONFIG_FB_BCM2708=y
+CONFIG_FB_CFB_COPYAREA=y
+CONFIG_FB_CFB_FILLRECT=y
+CONFIG_FB_CFB_IMAGEBLIT=y
+CONFIG_FB_CMDLINE=y
+CONFIG_FB_SIMPLE=y
+CONFIG_FIXED_PHY=y
+CONFIG_FIX_EARLYCON_MEM=y
+CONFIG_FONT_8x16=y
+CONFIG_FONT_8x8=y
+CONFIG_FONT_SUPPORT=y
+CONFIG_FRAMEBUFFER_CONSOLE=y
+# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set
+CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y
+CONFIG_FRAME_POINTER=y
+CONFIG_FREEZER=y
+CONFIG_FSL_ERRATUM_A008585=y
+CONFIG_FS_ENCRYPTION=y
+CONFIG_FS_ENCRYPTION_ALGS=y
+CONFIG_FS_IOMAP=y
+CONFIG_FS_MBCACHE=y
+CONFIG_FS_POSIX_ACL=y
+CONFIG_FWNODE_MDIO=y
+CONFIG_FW_CACHE=y
+CONFIG_FW_LOADER_PAGED_BUF=y
+CONFIG_FW_LOADER_SYSFS=y
+CONFIG_GCC11_NO_ARRAY_BOUNDS=y
+CONFIG_GCC_SUPPORTS_DYNAMIC_FTRACE_WITH_REGS=y
+CONFIG_GENERIC_ALLOCATOR=y
+CONFIG_GENERIC_ARCH_TOPOLOGY=y
+CONFIG_GENERIC_BUG=y
+CONFIG_GENERIC_BUG_RELATIVE_POINTERS=y
+CONFIG_GENERIC_CLOCKEVENTS=y
+CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y
+CONFIG_GENERIC_CPU_AUTOPROBE=y
+CONFIG_GENERIC_CPU_VULNERABILITIES=y
+CONFIG_GENERIC_CSUM=y
+CONFIG_GENERIC_EARLY_IOREMAP=y
+CONFIG_GENERIC_GETTIMEOFDAY=y
+CONFIG_GENERIC_IDLE_POLL_SETUP=y
+CONFIG_GENERIC_IOREMAP=y
+CONFIG_GENERIC_IRQ_CHIP=y
+CONFIG_GENERIC_IRQ_EFFECTIVE_AFF_MASK=y
+CONFIG_GENERIC_IRQ_INJECTION=y
+CONFIG_GENERIC_IRQ_MIGRATION=y
+CONFIG_GENERIC_IRQ_SHOW=y
+CONFIG_GENERIC_IRQ_SHOW_LEVEL=y
+CONFIG_GENERIC_LIB_DEVMEM_IS_ALLOWED=y
+CONFIG_GENERIC_MSI_IRQ=y
+CONFIG_GENERIC_MSI_IRQ_DOMAIN=y
+CONFIG_GENERIC_PCI_IOMAP=y
+CONFIG_GENERIC_PHY=y
+CONFIG_GENERIC_PINCONF=y
+CONFIG_GENERIC_PINCTRL_GROUPS=y
+CONFIG_GENERIC_PINMUX_FUNCTIONS=y
+CONFIG_GENERIC_SCHED_CLOCK=y
+CONFIG_GENERIC_SMP_IDLE_THREAD=y
+CONFIG_GENERIC_STRNCPY_FROM_USER=y
+CONFIG_GENERIC_STRNLEN_USER=y
+CONFIG_GENERIC_TIME_VSYSCALL=y
+CONFIG_GLOB=y
+CONFIG_GPIOLIB_IRQCHIP=y
+CONFIG_GPIO_BCM_VIRT=y
+CONFIG_GPIO_BRCMSTB=y
+CONFIG_GPIO_CDEV=y
+# CONFIG_GPIO_FSM is not set
+CONFIG_GPIO_GENERIC=y
+CONFIG_GPIO_RASPBERRYPI_EXP=y
+CONFIG_HARDIRQS_SW_RESEND=y
+CONFIG_HAS_DMA=y
+CONFIG_HAS_IOMEM=y
+CONFIG_HAS_IOPORT_MAP=y
+CONFIG_HOTPLUG_CPU=y
+CONFIG_HOTPLUG_PCI=y
+# CONFIG_HOTPLUG_PCI_CPCI is not set
+# CONFIG_HOTPLUG_PCI_PCIE is not set
+CONFIG_HOTPLUG_PCI_SHPC=y
+CONFIG_HWMON=y
+CONFIG_HW_CONSOLE=y
+CONFIG_HW_RANDOM=y
+CONFIG_HW_RANDOM_IPROC_RNG200=y
+CONFIG_I2C=y
+CONFIG_I2C_ALGOBIT=y
+# CONFIG_I2C_BCM2708 is not set
+CONFIG_I2C_BCM2835=y
+CONFIG_I2C_BOARDINFO=y
+CONFIG_I2C_BRCMSTB=y
+CONFIG_I2C_DESIGNWARE_CORE=y
+CONFIG_I2C_DESIGNWARE_PLATFORM=y
+CONFIG_ILLEGAL_POINTER_VALUE=0xdead000000000000
+CONFIG_INPUT=y
+CONFIG_INPUT_MOUSEDEV=y
+# CONFIG_INPUT_MOUSEDEV_PSAUX is not set
+CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
+CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
+CONFIG_INPUT_RASPBERRYPI_BUTTON=y
+CONFIG_IOMMU_API=y
+# CONFIG_IOMMU_DEBUGFS is not set
+# CONFIG_IOMMU_DEFAULT_DMA_LAZY is not set
+CONFIG_IOMMU_DEFAULT_DMA_STRICT=y
+# CONFIG_IOMMU_DEFAULT_PASSTHROUGH is not set
+CONFIG_IOMMU_DMA=y
+CONFIG_IOMMU_IOVA=y
+# CONFIG_IOMMU_IO_PGTABLE_ARMV7S is not set
+# CONFIG_IOMMU_IO_PGTABLE_DART is not set
+# CONFIG_IOMMU_IO_PGTABLE_LPAE is not set
+CONFIG_IOMMU_SUPPORT=y
+CONFIG_IRQCHIP=y
+CONFIG_IRQ_DOMAIN=y
+CONFIG_IRQ_DOMAIN_HIERARCHY=y
+CONFIG_IRQ_FORCED_THREADING=y
+CONFIG_IRQ_MSI_IOMMU=y
+CONFIG_IRQ_WORK=y
+CONFIG_JBD2=y
+CONFIG_KEYS=y
+CONFIG_LEDS_GPIO=y
+CONFIG_LEDS_PWM=y
+CONFIG_LEDS_TRIGGER_ACTPWR=y
+CONFIG_LEDS_TRIGGER_INPUT=y
+CONFIG_LIBFDT=y
+CONFIG_LOCK_DEBUGGING_SUPPORT=y
+CONFIG_LOCK_SPIN_ON_OWNER=y
+CONFIG_LOGO=y
+CONFIG_LOGO_LINUX_CLUT224=y
+# CONFIG_LOGO_LINUX_MONO is not set
+# CONFIG_LOGO_LINUX_VGA16 is not set
+CONFIG_MACB=y
+CONFIG_MACB_PCI=y
+CONFIG_MACB_USE_HWSTAMP=y
+CONFIG_MAC_PARTITION=y
+CONFIG_MAGIC_SYSRQ=y
+CONFIG_MAILBOX=y
+# CONFIG_MAILBOX_TEST is not set
+CONFIG_MDIO_BCM_UNIMAC=y
+CONFIG_MDIO_BUS=y
+CONFIG_MDIO_DEVICE=y
+CONFIG_MDIO_DEVRES=y
+CONFIG_MEMFD_CREATE=y
+CONFIG_MEMORY=y
+CONFIG_MEMORY_ISOLATION=y
+CONFIG_MFD_CORE=y
+CONFIG_MFD_RP1=y
+CONFIG_MFD_SYSCON=y
+CONFIG_MICROCHIP_PHY=y
+CONFIG_MIGRATION=y
+CONFIG_MMC=y
+# CONFIG_MMC_BCM2835 is not set
+CONFIG_MMC_BCM2835_DMA=y
+CONFIG_MMC_BCM2835_MMC=y
+CONFIG_MMC_BCM2835_PIO_DMA_BARRIER=2
+CONFIG_MMC_BCM2835_SDHOST=y
+CONFIG_MMC_BLOCK=y
+CONFIG_MMC_BLOCK_MINORS=32
+CONFIG_MMC_CQHCI=y
+CONFIG_MMC_SDHCI=y
+CONFIG_MMC_SDHCI_BRCMSTB=y
+CONFIG_MMC_SDHCI_IO_ACCESSORS=y
+CONFIG_MMC_SDHCI_IPROC=y
+CONFIG_MMC_SDHCI_OF_DWCMSHC=y
+# CONFIG_MMC_SDHCI_PCI is not set
+CONFIG_MMC_SDHCI_PLTFM=y
+CONFIG_MODULES_USE_ELF_RELA=y
+CONFIG_MUTEX_SPIN_ON_OWNER=y
+CONFIG_NEED_DMA_MAP_STATE=y
+CONFIG_NEED_SG_DMA_LENGTH=y
+CONFIG_NET_FLOW_LIMIT=y
+CONFIG_NET_PTP_CLASSIFY=y
+CONFIG_NET_SELFTESTS=y
+CONFIG_NLS=y
+CONFIG_NLS_ASCII=y
+CONFIG_NOP_USB_XCEIV=y
+CONFIG_NO_HZ=y
+CONFIG_NO_HZ_COMMON=y
+CONFIG_NO_HZ_IDLE=y
+CONFIG_NR_CPUS=4
+CONFIG_NVMEM=y
+CONFIG_NVMEM_LAYOUTS=y
+CONFIG_NVME_CORE=y
+# CONFIG_NVME_HWMON is not set
+# CONFIG_NVME_MULTIPATH is not set
+CONFIG_OF=y
+CONFIG_OF_ADDRESS=y
+CONFIG_OF_CONFIGFS=y
+CONFIG_OF_DYNAMIC=y
+CONFIG_OF_EARLY_FLATTREE=y
+CONFIG_OF_FLATTREE=y
+CONFIG_OF_GPIO=y
+CONFIG_OF_IOMMU=y
+CONFIG_OF_IRQ=y
+CONFIG_OF_KOBJ=y
+CONFIG_OF_MDIO=y
+CONFIG_OF_OVERLAY=y
+CONFIG_OF_RESOLVE=y
+CONFIG_PADATA=y
+CONFIG_PAGE_POOL=y
+CONFIG_PAGE_SIZE_LESS_THAN_256KB=y
+CONFIG_PAGE_SIZE_LESS_THAN_64KB=y
+CONFIG_PARTITION_PERCPU=y
+CONFIG_PCI=y
+CONFIG_PCIEAER=y
+CONFIG_PCIEAER_INJECT=y
+CONFIG_PCIEASPM=y
+# CONFIG_PCIEASPM_DEFAULT is not set
+# CONFIG_PCIEASPM_PERFORMANCE is not set
+# CONFIG_PCIEASPM_POWERSAVE is not set
+CONFIG_PCIEASPM_POWER_SUPERSAVE=y
+CONFIG_PCIEPORTBUS=y
+CONFIG_PCIE_BRCMSTB=y
+CONFIG_PCIE_DPC=y
+CONFIG_PCIE_DW=y
+CONFIG_PCIE_DW_HOST=y
+CONFIG_PCIE_DW_PLAT=y
+CONFIG_PCIE_DW_PLAT_HOST=y
+CONFIG_PCIE_MICROCHIP_HOST=y
+CONFIG_PCIE_PME=y
+CONFIG_PCI_DOMAINS=y
+CONFIG_PCI_DOMAINS_GENERIC=y
+CONFIG_PCI_ECAM=y
+CONFIG_PCI_HOST_COMMON=y
+CONFIG_PCI_HOST_GENERIC=y
+CONFIG_PCI_MSI=y
+CONFIG_PCI_MSI_IRQ_DOMAIN=y
+CONFIG_PCI_STUB=y
+CONFIG_PGTABLE_LEVELS=3
+CONFIG_PHYLIB=y
+CONFIG_PHYLINK=y
+CONFIG_PHYS_ADDR_T_64BIT=y
+# CONFIG_PHY_BRCM_SATA is not set
+CONFIG_PHY_BRCM_USB=y
+CONFIG_PINCTRL=y
+CONFIG_PINCTRL_BCM2712=y
+CONFIG_PINCTRL_BCM2835=y
+CONFIG_PINCTRL_RP1=y
+CONFIG_PM=y
+CONFIG_PM_CLK=y
+CONFIG_PM_GENERIC_DOMAINS=y
+CONFIG_PM_GENERIC_DOMAINS_OF=y
+CONFIG_PM_GENERIC_DOMAINS_SLEEP=y
+CONFIG_PM_OPP=y
+CONFIG_PM_SLEEP=y
+CONFIG_PM_SLEEP_SMP=y
+CONFIG_POSIX_CPU_TIMERS_TASK_WORK=y
+CONFIG_POWER_RESET=y
+CONFIG_POWER_RESET_GPIO=y
+CONFIG_POWER_SUPPLY=y
+CONFIG_PPS=y
+CONFIG_PREEMPT_NONE_BUILD=y
+CONFIG_PRINTK_TIME=y
+CONFIG_PTP_1588_CLOCK=y
+CONFIG_PTP_1588_CLOCK_OPTIONAL=y
+CONFIG_PWM=y
+CONFIG_PWM_BCM2835=y
+CONFIG_PWM_BRCMSTB=y
+CONFIG_PWM_RP1=y
+CONFIG_PWM_SYSFS=y
+CONFIG_QUEUED_RWLOCKS=y
+CONFIG_QUEUED_SPINLOCKS=y
+CONFIG_RANDSTRUCT_NONE=y
+CONFIG_RAS=y
+CONFIG_RASPBERRYPI_FIRMWARE=y
+CONFIG_RASPBERRYPI_GPIOMEM=y
+CONFIG_RASPBERRYPI_POWER=y
+CONFIG_RATIONAL=y
+# CONFIG_RAVE_SP_CORE is not set
+CONFIG_REGMAP=y
+CONFIG_REGMAP_MMIO=y
+CONFIG_REGULATOR=y
+CONFIG_REGULATOR_FIXED_VOLTAGE=y
+CONFIG_REGULATOR_GPIO=y
+CONFIG_RESET_BRCMSTB=y
+CONFIG_RESET_BRCMSTB_RESCAL=y
+CONFIG_RESET_CONTROLLER=y
+CONFIG_RESET_RASPBERRYPI=y
+CONFIG_RESET_SIMPLE=y
+CONFIG_RFS_ACCEL=y
+CONFIG_RODATA_FULL_DEFAULT_ENABLED=y
+# CONFIG_RPIVID_MEM is not set
+# CONFIG_RPI_POE_POWER is not set
+CONFIG_RPS=y
+CONFIG_RTC_CLASS=y
+CONFIG_RTC_DRV_BRCMSTB=y
+CONFIG_RTC_DRV_RPI=y
+CONFIG_RTC_I2C_AND_SPI=y
+CONFIG_RWSEM_SPIN_ON_OWNER=y
+CONFIG_SCSI=y
+CONFIG_SCSI_COMMON=y
+# CONFIG_SCSI_LOWLEVEL is not set
+# CONFIG_SCSI_PROC_FS is not set
+CONFIG_SENSORS_RASPBERRYPI_HWMON=y
+CONFIG_SENSORS_RP1_ADC=y
+CONFIG_SERIAL_8250_BCM2835AUX=y
+CONFIG_SERIAL_8250_BCM7271=y
+# CONFIG_SERIAL_8250_DMA is not set
+CONFIG_SERIAL_8250_EXTENDED=y
+CONFIG_SERIAL_8250_FSL=y
+CONFIG_SERIAL_8250_NR_UARTS=1
+CONFIG_SERIAL_8250_RUNTIME_UARTS=0
+CONFIG_SERIAL_8250_SHARE_IRQ=y
+CONFIG_SERIAL_AMBA_PL011=y
+CONFIG_SERIAL_AMBA_PL011_CONSOLE=y
+CONFIG_SERIAL_DEV_BUS=y
+# CONFIG_SERIAL_DEV_CTRL_TTYPORT is not set
+CONFIG_SERIAL_MCTRL_GPIO=y
+CONFIG_SERIAL_OF_PLATFORM=y
+CONFIG_SG_POOL=y
+CONFIG_SMP=y
+CONFIG_SMSC_PHY=y
+CONFIG_SOCK_RX_QUEUE_MAPPING=y
+CONFIG_SOC_BRCMSTB=y
+CONFIG_SOC_BUS=y
+CONFIG_SOFTIRQ_ON_OWN_STACK=y
+CONFIG_SPARSEMEM=y
+CONFIG_SPARSEMEM_EXTREME=y
+CONFIG_SPARSEMEM_VMEMMAP=y
+CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y
+CONFIG_SPARSE_IRQ=y
+CONFIG_SRCU=y
+# CONFIG_STRIP_ASM_SYMS is not set
+CONFIG_SUSPEND=y
+CONFIG_SUSPEND_FREEZER=y
+CONFIG_SWIOTLB=y
+CONFIG_SWPHY=y
+CONFIG_SYSCTL_EXCEPTION_TRACE=y
+# CONFIG_TEXTSEARCH is not set
+CONFIG_THERMAL=y
+CONFIG_THERMAL_DEFAULT_GOV_STEP_WISE=y
+CONFIG_THERMAL_EMERGENCY_POWEROFF_DELAY_MS=0
+CONFIG_THERMAL_GOV_STEP_WISE=y
+CONFIG_THERMAL_OF=y
+CONFIG_THERMAL_WRITABLE_TRIPS=y
+CONFIG_THREAD_INFO_IN_TASK=y
+CONFIG_TICK_CPU_ACCOUNTING=y
+CONFIG_TIMER_OF=y
+CONFIG_TIMER_PROBE=y
+CONFIG_TMPFS_POSIX_ACL=y
+CONFIG_TRACE_IRQFLAGS_NMI_SUPPORT=y
+CONFIG_TREE_RCU=y
+CONFIG_TREE_SRCU=y
+# CONFIG_UACCE is not set
+# CONFIG_UCLAMP_TASK is not set
+CONFIG_UEVENT_HELPER_PATH=""
+CONFIG_UNMAP_KERNEL_AT_EL0=y
+CONFIG_USB=y
+CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
+# CONFIG_USB_BRCMSTB is not set
+CONFIG_USB_COMMON=y
+CONFIG_USB_DWCOTG=y
+CONFIG_USB_GADGET=y
+# CONFIG_USB_HCD_BCMA is not set
+CONFIG_USB_PCI=y
+CONFIG_USB_PHY=y
+CONFIG_USB_STORAGE=y
+CONFIG_USB_SUPPORT=y
+CONFIG_USB_UAS=y
+# CONFIG_USB_UHCI_HCD is not set
+CONFIG_USB_XHCI_HCD=y
+CONFIG_USB_XHCI_PCI=y
+CONFIG_USB_XHCI_PLATFORM=y
+CONFIG_VCHIQ_CDEV=y
+CONFIG_VMAP_STACK=y
+CONFIG_VT=y
+CONFIG_VT_CONSOLE=y
+CONFIG_VT_CONSOLE_SLEEP=y
+CONFIG_VT_HW_CONSOLE_BINDING=y
+CONFIG_WATCHDOG_CORE=y
+CONFIG_XPS=y
+CONFIG_XZ_DEC_ARM=y
+CONFIG_XZ_DEC_BCJ=y
+CONFIG_ZONE_DMA32=y
diff --git a/target/linux/bcm27xx/bcm2712/target.mk b/target/linux/bcm27xx/bcm2712/target.mk
new file mode 100644
index 0000000000..4fe9910351
--- /dev/null
+++ b/target/linux/bcm27xx/bcm2712/target.mk
@@ -0,0 +1,12 @@
+# SPDX-License-Identifier: GPL-2.0-only
+
+ARCH:=aarch64
+SUBTARGET:=bcm2712
+BOARDNAME:=BCM2712 boards (64 bit)
+CPU_TYPE:=cortex-a76
+FEATURES+=pci pcie
+
+define Target/Description
+ Build firmware image for BCM2712 devices.
+ This firmware features a 64 bit kernel.
+endef
diff --git a/target/linux/bcm27xx/image/Makefile b/target/linux/bcm27xx/image/Makefile
index ad79ac7d0c..e55a7b17b5 100644
--- a/target/linux/bcm27xx/image/Makefile
+++ b/target/linux/bcm27xx/image/Makefile
@@ -172,4 +172,22 @@ ifeq ($(SUBTARGET),bcm2711)
TARGET_DEVICES += rpi-4
endif
+define Device/rpi-5
+ DEVICE_MODEL := 5
+ KERNEL_IMG := kernel_2712.img
+ DEVICE_DTS := broadcom/bcm2712-rpi-5-b
+ SUPPORTED_DEVICES := raspberrypi,5-model-b
+ DEVICE_PACKAGES := \
+ cypress-firmware-43455-sdio \
+ brcmfmac-nvram-43455-sdio \
+ kmod-brcmfmac wpad-basic-mbedtls \
+ kmod-hwmon-pwmfan kmod-thermal \
+ kmod-usb-dwc3 kmod-usb3
+ IMAGE/sysupgrade.img.gz := boot-common | boot-2711 | sdcard-img | gzip | append-metadata
+ IMAGE/factory.img.gz := boot-common | boot-2711 | sdcard-img | gzip
+endef
+ifeq ($(SUBTARGET),bcm2712)
+ TARGET_DEVICES += rpi-5
+endif
+
$(eval $(call BuildImage))
diff --git a/target/linux/bcm27xx/image/config.txt b/target/linux/bcm27xx/image/config.txt
index f8ca1bf2d4..db35d72ab7 100644
--- a/target/linux/bcm27xx/image/config.txt
+++ b/target/linux/bcm27xx/image/config.txt
@@ -4,7 +4,7 @@
################################################################################
# For overclocking and various other settings, see:
-# https://www.raspberrypi.org/documentation/configuration/config-txt/README.md
+# https://www.raspberrypi.com/documentation/computers/config_txt.html
################################################################################
# OpenWrt config
diff --git a/target/linux/bcm27xx/image/distroconfig.txt b/target/linux/bcm27xx/image/distroconfig.txt
index 103c5d2e82..b09e5b8466 100644
--- a/target/linux/bcm27xx/image/distroconfig.txt
+++ b/target/linux/bcm27xx/image/distroconfig.txt
@@ -5,7 +5,7 @@
# Restore PL011 (ttyAMA0) to GPIOs 14 & 15, instead of Mini UART (ttyS0).
# Mini UART is disabled by default unless "enable_uart=1" is specified,
# which changes the core frequency to a fixed value and impacts performance.
-# See https://www.raspberrypi.org/documentation/configuration/uart.md
+# See https://www.raspberrypi.com/documentation/computers/configuration.html#mini-uart-and-cpu-core-frequency
[pi0w]
dtoverlay=disable-bt
[pi3]
diff --git a/target/linux/bcm27xx/patches-6.1/950-0045-drm-atomic-helpers-remove-legacy_cursor_update-hacks.patch b/target/linux/bcm27xx/patches-6.1/950-0045-drm-atomic-helpers-remove-legacy_cursor_update-hacks.patch
index 178d0c514e..b64f2972c5 100644
--- a/target/linux/bcm27xx/patches-6.1/950-0045-drm-atomic-helpers-remove-legacy_cursor_update-hacks.patch
+++ b/target/linux/bcm27xx/patches-6.1/950-0045-drm-atomic-helpers-remove-legacy_cursor_update-hacks.patch
@@ -88,7 +88,7 @@ Signed-off-by: Maxime Ripard
commit->event = kzalloc(sizeof(*commit->event),
--- a/drivers/gpu/drm/i915/display/intel_display.c
+++ b/drivers/gpu/drm/i915/display/intel_display.c
-@@ -7743,6 +7743,19 @@ static int intel_atomic_commit(struct dr
+@@ -7754,6 +7754,19 @@ static int intel_atomic_commit(struct dr
state->base.legacy_cursor_update = false;
}
diff --git a/target/linux/bcm27xx/patches-6.1/950-0078-Revert-Bluetooth-Always-request-for-user-confirmatio.patch b/target/linux/bcm27xx/patches-6.1/950-0078-Revert-Bluetooth-Always-request-for-user-confirmatio.patch
index 7304bf8bb6..bd2ccaa197 100644
--- a/target/linux/bcm27xx/patches-6.1/950-0078-Revert-Bluetooth-Always-request-for-user-confirmatio.patch
+++ b/target/linux/bcm27xx/patches-6.1/950-0078-Revert-Bluetooth-Always-request-for-user-confirmatio.patch
@@ -24,7 +24,7 @@ Signed-off-by: Phil Elwell
--- a/net/bluetooth/smp.c
+++ b/net/bluetooth/smp.c
-@@ -2207,7 +2207,7 @@ mackey_and_ltk:
+@@ -2214,7 +2214,7 @@ mackey_and_ltk:
if (err)
return SMP_UNSPECIFIED;
@@ -33,7 +33,7 @@ Signed-off-by: Phil Elwell
if (hcon->out) {
sc_dhkey_check(smp);
SMP_ALLOW_CMD(smp, SMP_CMD_DHKEY_CHECK);
-@@ -2222,9 +2222,6 @@ mackey_and_ltk:
+@@ -2229,9 +2229,6 @@ mackey_and_ltk:
confirm_hint = 0;
confirm:
diff --git a/target/linux/bcm27xx/patches-6.1/950-0111-MMC-added-alternative-MMC-driver.patch b/target/linux/bcm27xx/patches-6.1/950-0111-MMC-added-alternative-MMC-driver.patch
index a74b2cd62f..09402fbc35 100644
--- a/target/linux/bcm27xx/patches-6.1/950-0111-MMC-added-alternative-MMC-driver.patch
+++ b/target/linux/bcm27xx/patches-6.1/950-0111-MMC-added-alternative-MMC-driver.patch
@@ -266,7 +266,7 @@ Signed-off-by: Phil Elwell
static inline int mmc_blk_part_switch(struct mmc_card *card,
unsigned int part_type);
static void mmc_blk_rw_rq_prep(struct mmc_queue_req *mqrq,
-@@ -2998,6 +3005,8 @@ static int mmc_blk_probe(struct mmc_card
+@@ -3000,6 +3007,8 @@ static int mmc_blk_probe(struct mmc_card
{
struct mmc_blk_data *md;
int ret = 0;
@@ -275,7 +275,7 @@ Signed-off-by: Phil Elwell
/*
* Check that the card supports the command class(es) we need.
-@@ -3005,7 +3014,16 @@ static int mmc_blk_probe(struct mmc_card
+@@ -3007,7 +3016,16 @@ static int mmc_blk_probe(struct mmc_card
if (!(card->csd.cmdclass & CCC_BLOCK_READ))
return -ENODEV;
@@ -293,7 +293,7 @@ Signed-off-by: Phil Elwell
card->complete_wq = alloc_workqueue("mmc_complete",
WQ_MEM_RECLAIM | WQ_HIGHPRI, 0);
-@@ -3020,6 +3038,17 @@ static int mmc_blk_probe(struct mmc_card
+@@ -3022,6 +3040,17 @@ static int mmc_blk_probe(struct mmc_card
goto out_free;
}
diff --git a/target/linux/bcm27xx/patches-6.1/950-0146-sc16is7xx-Don-t-spin-if-no-data-received.patch b/target/linux/bcm27xx/patches-6.1/950-0146-sc16is7xx-Don-t-spin-if-no-data-received.patch
deleted file mode 100644
index 30fcdb5218..0000000000
--- a/target/linux/bcm27xx/patches-6.1/950-0146-sc16is7xx-Don-t-spin-if-no-data-received.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-From 1f9195cda30b320038cf94b4d14f85e58dd69d6d Mon Sep 17 00:00:00 2001
-From: Phil Elwell
-Date: Tue, 6 Nov 2018 12:57:48 +0000
-Subject: [PATCH] sc16is7xx: Don't spin if no data received
-
-See: https://github.com/raspberrypi/linux/issues/2676
-
-Signed-off-by: Phil Elwell
----
- drivers/tty/serial/sc16is7xx.c | 2 ++
- 1 file changed, 2 insertions(+)
-
---- a/drivers/tty/serial/sc16is7xx.c
-+++ b/drivers/tty/serial/sc16is7xx.c
-@@ -783,6 +783,8 @@ static bool sc16is7xx_port_irq(struct sc
-
- if (rxlen)
- sc16is7xx_handle_rx(port, rxlen, iir);
-+ else
-+ return false;
- break;
- /* CTSRTS interrupt comes only when CTS goes inactive */
- case SC16IS7XX_IIR_CTSRTS_SRC:
diff --git a/target/linux/bcm27xx/patches-6.1/950-0149-Update-issue-templates-2736.patch b/target/linux/bcm27xx/patches-6.1/950-0149-Update-issue-templates-2736.patch
deleted file mode 100644
index c394b48981..0000000000
--- a/target/linux/bcm27xx/patches-6.1/950-0149-Update-issue-templates-2736.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-From f1457e83cd211ef7c8c90e9a69d044366621c83f Mon Sep 17 00:00:00 2001
-From: James Hughes
-Date: Fri, 2 Nov 2018 11:55:49 +0000
-Subject: [PATCH] Update issue templates (#2736)
-
----
- .github/ISSUE_TEMPLATE/bug_report.md | 34 ++++++++++++++++++++++++++++
- 1 file changed, 34 insertions(+)
- create mode 100644 .github/ISSUE_TEMPLATE/bug_report.md
-
---- /dev/null
-+++ b/.github/ISSUE_TEMPLATE/bug_report.md
-@@ -0,0 +1,34 @@
-+---
-+name: Bug report
-+about: Create a report to help us fix your issue
-+
-+---
-+
-+**Is this the right place for my bug report?**
-+This repository contains the Linux kernel used on the Raspberry Pi. If you believe that the issue you are seeing is kernel-related, this is the right place. If not, we have other repositories for the GPU firmware at [github.com/raspberrypi/firmware](https://github.com/raspberrypi/firmware) and Raspberry Pi userland applications at [github.com/raspberrypi/userland](https://github.com/raspberrypi/userland). If you have problems with the Raspbian distribution packages, report them in the [github.com/RPi-Distro/repo](https://github.com/RPi-Distro/repo). If you simply have a question, then [the Raspberry Pi forums](https://www.raspberrypi.org/forums) are the best place to ask it.
-+
-+**Describe the bug**
-+Add a clear and concise description of what you think the bug is.
-+
-+**To reproduce**
-+List the steps required to reproduce the issue.
-+
-+**Expected behaviour**
-+Add a clear and concise description of what you expected to happen.
-+
-+**Actual behaviour**
-+Add a clear and concise description of what actually happened.
-+
-+**System**
-+ Copy and paste the results of the raspinfo command in to this section. Alternatively, copy and paste a pastebin link, or add answers to the following questions:
-+
-+* Which model of Raspberry Pi? e.g. Pi3B+, PiZeroW
-+* Which OS and version (`cat /etc/rpi-issue`)?
-+* Which firmware version (`vcgencmd version`)?
-+* Which kernel version (`uname -a`)?
-+
-+**Logs**
-+If applicable, add the relevant output from `dmesg` or similar.
-+
-+**Additional context**
-+Add any other relevant context for the problem.
diff --git a/target/linux/bcm27xx/patches-6.1/950-0179-bcmgenet-Better-coalescing-parameter-defaults.patch b/target/linux/bcm27xx/patches-6.1/950-0179-bcmgenet-Better-coalescing-parameter-defaults.patch
index 4fc97de544..b805f1df30 100644
--- a/target/linux/bcm27xx/patches-6.1/950-0179-bcmgenet-Better-coalescing-parameter-defaults.patch
+++ b/target/linux/bcm27xx/patches-6.1/950-0179-bcmgenet-Better-coalescing-parameter-defaults.patch
@@ -18,7 +18,7 @@ Signed-off-by: Phil Elwell
--- a/drivers/net/ethernet/broadcom/genet/bcmgenet.c
+++ b/drivers/net/ethernet/broadcom/genet/bcmgenet.c
-@@ -2657,7 +2657,7 @@ static void bcmgenet_init_tx_ring(struct
+@@ -2659,7 +2659,7 @@ static void bcmgenet_init_tx_ring(struct
bcmgenet_tdma_ring_writel(priv, index, 0, TDMA_PROD_INDEX);
bcmgenet_tdma_ring_writel(priv, index, 0, TDMA_CONS_INDEX);
@@ -27,7 +27,7 @@ Signed-off-by: Phil Elwell
/* Disable rate control for now */
bcmgenet_tdma_ring_writel(priv, index, flow_period_val,
TDMA_FLOW_PERIOD);
-@@ -4138,9 +4138,12 @@ static int bcmgenet_probe(struct platfor
+@@ -4140,9 +4140,12 @@ static int bcmgenet_probe(struct platfor
netif_set_real_num_rx_queues(priv->dev, priv->hw_params->rx_queues + 1);
/* Set default coalescing parameters */
diff --git a/target/linux/bcm27xx/patches-6.1/950-0189-net-bcmgenet-Workaround-2-for-Pi4-Ethernet-fail.patch b/target/linux/bcm27xx/patches-6.1/950-0189-net-bcmgenet-Workaround-2-for-Pi4-Ethernet-fail.patch
index ba1baac7d0..da60efe07f 100644
--- a/target/linux/bcm27xx/patches-6.1/950-0189-net-bcmgenet-Workaround-2-for-Pi4-Ethernet-fail.patch
+++ b/target/linux/bcm27xx/patches-6.1/950-0189-net-bcmgenet-Workaround-2-for-Pi4-Ethernet-fail.patch
@@ -37,7 +37,7 @@ Signed-off-by: Phil Elwell
static inline void bcmgenet_writel(u32 value, void __iomem *offset)
{
-@@ -2488,6 +2491,11 @@ static void reset_umac(struct bcmgenet_p
+@@ -2490,6 +2493,11 @@ static void reset_umac(struct bcmgenet_p
bcmgenet_rbuf_ctrl_set(priv, 0);
udelay(10);
diff --git a/target/linux/bcm27xx/patches-6.1/950-0195-media-i2c-imx477-Support-for-the-Sony-IMX477-sensor.patch b/target/linux/bcm27xx/patches-6.1/950-0195-media-i2c-imx477-Support-for-the-Sony-IMX477-sensor.patch
index dc2e539f3a..89d7b4eea9 100644
--- a/target/linux/bcm27xx/patches-6.1/950-0195-media-i2c-imx477-Support-for-the-Sony-IMX477-sensor.patch
+++ b/target/linux/bcm27xx/patches-6.1/950-0195-media-i2c-imx477-Support-for-the-Sony-IMX477-sensor.patch
@@ -343,7 +343,7 @@ Signed-off-by: Naushir Patuck
+...
--- a/MAINTAINERS
+++ b/MAINTAINERS
-@@ -19279,6 +19279,14 @@ T: git git://linuxtv.org/media_tree.git
+@@ -19281,6 +19281,14 @@ T: git git://linuxtv.org/media_tree.git
F: Documentation/devicetree/bindings/media/i2c/sony,imx412.yaml
F: drivers/media/i2c/imx412.c
diff --git a/target/linux/bcm27xx/patches-6.1/950-0196-media-i2c-imx519-Support-for-the-Sony-IMX519-sensor.patch b/target/linux/bcm27xx/patches-6.1/950-0196-media-i2c-imx519-Support-for-the-Sony-IMX519-sensor.patch
index 8ba6f7e5fc..a7cf1bb1f2 100644
--- a/target/linux/bcm27xx/patches-6.1/950-0196-media-i2c-imx519-Support-for-the-Sony-IMX519-sensor.patch
+++ b/target/linux/bcm27xx/patches-6.1/950-0196-media-i2c-imx519-Support-for-the-Sony-IMX519-sensor.patch
@@ -177,7 +177,7 @@ Signed-off-by: Phil Elwell
+...
--- a/MAINTAINERS
+++ b/MAINTAINERS
-@@ -19287,6 +19287,14 @@ T: git git://linuxtv.org/media_tree.git
+@@ -19289,6 +19289,14 @@ T: git git://linuxtv.org/media_tree.git
F: Documentation/devicetree/bindings/media/i2c/imx477.yaml
F: drivers/media/i2c/imx477.c
diff --git a/target/linux/bcm27xx/patches-6.1/950-0197-Documentation-devicetree-Add-documentation-for-imx37.patch b/target/linux/bcm27xx/patches-6.1/950-0197-Documentation-devicetree-Add-documentation-for-imx37.patch
index e564af578e..03628b3e9f 100644
--- a/target/linux/bcm27xx/patches-6.1/950-0197-Documentation-devicetree-Add-documentation-for-imx37.patch
+++ b/target/linux/bcm27xx/patches-6.1/950-0197-Documentation-devicetree-Add-documentation-for-imx37.patch
@@ -132,7 +132,7 @@ Signed-off-by: David Plowman
+...
--- a/MAINTAINERS
+++ b/MAINTAINERS
-@@ -19284,6 +19284,7 @@ M: Raspberry Pi Kernel Maintenance
--- a/drivers/spi/spi.c
+++ b/drivers/spi/spi.c
-@@ -3633,6 +3633,7 @@ static int __spi_validate_bits_per_word(
+@@ -3675,6 +3675,7 @@ static int spi_set_cs_timing(struct spi_
*/
int spi_setup(struct spi_device *spi)
{
@@ -40,7 +40,7 @@ Signed-off-by: Phil Elwell
unsigned bad_bits, ugly_bits;
int status = 0;
-@@ -3653,6 +3654,14 @@ int spi_setup(struct spi_device *spi)
+@@ -3695,6 +3696,14 @@ int spi_setup(struct spi_device *spi)
(SPI_TX_DUAL | SPI_TX_QUAD | SPI_TX_OCTAL |
SPI_RX_DUAL | SPI_RX_QUAD | SPI_RX_OCTAL)))
return -EINVAL;
diff --git a/target/linux/bcm27xx/patches-6.1/950-0270-net-bcmgenet-Reset-RBUF-on-first-open.patch b/target/linux/bcm27xx/patches-6.1/950-0270-net-bcmgenet-Reset-RBUF-on-first-open.patch
index 0c71db2d00..e21de6f79f 100644
--- a/target/linux/bcm27xx/patches-6.1/950-0270-net-bcmgenet-Reset-RBUF-on-first-open.patch
+++ b/target/linux/bcm27xx/patches-6.1/950-0270-net-bcmgenet-Reset-RBUF-on-first-open.patch
@@ -24,7 +24,7 @@ Signed-off-by: Phil Elwell
--- a/drivers/net/ethernet/broadcom/genet/bcmgenet.c
+++ b/drivers/net/ethernet/broadcom/genet/bcmgenet.c
-@@ -3304,7 +3304,7 @@ static void bcmgenet_get_hw_addr(struct
+@@ -3306,7 +3306,7 @@ static void bcmgenet_get_hw_addr(struct
}
/* Returns a reusable dma control register value */
@@ -33,7 +33,7 @@ Signed-off-by: Phil Elwell
{
unsigned int i;
u32 reg;
-@@ -3329,6 +3329,14 @@ static u32 bcmgenet_dma_disable(struct b
+@@ -3331,6 +3331,14 @@ static u32 bcmgenet_dma_disable(struct b
udelay(10);
bcmgenet_umac_writel(priv, 0, UMAC_TX_FLUSH);
@@ -48,7 +48,7 @@ Signed-off-by: Phil Elwell
return dma_ctrl;
}
-@@ -3392,8 +3400,8 @@ static int bcmgenet_open(struct net_devi
+@@ -3394,8 +3402,8 @@ static int bcmgenet_open(struct net_devi
bcmgenet_set_hw_addr(priv, dev->dev_addr);
@@ -59,7 +59,7 @@ Signed-off-by: Phil Elwell
/* Reinitialize TDMA and RDMA and SW housekeeping */
ret = bcmgenet_init_dma(priv);
-@@ -4267,7 +4275,7 @@ static int bcmgenet_resume(struct device
+@@ -4269,7 +4277,7 @@ static int bcmgenet_resume(struct device
bcmgenet_hfb_create_rxnfc_filter(priv, rule);
/* Disable RX/TX DMA and flush TX queues */
diff --git a/target/linux/bcm27xx/patches-6.1/950-0368-Use-GitHubs-issue-form-for-bug-reports.patch b/target/linux/bcm27xx/patches-6.1/950-0368-Use-GitHubs-issue-form-for-bug-reports.patch
deleted file mode 100644
index 7d08793af6..0000000000
--- a/target/linux/bcm27xx/patches-6.1/950-0368-Use-GitHubs-issue-form-for-bug-reports.patch
+++ /dev/null
@@ -1,163 +0,0 @@
-From b9bf4e573a1e07ef999636cdb61f393df61cc447 Mon Sep 17 00:00:00 2001
-From: Andreas Blaesius
-Date: Wed, 5 Jan 2022 20:38:39 +0100
-Subject: [PATCH] Use GitHubs issue form for bug reports
-
-Use GitHubs issue form for bug reports.
-
-- modern look
-- user don't need to mess with given markdown parts while filling the issue template
-
-Setup config.yml for general questions and problems with the Raspbian distribution packages.
----
- .github/ISSUE_TEMPLATE/bug_report.md | 34 ----------
- .github/ISSUE_TEMPLATE/bug_report.yml | 91 +++++++++++++++++++++++++++
- .github/ISSUE_TEMPLATE/config.yml | 9 +++
- 3 files changed, 100 insertions(+), 34 deletions(-)
- delete mode 100644 .github/ISSUE_TEMPLATE/bug_report.md
- create mode 100644 .github/ISSUE_TEMPLATE/bug_report.yml
- create mode 100644 .github/ISSUE_TEMPLATE/config.yml
-
---- a/.github/ISSUE_TEMPLATE/bug_report.md
-+++ /dev/null
-@@ -1,34 +0,0 @@
-----
--name: Bug report
--about: Create a report to help us fix your issue
--
-----
--
--**Is this the right place for my bug report?**
--This repository contains the Linux kernel used on the Raspberry Pi. If you believe that the issue you are seeing is kernel-related, this is the right place. If not, we have other repositories for the GPU firmware at [github.com/raspberrypi/firmware](https://github.com/raspberrypi/firmware) and Raspberry Pi userland applications at [github.com/raspberrypi/userland](https://github.com/raspberrypi/userland). If you have problems with the Raspbian distribution packages, report them in the [github.com/RPi-Distro/repo](https://github.com/RPi-Distro/repo). If you simply have a question, then [the Raspberry Pi forums](https://www.raspberrypi.org/forums) are the best place to ask it.
--
--**Describe the bug**
--Add a clear and concise description of what you think the bug is.
--
--**To reproduce**
--List the steps required to reproduce the issue.
--
--**Expected behaviour**
--Add a clear and concise description of what you expected to happen.
--
--**Actual behaviour**
--Add a clear and concise description of what actually happened.
--
--**System**
-- Copy and paste the results of the raspinfo command in to this section. Alternatively, copy and paste a pastebin link, or add answers to the following questions:
--
--* Which model of Raspberry Pi? e.g. Pi3B+, PiZeroW
--* Which OS and version (`cat /etc/rpi-issue`)?
--* Which firmware version (`vcgencmd version`)?
--* Which kernel version (`uname -a`)?
--
--**Logs**
--If applicable, add the relevant output from `dmesg` or similar.
--
--**Additional context**
--Add any other relevant context for the problem.
---- /dev/null
-+++ b/.github/ISSUE_TEMPLATE/bug_report.yml
-@@ -0,0 +1,91 @@
-+name: "Bug report"
-+description: Create a report to help us fix your issue
-+body:
-+- type: markdown
-+ attributes:
-+ value: |
-+ **Is this the right place for my bug report?**
-+ This repository contains the Linux kernel used on the Raspberry Pi.
-+ If you believe that the issue you are seeing is kernel-related, this is the right place.
-+ If not, we have other repositories for the GPU firmware at [github.com/raspberrypi/firmware](https://github.com/raspberrypi/firmware) and Raspberry Pi userland applications at [github.com/raspberrypi/userland](https://github.com/raspberrypi/userland).
-+
-+ If you have problems with the Raspbian distribution packages, report them in the [github.com/RPi-Distro/repo](https://github.com/RPi-Distro/repo).
-+ If you simply have a question, then [the Raspberry Pi forums](https://www.raspberrypi.org/forums) are the best place to ask it.
-+
-+- type: textarea
-+ id: description
-+ attributes:
-+ label: Describe the bug
-+ description: |
-+ Add a clear and concise description of what you think the bug is.
-+ validations:
-+ required: true
-+
-+- type: textarea
-+ id: reproduce
-+ attributes:
-+ label: Steps to reproduce the behaviour
-+ description: |
-+ List the steps required to reproduce the issue.
-+ validations:
-+ required: true
-+
-+- type: dropdown
-+ id: model
-+ attributes:
-+ label: Device (s)
-+ description: On which device you are facing the bug?
-+ multiple: true
-+ options:
-+ - Raspberry Pi Zero
-+ - Raspberry Pi Zero W / WH
-+ - Raspberry Pi Zero 2 W
-+ - Raspberry Pi 1 Mod. A
-+ - Raspberry Pi 1 Mod. A+
-+ - Raspberry Pi 1 Mod. B
-+ - Raspberry Pi 1 Mod. B+
-+ - Raspberry Pi 2 Mod. B
-+ - Raspberry Pi 2 Mod. B v1.2
-+ - Raspberry Pi 3 Mod. A+
-+ - Raspberry Pi 3 Mod. B
-+ - Raspberry Pi 3 Mod. B+
-+ - Raspberry Pi 4 Mod. B
-+ - Raspberry Pi 400
-+ - Raspberry Pi CM1
-+ - Raspberry Pi CM3
-+ - Raspberry Pi CM3 Lite
-+ - Raspberry Pi CM3+
-+ - Raspberry Pi CM3+ Lite
-+ - Raspberry Pi CM4
-+ - Raspberry Pi CM4 Lite
-+ - Other
-+ validations:
-+ required: true
-+
-+- type: textarea
-+ id: system
-+ attributes:
-+ label: System
-+ description: |
-+ Copy and paste the results of the raspinfo command in to this section.
-+ Alternatively, copy and paste a pastebin link, or add answers to the following questions:
-+ * Which OS and version (`cat /etc/rpi-issue`)?
-+ * Which firmware version (`vcgencmd version`)?
-+ * Which kernel version (`uname -a`)?
-+ validations:
-+ required: true
-+
-+- type: textarea
-+ id: logs
-+ attributes:
-+ label: Logs
-+ description: |
-+ If applicable, add the relevant output from `dmesg` or similar.
-+
-+- type: textarea
-+ id: additional
-+ attributes:
-+ label: Additional context
-+ description: |
-+ Add any other relevant context for the problem.
-+
---- /dev/null
-+++ b/.github/ISSUE_TEMPLATE/config.yml
-@@ -0,0 +1,9 @@
-+blank_issues_enabled: false
-+contact_links:
-+ - name: "⛔ Question"
-+ url: https://www.raspberrypi.org/forums
-+ about: "Please do not use GitHub for asking questions. If you simply have a question, then the Raspberry Pi forums are the best place to ask it. Thanks in advance for helping us keep the issue tracker clean!"
-+ - name: "⛔ Problems with the Raspbian distribution packages"
-+ url: https://github.com/RPi-Distro/repo
-+ about: "If you have problems with the Raspbian distribution packages, please report them in the github.com/RPi-Distro/repo."
-+
diff --git a/target/linux/bcm27xx/patches-6.1/950-0418-mmc-block-Don-t-do-single-sector-reads-during-recove.patch b/target/linux/bcm27xx/patches-6.1/950-0418-mmc-block-Don-t-do-single-sector-reads-during-recove.patch
index de9378f79a..0335f00198 100644
--- a/target/linux/bcm27xx/patches-6.1/950-0418-mmc-block-Don-t-do-single-sector-reads-during-recove.patch
+++ b/target/linux/bcm27xx/patches-6.1/950-0418-mmc-block-Don-t-do-single-sector-reads-during-recove.patch
@@ -23,7 +23,7 @@ Signed-off-by: Jonathan Bell
--- a/drivers/mmc/core/block.c
+++ b/drivers/mmc/core/block.c
-@@ -1928,7 +1928,7 @@ static void mmc_blk_mq_rw_recovery(struc
+@@ -1930,7 +1930,7 @@ static void mmc_blk_mq_rw_recovery(struc
return;
}
diff --git a/target/linux/bcm27xx/patches-6.1/950-0506-.github-Add-Github-Workflow-for-KUnit.patch b/target/linux/bcm27xx/patches-6.1/950-0506-.github-Add-Github-Workflow-for-KUnit.patch
deleted file mode 100644
index bb3c3f160a..0000000000
--- a/target/linux/bcm27xx/patches-6.1/950-0506-.github-Add-Github-Workflow-for-KUnit.patch
+++ /dev/null
@@ -1,74 +0,0 @@
-From d172f330087422b8f33ad5e0f60f903820e7b321 Mon Sep 17 00:00:00 2001
-From: Maxime Ripard
-Date: Thu, 8 Dec 2022 13:17:42 +0100
-Subject: [PATCH] .github: Add Github Workflow for KUnit
-
-Now that we have some KUnit coverage, let's add a github actions file to
-run them on each push or pull request.
-
-Signed-off-by: Maxime Ripard
----
- .github/workflows/kunit.yml | 57 +++++++++++++++++++++++++++++++++++++
- 1 file changed, 57 insertions(+)
- create mode 100644 .github/workflows/kunit.yml
-
---- /dev/null
-+++ b/.github/workflows/kunit.yml
-@@ -0,0 +1,57 @@
-+name: KUnit Tests
-+
-+on:
-+ pull_request:
-+ branches: [ "rpi-*"]
-+
-+ push:
-+ branches: [ "rpi-*"]
-+
-+jobs:
-+ core:
-+ name: Generic DRM/KMS Unit Tests
-+ runs-on: ubuntu-latest
-+
-+ steps:
-+ - uses: actions/checkout@v3
-+
-+ - name: Run Generic DRM Tests
-+ run: |
-+ ./tools/testing/kunit/kunit.py run \
-+ --kunitconfig=drivers/gpu/drm/tests
-+
-+ vc4-arm:
-+ name: VC4 Unit Tests on ARM
-+ runs-on: ubuntu-latest
-+
-+ steps:
-+ - uses: actions/checkout@v3
-+
-+ - name: Install Dependencies
-+ run: |
-+ sudo apt-get update
-+ sudo apt-get install -y gcc-arm-linux-gnueabihf qemu-system-arm
-+
-+ - name: Run VC4 Tests
-+ run: |
-+ ./tools/testing/kunit/kunit.py run \
-+ --kunitconfig=drivers/gpu/drm/vc4/tests \
-+ --cross_compile=arm-linux-gnueabihf- --arch=arm
-+
-+ vc4-arm64:
-+ name: VC4 Unit Tests on ARM64
-+ runs-on: ubuntu-latest
-+
-+ steps:
-+ - uses: actions/checkout@v3
-+
-+ - name: Install Dependencies
-+ run: |
-+ sudo apt-get update
-+ sudo apt-get install -y gcc-aarch64-linux-gnu qemu-system-arm
-+
-+ - name: Run VC4 Tests
-+ run: |
-+ ./tools/testing/kunit/kunit.py run \
-+ --kunitconfig=drivers/gpu/drm/vc4/tests \
-+ --cross_compile=aarch64-linux-gnu- --arch=arm64
diff --git a/target/linux/bcm27xx/patches-6.1/950-0507-.github-workflows-Add-dtoverlaycheck-workflow.patch b/target/linux/bcm27xx/patches-6.1/950-0507-.github-workflows-Add-dtoverlaycheck-workflow.patch
deleted file mode 100644
index 92a7b7edf4..0000000000
--- a/target/linux/bcm27xx/patches-6.1/950-0507-.github-workflows-Add-dtoverlaycheck-workflow.patch
+++ /dev/null
@@ -1,62 +0,0 @@
-From 4aec59014afc64d912502d70194a8823b0a6150a Mon Sep 17 00:00:00 2001
-From: Dave Stevenson
-Date: Tue, 6 Dec 2022 18:11:58 +0000
-Subject: [PATCH] .github/workflows: Add dtoverlaycheck workflow
-
-Signed-off-by: Dave Stevenson
----
- .github/workflows/dtoverlaycheck.yml | 48 ++++++++++++++++++++++++++++
- 1 file changed, 48 insertions(+)
- create mode 100644 .github/workflows/dtoverlaycheck.yml
-
---- /dev/null
-+++ b/.github/workflows/dtoverlaycheck.yml
-@@ -0,0 +1,48 @@
-+name: Pi dtoverlay checks
-+
-+on:
-+ pull_request:
-+ paths-ignore:
-+ - '.github/**'
-+ branches: [ "rpi-*" ]
-+ push:
-+ paths-ignore:
-+ - '.github/**'
-+ branches: [ "rpi-*" ]
-+ workflow_dispatch:
-+
-+env:
-+ UTILS_DIR: "${{github.workspace}}/utils"
-+
-+jobs:
-+ dtoverlaycheck:
-+ runs-on: ubuntu-latest
-+
-+ steps:
-+ - name: Install toolchain
-+ run: |
-+ sudo apt update
-+ sudo apt-get install gcc-arm-linux-gnueabihf libfdt-dev device-tree-compiler
-+ timeout-minutes: 10
-+
-+ - uses: actions/checkout@v3
-+ with:
-+ fetch-depth: 1
-+ clean: true
-+
-+ - name: overlaycheck
-+ run: |
-+ git clone https://github.com/raspberrypi/utils ${{env.UTILS_DIR}}
-+ cd ${{env.UTILS_DIR}}
-+ pwd
-+ mkdir build
-+ cd build
-+ pwd
-+ cmake ..
-+ make -j4
-+ sudo make install
-+ cd ${{github.workspace}}
-+ pwd
-+ make ARCH=arm KERNEL=kernel CROSS_COMPILE=arm-linux-gnueabihf- bcm2711_defconfig
-+ make ARCH=arm KERNEL=kernel CROSS_COMPILE=arm-linux-gnueabihf- dtbs
-+ ${{env.UTILS_DIR}}/overlaycheck/overlaycheck
diff --git a/target/linux/bcm27xx/patches-6.1/950-0508-.github-workflows-Create-workflow-to-CI-kernel-build.patch b/target/linux/bcm27xx/patches-6.1/950-0508-.github-workflows-Create-workflow-to-CI-kernel-build.patch
deleted file mode 100644
index 101f6dafca..0000000000
--- a/target/linux/bcm27xx/patches-6.1/950-0508-.github-workflows-Create-workflow-to-CI-kernel-build.patch
+++ /dev/null
@@ -1,285 +0,0 @@
-From baa2e8235af7143148d8799c5caed2a2eefd9107 Mon Sep 17 00:00:00 2001
-From: Dave Stevenson
-Date: Fri, 11 Nov 2022 17:09:32 +0000
-Subject: [PATCH] .github/workflows: Create workflow to CI kernel
- builds
-
-Builds the bcmrpi, bcm2709, bcm2711, and bcm2835 32 bit kernels,
-and defconfig and bcm2711 64bit kernels, saving the artifacts for
-7 days.
-
-Signed-off-by: Dave Stevenson
----
- .github/workflows/kernel-build.yml | 266 +++++++++++++++++++++++++++++
- 1 file changed, 266 insertions(+)
- create mode 100644 .github/workflows/kernel-build.yml
-
---- /dev/null
-+++ b/.github/workflows/kernel-build.yml
-@@ -0,0 +1,266 @@
-+name: Pi kernel build tests
-+
-+on:
-+ pull_request:
-+ paths-ignore:
-+ - '.github/**'
-+ branches: [ "rpi-*" ]
-+ push:
-+ paths-ignore:
-+ - '.github/**'
-+ branches: [ "rpi-*" ]
-+ workflow_dispatch:
-+
-+env:
-+ NUM_JOBS: 3
-+
-+jobs:
-+ build-bcm2835:
-+
-+ runs-on: ubuntu-latest
-+
-+ steps:
-+ - name: Update install
-+ run:
-+ sudo apt-get update
-+
-+ - name: Install toolchain
-+ run:
-+ sudo apt-get install gcc-arm-linux-gnueabihf
-+ timeout-minutes: 5
-+
-+ - uses: actions/checkout@v3
-+ with:
-+ fetch-depth: 1
-+ clean: true
-+
-+ - name: Build kernel
-+ run: |
-+ mkdir ${{github.workspace}}/build
-+ make ARCH=arm KERNEL=kernel CROSS_COMPILE=arm-linux-gnueabihf- O=${{github.workspace}}/build bcm2835_defconfig
-+ make ARCH=arm KERNEL=kernel CROSS_COMPILE=arm-linux-gnueabihf- O=${{github.workspace}}/build -j ${{env.NUM_JOBS}} Image modules dtbs
-+ mkdir -p ${{github.workspace}}/install/boot
-+ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- O=${{github.workspace}}/build INSTALL_MOD_PATH=${{github.workspace}}/install modules_install
-+ cp ${{github.workspace}}/build/arch/arm/boot/dts/*.dtb ${{github.workspace}}/install/boot/
-+ cp -r ${{github.workspace}}/build/arch/arm/boot/dts/overlays/*.dtb* ${{github.workspace}}/install/boot/
-+ cp ${{github.workspace}}/build/arch/arm/boot/Image ${{github.workspace}}/install/boot/
-+
-+ - name: Tar build
-+ run: tar -cvf bcm2835_build.tar -C ${{github.workspace}}/install .
-+
-+ - name: Upload results
-+ uses: actions/upload-artifact@v3
-+ with:
-+ name: bcm2835_build
-+ path: bcm2835_build.tar
-+ retention-days: 7
-+
-+ build-arm64:
-+
-+ runs-on: ubuntu-latest
-+
-+ steps:
-+ - name: Update install
-+ run:
-+ sudo apt-get update
-+
-+ - name: Install toolchain
-+ run:
-+ sudo apt-get install gcc-aarch64-linux-gnu
-+ timeout-minutes: 5
-+
-+ - uses: actions/checkout@v3
-+ with:
-+ fetch-depth: 1
-+ clean: true
-+
-+ - name: Build kernel
-+ run: |
-+ mkdir ${{github.workspace}}/build
-+ make ARCH=arm64 KERNEL=kernel8 CROSS_COMPILE=aarch64-linux-gnu- O=${{github.workspace}}/build defconfig
-+ make ARCH=arm64 KERNEL=kernel8 CROSS_COMPILE=aarch64-linux-gnu- O=${{github.workspace}}/build -j ${{env.NUM_JOBS}} Image.gz modules dtbs
-+ mkdir -p ${{github.workspace}}/install/boot
-+ make ARCH=arm64 KERNEL=kernel8 CROSS_COMPILE=aarch64-linux-gnu- O=${{github.workspace}}/build INSTALL_MOD_PATH=${{github.workspace}}/install modules_install
-+ cp ${{github.workspace}}/build/arch/arm64/boot/dts/broadcom/*.dtb ${{github.workspace}}/install/boot/
-+ cp -r ${{github.workspace}}/build/arch/arm64/boot/dts/overlays/*.dtb* ${{github.workspace}}/install/boot/
-+ cp ${{github.workspace}}/build/arch/arm64/boot/Image.gz ${{github.workspace}}/install/boot/
-+
-+ - name: Tar build
-+ run: tar -cvf arm64_build.tar -C ${{github.workspace}}/install .
-+
-+ - name: Upload results
-+ uses: actions/upload-artifact@v3
-+ with:
-+ name: arm64_build
-+ path: arm64_build.tar
-+ retention-days: 7
-+
-+ build-bcmrpi:
-+
-+ runs-on: ubuntu-latest
-+
-+ steps:
-+ - name: Update install
-+ run:
-+ sudo apt-get update
-+
-+ - name: Install toolchain
-+ run:
-+ sudo apt-get install gcc-arm-linux-gnueabihf
-+ timeout-minutes: 5
-+
-+ - uses: actions/checkout@v3
-+ with:
-+ fetch-depth: 1
-+ clean: true
-+
-+ - name: Build kernel
-+ run: |
-+ mkdir ${{github.workspace}}/build
-+ make ARCH=arm KERNEL=kernel CROSS_COMPILE=arm-linux-gnueabihf- O=${{github.workspace}}/build bcm2711_defconfig
-+ make ARCH=arm KERNEL=kernel CROSS_COMPILE=arm-linux-gnueabihf- O=${{github.workspace}}/build -j ${{env.NUM_JOBS}} zImage modules dtbs
-+ mkdir -p ${{github.workspace}}/install/boot
-+ make ARCH=arm KERNEL=kernel CROSS_COMPILE=arm-linux-gnueabihf- O=${{github.workspace}}/build INSTALL_MOD_PATH=${{github.workspace}}/install modules_install
-+ cp ${{github.workspace}}/build/arch/arm/boot/dts/*.dtb ${{github.workspace}}/install/boot/
-+ cp -r ${{github.workspace}}/build/arch/arm/boot/dts/overlays/*.dtb* ${{github.workspace}}/install/boot/
-+ cp ${{github.workspace}}/build/arch/arm/boot/zImage ${{github.workspace}}/install/boot/
-+
-+ - name: Tar build
-+ run: tar -cvf bcmrpi_build.tar -C ${{github.workspace}}/install .
-+
-+ - name: Upload results
-+ uses: actions/upload-artifact@v3
-+ with:
-+ name: bcmrpi_build
-+ path: bcmrpi_build.tar
-+ retention-days: 7
-+
-+ build-bcm2709:
-+
-+ runs-on: ubuntu-latest
-+
-+ steps:
-+ - name: Update install
-+ run:
-+ sudo apt-get update
-+
-+ - name: Install toolchain
-+ run:
-+ sudo apt-get install gcc-arm-linux-gnueabihf
-+ timeout-minutes: 5
-+
-+ - uses: actions/checkout@v3
-+ with:
-+ fetch-depth: 1
-+ clean: true
-+
-+ - name: Build kernel
-+ run: |
-+ mkdir ${{github.workspace}}/build
-+ make ARCH=arm KERNEL=kernel7 CROSS_COMPILE=arm-linux-gnueabihf- O=${{github.workspace}}/build bcm2709_defconfig
-+ make ARCH=arm KERNEL=kernel7 CROSS_COMPILE=arm-linux-gnueabihf- O=${{github.workspace}}/build -j ${{env.NUM_JOBS}} zImage modules dtbs
-+ mkdir -p ${{github.workspace}}/install/boot
-+ make ARCH=arm KERNEL=kernel7 CROSS_COMPILE=arm-linux-gnueabihf- O=${{github.workspace}}/build INSTALL_MOD_PATH=${{github.workspace}}/install modules_install
-+ cp ${{github.workspace}}/build/arch/arm/boot/dts/*.dtb ${{github.workspace}}/install/boot/
-+ cp -r ${{github.workspace}}/build/arch/arm/boot/dts/overlays/*.dtb* ${{github.workspace}}/install/boot/
-+ cp ${{github.workspace}}/build/arch/arm/boot/zImage ${{github.workspace}}/install/boot/
-+
-+ - name: Tar build
-+ run: tar -cvf bcm2709_build.tar -C ${{github.workspace}}/install .
-+
-+ - name: Upload results
-+ uses: actions/upload-artifact@v3
-+ with:
-+ name: bcm2709_build
-+ path: bcm2709_build.tar
-+ retention-days: 7
-+
-+ build-bcm2711:
-+
-+ runs-on: ubuntu-latest
-+
-+ steps:
-+ - name: Update install
-+ run:
-+ sudo apt-get update
-+
-+ - name: Install toolchain
-+ run:
-+ sudo apt-get install gcc-arm-linux-gnueabihf
-+ timeout-minutes: 5
-+
-+ - uses: actions/checkout@v3
-+ with:
-+ fetch-depth: 1
-+ clean: true
-+
-+ - name: Build kernel
-+ run: |
-+ mkdir ${{github.workspace}}/build
-+ make ARCH=arm KERNEL=kernel7l CROSS_COMPILE=arm-linux-gnueabihf- O=${{github.workspace}}/build bcm2711_defconfig
-+ make ARCH=arm KERNEL=kernel7l CROSS_COMPILE=arm-linux-gnueabihf- O=${{github.workspace}}/build -j ${{env.NUM_JOBS}} zImage modules dtbs
-+ mkdir -p ${{github.workspace}}/install/boot
-+ make ARCH=arm KERNEL=kernel7l CROSS_COMPILE=arm-linux-gnueabihf- O=${{github.workspace}}/build INSTALL_MOD_PATH=${{github.workspace}}/install modules_install
-+ cp ${{github.workspace}}/build/arch/arm/boot/dts/*.dtb ${{github.workspace}}/install/boot/
-+ cp -r ${{github.workspace}}/build/arch/arm/boot/dts/overlays/*.dtb* ${{github.workspace}}/install/boot/
-+ cp ${{github.workspace}}/build/arch/arm/boot/zImage ${{github.workspace}}/install/boot/
-+
-+ - name: Tar build
-+ run: tar -cvf bcm2711_build.tar -C ${{github.workspace}}/install .
-+
-+ - name: Upload results
-+ uses: actions/upload-artifact@v3
-+ with:
-+ name: bcm2711_build
-+ path: bcm2711_build.tar
-+ retention-days: 7
-+
-+ build-bcm2711-arm64:
-+
-+ runs-on: ubuntu-latest
-+
-+ steps:
-+ - name: Update install
-+ run:
-+ sudo apt-get update
-+
-+ - name: Install toolchain
-+ run:
-+ sudo apt-get install gcc-arm-linux-gnueabihf
-+ timeout-minutes: 5
-+
-+ - uses: actions/checkout@v3
-+ with:
-+ fetch-depth: 1
-+ clean: true
-+
-+ - name: Install toolchain
-+ run:
-+ sudo apt-get install gcc-aarch64-linux-gnu
-+ timeout-minutes: 5
-+
-+ - uses: actions/checkout@v3
-+ with:
-+ fetch-depth: 1
-+ clean: true
-+
-+ - name: Build kernel
-+ run: |
-+ mkdir ${{github.workspace}}/build
-+ make ARCH=arm64 KERNEL=kernel8 CROSS_COMPILE=aarch64-linux-gnu- O=${{github.workspace}}/build bcm2711_defconfig
-+ make ARCH=arm64 KERNEL=kernel8 CROSS_COMPILE=aarch64-linux-gnu- O=${{github.workspace}}/build -j ${{env.NUM_JOBS}} Image.gz modules dtbs
-+ mkdir -p ${{github.workspace}}/install/boot
-+ make ARCH=arm64 KERNEL=kernel8 CROSS_COMPILE=aarch64-linux-gnu- O=${{github.workspace}}/build INSTALL_MOD_PATH=${{github.workspace}}/install modules_install
-+ cp ${{github.workspace}}/build/arch/arm64/boot/dts/broadcom/*.dtb ${{github.workspace}}/install/boot/
-+ cp -r ${{github.workspace}}/build/arch/arm64/boot/dts/overlays/*.dtb* ${{github.workspace}}/install/boot/
-+ cp ${{github.workspace}}/build/arch/arm64/boot/Image.gz ${{github.workspace}}/install/boot/
-+
-+ - name: Tar build
-+ run: tar -cvf bcm2711_arm64_build.tar -C ${{github.workspace}}/install .
-+
-+ - name: Upload results
-+ uses: actions/upload-artifact@v3
-+ with:
-+ name: bcm2711_arm64_build
-+ path: bcm2711_arm64_build.tar
-+ retention-days: 7
diff --git a/target/linux/bcm27xx/patches-6.1/950-0509-README-Add-README.md-with-CI-kernel-build-status-tag.patch b/target/linux/bcm27xx/patches-6.1/950-0509-README-Add-README.md-with-CI-kernel-build-status-tag.patch
deleted file mode 100644
index 610efdc8a7..0000000000
--- a/target/linux/bcm27xx/patches-6.1/950-0509-README-Add-README.md-with-CI-kernel-build-status-tag.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-From 81eebfa296eb1454cde3bf1cbd919f8b9eb6cf64 Mon Sep 17 00:00:00 2001
-From: Dave Stevenson
-Date: Mon, 14 Nov 2022 17:14:15 +0000
-Subject: [PATCH] README: Add README.md with CI kernel build status
- tags
-
-This is a copy of README with the tags added.
-
-You can not delete the file README as then checkpatch complains
-you aren't in a kernel tree.
-
-Signed-off-by: Dave Stevenson
----
- README.md | 30 ++++++++++++++++++++++++++++++
- 1 file changed, 30 insertions(+)
- create mode 100644 README.md
-
---- /dev/null
-+++ b/README.md
-@@ -0,0 +1,30 @@
-+Linux kernel
-+============
-+
-+There are several guides for kernel developers and users. These guides can
-+be rendered in a number of formats, like HTML and PDF. Please read
-+Documentation/admin-guide/README.rst first.
-+
-+In order to build the documentation, use ``make htmldocs`` or
-+``make pdfdocs``. The formatted documentation can also be read online at:
-+
-+ https://www.kernel.org/doc/html/latest/
-+
-+There are various text files in the Documentation/ subdirectory,
-+several of them using the Restructured Text markup notation.
-+
-+Please read the Documentation/process/changes.rst file, as it contains the
-+requirements for building and running the kernel, and information about
-+the problems which may result by upgrading your kernel.
-+
-+Build status for rpi-5.15.y:
-+[](https://github.com/raspberrypi/linux/actions/workflows/kernel-build.yml)
-+[](https://github.com/raspberrypi/linux/actions/workflows/dtoverlaycheck.yml)
-+
-+Build status for rpi-6.0.y:
-+[](https://github.com/raspberrypi/linux/actions/workflows/kernel-build.yml)
-+[](https://github.com/raspberrypi/linux/actions/workflows/dtoverlaycheck.yml)
-+
-+Build status for rpi-6.1.y:
-+[](https://github.com/raspberrypi/linux/actions/workflows/kernel-build.yml)
-+[](https://github.com/raspberrypi/linux/actions/workflows/dtoverlaycheck.yml)
diff --git a/target/linux/bcm27xx/patches-6.1/950-0513-net-bcmgenet-Add-eee-module-parameter.patch b/target/linux/bcm27xx/patches-6.1/950-0513-net-bcmgenet-Add-eee-module-parameter.patch
index a145f6c48f..cd9820fc9d 100644
--- a/target/linux/bcm27xx/patches-6.1/950-0513-net-bcmgenet-Add-eee-module-parameter.patch
+++ b/target/linux/bcm27xx/patches-6.1/950-0513-net-bcmgenet-Add-eee-module-parameter.patch
@@ -26,7 +26,7 @@ Signed-off-by: Phil Elwell
static inline void bcmgenet_writel(u32 value, void __iomem *offset)
{
-@@ -3438,6 +3441,17 @@ static int bcmgenet_open(struct net_devi
+@@ -3440,6 +3443,17 @@ static int bcmgenet_open(struct net_devi
bcmgenet_phy_pause_set(dev, priv->rx_pause, priv->tx_pause);
diff --git a/target/linux/bcm27xx/patches-6.1/950-0528-dtbindings-media-i2c-Add-IMX708-CMOS-sensor-binding.patch b/target/linux/bcm27xx/patches-6.1/950-0528-dtbindings-media-i2c-Add-IMX708-CMOS-sensor-binding.patch
index 2e6188af4b..6e51500140 100644
--- a/target/linux/bcm27xx/patches-6.1/950-0528-dtbindings-media-i2c-Add-IMX708-CMOS-sensor-binding.patch
+++ b/target/linux/bcm27xx/patches-6.1/950-0528-dtbindings-media-i2c-Add-IMX708-CMOS-sensor-binding.patch
@@ -138,7 +138,7 @@ Signed-off-by: Dave Stevenson
+...
--- a/MAINTAINERS
+++ b/MAINTAINERS
-@@ -19328,6 +19328,14 @@ T: git git://linuxtv.org/media_tree.git
+@@ -19330,6 +19330,14 @@ T: git git://linuxtv.org/media_tree.git
F: Documentation/devicetree/bindings/media/i2c/imx519.yaml
F: drivers/media/i2c/imx519.c
diff --git a/target/linux/bcm27xx/patches-6.1/950-0538-.github-workflows-Set-warnings-as-errors-for-builds.patch b/target/linux/bcm27xx/patches-6.1/950-0538-.github-workflows-Set-warnings-as-errors-for-builds.patch
deleted file mode 100644
index f880a637c1..0000000000
--- a/target/linux/bcm27xx/patches-6.1/950-0538-.github-workflows-Set-warnings-as-errors-for-builds.patch
+++ /dev/null
@@ -1,63 +0,0 @@
-From 0a1c5c32cfe570a688a09c90ab16052fcb258342 Mon Sep 17 00:00:00 2001
-From: Phil Elwell
-Date: Fri, 13 Jan 2023 14:32:45 +0000
-Subject: [PATCH] .github/workflows: Set warnings-as-errors for builds
-
-To avoid code with build warnings being introduced into the tree, force
-CONFIG_WERROR=y in the build workflow.
-
-Signed-off-by: Phil Elwell
----
- .github/workflows/kernel-build.yml | 6 ++++++
- 1 file changed, 6 insertions(+)
-
---- a/.github/workflows/kernel-build.yml
-+++ b/.github/workflows/kernel-build.yml
-@@ -38,6 +38,7 @@ jobs:
- run: |
- mkdir ${{github.workspace}}/build
- make ARCH=arm KERNEL=kernel CROSS_COMPILE=arm-linux-gnueabihf- O=${{github.workspace}}/build bcm2835_defconfig
-+ scripts/config --file ${{github.workspace}}/build/.config --set-val CONFIG_WERROR y
- make ARCH=arm KERNEL=kernel CROSS_COMPILE=arm-linux-gnueabihf- O=${{github.workspace}}/build -j ${{env.NUM_JOBS}} Image modules dtbs
- mkdir -p ${{github.workspace}}/install/boot
- make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- O=${{github.workspace}}/build INSTALL_MOD_PATH=${{github.workspace}}/install modules_install
-@@ -78,6 +79,7 @@ jobs:
- run: |
- mkdir ${{github.workspace}}/build
- make ARCH=arm64 KERNEL=kernel8 CROSS_COMPILE=aarch64-linux-gnu- O=${{github.workspace}}/build defconfig
-+ scripts/config --file ${{github.workspace}}/build/.config --set-val CONFIG_WERROR y
- make ARCH=arm64 KERNEL=kernel8 CROSS_COMPILE=aarch64-linux-gnu- O=${{github.workspace}}/build -j ${{env.NUM_JOBS}} Image.gz modules dtbs
- mkdir -p ${{github.workspace}}/install/boot
- make ARCH=arm64 KERNEL=kernel8 CROSS_COMPILE=aarch64-linux-gnu- O=${{github.workspace}}/build INSTALL_MOD_PATH=${{github.workspace}}/install modules_install
-@@ -118,6 +120,7 @@ jobs:
- run: |
- mkdir ${{github.workspace}}/build
- make ARCH=arm KERNEL=kernel CROSS_COMPILE=arm-linux-gnueabihf- O=${{github.workspace}}/build bcm2711_defconfig
-+ scripts/config --file ${{github.workspace}}/build/.config --set-val CONFIG_WERROR y
- make ARCH=arm KERNEL=kernel CROSS_COMPILE=arm-linux-gnueabihf- O=${{github.workspace}}/build -j ${{env.NUM_JOBS}} zImage modules dtbs
- mkdir -p ${{github.workspace}}/install/boot
- make ARCH=arm KERNEL=kernel CROSS_COMPILE=arm-linux-gnueabihf- O=${{github.workspace}}/build INSTALL_MOD_PATH=${{github.workspace}}/install modules_install
-@@ -158,6 +161,7 @@ jobs:
- run: |
- mkdir ${{github.workspace}}/build
- make ARCH=arm KERNEL=kernel7 CROSS_COMPILE=arm-linux-gnueabihf- O=${{github.workspace}}/build bcm2709_defconfig
-+ scripts/config --file ${{github.workspace}}/build/.config --set-val CONFIG_WERROR y
- make ARCH=arm KERNEL=kernel7 CROSS_COMPILE=arm-linux-gnueabihf- O=${{github.workspace}}/build -j ${{env.NUM_JOBS}} zImage modules dtbs
- mkdir -p ${{github.workspace}}/install/boot
- make ARCH=arm KERNEL=kernel7 CROSS_COMPILE=arm-linux-gnueabihf- O=${{github.workspace}}/build INSTALL_MOD_PATH=${{github.workspace}}/install modules_install
-@@ -198,6 +202,7 @@ jobs:
- run: |
- mkdir ${{github.workspace}}/build
- make ARCH=arm KERNEL=kernel7l CROSS_COMPILE=arm-linux-gnueabihf- O=${{github.workspace}}/build bcm2711_defconfig
-+ scripts/config --file ${{github.workspace}}/build/.config --set-val CONFIG_WERROR y
- make ARCH=arm KERNEL=kernel7l CROSS_COMPILE=arm-linux-gnueabihf- O=${{github.workspace}}/build -j ${{env.NUM_JOBS}} zImage modules dtbs
- mkdir -p ${{github.workspace}}/install/boot
- make ARCH=arm KERNEL=kernel7l CROSS_COMPILE=arm-linux-gnueabihf- O=${{github.workspace}}/build INSTALL_MOD_PATH=${{github.workspace}}/install modules_install
-@@ -248,6 +253,7 @@ jobs:
- run: |
- mkdir ${{github.workspace}}/build
- make ARCH=arm64 KERNEL=kernel8 CROSS_COMPILE=aarch64-linux-gnu- O=${{github.workspace}}/build bcm2711_defconfig
-+ scripts/config --file ${{github.workspace}}/build/.config --set-val CONFIG_WERROR y
- make ARCH=arm64 KERNEL=kernel8 CROSS_COMPILE=aarch64-linux-gnu- O=${{github.workspace}}/build -j ${{env.NUM_JOBS}} Image.gz modules dtbs
- mkdir -p ${{github.workspace}}/install/boot
- make ARCH=arm64 KERNEL=kernel8 CROSS_COMPILE=aarch64-linux-gnu- O=${{github.workspace}}/build INSTALL_MOD_PATH=${{github.workspace}}/install modules_install
diff --git a/target/linux/bcm27xx/patches-6.1/950-0540-.github-workflows-Correct-kernel-builds-artifacts.patch b/target/linux/bcm27xx/patches-6.1/950-0540-.github-workflows-Correct-kernel-builds-artifacts.patch
deleted file mode 100644
index 359efd5c85..0000000000
--- a/target/linux/bcm27xx/patches-6.1/950-0540-.github-workflows-Correct-kernel-builds-artifacts.patch
+++ /dev/null
@@ -1,147 +0,0 @@
-From 3e32a992acb7248183a3eb1d92503ac2d2eb2617 Mon Sep 17 00:00:00 2001
-From: Phil Elwell
-Date: Wed, 18 Jan 2023 09:34:31 +0000
-Subject: [PATCH] .github/workflows: Correct kernel builds artifacts
-
-Modify the kernel build workflow to create artifacts with the correct
-names and structure, both as an example of what we expect and in case
-anyone wants to use the output.
-
-Signed-off-by: Phil Elwell
----
- .github/workflows/kernel-build.yml | 76 ++++++++++++++++--------------
- 1 file changed, 41 insertions(+), 35 deletions(-)
-
---- a/.github/workflows/kernel-build.yml
-+++ b/.github/workflows/kernel-build.yml
-@@ -37,14 +37,15 @@ jobs:
- - name: Build kernel
- run: |
- mkdir ${{github.workspace}}/build
-- make ARCH=arm KERNEL=kernel CROSS_COMPILE=arm-linux-gnueabihf- O=${{github.workspace}}/build bcm2835_defconfig
-+ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- O=${{github.workspace}}/build bcm2835_defconfig
- scripts/config --file ${{github.workspace}}/build/.config --set-val CONFIG_WERROR y
-- make ARCH=arm KERNEL=kernel CROSS_COMPILE=arm-linux-gnueabihf- O=${{github.workspace}}/build -j ${{env.NUM_JOBS}} Image modules dtbs
-- mkdir -p ${{github.workspace}}/install/boot
-+ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- O=${{github.workspace}}/build -j ${{env.NUM_JOBS}} zImage modules dtbs
-+ mkdir -p ${{github.workspace}}/install/boot/overlays
- make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- O=${{github.workspace}}/build INSTALL_MOD_PATH=${{github.workspace}}/install modules_install
- cp ${{github.workspace}}/build/arch/arm/boot/dts/*.dtb ${{github.workspace}}/install/boot/
-- cp -r ${{github.workspace}}/build/arch/arm/boot/dts/overlays/*.dtb* ${{github.workspace}}/install/boot/
-- cp ${{github.workspace}}/build/arch/arm/boot/Image ${{github.workspace}}/install/boot/
-+ cp ${{github.workspace}}/build/arch/arm/boot/dts/overlays/*.dtb* ${{github.workspace}}/install/boot/overlays/
-+ cp ${{github.workspace}}/arch/arm/boot/dts/overlays/README ${{github.workspace}}/install/boot/overlays/
-+ cp ${{github.workspace}}/build/arch/arm/boot/zImage ${{github.workspace}}/install/boot/kernel.img
-
- - name: Tar build
- run: tar -cvf bcm2835_build.tar -C ${{github.workspace}}/install .
-@@ -78,14 +79,15 @@ jobs:
- - name: Build kernel
- run: |
- mkdir ${{github.workspace}}/build
-- make ARCH=arm64 KERNEL=kernel8 CROSS_COMPILE=aarch64-linux-gnu- O=${{github.workspace}}/build defconfig
-+ make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- O=${{github.workspace}}/build defconfig
- scripts/config --file ${{github.workspace}}/build/.config --set-val CONFIG_WERROR y
-- make ARCH=arm64 KERNEL=kernel8 CROSS_COMPILE=aarch64-linux-gnu- O=${{github.workspace}}/build -j ${{env.NUM_JOBS}} Image.gz modules dtbs
-- mkdir -p ${{github.workspace}}/install/boot
-- make ARCH=arm64 KERNEL=kernel8 CROSS_COMPILE=aarch64-linux-gnu- O=${{github.workspace}}/build INSTALL_MOD_PATH=${{github.workspace}}/install modules_install
-+ make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- O=${{github.workspace}}/build -j ${{env.NUM_JOBS}} Image.gz modules dtbs
-+ mkdir -p ${{github.workspace}}/install/boot/overlays
-+ make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- O=${{github.workspace}}/build INSTALL_MOD_PATH=${{github.workspace}}/install modules_install
- cp ${{github.workspace}}/build/arch/arm64/boot/dts/broadcom/*.dtb ${{github.workspace}}/install/boot/
-- cp -r ${{github.workspace}}/build/arch/arm64/boot/dts/overlays/*.dtb* ${{github.workspace}}/install/boot/
-- cp ${{github.workspace}}/build/arch/arm64/boot/Image.gz ${{github.workspace}}/install/boot/
-+ cp ${{github.workspace}}/build/arch/arm64/boot/dts/overlays/*.dtb* ${{github.workspace}}/install/boot/overlays/
-+ cp ${{github.workspace}}/arch/arm64/boot/dts/overlays/README ${{github.workspace}}/install/boot/overlays/
-+ cp ${{github.workspace}}/build/arch/arm64/boot/Image.gz ${{github.workspace}}/install/boot/kernel8.img
-
- - name: Tar build
- run: tar -cvf arm64_build.tar -C ${{github.workspace}}/install .
-@@ -119,14 +121,15 @@ jobs:
- - name: Build kernel
- run: |
- mkdir ${{github.workspace}}/build
-- make ARCH=arm KERNEL=kernel CROSS_COMPILE=arm-linux-gnueabihf- O=${{github.workspace}}/build bcm2711_defconfig
-+ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- O=${{github.workspace}}/build bcmrpi_defconfig
- scripts/config --file ${{github.workspace}}/build/.config --set-val CONFIG_WERROR y
-- make ARCH=arm KERNEL=kernel CROSS_COMPILE=arm-linux-gnueabihf- O=${{github.workspace}}/build -j ${{env.NUM_JOBS}} zImage modules dtbs
-- mkdir -p ${{github.workspace}}/install/boot
-- make ARCH=arm KERNEL=kernel CROSS_COMPILE=arm-linux-gnueabihf- O=${{github.workspace}}/build INSTALL_MOD_PATH=${{github.workspace}}/install modules_install
-+ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- O=${{github.workspace}}/build -j ${{env.NUM_JOBS}} zImage modules dtbs
-+ mkdir -p ${{github.workspace}}/install/boot/overlays
-+ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- O=${{github.workspace}}/build INSTALL_MOD_PATH=${{github.workspace}}/install modules_install
- cp ${{github.workspace}}/build/arch/arm/boot/dts/*.dtb ${{github.workspace}}/install/boot/
-- cp -r ${{github.workspace}}/build/arch/arm/boot/dts/overlays/*.dtb* ${{github.workspace}}/install/boot/
-- cp ${{github.workspace}}/build/arch/arm/boot/zImage ${{github.workspace}}/install/boot/
-+ cp ${{github.workspace}}/build/arch/arm/boot/dts/overlays/*.dtb* ${{github.workspace}}/install/boot/overlays/
-+ cp ${{github.workspace}}/arch/arm/boot/dts/overlays/README ${{github.workspace}}/install/boot/overlays/
-+ cp ${{github.workspace}}/build/arch/arm/boot/zImage ${{github.workspace}}/install/boot/kernel.img
-
- - name: Tar build
- run: tar -cvf bcmrpi_build.tar -C ${{github.workspace}}/install .
-@@ -160,14 +163,15 @@ jobs:
- - name: Build kernel
- run: |
- mkdir ${{github.workspace}}/build
-- make ARCH=arm KERNEL=kernel7 CROSS_COMPILE=arm-linux-gnueabihf- O=${{github.workspace}}/build bcm2709_defconfig
-+ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- O=${{github.workspace}}/build bcm2709_defconfig
- scripts/config --file ${{github.workspace}}/build/.config --set-val CONFIG_WERROR y
-- make ARCH=arm KERNEL=kernel7 CROSS_COMPILE=arm-linux-gnueabihf- O=${{github.workspace}}/build -j ${{env.NUM_JOBS}} zImage modules dtbs
-- mkdir -p ${{github.workspace}}/install/boot
-- make ARCH=arm KERNEL=kernel7 CROSS_COMPILE=arm-linux-gnueabihf- O=${{github.workspace}}/build INSTALL_MOD_PATH=${{github.workspace}}/install modules_install
-+ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- O=${{github.workspace}}/build -j ${{env.NUM_JOBS}} zImage modules dtbs
-+ mkdir -p ${{github.workspace}}/install/boot/overlays
-+ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- O=${{github.workspace}}/build INSTALL_MOD_PATH=${{github.workspace}}/install modules_install
- cp ${{github.workspace}}/build/arch/arm/boot/dts/*.dtb ${{github.workspace}}/install/boot/
-- cp -r ${{github.workspace}}/build/arch/arm/boot/dts/overlays/*.dtb* ${{github.workspace}}/install/boot/
-- cp ${{github.workspace}}/build/arch/arm/boot/zImage ${{github.workspace}}/install/boot/
-+ cp ${{github.workspace}}/build/arch/arm/boot/dts/overlays/*.dtb* ${{github.workspace}}/install/boot/overlays/
-+ cp ${{github.workspace}}/arch/arm/boot/dts/overlays/README ${{github.workspace}}/install/boot/overlays/
-+ cp ${{github.workspace}}/build/arch/arm/boot/zImage ${{github.workspace}}/install/boot/kernel7.img
-
- - name: Tar build
- run: tar -cvf bcm2709_build.tar -C ${{github.workspace}}/install .
-@@ -201,14 +205,15 @@ jobs:
- - name: Build kernel
- run: |
- mkdir ${{github.workspace}}/build
-- make ARCH=arm KERNEL=kernel7l CROSS_COMPILE=arm-linux-gnueabihf- O=${{github.workspace}}/build bcm2711_defconfig
-+ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- O=${{github.workspace}}/build bcm2711_defconfig
- scripts/config --file ${{github.workspace}}/build/.config --set-val CONFIG_WERROR y
-- make ARCH=arm KERNEL=kernel7l CROSS_COMPILE=arm-linux-gnueabihf- O=${{github.workspace}}/build -j ${{env.NUM_JOBS}} zImage modules dtbs
-- mkdir -p ${{github.workspace}}/install/boot
-- make ARCH=arm KERNEL=kernel7l CROSS_COMPILE=arm-linux-gnueabihf- O=${{github.workspace}}/build INSTALL_MOD_PATH=${{github.workspace}}/install modules_install
-+ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- O=${{github.workspace}}/build -j ${{env.NUM_JOBS}} zImage modules dtbs
-+ mkdir -p ${{github.workspace}}/install/boot/overlays
-+ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- O=${{github.workspace}}/build INSTALL_MOD_PATH=${{github.workspace}}/install modules_install
- cp ${{github.workspace}}/build/arch/arm/boot/dts/*.dtb ${{github.workspace}}/install/boot/
-- cp -r ${{github.workspace}}/build/arch/arm/boot/dts/overlays/*.dtb* ${{github.workspace}}/install/boot/
-- cp ${{github.workspace}}/build/arch/arm/boot/zImage ${{github.workspace}}/install/boot/
-+ cp ${{github.workspace}}/build/arch/arm/boot/dts/overlays/*.dtb* ${{github.workspace}}/install/boot/overlays/
-+ cp ${{github.workspace}}/arch/arm/boot/dts/overlays/README ${{github.workspace}}/install/boot/overlays/
-+ cp ${{github.workspace}}/build/arch/arm/boot/zImage ${{github.workspace}}/install/boot/kernel7l.img
-
- - name: Tar build
- run: tar -cvf bcm2711_build.tar -C ${{github.workspace}}/install .
-@@ -252,14 +257,15 @@ jobs:
- - name: Build kernel
- run: |
- mkdir ${{github.workspace}}/build
-- make ARCH=arm64 KERNEL=kernel8 CROSS_COMPILE=aarch64-linux-gnu- O=${{github.workspace}}/build bcm2711_defconfig
-+ make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- O=${{github.workspace}}/build bcm2711_defconfig
- scripts/config --file ${{github.workspace}}/build/.config --set-val CONFIG_WERROR y
-- make ARCH=arm64 KERNEL=kernel8 CROSS_COMPILE=aarch64-linux-gnu- O=${{github.workspace}}/build -j ${{env.NUM_JOBS}} Image.gz modules dtbs
-- mkdir -p ${{github.workspace}}/install/boot
-- make ARCH=arm64 KERNEL=kernel8 CROSS_COMPILE=aarch64-linux-gnu- O=${{github.workspace}}/build INSTALL_MOD_PATH=${{github.workspace}}/install modules_install
-+ make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- O=${{github.workspace}}/build -j ${{env.NUM_JOBS}} Image.gz modules dtbs
-+ mkdir -p ${{github.workspace}}/install/boot/overlays
-+ make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- O=${{github.workspace}}/build INSTALL_MOD_PATH=${{github.workspace}}/install modules_install
- cp ${{github.workspace}}/build/arch/arm64/boot/dts/broadcom/*.dtb ${{github.workspace}}/install/boot/
-- cp -r ${{github.workspace}}/build/arch/arm64/boot/dts/overlays/*.dtb* ${{github.workspace}}/install/boot/
-- cp ${{github.workspace}}/build/arch/arm64/boot/Image.gz ${{github.workspace}}/install/boot/
-+ cp ${{github.workspace}}/build/arch/arm64/boot/dts/overlays/*.dtb* ${{github.workspace}}/install/boot/overlays/
-+ cp ${{github.workspace}}/arch/arm64/boot/dts/overlays/README ${{github.workspace}}/install/boot/overlays/
-+ cp ${{github.workspace}}/build/arch/arm64/boot/Image.gz ${{github.workspace}}/install/boot/kernel8.img
-
- - name: Tar build
- run: tar -cvf bcm2711_arm64_build.tar -C ${{github.workspace}}/install .
diff --git a/target/linux/bcm27xx/patches-6.1/950-0547-.github-workflows-Switch-to-a-matrix-build.patch b/target/linux/bcm27xx/patches-6.1/950-0547-.github-workflows-Switch-to-a-matrix-build.patch
deleted file mode 100644
index 51f32be5a0..0000000000
--- a/target/linux/bcm27xx/patches-6.1/950-0547-.github-workflows-Switch-to-a-matrix-build.patch
+++ /dev/null
@@ -1,333 +0,0 @@
-From 3ca614742a496b66a9b92ce6be05ff555fdfc2c2 Mon Sep 17 00:00:00 2001
-From: Phil Elwell
-Date: Mon, 23 Jan 2023 16:50:51 +0000
-Subject: [PATCH] .github/workflows: Switch to a matrix build
-
-Remove the per-build duplication by putting build parameters in a
-matrix.
-
-Signed-off-by: Phil Elwell