From 2a691fc7f2bac365d147beb593be4331f11c5dca Mon Sep 17 00:00:00 2001 From: Glenn Strauss Date: Thu, 27 Oct 2022 22:26:48 -0400 Subject: [PATCH 01/32] mbedtls: x509 crt verify SAN iPAddress backport from X509 crt verify SAN iPAddress https://github.com/Mbed-TLS/mbedtls/pull/6475 addresses curl built with mbedtls fails on https://1.1.1.1/ (IP address in SubjectAltName) https://github.com/Mbed-TLS/mbedtls/issues/6473 filed for mbedTLS: BADCERT_CN_MISMATCH on https://1.1.1.1 with curl+mbedtls https://github.com/openwrt/packages/issues/19677 Signed-off-by: Glenn Strauss --- package/libs/mbedtls/Makefile | 2 +- .../100-x509-crt-verify-SAN-iPAddress.patch | 181 ++++++++++++++++++ 2 files changed, 182 insertions(+), 1 deletion(-) create mode 100644 package/libs/mbedtls/patches/100-x509-crt-verify-SAN-iPAddress.patch diff --git a/package/libs/mbedtls/Makefile b/package/libs/mbedtls/Makefile index 2ae3fdbe2ae..02d076d18fa 100644 --- a/package/libs/mbedtls/Makefile +++ b/package/libs/mbedtls/Makefile @@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=mbedtls PKG_VERSION:=2.28.2 -PKG_RELEASE:=1 +PKG_RELEASE:=2 PKG_USE_MIPS16:=0 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz diff --git a/package/libs/mbedtls/patches/100-x509-crt-verify-SAN-iPAddress.patch b/package/libs/mbedtls/patches/100-x509-crt-verify-SAN-iPAddress.patch new file mode 100644 index 00000000000..357ec446491 --- /dev/null +++ b/package/libs/mbedtls/patches/100-x509-crt-verify-SAN-iPAddress.patch @@ -0,0 +1,181 @@ +From 272d48fe7a2ff00285d4ee166d3a9beca1d5122f Mon Sep 17 00:00:00 2001 +From: Glenn Strauss +Date: Sun, 23 Oct 2022 19:48:18 -0400 +Subject: [PATCH 1/4] x509 crt verify SAN iPAddress + +Signed-off-by: Glenn Strauss +--- + include/mbedtls/x509_crt.h | 2 +- + library/x509_crt.c | 115 +++++++++++++++++++++++++++++-------- + 2 files changed, 93 insertions(+), 24 deletions(-) + +--- a/include/mbedtls/x509_crt.h ++++ b/include/mbedtls/x509_crt.h +@@ -597,7 +597,7 @@ int mbedtls_x509_crt_verify_info( char * + * \param cn The expected Common Name. This will be checked to be + * present in the certificate's subjectAltNames extension or, + * if this extension is absent, as a CN component in its +- * Subject name. Currently only DNS names are supported. This ++ * Subject name. DNS names and IP addresses are supported. This + * may be \c NULL if the CN need not be verified. + * \param flags The address at which to store the result of the verification. + * If the verification couldn't be completed, the flag value is +--- a/library/x509_crt.c ++++ b/library/x509_crt.c +@@ -2986,6 +2986,54 @@ find_parent: + } + } + ++#ifdef _WIN32 ++/* ??? */ ++#elif defined(__sun) ++/* Solaris requires -lsocket -lnsl for inet_pton() */ ++#elif defined(__has_include) ++#if __has_include() ++#include ++#endif ++#if __has_include() ++#include ++#endif ++#endif ++ ++/* Use whether or not AF_INET6 is defined to indicate whether or not to use ++ * the platform inet_pton() or a local implementation (below). The local ++ * implementation may be used even in cases where the platform provides ++ * inet_pton(), e.g. when there are different includes required and/or the ++ * platform implementation requires dependencies on additional libraries. ++ * Specifically, Windows requires custom includes and additional link ++ * dependencies, and Solaris requires additional link dependencies. ++ * Also, as a coarse heuristic, use the local implementation if the compiler ++ * does not support __has_include(), or if the definition of AF_INET6 is not ++ * provided by headers included (or not) via __has_include() above. */ ++#ifndef AF_INET6 ++ ++#define x509_cn_inet_pton( cn, dst ) ( 0 ) ++ ++#else ++ ++static int x509_inet_pton_ipv6( const char *src, void *dst ) ++{ ++ return( inet_pton( AF_INET6, src, dst ) == 1 ? 0 : -1 ); ++} ++ ++static int x509_inet_pton_ipv4( const char *src, void *dst ) ++{ ++ return( inet_pton( AF_INET, src, dst ) == 1 ? 0 : -1 ); ++} ++ ++#endif /* AF_INET6 */ ++ ++static size_t x509_cn_inet_pton( const char *cn, void *dst ) ++{ ++ return( strchr( cn, ':' ) == NULL ++ ? x509_inet_pton_ipv4( cn, dst ) == 0 ? 4 : 0 ++ : x509_inet_pton_ipv6( cn, dst ) == 0 ? 16 : 0 ); ++} ++ + /* + * Check for CN match + */ +@@ -3008,23 +3056,51 @@ static int x509_crt_check_cn( const mbed + return( -1 ); + } + ++static int x509_crt_check_san_ip( const mbedtls_x509_sequence *san, ++ const char *cn, size_t cn_len ) ++{ ++ uint32_t ip[4]; ++ cn_len = x509_cn_inet_pton( cn, ip ); ++ if( cn_len == 0 ) ++ return( -1 ); ++ ++ for( const mbedtls_x509_sequence *cur = san; cur != NULL; cur = cur->next ) ++ { ++ const unsigned char san_type = (unsigned char) cur->buf.tag & ++ MBEDTLS_ASN1_TAG_VALUE_MASK; ++ if( san_type == MBEDTLS_X509_SAN_IP_ADDRESS && ++ cur->buf.len == cn_len && memcmp( cur->buf.p, ip, cn_len ) == 0 ) ++ return( 0 ); ++ } ++ ++ return( -1 ); ++} ++ + /* + * Check for SAN match, see RFC 5280 Section 4.2.1.6 + */ +-static int x509_crt_check_san( const mbedtls_x509_buf *name, ++static int x509_crt_check_san( const mbedtls_x509_sequence *san, + const char *cn, size_t cn_len ) + { +- const unsigned char san_type = (unsigned char) name->tag & +- MBEDTLS_ASN1_TAG_VALUE_MASK; +- +- /* dNSName */ +- if( san_type == MBEDTLS_X509_SAN_DNS_NAME ) +- return( x509_crt_check_cn( name, cn, cn_len ) ); +- +- /* (We may handle other types here later.) */ ++ int san_ip = 0; ++ for( const mbedtls_x509_sequence *cur = san; cur != NULL; cur = cur->next ) ++ { ++ switch( (unsigned char) cur->buf.tag & MBEDTLS_ASN1_TAG_VALUE_MASK ) ++ { ++ case MBEDTLS_X509_SAN_DNS_NAME: /* dNSName */ ++ if( x509_crt_check_cn( &cur->buf, cn, cn_len ) == 0 ) ++ return( 0 ); ++ break; ++ case MBEDTLS_X509_SAN_IP_ADDRESS: /* iPAddress */ ++ san_ip = 1; ++ break; ++ /* (We may handle other types here later.) */ ++ default: /* Unrecognized type */ ++ break; ++ } ++ } + +- /* Unrecognized type */ +- return( -1 ); ++ return( san_ip ? x509_crt_check_san_ip( san, cn, cn_len ) : -1 ); + } + + /* +@@ -3035,19 +3111,12 @@ static void x509_crt_verify_name( const + uint32_t *flags ) + { + const mbedtls_x509_name *name; +- const mbedtls_x509_sequence *cur; + size_t cn_len = strlen( cn ); + + if( crt->ext_types & MBEDTLS_X509_EXT_SUBJECT_ALT_NAME ) + { +- for( cur = &crt->subject_alt_names; cur != NULL; cur = cur->next ) +- { +- if( x509_crt_check_san( &cur->buf, cn, cn_len ) == 0 ) +- break; +- } +- +- if( cur == NULL ) +- *flags |= MBEDTLS_X509_BADCERT_CN_MISMATCH; ++ if( x509_crt_check_san( &crt->subject_alt_names, cn, cn_len ) == 0 ) ++ return; + } + else + { +@@ -3056,13 +3125,13 @@ static void x509_crt_verify_name( const + if( MBEDTLS_OID_CMP( MBEDTLS_OID_AT_CN, &name->oid ) == 0 && + x509_crt_check_cn( &name->val, cn, cn_len ) == 0 ) + { +- break; ++ return; + } + } + +- if( name == NULL ) +- *flags |= MBEDTLS_X509_BADCERT_CN_MISMATCH; + } ++ ++ *flags |= MBEDTLS_X509_BADCERT_CN_MISMATCH; + } + + /* From 7be11ee35ec5b95d9629ce316fbf1a91439b2f02 Mon Sep 17 00:00:00 2001 From: Rosen Penev Date: Sat, 20 Aug 2022 13:50:40 -0700 Subject: [PATCH 02/32] mvebu/uDPU: simplify grep usage Instead of using the shell's evaluation, use grep's -q parameter. Found with shellcheck's SC2143. Also replaced a head call with grep's -m. Signed-off-by: Rosen Penev --- .../mvebu/cortexa53/base-files/lib/upgrade/uDPU.sh | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/target/linux/mvebu/cortexa53/base-files/lib/upgrade/uDPU.sh b/target/linux/mvebu/cortexa53/base-files/lib/upgrade/uDPU.sh index 0bb1dd12cc8..1d65a5437bc 100644 --- a/target/linux/mvebu/cortexa53/base-files/lib/upgrade/uDPU.sh +++ b/target/linux/mvebu/cortexa53/base-files/lib/upgrade/uDPU.sh @@ -18,10 +18,10 @@ udpu_check_emmc() { } udpu_part_prep() { - if [ "$(grep $1 /proc/mounts)" ]; then - mounted_part="$(grep $1 /proc/mounts | awk '{print $2}' | head -1)" + if grep -q "$1" /proc/mounts; then + mounted_part="$(grep -m 1 $1 /proc/mounts | awk '{print $2}')" umount $mounted_part - [ "$(grep -wo $mounted_part /proc/mounts)" ] && umount -l $mounted_part + grep -woq "$mounted_part" /proc/mounts && umount -l "$mounted_part" fi } @@ -52,7 +52,7 @@ udpu_do_part_check() { } udpu_do_misc_prep() { - if [ ! "$(grep -wo /misc /proc/mounts)" ]; then + if ! grep -woq /misc /proc/mounts; then mkdir -p /misc mount ${emmc_dev}p4 /misc @@ -97,13 +97,13 @@ udpu_do_initial_setup() { udpu_do_regular_upgrade() { # Clean /boot partition - mfks.ext4 is not available in chroot - [ "$(grep -wo /boot /proc/mounts)" ] && umount /boot + grep -woq /boot /proc/mounts && umount /boot mkdir -p /tmp/boot mount ${emmc_dev}p1 /tmp/boot rm -rf /tmp/boot/* # Clean /root partition - mkfs.f2fs is not available in chroot - [ "$(grep -wo /dev/root /proc/mounts)" ] && umount / + grep -woq /dev/root /proc/mounts && umount / mkdir -p /tmp/rootpart mount ${emmc_dev}p3 /tmp/rootpart rm -rf /tmp/rootpart/* @@ -139,7 +139,7 @@ platform_do_upgrade_uDPU() { for part in ${tmp_parts}; do umount $part # Force umount is necessary - [ "$(grep "${part}" /proc/mounts)" ] && umount -l $part + grep -q "${part}" /proc/mounts && umount -l "$part" done # Sysupgrade complains about /tmp and /dev, so we can detach them here From 3b80b8e560a0d1414c2ed9f2a2e0e1cc3e0e0e87 Mon Sep 17 00:00:00 2001 From: Rosen Penev Date: Sat, 20 Aug 2022 13:56:51 -0700 Subject: [PATCH 03/32] mvebu/uDPU: remove echo y It's a bit of a hack. mkfs.ext4 has an -F parameter that does the same thing. Signed-off-by: Rosen Penev --- target/linux/mvebu/cortexa53/base-files/lib/upgrade/uDPU.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/target/linux/mvebu/cortexa53/base-files/lib/upgrade/uDPU.sh b/target/linux/mvebu/cortexa53/base-files/lib/upgrade/uDPU.sh index 1d65a5437bc..437222e08ab 100644 --- a/target/linux/mvebu/cortexa53/base-files/lib/upgrade/uDPU.sh +++ b/target/linux/mvebu/cortexa53/base-files/lib/upgrade/uDPU.sh @@ -82,11 +82,11 @@ udpu_do_misc_prep() { udpu_do_initial_setup() { # Prepare /recovery parition udpu_part_prep ${emmc_dev}p2 - mkfs.ext4 -q ${emmc_dev}p2 | echo y &> /dev/null + mkfs.ext4 -qF ${emmc_dev}p2 2>&1 /dev/null # Prepare /boot partition udpu_part_prep ${emmc_dev}p1 - mkfs.ext4 -q ${emmc_dev}p1 | echo y &> /dev/null + mkfs.ext4 -qF ${emmc_dev}p1 2>&1 /dev/null # Prepare /root partition printf "Formating /root partition, this may take a while..\n" From cb6df29cbd45f11edc52e081c6a30af2dd69aad5 Mon Sep 17 00:00:00 2001 From: Rosen Penev Date: Sat, 20 Aug 2022 14:02:58 -0700 Subject: [PATCH 04/32] mvebu/uDPU: remove $? usage shellcheck warns against it with SC2086. It also hides a bug that shellcheck marks with SC2015. Fixed those with explicit if/else. Signed-off-by: Rosen Penev --- .../cortexa53/base-files/lib/upgrade/uDPU.sh | 30 +++++++++++-------- 1 file changed, 18 insertions(+), 12 deletions(-) diff --git a/target/linux/mvebu/cortexa53/base-files/lib/upgrade/uDPU.sh b/target/linux/mvebu/cortexa53/base-files/lib/upgrade/uDPU.sh index 437222e08ab..92102e8d14f 100644 --- a/target/linux/mvebu/cortexa53/base-files/lib/upgrade/uDPU.sh +++ b/target/linux/mvebu/cortexa53/base-files/lib/upgrade/uDPU.sh @@ -42,8 +42,11 @@ udpu_do_part_check() { # Format the /misc part right away as we will need it for the firmware printf "Formating /misc partition, this make take a while..\n" udpu_part_prep ${emmc_dev}p4 - mkfs.f2fs -q -l misc ${emmc_dev}p4 - [ $? -eq 0 ] && printf "/misc partition formated successfully\n" || printf "/misc partition formatting failed\n" + if mkfs.f2fs -q -l misc ${emmc_dev}p4; then + printf "/misc partition formated successfully\n" + else + printf "/misc partition formatting failed\n" + fi udpu_do_initial_setup else @@ -54,19 +57,17 @@ udpu_do_part_check() { udpu_do_misc_prep() { if ! grep -woq /misc /proc/mounts; then mkdir -p /misc - mount ${emmc_dev}p4 /misc # If the mount fails, try to reformat partition # Leaving possiblity for multiple iterations - if [ $? -ne 0 ]; then + if ! mount ${emmc_dev}p4 /misc; then printf "Error while mounting /misc, trying to reformat..\n" format_count=0 while [ "$format_count" -lt "1" ]; do udpu_part_prep ${emmc_dev}p4 mkfs.f2fs -q -l misc ${emmc_dev}p4 - mount ${emmc_dev}p4 /misc - if [ $? -ne 0 ]; then + if ! mount ${emmc_dev}p4 /misc; then umount -l /misc printf "Failed while mounting /misc\n" format_count=$((format_count +1)) @@ -91,8 +92,7 @@ udpu_do_initial_setup() { # Prepare /root partition printf "Formating /root partition, this may take a while..\n" udpu_part_prep ${emmc_dev}p3 - mkfs.f2fs -q -l rootfs ${emmc_dev}p3 - [ $? -eq 0 ] && printf "/root partition reformated\n" + mkfs.f2fs -q -l rootfs ${emmc_dev}p3 && printf "/root partition reformated\n" } udpu_do_regular_upgrade() { @@ -122,13 +122,19 @@ platform_do_upgrade_uDPU() { udpu_do_regular_upgrade printf "Updating /boot partition\n" - tar xzf /misc/firmware/boot.tgz -C /tmp/boot - [ $? -eq 0 ] && printf "/boot partition updated successfully\n" || printf "/boot partition update failed\n" + if tar xzf /misc/firmware/boot.tgz -C /tmp/boot; then + printf "/boot partition updated successfully\n" + else + printf "/boot partition update failed\n" + fi sync printf "Updating /root partition\n" - tar xzf /misc/firmware/rootfs.tgz -C /tmp/rootpart - [ $? -eq 0 ] && printf "/root partition updated successfully\n" || printf "/root partition update failed\n" + if tar xzf /misc/firmware/rootfs.tgz -C /tmp/rootpart; then + printf "/root partition updated successfully\n" + else + printf "/root partition update failed\n" + fi sync # Saving configuration files over sysupgrade From 822c554d5755301337bce959554bf973b4292322 Mon Sep 17 00:00:00 2001 From: Rosen Penev Date: Sat, 20 Aug 2022 14:10:21 -0700 Subject: [PATCH 05/32] mvebu/uDPU: add quotes to unmount file This is the last relevant shellcheck warning thrown. Signed-off-by: Rosen Penev --- target/linux/mvebu/cortexa53/base-files/lib/upgrade/uDPU.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/target/linux/mvebu/cortexa53/base-files/lib/upgrade/uDPU.sh b/target/linux/mvebu/cortexa53/base-files/lib/upgrade/uDPU.sh index 92102e8d14f..b01ad607ee2 100644 --- a/target/linux/mvebu/cortexa53/base-files/lib/upgrade/uDPU.sh +++ b/target/linux/mvebu/cortexa53/base-files/lib/upgrade/uDPU.sh @@ -20,7 +20,7 @@ udpu_check_emmc() { udpu_part_prep() { if grep -q "$1" /proc/mounts; then mounted_part="$(grep -m 1 $1 /proc/mounts | awk '{print $2}')" - umount $mounted_part + umount "$mounted_part" grep -woq "$mounted_part" /proc/mounts && umount -l "$mounted_part" fi } @@ -143,7 +143,7 @@ platform_do_upgrade_uDPU() { # Remove tmp mounts tmp_parts=$(grep "${emmc_dev}" /proc/mounts | awk '{print $2}') for part in ${tmp_parts}; do - umount $part + umount "$part" # Force umount is necessary grep -q "${part}" /proc/mounts && umount -l "$part" done From 30c0ffecccbe6fe8e2289bed33027f9e2507039a Mon Sep 17 00:00:00 2001 From: Hauke Mehrtens Date: Sun, 22 Jan 2023 19:08:04 +0100 Subject: [PATCH 06/32] bcm47xx: Copy kernel from 5.10 to 5.15 Copy patches and configuration from kernel 5.10 to kernel 5.15 files. No changes were done. Signed-off-by: Hauke Mehrtens --- target/linux/bcm47xx/config-5.15 | 214 ++++++++ ...nand-Assign-soc-as-early-as-possible.patch | 33 ++ ...-Allow-SoC-to-provide-I-O-operations.patch | 150 ++++++ ...mnand-Avoid-pdev-in-brcmnand_init_cs.patch | 52 ++ ...F-operations-out-of-brcmnand_init_cs.patch | 63 +++ ...and-Allow-working-without-interrupts.patch | 91 ++++ ...Add-platform-data-structure-for-BCMA.patch | 115 ++++ ...and-Allow-platform-data-instantation.patch | 124 +++++ ...A-controller-uses-command-shift-of-0.patch | 29 ++ ...8-mtd-rawnand-brcmnand-Add-BCMA-shim.patch | 201 +++++++ .../bcm47xx/patches-5.15/159-cpu_fixes.patch | 493 ++++++++++++++++++ .../patches-5.15/160-kmap_coherent.patch | 78 +++ .../209-b44-register-adm-switch.patch | 121 +++++ .../patches-5.15/210-b44_phy_fix.patch | 54 ++ .../280-activate_ssb_support_in_usb.patch | 25 + .../patches-5.15/300-fork_cacheflush.patch | 21 + .../patches-5.15/310-no_highpage.patch | 74 +++ ...d-board-entry-for-Linksys-WRT320N-v1.patch | 89 ++++ ...7XX-Add-support-for-Netgear-R6300-v1.patch | 60 +++ ...d-support-for-Netgear-WN2500RP-v1-v2.patch | 63 +++ ...-Add-support-for-Netgear-WNR3500L-v2.patch | 109 ++++ ...dd-LEDs-and-buttons-for-Asus-RTN-10U.patch | 67 +++ ...XX-Define-Linksys-WRT310N-V2-buttons.patch | 40 ++ .../400-mtd-bcm47xxpart-get-nvram.patch | 34 ++ .../patches-5.15/610-pci_ide_fix.patch | 41 ++ ...t-to-PHY-even-if-it-is-BGMAC_PHY_NOR.patch | 42 ++ .../patches-5.15/791-tg3-no-pci-sleep.patch | 17 + ...f-serial-flashes-with-smaller-blocks.patch | 73 +++ .../patches-5.15/820-wgt634u-nvram-fix.patch | 296 +++++++++++ .../830-huawei_e970_support.patch | 101 ++++ .../patches-5.15/831-old_gpio_wdt.patch | 360 +++++++++++++ ...rites-setting-CardBus-bridge-resourc.patch | 30 ++ .../patches-5.15/940-bcm47xx-yenta.patch | 46 ++ .../976-ssb_increase_pci_delay.patch | 11 + .../bcm47xx/patches-5.15/999-wl_exports.patch | 24 + 35 files changed, 3441 insertions(+) create mode 100644 target/linux/bcm47xx/config-5.15 create mode 100644 target/linux/bcm47xx/patches-5.15/100-v5.18-mtd-rawnand-brcmnand-Assign-soc-as-early-as-possible.patch create mode 100644 target/linux/bcm47xx/patches-5.15/101-v5.18-mtd-rawnand-brcmnand-Allow-SoC-to-provide-I-O-operations.patch create mode 100644 target/linux/bcm47xx/patches-5.15/102-v5.18-mtd-rawnand-brcmnand-Avoid-pdev-in-brcmnand_init_cs.patch create mode 100644 target/linux/bcm47xx/patches-5.15/103-v5.18-mtd-rawnand-brcmnand-Move-OF-operations-out-of-brcmnand_init_cs.patch create mode 100644 target/linux/bcm47xx/patches-5.15/104-v5.18-mtd-rawnand-brcmnand-Allow-working-without-interrupts.patch create mode 100644 target/linux/bcm47xx/patches-5.15/105-v5.18-mtd-rawnand-brcmnand-Add-platform-data-structure-for-BCMA.patch create mode 100644 target/linux/bcm47xx/patches-5.15/106-v5.18-mtd-rawnand-brcmnand-Allow-platform-data-instantation.patch create mode 100644 target/linux/bcm47xx/patches-5.15/107-v5.18-mtd-rawnand-brcmnand-BCMA-controller-uses-command-shift-of-0.patch create mode 100644 target/linux/bcm47xx/patches-5.15/108-v5.18-mtd-rawnand-brcmnand-Add-BCMA-shim.patch create mode 100644 target/linux/bcm47xx/patches-5.15/159-cpu_fixes.patch create mode 100644 target/linux/bcm47xx/patches-5.15/160-kmap_coherent.patch create mode 100644 target/linux/bcm47xx/patches-5.15/209-b44-register-adm-switch.patch create mode 100644 target/linux/bcm47xx/patches-5.15/210-b44_phy_fix.patch create mode 100644 target/linux/bcm47xx/patches-5.15/280-activate_ssb_support_in_usb.patch create mode 100644 target/linux/bcm47xx/patches-5.15/300-fork_cacheflush.patch create mode 100644 target/linux/bcm47xx/patches-5.15/310-no_highpage.patch create mode 100644 target/linux/bcm47xx/patches-5.15/320-v5.17-MIPS-BCM47XX-Add-board-entry-for-Linksys-WRT320N-v1.patch create mode 100644 target/linux/bcm47xx/patches-5.15/321-v5.17-MIPS-BCM47XX-Add-support-for-Netgear-R6300-v1.patch create mode 100644 target/linux/bcm47xx/patches-5.15/322-v5.17-MIPS-BCM47XX-Add-support-for-Netgear-WN2500RP-v1-v2.patch create mode 100644 target/linux/bcm47xx/patches-5.15/323-v6.0-MIPS-BCM47XX-Add-support-for-Netgear-WNR3500L-v2.patch create mode 100644 target/linux/bcm47xx/patches-5.15/324-v5.17-MIPS-BCM47XX-Add-LEDs-and-buttons-for-Asus-RTN-10U.patch create mode 100644 target/linux/bcm47xx/patches-5.15/325-v5.17-MIPS-BCM47XX-Define-Linksys-WRT310N-V2-buttons.patch create mode 100644 target/linux/bcm47xx/patches-5.15/400-mtd-bcm47xxpart-get-nvram.patch create mode 100644 target/linux/bcm47xx/patches-5.15/610-pci_ide_fix.patch create mode 100644 target/linux/bcm47xx/patches-5.15/700-net-bgmac-connect-to-PHY-even-if-it-is-BGMAC_PHY_NOR.patch create mode 100644 target/linux/bcm47xx/patches-5.15/791-tg3-no-pci-sleep.patch create mode 100644 target/linux/bcm47xx/patches-5.15/800-bcma-add-table-of-serial-flashes-with-smaller-blocks.patch create mode 100644 target/linux/bcm47xx/patches-5.15/820-wgt634u-nvram-fix.patch create mode 100644 target/linux/bcm47xx/patches-5.15/830-huawei_e970_support.patch create mode 100644 target/linux/bcm47xx/patches-5.15/831-old_gpio_wdt.patch create mode 100644 target/linux/bcm47xx/patches-5.15/900-ssb-reject-PCI-writes-setting-CardBus-bridge-resourc.patch create mode 100644 target/linux/bcm47xx/patches-5.15/940-bcm47xx-yenta.patch create mode 100644 target/linux/bcm47xx/patches-5.15/976-ssb_increase_pci_delay.patch create mode 100644 target/linux/bcm47xx/patches-5.15/999-wl_exports.patch diff --git a/target/linux/bcm47xx/config-5.15 b/target/linux/bcm47xx/config-5.15 new file mode 100644 index 00000000000..31d6d1de390 --- /dev/null +++ b/target/linux/bcm47xx/config-5.15 @@ -0,0 +1,214 @@ +CONFIG_ADM6996_PHY=y +CONFIG_ARCH_BINFMT_ELF_STATE=y +CONFIG_ARCH_CLOCKSOURCE_DATA=y +CONFIG_ARCH_DISCARD_MEMBLOCK=y +CONFIG_ARCH_HAS_ELF_RANDOMIZE=y +CONFIG_ARCH_HAS_SYNC_DMA_FOR_DEVICE=y +CONFIG_ARCH_HIBERNATION_POSSIBLE=y +CONFIG_ARCH_MMAP_RND_BITS_MAX=15 +CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MAX=15 +CONFIG_ARCH_SUPPORTS_UPROBES=y +CONFIG_ARCH_SUSPEND_POSSIBLE=y +CONFIG_ARCH_USE_BUILTIN_BSWAP=y +CONFIG_ARCH_USE_QUEUED_RWLOCKS=y +CONFIG_ARCH_USE_QUEUED_SPINLOCKS=y +CONFIG_ARCH_WANT_IPC_PARSE_VERSION=y +CONFIG_BCM47XX=y +CONFIG_BCM47XX_BCMA=y +CONFIG_BCM47XX_NVRAM=y +CONFIG_BCM47XX_SPROM=y +CONFIG_BCM47XX_SSB=y +CONFIG_BCM47XX_WDT=y +CONFIG_BCMA=y +CONFIG_BCMA_BLOCKIO=y +CONFIG_BCMA_DEBUG=y +CONFIG_BCMA_DRIVER_GMAC_CMN=y +CONFIG_BCMA_DRIVER_GPIO=y +CONFIG_BCMA_DRIVER_MIPS=y +CONFIG_BCMA_DRIVER_PCI=y +CONFIG_BCMA_DRIVER_PCI_HOSTMODE=y +CONFIG_BCMA_HOST_PCI=y +CONFIG_BCMA_HOST_PCI_POSSIBLE=y +CONFIG_BCMA_HOST_SOC=y +CONFIG_BCMA_NFLASH=y +CONFIG_BCMA_PFLASH=y +CONFIG_BCMA_SFLASH=y +# CONFIG_BGMAC_BCMA is not set +CONFIG_BLK_MQ_PCI=y +CONFIG_CEVT_R4K=y +CONFIG_CLONE_BACKWARDS=y +CONFIG_CMDLINE="noinitrd console=ttyS0,115200" +CONFIG_CMDLINE_BOOL=y +# CONFIG_CMDLINE_OVERRIDE is not set +# CONFIG_COMMON_CLK is not set +CONFIG_COMPAT_32BIT_TIME=y +# CONFIG_CPU_BMIPS is not set +CONFIG_CPU_GENERIC_DUMP_TLB=y +CONFIG_CPU_HAS_PREFETCH=y +CONFIG_CPU_HAS_SYNC=y +CONFIG_CPU_LITTLE_ENDIAN=y +CONFIG_CPU_MIPS32=y +CONFIG_CPU_MIPS32_R1=y +# CONFIG_CPU_MIPS32_R2 is not set +CONFIG_CPU_MIPSR1=y +CONFIG_CPU_MIPSR2_IRQ_VI=y +CONFIG_CPU_NEEDS_NO_SMARTMIPS_OR_MICROMIPS=y +CONFIG_CPU_R4K_CACHE_TLB=y +CONFIG_CPU_R4K_FPU=y +CONFIG_CPU_SUPPORTS_32BIT_KERNEL=y +CONFIG_CPU_SUPPORTS_HIGHMEM=y +CONFIG_CRYPTO_BLAKE2S=y +CONFIG_CRYPTO_LIB_BLAKE2S_GENERIC=y +CONFIG_CRYPTO_RNG2=y +CONFIG_CRYPTO_WORKQUEUE=y +CONFIG_CSRC_R4K=y +CONFIG_DMA_DIRECT_OPS=y +CONFIG_DMA_NONCOHERENT=y +CONFIG_DMA_NONCOHERENT_CACHE_SYNC=y +CONFIG_DMA_NONCOHERENT_MMAP=y +CONFIG_DMA_NONCOHERENT_OPS=y +# CONFIG_EARLY_PRINTK is not set +CONFIG_FIXED_PHY=y +CONFIG_GENERIC_ATOMIC64=y +CONFIG_GENERIC_CLOCKEVENTS=y +CONFIG_GENERIC_CMOS_UPDATE=y +CONFIG_GENERIC_CPU_AUTOPROBE=y +CONFIG_GENERIC_IRQ_CHIP=y +CONFIG_GENERIC_IRQ_EFFECTIVE_AFF_MASK=y +CONFIG_GENERIC_IRQ_SHOW=y +CONFIG_GENERIC_LIB_ASHLDI3=y +CONFIG_GENERIC_LIB_ASHRDI3=y +CONFIG_GENERIC_LIB_CMPDI2=y +CONFIG_GENERIC_LIB_LSHRDI3=y +CONFIG_GENERIC_LIB_UCMPDI2=y +CONFIG_GENERIC_PCI_IOMAP=y +CONFIG_GENERIC_SCHED_CLOCK=y +CONFIG_GENERIC_SMP_IDLE_THREAD=y +CONFIG_GENERIC_TIME_VSYSCALL=y +CONFIG_GPIOLIB_IRQCHIP=y +CONFIG_GPIO_WDT=y +CONFIG_HANDLE_DOMAIN_IRQ=y +CONFIG_HARDWARE_WATCHPOINTS=y +CONFIG_HAS_DMA=y +CONFIG_HAS_IOMEM=y +CONFIG_HAS_IOPORT_MAP=y +CONFIG_HAVE_ARCH_COMPILER_H=y +CONFIG_HAVE_ARCH_JUMP_LABEL=y +CONFIG_HAVE_ARCH_KGDB=y +CONFIG_HAVE_ARCH_SECCOMP_FILTER=y +CONFIG_HAVE_ARCH_TRACEHOOK=y +CONFIG_HAVE_CBPF_JIT=y +CONFIG_HAVE_CONTEXT_TRACKING=y +CONFIG_HAVE_COPY_THREAD_TLS=y +CONFIG_HAVE_C_RECORDMCOUNT=y +CONFIG_HAVE_DEBUG_KMEMLEAK=y +CONFIG_HAVE_DEBUG_STACKOVERFLOW=y +CONFIG_HAVE_DMA_CONTIGUOUS=y +CONFIG_HAVE_DYNAMIC_FTRACE=y +CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y +CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y +CONFIG_HAVE_FUNCTION_TRACER=y +CONFIG_HAVE_GENERIC_DMA_COHERENT=y +CONFIG_HAVE_IDE=y +CONFIG_HAVE_IRQ_EXIT_ON_IRQ_STACK=y +CONFIG_HAVE_IRQ_TIME_ACCOUNTING=y +CONFIG_HAVE_LATENCYTOP_SUPPORT=y +CONFIG_HAVE_LD_DEAD_CODE_DATA_ELIMINATION=y +CONFIG_HAVE_MEMBLOCK=y +CONFIG_HAVE_MEMBLOCK_NODE_MAP=y +CONFIG_HAVE_MOD_ARCH_SPECIFIC=y +CONFIG_HAVE_NET_DSA=y +CONFIG_HAVE_OPROFILE=y +CONFIG_HAVE_PERF_EVENTS=y +CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y +CONFIG_HAVE_RSEQ=y +CONFIG_HAVE_SYSCALL_TRACEPOINTS=y +CONFIG_HAVE_VIRT_CPU_ACCOUNTING_GEN=y +CONFIG_HW_HAS_PCI=y +CONFIG_HW_RANDOM=y +CONFIG_HZ_PERIODIC=y +CONFIG_INITRAMFS_SOURCE="" +CONFIG_IRQ_DOMAIN=y +CONFIG_IRQ_FORCED_THREADING=y +CONFIG_IRQ_MIPS_CPU=y +CONFIG_IRQ_WORK=y +CONFIG_LEDS_GPIO_REGISTER=y +CONFIG_LOCK_DEBUGGING_SUPPORT=y +CONFIG_MDIO_BUS=y +CONFIG_MDIO_DEVICE=y +CONFIG_MEMFD_CREATE=y +CONFIG_MIGRATION=y +CONFIG_MIPS=y +CONFIG_MIPS_ASID_BITS=8 +CONFIG_MIPS_ASID_SHIFT=0 +CONFIG_MIPS_CLOCK_VSYSCALL=y +# CONFIG_MIPS_CMDLINE_BUILTIN_EXTEND is not set +CONFIG_MIPS_CMDLINE_FROM_BOOTLOADER=y +CONFIG_MIPS_L1_CACHE_SHIFT=5 +CONFIG_MODULES_USE_ELF_REL=y +CONFIG_MTD_BCM47XXSFLASH=y +CONFIG_MTD_BCM47XX_PARTS=y +CONFIG_MTD_NAND_CORE=y +CONFIG_MTD_RAW_NAND=y +CONFIG_MTD_NAND_BCM47XXNFLASH=y +CONFIG_MTD_NAND_BRCMNAND=y +CONFIG_MTD_NAND_BRCMNAND_BCMA=y +CONFIG_MTD_NAND_ECC=y +CONFIG_MTD_PARSER_TRX=y +CONFIG_MTD_PHYSMAP=y +CONFIG_NEED_DMA_MAP_STATE=y +CONFIG_NEED_PER_CPU_KM=y +CONFIG_NO_EXCEPT_FILL=y +CONFIG_NO_GENERIC_PCI_IOPORT_MAP=y +# CONFIG_OF is not set +CONFIG_PCI=y +CONFIG_PCI_DISABLE_COMMON_QUIRKS=y +CONFIG_PCI_DOMAINS=y +CONFIG_PCI_DRIVERS_LEGACY=y +CONFIG_PERF_USE_VMALLOC=y +CONFIG_PGTABLE_LEVELS=2 +CONFIG_PHYLIB=y +CONFIG_SERIAL_8250_EXTENDED=y +CONFIG_SERIAL_8250_SHARE_IRQ=y +CONFIG_SRCU=y +CONFIG_SSB=y +CONFIG_SSB_B43_PCI_BRIDGE=y +CONFIG_SSB_BLOCKIO=y +CONFIG_SSB_DRIVER_EXTIF=y +CONFIG_SSB_DRIVER_GIGE=y +CONFIG_SSB_DRIVER_GPIO=y +CONFIG_SSB_DRIVER_MIPS=y +CONFIG_SSB_DRIVER_PCICORE=y +CONFIG_SSB_DRIVER_PCICORE_POSSIBLE=y +CONFIG_SSB_EMBEDDED=y +CONFIG_SSB_HOST_SOC=y +CONFIG_SSB_PCICORE_HOSTMODE=y +CONFIG_SSB_PCIHOST=y +CONFIG_SSB_PCIHOST_POSSIBLE=y +CONFIG_SSB_SERIAL=y +CONFIG_SSB_SFLASH=y +CONFIG_SSB_SPROM=y +CONFIG_SWCONFIG=y +CONFIG_SWCONFIG_B53=y +# CONFIG_SWCONFIG_B53_MMAP_DRIVER is not set +CONFIG_SWCONFIG_B53_PHY_DRIVER=y +CONFIG_SWCONFIG_B53_PHY_FIXUP=y +# CONFIG_SWCONFIG_B53_SRAB_DRIVER is not set +CONFIG_SWPHY=y +CONFIG_SYSCTL_EXCEPTION_TRACE=y +CONFIG_SYS_HAS_CPU_BMIPS=y +CONFIG_SYS_HAS_CPU_BMIPS32_3300=y +CONFIG_SYS_HAS_CPU_MIPS32_R1=y +CONFIG_SYS_HAS_CPU_MIPS32_R2=y +CONFIG_SYS_HAS_EARLY_PRINTK=y +CONFIG_SYS_SUPPORTS_32BIT_KERNEL=y +CONFIG_SYS_SUPPORTS_ARBIT_HZ=y +CONFIG_SYS_SUPPORTS_HIGHMEM=y +CONFIG_SYS_SUPPORTS_LITTLE_ENDIAN=y +CONFIG_SYS_SUPPORTS_MIPS16=y +CONFIG_SYS_SUPPORTS_ZBOOT=y +CONFIG_TICK_CPU_ACCOUNTING=y +CONFIG_TINY_SRCU=y +CONFIG_USB_SUPPORT=y +CONFIG_USE_GENERIC_EARLY_PRINTK_8250=y +CONFIG_WATCHDOG_CORE=y diff --git a/target/linux/bcm47xx/patches-5.15/100-v5.18-mtd-rawnand-brcmnand-Assign-soc-as-early-as-possible.patch b/target/linux/bcm47xx/patches-5.15/100-v5.18-mtd-rawnand-brcmnand-Assign-soc-as-early-as-possible.patch new file mode 100644 index 00000000000..8efda108095 --- /dev/null +++ b/target/linux/bcm47xx/patches-5.15/100-v5.18-mtd-rawnand-brcmnand-Assign-soc-as-early-as-possible.patch @@ -0,0 +1,33 @@ +From: Florian Fainelli +Subject: [PATCH v3 1/9] mtd: rawnand: brcmnand: Assign soc as early as possible +Date: Fri, 07 Jan 2022 10:46:06 -0800 +Content-Type: text/plain; charset="utf-8" + +In order to key off the brcmnand_probe() code in subsequent changes +depending upon ctrl->soc, assign that variable as early as possible, +instead of much later when we have checked that it is non-NULL. + +Signed-off-by: Florian Fainelli +--- + drivers/mtd/nand/raw/brcmnand/brcmnand.c | 3 +-- + 1 file changed, 1 insertion(+), 2 deletions(-) + +--- a/drivers/mtd/nand/raw/brcmnand/brcmnand.c ++++ b/drivers/mtd/nand/raw/brcmnand/brcmnand.c +@@ -2949,6 +2949,7 @@ int brcmnand_probe(struct platform_devic + + dev_set_drvdata(dev, ctrl); + ctrl->dev = dev; ++ ctrl->soc = soc; + + init_completion(&ctrl->done); + init_completion(&ctrl->dma_done); +@@ -3089,8 +3090,6 @@ int brcmnand_probe(struct platform_devic + * interesting ways + */ + if (soc) { +- ctrl->soc = soc; +- + ret = devm_request_irq(dev, ctrl->irq, brcmnand_irq, 0, + DRV_NAME, ctrl); + diff --git a/target/linux/bcm47xx/patches-5.15/101-v5.18-mtd-rawnand-brcmnand-Allow-SoC-to-provide-I-O-operations.patch b/target/linux/bcm47xx/patches-5.15/101-v5.18-mtd-rawnand-brcmnand-Allow-SoC-to-provide-I-O-operations.patch new file mode 100644 index 00000000000..23f5df30158 --- /dev/null +++ b/target/linux/bcm47xx/patches-5.15/101-v5.18-mtd-rawnand-brcmnand-Allow-SoC-to-provide-I-O-operations.patch @@ -0,0 +1,150 @@ +From: Florian Fainelli +Subject: [PATCH v3 2/9] mtd: rawnand: brcmnand: Allow SoC to provide I/O operations +Date: Fri, 07 Jan 2022 10:46:07 -0800 +Content-Type: text/plain; charset="utf-8" + +Allow a brcmnand_soc instance to provide a custom set of I/O operations +which we will require when using this driver on a BCMA bus which is not +directly memory mapped I/O. Update the nand_{read,write}_reg accordingly +to use the SoC operations if provided. + +To minimize the penalty on other SoCs which do support standard MMIO +accesses, we use a static key which is disabled by default and gets +enabled if a soc implementation does provide I/O operations. + +Signed-off-by: Florian Fainelli +--- + drivers/mtd/nand/raw/brcmnand/brcmnand.c | 28 +++++++++++++++++++++-- + drivers/mtd/nand/raw/brcmnand/brcmnand.h | 29 ++++++++++++++++++++++++ + 2 files changed, 55 insertions(+), 2 deletions(-) + +--- a/drivers/mtd/nand/raw/brcmnand/brcmnand.c ++++ b/drivers/mtd/nand/raw/brcmnand/brcmnand.c +@@ -25,6 +25,7 @@ + #include + #include + #include ++#include + #include + #include + +@@ -207,6 +208,8 @@ enum { + + struct brcmnand_host; + ++static DEFINE_STATIC_KEY_FALSE(brcmnand_soc_has_ops_key); ++ + struct brcmnand_controller { + struct device *dev; + struct nand_controller controller; +@@ -589,15 +592,25 @@ enum { + INTFC_CTLR_READY = BIT(31), + }; + ++static inline bool brcmnand_non_mmio_ops(struct brcmnand_controller *ctrl) ++{ ++ return static_branch_unlikely(&brcmnand_soc_has_ops_key); ++} ++ + static inline u32 nand_readreg(struct brcmnand_controller *ctrl, u32 offs) + { ++ if (brcmnand_non_mmio_ops(ctrl)) ++ return brcmnand_soc_read(ctrl->soc, offs); + return brcmnand_readl(ctrl->nand_base + offs); + } + + static inline void nand_writereg(struct brcmnand_controller *ctrl, u32 offs, + u32 val) + { +- brcmnand_writel(val, ctrl->nand_base + offs); ++ if (brcmnand_non_mmio_ops(ctrl)) ++ brcmnand_soc_write(ctrl->soc, val, offs); ++ else ++ brcmnand_writel(val, ctrl->nand_base + offs); + } + + static int brcmnand_revision_init(struct brcmnand_controller *ctrl) +@@ -763,13 +776,18 @@ static inline void brcmnand_rmw_reg(stru + + static inline u32 brcmnand_read_fc(struct brcmnand_controller *ctrl, int word) + { ++ if (brcmnand_non_mmio_ops(ctrl)) ++ return brcmnand_soc_read(ctrl->soc, BRCMNAND_NON_MMIO_FC_ADDR); + return __raw_readl(ctrl->nand_fc + word * 4); + } + + static inline void brcmnand_write_fc(struct brcmnand_controller *ctrl, + int word, u32 val) + { +- __raw_writel(val, ctrl->nand_fc + word * 4); ++ if (brcmnand_non_mmio_ops(ctrl)) ++ brcmnand_soc_write(ctrl->soc, val, BRCMNAND_NON_MMIO_FC_ADDR); ++ else ++ __raw_writel(val, ctrl->nand_fc + word * 4); + } + + static inline void edu_writel(struct brcmnand_controller *ctrl, +@@ -2951,6 +2969,12 @@ int brcmnand_probe(struct platform_devic + ctrl->dev = dev; + ctrl->soc = soc; + ++ /* Enable the static key if the soc provides I/O operations indicating ++ * that a non-memory mapped IO access path must be used ++ */ ++ if (brcmnand_soc_has_ops(ctrl->soc)) ++ static_branch_enable(&brcmnand_soc_has_ops_key); ++ + init_completion(&ctrl->done); + init_completion(&ctrl->dma_done); + init_completion(&ctrl->edu_done); +--- a/drivers/mtd/nand/raw/brcmnand/brcmnand.h ++++ b/drivers/mtd/nand/raw/brcmnand/brcmnand.h +@@ -11,12 +11,25 @@ + + struct platform_device; + struct dev_pm_ops; ++struct brcmnand_io_ops; ++ ++/* Special register offset constant to intercept a non-MMIO access ++ * to the flash cache register space. This is intentionally large ++ * not to overlap with an existing offset. ++ */ ++#define BRCMNAND_NON_MMIO_FC_ADDR 0xffffffff + + struct brcmnand_soc { + bool (*ctlrdy_ack)(struct brcmnand_soc *soc); + void (*ctlrdy_set_enabled)(struct brcmnand_soc *soc, bool en); + void (*prepare_data_bus)(struct brcmnand_soc *soc, bool prepare, + bool is_param); ++ const struct brcmnand_io_ops *ops; ++}; ++ ++struct brcmnand_io_ops { ++ u32 (*read_reg)(struct brcmnand_soc *soc, u32 offset); ++ void (*write_reg)(struct brcmnand_soc *soc, u32 val, u32 offset); + }; + + static inline void brcmnand_soc_data_bus_prepare(struct brcmnand_soc *soc, +@@ -58,6 +71,22 @@ static inline void brcmnand_writel(u32 v + writel_relaxed(val, addr); + } + ++static inline bool brcmnand_soc_has_ops(struct brcmnand_soc *soc) ++{ ++ return soc && soc->ops && soc->ops->read_reg && soc->ops->write_reg; ++} ++ ++static inline u32 brcmnand_soc_read(struct brcmnand_soc *soc, u32 offset) ++{ ++ return soc->ops->read_reg(soc, offset); ++} ++ ++static inline void brcmnand_soc_write(struct brcmnand_soc *soc, u32 val, ++ u32 offset) ++{ ++ soc->ops->write_reg(soc, val, offset); ++} ++ + int brcmnand_probe(struct platform_device *pdev, struct brcmnand_soc *soc); + int brcmnand_remove(struct platform_device *pdev); + diff --git a/target/linux/bcm47xx/patches-5.15/102-v5.18-mtd-rawnand-brcmnand-Avoid-pdev-in-brcmnand_init_cs.patch b/target/linux/bcm47xx/patches-5.15/102-v5.18-mtd-rawnand-brcmnand-Avoid-pdev-in-brcmnand_init_cs.patch new file mode 100644 index 00000000000..d9324c25953 --- /dev/null +++ b/target/linux/bcm47xx/patches-5.15/102-v5.18-mtd-rawnand-brcmnand-Avoid-pdev-in-brcmnand_init_cs.patch @@ -0,0 +1,52 @@ +From: Florian Fainelli +Subject: [PATCH v3 3/9] mtd: rawnand: brcmnand: Avoid pdev in brcmnand_init_cs() +Date: Fri, 07 Jan 2022 10:46:08 -0800 +Content-Type: text/plain; charset="utf-8" + +In preparation for encapsulating more of what the loop calling +brcmnand_init_cs() does, avoid using platform_device when it is the +device behind platform_device that we are using for printing errors. + +No functional changes introduced. + +Signed-off-by: Florian Fainelli +--- + drivers/mtd/nand/raw/brcmnand/brcmnand.c | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +--- a/drivers/mtd/nand/raw/brcmnand/brcmnand.c ++++ b/drivers/mtd/nand/raw/brcmnand/brcmnand.c +@@ -2722,7 +2722,7 @@ static const struct nand_controller_ops + static int brcmnand_init_cs(struct brcmnand_host *host, struct device_node *dn) + { + struct brcmnand_controller *ctrl = host->ctrl; +- struct platform_device *pdev = host->pdev; ++ struct device *dev = ctrl->dev; + struct mtd_info *mtd; + struct nand_chip *chip; + int ret; +@@ -2730,7 +2730,7 @@ static int brcmnand_init_cs(struct brcmn + + ret = of_property_read_u32(dn, "reg", &host->cs); + if (ret) { +- dev_err(&pdev->dev, "can't get chip-select\n"); ++ dev_err(dev, "can't get chip-select\n"); + return -ENXIO; + } + +@@ -2739,13 +2739,13 @@ static int brcmnand_init_cs(struct brcmn + + nand_set_flash_node(chip, dn); + nand_set_controller_data(chip, host); +- mtd->name = devm_kasprintf(&pdev->dev, GFP_KERNEL, "brcmnand.%d", ++ mtd->name = devm_kasprintf(dev, GFP_KERNEL, "brcmnand.%d", + host->cs); + if (!mtd->name) + return -ENOMEM; + + mtd->owner = THIS_MODULE; +- mtd->dev.parent = &pdev->dev; ++ mtd->dev.parent = dev; + + chip->legacy.cmd_ctrl = brcmnand_cmd_ctrl; + chip->legacy.cmdfunc = brcmnand_cmdfunc; diff --git a/target/linux/bcm47xx/patches-5.15/103-v5.18-mtd-rawnand-brcmnand-Move-OF-operations-out-of-brcmnand_init_cs.patch b/target/linux/bcm47xx/patches-5.15/103-v5.18-mtd-rawnand-brcmnand-Move-OF-operations-out-of-brcmnand_init_cs.patch new file mode 100644 index 00000000000..34fd1b47eab --- /dev/null +++ b/target/linux/bcm47xx/patches-5.15/103-v5.18-mtd-rawnand-brcmnand-Move-OF-operations-out-of-brcmnand_init_cs.patch @@ -0,0 +1,63 @@ +From: Florian Fainelli +Subject: [PATCH v3 4/9] mtd: rawnand: brcmnand: Move OF operations out of brcmnand_init_cs() +Date: Fri, 07 Jan 2022 10:46:09 -0800 +Content-Type: text/plain; charset="utf-8" + +In order to initialize a given chip select object for use by the +brcmnand driver, move all of the Device Tree specific routines outside +of brcmnand_init_cs() in order to make it usable in a platform data +configuration which will be necessary for supporting BCMA chips. + +No functional changes introduced. + +Signed-off-by: Florian Fainelli +--- + drivers/mtd/nand/raw/brcmnand/brcmnand.c | 20 +++++++++++--------- + 1 file changed, 11 insertions(+), 9 deletions(-) + +--- a/drivers/mtd/nand/raw/brcmnand/brcmnand.c ++++ b/drivers/mtd/nand/raw/brcmnand/brcmnand.c +@@ -2719,7 +2719,7 @@ static const struct nand_controller_ops + .attach_chip = brcmnand_attach_chip, + }; + +-static int brcmnand_init_cs(struct brcmnand_host *host, struct device_node *dn) ++static int brcmnand_init_cs(struct brcmnand_host *host) + { + struct brcmnand_controller *ctrl = host->ctrl; + struct device *dev = ctrl->dev; +@@ -2728,16 +2728,9 @@ static int brcmnand_init_cs(struct brcmn + int ret; + u16 cfg_offs; + +- ret = of_property_read_u32(dn, "reg", &host->cs); +- if (ret) { +- dev_err(dev, "can't get chip-select\n"); +- return -ENXIO; +- } +- + mtd = nand_to_mtd(&host->chip); + chip = &host->chip; + +- nand_set_flash_node(chip, dn); + nand_set_controller_data(chip, host); + mtd->name = devm_kasprintf(dev, GFP_KERNEL, "brcmnand.%d", + host->cs); +@@ -3144,7 +3137,16 @@ int brcmnand_probe(struct platform_devic + host->pdev = pdev; + host->ctrl = ctrl; + +- ret = brcmnand_init_cs(host, child); ++ ret = of_property_read_u32(child, "reg", &host->cs); ++ if (ret) { ++ dev_err(dev, "can't get chip-select\n"); ++ devm_kfree(dev, host); ++ continue; ++ } ++ ++ nand_set_flash_node(&host->chip, child); ++ ++ ret = brcmnand_init_cs(host); + if (ret) { + devm_kfree(dev, host); + continue; /* Try all chip-selects */ diff --git a/target/linux/bcm47xx/patches-5.15/104-v5.18-mtd-rawnand-brcmnand-Allow-working-without-interrupts.patch b/target/linux/bcm47xx/patches-5.15/104-v5.18-mtd-rawnand-brcmnand-Allow-working-without-interrupts.patch new file mode 100644 index 00000000000..3a9d18fa21c --- /dev/null +++ b/target/linux/bcm47xx/patches-5.15/104-v5.18-mtd-rawnand-brcmnand-Allow-working-without-interrupts.patch @@ -0,0 +1,91 @@ +From: Florian Fainelli +Subject: [PATCH v3 5/9] mtd: rawnand: brcmnand: Allow working without interrupts +Date: Fri, 07 Jan 2022 10:46:10 -0800 +Content-Type: text/plain; charset="utf-8" + +The BCMA devices include the brcmnand controller but they do not wire up +any interrupt line, allow the main interrupt to be optional and update +the completion path to also check for the lack of an interrupt line. + +Signed-off-by: Florian Fainelli +--- + drivers/mtd/nand/raw/brcmnand/brcmnand.c | 52 +++++++++++------------- + 1 file changed, 24 insertions(+), 28 deletions(-) + +--- a/drivers/mtd/nand/raw/brcmnand/brcmnand.c ++++ b/drivers/mtd/nand/raw/brcmnand/brcmnand.c +@@ -216,7 +216,7 @@ struct brcmnand_controller { + void __iomem *nand_base; + void __iomem *nand_fc; /* flash cache */ + void __iomem *flash_dma_base; +- unsigned int irq; ++ int irq; + unsigned int dma_irq; + int nand_version; + +@@ -1590,7 +1590,7 @@ static bool brcmstb_nand_wait_for_comple + bool err = false; + int sts; + +- if (mtd->oops_panic_write) { ++ if (mtd->oops_panic_write || ctrl->irq < 0) { + /* switch to interrupt polling and PIO mode */ + disable_ctrl_irqs(ctrl); + sts = bcmnand_ctrl_poll_status(ctrl, NAND_CTRL_RDY, +@@ -3095,33 +3095,29 @@ int brcmnand_probe(struct platform_devic + } + + /* IRQ */ +- ctrl->irq = platform_get_irq(pdev, 0); +- if ((int)ctrl->irq < 0) { +- dev_err(dev, "no IRQ defined\n"); +- ret = -ENODEV; +- goto err; +- } +- +- /* +- * Some SoCs integrate this controller (e.g., its interrupt bits) in +- * interesting ways +- */ +- if (soc) { +- ret = devm_request_irq(dev, ctrl->irq, brcmnand_irq, 0, +- DRV_NAME, ctrl); +- +- /* Enable interrupt */ +- ctrl->soc->ctlrdy_ack(ctrl->soc); +- ctrl->soc->ctlrdy_set_enabled(ctrl->soc, true); +- } else { +- /* Use standard interrupt infrastructure */ +- ret = devm_request_irq(dev, ctrl->irq, brcmnand_ctlrdy_irq, 0, +- DRV_NAME, ctrl); +- } +- if (ret < 0) { +- dev_err(dev, "can't allocate IRQ %d: error %d\n", +- ctrl->irq, ret); +- goto err; ++ ctrl->irq = platform_get_irq_optional(pdev, 0); ++ if (ctrl->irq > 0) { ++ /* ++ * Some SoCs integrate this controller (e.g., its interrupt bits) in ++ * interesting ways ++ */ ++ if (soc) { ++ ret = devm_request_irq(dev, ctrl->irq, brcmnand_irq, 0, ++ DRV_NAME, ctrl); ++ ++ /* Enable interrupt */ ++ ctrl->soc->ctlrdy_ack(ctrl->soc); ++ ctrl->soc->ctlrdy_set_enabled(ctrl->soc, true); ++ } else { ++ /* Use standard interrupt infrastructure */ ++ ret = devm_request_irq(dev, ctrl->irq, brcmnand_ctlrdy_irq, 0, ++ DRV_NAME, ctrl); ++ } ++ if (ret < 0) { ++ dev_err(dev, "can't allocate IRQ %d: error %d\n", ++ ctrl->irq, ret); ++ goto err; ++ } + } + + for_each_available_child_of_node(dn, child) { diff --git a/target/linux/bcm47xx/patches-5.15/105-v5.18-mtd-rawnand-brcmnand-Add-platform-data-structure-for-BCMA.patch b/target/linux/bcm47xx/patches-5.15/105-v5.18-mtd-rawnand-brcmnand-Add-platform-data-structure-for-BCMA.patch new file mode 100644 index 00000000000..973a3e95ee1 --- /dev/null +++ b/target/linux/bcm47xx/patches-5.15/105-v5.18-mtd-rawnand-brcmnand-Add-platform-data-structure-for-BCMA.patch @@ -0,0 +1,115 @@ +From: Florian Fainelli +Subject: [PATCH v3 6/9] mtd: rawnand: brcmnand: Add platform data structure for BCMA +Date: Fri, 07 Jan 2022 10:46:11 -0800 +Content-Type: text/plain; charset="utf-8" + +Update the BCMA's chipcommon nand flash driver to detect which +chip-select is used and pass that information via platform data to the +brcmnand driver. Make sure that the brcmnand platform data structure is +always at the beginning of the platform data of the "nflash" device +created by BCMA to allow brcmnand to safely de-reference it. + +Signed-off-by: Florian Fainelli +--- + MAINTAINERS | 1 + + drivers/bcma/driver_chipcommon_nflash.c | 20 +++++++++++++++++++- + include/linux/bcma/bcma_driver_chipcommon.h | 5 +++++ + include/linux/platform_data/brcmnand.h | 12 ++++++++++++ + 4 files changed, 37 insertions(+), 1 deletion(-) + create mode 100644 include/linux/platform_data/brcmnand.h + +--- a/MAINTAINERS ++++ b/MAINTAINERS +@@ -3712,6 +3712,7 @@ L: linux-mtd@lists.infradead.org + L: bcm-kernel-feedback-list@broadcom.com + S: Maintained + F: drivers/mtd/nand/raw/brcmnand/ ++F: include/linux/platform_data/brcmnand.h + + BROADCOM SYSTEMPORT ETHERNET DRIVER + M: Florian Fainelli +--- a/drivers/bcma/driver_chipcommon_nflash.c ++++ b/drivers/bcma/driver_chipcommon_nflash.c +@@ -7,18 +7,28 @@ + + #include "bcma_private.h" + ++#include + #include ++#include + #include + ++/* Alternate NAND controller driver name in order to allow both bcm47xxnflash ++ * and bcma_brcmnand to be built into the same kernel image. ++ */ ++static const char *bcma_nflash_alt_name = "bcma_brcmnand"; ++ + struct platform_device bcma_nflash_dev = { + .name = "bcma_nflash", + .num_resources = 0, + }; + ++static const char *probes[] = { "bcm47xxpart", NULL }; ++ + /* Initialize NAND flash access */ + int bcma_nflash_init(struct bcma_drv_cc *cc) + { + struct bcma_bus *bus = cc->core->bus; ++ u32 reg; + + if (bus->chipinfo.id != BCMA_CHIP_ID_BCM4706 && + cc->core->id.rev != 38) { +@@ -33,8 +43,16 @@ int bcma_nflash_init(struct bcma_drv_cc + + cc->nflash.present = true; + if (cc->core->id.rev == 38 && +- (cc->status & BCMA_CC_CHIPST_5357_NAND_BOOT)) ++ (cc->status & BCMA_CC_CHIPST_5357_NAND_BOOT)) { + cc->nflash.boot = true; ++ /* Determine the chip select that is being used */ ++ reg = bcma_cc_read32(cc, BCMA_CC_NAND_CS_NAND_SELECT) & 0xff; ++ cc->nflash.brcmnand_info.chip_select = ffs(reg) - 1; ++ cc->nflash.brcmnand_info.part_probe_types = probes; ++ cc->nflash.brcmnand_info.ecc_stepsize = 512; ++ cc->nflash.brcmnand_info.ecc_strength = 1; ++ bcma_nflash_dev.name = bcma_nflash_alt_name; ++ } + + /* Prepare platform device, but don't register it yet. It's too early, + * malloc (required by device_private_init) is not available yet. */ +--- a/include/linux/bcma/bcma_driver_chipcommon.h ++++ b/include/linux/bcma/bcma_driver_chipcommon.h +@@ -3,6 +3,7 @@ + #define LINUX_BCMA_DRIVER_CC_H_ + + #include ++#include + #include + + /** ChipCommon core registers. **/ +@@ -599,6 +600,10 @@ struct bcma_sflash { + + #ifdef CONFIG_BCMA_NFLASH + struct bcma_nflash { ++ /* Must be the fist member for the brcmnand driver to ++ * de-reference that structure. ++ */ ++ struct brcmnand_platform_data brcmnand_info; + bool present; + bool boot; /* This is the flash the SoC boots from */ + }; +--- /dev/null ++++ b/include/linux/platform_data/brcmnand.h +@@ -0,0 +1,12 @@ ++/* SPDX-License-Identifier: GPL-2.0-only */ ++#ifndef BRCMNAND_PLAT_DATA_H ++#define BRCMNAND_PLAT_DATA_H ++ ++struct brcmnand_platform_data { ++ int chip_select; ++ const char * const *part_probe_types; ++ unsigned int ecc_stepsize; ++ unsigned int ecc_strength; ++}; ++ ++#endif /* BRCMNAND_PLAT_DATA_H */ diff --git a/target/linux/bcm47xx/patches-5.15/106-v5.18-mtd-rawnand-brcmnand-Allow-platform-data-instantation.patch b/target/linux/bcm47xx/patches-5.15/106-v5.18-mtd-rawnand-brcmnand-Allow-platform-data-instantation.patch new file mode 100644 index 00000000000..fb9ee07d041 --- /dev/null +++ b/target/linux/bcm47xx/patches-5.15/106-v5.18-mtd-rawnand-brcmnand-Allow-platform-data-instantation.patch @@ -0,0 +1,124 @@ +From: Florian Fainelli +Subject: [PATCH v3 7/9] mtd: rawnand: brcmnand: Allow platform data instantation +Date: Fri, 07 Jan 2022 10:46:12 -0800 +Content-Type: text/plain; charset="utf-8" + +Make use of the recently refactored code in brcmnand_init_cs() and +derive the chip-select from the platform data that is supplied. Update +the various code paths to avoid relying on possibly non-existent +resources, too. + +Signed-off-by: Florian Fainelli +--- + drivers/mtd/nand/raw/brcmnand/brcmnand.c | 45 ++++++++++++++++++------ + 1 file changed, 35 insertions(+), 10 deletions(-) + +--- a/drivers/mtd/nand/raw/brcmnand/brcmnand.c ++++ b/drivers/mtd/nand/raw/brcmnand/brcmnand.c +@@ -9,6 +9,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -2719,7 +2720,8 @@ static const struct nand_controller_ops + .attach_chip = brcmnand_attach_chip, + }; + +-static int brcmnand_init_cs(struct brcmnand_host *host) ++static int brcmnand_init_cs(struct brcmnand_host *host, ++ const char * const *part_probe_types) + { + struct brcmnand_controller *ctrl = host->ctrl; + struct device *dev = ctrl->dev; +@@ -2772,7 +2774,7 @@ static int brcmnand_init_cs(struct brcmn + if (ret) + return ret; + +- ret = mtd_device_register(mtd, NULL, 0); ++ ret = mtd_device_parse_register(mtd, part_probe_types, NULL, NULL, 0); + if (ret) + nand_cleanup(chip); + +@@ -2941,17 +2943,15 @@ static int brcmnand_edu_setup(struct pla + + int brcmnand_probe(struct platform_device *pdev, struct brcmnand_soc *soc) + { ++ struct brcmnand_platform_data *pd = dev_get_platdata(&pdev->dev); + struct device *dev = &pdev->dev; + struct device_node *dn = dev->of_node, *child; + struct brcmnand_controller *ctrl; ++ struct brcmnand_host *host; + struct resource *res; + int ret; + +- /* We only support device-tree instantiation */ +- if (!dn) +- return -ENODEV; +- +- if (!of_match_node(brcmnand_of_match, dn)) ++ if (dn && !of_match_node(brcmnand_of_match, dn)) + return -ENODEV; + + ctrl = devm_kzalloc(dev, sizeof(*ctrl), GFP_KERNEL); +@@ -2978,7 +2978,7 @@ int brcmnand_probe(struct platform_devic + /* NAND register range */ + res = platform_get_resource(pdev, IORESOURCE_MEM, 0); + ctrl->nand_base = devm_ioremap_resource(dev, res); +- if (IS_ERR(ctrl->nand_base)) ++ if (IS_ERR(ctrl->nand_base) && !brcmnand_soc_has_ops(soc)) + return PTR_ERR(ctrl->nand_base); + + /* Enable clock before using NAND registers */ +@@ -3122,7 +3122,6 @@ int brcmnand_probe(struct platform_devic + + for_each_available_child_of_node(dn, child) { + if (of_device_is_compatible(child, "brcm,nandcs")) { +- struct brcmnand_host *host; + + host = devm_kzalloc(dev, sizeof(*host), GFP_KERNEL); + if (!host) { +@@ -3142,7 +3141,7 @@ int brcmnand_probe(struct platform_devic + + nand_set_flash_node(&host->chip, child); + +- ret = brcmnand_init_cs(host); ++ ret = brcmnand_init_cs(host, NULL); + if (ret) { + devm_kfree(dev, host); + continue; /* Try all chip-selects */ +@@ -3152,6 +3151,32 @@ int brcmnand_probe(struct platform_devic + } + } + ++ if (!list_empty(&ctrl->host_list)) ++ return 0; ++ ++ if (!pd) { ++ ret = -ENODEV; ++ goto err; ++ } ++ ++ /* If we got there we must have been probing via platform data */ ++ host = devm_kzalloc(dev, sizeof(*host), GFP_KERNEL); ++ if (!host) { ++ ret = -ENOMEM; ++ goto err; ++ } ++ host->pdev = pdev; ++ host->ctrl = ctrl; ++ host->cs = pd->chip_select; ++ host->chip.ecc.size = pd->ecc_stepsize; ++ host->chip.ecc.strength = pd->ecc_strength; ++ ++ ret = brcmnand_init_cs(host, pd->part_probe_types); ++ if (ret) ++ goto err; ++ ++ list_add_tail(&host->node, &ctrl->host_list); ++ + /* No chip-selects could initialize properly */ + if (list_empty(&ctrl->host_list)) { + ret = -ENODEV; diff --git a/target/linux/bcm47xx/patches-5.15/107-v5.18-mtd-rawnand-brcmnand-BCMA-controller-uses-command-shift-of-0.patch b/target/linux/bcm47xx/patches-5.15/107-v5.18-mtd-rawnand-brcmnand-BCMA-controller-uses-command-shift-of-0.patch new file mode 100644 index 00000000000..39f34aab29d --- /dev/null +++ b/target/linux/bcm47xx/patches-5.15/107-v5.18-mtd-rawnand-brcmnand-BCMA-controller-uses-command-shift-of-0.patch @@ -0,0 +1,29 @@ +From: Florian Fainelli +Subject: [PATCH v3 8/9] mtd: rawnand: brcmnand: BCMA controller uses command shift of 0 +Date: Fri, 07 Jan 2022 10:46:13 -0800 +Content-Type: text/plain; charset="utf-8" + +For some odd and unexplained reason the BCMA NAND controller, albeit +revision 3.4 uses a command shift of 0 instead of 24 as it should be, +quirk that. + +Signed-off-by: Florian Fainelli +--- + drivers/mtd/nand/raw/brcmnand/brcmnand.c | 6 ++++++ + 1 file changed, 6 insertions(+) + +--- a/drivers/mtd/nand/raw/brcmnand/brcmnand.c ++++ b/drivers/mtd/nand/raw/brcmnand/brcmnand.c +@@ -913,6 +913,12 @@ static void brcmnand_wr_corr_thresh(stru + + static inline int brcmnand_cmd_shift(struct brcmnand_controller *ctrl) + { ++ /* Kludge for the BCMA-based NAND controller which does not actually ++ * shift the command ++ */ ++ if (ctrl->nand_version == 0x0304 && brcmnand_non_mmio_ops(ctrl)) ++ return 0; ++ + if (ctrl->nand_version < 0x0602) + return 24; + return 0; diff --git a/target/linux/bcm47xx/patches-5.15/108-v5.18-mtd-rawnand-brcmnand-Add-BCMA-shim.patch b/target/linux/bcm47xx/patches-5.15/108-v5.18-mtd-rawnand-brcmnand-Add-BCMA-shim.patch new file mode 100644 index 00000000000..eabb4c24750 --- /dev/null +++ b/target/linux/bcm47xx/patches-5.15/108-v5.18-mtd-rawnand-brcmnand-Add-BCMA-shim.patch @@ -0,0 +1,201 @@ +From: Florian Fainelli +Subject: [PATCH v3 9/9] mtd: rawnand: brcmnand: Add BCMA shim +Date: Fri, 07 Jan 2022 10:46:14 -0800 +Content-Type: text/plain; charset="utf-8" + +Add a BCMA shim to allow us to register the brcmnand driver using the +BCMA bus which provides indirect memory mapped access to SoC registers. + +There are a number of registers that need to be byte swapped because +they are natively big endian, coming directly from the NAND chip, and +there is no bus interface unlike the iProc or STB platforms that +performs the byte swapping for us. + +Signed-off-by: Florian Fainelli +--- + drivers/mtd/nand/raw/Kconfig | 13 +++ + drivers/mtd/nand/raw/brcmnand/Makefile | 2 + + drivers/mtd/nand/raw/brcmnand/bcma_nand.c | 132 ++++++++++++++++++++++ + drivers/mtd/nand/raw/brcmnand/brcmnand.c | 4 + + 4 files changed, 151 insertions(+) + create mode 100644 drivers/mtd/nand/raw/brcmnand/bcma_nand.c + +--- a/drivers/mtd/nand/raw/Kconfig ++++ b/drivers/mtd/nand/raw/Kconfig +@@ -236,6 +236,19 @@ config MTD_NAND_BRCMNAND + originally designed for Set-Top Box but is used on various BCM7xxx, + BCM3xxx, BCM63xxx, iProc/Cygnus and more. + ++if MTD_NAND_BRCMNAND ++ ++config MTD_NAND_BRCMNAND_BCMA ++ tristate "Broadcom BCMA NAND controller" ++ depends on BCMA_NFLASH ++ depends on BCMA ++ help ++ Enables the BRCMNAND controller over BCMA on BCM47186/BCM5358 SoCs. ++ The glue driver will take care of performing the low-level I/O ++ operations to interface the BRCMNAND controller over the BCMA bus. ++ ++endif # MTD_NAND_BRCMNAND ++ + config MTD_NAND_BCM47XXNFLASH + tristate "BCM4706 BCMA NAND controller" + depends on BCMA_NFLASH +--- a/drivers/mtd/nand/raw/brcmnand/Makefile ++++ b/drivers/mtd/nand/raw/brcmnand/Makefile +@@ -6,3 +6,5 @@ obj-$(CONFIG_MTD_NAND_BRCMNAND) += bcm6 + obj-$(CONFIG_MTD_NAND_BRCMNAND) += bcm6368_nand.o + obj-$(CONFIG_MTD_NAND_BRCMNAND) += brcmstb_nand.o + obj-$(CONFIG_MTD_NAND_BRCMNAND) += brcmnand.o ++ ++obj-$(CONFIG_MTD_NAND_BRCMNAND_BCMA) += bcma_nand.o +--- /dev/null ++++ b/drivers/mtd/nand/raw/brcmnand/bcma_nand.c +@@ -0,0 +1,132 @@ ++// SPDX-License-Identifier: GPL-2.0-only ++/* ++ * Copyright © 2021 Broadcom ++ */ ++#include ++#include ++#include ++#include ++#include ++ ++#include "brcmnand.h" ++ ++struct brcmnand_bcma_soc { ++ struct brcmnand_soc soc; ++ struct bcma_drv_cc *cc; ++}; ++ ++static inline bool brcmnand_bcma_needs_swapping(u32 offset) ++{ ++ switch (offset) { ++ case BCMA_CC_NAND_SPARE_RD0: ++ case BCMA_CC_NAND_SPARE_RD4: ++ case BCMA_CC_NAND_SPARE_RD8: ++ case BCMA_CC_NAND_SPARE_RD12: ++ case BCMA_CC_NAND_SPARE_WR0: ++ case BCMA_CC_NAND_SPARE_WR4: ++ case BCMA_CC_NAND_SPARE_WR8: ++ case BCMA_CC_NAND_SPARE_WR12: ++ case BCMA_CC_NAND_DEVID: ++ case BCMA_CC_NAND_DEVID_X: ++ case BCMA_CC_NAND_SPARE_RD16: ++ case BCMA_CC_NAND_SPARE_RD20: ++ case BCMA_CC_NAND_SPARE_RD24: ++ case BCMA_CC_NAND_SPARE_RD28: ++ return true; ++ } ++ ++ return false; ++} ++ ++static inline struct brcmnand_bcma_soc *to_bcma_soc(struct brcmnand_soc *soc) ++{ ++ return container_of(soc, struct brcmnand_bcma_soc, soc); ++} ++ ++static u32 brcmnand_bcma_read_reg(struct brcmnand_soc *soc, u32 offset) ++{ ++ struct brcmnand_bcma_soc *sc = to_bcma_soc(soc); ++ u32 val; ++ ++ /* Offset into the NAND block and deal with the flash cache separately */ ++ if (offset == BRCMNAND_NON_MMIO_FC_ADDR) ++ offset = BCMA_CC_NAND_CACHE_DATA; ++ else ++ offset += BCMA_CC_NAND_REVISION; ++ ++ val = bcma_cc_read32(sc->cc, offset); ++ ++ /* Swap if necessary */ ++ if (brcmnand_bcma_needs_swapping(offset)) ++ val = be32_to_cpu(val); ++ return val; ++} ++ ++static void brcmnand_bcma_write_reg(struct brcmnand_soc *soc, u32 val, ++ u32 offset) ++{ ++ struct brcmnand_bcma_soc *sc = to_bcma_soc(soc); ++ ++ /* Offset into the NAND block */ ++ if (offset == BRCMNAND_NON_MMIO_FC_ADDR) ++ offset = BCMA_CC_NAND_CACHE_DATA; ++ else ++ offset += BCMA_CC_NAND_REVISION; ++ ++ /* Swap if necessary */ ++ if (brcmnand_bcma_needs_swapping(offset)) ++ val = cpu_to_be32(val); ++ ++ bcma_cc_write32(sc->cc, offset, val); ++} ++ ++static struct brcmnand_io_ops brcmnand_bcma_io_ops = { ++ .read_reg = brcmnand_bcma_read_reg, ++ .write_reg = brcmnand_bcma_write_reg, ++}; ++ ++static void brcmnand_bcma_prepare_data_bus(struct brcmnand_soc *soc, bool prepare, ++ bool is_param) ++{ ++ struct brcmnand_bcma_soc *sc = to_bcma_soc(soc); ++ ++ /* Reset the cache address to ensure we are already accessing the ++ * beginning of a sub-page. ++ */ ++ bcma_cc_write32(sc->cc, BCMA_CC_NAND_CACHE_ADDR, 0); ++} ++ ++static int brcmnand_bcma_nand_probe(struct platform_device *pdev) ++{ ++ struct bcma_nflash *nflash = dev_get_platdata(&pdev->dev); ++ struct brcmnand_bcma_soc *soc; ++ ++ soc = devm_kzalloc(&pdev->dev, sizeof(*soc), GFP_KERNEL); ++ if (!soc) ++ return -ENOMEM; ++ ++ soc->cc = container_of(nflash, struct bcma_drv_cc, nflash); ++ soc->soc.prepare_data_bus = brcmnand_bcma_prepare_data_bus; ++ soc->soc.ops = &brcmnand_bcma_io_ops; ++ ++ if (soc->cc->core->bus->chipinfo.id == BCMA_CHIP_ID_BCM4706) { ++ dev_err(&pdev->dev, "Use bcm47xxnflash for 4706!\n"); ++ return -ENODEV; ++ } ++ ++ return brcmnand_probe(pdev, &soc->soc); ++} ++ ++static struct platform_driver brcmnand_bcma_nand_driver = { ++ .probe = brcmnand_bcma_nand_probe, ++ .remove = brcmnand_remove, ++ .driver = { ++ .name = "bcma_brcmnand", ++ .pm = &brcmnand_pm_ops, ++ } ++}; ++module_platform_driver(brcmnand_bcma_nand_driver); ++ ++MODULE_LICENSE("GPL v2"); ++MODULE_AUTHOR("Broadcom"); ++MODULE_DESCRIPTION("NAND controller driver glue for BCMA chips"); +--- a/drivers/mtd/nand/raw/brcmnand/brcmnand.c ++++ b/drivers/mtd/nand/raw/brcmnand/brcmnand.c +@@ -595,7 +595,11 @@ enum { + + static inline bool brcmnand_non_mmio_ops(struct brcmnand_controller *ctrl) + { ++#if IS_ENABLED(CONFIG_MTD_NAND_BRCMNAND_BCMA) + return static_branch_unlikely(&brcmnand_soc_has_ops_key); ++#else ++ return false; ++#endif + } + + static inline u32 nand_readreg(struct brcmnand_controller *ctrl, u32 offs) diff --git a/target/linux/bcm47xx/patches-5.15/159-cpu_fixes.patch b/target/linux/bcm47xx/patches-5.15/159-cpu_fixes.patch new file mode 100644 index 00000000000..0c9a9d6490e --- /dev/null +++ b/target/linux/bcm47xx/patches-5.15/159-cpu_fixes.patch @@ -0,0 +1,493 @@ +--- a/arch/mips/include/asm/r4kcache.h ++++ b/arch/mips/include/asm/r4kcache.h +@@ -28,6 +28,38 @@ + extern void (*r4k_blast_dcache)(void); + extern void (*r4k_blast_icache)(void); + ++#if defined(CONFIG_BCM47XX) && !defined(CONFIG_CPU_MIPS32_R2) ++#include ++#include ++#define BCM4710_DUMMY_RREG() bcm4710_dummy_rreg() ++ ++static inline unsigned long bcm4710_dummy_rreg(void) ++{ ++ return *(volatile unsigned long *)(KSEG1ADDR(SSB_ENUM_BASE)); ++} ++ ++#define BCM4710_FILL_TLB(addr) bcm4710_fill_tlb((void *)(addr)) ++ ++static inline unsigned long bcm4710_fill_tlb(void *addr) ++{ ++ return *(unsigned long *)addr; ++} ++ ++#define BCM4710_PROTECTED_FILL_TLB(addr) bcm4710_protected_fill_tlb((void *)(addr)) ++ ++static inline void bcm4710_protected_fill_tlb(void *addr) ++{ ++ unsigned long x; ++ get_dbe(x, (unsigned long *)addr);; ++} ++ ++#else ++#define BCM4710_DUMMY_RREG() ++ ++#define BCM4710_FILL_TLB(addr) ++#define BCM4710_PROTECTED_FILL_TLB(addr) ++#endif ++ + /* + * This macro return a properly sign-extended address suitable as base address + * for indexed cache operations. Two issues here: +@@ -61,6 +93,7 @@ static inline void flush_icache_line_ind + + static inline void flush_dcache_line_indexed(unsigned long addr) + { ++ BCM4710_DUMMY_RREG(); + cache_op(Index_Writeback_Inv_D, addr); + } + +@@ -84,11 +117,13 @@ static inline void flush_icache_line(uns + + static inline void flush_dcache_line(unsigned long addr) + { ++ BCM4710_DUMMY_RREG(); + cache_op(Hit_Writeback_Inv_D, addr); + } + + static inline void invalidate_dcache_line(unsigned long addr) + { ++ BCM4710_DUMMY_RREG(); + cache_op(Hit_Invalidate_D, addr); + } + +@@ -161,6 +196,7 @@ static inline int protected_flush_icache + #ifdef CONFIG_EVA + return protected_cachee_op(Hit_Invalidate_I, addr); + #else ++ BCM4710_DUMMY_RREG(); + return protected_cache_op(Hit_Invalidate_I, addr); + #endif + } +@@ -174,6 +210,7 @@ static inline int protected_flush_icache + */ + static inline int protected_writeback_dcache_line(unsigned long addr) + { ++ BCM4710_DUMMY_RREG(); + #ifdef CONFIG_EVA + return protected_cachee_op(Hit_Writeback_Inv_D, addr); + #else +@@ -203,8 +240,51 @@ static inline void invalidate_tcache_pag + unroll(times, _cache_op, insn, op, (addr) + (i++ * (lsize))); \ + } while (0) + ++static inline void blast_dcache(void) ++{ ++ unsigned long start = KSEG0; ++ unsigned long dcache_size = current_cpu_data.dcache.waysize * current_cpu_data.dcache.ways; ++ unsigned long end = (start + dcache_size); ++ ++ do { ++ BCM4710_DUMMY_RREG(); ++ cache_op(Index_Writeback_Inv_D, start); ++ start += current_cpu_data.dcache.linesz; ++ } while(start < end); ++} ++ ++static inline void blast_dcache_page(unsigned long page) ++{ ++ unsigned long start = page; ++ unsigned long end = start + PAGE_SIZE; ++ ++ BCM4710_FILL_TLB(start); ++ do { ++ BCM4710_DUMMY_RREG(); ++ cache_op(Hit_Writeback_Inv_D, start); ++ start += current_cpu_data.dcache.linesz; ++ } while(start < end); ++} ++ ++static inline void blast_dcache_page_indexed(unsigned long page) ++{ ++ unsigned long start = page; ++ unsigned long end = start + PAGE_SIZE; ++ unsigned long ws_inc = 1UL << current_cpu_data.dcache.waybit; ++ unsigned long ws_end = current_cpu_data.dcache.ways << ++ current_cpu_data.dcache.waybit; ++ unsigned long ws, addr; ++ for (ws = 0; ws < ws_end; ws += ws_inc) { ++ start = page + ws; ++ for (addr = start; addr < end; addr += current_cpu_data.dcache.linesz) { ++ BCM4710_DUMMY_RREG(); ++ cache_op(Index_Writeback_Inv_D, addr); ++ } ++ } ++} ++ + /* build blast_xxx, blast_xxx_page, blast_xxx_page_indexed */ +-#define __BUILD_BLAST_CACHE(pfx, desc, indexop, hitop, lsize, extra) \ ++#define __BUILD_BLAST_CACHE(pfx, desc, indexop, hitop, lsize, extra, war) \ + static inline void extra##blast_##pfx##cache##lsize(void) \ + { \ + unsigned long start = INDEX_BASE; \ +@@ -214,6 +294,7 @@ static inline void extra##blast_##pfx##c + current_cpu_data.desc.waybit; \ + unsigned long ws, addr; \ + \ ++ war \ + for (ws = 0; ws < ws_end; ws += ws_inc) \ + for (addr = start; addr < end; addr += lsize * 32) \ + cache_unroll(32, kernel_cache, indexop, \ +@@ -225,6 +306,7 @@ static inline void extra##blast_##pfx##c + unsigned long start = page; \ + unsigned long end = page + PAGE_SIZE; \ + \ ++ war \ + do { \ + cache_unroll(32, kernel_cache, hitop, start, lsize); \ + start += lsize * 32; \ +@@ -241,32 +323,33 @@ static inline void extra##blast_##pfx##c + current_cpu_data.desc.waybit; \ + unsigned long ws, addr; \ + \ ++ war \ + for (ws = 0; ws < ws_end; ws += ws_inc) \ + for (addr = start; addr < end; addr += lsize * 32) \ + cache_unroll(32, kernel_cache, indexop, \ + addr | ws, lsize); \ + } + +-__BUILD_BLAST_CACHE(d, dcache, Index_Writeback_Inv_D, Hit_Writeback_Inv_D, 16, ) +-__BUILD_BLAST_CACHE(i, icache, Index_Invalidate_I, Hit_Invalidate_I, 16, ) +-__BUILD_BLAST_CACHE(s, scache, Index_Writeback_Inv_SD, Hit_Writeback_Inv_SD, 16, ) +-__BUILD_BLAST_CACHE(d, dcache, Index_Writeback_Inv_D, Hit_Writeback_Inv_D, 32, ) +-__BUILD_BLAST_CACHE(i, icache, Index_Invalidate_I, Hit_Invalidate_I, 32, ) +-__BUILD_BLAST_CACHE(i, icache, Index_Invalidate_I, Hit_Invalidate_I_Loongson2, 32, loongson2_) +-__BUILD_BLAST_CACHE(s, scache, Index_Writeback_Inv_SD, Hit_Writeback_Inv_SD, 32, ) +-__BUILD_BLAST_CACHE(d, dcache, Index_Writeback_Inv_D, Hit_Writeback_Inv_D, 64, ) +-__BUILD_BLAST_CACHE(i, icache, Index_Invalidate_I, Hit_Invalidate_I, 64, ) +-__BUILD_BLAST_CACHE(s, scache, Index_Writeback_Inv_SD, Hit_Writeback_Inv_SD, 64, ) +-__BUILD_BLAST_CACHE(d, dcache, Index_Writeback_Inv_D, Hit_Writeback_Inv_D, 128, ) +-__BUILD_BLAST_CACHE(i, icache, Index_Invalidate_I, Hit_Invalidate_I, 128, ) +-__BUILD_BLAST_CACHE(s, scache, Index_Writeback_Inv_SD, Hit_Writeback_Inv_SD, 128, ) +- +-__BUILD_BLAST_CACHE(inv_d, dcache, Index_Writeback_Inv_D, Hit_Invalidate_D, 16, ) +-__BUILD_BLAST_CACHE(inv_d, dcache, Index_Writeback_Inv_D, Hit_Invalidate_D, 32, ) +-__BUILD_BLAST_CACHE(inv_s, scache, Index_Writeback_Inv_SD, Hit_Invalidate_SD, 16, ) +-__BUILD_BLAST_CACHE(inv_s, scache, Index_Writeback_Inv_SD, Hit_Invalidate_SD, 32, ) +-__BUILD_BLAST_CACHE(inv_s, scache, Index_Writeback_Inv_SD, Hit_Invalidate_SD, 64, ) +-__BUILD_BLAST_CACHE(inv_s, scache, Index_Writeback_Inv_SD, Hit_Invalidate_SD, 128, ) ++__BUILD_BLAST_CACHE(d, dcache, Index_Writeback_Inv_D, Hit_Writeback_Inv_D, 16, , ) ++__BUILD_BLAST_CACHE(i, icache, Index_Invalidate_I, Hit_Invalidate_I, 16, , BCM4710_FILL_TLB(start);) ++__BUILD_BLAST_CACHE(s, scache, Index_Writeback_Inv_SD, Hit_Writeback_Inv_SD, 16, , ) ++__BUILD_BLAST_CACHE(d, dcache, Index_Writeback_Inv_D, Hit_Writeback_Inv_D, 32, , ) ++__BUILD_BLAST_CACHE(i, icache, Index_Invalidate_I, Hit_Invalidate_I, 32, , BCM4710_FILL_TLB(start);) ++__BUILD_BLAST_CACHE(i, icache, Index_Invalidate_I, Hit_Invalidate_I_Loongson2, 32, loongson2_, BCM4710_FILL_TLB(start);) ++__BUILD_BLAST_CACHE(s, scache, Index_Writeback_Inv_SD, Hit_Writeback_Inv_SD, 32, , ) ++__BUILD_BLAST_CACHE(d, dcache, Index_Writeback_Inv_D, Hit_Writeback_Inv_D, 64, , ) ++__BUILD_BLAST_CACHE(i, icache, Index_Invalidate_I, Hit_Invalidate_I, 64, , BCM4710_FILL_TLB(start);) ++__BUILD_BLAST_CACHE(s, scache, Index_Writeback_Inv_SD, Hit_Writeback_Inv_SD, 64, , ) ++__BUILD_BLAST_CACHE(d, dcache, Index_Writeback_Inv_D, Hit_Writeback_Inv_D, 128, , ) ++__BUILD_BLAST_CACHE(i, icache, Index_Invalidate_I, Hit_Invalidate_I, 128, , ) ++__BUILD_BLAST_CACHE(s, scache, Index_Writeback_Inv_SD, Hit_Writeback_Inv_SD, 128, , ) ++ ++__BUILD_BLAST_CACHE(inv_d, dcache, Index_Writeback_Inv_D, Hit_Invalidate_D, 16, , ) ++__BUILD_BLAST_CACHE(inv_d, dcache, Index_Writeback_Inv_D, Hit_Invalidate_D, 32, , ) ++__BUILD_BLAST_CACHE(inv_s, scache, Index_Writeback_Inv_SD, Hit_Invalidate_SD, 16, , ) ++__BUILD_BLAST_CACHE(inv_s, scache, Index_Writeback_Inv_SD, Hit_Invalidate_SD, 32, , ) ++__BUILD_BLAST_CACHE(inv_s, scache, Index_Writeback_Inv_SD, Hit_Invalidate_SD, 64, , ) ++__BUILD_BLAST_CACHE(inv_s, scache, Index_Writeback_Inv_SD, Hit_Invalidate_SD, 128, , ) + + #define __BUILD_BLAST_USER_CACHE(pfx, desc, indexop, hitop, lsize) \ + static inline void blast_##pfx##cache##lsize##_user_page(unsigned long page) \ +@@ -291,58 +374,29 @@ __BUILD_BLAST_USER_CACHE(d, dcache, Inde + __BUILD_BLAST_USER_CACHE(i, icache, Index_Invalidate_I, Hit_Invalidate_I, 64) + + /* build blast_xxx_range, protected_blast_xxx_range */ +-#define __BUILD_BLAST_CACHE_RANGE(pfx, desc, hitop, prot, extra) \ ++#define __BUILD_BLAST_CACHE_RANGE(pfx, desc, hitop, prot, extra, war, war2) \ + static inline void prot##extra##blast_##pfx##cache##_range(unsigned long start, \ + unsigned long end) \ + { \ + unsigned long lsize = cpu_##desc##_line_size(); \ +- unsigned long lsize_2 = lsize * 2; \ +- unsigned long lsize_3 = lsize * 3; \ +- unsigned long lsize_4 = lsize * 4; \ +- unsigned long lsize_5 = lsize * 5; \ +- unsigned long lsize_6 = lsize * 6; \ +- unsigned long lsize_7 = lsize * 7; \ +- unsigned long lsize_8 = lsize * 8; \ + unsigned long addr = start & ~(lsize - 1); \ +- unsigned long aend = (end + lsize - 1) & ~(lsize - 1); \ +- int lines = (aend - addr) / lsize; \ +- \ +- while (lines >= 8) { \ +- prot##cache_op(hitop, addr); \ +- prot##cache_op(hitop, addr + lsize); \ +- prot##cache_op(hitop, addr + lsize_2); \ +- prot##cache_op(hitop, addr + lsize_3); \ +- prot##cache_op(hitop, addr + lsize_4); \ +- prot##cache_op(hitop, addr + lsize_5); \ +- prot##cache_op(hitop, addr + lsize_6); \ +- prot##cache_op(hitop, addr + lsize_7); \ +- addr += lsize_8; \ +- lines -= 8; \ +- } \ +- \ +- if (lines & 0x4) { \ +- prot##cache_op(hitop, addr); \ +- prot##cache_op(hitop, addr + lsize); \ +- prot##cache_op(hitop, addr + lsize_2); \ +- prot##cache_op(hitop, addr + lsize_3); \ +- addr += lsize_4; \ +- } \ ++ unsigned long aend = (end - 1) & ~(lsize - 1); \ + \ +- if (lines & 0x2) { \ +- prot##cache_op(hitop, addr); \ +- prot##cache_op(hitop, addr + lsize); \ +- addr += lsize_2; \ +- } \ ++ war \ + \ +- if (lines & 0x1) { \ ++ while (1) { \ ++ war2 \ + prot##cache_op(hitop, addr); \ ++ if (addr == aend) \ ++ break; \ ++ addr += lsize; \ + } \ + } + + #ifndef CONFIG_EVA + +-__BUILD_BLAST_CACHE_RANGE(d, dcache, Hit_Writeback_Inv_D, protected_, ) +-__BUILD_BLAST_CACHE_RANGE(i, icache, Hit_Invalidate_I, protected_, ) ++__BUILD_BLAST_CACHE_RANGE(d, dcache, Hit_Writeback_Inv_D, protected_, , BCM4710_PROTECTED_FILL_TLB(addr); BCM4710_PROTECTED_FILL_TLB(aend);, BCM4710_DUMMY_RREG();) ++__BUILD_BLAST_CACHE_RANGE(i, icache, Hit_Invalidate_I, protected_, , , ) + + #else + +@@ -376,15 +430,15 @@ __BUILD_PROT_BLAST_CACHE_RANGE(d, dcache + __BUILD_PROT_BLAST_CACHE_RANGE(i, icache, Hit_Invalidate_I) + + #endif +-__BUILD_BLAST_CACHE_RANGE(s, scache, Hit_Writeback_Inv_SD, protected_, ) ++__BUILD_BLAST_CACHE_RANGE(s, scache, Hit_Writeback_Inv_SD, protected_, , , ) + __BUILD_BLAST_CACHE_RANGE(i, icache, Hit_Invalidate_I_Loongson2, \ +- protected_, loongson2_) +-__BUILD_BLAST_CACHE_RANGE(d, dcache, Hit_Writeback_Inv_D, , ) +-__BUILD_BLAST_CACHE_RANGE(i, icache, Hit_Invalidate_I, , ) +-__BUILD_BLAST_CACHE_RANGE(s, scache, Hit_Writeback_Inv_SD, , ) ++ protected_, loongson2_, , ) ++__BUILD_BLAST_CACHE_RANGE(d, dcache, Hit_Writeback_Inv_D, , , BCM4710_FILL_TLB(addr); BCM4710_FILL_TLB(aend);, BCM4710_DUMMY_RREG();) ++__BUILD_BLAST_CACHE_RANGE(i, icache, Hit_Invalidate_I, , , , ) ++__BUILD_BLAST_CACHE_RANGE(s, scache, Hit_Writeback_Inv_SD, , , , ) + /* blast_inv_dcache_range */ +-__BUILD_BLAST_CACHE_RANGE(inv_d, dcache, Hit_Invalidate_D, , ) +-__BUILD_BLAST_CACHE_RANGE(inv_s, scache, Hit_Invalidate_SD, , ) ++__BUILD_BLAST_CACHE_RANGE(inv_d, dcache, Hit_Invalidate_D, , , , BCM4710_DUMMY_RREG();) ++__BUILD_BLAST_CACHE_RANGE(inv_s, scache, Hit_Invalidate_SD, , , , ) + + /* Currently, this is very specific to Loongson-3 */ + #define __BUILD_BLAST_CACHE_NODE(pfx, desc, indexop, hitop, lsize) \ +--- a/arch/mips/include/asm/stackframe.h ++++ b/arch/mips/include/asm/stackframe.h +@@ -429,6 +429,10 @@ + #else + .set push + .set arch=r4000 ++#ifdef CONFIG_BCM47XX ++ nop ++ nop ++#endif + eret + .set pop + #endif +--- a/arch/mips/kernel/genex.S ++++ b/arch/mips/kernel/genex.S +@@ -22,6 +22,19 @@ + #include + #include + ++#ifdef CONFIG_BCM47XX ++# ifdef eret ++# undef eret ++# endif ++# define eret \ ++ .set push; \ ++ .set noreorder; \ ++ nop; \ ++ nop; \ ++ eret; \ ++ .set pop; ++#endif ++ + __INIT + + /* +@@ -33,6 +46,9 @@ + NESTED(except_vec3_generic, 0, sp) + .set push + .set noat ++#ifdef CONFIG_BCM47XX ++ nop ++#endif + mfc0 k1, CP0_CAUSE + andi k1, k1, 0x7c + #ifdef CONFIG_64BIT +@@ -53,6 +69,9 @@ NESTED(except_vec3_r4000, 0, sp) + .set push + .set arch=r4000 + .set noat ++#ifdef CONFIG_BCM47XX ++ nop ++#endif + mfc0 k1, CP0_CAUSE + li k0, 31<<2 + andi k1, k1, 0x7c +--- a/arch/mips/mm/c-r4k.c ++++ b/arch/mips/mm/c-r4k.c +@@ -38,6 +38,9 @@ + #include + #include + ++/* For enabling BCM4710 cache workarounds */ ++static int bcm4710 = 0; ++ + /* + * Bits describing what cache ops an SMP callback function may perform. + * +@@ -190,6 +193,9 @@ static void r4k_blast_dcache_user_page_s + { + unsigned long dc_lsize = cpu_dcache_line_size(); + ++ if (bcm4710) ++ r4k_blast_dcache_page = blast_dcache_page; ++ else + if (dc_lsize == 0) + r4k_blast_dcache_user_page = (void *)cache_noop; + else if (dc_lsize == 16) +@@ -208,6 +214,9 @@ static void r4k_blast_dcache_page_indexe + { + unsigned long dc_lsize = cpu_dcache_line_size(); + ++ if (bcm4710) ++ r4k_blast_dcache_page_indexed = blast_dcache_page_indexed; ++ else + if (dc_lsize == 0) + r4k_blast_dcache_page_indexed = (void *)cache_noop; + else if (dc_lsize == 16) +@@ -227,6 +236,9 @@ static void r4k_blast_dcache_setup(void) + { + unsigned long dc_lsize = cpu_dcache_line_size(); + ++ if (bcm4710) ++ r4k_blast_dcache = blast_dcache; ++ else + if (dc_lsize == 0) + r4k_blast_dcache = (void *)cache_noop; + else if (dc_lsize == 16) +@@ -1818,6 +1830,17 @@ static void coherency_setup(void) + * silly idea of putting something else there ... + */ + switch (current_cpu_type()) { ++ case CPU_BMIPS3300: ++ { ++ u32 cm; ++ cm = read_c0_diag(); ++ /* Enable icache */ ++ cm |= (1 << 31); ++ /* Enable dcache */ ++ cm |= (1 << 30); ++ write_c0_diag(cm); ++ } ++ break; + case CPU_R4000PC: + case CPU_R4000SC: + case CPU_R4000MC: +@@ -1864,6 +1887,15 @@ void r4k_cache_init(void) + extern void build_copy_page(void); + struct cpuinfo_mips *c = ¤t_cpu_data; + ++ /* Check if special workarounds are required */ ++#if defined(CONFIG_BCM47XX) && !defined(CONFIG_CPU_MIPS32_R2) ++ if (current_cpu_data.cputype == CPU_BMIPS32 && (current_cpu_data.processor_id & 0xff) == 0) { ++ printk("Enabling BCM4710A0 cache workarounds.\n"); ++ bcm4710 = 1; ++ } else ++#endif ++ bcm4710 = 0; ++ + probe_pcache(); + probe_vcache(); + setup_scache(); +@@ -1940,7 +1972,15 @@ void r4k_cache_init(void) + */ + local_r4k___flush_cache_all(NULL); + ++#ifdef CONFIG_BCM47XX ++ { ++ static void (*_coherency_setup)(void); ++ _coherency_setup = (void (*)(void)) KSEG1ADDR(coherency_setup); ++ _coherency_setup(); ++ } ++#else + coherency_setup(); ++#endif + board_cache_error_setup = r4k_cache_error_setup; + + /* +--- a/arch/mips/mm/tlbex.c ++++ b/arch/mips/mm/tlbex.c +@@ -984,6 +984,9 @@ void build_get_pgde32(u32 **p, unsigned + uasm_i_srl(p, ptr, ptr, SMP_CPUID_PTRSHIFT); + uasm_i_addu(p, ptr, tmp, ptr); + #else ++#ifdef CONFIG_BCM47XX ++ uasm_i_nop(p); ++#endif + UASM_i_LA_mostly(p, ptr, pgdc); + #endif + uasm_i_mfc0(p, tmp, C0_BADVADDR); /* get faulting address */ +@@ -1345,6 +1348,9 @@ static void build_r4000_tlb_refill_handl + #ifdef CONFIG_64BIT + build_get_pmde64(&p, &l, &r, K0, K1); /* get pmd in K1 */ + #else ++# ifdef CONFIG_BCM47XX ++ uasm_i_nop(&p); ++# endif + build_get_pgde32(&p, K0, K1); /* get pgd in K1 */ + #endif + +@@ -1356,6 +1362,9 @@ static void build_r4000_tlb_refill_handl + build_update_entries(&p, K0, K1); + build_tlb_write_entry(&p, &l, &r, tlb_random); + uasm_l_leave(&l, p); ++#ifdef CONFIG_BCM47XX ++ uasm_i_nop(&p); ++#endif + uasm_i_eret(&p); /* return from trap */ + } + #ifdef CONFIG_MIPS_HUGE_TLB_SUPPORT +@@ -2056,6 +2065,9 @@ build_r4000_tlbchange_handler_head(u32 * + #ifdef CONFIG_64BIT + build_get_pmde64(p, l, r, wr.r1, wr.r2); /* get pmd in ptr */ + #else ++# ifdef CONFIG_BCM47XX ++ uasm_i_nop(p); ++# endif + build_get_pgde32(p, wr.r1, wr.r2); /* get pgd in ptr */ + #endif + +@@ -2102,6 +2114,9 @@ build_r4000_tlbchange_handler_tail(u32 * + build_tlb_write_entry(p, l, r, tlb_indexed); + uasm_l_leave(l, *p); + build_restore_work_registers(p); ++#ifdef CONFIG_BCM47XX ++ uasm_i_nop(p); ++#endif + uasm_i_eret(p); /* return from trap */ + + #ifdef CONFIG_64BIT diff --git a/target/linux/bcm47xx/patches-5.15/160-kmap_coherent.patch b/target/linux/bcm47xx/patches-5.15/160-kmap_coherent.patch new file mode 100644 index 00000000000..caa3d9816bf --- /dev/null +++ b/target/linux/bcm47xx/patches-5.15/160-kmap_coherent.patch @@ -0,0 +1,78 @@ +From: Jeff Hansen +Subject: [PATCH] kmap_coherent + +On ASUS WL-500gP there are some "Data bus error"s when executing simple +commands liks "ps" or "cat /proc/1/cmdline". + +This fixes OpenWrt ticket #1485: https://dev.openwrt.org/ticket/1485 +--- +--- a/arch/mips/include/asm/cpu-features.h ++++ b/arch/mips/include/asm/cpu-features.h +@@ -242,6 +242,9 @@ + #ifndef cpu_has_pindexed_dcache + #define cpu_has_pindexed_dcache (cpu_data[0].dcache.flags & MIPS_CACHE_PINDEX) + #endif ++#ifndef cpu_use_kmap_coherent ++#define cpu_use_kmap_coherent 1 ++#endif + + /* + * I-Cache snoops remote store. This only matters on SMP. Some multiprocessors +--- a/arch/mips/include/asm/mach-bcm47xx/cpu-feature-overrides.h ++++ b/arch/mips/include/asm/mach-bcm47xx/cpu-feature-overrides.h +@@ -80,4 +80,6 @@ + #define cpu_scache_line_size() 0 + #define cpu_has_vz 0 + ++#define cpu_use_kmap_coherent 0 ++ + #endif /* __ASM_MACH_BCM47XX_CPU_FEATURE_OVERRIDES_H */ +--- a/arch/mips/mm/c-r4k.c ++++ b/arch/mips/mm/c-r4k.c +@@ -699,7 +699,7 @@ static inline void local_r4k_flush_cache + map_coherent = (cpu_has_dc_aliases && + page_mapcount(page) && + !Page_dcache_dirty(page)); +- if (map_coherent) ++ if (map_coherent && cpu_use_kmap_coherent) + vaddr = kmap_coherent(page, addr); + else + vaddr = kmap_atomic(page); +@@ -721,7 +721,7 @@ static inline void local_r4k_flush_cache + } + + if (vaddr) { +- if (map_coherent) ++ if (map_coherent && cpu_use_kmap_coherent) + kunmap_coherent(); + else + kunmap_atomic(vaddr); +--- a/arch/mips/mm/init.c ++++ b/arch/mips/mm/init.c +@@ -173,7 +173,7 @@ void copy_user_highpage(struct page *to, + void *vfrom, *vto; + + vto = kmap_atomic(to); +- if (cpu_has_dc_aliases && ++ if (cpu_has_dc_aliases && cpu_use_kmap_coherent && + page_mapcount(from) && !Page_dcache_dirty(from)) { + vfrom = kmap_coherent(from, vaddr); + copy_page(vto, vfrom); +@@ -195,7 +195,7 @@ void copy_to_user_page(struct vm_area_st + struct page *page, unsigned long vaddr, void *dst, const void *src, + unsigned long len) + { +- if (cpu_has_dc_aliases && ++ if (cpu_has_dc_aliases && cpu_use_kmap_coherent && + page_mapcount(page) && !Page_dcache_dirty(page)) { + void *vto = kmap_coherent(page, vaddr) + (vaddr & ~PAGE_MASK); + memcpy(vto, src, len); +@@ -213,7 +213,7 @@ void copy_from_user_page(struct vm_area_ + struct page *page, unsigned long vaddr, void *dst, const void *src, + unsigned long len) + { +- if (cpu_has_dc_aliases && ++ if (cpu_has_dc_aliases && cpu_use_kmap_coherent && + page_mapcount(page) && !Page_dcache_dirty(page)) { + void *vfrom = kmap_coherent(page, vaddr) + (vaddr & ~PAGE_MASK); + memcpy(dst, vfrom, len); diff --git a/target/linux/bcm47xx/patches-5.15/209-b44-register-adm-switch.patch b/target/linux/bcm47xx/patches-5.15/209-b44-register-adm-switch.patch new file mode 100644 index 00000000000..7728ec10942 --- /dev/null +++ b/target/linux/bcm47xx/patches-5.15/209-b44-register-adm-switch.patch @@ -0,0 +1,121 @@ +From b36f694256f41bc71571f467646d015dda128d14 Mon Sep 17 00:00:00 2001 +From: Hauke Mehrtens +Date: Sat, 9 Nov 2013 17:03:59 +0100 +Subject: [PATCH 210/210] b44: register adm switch + +--- + drivers/net/ethernet/broadcom/b44.c | 57 +++++++++++++++++++++++++++++++++++ + drivers/net/ethernet/broadcom/b44.h | 3 ++ + 2 files changed, 60 insertions(+) + +--- a/drivers/net/ethernet/broadcom/b44.c ++++ b/drivers/net/ethernet/broadcom/b44.c +@@ -31,6 +31,8 @@ + #include + #include + #include ++#include ++#include + + #include + #include +@@ -2243,6 +2245,69 @@ static void b44_adjust_link(struct net_d + } + } + ++#ifdef CONFIG_BCM47XX ++static int b44_register_adm_switch(struct b44 *bp) ++{ ++ int gpio; ++ struct platform_device *pdev; ++ struct adm6996_gpio_platform_data adm_data = {0}; ++ struct platform_device_info info = {0}; ++ ++ adm_data.model = ADM6996L; ++ gpio = bcm47xx_nvram_gpio_pin("adm_eecs"); ++ if (gpio >= 0) ++ adm_data.eecs = gpio; ++ else ++ adm_data.eecs = 2; ++ ++ gpio = bcm47xx_nvram_gpio_pin("adm_eesk"); ++ if (gpio >= 0) ++ adm_data.eesk = gpio; ++ else ++ adm_data.eesk = 3; ++ ++ gpio = bcm47xx_nvram_gpio_pin("adm_eedi"); ++ if (gpio >= 0) ++ adm_data.eedi = gpio; ++ else ++ adm_data.eedi = 4; ++ ++ /* ++ * We ignore the "adm_rc" GPIO here. The driver does not use it, ++ * and it conflicts with the Reset button GPIO on the Linksys WRT54GSv1. ++ */ ++ ++ info.parent = bp->sdev->dev; ++ info.name = "adm6996_gpio"; ++ info.id = -1; ++ info.data = &adm_data; ++ info.size_data = sizeof(adm_data); ++ ++ if (!bp->adm_switch) { ++ pdev = platform_device_register_full(&info); ++ if (IS_ERR(pdev)) ++ return PTR_ERR(pdev); ++ ++ bp->adm_switch = pdev; ++ } ++ return 0; ++} ++static void b44_unregister_adm_switch(struct b44 *bp) ++{ ++ if (bp->adm_switch) ++ platform_device_unregister(bp->adm_switch); ++} ++#else ++static int b44_register_adm_switch(struct b44 *bp) ++{ ++ return 0; ++} ++static void b44_unregister_adm_switch(struct b44 *bp) ++{ ++ ++} ++#endif /* CONFIG_BCM47XX */ ++ + static int b44_register_phy_one(struct b44 *bp) + { + __ETHTOOL_DECLARE_LINK_MODE_MASK(mask) = { 0, }; +@@ -2279,6 +2344,9 @@ static int b44_register_phy_one(struct b + if (!mdiobus_is_registered_device(bp->mii_bus, bp->phy_addr) && + (sprom->boardflags_lo & (B44_BOARDFLAG_ROBO | B44_BOARDFLAG_ADM))) { + ++ if (sprom->boardflags_lo & B44_BOARDFLAG_ADM) ++ b44_register_adm_switch(bp); ++ + dev_info(sdev->dev, + "could not find PHY at %i, use fixed one\n", + bp->phy_addr); +@@ -2473,6 +2541,7 @@ static void b44_remove_one(struct ssb_de + unregister_netdev(dev); + if (bp->flags & B44_FLAG_EXTERNAL_PHY) + b44_unregister_phy_one(bp); ++ b44_unregister_adm_switch(bp); + ssb_device_disable(sdev, 0); + ssb_bus_may_powerdown(sdev->bus); + netif_napi_del(&bp->napi); +--- a/drivers/net/ethernet/broadcom/b44.h ++++ b/drivers/net/ethernet/broadcom/b44.h +@@ -408,6 +408,9 @@ struct b44 { + struct mii_bus *mii_bus; + int old_link; + struct mii_if_info mii_if; ++ ++ /* platform device for associated switch */ ++ struct platform_device *adm_switch; + }; + + #endif /* _B44_H */ diff --git a/target/linux/bcm47xx/patches-5.15/210-b44_phy_fix.patch b/target/linux/bcm47xx/patches-5.15/210-b44_phy_fix.patch new file mode 100644 index 00000000000..bedebc415e7 --- /dev/null +++ b/target/linux/bcm47xx/patches-5.15/210-b44_phy_fix.patch @@ -0,0 +1,54 @@ +--- a/drivers/net/ethernet/broadcom/b44.c ++++ b/drivers/net/ethernet/broadcom/b44.c +@@ -429,10 +429,34 @@ static void b44_wap54g10_workaround(stru + error: + pr_warn("PHY: cannot reset MII transceiver isolate bit\n"); + } ++ ++static void b44_bcm47xx_workarounds(struct b44 *bp) ++{ ++ char buf[20]; ++ struct ssb_device *sdev = bp->sdev; ++ ++ /* Toshiba WRC-1000, Siemens SE505 v1, Askey RT-210W, RT-220W */ ++ if (sdev->bus->sprom.board_num == 100) { ++ bp->phy_addr = B44_PHY_ADDR_NO_LOCAL_PHY; ++ } else { ++ /* WL-HDD */ ++ if (bcm47xx_nvram_getenv("hardware_version", buf, sizeof(buf)) >= 0 && ++ !strncmp(buf, "WL300-", strlen("WL300-"))) { ++ if (sdev->bus->sprom.et0phyaddr == 0 && ++ sdev->bus->sprom.et1phyaddr == 1) ++ bp->phy_addr = B44_PHY_ADDR_NO_LOCAL_PHY; ++ } ++ } ++ return; ++} + #else + static inline void b44_wap54g10_workaround(struct b44 *bp) + { + } ++ ++static inline void b44_bcm47xx_workarounds(struct b44 *bp) ++{ ++} + #endif + + static int b44_setup_phy(struct b44 *bp) +@@ -441,6 +465,7 @@ static int b44_setup_phy(struct b44 *bp) + int err; + + b44_wap54g10_workaround(bp); ++ b44_bcm47xx_workarounds(bp); + + if (bp->flags & B44_FLAG_EXTERNAL_PHY) + return 0; +@@ -2173,6 +2198,8 @@ static int b44_get_invariants(struct b44 + * valid PHY address. */ + bp->phy_addr &= 0x1F; + ++ b44_bcm47xx_workarounds(bp); ++ + memcpy(bp->dev->dev_addr, addr, ETH_ALEN); + + if (!is_valid_ether_addr(&bp->dev->dev_addr[0])){ diff --git a/target/linux/bcm47xx/patches-5.15/280-activate_ssb_support_in_usb.patch b/target/linux/bcm47xx/patches-5.15/280-activate_ssb_support_in_usb.patch new file mode 100644 index 00000000000..de8bb4297d0 --- /dev/null +++ b/target/linux/bcm47xx/patches-5.15/280-activate_ssb_support_in_usb.patch @@ -0,0 +1,25 @@ +This prevents the options from being delete with make kernel_oldconfig. +--- + drivers/ssb/Kconfig | 2 ++ + 1 file changed, 2 insertions(+) + +--- a/drivers/bcma/Kconfig ++++ b/drivers/bcma/Kconfig +@@ -32,6 +32,7 @@ config BCMA_HOST_PCI + config BCMA_HOST_SOC + bool "Support for BCMA in a SoC" + depends on HAS_IOMEM ++ select USB_HCD_BCMA if USB_EHCI_HCD || USB_OHCI_HCD + help + Host interface for a Broadcom AIX bus directly mapped into + the memory. This only works with the Broadcom SoCs from the +--- a/drivers/ssb/Kconfig ++++ b/drivers/ssb/Kconfig +@@ -136,6 +136,7 @@ config SSB_SFLASH + config SSB_EMBEDDED + bool + depends on SSB_DRIVER_MIPS && SSB_PCICORE_HOSTMODE ++ select USB_HCD_SSB if USB_EHCI_HCD || USB_OHCI_HCD + default y + + config SSB_DRIVER_EXTIF diff --git a/target/linux/bcm47xx/patches-5.15/300-fork_cacheflush.patch b/target/linux/bcm47xx/patches-5.15/300-fork_cacheflush.patch new file mode 100644 index 00000000000..daa2c1adf05 --- /dev/null +++ b/target/linux/bcm47xx/patches-5.15/300-fork_cacheflush.patch @@ -0,0 +1,21 @@ +From: Wolfram Joost +Subject: [PATCH] fork_cacheflush + +On ASUS WL-500gP there are many unexpected "Segmentation fault"s that +seem to be caused by a kernel. They can be avoided by: +1) Disabling highpage +2) Using flush_cache_mm in flush_cache_dup_mm + +For details see OpenWrt ticket #2035 https://dev.openwrt.org/ticket/2035 +--- +--- a/arch/mips/include/asm/cacheflush.h ++++ b/arch/mips/include/asm/cacheflush.h +@@ -46,7 +46,7 @@ + extern void (*flush_cache_all)(void); + extern void (*__flush_cache_all)(void); + extern void (*flush_cache_mm)(struct mm_struct *mm); +-#define flush_cache_dup_mm(mm) do { (void) (mm); } while (0) ++#define flush_cache_dup_mm(mm) flush_cache_mm(mm) + extern void (*flush_cache_range)(struct vm_area_struct *vma, + unsigned long start, unsigned long end); + extern void (*flush_cache_page)(struct vm_area_struct *vma, unsigned long page, unsigned long pfn); diff --git a/target/linux/bcm47xx/patches-5.15/310-no_highpage.patch b/target/linux/bcm47xx/patches-5.15/310-no_highpage.patch new file mode 100644 index 00000000000..b1dcdf9cb2b --- /dev/null +++ b/target/linux/bcm47xx/patches-5.15/310-no_highpage.patch @@ -0,0 +1,74 @@ +From: Jeff Hansen +Subject: [PATCH] no highpage + +On ASUS WL-500gP there are many unexpected "Segmentation fault"s that +seem to be caused by a kernel. They can be avoided by: +1) Disabling highpage +2) Using flush_cache_mm in flush_cache_dup_mm + +For details see OpenWrt ticket #2035 https://dev.openwrt.org/ticket/2035 +--- +--- a/arch/mips/include/asm/page.h ++++ b/arch/mips/include/asm/page.h +@@ -71,6 +71,7 @@ static inline unsigned int page_size_ftl + #endif /* CONFIG_MIPS_HUGE_TLB_SUPPORT */ + + #include ++#include + + extern void build_clear_page(void); + extern void build_copy_page(void); +@@ -110,11 +111,16 @@ static inline void clear_user_page(void + flush_data_cache_page((unsigned long)addr); + } + +-struct vm_area_struct; +-extern void copy_user_highpage(struct page *to, struct page *from, +- unsigned long vaddr, struct vm_area_struct *vma); ++static inline void copy_user_page(void *vto, void *vfrom, unsigned long vaddr, ++ struct page *to) ++{ ++ extern void (*flush_data_cache_page)(unsigned long addr); + +-#define __HAVE_ARCH_COPY_USER_HIGHPAGE ++ copy_page(vto, vfrom); ++ if (!cpu_has_ic_fills_f_dc || ++ pages_do_alias((unsigned long)vto, vaddr & PAGE_MASK)) ++ flush_data_cache_page((unsigned long)vto); ++} + + /* + * These are used to make use of C type-checking.. +--- a/arch/mips/mm/init.c ++++ b/arch/mips/mm/init.c +@@ -167,30 +167,6 @@ void kunmap_coherent(void) + preempt_enable(); + } + +-void copy_user_highpage(struct page *to, struct page *from, +- unsigned long vaddr, struct vm_area_struct *vma) +-{ +- void *vfrom, *vto; +- +- vto = kmap_atomic(to); +- if (cpu_has_dc_aliases && cpu_use_kmap_coherent && +- page_mapcount(from) && !Page_dcache_dirty(from)) { +- vfrom = kmap_coherent(from, vaddr); +- copy_page(vto, vfrom); +- kunmap_coherent(); +- } else { +- vfrom = kmap_atomic(from); +- copy_page(vto, vfrom); +- kunmap_atomic(vfrom); +- } +- if ((!cpu_has_ic_fills_f_dc) || +- pages_do_alias((unsigned long)vto, vaddr & PAGE_MASK)) +- flush_data_cache_page((unsigned long)vto); +- kunmap_atomic(vto); +- /* Make sure this page is cleared on other CPU's too before using it */ +- smp_wmb(); +-} +- + void copy_to_user_page(struct vm_area_struct *vma, + struct page *page, unsigned long vaddr, void *dst, const void *src, + unsigned long len) diff --git a/target/linux/bcm47xx/patches-5.15/320-v5.17-MIPS-BCM47XX-Add-board-entry-for-Linksys-WRT320N-v1.patch b/target/linux/bcm47xx/patches-5.15/320-v5.17-MIPS-BCM47XX-Add-board-entry-for-Linksys-WRT320N-v1.patch new file mode 100644 index 00000000000..f34336edd5b --- /dev/null +++ b/target/linux/bcm47xx/patches-5.15/320-v5.17-MIPS-BCM47XX-Add-board-entry-for-Linksys-WRT320N-v1.patch @@ -0,0 +1,89 @@ +From 3829e4f10a232964cc728c0479c8097922e5e073 Mon Sep 17 00:00:00 2001 +From: Florian Fainelli +Date: Thu, 6 Jan 2022 19:51:38 -0800 +Subject: [PATCH] MIPS: BCM47XX: Add board entry for Linksys WRT320N v1 + +This router is based on a Broadcom BCM4717A1 chipset and supports +802.11n Wi-Fi. Add a board entry for that router and register LEDs and +buttons accordingly. + +Signed-off-by: Florian Fainelli +Signed-off-by: Thomas Bogendoerfer +--- + arch/mips/bcm47xx/board.c | 1 + + arch/mips/bcm47xx/buttons.c | 9 +++++++++ + arch/mips/bcm47xx/leds.c | 10 ++++++++++ + arch/mips/include/asm/mach-bcm47xx/bcm47xx_board.h | 1 + + 4 files changed, 21 insertions(+) + +--- a/arch/mips/bcm47xx/board.c ++++ b/arch/mips/bcm47xx/board.c +@@ -141,6 +141,7 @@ struct bcm47xx_board_type_list2 bcm47xx_ + {{BCM47XX_BOARD_LINKSYS_WRT300NV11, "Linksys WRT300N V1.1"}, "WRT300N", "1.1"}, + {{BCM47XX_BOARD_LINKSYS_WRT310NV1, "Linksys WRT310N V1"}, "WRT310N", "1.0"}, + {{BCM47XX_BOARD_LINKSYS_WRT310NV2, "Linksys WRT310N V2"}, "WRT310N", "2.0"}, ++ {{BCM47XX_BOARD_LINKSYS_WRT320N_V1, "Linksys WRT320N V1"}, "WRT320N", "1.0"}, + {{BCM47XX_BOARD_LINKSYS_WRT54G3GV2, "Linksys WRT54G3GV2-VF"}, "WRT54G3GV2-VF", "1.0"}, + {{BCM47XX_BOARD_LINKSYS_WRT610NV1, "Linksys WRT610N V1"}, "WRT610N", "1.0"}, + {{BCM47XX_BOARD_LINKSYS_WRT610NV2, "Linksys WRT610N V2"}, "WRT610N", "2.0"}, +--- a/arch/mips/bcm47xx/buttons.c ++++ b/arch/mips/bcm47xx/buttons.c +@@ -277,6 +277,12 @@ bcm47xx_buttons_linksys_wrt310nv1[] __in + }; + + static const struct gpio_keys_button ++bcm47xx_buttons_linksys_wrt320n_v1[] __initconst = { ++ BCM47XX_GPIO_KEY(5, KEY_WPS_BUTTON), ++ BCM47XX_GPIO_KEY(8, KEY_RESTART), ++}; ++ ++static const struct gpio_keys_button + bcm47xx_buttons_linksys_wrt54g3gv2[] __initconst = { + BCM47XX_GPIO_KEY(5, KEY_WIMAX), + BCM47XX_GPIO_KEY(6, KEY_RESTART), +@@ -608,6 +614,9 @@ int __init bcm47xx_buttons_register(void + case BCM47XX_BOARD_LINKSYS_WRT310NV1: + err = bcm47xx_copy_bdata(bcm47xx_buttons_linksys_wrt310nv1); + break; ++ case BCM47XX_BOARD_LINKSYS_WRT320N_V1: ++ err = bcm47xx_copy_bdata(bcm47xx_buttons_linksys_wrt320n_v1); ++ break; + case BCM47XX_BOARD_LINKSYS_WRT54G3GV2: + err = bcm47xx_copy_bdata(bcm47xx_buttons_linksys_wrt54g3gv2); + break; +--- a/arch/mips/bcm47xx/leds.c ++++ b/arch/mips/bcm47xx/leds.c +@@ -314,6 +314,13 @@ bcm47xx_leds_linksys_wrt310nv1[] __initc + }; + + static const struct gpio_led ++bcm47xx_leds_linksys_wrt320n_v1[] __initconst = { ++ BCM47XX_GPIO_LED(1, "blue", "wlan", 1, LEDS_GPIO_DEFSTATE_OFF), ++ BCM47XX_GPIO_LED(2, "blue", "power", 0, LEDS_GPIO_DEFSTATE_ON), ++ BCM47XX_GPIO_LED(4, "amber", "wps", 1, LEDS_GPIO_DEFSTATE_OFF), ++}; ++ ++static const struct gpio_led + bcm47xx_leds_linksys_wrt54g_generic[] __initconst = { + BCM47XX_GPIO_LED(0, "unk", "dmz", 1, LEDS_GPIO_DEFSTATE_OFF), + BCM47XX_GPIO_LED(1, "unk", "power", 0, LEDS_GPIO_DEFSTATE_ON), +@@ -689,6 +696,9 @@ void __init bcm47xx_leds_register(void) + case BCM47XX_BOARD_LINKSYS_WRT310NV1: + bcm47xx_set_pdata(bcm47xx_leds_linksys_wrt310nv1); + break; ++ case BCM47XX_BOARD_LINKSYS_WRT320N_V1: ++ bcm47xx_set_pdata(bcm47xx_leds_linksys_wrt320n_v1); ++ break; + case BCM47XX_BOARD_LINKSYS_WRT54G3GV2: + bcm47xx_set_pdata(bcm47xx_leds_linksys_wrt54g3gv2); + break; +--- a/arch/mips/include/asm/mach-bcm47xx/bcm47xx_board.h ++++ b/arch/mips/include/asm/mach-bcm47xx/bcm47xx_board.h +@@ -72,6 +72,7 @@ enum bcm47xx_board { + BCM47XX_BOARD_LINKSYS_WRT300NV11, + BCM47XX_BOARD_LINKSYS_WRT310NV1, + BCM47XX_BOARD_LINKSYS_WRT310NV2, ++ BCM47XX_BOARD_LINKSYS_WRT320N_V1, + BCM47XX_BOARD_LINKSYS_WRT54G3GV2, + BCM47XX_BOARD_LINKSYS_WRT54G_TYPE_0101, + BCM47XX_BOARD_LINKSYS_WRT54G_TYPE_0467, diff --git a/target/linux/bcm47xx/patches-5.15/321-v5.17-MIPS-BCM47XX-Add-support-for-Netgear-R6300-v1.patch b/target/linux/bcm47xx/patches-5.15/321-v5.17-MIPS-BCM47XX-Add-support-for-Netgear-R6300-v1.patch new file mode 100644 index 00000000000..6631e79048b --- /dev/null +++ b/target/linux/bcm47xx/patches-5.15/321-v5.17-MIPS-BCM47XX-Add-support-for-Netgear-R6300-v1.patch @@ -0,0 +1,60 @@ +From 15e690af5cc3cd8f5d14ee2aa3a093f80196110e Mon Sep 17 00:00:00 2001 +From: Florian Fainelli +Date: Thu, 6 Jan 2022 19:51:40 -0800 +Subject: [PATCH] MIPS: BCM47XX: Add support for Netgear R6300 v1 + +Add support for the Netgear R6300 v1 Wi-Fi router using a Broadcom +BCM4706 chipset and supporting 802.11n and 802.11ac. + +Signed-off-by: Florian Fainelli +Signed-off-by: Thomas Bogendoerfer +--- + arch/mips/bcm47xx/board.c | 1 + + arch/mips/bcm47xx/buttons.c | 8 ++++++++ + arch/mips/include/asm/mach-bcm47xx/bcm47xx_board.h | 1 + + 3 files changed, 10 insertions(+) + +--- a/arch/mips/bcm47xx/board.c ++++ b/arch/mips/bcm47xx/board.c +@@ -162,6 +162,7 @@ struct bcm47xx_board_type_list1 bcm47xx_ + {{BCM47XX_BOARD_LUXUL_XWR_600_V1, "Luxul XWR-600 V1"}, "luxul_xwr600_v1"}, + {{BCM47XX_BOARD_LUXUL_XWR_1750_V1, "Luxul XWR-1750 V1"}, "luxul_xwr1750_v1"}, + {{BCM47XX_BOARD_NETGEAR_R6200_V1, "Netgear R6200 V1"}, "U12H192T00_NETGEAR"}, ++ {{BCM47XX_BOARD_NETGEAR_R6300_V1, "Netgear R6300 V1"}, "U12H218T00_NETGEAR"}, + {{BCM47XX_BOARD_NETGEAR_WGR614V8, "Netgear WGR614 V8"}, "U12H072T00_NETGEAR"}, + {{BCM47XX_BOARD_NETGEAR_WGR614V9, "Netgear WGR614 V9"}, "U12H094T00_NETGEAR"}, + {{BCM47XX_BOARD_NETGEAR_WGR614_V10, "Netgear WGR614 V10"}, "U12H139T01_NETGEAR"}, +--- a/arch/mips/bcm47xx/buttons.c ++++ b/arch/mips/bcm47xx/buttons.c +@@ -398,6 +398,11 @@ bcm47xx_buttons_netgear_r6200_v1[] __ini + }; + + static const struct gpio_keys_button ++bcm47xx_buttons_netgear_r6300_v1[] __initconst = { ++ BCM47XX_GPIO_KEY(6, KEY_RESTART), ++}; ++ ++static const struct gpio_keys_button + bcm47xx_buttons_netgear_wndr3400v1[] __initconst = { + BCM47XX_GPIO_KEY(4, KEY_RESTART), + BCM47XX_GPIO_KEY(6, KEY_WPS_BUTTON), +@@ -683,6 +688,9 @@ int __init bcm47xx_buttons_register(void + case BCM47XX_BOARD_NETGEAR_R6200_V1: + err = bcm47xx_copy_bdata(bcm47xx_buttons_netgear_r6200_v1); + break; ++ case BCM47XX_BOARD_NETGEAR_R6300_V1: ++ err = bcm47xx_copy_bdata(bcm47xx_buttons_netgear_r6300_v1); ++ break; + case BCM47XX_BOARD_NETGEAR_WNDR3400V1: + err = bcm47xx_copy_bdata(bcm47xx_buttons_netgear_wndr3400v1); + break; +--- a/arch/mips/include/asm/mach-bcm47xx/bcm47xx_board.h ++++ b/arch/mips/include/asm/mach-bcm47xx/bcm47xx_board.h +@@ -100,6 +100,7 @@ enum bcm47xx_board { + BCM47XX_BOARD_MOTOROLA_WR850GV2V3, + + BCM47XX_BOARD_NETGEAR_R6200_V1, ++ BCM47XX_BOARD_NETGEAR_R6300_V1, + BCM47XX_BOARD_NETGEAR_WGR614V8, + BCM47XX_BOARD_NETGEAR_WGR614V9, + BCM47XX_BOARD_NETGEAR_WGR614_V10, diff --git a/target/linux/bcm47xx/patches-5.15/322-v5.17-MIPS-BCM47XX-Add-support-for-Netgear-WN2500RP-v1-v2.patch b/target/linux/bcm47xx/patches-5.15/322-v5.17-MIPS-BCM47XX-Add-support-for-Netgear-WN2500RP-v1-v2.patch new file mode 100644 index 00000000000..8f66aee1926 --- /dev/null +++ b/target/linux/bcm47xx/patches-5.15/322-v5.17-MIPS-BCM47XX-Add-support-for-Netgear-WN2500RP-v1-v2.patch @@ -0,0 +1,63 @@ +From 4da27b6d550427a0560a15df36de99cb17629216 Mon Sep 17 00:00:00 2001 +From: Florian Fainelli +Date: Thu, 6 Jan 2022 19:51:41 -0800 +Subject: [PATCH] MIPS: BCM47XX: Add support for Netgear WN2500RP v1 & v2 + +Add support for the Netgear WN2500 RP v1 and v2 Wi-Fi range extenders +based on the BCM5357 chipset and supporting 802.11n and 802.11ac. + +Signed-off-by: Florian Fainelli +Signed-off-by: Thomas Bogendoerfer +--- + arch/mips/bcm47xx/board.c | 2 ++ + arch/mips/bcm47xx/buttons.c | 9 +++++++++ + arch/mips/include/asm/mach-bcm47xx/bcm47xx_board.h | 2 ++ + 3 files changed, 13 insertions(+) + +--- a/arch/mips/bcm47xx/board.c ++++ b/arch/mips/bcm47xx/board.c +@@ -166,6 +166,8 @@ struct bcm47xx_board_type_list1 bcm47xx_ + {{BCM47XX_BOARD_NETGEAR_WGR614V8, "Netgear WGR614 V8"}, "U12H072T00_NETGEAR"}, + {{BCM47XX_BOARD_NETGEAR_WGR614V9, "Netgear WGR614 V9"}, "U12H094T00_NETGEAR"}, + {{BCM47XX_BOARD_NETGEAR_WGR614_V10, "Netgear WGR614 V10"}, "U12H139T01_NETGEAR"}, ++ {{BCM47XX_BOARD_NETGEAR_WN2500RP_V1, "Netgear WN2500RP V1"}, "U12H197T00_NETGEAR"}, ++ {{BCM47XX_BOARD_NETGEAR_WN2500RP_V2, "Netgear WN2500RP V2"}, "U12H294T00_NETGEAR"}, + {{BCM47XX_BOARD_NETGEAR_WNDR3300, "Netgear WNDR3300"}, "U12H093T00_NETGEAR"}, + {{BCM47XX_BOARD_NETGEAR_WNDR3400V1, "Netgear WNDR3400 V1"}, "U12H155T00_NETGEAR"}, + {{BCM47XX_BOARD_NETGEAR_WNDR3400V2, "Netgear WNDR3400 V2"}, "U12H187T00_NETGEAR"}, +--- a/arch/mips/bcm47xx/buttons.c ++++ b/arch/mips/bcm47xx/buttons.c +@@ -403,6 +403,12 @@ bcm47xx_buttons_netgear_r6300_v1[] __ini + }; + + static const struct gpio_keys_button ++bcm47xx_buttons_netgear_wn2500rp_v1[] __initconst = { ++ BCM47XX_GPIO_KEY(12, KEY_RESTART), ++ BCM47XX_GPIO_KEY(31, KEY_WPS_BUTTON), ++}; ++ ++static const struct gpio_keys_button + bcm47xx_buttons_netgear_wndr3400v1[] __initconst = { + BCM47XX_GPIO_KEY(4, KEY_RESTART), + BCM47XX_GPIO_KEY(6, KEY_WPS_BUTTON), +@@ -691,6 +697,9 @@ int __init bcm47xx_buttons_register(void + case BCM47XX_BOARD_NETGEAR_R6300_V1: + err = bcm47xx_copy_bdata(bcm47xx_buttons_netgear_r6300_v1); + break; ++ case BCM47XX_BOARD_NETGEAR_WN2500RP_V1: ++ err = bcm47xx_copy_bdata(bcm47xx_buttons_netgear_wn2500rp_v1); ++ break; + case BCM47XX_BOARD_NETGEAR_WNDR3400V1: + err = bcm47xx_copy_bdata(bcm47xx_buttons_netgear_wndr3400v1); + break; +--- a/arch/mips/include/asm/mach-bcm47xx/bcm47xx_board.h ++++ b/arch/mips/include/asm/mach-bcm47xx/bcm47xx_board.h +@@ -104,6 +104,8 @@ enum bcm47xx_board { + BCM47XX_BOARD_NETGEAR_WGR614V8, + BCM47XX_BOARD_NETGEAR_WGR614V9, + BCM47XX_BOARD_NETGEAR_WGR614_V10, ++ BCM47XX_BOARD_NETGEAR_WN2500RP_V1, ++ BCM47XX_BOARD_NETGEAR_WN2500RP_V2, + BCM47XX_BOARD_NETGEAR_WNDR3300, + BCM47XX_BOARD_NETGEAR_WNDR3400V1, + BCM47XX_BOARD_NETGEAR_WNDR3400V2, diff --git a/target/linux/bcm47xx/patches-5.15/323-v6.0-MIPS-BCM47XX-Add-support-for-Netgear-WNR3500L-v2.patch b/target/linux/bcm47xx/patches-5.15/323-v6.0-MIPS-BCM47XX-Add-support-for-Netgear-WNR3500L-v2.patch new file mode 100644 index 00000000000..272a74933be --- /dev/null +++ b/target/linux/bcm47xx/patches-5.15/323-v6.0-MIPS-BCM47XX-Add-support-for-Netgear-WNR3500L-v2.patch @@ -0,0 +1,109 @@ +From c022e87162219d67d687df22c977d1c2fc95fb42 Mon Sep 17 00:00:00 2001 +From: Florian Fainelli +Date: Thu, 14 Jul 2022 14:13:01 -0700 +Subject: [PATCH] MIPS: BCM47XX: Add support for Netgear WNR3500L v2 + +Add support for the Netgear WNR3500L v2 router based on the BCM47186 +chipset and supporting 802.11n Wi-Fi. + +Signed-off-by: Florian Fainelli +Signed-off-by: Thomas Bogendoerfer +--- + arch/mips/bcm47xx/board.c | 2 ++ + arch/mips/bcm47xx/buttons.c | 10 ++++++++++ + arch/mips/bcm47xx/leds.c | 11 +++++++++++ + arch/mips/bcm47xx/workarounds.c | 1 + + arch/mips/include/asm/mach-bcm47xx/bcm47xx_board.h | 1 + + 5 files changed, 25 insertions(+) + +--- a/arch/mips/bcm47xx/board.c ++++ b/arch/mips/bcm47xx/board.c +@@ -181,6 +181,7 @@ struct bcm47xx_board_type_list1 bcm47xx_ + {{BCM47XX_BOARD_NETGEAR_WNR1000_V3, "Netgear WNR1000 V3"}, "U12H139T50_NETGEAR"}, + {{BCM47XX_BOARD_NETGEAR_WNR2000, "Netgear WNR2000"}, "U12H114T00_NETGEAR"}, + {{BCM47XX_BOARD_NETGEAR_WNR3500L, "Netgear WNR3500L"}, "U12H136T99_NETGEAR"}, ++ {{BCM47XX_BOARD_NETGEAR_WNR3500L_V2, "Netgear WNR3500L V2"}, "U12H172T00_NETGEAR"}, + {{BCM47XX_BOARD_NETGEAR_WNR3500U, "Netgear WNR3500U"}, "U12H136T00_NETGEAR"}, + {{BCM47XX_BOARD_NETGEAR_WNR3500V2, "Netgear WNR3500 V2"}, "U12H127T00_NETGEAR"}, + {{BCM47XX_BOARD_NETGEAR_WNR3500V2VC, "Netgear WNR3500 V2vc"}, "U12H127T70_NETGEAR"}, +@@ -195,6 +196,7 @@ struct bcm47xx_board_type_list3 bcm47xx_ + {{BCM47XX_BOARD_PHICOMM_M1, "Phicomm M1"}, "0x0590", "80", "0x1104"}, + {{BCM47XX_BOARD_ZTE_H218N, "ZTE H218N"}, "0x053d", "1234", "0x1305"}, + {{BCM47XX_BOARD_NETGEAR_WNR3500L, "Netgear WNR3500L"}, "0x04CF", "3500", "02"}, ++ {{BCM47XX_BOARD_NETGEAR_WNR3500L_V2, "Netgear WNR3500L V2"}, "0x052b", "3500L", "02"}, + {{BCM47XX_BOARD_LINKSYS_WRT54G_TYPE_0101, "Linksys WRT54G/GS/GL"}, "0x0101", "42", "0x10"}, + {{BCM47XX_BOARD_LINKSYS_WRT54G_TYPE_0467, "Linksys WRT54G/GS/GL"}, "0x0467", "42", "0x10"}, + {{BCM47XX_BOARD_LINKSYS_WRT54G_TYPE_0708, "Linksys WRT54G/GS/GL"}, "0x0708", "42", "0x10"}, +--- a/arch/mips/bcm47xx/buttons.c ++++ b/arch/mips/bcm47xx/buttons.c +@@ -448,6 +448,13 @@ bcm47xx_buttons_netgear_wnr3500lv1[] __i + }; + + static const struct gpio_keys_button ++bcm47xx_buttons_netgear_wnr3500lv2[] __initconst = { ++ BCM47XX_GPIO_KEY(4, KEY_RESTART), ++ BCM47XX_GPIO_KEY(6, KEY_WPS_BUTTON), ++ BCM47XX_GPIO_KEY(8, KEY_RFKILL), ++}; ++ ++static const struct gpio_keys_button + bcm47xx_buttons_netgear_wnr834bv2[] __initconst = { + BCM47XX_GPIO_KEY(6, KEY_RESTART), + }; +@@ -718,6 +725,9 @@ int __init bcm47xx_buttons_register(void + case BCM47XX_BOARD_NETGEAR_WNR3500L: + err = bcm47xx_copy_bdata(bcm47xx_buttons_netgear_wnr3500lv1); + break; ++ case BCM47XX_BOARD_NETGEAR_WNR3500L_V2: ++ err = bcm47xx_copy_bdata(bcm47xx_buttons_netgear_wnr3500lv2); ++ break; + case BCM47XX_BOARD_NETGEAR_WNR834BV2: + err = bcm47xx_copy_bdata(bcm47xx_buttons_netgear_wnr834bv2); + break; +--- a/arch/mips/bcm47xx/leds.c ++++ b/arch/mips/bcm47xx/leds.c +@@ -520,6 +520,14 @@ bcm47xx_leds_netgear_wnr3500lv1[] __init + }; + + static const struct gpio_led ++bcm47xx_leds_netgear_wnr3500lv2[] __initconst = { ++ BCM47XX_GPIO_LED(0, "blue", "wlan", 0, LEDS_GPIO_DEFSTATE_OFF), ++ BCM47XX_GPIO_LED(1, "green", "wps", 0, LEDS_GPIO_DEFSTATE_OFF), ++ BCM47XX_GPIO_LED(3, "green", "power", 0, LEDS_GPIO_DEFSTATE_ON), ++ BCM47XX_GPIO_LED(7, "amber", "power", 0, LEDS_GPIO_DEFSTATE_OFF), ++}; ++ ++static const struct gpio_led + bcm47xx_leds_netgear_wnr834bv2[] __initconst = { + BCM47XX_GPIO_LED(2, "green", "power", 0, LEDS_GPIO_DEFSTATE_ON), + BCM47XX_GPIO_LED(3, "amber", "power", 0, LEDS_GPIO_DEFSTATE_OFF), +@@ -780,6 +788,9 @@ void __init bcm47xx_leds_register(void) + case BCM47XX_BOARD_NETGEAR_WNR3500L: + bcm47xx_set_pdata(bcm47xx_leds_netgear_wnr3500lv1); + break; ++ case BCM47XX_BOARD_NETGEAR_WNR3500L_V2: ++ bcm47xx_set_pdata(bcm47xx_leds_netgear_wnr3500lv2); ++ break; + case BCM47XX_BOARD_NETGEAR_WNR834BV2: + bcm47xx_set_pdata(bcm47xx_leds_netgear_wnr834bv2); + break; +--- a/arch/mips/bcm47xx/workarounds.c ++++ b/arch/mips/bcm47xx/workarounds.c +@@ -22,6 +22,7 @@ void __init bcm47xx_workarounds(void) + + switch (board) { + case BCM47XX_BOARD_NETGEAR_WNR3500L: ++ case BCM47XX_BOARD_NETGEAR_WNR3500L_V2: + bcm47xx_workarounds_enable_usb_power(12); + break; + case BCM47XX_BOARD_NETGEAR_WNDR3400V2: +--- a/arch/mips/include/asm/mach-bcm47xx/bcm47xx_board.h ++++ b/arch/mips/include/asm/mach-bcm47xx/bcm47xx_board.h +@@ -118,6 +118,7 @@ enum bcm47xx_board { + BCM47XX_BOARD_NETGEAR_WNR1000_V3, + BCM47XX_BOARD_NETGEAR_WNR2000, + BCM47XX_BOARD_NETGEAR_WNR3500L, ++ BCM47XX_BOARD_NETGEAR_WNR3500L_V2, + BCM47XX_BOARD_NETGEAR_WNR3500U, + BCM47XX_BOARD_NETGEAR_WNR3500V2, + BCM47XX_BOARD_NETGEAR_WNR3500V2VC, diff --git a/target/linux/bcm47xx/patches-5.15/324-v5.17-MIPS-BCM47XX-Add-LEDs-and-buttons-for-Asus-RTN-10U.patch b/target/linux/bcm47xx/patches-5.15/324-v5.17-MIPS-BCM47XX-Add-LEDs-and-buttons-for-Asus-RTN-10U.patch new file mode 100644 index 00000000000..23d50ad902c --- /dev/null +++ b/target/linux/bcm47xx/patches-5.15/324-v5.17-MIPS-BCM47XX-Add-LEDs-and-buttons-for-Asus-RTN-10U.patch @@ -0,0 +1,67 @@ +From aecf89f2f8e8a604c33085c230a1f04ea325de64 Mon Sep 17 00:00:00 2001 +From: Florian Fainelli +Date: Thu, 6 Jan 2022 19:51:39 -0800 +Subject: [PATCH] MIPS: BCM47XX: Add LEDs and buttons for Asus RTN-10U + +Add the definitions for the buttons and LEDs used on the Asus RTN-10U +router. + +Signed-off-by: Florian Fainelli +Signed-off-by: Thomas Bogendoerfer +--- + arch/mips/bcm47xx/buttons.c | 9 +++++++++ + arch/mips/bcm47xx/leds.c | 11 +++++++++++ + 2 files changed, 20 insertions(+) + +--- a/arch/mips/bcm47xx/buttons.c ++++ b/arch/mips/bcm47xx/buttons.c +@@ -27,6 +27,12 @@ + /* Asus */ + + static const struct gpio_keys_button ++bcm47xx_buttons_asus_rtn10u[] __initconst = { ++ BCM47XX_GPIO_KEY(20, KEY_WPS_BUTTON), ++ BCM47XX_GPIO_KEY(21, KEY_RESTART), ++}; ++ ++static const struct gpio_keys_button + bcm47xx_buttons_asus_rtn12[] __initconst = { + BCM47XX_GPIO_KEY(0, KEY_WPS_BUTTON), + BCM47XX_GPIO_KEY(1, KEY_RESTART), +@@ -502,6 +508,9 @@ int __init bcm47xx_buttons_register(void + int err; + + switch (board) { ++ case BCM47XX_BOARD_ASUS_RTN10U: ++ err = bcm47xx_copy_bdata(bcm47xx_buttons_asus_rtn10u); ++ break; + case BCM47XX_BOARD_ASUS_RTN12: + err = bcm47xx_copy_bdata(bcm47xx_buttons_asus_rtn12); + break; +--- a/arch/mips/bcm47xx/leds.c ++++ b/arch/mips/bcm47xx/leds.c +@@ -30,6 +30,14 @@ + /* Asus */ + + static const struct gpio_led ++bcm47xx_leds_asus_rtn10u[] __initconst = { ++ BCM47XX_GPIO_LED(5, "green", "wlan", 0, LEDS_GPIO_DEFSTATE_OFF), ++ BCM47XX_GPIO_LED(6, "green", "power", 1, LEDS_GPIO_DEFSTATE_ON), ++ BCM47XX_GPIO_LED(7, "green", "wps", 0, LEDS_GPIO_DEFSTATE_OFF), ++ BCM47XX_GPIO_LED(8, "green", "usb", 0, LEDS_GPIO_DEFSTATE_OFF), ++}; ++ ++static const struct gpio_led + bcm47xx_leds_asus_rtn12[] __initconst = { + BCM47XX_GPIO_LED(2, "unk", "power", 1, LEDS_GPIO_DEFSTATE_ON), + BCM47XX_GPIO_LED(7, "unk", "wlan", 0, LEDS_GPIO_DEFSTATE_OFF), +@@ -571,6 +579,9 @@ void __init bcm47xx_leds_register(void) + enum bcm47xx_board board = bcm47xx_board_get(); + + switch (board) { ++ case BCM47XX_BOARD_ASUS_RTN10U: ++ bcm47xx_set_pdata(bcm47xx_leds_asus_rtn10u); ++ break; + case BCM47XX_BOARD_ASUS_RTN12: + bcm47xx_set_pdata(bcm47xx_leds_asus_rtn12); + break; diff --git a/target/linux/bcm47xx/patches-5.15/325-v5.17-MIPS-BCM47XX-Define-Linksys-WRT310N-V2-buttons.patch b/target/linux/bcm47xx/patches-5.15/325-v5.17-MIPS-BCM47XX-Define-Linksys-WRT310N-V2-buttons.patch new file mode 100644 index 00000000000..0c23e8aaf5d --- /dev/null +++ b/target/linux/bcm47xx/patches-5.15/325-v5.17-MIPS-BCM47XX-Define-Linksys-WRT310N-V2-buttons.patch @@ -0,0 +1,40 @@ +From eea175eedf3e2f71b9538d21e643e7a1be4923df Mon Sep 17 00:00:00 2001 +From: Florian Fainelli +Date: Thu, 6 Jan 2022 19:51:37 -0800 +Subject: [PATCH] MIPS: BCM47XX: Define Linksys WRT310N V2 buttons + +Update the buttons registration code to register the two buttons (WPS, +system rester) using the existing BCM47XX_BOARD_LINKSYS_WRT310NV2 board +entry. + +Signed-off-by: Florian Fainelli +Signed-off-by: Thomas Bogendoerfer +--- + arch/mips/bcm47xx/buttons.c | 9 +++++++++ + 1 file changed, 9 insertions(+) + +--- a/arch/mips/bcm47xx/buttons.c ++++ b/arch/mips/bcm47xx/buttons.c +@@ -289,6 +289,12 @@ bcm47xx_buttons_linksys_wrt320n_v1[] __i + }; + + static const struct gpio_keys_button ++bcm47xx_buttons_linksys_wrt310n_v2[] __initconst = { ++ BCM47XX_GPIO_KEY(5, KEY_WPS_BUTTON), ++ BCM47XX_GPIO_KEY(6, KEY_RESTART), ++}; ++ ++static const struct gpio_keys_button + bcm47xx_buttons_linksys_wrt54g3gv2[] __initconst = { + BCM47XX_GPIO_KEY(5, KEY_WIMAX), + BCM47XX_GPIO_KEY(6, KEY_RESTART), +@@ -644,6 +650,9 @@ int __init bcm47xx_buttons_register(void + case BCM47XX_BOARD_LINKSYS_WRT320N_V1: + err = bcm47xx_copy_bdata(bcm47xx_buttons_linksys_wrt320n_v1); + break; ++ case BCM47XX_BOARD_LINKSYS_WRT310NV2: ++ err = bcm47xx_copy_bdata(bcm47xx_buttons_linksys_wrt310n_v2); ++ break; + case BCM47XX_BOARD_LINKSYS_WRT54G3GV2: + err = bcm47xx_copy_bdata(bcm47xx_buttons_linksys_wrt54g3gv2); + break; diff --git a/target/linux/bcm47xx/patches-5.15/400-mtd-bcm47xxpart-get-nvram.patch b/target/linux/bcm47xx/patches-5.15/400-mtd-bcm47xxpart-get-nvram.patch new file mode 100644 index 00000000000..17abe89d1d4 --- /dev/null +++ b/target/linux/bcm47xx/patches-5.15/400-mtd-bcm47xxpart-get-nvram.patch @@ -0,0 +1,34 @@ +--- a/drivers/mtd/parsers/bcm47xxpart.c ++++ b/drivers/mtd/parsers/bcm47xxpart.c +@@ -98,6 +98,7 @@ static int bcm47xxpart_parse(struct mtd_ + int trx_num = 0; /* Number of found TRX partitions */ + int possible_nvram_sizes[] = { 0x8000, 0xF000, 0x10000, }; + int err; ++ bool found_nvram = false; + + /* + * Some really old flashes (like AT45DB*) had smaller erasesize-s, but +@@ -279,12 +280,23 @@ static int bcm47xxpart_parse(struct mtd_ + if (buf[0] == NVRAM_HEADER) { + bcm47xxpart_add_part(&parts[curr_part++], "nvram", + master->size - blocksize, 0); ++ found_nvram = true; + break; + } + } + + kfree(buf); + ++ if (!found_nvram) { ++ pr_err("can not find a nvram partition reserve last block\n"); ++ bcm47xxpart_add_part(&parts[curr_part++], "nvram_guess", ++ master->size - blocksize * 2, MTD_WRITEABLE); ++ for (i = 0; i < curr_part; i++) { ++ if (parts[i].size + parts[i].offset == master->size) ++ parts[i].offset -= blocksize * 2; ++ } ++ } ++ + /* + * Assume that partitions end at the beginning of the one they are + * followed by. diff --git a/target/linux/bcm47xx/patches-5.15/610-pci_ide_fix.patch b/target/linux/bcm47xx/patches-5.15/610-pci_ide_fix.patch new file mode 100644 index 00000000000..520828e8e55 --- /dev/null +++ b/target/linux/bcm47xx/patches-5.15/610-pci_ide_fix.patch @@ -0,0 +1,41 @@ +From: b.sander +Subject: [PATCH] pci: IDE fix + +These are standard probing messages when using pdc202xx_old: +pdc202xx_old 0000:00:01.0: IDE controller (0x105a:0x0d30 rev 0x02) +PCI: Enabling device 0000:00:01.0 (0004 -> 0007) +PCI: Fixing up device 0000:00:01.0 +0000:00:01.0: (U)DMA Burst Bit DISABLED Primary PCI Mode Secondary PCI Mode. +0000:00:01.0: FORCING BURST BIT 0x00->0x01 ACTIVE +pdc202xx_old 0000:00:01.0: 100% native mode on irq 6 + +With the default MAX_HWIFS value after above we get: + ide2: BM-DMA at 0x0400-0x0407 + ide3: BM-DMA at 0x0408-0x040f +Probing IDE interface ide2... +hde: CF500, CFA DISK drive + +As you can see it's ide2 + ide3 and hde. + +With this patch applied we get: + ide0: BM-DMA at 0x0400-0x0407 + ide1: BM-DMA at 0x0408-0x040f +Probing IDE interface ide0... +hda: CF500, CFA DISK drive + +This fixes OpenWrt ticket #7061: https://dev.openwrt.org/ticket/7061 +--- +--- a/include/linux/ide.h ++++ b/include/linux/ide.h +@@ -236,7 +236,11 @@ static inline void ide_std_init_ports(st + hw->io_ports.ctl_addr = ctl_addr; + } + ++#if defined CONFIG_BCM47XX ++# define MAX_HWIFS 2 ++#else + #define MAX_HWIFS 10 ++#endif + + /* + * Now for the data we need to maintain per-drive: ide_drive_t diff --git a/target/linux/bcm47xx/patches-5.15/700-net-bgmac-connect-to-PHY-even-if-it-is-BGMAC_PHY_NOR.patch b/target/linux/bcm47xx/patches-5.15/700-net-bgmac-connect-to-PHY-even-if-it-is-BGMAC_PHY_NOR.patch new file mode 100644 index 00000000000..2fcfbb74383 --- /dev/null +++ b/target/linux/bcm47xx/patches-5.15/700-net-bgmac-connect-to-PHY-even-if-it-is-BGMAC_PHY_NOR.patch @@ -0,0 +1,42 @@ +From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= +Date: Sun, 7 Nov 2021 14:20:40 +0100 +Subject: [PATCH] net: bgmac: connect to PHY even if it is BGMAC_PHY_NOREGS +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Recent bgmac change was meant to just fix a race between "Generic PHY" +and "bcm53xx" drivers after -EPROBE_DEFER. It modified bgmac to use +phy_connect() only if there is a real PHY device connected. + +That change broke bgmac on bcm47xx. bcma_phy_connect() now registers a +fixed PHY with the bgmac_phy_connect_direct(). That fails as another +fixed PHY (also using address 0) is already registered - by bcm47xx arch +code bcm47xx_register_bus_complete(). + +This change brings origial behaviour. It connects Ethernet interface +with pseudo-PHY (switch device) and adjusts Ethernet interface link to +match connected switch. + +This fixes: +[ 2.548098] bgmac_bcma bcma0:1: Failed to register fixed PHY device +[ 2.554584] bgmac_bcma bcma0:1: Cannot connect to phy + +Fixes: b5375509184d ("net: bgmac: improve handling PHY") +Link: https://lore.kernel.org/netdev/3639116e-9292-03ca-b9d9-d741118a4541@gmail.com/T/#u +Signed-off-by: Rafał Miłecki +--- + drivers/net/ethernet/broadcom/bgmac-bcma.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/drivers/net/ethernet/broadcom/bgmac-bcma.c ++++ b/drivers/net/ethernet/broadcom/bgmac-bcma.c +@@ -94,7 +94,7 @@ static int bcma_phy_connect(struct bgmac + return 0; + + /* Connect to the PHY */ +- if (bgmac->mii_bus && bgmac->phyaddr != BGMAC_PHY_NOREGS) { ++ if (bgmac->mii_bus) { + snprintf(bus_id, sizeof(bus_id), PHY_ID_FMT, bgmac->mii_bus->id, + bgmac->phyaddr); + phy_dev = phy_connect(bgmac->net_dev, bus_id, bgmac_adjust_link, diff --git a/target/linux/bcm47xx/patches-5.15/791-tg3-no-pci-sleep.patch b/target/linux/bcm47xx/patches-5.15/791-tg3-no-pci-sleep.patch new file mode 100644 index 00000000000..50edfc3b411 --- /dev/null +++ b/target/linux/bcm47xx/patches-5.15/791-tg3-no-pci-sleep.patch @@ -0,0 +1,17 @@ +When the Ethernet controller is powered down and someone wants to +access the mdio bus like the witch driver (b53) the system crashed if +PCI_D3hot was set before. This patch deactivates this power sawing mode +when a switch driver is in use. + +--- a/drivers/net/ethernet/broadcom/tg3.c ++++ b/drivers/net/ethernet/broadcom/tg3.c +@@ -4273,7 +4273,8 @@ static int tg3_power_down_prepare(struct + static void tg3_power_down(struct tg3 *tp) + { + pci_wake_from_d3(tp->pdev, tg3_flag(tp, WOL_ENABLE)); +- pci_set_power_state(tp->pdev, PCI_D3hot); ++ if (!tg3_flag(tp, ROBOSWITCH)) ++ pci_set_power_state(tp->pdev, PCI_D3hot); + } + + static void tg3_aux_stat_to_speed_duplex(struct tg3 *tp, u32 val, u32 *speed, u8 *duplex) diff --git a/target/linux/bcm47xx/patches-5.15/800-bcma-add-table-of-serial-flashes-with-smaller-blocks.patch b/target/linux/bcm47xx/patches-5.15/800-bcma-add-table-of-serial-flashes-with-smaller-blocks.patch new file mode 100644 index 00000000000..318dc55810c --- /dev/null +++ b/target/linux/bcm47xx/patches-5.15/800-bcma-add-table-of-serial-flashes-with-smaller-blocks.patch @@ -0,0 +1,73 @@ +From 597715c61ae75a05ab3310a34ff3857a006f0f63 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= +Date: Thu, 20 Nov 2014 21:32:42 +0100 +Subject: [PATCH] bcma: add table of serial flashes with smaller blocks +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Signed-off-by: Rafał Miłecki +--- + drivers/bcma/driver_chipcommon_sflash.c | 29 +++++++++++++++++++++++++++++ + 1 file changed, 29 insertions(+) + +--- a/drivers/bcma/driver_chipcommon_sflash.c ++++ b/drivers/bcma/driver_chipcommon_sflash.c +@@ -9,6 +9,7 @@ + + #include + #include ++#include + + static struct resource bcma_sflash_resource = { + .name = "bcma_sflash", +@@ -42,6 +43,13 @@ static const struct bcma_sflash_tbl_e bc + { NULL }, + }; + ++/* Some devices use smaller blocks (and have more of them) */ ++static const struct bcma_sflash_tbl_e bcma_sflash_st_shrink_tbl[] = { ++ { "M25P16", 0x14, 0x1000, 512, }, ++ { "M25P32", 0x15, 0x1000, 1024, }, ++ { NULL }, ++}; ++ + static const struct bcma_sflash_tbl_e bcma_sflash_sst_tbl[] = { + { "SST25WF512", 1, 0x1000, 16, }, + { "SST25VF512", 0x48, 0x1000, 16, }, +@@ -85,6 +93,24 @@ static void bcma_sflash_cmd(struct bcma_ + bcma_err(cc->core->bus, "SFLASH control command failed (timeout)!\n"); + } + ++const struct bcma_sflash_tbl_e *bcma_sflash_shrink_flash(u32 id) ++{ ++ enum bcm47xx_board board = bcm47xx_board_get(); ++ const struct bcma_sflash_tbl_e *e; ++ ++ switch (board) { ++ case BCM47XX_BOARD_NETGEAR_WGR614_V10: ++ case BCM47XX_BOARD_NETGEAR_WNR1000_V3: ++ for (e = bcma_sflash_st_shrink_tbl; e->name; e++) { ++ if (e->id == id) ++ return e; ++ } ++ return NULL; ++ default: ++ return NULL; ++ } ++} ++ + /* Initialize serial flash access */ + int bcma_sflash_init(struct bcma_drv_cc *cc) + { +@@ -115,6 +141,10 @@ int bcma_sflash_init(struct bcma_drv_cc + case 0x13: + return -ENOTSUPP; + default: ++ e = bcma_sflash_shrink_flash(id); ++ if (e) ++ break; ++ + for (e = bcma_sflash_st_tbl; e->name; e++) { + if (e->id == id) + break; diff --git a/target/linux/bcm47xx/patches-5.15/820-wgt634u-nvram-fix.patch b/target/linux/bcm47xx/patches-5.15/820-wgt634u-nvram-fix.patch new file mode 100644 index 00000000000..bfcfae885fb --- /dev/null +++ b/target/linux/bcm47xx/patches-5.15/820-wgt634u-nvram-fix.patch @@ -0,0 +1,296 @@ +The Netgear wgt634u uses a different format for storing the +configuration. This patch is needed to read out the correct +configuration. The cfe_env.c file uses a different method way to read +out the configuration than the in kernel cfe config reader. + +--- a/drivers/firmware/broadcom/Makefile ++++ b/drivers/firmware/broadcom/Makefile +@@ -1,4 +1,4 @@ + # SPDX-License-Identifier: GPL-2.0-only +-obj-$(CONFIG_BCM47XX_NVRAM) += bcm47xx_nvram.o ++obj-$(CONFIG_BCM47XX_NVRAM) += bcm47xx_nvram.o cfe_env.o + obj-$(CONFIG_BCM47XX_SPROM) += bcm47xx_sprom.o + obj-$(CONFIG_TEE_BNXT_FW) += tee_bnxt_fw.o +--- /dev/null ++++ b/drivers/firmware/broadcom/cfe_env.c +@@ -0,0 +1,228 @@ ++/* ++ * CFE environment variable access ++ * ++ * Copyright 2001-2003, Broadcom Corporation ++ * Copyright 2006, Felix Fietkau ++ * ++ * This program is free software; you can redistribute it and/or modify it ++ * under the terms of the GNU General Public License as published by the ++ * Free Software Foundation; either version 2 of the License, or (at your ++ * option) any later version. ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#define NVRAM_SIZE (0x1ff0) ++static char _nvdata[NVRAM_SIZE]; ++static char _valuestr[256]; ++ ++/* ++ * TLV types. These codes are used in the "type-length-value" ++ * encoding of the items stored in the NVRAM device (flash or EEPROM) ++ * ++ * The layout of the flash/nvram is as follows: ++ * ++ * ++ * ++ * The type code of "ENV_TLV_TYPE_END" marks the end of the list. ++ * The "length" field marks the length of the data section, not ++ * including the type and length fields. ++ * ++ * Environment variables are stored as follows: ++ * ++ * = ++ * ++ * If bit 0 (low bit) is set, the length is an 8-bit value. ++ * If bit 0 (low bit) is clear, the length is a 16-bit value ++ * ++ * Bit 7 set indicates "user" TLVs. In this case, bit 0 still ++ * indicates the size of the length field. ++ * ++ * Flags are from the constants below: ++ * ++ */ ++#define ENV_LENGTH_16BITS 0x00 /* for low bit */ ++#define ENV_LENGTH_8BITS 0x01 ++ ++#define ENV_TYPE_USER 0x80 ++ ++#define ENV_CODE_SYS(n,l) (((n)<<1)|(l)) ++#define ENV_CODE_USER(n,l) ((((n)<<1)|(l)) | ENV_TYPE_USER) ++ ++/* ++ * The actual TLV types we support ++ */ ++ ++#define ENV_TLV_TYPE_END 0x00 ++#define ENV_TLV_TYPE_ENV ENV_CODE_SYS(0,ENV_LENGTH_8BITS) ++ ++/* ++ * Environment variable flags ++ */ ++ ++#define ENV_FLG_NORMAL 0x00 /* normal read/write */ ++#define ENV_FLG_BUILTIN 0x01 /* builtin - not stored in flash */ ++#define ENV_FLG_READONLY 0x02 /* read-only - cannot be changed */ ++ ++#define ENV_FLG_MASK 0xFF /* mask of attributes we keep */ ++#define ENV_FLG_ADMIN 0x100 /* lets us internally override permissions */ ++ ++ ++/* ********************************************************************* ++ * _nvram_read(buffer,offset,length) ++ * ++ * Read data from the NVRAM device ++ * ++ * Input parameters: ++ * buffer - destination buffer ++ * offset - offset of data to read ++ * length - number of bytes to read ++ * ++ * Return value: ++ * number of bytes read, or <0 if error occured ++ ********************************************************************* */ ++static int ++_nvram_read(unsigned char *nv_buf, unsigned char *buffer, int offset, int length) ++{ ++ int i; ++ if (offset > NVRAM_SIZE) ++ return -1; ++ ++ for ( i = 0; i < length; i++) { ++ buffer[i] = ((volatile unsigned char*)nv_buf)[offset + i]; ++ } ++ return length; ++} ++ ++ ++static char* ++_strnchr(const char *dest,int c,size_t cnt) ++{ ++ while (*dest && (cnt > 0)) { ++ if (*dest == c) return (char *) dest; ++ dest++; ++ cnt--; ++ } ++ return NULL; ++} ++ ++ ++ ++/* ++ * Core support API: Externally visible. ++ */ ++ ++/* ++ * Get the value of an NVRAM variable ++ * @param name name of variable to get ++ * @return value of variable or NULL if undefined ++ */ ++ ++char *cfe_env_get(unsigned char *nv_buf, const char *name) ++{ ++ int size; ++ unsigned char *buffer; ++ unsigned char *ptr; ++ unsigned char *envval; ++ unsigned int reclen; ++ unsigned int rectype; ++ int offset; ++ int flg; ++ ++ if (!strcmp(name, "nvram_type")) ++ return "cfe"; ++ ++ size = NVRAM_SIZE; ++ buffer = &_nvdata[0]; ++ ++ ptr = buffer; ++ offset = 0; ++ ++ /* Read the record type and length */ ++ if (_nvram_read(nv_buf, ptr,offset,1) != 1) { ++ goto error; ++ } ++ ++ while ((*ptr != ENV_TLV_TYPE_END) && (size > 1)) { ++ ++ /* Adjust pointer for TLV type */ ++ rectype = *(ptr); ++ offset++; ++ size--; ++ ++ /* ++ * Read the length. It can be either 1 or 2 bytes ++ * depending on the code ++ */ ++ if (rectype & ENV_LENGTH_8BITS) { ++ /* Read the record type and length - 8 bits */ ++ if (_nvram_read(nv_buf, ptr,offset,1) != 1) { ++ goto error; ++ } ++ reclen = *(ptr); ++ size--; ++ offset++; ++ } ++ else { ++ /* Read the record type and length - 16 bits, MSB first */ ++ if (_nvram_read(nv_buf, ptr,offset,2) != 2) { ++ goto error; ++ } ++ reclen = (((unsigned int) *(ptr)) << 8) + (unsigned int) *(ptr+1); ++ size -= 2; ++ offset += 2; ++ } ++ ++ if (reclen > size) ++ break; /* should not happen, bad NVRAM */ ++ ++ switch (rectype) { ++ case ENV_TLV_TYPE_ENV: ++ /* Read the TLV data */ ++ if (_nvram_read(nv_buf, ptr,offset,reclen) != reclen) ++ goto error; ++ flg = *ptr++; ++ envval = (unsigned char *) _strnchr(ptr,'=',(reclen-1)); ++ if (envval) { ++ *envval++ = '\0'; ++ memcpy(_valuestr,envval,(reclen-1)-(envval-ptr)); ++ _valuestr[(reclen-1)-(envval-ptr)] = '\0'; ++#if 0 ++ printk(KERN_INFO "NVRAM:%s=%s\n", ptr, _valuestr); ++#endif ++ if(!strcmp(ptr, name)){ ++ return _valuestr; ++ } ++ if((strlen(ptr) > 1) && !strcmp(&ptr[1], name)) ++ return _valuestr; ++ } ++ break; ++ ++ default: ++ /* Unknown TLV type, skip it. */ ++ break; ++ } ++ ++ /* ++ * Advance to next TLV ++ */ ++ ++ size -= (int)reclen; ++ offset += reclen; ++ ++ /* Read the next record type */ ++ ptr = buffer; ++ if (_nvram_read(nv_buf, ptr,offset,1) != 1) ++ goto error; ++ } ++ ++error: ++ return NULL; ++ ++} ++ +--- a/drivers/firmware/broadcom/bcm47xx_nvram.c ++++ b/drivers/firmware/broadcom/bcm47xx_nvram.c +@@ -33,6 +33,8 @@ struct nvram_header { + static char nvram_buf[NVRAM_SPACE]; + static size_t nvram_len; + static const u32 nvram_sizes[] = {0x6000, 0x8000, 0xF000, 0x10000}; ++static int cfe_env; ++extern char *cfe_env_get(char *nv_buf, const char *name); + + /** + * bcm47xx_nvram_is_valid - check for a valid NVRAM at specified memory +@@ -80,6 +82,26 @@ static int bcm47xx_nvram_find_and_copy(v + return -EEXIST; + } + ++ cfe_env = 0; ++ ++ /* XXX: hack for supporting the CFE environment stuff on WGT634U */ ++ if (res_size >= 8 * 1024 * 1024) { ++ u32 *src = (u32 *)(flash_start + 8 * 1024 * 1024 - 0x2000); ++ u32 *dst = (u32 *)nvram_buf; ++ ++ if ((*src & 0xff00ff) == 0x000001) { ++ printk("early_nvram_init: WGT634U NVRAM found.\n"); ++ ++ for (i = 0; i < 0x1ff0; i++) { ++ if (*src == 0xFFFFFFFF) ++ break; ++ *dst++ = *src++; ++ } ++ cfe_env = 1; ++ return 0; ++ } ++ } ++ + /* TODO: when nvram is on nand flash check for bad blocks first. */ + + /* Try every possible flash size and check for NVRAM at its end */ +@@ -172,6 +194,13 @@ int bcm47xx_nvram_getenv(const char *nam + if (!name) + return -EINVAL; + ++ if (cfe_env) { ++ value = cfe_env_get(nvram_buf, name); ++ if (!value) ++ return -ENOENT; ++ return snprintf(val, val_len, "%s", value); ++ } ++ + if (!nvram_len) { + err = nvram_init(); + if (err) diff --git a/target/linux/bcm47xx/patches-5.15/830-huawei_e970_support.patch b/target/linux/bcm47xx/patches-5.15/830-huawei_e970_support.patch new file mode 100644 index 00000000000..1746fee592c --- /dev/null +++ b/target/linux/bcm47xx/patches-5.15/830-huawei_e970_support.patch @@ -0,0 +1,101 @@ +--- a/arch/mips/bcm47xx/setup.c ++++ b/arch/mips/bcm47xx/setup.c +@@ -37,6 +37,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -254,6 +255,33 @@ static struct fixed_phy_status bcm47xx_f + .duplex = DUPLEX_FULL, + }; + ++static struct gpio_wdt_platform_data gpio_wdt_data; ++ ++static struct platform_device gpio_wdt_device = { ++ .name = "gpio-wdt", ++ .id = 0, ++ .dev = { ++ .platform_data = &gpio_wdt_data, ++ }, ++}; ++ ++static int __init bcm47xx_register_gpio_watchdog(void) ++{ ++ enum bcm47xx_board board = bcm47xx_board_get(); ++ ++ switch (board) { ++ case BCM47XX_BOARD_HUAWEI_E970: ++ pr_info("bcm47xx: detected Huawei E970 or similar, starting early gpio_wdt timer\n"); ++ gpio_wdt_data.gpio = 7; ++ gpio_wdt_data.interval = HZ; ++ gpio_wdt_data.first_interval = HZ / 5; ++ return platform_device_register(&gpio_wdt_device); ++ default: ++ /* Nothing to do */ ++ return 0; ++ } ++} ++ + static int __init bcm47xx_register_bus_complete(void) + { + switch (bcm47xx_bus_type) { +@@ -275,6 +303,7 @@ static int __init bcm47xx_register_bus_c + bcm47xx_workarounds(); + + fixed_phy_add(PHY_POLL, 0, &bcm47xx_fixed_phy_status); ++ bcm47xx_register_gpio_watchdog(); + return 0; + } + device_initcall(bcm47xx_register_bus_complete); +--- a/arch/mips/configs/bcm47xx_defconfig ++++ b/arch/mips/configs/bcm47xx_defconfig +@@ -63,6 +63,7 @@ CONFIG_HW_RANDOM=y + CONFIG_GPIO_SYSFS=y + CONFIG_WATCHDOG=y + CONFIG_BCM47XX_WDT=y ++CONFIG_GPIO_WDT=y + CONFIG_SSB_DRIVER_GIGE=y + CONFIG_BCMA_DRIVER_GMAC_CMN=y + CONFIG_USB=y +--- a/drivers/ssb/embedded.c ++++ b/drivers/ssb/embedded.c +@@ -34,11 +34,36 @@ int ssb_watchdog_timer_set(struct ssb_bu + } + EXPORT_SYMBOL(ssb_watchdog_timer_set); + ++#ifdef CONFIG_BCM47XX ++#include ++ ++static bool ssb_watchdog_supported(void) ++{ ++ enum bcm47xx_board board = bcm47xx_board_get(); ++ ++ /* The Huawei E970 has a hardware watchdog using a GPIO */ ++ switch (board) { ++ case BCM47XX_BOARD_HUAWEI_E970: ++ return false; ++ default: ++ return true; ++ } ++} ++#else ++static bool ssb_watchdog_supported(void) ++{ ++ return true; ++} ++#endif ++ + int ssb_watchdog_register(struct ssb_bus *bus) + { + struct bcm47xx_wdt wdt = {}; + struct platform_device *pdev; + ++ if (!ssb_watchdog_supported()) ++ return 0; ++ + if (ssb_chipco_available(&bus->chipco)) { + wdt.driver_data = &bus->chipco; + wdt.timer_set = ssb_chipco_watchdog_timer_set_wdt; diff --git a/target/linux/bcm47xx/patches-5.15/831-old_gpio_wdt.patch b/target/linux/bcm47xx/patches-5.15/831-old_gpio_wdt.patch new file mode 100644 index 00000000000..f6fb7f18558 --- /dev/null +++ b/target/linux/bcm47xx/patches-5.15/831-old_gpio_wdt.patch @@ -0,0 +1,360 @@ +This generic GPIO watchdog is used on Huawei E970 (bcm47xx) + +Signed-off-by: Mathias Adam + +--- a/drivers/watchdog/Kconfig ++++ b/drivers/watchdog/Kconfig +@@ -1698,6 +1698,15 @@ config WDT_MTX1 + Hardware driver for the MTX-1 boards. This is a watchdog timer that + will reboot the machine after a 100 seconds timer expired. + ++config GPIO_WDT ++ tristate "GPIO Hardware Watchdog" ++ help ++ Hardware driver for GPIO-controlled watchdogs. GPIO pin and ++ toggle interval settings are platform-specific. The driver ++ will stop toggling the GPIO (i.e. machine reboots) after a ++ 100 second timer expired and no process has written to ++ /dev/watchdog during that time. ++ + config PNX833X_WDT + tristate "PNX833x Hardware Watchdog" + depends on SOC_PNX8335 +--- a/drivers/watchdog/Makefile ++++ b/drivers/watchdog/Makefile +@@ -161,6 +161,7 @@ obj-$(CONFIG_RC32434_WDT) += rc32434_wdt + obj-$(CONFIG_INDYDOG) += indydog.o + obj-$(CONFIG_JZ4740_WDT) += jz4740_wdt.o + obj-$(CONFIG_WDT_MTX1) += mtx-1_wdt.o ++obj-$(CONFIG_GPIO_WDT) += old_gpio_wdt.o + obj-$(CONFIG_PNX833X_WDT) += pnx833x_wdt.o + obj-$(CONFIG_SIBYTE_WDOG) += sb_wdog.o + obj-$(CONFIG_AR7_WDT) += ar7_wdt.o +--- /dev/null ++++ b/drivers/watchdog/old_gpio_wdt.c +@@ -0,0 +1,301 @@ ++/* ++ * Driver for GPIO-controlled Hardware Watchdogs. ++ * ++ * Copyright (C) 2013 Mathias Adam ++ * ++ * Replaces mtx1_wdt (driver for the MTX-1 Watchdog): ++ * ++ * (C) Copyright 2005 4G Systems , ++ * All Rights Reserved. ++ * http://www.4g-systems.biz ++ * ++ * (C) Copyright 2007 OpenWrt.org, Florian Fainelli ++ * ++ * This program is free software; you can redistribute it and/or ++ * modify it under the terms of the GNU General Public License ++ * as published by the Free Software Foundation; either version ++ * 2 of the License, or (at your option) any later version. ++ * ++ * Neither Michael Stickel nor 4G Systems admit liability nor provide ++ * warranty for any of this software. This material is provided ++ * "AS-IS" and at no charge. ++ * ++ * (c) Copyright 2005 4G Systems ++ * ++ * Release 0.01. ++ * Author: Michael Stickel michael.stickel@4g-systems.biz ++ * ++ * Release 0.02. ++ * Author: Florian Fainelli florian@openwrt.org ++ * use the Linux watchdog/timer APIs ++ * ++ * Release 0.03. ++ * Author: Mathias Adam ++ * make it a generic gpio watchdog driver ++ * ++ * The Watchdog is configured to reset the MTX-1 ++ * if it is not triggered for 100 seconds. ++ * It should not be triggered more often than 1.6 seconds. ++ * ++ * A timer triggers the watchdog every 5 seconds, until ++ * it is opened for the first time. After the first open ++ * it MUST be triggered every 2..95 seconds. ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++static int ticks = 100 * HZ; ++ ++static struct { ++ struct completion stop; ++ spinlock_t lock; ++ int running; ++ struct timer_list timer; ++ int queue; ++ int default_ticks; ++ unsigned long inuse; ++ unsigned gpio; ++ unsigned int gstate; ++ int interval; ++ int first_interval; ++} gpio_wdt_device; ++ ++static void gpio_wdt_trigger(struct timer_list *unused) ++{ ++ spin_lock(&gpio_wdt_device.lock); ++ if (gpio_wdt_device.running && ticks > 0) ++ ticks -= gpio_wdt_device.interval; ++ ++ /* toggle wdt gpio */ ++ gpio_wdt_device.gstate = !gpio_wdt_device.gstate; ++ gpio_set_value(gpio_wdt_device.gpio, gpio_wdt_device.gstate); ++ ++ if (gpio_wdt_device.queue && ticks > 0) ++ mod_timer(&gpio_wdt_device.timer, jiffies + gpio_wdt_device.interval); ++ else ++ complete(&gpio_wdt_device.stop); ++ spin_unlock(&gpio_wdt_device.lock); ++} ++ ++static void gpio_wdt_reset(void) ++{ ++ ticks = gpio_wdt_device.default_ticks; ++} ++ ++ ++static void gpio_wdt_start(void) ++{ ++ unsigned long flags; ++ ++ spin_lock_irqsave(&gpio_wdt_device.lock, flags); ++ if (!gpio_wdt_device.queue) { ++ gpio_wdt_device.queue = 1; ++ gpio_wdt_device.gstate = 1; ++ gpio_set_value(gpio_wdt_device.gpio, 1); ++ mod_timer(&gpio_wdt_device.timer, jiffies + gpio_wdt_device.first_interval); ++ } ++ gpio_wdt_device.running++; ++ spin_unlock_irqrestore(&gpio_wdt_device.lock, flags); ++} ++ ++static int gpio_wdt_stop(void) ++{ ++ unsigned long flags; ++ ++ spin_lock_irqsave(&gpio_wdt_device.lock, flags); ++ if (gpio_wdt_device.queue) { ++ gpio_wdt_device.queue = 0; ++ gpio_wdt_device.gstate = 0; ++ gpio_set_value(gpio_wdt_device.gpio, 0); ++ } ++ ticks = gpio_wdt_device.default_ticks; ++ spin_unlock_irqrestore(&gpio_wdt_device.lock, flags); ++ return 0; ++} ++ ++/* Filesystem functions */ ++ ++static int gpio_wdt_open(struct inode *inode, struct file *file) ++{ ++ if (test_and_set_bit(0, &gpio_wdt_device.inuse)) ++ return -EBUSY; ++ return nonseekable_open(inode, file); ++} ++ ++ ++static int gpio_wdt_release(struct inode *inode, struct file *file) ++{ ++ clear_bit(0, &gpio_wdt_device.inuse); ++ return 0; ++} ++ ++static long gpio_wdt_ioctl(struct file *file, unsigned int cmd, ++ unsigned long arg) ++{ ++ void __user *argp = (void __user *)arg; ++ int __user *p = (int __user *)argp; ++ unsigned int value; ++ static const struct watchdog_info ident = { ++ .options = WDIOF_CARDRESET, ++ .identity = "GPIO WDT", ++ }; ++ ++ switch (cmd) { ++ case WDIOC_GETSUPPORT: ++ if (copy_to_user(argp, &ident, sizeof(ident))) ++ return -EFAULT; ++ break; ++ case WDIOC_GETSTATUS: ++ case WDIOC_GETBOOTSTATUS: ++ put_user(0, p); ++ break; ++ case WDIOC_SETOPTIONS: ++ if (get_user(value, p)) ++ return -EFAULT; ++ if (value & WDIOS_ENABLECARD) ++ gpio_wdt_start(); ++ else if (value & WDIOS_DISABLECARD) ++ gpio_wdt_stop(); ++ else ++ return -EINVAL; ++ return 0; ++ case WDIOC_KEEPALIVE: ++ gpio_wdt_reset(); ++ break; ++ default: ++ return -ENOTTY; ++ } ++ return 0; ++} ++ ++ ++static ssize_t gpio_wdt_write(struct file *file, const char *buf, ++ size_t count, loff_t *ppos) ++{ ++ if (!count) ++ return -EIO; ++ gpio_wdt_reset(); ++ return count; ++} ++ ++static const struct file_operations gpio_wdt_fops = { ++ .owner = THIS_MODULE, ++ .llseek = no_llseek, ++ .unlocked_ioctl = gpio_wdt_ioctl, ++ .open = gpio_wdt_open, ++ .write = gpio_wdt_write, ++ .release = gpio_wdt_release, ++}; ++ ++ ++static struct miscdevice gpio_wdt_misc = { ++ .minor = WATCHDOG_MINOR, ++ .name = "watchdog", ++ .fops = &gpio_wdt_fops, ++}; ++ ++ ++static int gpio_wdt_probe(struct platform_device *pdev) ++{ ++ int ret; ++ struct gpio_wdt_platform_data *gpio_wdt_data = pdev->dev.platform_data; ++ ++ gpio_wdt_device.gpio = gpio_wdt_data->gpio; ++ gpio_wdt_device.interval = gpio_wdt_data->interval; ++ gpio_wdt_device.first_interval = gpio_wdt_data->first_interval; ++ if (gpio_wdt_device.first_interval <= 0) { ++ gpio_wdt_device.first_interval = gpio_wdt_device.interval; ++ } ++ ++ ret = gpio_request(gpio_wdt_device.gpio, "gpio-wdt"); ++ if (ret < 0) { ++ dev_err(&pdev->dev, "failed to request gpio"); ++ return ret; ++ } ++ ++ spin_lock_init(&gpio_wdt_device.lock); ++ init_completion(&gpio_wdt_device.stop); ++ gpio_wdt_device.queue = 0; ++ clear_bit(0, &gpio_wdt_device.inuse); ++ timer_setup(&gpio_wdt_device.timer, gpio_wdt_trigger, 0L); ++ gpio_wdt_device.default_ticks = ticks; ++ ++ gpio_wdt_start(); ++ dev_info(&pdev->dev, "GPIO Hardware Watchdog driver (gpio=%i interval=%i/%i)\n", ++ gpio_wdt_data->gpio, gpio_wdt_data->first_interval, gpio_wdt_data->interval); ++ return 0; ++} ++ ++static int gpio_wdt_remove(struct platform_device *pdev) ++{ ++ /* FIXME: do we need to lock this test ? */ ++ if (gpio_wdt_device.queue) { ++ gpio_wdt_device.queue = 0; ++ wait_for_completion(&gpio_wdt_device.stop); ++ } ++ ++ gpio_free(gpio_wdt_device.gpio); ++ misc_deregister(&gpio_wdt_misc); ++ return 0; ++} ++ ++static struct platform_driver gpio_wdt_driver = { ++ .probe = gpio_wdt_probe, ++ .remove = gpio_wdt_remove, ++ .driver.name = "gpio-wdt", ++ .driver.owner = THIS_MODULE, ++}; ++ ++static int __init gpio_wdt_init(void) ++{ ++ return platform_driver_register(&gpio_wdt_driver); ++} ++arch_initcall(gpio_wdt_init); ++ ++/* ++ * We do wdt initialization in two steps: arch_initcall probes the wdt ++ * very early to start pinging the watchdog (misc devices are not yet ++ * available), and later module_init() just registers the misc device. ++ */ ++static int gpio_wdt_init_late(void) ++{ ++ int ret; ++ ++ ret = misc_register(&gpio_wdt_misc); ++ if (ret < 0) { ++ pr_err("GPIO_WDT: failed to register misc device\n"); ++ return ret; ++ } ++ return 0; ++} ++#ifndef MODULE ++module_init(gpio_wdt_init_late); ++#endif ++ ++static void __exit gpio_wdt_exit(void) ++{ ++ platform_driver_unregister(&gpio_wdt_driver); ++} ++module_exit(gpio_wdt_exit); ++ ++MODULE_AUTHOR("Michael Stickel, Florian Fainelli, Mathias Adam"); ++MODULE_DESCRIPTION("Driver for GPIO hardware watchdogs"); ++MODULE_LICENSE("GPL"); ++MODULE_ALIAS_MISCDEV(WATCHDOG_MINOR); ++MODULE_ALIAS("platform:gpio-wdt"); +--- /dev/null ++++ b/include/linux/old_gpio_wdt.h +@@ -0,0 +1,21 @@ ++/* ++ * Definitions for the GPIO watchdog driver ++ * ++ * Copyright (C) 2013 Mathias Adam ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License version 2 as ++ * published by the Free Software Foundation. ++ * ++ */ ++ ++#ifndef _GPIO_WDT_H_ ++#define _GPIO_WDT_H_ ++ ++struct gpio_wdt_platform_data { ++ int gpio; /* GPIO line number */ ++ int interval; /* watchdog reset interval in system ticks */ ++ int first_interval; /* first wd reset interval in system ticks */ ++}; ++ ++#endif /* _GPIO_WDT_H_ */ diff --git a/target/linux/bcm47xx/patches-5.15/900-ssb-reject-PCI-writes-setting-CardBus-bridge-resourc.patch b/target/linux/bcm47xx/patches-5.15/900-ssb-reject-PCI-writes-setting-CardBus-bridge-resourc.patch new file mode 100644 index 00000000000..6b7ee06e50e --- /dev/null +++ b/target/linux/bcm47xx/patches-5.15/900-ssb-reject-PCI-writes-setting-CardBus-bridge-resourc.patch @@ -0,0 +1,30 @@ +From 5c81397a0147ea59c778d1de14ef54e2268221f6 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= +Date: Wed, 8 Apr 2015 06:58:11 +0200 +Subject: [PATCH] ssb: reject PCI writes setting CardBus bridge resources +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +If SoC has a CardBus we can set resources of device at slot 1 only. It's +impossigle to set bridge resources as it simply overwrites device 1 +configuration and usually results in Data bus error-s. + +Signed-off-by: Rafał Miłecki +--- + drivers/ssb/driver_pcicore.c | 4 ++++ + 1 file changed, 4 insertions(+) + +--- a/drivers/ssb/driver_pcicore.c ++++ b/drivers/ssb/driver_pcicore.c +@@ -164,6 +164,10 @@ static int ssb_extpci_write_config(struc + WARN_ON(!pc->hostmode); + if (unlikely(len != 1 && len != 2 && len != 4)) + goto out; ++ /* CardBus SoCs allow configuring dev 1 resources only */ ++ if (extpci_core->cardbusmode && dev != 1 && ++ off >= PCI_BASE_ADDRESS_0 && off <= PCI_BASE_ADDRESS_5) ++ goto out; + addr = get_cfgspace_addr(pc, bus, dev, func, off); + if (unlikely(!addr)) + goto out; diff --git a/target/linux/bcm47xx/patches-5.15/940-bcm47xx-yenta.patch b/target/linux/bcm47xx/patches-5.15/940-bcm47xx-yenta.patch new file mode 100644 index 00000000000..8847b0c0c75 --- /dev/null +++ b/target/linux/bcm47xx/patches-5.15/940-bcm47xx-yenta.patch @@ -0,0 +1,46 @@ +--- a/drivers/pcmcia/yenta_socket.c ++++ b/drivers/pcmcia/yenta_socket.c +@@ -932,6 +932,8 @@ static unsigned int yenta_probe_irq(stru + * Probe for usable interrupts using the force + * register to generate bogus card status events. + */ ++#ifndef CONFIG_BCM47XX ++ /* WRT54G3G does not like this */ + cb_writel(socket, CB_SOCKET_EVENT, -1); + cb_writel(socket, CB_SOCKET_MASK, CB_CSTSMASK); + reg = exca_readb(socket, I365_CSCINT); +@@ -947,6 +949,7 @@ static unsigned int yenta_probe_irq(stru + } + cb_writel(socket, CB_SOCKET_MASK, 0); + exca_writeb(socket, I365_CSCINT, reg); ++#endif + + mask = probe_irq_mask(val) & 0xffff; + +@@ -1031,6 +1034,10 @@ static void yenta_get_socket_capabilitie + else + socket->socket.irq_mask = 0; + ++ /* irq mask probing is broken for the WRT54G3G */ ++ if (socket->socket.irq_mask == 0) ++ socket->socket.irq_mask = 0x6f8; ++ + dev_info(&socket->dev->dev, "ISA IRQ mask 0x%04x, PCI irq %d\n", + socket->socket.irq_mask, socket->cb_irq); + } +@@ -1262,6 +1269,15 @@ static int yenta_probe(struct pci_dev *d + dev_info(&dev->dev, "Socket status: %08x\n", + cb_readl(socket, CB_SOCKET_STATE)); + ++ /* Generate an interrupt on card insert/remove */ ++ config_writew(socket, CB_SOCKET_MASK, CB_CSTSMASK | CB_CDMASK); ++ ++ /* Set up Multifunction Routing Status Register */ ++ config_writew(socket, 0x8C, 0x1000 /* MFUNC3 to GPIO3 */ | 0x2 /* MFUNC0 to INTA */); ++ ++ /* Switch interrupts to parallelized */ ++ config_writeb(socket, 0x92, 0x64); ++ + yenta_fixup_parent_bridge(dev->subordinate); + + /* Register it with the pcmcia layer.. */ diff --git a/target/linux/bcm47xx/patches-5.15/976-ssb_increase_pci_delay.patch b/target/linux/bcm47xx/patches-5.15/976-ssb_increase_pci_delay.patch new file mode 100644 index 00000000000..99aa188374a --- /dev/null +++ b/target/linux/bcm47xx/patches-5.15/976-ssb_increase_pci_delay.patch @@ -0,0 +1,11 @@ +--- a/drivers/ssb/driver_pcicore.c ++++ b/drivers/ssb/driver_pcicore.c +@@ -390,7 +390,7 @@ static void ssb_pcicore_init_hostmode(st + set_io_port_base(ssb_pcicore_controller.io_map_base); + /* Give some time to the PCI controller to configure itself with the new + * values. Not waiting at this point causes crashes of the machine. */ +- mdelay(10); ++ mdelay(300); + register_pci_controller(&ssb_pcicore_controller); + } + diff --git a/target/linux/bcm47xx/patches-5.15/999-wl_exports.patch b/target/linux/bcm47xx/patches-5.15/999-wl_exports.patch new file mode 100644 index 00000000000..48c6a47871f --- /dev/null +++ b/target/linux/bcm47xx/patches-5.15/999-wl_exports.patch @@ -0,0 +1,24 @@ +--- a/drivers/firmware/broadcom/bcm47xx_nvram.c ++++ b/drivers/firmware/broadcom/bcm47xx_nvram.c +@@ -30,7 +30,8 @@ struct nvram_header { + u32 config_ncdl; /* ncdl values for memc */ + }; + +-static char nvram_buf[NVRAM_SPACE]; ++char nvram_buf[NVRAM_SPACE]; ++EXPORT_SYMBOL(nvram_buf); + static size_t nvram_len; + static const u32 nvram_sizes[] = {0x6000, 0x8000, 0xF000, 0x10000}; + static int cfe_env; +--- a/arch/mips/mm/cache.c ++++ b/arch/mips/mm/cache.c +@@ -61,6 +61,9 @@ void (*_dma_cache_wback_inv)(unsigned lo + void (*_dma_cache_wback)(unsigned long start, unsigned long size); + void (*_dma_cache_inv)(unsigned long start, unsigned long size); + ++EXPORT_SYMBOL(_dma_cache_wback_inv); ++EXPORT_SYMBOL(_dma_cache_inv); ++ + #endif /* CONFIG_DMA_NONCOHERENT */ + + /* From 18e6df83bb92dc095da237302de82ef6b4bc62bf Mon Sep 17 00:00:00 2001 From: Hauke Mehrtens Date: Sun, 22 Jan 2023 20:04:35 +0100 Subject: [PATCH 07/32] bcm47xx: Refresh kernel 5.15 This makes the patches and the kernel configuration apply on top of kernel 5.15. The following patch was removed because the old IDE subsystem was removed from upstream kernel: target/linux/bcm47xx/patches-5.15/610-pci_ide_fix.patch This was tested successfully on a ASUS WL-500g Premium V1. Signed-off-by: Hauke Mehrtens --- target/linux/bcm47xx/Makefile | 1 + target/linux/bcm47xx/config-5.15 | 71 +++++-------------- ...nand-Assign-soc-as-early-as-possible.patch | 4 +- ...-Allow-SoC-to-provide-I-O-operations.patch | 6 +- ...mnand-Avoid-pdev-in-brcmnand_init_cs.patch | 6 +- ...F-operations-out-of-brcmnand_init_cs.patch | 6 +- ...and-Allow-working-without-interrupts.patch | 4 +- ...Add-platform-data-structure-for-BCMA.patch | 6 +- ...and-Allow-platform-data-instantation.patch | 14 ++-- ...A-controller-uses-command-shift-of-0.patch | 2 +- ...8-mtd-rawnand-brcmnand-Add-BCMA-shim.patch | 4 +- .../bcm47xx/patches-5.15/159-cpu_fixes.patch | 69 ++++++++---------- .../patches-5.15/160-kmap_coherent.patch | 8 +-- .../patches-5.15/310-no_highpage.patch | 2 +- .../patches-5.15/610-pci_ide_fix.patch | 41 ----------- .../patches-5.15/791-tg3-no-pci-sleep.patch | 2 +- .../patches-5.15/831-old_gpio_wdt.patch | 12 ++-- ...rites-setting-CardBus-bridge-resourc.patch | 2 +- .../976-ssb_increase_pci_delay.patch | 6 +- .../bcm47xx/patches-5.15/999-wl_exports.patch | 2 +- 20 files changed, 91 insertions(+), 177 deletions(-) delete mode 100644 target/linux/bcm47xx/patches-5.15/610-pci_ide_fix.patch diff --git a/target/linux/bcm47xx/Makefile b/target/linux/bcm47xx/Makefile index 3a482018517..ca09aea9813 100644 --- a/target/linux/bcm47xx/Makefile +++ b/target/linux/bcm47xx/Makefile @@ -11,6 +11,7 @@ FEATURES:=squashfs usb SUBTARGETS:=generic mips74k legacy KERNEL_PATCHVER:=5.10 +KERNEL_TESTING_PATCHVER:=5.15 define Target/Description Build firmware images for Broadcom based BCM47xx/53xx routers with MIPS CPU, *not* ARM. diff --git a/target/linux/bcm47xx/config-5.15 b/target/linux/bcm47xx/config-5.15 index 31d6d1de390..0714c9a57c6 100644 --- a/target/linux/bcm47xx/config-5.15 +++ b/target/linux/bcm47xx/config-5.15 @@ -1,18 +1,10 @@ CONFIG_ADM6996_PHY=y -CONFIG_ARCH_BINFMT_ELF_STATE=y -CONFIG_ARCH_CLOCKSOURCE_DATA=y -CONFIG_ARCH_DISCARD_MEMBLOCK=y -CONFIG_ARCH_HAS_ELF_RANDOMIZE=y -CONFIG_ARCH_HAS_SYNC_DMA_FOR_DEVICE=y +CONFIG_ARCH_32BIT_OFF_T=y CONFIG_ARCH_HIBERNATION_POSSIBLE=y +CONFIG_ARCH_KEEP_MEMBLOCK=y CONFIG_ARCH_MMAP_RND_BITS_MAX=15 CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MAX=15 -CONFIG_ARCH_SUPPORTS_UPROBES=y CONFIG_ARCH_SUSPEND_POSSIBLE=y -CONFIG_ARCH_USE_BUILTIN_BSWAP=y -CONFIG_ARCH_USE_QUEUED_RWLOCKS=y -CONFIG_ARCH_USE_QUEUED_SPINLOCKS=y -CONFIG_ARCH_WANT_IPC_PARSE_VERSION=y CONFIG_BCM47XX=y CONFIG_BCM47XX_BCMA=y CONFIG_BCM47XX_NVRAM=y @@ -54,25 +46,23 @@ CONFIG_CPU_MIPSR1=y CONFIG_CPU_MIPSR2_IRQ_VI=y CONFIG_CPU_NEEDS_NO_SMARTMIPS_OR_MICROMIPS=y CONFIG_CPU_R4K_CACHE_TLB=y -CONFIG_CPU_R4K_FPU=y CONFIG_CPU_SUPPORTS_32BIT_KERNEL=y CONFIG_CPU_SUPPORTS_HIGHMEM=y -CONFIG_CRYPTO_BLAKE2S=y CONFIG_CRYPTO_LIB_BLAKE2S_GENERIC=y +CONFIG_CRYPTO_LIB_POLY1305_RSIZE=2 CONFIG_CRYPTO_RNG2=y -CONFIG_CRYPTO_WORKQUEUE=y CONFIG_CSRC_R4K=y -CONFIG_DMA_DIRECT_OPS=y CONFIG_DMA_NONCOHERENT=y -CONFIG_DMA_NONCOHERENT_CACHE_SYNC=y -CONFIG_DMA_NONCOHERENT_MMAP=y -CONFIG_DMA_NONCOHERENT_OPS=y # CONFIG_EARLY_PRINTK is not set CONFIG_FIXED_PHY=y +CONFIG_FW_LOADER_PAGED_BUF=y CONFIG_GENERIC_ATOMIC64=y CONFIG_GENERIC_CLOCKEVENTS=y CONFIG_GENERIC_CMOS_UPDATE=y CONFIG_GENERIC_CPU_AUTOPROBE=y +CONFIG_GENERIC_FIND_FIRST_BIT=y +CONFIG_GENERIC_GETTIMEOFDAY=y +CONFIG_GENERIC_IOMAP=y CONFIG_GENERIC_IRQ_CHIP=y CONFIG_GENERIC_IRQ_EFFECTIVE_AFF_MASK=y CONFIG_GENERIC_IRQ_SHOW=y @@ -86,45 +76,13 @@ CONFIG_GENERIC_SCHED_CLOCK=y CONFIG_GENERIC_SMP_IDLE_THREAD=y CONFIG_GENERIC_TIME_VSYSCALL=y CONFIG_GPIOLIB_IRQCHIP=y +CONFIG_GPIO_CDEV=y CONFIG_GPIO_WDT=y CONFIG_HANDLE_DOMAIN_IRQ=y CONFIG_HARDWARE_WATCHPOINTS=y CONFIG_HAS_DMA=y CONFIG_HAS_IOMEM=y CONFIG_HAS_IOPORT_MAP=y -CONFIG_HAVE_ARCH_COMPILER_H=y -CONFIG_HAVE_ARCH_JUMP_LABEL=y -CONFIG_HAVE_ARCH_KGDB=y -CONFIG_HAVE_ARCH_SECCOMP_FILTER=y -CONFIG_HAVE_ARCH_TRACEHOOK=y -CONFIG_HAVE_CBPF_JIT=y -CONFIG_HAVE_CONTEXT_TRACKING=y -CONFIG_HAVE_COPY_THREAD_TLS=y -CONFIG_HAVE_C_RECORDMCOUNT=y -CONFIG_HAVE_DEBUG_KMEMLEAK=y -CONFIG_HAVE_DEBUG_STACKOVERFLOW=y -CONFIG_HAVE_DMA_CONTIGUOUS=y -CONFIG_HAVE_DYNAMIC_FTRACE=y -CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y -CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y -CONFIG_HAVE_FUNCTION_TRACER=y -CONFIG_HAVE_GENERIC_DMA_COHERENT=y -CONFIG_HAVE_IDE=y -CONFIG_HAVE_IRQ_EXIT_ON_IRQ_STACK=y -CONFIG_HAVE_IRQ_TIME_ACCOUNTING=y -CONFIG_HAVE_LATENCYTOP_SUPPORT=y -CONFIG_HAVE_LD_DEAD_CODE_DATA_ELIMINATION=y -CONFIG_HAVE_MEMBLOCK=y -CONFIG_HAVE_MEMBLOCK_NODE_MAP=y -CONFIG_HAVE_MOD_ARCH_SPECIFIC=y -CONFIG_HAVE_NET_DSA=y -CONFIG_HAVE_OPROFILE=y -CONFIG_HAVE_PERF_EVENTS=y -CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y -CONFIG_HAVE_RSEQ=y -CONFIG_HAVE_SYSCALL_TRACEPOINTS=y -CONFIG_HAVE_VIRT_CPU_ACCOUNTING_GEN=y -CONFIG_HW_HAS_PCI=y CONFIG_HW_RANDOM=y CONFIG_HZ_PERIODIC=y CONFIG_INITRAMFS_SOURCE="" @@ -136,6 +94,7 @@ CONFIG_LEDS_GPIO_REGISTER=y CONFIG_LOCK_DEBUGGING_SUPPORT=y CONFIG_MDIO_BUS=y CONFIG_MDIO_DEVICE=y +CONFIG_MDIO_DEVRES=y CONFIG_MEMFD_CREATE=y CONFIG_MIGRATION=y CONFIG_MIPS=y @@ -144,20 +103,23 @@ CONFIG_MIPS_ASID_SHIFT=0 CONFIG_MIPS_CLOCK_VSYSCALL=y # CONFIG_MIPS_CMDLINE_BUILTIN_EXTEND is not set CONFIG_MIPS_CMDLINE_FROM_BOOTLOADER=y +CONFIG_MIPS_EBPF_JIT=y CONFIG_MIPS_L1_CACHE_SHIFT=5 +CONFIG_MIPS_LD_CAN_LINK_VDSO=y CONFIG_MODULES_USE_ELF_REL=y CONFIG_MTD_BCM47XXSFLASH=y CONFIG_MTD_BCM47XX_PARTS=y -CONFIG_MTD_NAND_CORE=y -CONFIG_MTD_RAW_NAND=y CONFIG_MTD_NAND_BCM47XXNFLASH=y CONFIG_MTD_NAND_BRCMNAND=y CONFIG_MTD_NAND_BRCMNAND_BCMA=y +CONFIG_MTD_NAND_CORE=y CONFIG_MTD_NAND_ECC=y CONFIG_MTD_PARSER_TRX=y CONFIG_MTD_PHYSMAP=y +CONFIG_MTD_RAW_NAND=y CONFIG_NEED_DMA_MAP_STATE=y CONFIG_NEED_PER_CPU_KM=y +CONFIG_NET_SELFTESTS=y CONFIG_NO_EXCEPT_FILL=y CONFIG_NO_GENERIC_PCI_IOPORT_MAP=y # CONFIG_OF is not set @@ -168,8 +130,10 @@ CONFIG_PCI_DRIVERS_LEGACY=y CONFIG_PERF_USE_VMALLOC=y CONFIG_PGTABLE_LEVELS=2 CONFIG_PHYLIB=y +CONFIG_PTP_1588_CLOCK_OPTIONAL=y CONFIG_SERIAL_8250_EXTENDED=y CONFIG_SERIAL_8250_SHARE_IRQ=y +CONFIG_SERIAL_MCTRL_GPIO=y CONFIG_SRCU=y CONFIG_SSB=y CONFIG_SSB_B43_PCI_BRIDGE=y @@ -190,10 +154,8 @@ CONFIG_SSB_SFLASH=y CONFIG_SSB_SPROM=y CONFIG_SWCONFIG=y CONFIG_SWCONFIG_B53=y -# CONFIG_SWCONFIG_B53_MMAP_DRIVER is not set CONFIG_SWCONFIG_B53_PHY_DRIVER=y CONFIG_SWCONFIG_B53_PHY_FIXUP=y -# CONFIG_SWCONFIG_B53_SRAB_DRIVER is not set CONFIG_SWPHY=y CONFIG_SYSCTL_EXCEPTION_TRACE=y CONFIG_SYS_HAS_CPU_BMIPS=y @@ -207,6 +169,7 @@ CONFIG_SYS_SUPPORTS_HIGHMEM=y CONFIG_SYS_SUPPORTS_LITTLE_ENDIAN=y CONFIG_SYS_SUPPORTS_MIPS16=y CONFIG_SYS_SUPPORTS_ZBOOT=y +CONFIG_TARGET_ISA_REV=1 CONFIG_TICK_CPU_ACCOUNTING=y CONFIG_TINY_SRCU=y CONFIG_USB_SUPPORT=y diff --git a/target/linux/bcm47xx/patches-5.15/100-v5.18-mtd-rawnand-brcmnand-Assign-soc-as-early-as-possible.patch b/target/linux/bcm47xx/patches-5.15/100-v5.18-mtd-rawnand-brcmnand-Assign-soc-as-early-as-possible.patch index 8efda108095..a87d6acd0ca 100644 --- a/target/linux/bcm47xx/patches-5.15/100-v5.18-mtd-rawnand-brcmnand-Assign-soc-as-early-as-possible.patch +++ b/target/linux/bcm47xx/patches-5.15/100-v5.18-mtd-rawnand-brcmnand-Assign-soc-as-early-as-possible.patch @@ -14,7 +14,7 @@ Signed-off-by: Florian Fainelli --- a/drivers/mtd/nand/raw/brcmnand/brcmnand.c +++ b/drivers/mtd/nand/raw/brcmnand/brcmnand.c -@@ -2949,6 +2949,7 @@ int brcmnand_probe(struct platform_devic +@@ -2998,6 +2998,7 @@ int brcmnand_probe(struct platform_devic dev_set_drvdata(dev, ctrl); ctrl->dev = dev; @@ -22,7 +22,7 @@ Signed-off-by: Florian Fainelli init_completion(&ctrl->done); init_completion(&ctrl->dma_done); -@@ -3089,8 +3090,6 @@ int brcmnand_probe(struct platform_devic +@@ -3138,8 +3139,6 @@ int brcmnand_probe(struct platform_devic * interesting ways */ if (soc) { diff --git a/target/linux/bcm47xx/patches-5.15/101-v5.18-mtd-rawnand-brcmnand-Allow-SoC-to-provide-I-O-operations.patch b/target/linux/bcm47xx/patches-5.15/101-v5.18-mtd-rawnand-brcmnand-Allow-SoC-to-provide-I-O-operations.patch index 23f5df30158..8da25358655 100644 --- a/target/linux/bcm47xx/patches-5.15/101-v5.18-mtd-rawnand-brcmnand-Allow-SoC-to-provide-I-O-operations.patch +++ b/target/linux/bcm47xx/patches-5.15/101-v5.18-mtd-rawnand-brcmnand-Allow-SoC-to-provide-I-O-operations.patch @@ -37,7 +37,7 @@ Signed-off-by: Florian Fainelli struct brcmnand_controller { struct device *dev; struct nand_controller controller; -@@ -589,15 +592,25 @@ enum { +@@ -592,15 +595,25 @@ enum { INTFC_CTLR_READY = BIT(31), }; @@ -64,7 +64,7 @@ Signed-off-by: Florian Fainelli } static int brcmnand_revision_init(struct brcmnand_controller *ctrl) -@@ -763,13 +776,18 @@ static inline void brcmnand_rmw_reg(stru +@@ -766,13 +779,18 @@ static inline void brcmnand_rmw_reg(stru static inline u32 brcmnand_read_fc(struct brcmnand_controller *ctrl, int word) { @@ -84,7 +84,7 @@ Signed-off-by: Florian Fainelli } static inline void edu_writel(struct brcmnand_controller *ctrl, -@@ -2951,6 +2969,12 @@ int brcmnand_probe(struct platform_devic +@@ -3000,6 +3018,12 @@ int brcmnand_probe(struct platform_devic ctrl->dev = dev; ctrl->soc = soc; diff --git a/target/linux/bcm47xx/patches-5.15/102-v5.18-mtd-rawnand-brcmnand-Avoid-pdev-in-brcmnand_init_cs.patch b/target/linux/bcm47xx/patches-5.15/102-v5.18-mtd-rawnand-brcmnand-Avoid-pdev-in-brcmnand_init_cs.patch index d9324c25953..d7eab183d6c 100644 --- a/target/linux/bcm47xx/patches-5.15/102-v5.18-mtd-rawnand-brcmnand-Avoid-pdev-in-brcmnand_init_cs.patch +++ b/target/linux/bcm47xx/patches-5.15/102-v5.18-mtd-rawnand-brcmnand-Avoid-pdev-in-brcmnand_init_cs.patch @@ -16,7 +16,7 @@ Signed-off-by: Florian Fainelli --- a/drivers/mtd/nand/raw/brcmnand/brcmnand.c +++ b/drivers/mtd/nand/raw/brcmnand/brcmnand.c -@@ -2722,7 +2722,7 @@ static const struct nand_controller_ops +@@ -2771,7 +2771,7 @@ static const struct nand_controller_ops static int brcmnand_init_cs(struct brcmnand_host *host, struct device_node *dn) { struct brcmnand_controller *ctrl = host->ctrl; @@ -25,7 +25,7 @@ Signed-off-by: Florian Fainelli struct mtd_info *mtd; struct nand_chip *chip; int ret; -@@ -2730,7 +2730,7 @@ static int brcmnand_init_cs(struct brcmn +@@ -2779,7 +2779,7 @@ static int brcmnand_init_cs(struct brcmn ret = of_property_read_u32(dn, "reg", &host->cs); if (ret) { @@ -34,7 +34,7 @@ Signed-off-by: Florian Fainelli return -ENXIO; } -@@ -2739,13 +2739,13 @@ static int brcmnand_init_cs(struct brcmn +@@ -2788,13 +2788,13 @@ static int brcmnand_init_cs(struct brcmn nand_set_flash_node(chip, dn); nand_set_controller_data(chip, host); diff --git a/target/linux/bcm47xx/patches-5.15/103-v5.18-mtd-rawnand-brcmnand-Move-OF-operations-out-of-brcmnand_init_cs.patch b/target/linux/bcm47xx/patches-5.15/103-v5.18-mtd-rawnand-brcmnand-Move-OF-operations-out-of-brcmnand_init_cs.patch index 34fd1b47eab..e2fa72add1c 100644 --- a/target/linux/bcm47xx/patches-5.15/103-v5.18-mtd-rawnand-brcmnand-Move-OF-operations-out-of-brcmnand_init_cs.patch +++ b/target/linux/bcm47xx/patches-5.15/103-v5.18-mtd-rawnand-brcmnand-Move-OF-operations-out-of-brcmnand_init_cs.patch @@ -17,7 +17,7 @@ Signed-off-by: Florian Fainelli --- a/drivers/mtd/nand/raw/brcmnand/brcmnand.c +++ b/drivers/mtd/nand/raw/brcmnand/brcmnand.c -@@ -2719,7 +2719,7 @@ static const struct nand_controller_ops +@@ -2768,7 +2768,7 @@ static const struct nand_controller_ops .attach_chip = brcmnand_attach_chip, }; @@ -26,7 +26,7 @@ Signed-off-by: Florian Fainelli { struct brcmnand_controller *ctrl = host->ctrl; struct device *dev = ctrl->dev; -@@ -2728,16 +2728,9 @@ static int brcmnand_init_cs(struct brcmn +@@ -2777,16 +2777,9 @@ static int brcmnand_init_cs(struct brcmn int ret; u16 cfg_offs; @@ -43,7 +43,7 @@ Signed-off-by: Florian Fainelli nand_set_controller_data(chip, host); mtd->name = devm_kasprintf(dev, GFP_KERNEL, "brcmnand.%d", host->cs); -@@ -3144,7 +3137,16 @@ int brcmnand_probe(struct platform_devic +@@ -3193,7 +3186,16 @@ int brcmnand_probe(struct platform_devic host->pdev = pdev; host->ctrl = ctrl; diff --git a/target/linux/bcm47xx/patches-5.15/104-v5.18-mtd-rawnand-brcmnand-Allow-working-without-interrupts.patch b/target/linux/bcm47xx/patches-5.15/104-v5.18-mtd-rawnand-brcmnand-Allow-working-without-interrupts.patch index 3a9d18fa21c..bdf325d732e 100644 --- a/target/linux/bcm47xx/patches-5.15/104-v5.18-mtd-rawnand-brcmnand-Allow-working-without-interrupts.patch +++ b/target/linux/bcm47xx/patches-5.15/104-v5.18-mtd-rawnand-brcmnand-Allow-working-without-interrupts.patch @@ -23,7 +23,7 @@ Signed-off-by: Florian Fainelli unsigned int dma_irq; int nand_version; -@@ -1590,7 +1590,7 @@ static bool brcmstb_nand_wait_for_comple +@@ -1610,7 +1610,7 @@ static bool brcmstb_nand_wait_for_comple bool err = false; int sts; @@ -32,7 +32,7 @@ Signed-off-by: Florian Fainelli /* switch to interrupt polling and PIO mode */ disable_ctrl_irqs(ctrl); sts = bcmnand_ctrl_poll_status(ctrl, NAND_CTRL_RDY, -@@ -3095,33 +3095,29 @@ int brcmnand_probe(struct platform_devic +@@ -3144,33 +3144,29 @@ int brcmnand_probe(struct platform_devic } /* IRQ */ diff --git a/target/linux/bcm47xx/patches-5.15/105-v5.18-mtd-rawnand-brcmnand-Add-platform-data-structure-for-BCMA.patch b/target/linux/bcm47xx/patches-5.15/105-v5.18-mtd-rawnand-brcmnand-Add-platform-data-structure-for-BCMA.patch index 973a3e95ee1..ab53cfd6e9f 100644 --- a/target/linux/bcm47xx/patches-5.15/105-v5.18-mtd-rawnand-brcmnand-Add-platform-data-structure-for-BCMA.patch +++ b/target/linux/bcm47xx/patches-5.15/105-v5.18-mtd-rawnand-brcmnand-Add-platform-data-structure-for-BCMA.patch @@ -20,14 +20,14 @@ Signed-off-by: Florian Fainelli --- a/MAINTAINERS +++ b/MAINTAINERS -@@ -3712,6 +3712,7 @@ L: linux-mtd@lists.infradead.org +@@ -3900,6 +3900,7 @@ L: linux-mtd@lists.infradead.org L: bcm-kernel-feedback-list@broadcom.com S: Maintained F: drivers/mtd/nand/raw/brcmnand/ +F: include/linux/platform_data/brcmnand.h - BROADCOM SYSTEMPORT ETHERNET DRIVER - M: Florian Fainelli + BROADCOM STB PCIE DRIVER + M: Jim Quinlan --- a/drivers/bcma/driver_chipcommon_nflash.c +++ b/drivers/bcma/driver_chipcommon_nflash.c @@ -7,18 +7,28 @@ diff --git a/target/linux/bcm47xx/patches-5.15/106-v5.18-mtd-rawnand-brcmnand-Allow-platform-data-instantation.patch b/target/linux/bcm47xx/patches-5.15/106-v5.18-mtd-rawnand-brcmnand-Allow-platform-data-instantation.patch index fb9ee07d041..31d686b9557 100644 --- a/target/linux/bcm47xx/patches-5.15/106-v5.18-mtd-rawnand-brcmnand-Allow-platform-data-instantation.patch +++ b/target/linux/bcm47xx/patches-5.15/106-v5.18-mtd-rawnand-brcmnand-Allow-platform-data-instantation.patch @@ -23,7 +23,7 @@ Signed-off-by: Florian Fainelli #include #include #include -@@ -2719,7 +2720,8 @@ static const struct nand_controller_ops +@@ -2768,7 +2769,8 @@ static const struct nand_controller_ops .attach_chip = brcmnand_attach_chip, }; @@ -33,7 +33,7 @@ Signed-off-by: Florian Fainelli { struct brcmnand_controller *ctrl = host->ctrl; struct device *dev = ctrl->dev; -@@ -2772,7 +2774,7 @@ static int brcmnand_init_cs(struct brcmn +@@ -2821,7 +2823,7 @@ static int brcmnand_init_cs(struct brcmn if (ret) return ret; @@ -42,7 +42,7 @@ Signed-off-by: Florian Fainelli if (ret) nand_cleanup(chip); -@@ -2941,17 +2943,15 @@ static int brcmnand_edu_setup(struct pla +@@ -2990,17 +2992,15 @@ static int brcmnand_edu_setup(struct pla int brcmnand_probe(struct platform_device *pdev, struct brcmnand_soc *soc) { @@ -63,7 +63,7 @@ Signed-off-by: Florian Fainelli return -ENODEV; ctrl = devm_kzalloc(dev, sizeof(*ctrl), GFP_KERNEL); -@@ -2978,7 +2978,7 @@ int brcmnand_probe(struct platform_devic +@@ -3027,7 +3027,7 @@ int brcmnand_probe(struct platform_devic /* NAND register range */ res = platform_get_resource(pdev, IORESOURCE_MEM, 0); ctrl->nand_base = devm_ioremap_resource(dev, res); @@ -72,7 +72,7 @@ Signed-off-by: Florian Fainelli return PTR_ERR(ctrl->nand_base); /* Enable clock before using NAND registers */ -@@ -3122,7 +3122,6 @@ int brcmnand_probe(struct platform_devic +@@ -3171,7 +3171,6 @@ int brcmnand_probe(struct platform_devic for_each_available_child_of_node(dn, child) { if (of_device_is_compatible(child, "brcm,nandcs")) { @@ -80,7 +80,7 @@ Signed-off-by: Florian Fainelli host = devm_kzalloc(dev, sizeof(*host), GFP_KERNEL); if (!host) { -@@ -3142,7 +3141,7 @@ int brcmnand_probe(struct platform_devic +@@ -3191,7 +3190,7 @@ int brcmnand_probe(struct platform_devic nand_set_flash_node(&host->chip, child); @@ -89,7 +89,7 @@ Signed-off-by: Florian Fainelli if (ret) { devm_kfree(dev, host); continue; /* Try all chip-selects */ -@@ -3152,6 +3151,32 @@ int brcmnand_probe(struct platform_devic +@@ -3201,6 +3200,32 @@ int brcmnand_probe(struct platform_devic } } diff --git a/target/linux/bcm47xx/patches-5.15/107-v5.18-mtd-rawnand-brcmnand-BCMA-controller-uses-command-shift-of-0.patch b/target/linux/bcm47xx/patches-5.15/107-v5.18-mtd-rawnand-brcmnand-BCMA-controller-uses-command-shift-of-0.patch index 39f34aab29d..188d59b7d16 100644 --- a/target/linux/bcm47xx/patches-5.15/107-v5.18-mtd-rawnand-brcmnand-BCMA-controller-uses-command-shift-of-0.patch +++ b/target/linux/bcm47xx/patches-5.15/107-v5.18-mtd-rawnand-brcmnand-BCMA-controller-uses-command-shift-of-0.patch @@ -14,7 +14,7 @@ Signed-off-by: Florian Fainelli --- a/drivers/mtd/nand/raw/brcmnand/brcmnand.c +++ b/drivers/mtd/nand/raw/brcmnand/brcmnand.c -@@ -913,6 +913,12 @@ static void brcmnand_wr_corr_thresh(stru +@@ -916,6 +916,12 @@ static void brcmnand_wr_corr_thresh(stru static inline int brcmnand_cmd_shift(struct brcmnand_controller *ctrl) { diff --git a/target/linux/bcm47xx/patches-5.15/108-v5.18-mtd-rawnand-brcmnand-Add-BCMA-shim.patch b/target/linux/bcm47xx/patches-5.15/108-v5.18-mtd-rawnand-brcmnand-Add-BCMA-shim.patch index eabb4c24750..baa48ef5a0d 100644 --- a/target/linux/bcm47xx/patches-5.15/108-v5.18-mtd-rawnand-brcmnand-Add-BCMA-shim.patch +++ b/target/linux/bcm47xx/patches-5.15/108-v5.18-mtd-rawnand-brcmnand-Add-BCMA-shim.patch @@ -22,7 +22,7 @@ Signed-off-by: Florian Fainelli --- a/drivers/mtd/nand/raw/Kconfig +++ b/drivers/mtd/nand/raw/Kconfig -@@ -236,6 +236,19 @@ config MTD_NAND_BRCMNAND +@@ -208,6 +208,19 @@ config MTD_NAND_BRCMNAND originally designed for Set-Top Box but is used on various BCM7xxx, BCM3xxx, BCM63xxx, iProc/Cygnus and more. @@ -187,7 +187,7 @@ Signed-off-by: Florian Fainelli +MODULE_DESCRIPTION("NAND controller driver glue for BCMA chips"); --- a/drivers/mtd/nand/raw/brcmnand/brcmnand.c +++ b/drivers/mtd/nand/raw/brcmnand/brcmnand.c -@@ -595,7 +595,11 @@ enum { +@@ -598,7 +598,11 @@ enum { static inline bool brcmnand_non_mmio_ops(struct brcmnand_controller *ctrl) { diff --git a/target/linux/bcm47xx/patches-5.15/159-cpu_fixes.patch b/target/linux/bcm47xx/patches-5.15/159-cpu_fixes.patch index 0c9a9d6490e..88f2b9c684b 100644 --- a/target/linux/bcm47xx/patches-5.15/159-cpu_fixes.patch +++ b/target/linux/bcm47xx/patches-5.15/159-cpu_fixes.patch @@ -1,6 +1,6 @@ --- a/arch/mips/include/asm/r4kcache.h +++ b/arch/mips/include/asm/r4kcache.h -@@ -28,6 +28,38 @@ +@@ -27,6 +27,38 @@ extern void (*r4k_blast_dcache)(void); extern void (*r4k_blast_icache)(void); @@ -39,7 +39,7 @@ /* * This macro return a properly sign-extended address suitable as base address * for indexed cache operations. Two issues here: -@@ -61,6 +93,7 @@ static inline void flush_icache_line_ind +@@ -60,6 +92,7 @@ static inline void flush_icache_line_ind static inline void flush_dcache_line_indexed(unsigned long addr) { @@ -47,7 +47,7 @@ cache_op(Index_Writeback_Inv_D, addr); } -@@ -84,11 +117,13 @@ static inline void flush_icache_line(uns +@@ -83,11 +116,13 @@ static inline void flush_icache_line(uns static inline void flush_dcache_line(unsigned long addr) { @@ -61,23 +61,23 @@ cache_op(Hit_Invalidate_D, addr); } -@@ -161,6 +196,7 @@ static inline int protected_flush_icache - #ifdef CONFIG_EVA - return protected_cachee_op(Hit_Invalidate_I, addr); - #else +@@ -160,6 +195,7 @@ static inline int protected_flush_icache + return protected_cache_op(Hit_Invalidate_I_Loongson2, addr); + + default: + BCM4710_DUMMY_RREG(); return protected_cache_op(Hit_Invalidate_I, addr); - #endif } -@@ -174,6 +210,7 @@ static inline int protected_flush_icache + } +@@ -172,6 +208,7 @@ static inline int protected_flush_icache */ static inline int protected_writeback_dcache_line(unsigned long addr) { + BCM4710_DUMMY_RREG(); - #ifdef CONFIG_EVA - return protected_cachee_op(Hit_Writeback_Inv_D, addr); - #else -@@ -203,8 +240,51 @@ static inline void invalidate_tcache_pag + return protected_cache_op(Hit_Writeback_Inv_D, addr); + } + +@@ -193,8 +230,51 @@ static inline void invalidate_tcache_pag unroll(times, _cache_op, insn, op, (addr) + (i++ * (lsize))); \ } while (0) @@ -130,7 +130,7 @@ static inline void extra##blast_##pfx##cache##lsize(void) \ { \ unsigned long start = INDEX_BASE; \ -@@ -214,6 +294,7 @@ static inline void extra##blast_##pfx##c +@@ -204,6 +284,7 @@ static inline void extra##blast_##pfx##c current_cpu_data.desc.waybit; \ unsigned long ws, addr; \ \ @@ -138,7 +138,7 @@ for (ws = 0; ws < ws_end; ws += ws_inc) \ for (addr = start; addr < end; addr += lsize * 32) \ cache_unroll(32, kernel_cache, indexop, \ -@@ -225,6 +306,7 @@ static inline void extra##blast_##pfx##c +@@ -215,6 +296,7 @@ static inline void extra##blast_##pfx##c unsigned long start = page; \ unsigned long end = page + PAGE_SIZE; \ \ @@ -146,7 +146,7 @@ do { \ cache_unroll(32, kernel_cache, hitop, start, lsize); \ start += lsize * 32; \ -@@ -241,32 +323,33 @@ static inline void extra##blast_##pfx##c +@@ -231,32 +313,33 @@ static inline void extra##blast_##pfx##c current_cpu_data.desc.waybit; \ unsigned long ws, addr; \ \ @@ -200,7 +200,7 @@ #define __BUILD_BLAST_USER_CACHE(pfx, desc, indexop, hitop, lsize) \ static inline void blast_##pfx##cache##lsize##_user_page(unsigned long page) \ -@@ -291,58 +374,29 @@ __BUILD_BLAST_USER_CACHE(d, dcache, Inde +@@ -281,65 +364,36 @@ __BUILD_BLAST_USER_CACHE(d, dcache, Inde __BUILD_BLAST_USER_CACHE(i, icache, Index_Invalidate_I, Hit_Invalidate_I, 64) /* build blast_xxx_range, protected_blast_xxx_range */ @@ -233,7 +233,8 @@ - addr += lsize_8; \ - lines -= 8; \ - } \ -- \ ++ unsigned long aend = (end - 1) & ~(lsize - 1); \ + \ - if (lines & 0x4) { \ - prot##cache_op(hitop, addr); \ - prot##cache_op(hitop, addr + lsize); \ @@ -241,8 +242,7 @@ - prot##cache_op(hitop, addr + lsize_3); \ - addr += lsize_4; \ - } \ -+ unsigned long aend = (end - 1) & ~(lsize - 1); \ - \ +- \ - if (lines & 0x2) { \ - prot##cache_op(hitop, addr); \ - prot##cache_op(hitop, addr + lsize); \ @@ -260,20 +260,11 @@ } \ } - #ifndef CONFIG_EVA - -__BUILD_BLAST_CACHE_RANGE(d, dcache, Hit_Writeback_Inv_D, protected_, ) -__BUILD_BLAST_CACHE_RANGE(i, icache, Hit_Invalidate_I, protected_, ) +-__BUILD_BLAST_CACHE_RANGE(s, scache, Hit_Writeback_Inv_SD, protected_, ) +__BUILD_BLAST_CACHE_RANGE(d, dcache, Hit_Writeback_Inv_D, protected_, , BCM4710_PROTECTED_FILL_TLB(addr); BCM4710_PROTECTED_FILL_TLB(aend);, BCM4710_DUMMY_RREG();) +__BUILD_BLAST_CACHE_RANGE(i, icache, Hit_Invalidate_I, protected_, , , ) - - #else - -@@ -376,15 +430,15 @@ __BUILD_PROT_BLAST_CACHE_RANGE(d, dcache - __BUILD_PROT_BLAST_CACHE_RANGE(i, icache, Hit_Invalidate_I) - - #endif --__BUILD_BLAST_CACHE_RANGE(s, scache, Hit_Writeback_Inv_SD, protected_, ) +__BUILD_BLAST_CACHE_RANGE(s, scache, Hit_Writeback_Inv_SD, protected_, , , ) __BUILD_BLAST_CACHE_RANGE(i, icache, Hit_Invalidate_I_Loongson2, \ - protected_, loongson2_) @@ -350,7 +341,7 @@ --- a/arch/mips/mm/c-r4k.c +++ b/arch/mips/mm/c-r4k.c @@ -38,6 +38,9 @@ - #include + #include #include +/* For enabling BCM4710 cache workarounds */ @@ -389,7 +380,7 @@ if (dc_lsize == 0) r4k_blast_dcache = (void *)cache_noop; else if (dc_lsize == 16) -@@ -1818,6 +1830,17 @@ static void coherency_setup(void) +@@ -1817,6 +1829,17 @@ static void coherency_setup(void) * silly idea of putting something else there ... */ switch (current_cpu_type()) { @@ -407,7 +398,7 @@ case CPU_R4000PC: case CPU_R4000SC: case CPU_R4000MC: -@@ -1864,6 +1887,15 @@ void r4k_cache_init(void) +@@ -1863,6 +1886,15 @@ void r4k_cache_init(void) extern void build_copy_page(void); struct cpuinfo_mips *c = ¤t_cpu_data; @@ -423,7 +414,7 @@ probe_pcache(); probe_vcache(); setup_scache(); -@@ -1940,7 +1972,15 @@ void r4k_cache_init(void) +@@ -1935,7 +1967,15 @@ void r4k_cache_init(void) */ local_r4k___flush_cache_all(NULL); @@ -441,7 +432,7 @@ /* --- a/arch/mips/mm/tlbex.c +++ b/arch/mips/mm/tlbex.c -@@ -984,6 +984,9 @@ void build_get_pgde32(u32 **p, unsigned +@@ -985,6 +985,9 @@ void build_get_pgde32(u32 **p, unsigned uasm_i_srl(p, ptr, ptr, SMP_CPUID_PTRSHIFT); uasm_i_addu(p, ptr, tmp, ptr); #else @@ -451,7 +442,7 @@ UASM_i_LA_mostly(p, ptr, pgdc); #endif uasm_i_mfc0(p, tmp, C0_BADVADDR); /* get faulting address */ -@@ -1345,6 +1348,9 @@ static void build_r4000_tlb_refill_handl +@@ -1347,6 +1350,9 @@ static void build_r4000_tlb_refill_handl #ifdef CONFIG_64BIT build_get_pmde64(&p, &l, &r, K0, K1); /* get pmd in K1 */ #else @@ -461,7 +452,7 @@ build_get_pgde32(&p, K0, K1); /* get pgd in K1 */ #endif -@@ -1356,6 +1362,9 @@ static void build_r4000_tlb_refill_handl +@@ -1358,6 +1364,9 @@ static void build_r4000_tlb_refill_handl build_update_entries(&p, K0, K1); build_tlb_write_entry(&p, &l, &r, tlb_random); uasm_l_leave(&l, p); @@ -471,7 +462,7 @@ uasm_i_eret(&p); /* return from trap */ } #ifdef CONFIG_MIPS_HUGE_TLB_SUPPORT -@@ -2056,6 +2065,9 @@ build_r4000_tlbchange_handler_head(u32 * +@@ -2059,6 +2068,9 @@ build_r4000_tlbchange_handler_head(u32 * #ifdef CONFIG_64BIT build_get_pmde64(p, l, r, wr.r1, wr.r2); /* get pmd in ptr */ #else @@ -481,7 +472,7 @@ build_get_pgde32(p, wr.r1, wr.r2); /* get pgd in ptr */ #endif -@@ -2102,6 +2114,9 @@ build_r4000_tlbchange_handler_tail(u32 * +@@ -2105,6 +2117,9 @@ build_r4000_tlbchange_handler_tail(u32 * build_tlb_write_entry(p, l, r, tlb_indexed); uasm_l_leave(l, *p); build_restore_work_registers(p); diff --git a/target/linux/bcm47xx/patches-5.15/160-kmap_coherent.patch b/target/linux/bcm47xx/patches-5.15/160-kmap_coherent.patch index caa3d9816bf..b716f0cbc8e 100644 --- a/target/linux/bcm47xx/patches-5.15/160-kmap_coherent.patch +++ b/target/linux/bcm47xx/patches-5.15/160-kmap_coherent.patch @@ -8,7 +8,7 @@ This fixes OpenWrt ticket #1485: https://dev.openwrt.org/ticket/1485 --- --- a/arch/mips/include/asm/cpu-features.h +++ b/arch/mips/include/asm/cpu-features.h -@@ -242,6 +242,9 @@ +@@ -240,6 +240,9 @@ #ifndef cpu_has_pindexed_dcache #define cpu_has_pindexed_dcache (cpu_data[0].dcache.flags & MIPS_CACHE_PINDEX) #endif @@ -49,7 +49,7 @@ This fixes OpenWrt ticket #1485: https://dev.openwrt.org/ticket/1485 kunmap_atomic(vaddr); --- a/arch/mips/mm/init.c +++ b/arch/mips/mm/init.c -@@ -173,7 +173,7 @@ void copy_user_highpage(struct page *to, +@@ -172,7 +172,7 @@ void copy_user_highpage(struct page *to, void *vfrom, *vto; vto = kmap_atomic(to); @@ -58,7 +58,7 @@ This fixes OpenWrt ticket #1485: https://dev.openwrt.org/ticket/1485 page_mapcount(from) && !Page_dcache_dirty(from)) { vfrom = kmap_coherent(from, vaddr); copy_page(vto, vfrom); -@@ -195,7 +195,7 @@ void copy_to_user_page(struct vm_area_st +@@ -194,7 +194,7 @@ void copy_to_user_page(struct vm_area_st struct page *page, unsigned long vaddr, void *dst, const void *src, unsigned long len) { @@ -67,7 +67,7 @@ This fixes OpenWrt ticket #1485: https://dev.openwrt.org/ticket/1485 page_mapcount(page) && !Page_dcache_dirty(page)) { void *vto = kmap_coherent(page, vaddr) + (vaddr & ~PAGE_MASK); memcpy(vto, src, len); -@@ -213,7 +213,7 @@ void copy_from_user_page(struct vm_area_ +@@ -212,7 +212,7 @@ void copy_from_user_page(struct vm_area_ struct page *page, unsigned long vaddr, void *dst, const void *src, unsigned long len) { diff --git a/target/linux/bcm47xx/patches-5.15/310-no_highpage.patch b/target/linux/bcm47xx/patches-5.15/310-no_highpage.patch index b1dcdf9cb2b..8f368e3e9ea 100644 --- a/target/linux/bcm47xx/patches-5.15/310-no_highpage.patch +++ b/target/linux/bcm47xx/patches-5.15/310-no_highpage.patch @@ -41,7 +41,7 @@ For details see OpenWrt ticket #2035 https://dev.openwrt.org/ticket/2035 * These are used to make use of C type-checking.. --- a/arch/mips/mm/init.c +++ b/arch/mips/mm/init.c -@@ -167,30 +167,6 @@ void kunmap_coherent(void) +@@ -166,30 +166,6 @@ void kunmap_coherent(void) preempt_enable(); } diff --git a/target/linux/bcm47xx/patches-5.15/610-pci_ide_fix.patch b/target/linux/bcm47xx/patches-5.15/610-pci_ide_fix.patch deleted file mode 100644 index 520828e8e55..00000000000 --- a/target/linux/bcm47xx/patches-5.15/610-pci_ide_fix.patch +++ /dev/null @@ -1,41 +0,0 @@ -From: b.sander -Subject: [PATCH] pci: IDE fix - -These are standard probing messages when using pdc202xx_old: -pdc202xx_old 0000:00:01.0: IDE controller (0x105a:0x0d30 rev 0x02) -PCI: Enabling device 0000:00:01.0 (0004 -> 0007) -PCI: Fixing up device 0000:00:01.0 -0000:00:01.0: (U)DMA Burst Bit DISABLED Primary PCI Mode Secondary PCI Mode. -0000:00:01.0: FORCING BURST BIT 0x00->0x01 ACTIVE -pdc202xx_old 0000:00:01.0: 100% native mode on irq 6 - -With the default MAX_HWIFS value after above we get: - ide2: BM-DMA at 0x0400-0x0407 - ide3: BM-DMA at 0x0408-0x040f -Probing IDE interface ide2... -hde: CF500, CFA DISK drive - -As you can see it's ide2 + ide3 and hde. - -With this patch applied we get: - ide0: BM-DMA at 0x0400-0x0407 - ide1: BM-DMA at 0x0408-0x040f -Probing IDE interface ide0... -hda: CF500, CFA DISK drive - -This fixes OpenWrt ticket #7061: https://dev.openwrt.org/ticket/7061 ---- ---- a/include/linux/ide.h -+++ b/include/linux/ide.h -@@ -236,7 +236,11 @@ static inline void ide_std_init_ports(st - hw->io_ports.ctl_addr = ctl_addr; - } - -+#if defined CONFIG_BCM47XX -+# define MAX_HWIFS 2 -+#else - #define MAX_HWIFS 10 -+#endif - - /* - * Now for the data we need to maintain per-drive: ide_drive_t diff --git a/target/linux/bcm47xx/patches-5.15/791-tg3-no-pci-sleep.patch b/target/linux/bcm47xx/patches-5.15/791-tg3-no-pci-sleep.patch index 50edfc3b411..2c2f5406952 100644 --- a/target/linux/bcm47xx/patches-5.15/791-tg3-no-pci-sleep.patch +++ b/target/linux/bcm47xx/patches-5.15/791-tg3-no-pci-sleep.patch @@ -5,7 +5,7 @@ when a switch driver is in use. --- a/drivers/net/ethernet/broadcom/tg3.c +++ b/drivers/net/ethernet/broadcom/tg3.c -@@ -4273,7 +4273,8 @@ static int tg3_power_down_prepare(struct +@@ -4267,7 +4267,8 @@ static int tg3_power_down_prepare(struct static void tg3_power_down(struct tg3 *tp) { pci_wake_from_d3(tp->pdev, tg3_flag(tp, WOL_ENABLE)); diff --git a/target/linux/bcm47xx/patches-5.15/831-old_gpio_wdt.patch b/target/linux/bcm47xx/patches-5.15/831-old_gpio_wdt.patch index f6fb7f18558..cb3bd0f263c 100644 --- a/target/linux/bcm47xx/patches-5.15/831-old_gpio_wdt.patch +++ b/target/linux/bcm47xx/patches-5.15/831-old_gpio_wdt.patch @@ -4,7 +4,7 @@ Signed-off-by: Mathias Adam --- a/drivers/watchdog/Kconfig +++ b/drivers/watchdog/Kconfig -@@ -1698,6 +1698,15 @@ config WDT_MTX1 +@@ -1664,6 +1664,15 @@ config WDT_MTX1 Hardware driver for the MTX-1 boards. This is a watchdog timer that will reboot the machine after a 100 seconds timer expired. @@ -17,19 +17,19 @@ Signed-off-by: Mathias Adam + 100 second timer expired and no process has written to + /dev/watchdog during that time. + - config PNX833X_WDT - tristate "PNX833x Hardware Watchdog" - depends on SOC_PNX8335 + config SIBYTE_WDOG + tristate "Sibyte SoC hardware watchdog" + depends on CPU_SB1 --- a/drivers/watchdog/Makefile +++ b/drivers/watchdog/Makefile -@@ -161,6 +161,7 @@ obj-$(CONFIG_RC32434_WDT) += rc32434_wdt +@@ -159,6 +159,7 @@ obj-$(CONFIG_RC32434_WDT) += rc32434_wdt obj-$(CONFIG_INDYDOG) += indydog.o obj-$(CONFIG_JZ4740_WDT) += jz4740_wdt.o obj-$(CONFIG_WDT_MTX1) += mtx-1_wdt.o +obj-$(CONFIG_GPIO_WDT) += old_gpio_wdt.o - obj-$(CONFIG_PNX833X_WDT) += pnx833x_wdt.o obj-$(CONFIG_SIBYTE_WDOG) += sb_wdog.o obj-$(CONFIG_AR7_WDT) += ar7_wdt.o + obj-$(CONFIG_TXX9_WDT) += txx9wdt.o --- /dev/null +++ b/drivers/watchdog/old_gpio_wdt.c @@ -0,0 +1,301 @@ diff --git a/target/linux/bcm47xx/patches-5.15/900-ssb-reject-PCI-writes-setting-CardBus-bridge-resourc.patch b/target/linux/bcm47xx/patches-5.15/900-ssb-reject-PCI-writes-setting-CardBus-bridge-resourc.patch index 6b7ee06e50e..970e36eb683 100644 --- a/target/linux/bcm47xx/patches-5.15/900-ssb-reject-PCI-writes-setting-CardBus-bridge-resourc.patch +++ b/target/linux/bcm47xx/patches-5.15/900-ssb-reject-PCI-writes-setting-CardBus-bridge-resourc.patch @@ -17,7 +17,7 @@ Signed-off-by: Rafał Miłecki --- a/drivers/ssb/driver_pcicore.c +++ b/drivers/ssb/driver_pcicore.c -@@ -164,6 +164,10 @@ static int ssb_extpci_write_config(struc +@@ -165,6 +165,10 @@ static int ssb_extpci_write_config(struc WARN_ON(!pc->hostmode); if (unlikely(len != 1 && len != 2 && len != 4)) goto out; diff --git a/target/linux/bcm47xx/patches-5.15/976-ssb_increase_pci_delay.patch b/target/linux/bcm47xx/patches-5.15/976-ssb_increase_pci_delay.patch index 99aa188374a..201be1b1873 100644 --- a/target/linux/bcm47xx/patches-5.15/976-ssb_increase_pci_delay.patch +++ b/target/linux/bcm47xx/patches-5.15/976-ssb_increase_pci_delay.patch @@ -1,9 +1,9 @@ --- a/drivers/ssb/driver_pcicore.c +++ b/drivers/ssb/driver_pcicore.c -@@ -390,7 +390,7 @@ static void ssb_pcicore_init_hostmode(st - set_io_port_base(ssb_pcicore_controller.io_map_base); +@@ -394,7 +394,7 @@ static void ssb_pcicore_init_hostmode(st /* Give some time to the PCI controller to configure itself with the new - * values. Not waiting at this point causes crashes of the machine. */ + * values. Not waiting at this point causes crashes of the machine. + */ - mdelay(10); + mdelay(300); register_pci_controller(&ssb_pcicore_controller); diff --git a/target/linux/bcm47xx/patches-5.15/999-wl_exports.patch b/target/linux/bcm47xx/patches-5.15/999-wl_exports.patch index 48c6a47871f..b47913af70e 100644 --- a/target/linux/bcm47xx/patches-5.15/999-wl_exports.patch +++ b/target/linux/bcm47xx/patches-5.15/999-wl_exports.patch @@ -12,7 +12,7 @@ static int cfe_env; --- a/arch/mips/mm/cache.c +++ b/arch/mips/mm/cache.c -@@ -61,6 +61,9 @@ void (*_dma_cache_wback_inv)(unsigned lo +@@ -63,6 +63,9 @@ void (*_dma_cache_wback_inv)(unsigned lo void (*_dma_cache_wback)(unsigned long start, unsigned long size); void (*_dma_cache_inv)(unsigned long start, unsigned long size); From c97bcec15a6f524089ffe17ad2435d107867da35 Mon Sep 17 00:00:00 2001 From: Mark Ceeha Date: Sun, 8 Jan 2023 03:29:07 +0100 Subject: [PATCH 08/32] firmware-utils: bump to git HEAD Adds support for building TP-Link Deco M4R v4 factory images e7233d229c2c tplink-safeloader: Add support for Deco M4R V4 Signed-off-by: Mark Ceeha --- tools/firmware-utils/Makefile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tools/firmware-utils/Makefile b/tools/firmware-utils/Makefile index 1c47a3109a3..3b94af20a80 100644 --- a/tools/firmware-utils/Makefile +++ b/tools/firmware-utils/Makefile @@ -11,9 +11,9 @@ PKG_RELEASE:=1 PKG_SOURCE_PROTO:=git PKG_SOURCE_URL=$(PROJECT_GIT)/project/firmware-utils.git -PKG_SOURCE_DATE:=2022-12-15 -PKG_SOURCE_VERSION:=bd856eff48509fa4511169ee55f639ede8dd4ac6 -PKG_MIRROR_HASH:=4dc754b403b10f43dc2871f17ef7b223c85ad3b14c57899497f0b6bb304756d9 +PKG_SOURCE_DATE:=2023-01-29 +PKG_SOURCE_VERSION:=e7233d229c2c204563a8c70231b34ebb2a197400 +PKG_MIRROR_HASH:=06ef2351187c3c4ee164099c1f50f83dfb5f56ed2aec0db8e1db20efb2c157d5 include $(INCLUDE_DIR)/host-build.mk include $(INCLUDE_DIR)/cmake.mk From d4c63c77866bf09668b541760b6c9f277b41ac87 Mon Sep 17 00:00:00 2001 From: Mark Ceeha Date: Sun, 29 Jan 2023 16:01:40 +0100 Subject: [PATCH 09/32] ramips: add support for TP-Link Deco M4R v4 This commit adds support for the V4 hardware revision of the Deco M4R. V4 is a complete overhaul of the hardware compared to V1 and V2, and is much more similar to the Archer C6 V3 and C6U V1. Specifications: SoC: MediaTek MT7621AT (2 cores at 880 MHz, 4 threads) RAM: Kingston D1216ECMDXGJD (256 MB) Wireless 2.4 GHz: MediaTek MT7603EN Wireless 5 GHz: MediaTek MT7613BEN Flash: 16 MB SPI NOR Installation: Flash the *-factory.bin image in the U-Boot recovery webserver. You can trigger this webserver by holding the reset button until the LED flashes yellow, or by hooking up to serial pads on the board (clearly labeled GND, RX and TX) and pressing `x` early in boot. Once the factory image has been flashed, you can use the regular upgrade procedure with sysupgrade images for subsequent flashes. Signed-off-by: Mark Ceeha Tested-by: Mark Ceeha --- .../ramips/dts/mt7621_tplink_deco-m4r-v4.dts | 203 ++++++++++++++++++ target/linux/ramips/image/mt7621.mk | 12 ++ .../mt7621/base-files/etc/board.d/01_leds | 3 + .../mt7621/base-files/etc/board.d/02_network | 3 + 4 files changed, 221 insertions(+) create mode 100644 target/linux/ramips/dts/mt7621_tplink_deco-m4r-v4.dts diff --git a/target/linux/ramips/dts/mt7621_tplink_deco-m4r-v4.dts b/target/linux/ramips/dts/mt7621_tplink_deco-m4r-v4.dts new file mode 100644 index 00000000000..3d17dbf599c --- /dev/null +++ b/target/linux/ramips/dts/mt7621_tplink_deco-m4r-v4.dts @@ -0,0 +1,203 @@ +// SPDX-License-Identifier: GPL-2.0-only + +#include "mt7621.dtsi" + +#include +#include + +/ { + compatible = "tplink,deco-m4r-v4", "mediatek,mt7621-soc"; + model = "TP-Link Deco M4R v4"; + + aliases { + label-mac-device = &gmac0; + led-boot = &led_power; + led-failsafe = &led_power; + led-running = &led_power; + led-upgrade = &led_power; + }; + + chosen { + bootargs = "console=ttyS0,115200n8"; + }; + + keys { + compatible = "gpio-keys"; + + wps { + label = "wps"; + gpios = <&gpio 1 GPIO_ACTIVE_LOW>; + debounce-interval = <60>; + linux,code = ; + }; + + led { + label = "led"; + gpios = <&gpio 2 GPIO_ACTIVE_LOW>; + debounce_interval = <60>; + linux,code = ; + }; + + reset { + label = "reset"; + gpios = <&gpio 4 GPIO_ACTIVE_LOW>; + debounce-interval = <60>; + linux,code = ; + }; + }; + + leds { + compatible = "gpio-leds"; + + rssi { + label = "green:rssi"; + gpios = <&gpio 5 GPIO_ACTIVE_LOW>; + }; + + lan { + label = "green:lan"; + gpios = <&gpio 9 GPIO_ACTIVE_LOW>; + }; + + sys { + label = "green:sys"; + gpios = <&gpio 10 GPIO_ACTIVE_LOW>; + }; + + wifi2g { + label = "green:wifi2g"; + gpios = <&gpio 12 GPIO_ACTIVE_LOW>; + linux,default-trigger = "phy0tpt"; + }; + + logo_red { + label = "red:logo"; + gpios = <&gpio 14 GPIO_ACTIVE_LOW>; + /* match usage in v1 and v2 */ + linux,default-trigger = "phy0tpt"; + }; + + logo_blue { + label = "blue:logo"; + gpios = <&gpio 15 GPIO_ACTIVE_LOW>; + /* match usage in v1 and v2 */ + linux,default-trigger = "phy1tpt"; + + }; + + led_power: logo_green { + label = "green:logo"; + gpios = <&gpio 13 GPIO_ACTIVE_LOW>; + /* match usage in v1 and v2 */ + default_state = "on"; + }; + }; +}; + +&state_default { + gpio { + groups = "i2c", "uart2", "uart3", "jtag", "wdt"; + function = "gpio"; + }; +}; + +&spi0 { + status = "okay"; + + flash@0 { + compatible = "jedec,spi-nor"; + reg = <0>; + spi-max-frequency = <40000000>; + + partitions { + compatible = "fixed-partitions"; + #address-cells = <1>; + #size-cells = <1>; + + partition@0 { + label = "u-boot"; + reg = <0x0 0x40000>; + read-only; + }; + + partition@40000 { + label = "firmware"; + compatible = "denx,uimage"; + reg = <0x40000 0xf60000>; + }; + + config: partition@fa0000 { + label = "config"; + reg = <0xfa0000 0x010000>; + read-only; + + compatible = "nvmem-cells"; + #address-cells = <1>; + #size-cells = <1>; + + macaddr_config_8: macaddr@8 { + reg = <0x8 0x6>; + }; + }; + + partition@fb0000 { + label = "tplink"; + reg = <0xfb0000 0x040000>; + read-only; + }; + + radio: partition@ff0000 { + label = "radio"; + reg = <0xff0000 0x10000>; + read-only; + }; + }; + }; +}; + +ðernet { + pinctrl-names = "default"; + pinctrl-0 = <&rgmii1_pins &mdio_pins>; +}; + +&gmac0 { + nvmem-cells = <&macaddr_config_8>; + nvmem-cell-names = "mac-address"; + label = "dsa"; +}; + +&switch0 { + ports { + port@0 { + status = "okay"; + label = "eth0"; + }; + + port@1 { + status = "okay"; + label = "eth1"; + }; + }; +}; + +&pcie { + status = "okay"; +}; + +&pcie0 { + wifi@0,0 { + compatible = "mediatek,mt76"; + reg = <0x0000 0 0 0 0>; + mediatek,mtd-eeprom = <&radio 0x0>; + ieee80211-freq-limit = <2400000 2500000>; + }; +}; + +&pcie1 { + wifi@0,0 { + compatible = "mediatek,mt76"; + reg = <0x0000 0 0 0 0>; + mediatek,mtd-eeprom = <&radio 0x8000>; + ieee80211-freq-limit = <5000000 6000000>; + }; +}; diff --git a/target/linux/ramips/image/mt7621.mk b/target/linux/ramips/image/mt7621.mk index 3587fb613ad..7f4f338039e 100644 --- a/target/linux/ramips/image/mt7621.mk +++ b/target/linux/ramips/image/mt7621.mk @@ -2014,6 +2014,18 @@ define Device/tplink_archer-c6u-v1 endef TARGET_DEVICES += tplink_archer-c6u-v1 +define Device/tplink_deco-m4r-v4 + $(Device/dsa-migration) + $(Device/tplink-safeloader) + DEVICE_MODEL := Deco M4R + DEVICE_VARIANT := v4 + DEVICE_PACKAGES := kmod-mt7603 kmod-mt7615e kmod-mt7663-firmware-ap + KERNEL := $(KERNEL_DTB) | uImage lzma + TPLINK_BOARD_ID := DECO-M4R-V4 + IMAGE_SIZE := 15744k +endef +TARGET_DEVICES += tplink_deco-m4r-v4 + define Device/tplink_eap235-wall-v1 $(Device/dsa-migration) $(Device/tplink-safeloader) diff --git a/target/linux/ramips/mt7621/base-files/etc/board.d/01_leds b/target/linux/ramips/mt7621/base-files/etc/board.d/01_leds index 597d7302ac8..66b5a3ddd07 100644 --- a/target/linux/ramips/mt7621/base-files/etc/board.d/01_leds +++ b/target/linux/ramips/mt7621/base-files/etc/board.d/01_leds @@ -154,6 +154,9 @@ tplink,archer-c6u-v1) ucidef_set_led_netdev "lan" "LAN" "green:lan" "br-lan" ucidef_set_led_netdev "wan" "WAN" "green:wan" "wan" ;; +tplink,deco-m4r-v4) + ucidef_set_led_netdev "lan" "LAN" "green:lan" "br-lan" + ;; tplink,ec330-g5u-v1) ucidef_set_led_netdev "lan" "Ethernet" "blue:ethernet" "br-lan" "link tx rx" ucidef_set_led_netdev "wan" "Internet" "blue:internet" "wan" "link tx rx" diff --git a/target/linux/ramips/mt7621/base-files/etc/board.d/02_network b/target/linux/ramips/mt7621/base-files/etc/board.d/02_network index 67f58b10b27..3a864f6f04d 100644 --- a/target/linux/ramips/mt7621/base-files/etc/board.d/02_network +++ b/target/linux/ramips/mt7621/base-files/etc/board.d/02_network @@ -105,6 +105,9 @@ ramips_setup_interfaces() mikrotik,routerboard-760igs) ucidef_set_interfaces_lan_wan "lan2 lan3 lan4 lan5" "wan sfp" ;; + tplink,deco-m4r-v4) + ucidef_set_interfaces_lan_wan "eth1" "eth0" + ;; tplink,eap235-wall-v1|\ tplink,eap615-wall-v1) ucidef_set_interface_lan "lan0 lan1 lan2 lan3" From fcde517d35c8591cbb578b1a7a49a0446b1ac646 Mon Sep 17 00:00:00 2001 From: Chen Minqiang Date: Wed, 25 Jan 2023 07:55:12 +0800 Subject: [PATCH 10/32] wolfssl: fix build with make < 4.2 Inline the preinst.arm-ce script. Support for including was added in make 4.2 and is not working with older make versions. Fixes: https://github.com/openwrt/openwrt/issues/11866 Signed-off-by: Chen Minqiang --- package/libs/wolfssl/Makefile | 31 ++++++++++++++++++++++++++--- package/libs/wolfssl/preinst.arm-ce | 25 ----------------------- 2 files changed, 28 insertions(+), 28 deletions(-) delete mode 100644 package/libs/wolfssl/preinst.arm-ce diff --git a/package/libs/wolfssl/Makefile b/package/libs/wolfssl/Makefile index 1500a2cda79..6ad44a9acf1 100644 --- a/package/libs/wolfssl/Makefile +++ b/package/libs/wolfssl/Makefile @@ -151,6 +151,33 @@ CONFIGURE_ARGS += \ --$(if $(CONFIG_WOLFSSL_HAS_ECC448),enable,disable)-curve448 \ --$(if $(CONFIG_WOLFSSL_HAS_OPENVPN),enable,disable)-openvpn +define Package/libwolfsslcpu-crypto/preinst-aarch64 +#!/bin/sh +exec >&2 +printf "[libwolfsslcpu-crypto] Checking for Arm v8-A Cryptographic Extension support: " +if [ -n "$${IPKG_INSTROOT}" ]; then + printf "...[offline]... " + eval "$$(grep '^DISTRIB_TARGET=' "$${IPKG_INSTROOT}/etc/openwrt_release")" + echo "$${DISTRIB_TARGET}" | grep '^bcm27xx/.*' > /dev/null && { + echo "not supported" + echo "Error: Target $${DISTRIB_TARGET} does not support Arm Cryptographic Extension." + echo "Install the regular libwolfssl package instead of libwolfsslcpu-crypto." + exit 1 + } +else + grep -q '^Features.*\baes\b' /proc/cpuinfo || { + echo "not supported" + echo "Error: Arm v8-A Cryptographic Extension not supported." + echo "Install the regular libwolfssl package instead of libwolfsslcpu-crypto." + echo "Contents of /proc/cpuinfo:" + cat /proc/cpuinfo + exit 1 + } +fi +echo OK +exit 0 +endef + ifeq ($(BUILD_VARIANT),regular) CONFIGURE_ARGS += \ --$(if $(CONFIG_WOLFSSL_HAS_AFALG),enable,disable)-afalg \ @@ -160,9 +187,7 @@ CONFIGURE_ARGS += \ else ifdef CONFIG_aarch64 CONFIGURE_ARGS += --enable-armasm TARGET_CFLAGS:=$(TARGET_CFLAGS:-mcpu%=-mcpu%+crypto) - WOLFSSL_NOASM_REGEX:=^bcm27xx/.* - Package/libwolfsslcpu-crypto/preinst=\ - $(subst @@WOLFSSL_NOASM_REGEX@@,$(WOLFSSL_NOASM_REGEX),$(file &2 -printf "[libwolfsslcpu-crypto] Checking for Arm v8-A Cryptographic Extension support: " -if [ -n "${IPKG_INSTROOT}" ]; then - printf "...[offline]... " - eval "$(grep '^DISTRIB_TARGET=' "${IPKG_INSTROOT}/etc/openwrt_release")" - ### @@WOLFSSL_NOASM_REGEX@@ is expanded from WOLFSSL_NOASM_REGEX in the Makefile - echo "${DISTRIB_TARGET}" | grep '@@WOLFSSL_NOASM_REGEX@@' > /dev/null && { - echo "not supported" - echo "Error: Target ${DISTRIB_TARGET} does not support Arm Cryptographic Extension." - echo "Install the regular libwolfssl package instead of libwolfsslcpu-crypto." - exit 1 - } -else - grep -q '^Features.*\baes\b' /proc/cpuinfo || { - echo "not supported" - echo "Error: Arm v8-A Cryptographic Extension not supported." - echo "Install the regular libwolfssl package instead of libwolfsslcpu-crypto." - echo "Contents of /proc/cpuinfo:" - cat /proc/cpuinfo - exit 1 - } -fi -echo OK -exit 0 From 8bc72ea7be3976711dacc09f0fdab061d6e5152a Mon Sep 17 00:00:00 2001 From: Tony Butler Date: Sun, 25 Dec 2022 15:11:48 -0800 Subject: [PATCH 11/32] treewide: strip useless `default n` Kconfig lines Kconfig docs say: > The default value deliberately defaults to 'n' in order to avoid > bloating the build. Apply this rule everywhere, to avoid more cloning of bad examples Signed-off-by: Tony Butler --- config/Config-build.in | 9 ---- config/Config-devel.in | 5 -- config/Config-images.in | 4 -- config/Config-kernel.in | 49 ------------------- target/linux/at91/image/Config.in | 2 - .../net/ethernet/atheros/ag71xx/Kconfig | 2 - .../files/drivers/mtd/mtdsplit/Kconfig | 1 - .../files/drivers/platform/mikrotik/Kconfig | 1 - target/sdk/files/Config.in | 5 -- toolchain/Config.in | 2 - toolchain/gcc/Config.in | 5 -- 11 files changed, 85 deletions(-) diff --git a/config/Config-build.in b/config/Config-build.in index c2303637cb1..8c81ef654cf 100644 --- a/config/Config-build.in +++ b/config/Config-build.in @@ -5,7 +5,6 @@ config EXPERIMENTAL bool "Enable experimental features by default" - default n help Set this option to build with latest bleeding edge features which may or may not work as expected. @@ -42,7 +41,6 @@ menu "Global build settings" config BUILDBOT bool "Set build defaults for automatic builds (e.g. via buildbot)" - default n help This option changes several defaults to be more suitable for automatic builds. This includes the following changes: @@ -75,10 +73,8 @@ menu "Global build settings" config DISPLAY_SUPPORT bool "Show packages that require graphics support (local or remote)" - default n config BUILD_PATENTED - default n bool "Compile with support for patented functionality" help When this option is disabled, software which provides patented functionality @@ -86,7 +82,6 @@ menu "Global build settings" functionality, this optional support will get disabled for this package. config BUILD_NLS - default n bool "Compile with full language support" help When this option is enabled, packages are built with the full versions of @@ -100,7 +95,6 @@ menu "Global build settings" config CLEAN_IPKG bool prompt "Remove ipkg/opkg status data files in final images" - default n help This removes all ipkg/opkg status data files from the target directory before building the root filesystem. @@ -108,14 +102,12 @@ menu "Global build settings" config IPK_FILES_CHECKSUMS bool prompt "Record files checksums in package metadata" - default n help This makes file checksums part of package metadata. It increases size but provides you with pkg_check command to check for flash corruptions. config INCLUDE_CONFIG bool "Include build configuration in firmware" if DEVEL - default n help If enabled, buildinfo files will be stored in /etc/build.* of firmware. @@ -149,7 +141,6 @@ menu "Global build settings" config DEBUG bool prompt "Compile packages with debugging info" - default n help Adds -g3 to the CFLAGS. diff --git a/config/Config-devel.in b/config/Config-devel.in index e16e6ecaabb..cbac91c09da 100644 --- a/config/Config-devel.in +++ b/config/Config-devel.in @@ -4,11 +4,9 @@ menuconfig DEVEL bool "Advanced configuration options (for developers)" - default n config BROKEN bool "Show broken platforms / packages / devices" if DEVEL - default n config BINARY_FOLDER string "Binary folder" if DEVEL @@ -53,7 +51,6 @@ menuconfig DEVEL config AUTOREMOVE bool "Automatic removal of build directories" if DEVEL - default n help Automatically delete build directories after make target completed. This allows you to symlink build_dir into a scratch location, e.g. a ramdisk, @@ -61,7 +58,6 @@ menuconfig DEVEL config BUILD_ALL_HOST_TOOLS bool "Compile all host tools" if DEVEL - default n help Compile all host host tools even if not needed. This is needed to prepare a universal precompiled host tools archive to use in another buildroot. @@ -84,7 +80,6 @@ menuconfig DEVEL config CCACHE bool "Use ccache" if DEVEL - default n help Compiler cache; see https://ccache.samba.org/ diff --git a/config/Config-images.in b/config/Config-images.in index 6e43793ef53..0768c5a4831 100644 --- a/config/Config-images.in +++ b/config/Config-images.in @@ -59,7 +59,6 @@ menu "Target Images" config TARGET_INITRAMFS_FORCE bool "Force" depends on TARGET_ROOTFS_INITRAMFS - default n help Ignore the initramfs passed by the bootloader. @@ -128,7 +127,6 @@ menu "Target Images" config TARGET_EXT4_JOURNAL bool "Create a journaling filesystem" depends on TARGET_ROOTFS_EXT4FS - default n help Create an ext4 filesystem with a journal. @@ -233,7 +231,6 @@ menu "Target Images" config GRUB_FLOWCONTROL bool "Use RTE/CTS on serial console" depends on GRUB_SERIAL != "" - default n config GRUB_BOOTOPTS string "Extra kernel boot options" @@ -312,7 +309,6 @@ menu "Target Images" config TARGET_ROOTFS_PERSIST_VAR bool "Make /var persistent" - default n help Do not symlink /var to /tmp, so that its content will persist across reboots. When enabled, /var/run will still be linked diff --git a/config/Config-kernel.in b/config/Config-kernel.in index 81b76179a53..500f72672d1 100644 --- a/config/Config-kernel.in +++ b/config/Config-kernel.in @@ -47,12 +47,10 @@ config KERNEL_MIPS_FP_SUPPORT config KERNEL_ARM_PMU bool - default n depends on (arm || aarch64) config KERNEL_X86_VSYSCALL_EMULATION bool "Enable vsyscall emulation" - default n depends on x86_64 help This enables emulation of the legacy vsyscall page. Disabling @@ -70,12 +68,10 @@ config KERNEL_X86_VSYSCALL_EMULATION config KERNEL_PERF_EVENTS bool "Compile the kernel with performance events and counters" - default n select KERNEL_ARM_PMU if (arm || aarch64) config KERNEL_PROFILING bool "Compile the kernel with profiling enabled" - default n select KERNEL_PERF_EVENTS help Enable the extended profiling support mechanisms used by profilers such @@ -255,7 +251,6 @@ config KERNEL_KCOV_INSTRUMENT_ALL config KERNEL_TASKSTATS bool "Compile the kernel with task resource/io statistics and accounting" - default n help Enable the collection and publishing of task/io statistics and accounting. Enable this option to enable i/o monitoring in system @@ -283,37 +278,30 @@ config KERNEL_KALLSYMS config KERNEL_FTRACE bool "Compile the kernel with tracing support" depends on !TARGET_uml - default n config KERNEL_FTRACE_SYSCALLS bool "Trace system calls" depends on KERNEL_FTRACE - default n config KERNEL_ENABLE_DEFAULT_TRACERS bool "Trace process context switches and events" depends on KERNEL_FTRACE - default n config KERNEL_FUNCTION_TRACER bool "Function tracer" depends on KERNEL_FTRACE - default n config KERNEL_FUNCTION_GRAPH_TRACER bool "Function graph tracer" depends on KERNEL_FUNCTION_TRACER - default n config KERNEL_DYNAMIC_FTRACE bool "Enable/disable function tracing dynamically" depends on KERNEL_FUNCTION_TRACER - default n config KERNEL_FUNCTION_PROFILER bool "Function profiler" depends on KERNEL_FUNCTION_TRACER - default n config KERNEL_IRQSOFF_TRACER bool "Interrupts-off Latency Tracer" @@ -364,7 +352,6 @@ config KERNEL_HIST_TRIGGERS config KERNEL_DEBUG_KERNEL bool - default n config KERNEL_DEBUG_INFO bool "Compile the kernel with debug information" @@ -376,7 +363,6 @@ config KERNEL_DEBUG_INFO config KERNEL_DEBUG_INFO_BTF bool "Enable additional BTF type information" - default n depends on !HOST_OS_MACOS depends on KERNEL_DEBUG_INFO && !KERNEL_DEBUG_INFO_REDUCED select DWARVES @@ -403,12 +389,10 @@ config KERNEL_DEBUG_INFO_REDUCED config KERNEL_DEBUG_LL_UART_NONE bool - default n depends on arm config KERNEL_DEBUG_LL bool - default n depends on arm select KERNEL_DEBUG_LL_UART_NONE help @@ -417,7 +401,6 @@ config KERNEL_DEBUG_LL config KERNEL_DEBUG_VIRTUAL bool "Compile the kernel with VM translations debugging" select KERNEL_DEBUG_KERNEL - default n help Enable checks sanity checks to catch invalid uses of virt_to_phys()/phys_to_virt() against the non-linear address space. @@ -425,7 +408,6 @@ config KERNEL_DEBUG_VIRTUAL config KERNEL_DYNAMIC_DEBUG bool "Compile the kernel with dynamic printk" select KERNEL_DEBUG_FS - default n help Compiles debug level messages into the kernel, which would not otherwise be available at runtime. These messages can then be @@ -437,7 +419,6 @@ config KERNEL_DYNAMIC_DEBUG config KERNEL_EARLY_PRINTK bool "Compile the kernel with early printk" default y if TARGET_bcm53xx - default n depends on arm select KERNEL_DEBUG_KERNEL select KERNEL_DEBUG_LL if arm @@ -448,7 +429,6 @@ config KERNEL_EARLY_PRINTK config KERNEL_KPROBES bool "Compile the kernel with kprobes support" - default n select KERNEL_FTRACE select KERNEL_PERF_EVENTS help @@ -465,7 +445,6 @@ config KERNEL_KPROBE_EVENTS config KERNEL_BPF_EVENTS bool "Compile the kernel with BPF event support" - default n select KERNEL_KPROBES help Allows to attach BPF programs to kprobe, uprobe and tracepoint events. @@ -475,7 +454,6 @@ config KERNEL_BPF_EVENTS config KERNEL_BPF_KPROBE_OVERRIDE bool - default n depends on KERNEL_KPROBES config KERNEL_AIO @@ -496,7 +474,6 @@ config KERNEL_FANOTIFY config KERNEL_BLK_DEV_BSG bool "Compile the kernel with SCSI generic v4 support for any block device" - default n config KERNEL_TRANSPARENT_HUGEPAGE bool @@ -520,7 +497,6 @@ config KERNEL_HUGETLB_PAGE bool "Compile the kernel with HugeTLB support" select KERNEL_TRANSPARENT_HUGEPAGE select KERNEL_HUGETLBFS - default n config KERNEL_MAGIC_SYSRQ bool "Compile the kernel with SysRq support" @@ -545,7 +521,6 @@ config KERNEL_ELF_CORE config KERNEL_PROVE_LOCKING bool "Enable kernel lock checking" select KERNEL_DEBUG_KERNEL - default n config KERNEL_SOFTLOCKUP_DETECTOR bool "Compile the kernel with detect Soft Lockups" @@ -647,11 +622,9 @@ config USE_RFKILL config USE_SPARSE bool "Enable sparse check during kernel build" - default n config KERNEL_DEVTMPFS bool "Compile the kernel with device tmpfs enabled" - default n help devtmpfs is a simple, kernel-managed /dev filesystem. The kernel creates devices nodes for all registered devices to simplify boot, but leaves more @@ -661,7 +634,6 @@ if KERNEL_DEVTMPFS config KERNEL_DEVTMPFS_MOUNT bool "Automatically mount devtmpfs after root filesystem is mounted" - default n endif @@ -672,17 +644,14 @@ config KERNEL_KEYS config KERNEL_PERSISTENT_KEYRINGS bool "Enable kernel persistent keyrings" depends on KERNEL_KEYS - default n config KERNEL_KEYS_REQUEST_CACHE bool "Enable temporary caching of the last request_key() result" depends on KERNEL_KEYS - default n config KERNEL_BIG_KEYS bool "Enable large payload keys on kernel keyrings" depends on KERNEL_KEYS - default n # # CGROUP support symbols @@ -696,7 +665,6 @@ if KERNEL_CGROUPS config KERNEL_CGROUP_DEBUG bool "Example debug cgroup subsystem" - default n help This option enables a simple cgroup subsystem that exports useful debugging information about the cgroups @@ -707,7 +675,6 @@ if KERNEL_CGROUPS config KERNEL_CGROUP_FREEZER bool "legacy Freezer cgroup subsystem" - default n select KERNEL_FREEZER help Provides a way to freeze and unfreeze all tasks in a @@ -717,7 +684,6 @@ if KERNEL_CGROUPS config KERNEL_CGROUP_DEVICE bool "legacy Device controller for cgroups" - default n help Provides a cgroup implementing whitelists for devices which a process in the cgroup can mknod or open. @@ -725,7 +691,6 @@ if KERNEL_CGROUPS config KERNEL_CGROUP_HUGETLB bool "HugeTLB controller" - default n select KERNEL_HUGETLB_PAGE config KERNEL_CGROUP_PIDS @@ -754,7 +719,6 @@ if KERNEL_CGROUPS config KERNEL_PROC_PID_CPUSET bool "Include legacy /proc//cpuset file" - default n depends on KERNEL_CPUSETS config KERNEL_CGROUP_CPUACCT @@ -820,7 +784,6 @@ if KERNEL_CGROUPS config KERNEL_MEMCG_SWAP_ENABLED bool "Memory Resource Controller Swap Extension enabled by default" - default n depends on KERNEL_MEMCG_SWAP help Memory Resource Controller Swap Extension comes with its price in @@ -849,7 +812,6 @@ if KERNEL_CGROUPS config KERNEL_CGROUP_PERF bool "Enable perf_event per-cpu per-container group (cgroup) monitoring" select KERNEL_PERF_EVENTS - default n help This option extends the per-cpu mode to restrict monitoring to threads which belong to the cgroup specified and run on the @@ -926,7 +888,6 @@ if KERNEL_CGROUPS config KERNEL_DEBUG_BLK_CGROUP bool "Enable Block IO controller debugging" - default n depends on KERNEL_BLK_CGROUP help Enable some debugging help. Currently it exports additional stat @@ -934,15 +895,12 @@ if KERNEL_CGROUPS config KERNEL_NET_CLS_CGROUP bool "legacy Control Group Classifier" - default n config KERNEL_CGROUP_NET_CLASSID bool "legacy Network classid cgroup" - default n config KERNEL_CGROUP_NET_PRIO bool "legacy Network priority cgroup" - default n endif @@ -1168,7 +1126,6 @@ endif menu "Filesystem ACL and attr support options" config USE_FS_ACL_ATTR bool "Use filesystem ACL and attr support by default" - default n help Make using ACLs (e.g. POSIX ACL, NFSv4 ACL) the default for kernel and packages, except tmpfs, flash filesystems, @@ -1193,17 +1150,14 @@ menu "Filesystem ACL and attr support options" config KERNEL_F2FS_FS_POSIX_ACL bool "Enable POSIX ACL for F2FS Filesystems" select KERNEL_FS_POSIX_ACL - default n config KERNEL_JFFS2_FS_POSIX_ACL bool "Enable POSIX ACL for JFFS2 Filesystems" select KERNEL_FS_POSIX_ACL - default n config KERNEL_TMPFS_POSIX_ACL bool "Enable POSIX ACL for TMPFS Filesystems" select KERNEL_FS_POSIX_ACL - default n config KERNEL_CIFS_ACL bool "Enable CIFS ACLs" @@ -1226,15 +1180,12 @@ menu "Filesystem ACL and attr support options" config KERNEL_NFS_V3_ACL_SUPPORT bool "Enable ACLs for NFSv3" - default n config KERNEL_NFSD_V2_ACL_SUPPORT bool "Enable ACLs for NFSDv2" - default n config KERNEL_NFSD_V3_ACL_SUPPORT bool "Enable ACLs for NFSDv3" - default n config KERNEL_REISER_FS_POSIX_ACL bool "Enable POSIX ACLs for ReiserFS" diff --git a/target/linux/at91/image/Config.in b/target/linux/at91/image/Config.in index 596accaa497..ae559edca1f 100644 --- a/target/linux/at91/image/Config.in +++ b/target/linux/at91/image/Config.in @@ -1,10 +1,8 @@ config AT91_DFBOOT bool "Build dataflashboot loader" depends on TARGET_at91 - default n config FLEXIBITY_ROOT bool "Build Flexibity RootFS (with embedded kernel)" depends on TARGET_at91_flexibity - default n diff --git a/target/linux/ath79/files/drivers/net/ethernet/atheros/ag71xx/Kconfig b/target/linux/ath79/files/drivers/net/ethernet/atheros/ag71xx/Kconfig index 4df2d21e34b..dfcedcf70e8 100644 --- a/target/linux/ath79/files/drivers/net/ethernet/atheros/ag71xx/Kconfig +++ b/target/linux/ath79/files/drivers/net/ethernet/atheros/ag71xx/Kconfig @@ -10,14 +10,12 @@ if AG71XX config AG71XX_DEBUG bool "Atheros AR71xx built-in ethernet driver debugging" - default n help Atheros AR71xx built-in ethernet driver debugging messages. config AG71XX_DEBUG_FS bool "Atheros AR71xx built-in ethernet driver debugfs support" depends on DEBUG_FS - default n help Say Y, if you need access to various statistics provided by the ag71xx driver. diff --git a/target/linux/generic/files/drivers/mtd/mtdsplit/Kconfig b/target/linux/generic/files/drivers/mtd/mtdsplit/Kconfig index f929c6153e7..f1864d8fdb7 100644 --- a/target/linux/generic/files/drivers/mtd/mtdsplit/Kconfig +++ b/target/linux/generic/files/drivers/mtd/mtdsplit/Kconfig @@ -12,7 +12,6 @@ config MTD_SPLIT_SQUASHFS_ROOT bool "Squashfs based root partition parser" depends on MTD_SPLIT_SUPPORT select MTD_SPLIT - default n help This provides a parsing function which allows to detect the offset and size of the unused portion of a rootfs partition diff --git a/target/linux/generic/files/drivers/platform/mikrotik/Kconfig b/target/linux/generic/files/drivers/platform/mikrotik/Kconfig index 7499ba1e1c6..1dc027815a5 100644 --- a/target/linux/generic/files/drivers/platform/mikrotik/Kconfig +++ b/target/linux/generic/files/drivers/platform/mikrotik/Kconfig @@ -1,6 +1,5 @@ menuconfig MIKROTIK bool "Platform support for MikroTik RouterBoard virtual devices" - default n help Say Y here to get to see options for the MikroTik RouterBoard platform. This option alone does not add any kernel code. diff --git a/target/sdk/files/Config.in b/target/sdk/files/Config.in index 12c0f6a6246..7926e124265 100644 --- a/target/sdk/files/Config.in +++ b/target/sdk/files/Config.in @@ -23,7 +23,6 @@ menu "Global build settings" config DEBUG bool prompt "Compile packages with debugging info" - default n help Adds -g3 to the CFLAGS. @@ -69,7 +68,6 @@ menu "Advanced configuration options (for developers)" config BROKEN bool "Show broken packages" - default n config DOWNLOAD_FOLDER string "Download folder" @@ -101,19 +99,16 @@ menu "Advanced configuration options (for developers)" config CCACHE bool "Use ccache" - default n help Compiler cache; see https://ccache.samba.org/ config BUILD_LOG bool "Enable log files during build process" - default n help If enabled, log files will be written to the ./log directory. config SRC_TREE_OVERRIDE bool "Enable package source tree override" - default n help If enabled, you can force a package to use a git tree as source code instead of the normal tarball. Create a symlink 'git-src' diff --git a/toolchain/Config.in b/toolchain/Config.in index 6d3cc0a200c..b0273acafdd 100644 --- a/toolchain/Config.in +++ b/toolchain/Config.in @@ -197,7 +197,6 @@ menuconfig EXTRA_TARGET_ARCH bool prompt "Enable an extra toolchain target architecture" if TOOLCHAINOPTS depends on !sparc - default n help Some builds may require a 'biarch' toolchain. This option allows you to specify an additional target arch. @@ -252,7 +251,6 @@ config DWARVES bool prompt "Build pahole" if TOOLCHAINOPTS depends on !HOST_OS_MACOS - default n help Enable if you want to build pahole and the dwarves tools. diff --git a/toolchain/gcc/Config.in b/toolchain/gcc/Config.in index af4d54c73e5..d150c9cc4ba 100644 --- a/toolchain/gcc/Config.in +++ b/toolchain/gcc/Config.in @@ -27,21 +27,18 @@ config EXTRA_GCC_CONFIG_OPTIONS config GCC_DEFAULT_PIE bool prompt "Build executable with PIE enabled by default" if TOOLCHAINOPTS - default n help Use gcc configure option --enable-default-pie to turn on -fPIE and -pie by default. config GCC_DEFAULT_SSP bool prompt "Build executable with Stack-Smashing Protection enabled by default" if TOOLCHAINOPTS - default n help Use gcc configure option --enable-default-ssp to turn on -fstack-protector-strong by default. config SJLJ_EXCEPTIONS bool prompt "Use setjump()/longjump() exceptions" if TOOLCHAINOPTS - default n help Use old setjump()/longjump() exceptions instead of the newer frame unwinding exceptions handling routines. Warning: increases @@ -50,7 +47,6 @@ config SJLJ_EXCEPTIONS config INSTALL_GFORTRAN bool prompt "Build/install fortran compiler?" if TOOLCHAINOPTS - default n help Build/install GNU fortran compiler ? @@ -58,6 +54,5 @@ config INSTALL_GCCGO bool prompt "Build/install Go compiler?" if TOOLCHAINOPTS depends on USE_GLIBC || BROKEN - default n help Build/install GNU gccgo compiler ? From 723963543a270a5de845ef0ddd07c51c0a8b2cbb Mon Sep 17 00:00:00 2001 From: Jan Hoffmann Date: Sat, 28 Jan 2023 20:29:22 +0100 Subject: [PATCH 12/32] ltq-vdsl-vr9: fix upstream MINEFTR The upstream value read from the device seems to already be in bits per second, so there is no need to multiply by 1000 again (which for typical values causes an overflow of the 32-bit unsigned integer). Signed-off-by: Jan Hoffmann --- package/kernel/lantiq/ltq-vdsl-vr9/Makefile | 2 +- .../patches/210-fix-us-eftrmin.patch | 22 +++++++++++++++++++ 2 files changed, 23 insertions(+), 1 deletion(-) create mode 100644 package/kernel/lantiq/ltq-vdsl-vr9/patches/210-fix-us-eftrmin.patch diff --git a/package/kernel/lantiq/ltq-vdsl-vr9/Makefile b/package/kernel/lantiq/ltq-vdsl-vr9/Makefile index da924e861e6..ebcb935a739 100644 --- a/package/kernel/lantiq/ltq-vdsl-vr9/Makefile +++ b/package/kernel/lantiq/ltq-vdsl-vr9/Makefile @@ -9,7 +9,7 @@ include $(INCLUDE_DIR)/kernel.mk PKG_NAME:=ltq-vdsl-vr9 PKG_VERSION:=4.17.18.6 -PKG_RELEASE:=7 +PKG_RELEASE:=8 PKG_BASE_NAME:=drv_dsl_cpe_api PKG_SOURCE:=$(PKG_BASE_NAME)_vrx-$(PKG_VERSION).tar.gz diff --git a/package/kernel/lantiq/ltq-vdsl-vr9/patches/210-fix-us-eftrmin.patch b/package/kernel/lantiq/ltq-vdsl-vr9/patches/210-fix-us-eftrmin.patch new file mode 100644 index 00000000000..51651f476a3 --- /dev/null +++ b/package/kernel/lantiq/ltq-vdsl-vr9/patches/210-fix-us-eftrmin.patch @@ -0,0 +1,22 @@ +--- a/src/pm/drv_dsl_cpe_api_pm_vrx.c ++++ b/src/pm/drv_dsl_cpe_api_pm_vrx.c +@@ -1435,9 +1435,16 @@ DSL_Error_t DSL_DRV_PM_DEV_ReTxCountersG + /* ignore zero value*/ + if (nEftrMin) + { +- /* Fw Format: kBit/s */ +- /* API format: bit/s */ +- pCounters->nEftrMin = nEftrMin*1000; ++ if (nDirection == DSL_NEAR_END) ++ { ++ /* Fw Format: kBit/s */ ++ /* API format: bit/s */ ++ pCounters->nEftrMin = nEftrMin*1000; ++ } ++ else ++ { ++ pCounters->nEftrMin = nEftrMin; ++ } + } + } + else From b91d7d9d78ea12097de4c518c8cd2215ff286f7a Mon Sep 17 00:00:00 2001 From: Jan Hoffmann Date: Sat, 28 Jan 2023 20:45:24 +0100 Subject: [PATCH 13/32] ltq-*-app: extend ubus metrics/statistics Expose a few additional useful values via ubus: - Channel error counters (CRC, FEC) - Retransmission counters (MINEFTR, LEFTRS) - Impulse noise protection level - Rate adaptation mode - OLR statistics (Bitswap, SRA, SOS) - Pilot tones - Upstream/downstream band information Signed-off-by: Jan Hoffmann --- package/network/config/ltq-adsl-app/Makefile | 2 +- .../network/config/ltq-vdsl-vr11-app/Makefile | 2 +- .../ltq-vdsl-vr9-app/src/src/dsl_cpe_ubus.c | 163 +++++++++++++++++- 3 files changed, 162 insertions(+), 5 deletions(-) diff --git a/package/network/config/ltq-adsl-app/Makefile b/package/network/config/ltq-adsl-app/Makefile index c4ddbf7089f..472e3c0ed9c 100644 --- a/package/network/config/ltq-adsl-app/Makefile +++ b/package/network/config/ltq-adsl-app/Makefile @@ -10,7 +10,7 @@ include $(INCLUDE_DIR)/kernel.mk PKG_NAME:=dsl_cpe_control_danube PKG_VERSION:=3.24.4.4 -PKG_RELEASE:=10 +PKG_RELEASE:=11 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_BUILD_DIR:=$(BUILD_DIR)/dsl_cpe_control-$(PKG_VERSION) PKG_SOURCE_URL:=@OPENWRT diff --git a/package/network/config/ltq-vdsl-vr11-app/Makefile b/package/network/config/ltq-vdsl-vr11-app/Makefile index 8639795458f..bcbf41e65a1 100644 --- a/package/network/config/ltq-vdsl-vr11-app/Makefile +++ b/package/network/config/ltq-vdsl-vr11-app/Makefile @@ -9,7 +9,7 @@ include $(INCLUDE_DIR)/kernel.mk PKG_NAME:=ltq-vdsl-vr11-app PKG_VERSION:=4.23.1 -PKG_RELEASE:=1 +PKG_RELEASE:=2 PKG_BASE_NAME:=dsl_cpe_control UGW_VERSION=8.5.2.10 diff --git a/package/network/config/ltq-vdsl-vr9-app/src/src/dsl_cpe_ubus.c b/package/network/config/ltq-vdsl-vr9-app/src/src/dsl_cpe_ubus.c index bf8a8b9c2c0..77a1c67b6ae 100644 --- a/package/network/config/ltq-vdsl-vr9-app/src/src/dsl_cpe_ubus.c +++ b/package/network/config/ltq-vdsl-vr9-app/src/src/dsl_cpe_ubus.c @@ -133,6 +133,17 @@ enum { PSTATE_MAP_L3, }; +/* These values are exported via ubus and backwards compability + * needs to be kept! + */ +enum { + RAMODE_MAP_UNKNOWN = -1, + RAMODE_MAP_MANUAL, + RAMODE_MAP_AT_INIT, + RAMODE_MAP_DYNAMIC, + RAMODE_MAP_DYNAMIC_SOS, +}; + static DSL_CPE_ThreadCtrl_t thread; static struct ubus_context *ctx; static struct blob_buf b; @@ -171,6 +182,15 @@ static inline void m_array(const char *id, const uint8_t *value, size_t len) { blobmsg_close_array(&b, c); } +static inline void m_array_u16(const char *id, const uint16_t *value, size_t len) { + void *c = blobmsg_open_array(&b, id); + + for (size_t i = 0; i < len; ++i) + blobmsg_add_u16(&b, "", value[i]); + + blobmsg_close_array(&b, c); +} + static void m_vendor(const char *id, const uint8_t *value) { // ITU-T T.35: U.S. if (U16(value[0], value[1]) != 0xb500) @@ -418,6 +438,31 @@ static void g997_line_inventory(int fd) { m_array("serial", out.data.SerialNumber, DSL_G997_LI_MAXLEN_SERIAL); } +static void pilot_tones_status(int fd) { +#ifndef INCLUDE_DSL_CPE_API_DANUBE + IOCTL(DSL_PilotTonesStatus_t, DSL_FIO_PILOT_TONES_STATUS_GET); + + m_array_u16("pilot_tones", out.data.nPilotTone, out.data.nNumData); +#endif +} + +static void band_border_status(int fd, DSL_AccessDir_t direction) { + IOCTL(DSL_BandBorderStatus_t, DSL_FIO_BAND_BORDER_STATUS_GET); + + void *c, *c2; + + c = blobmsg_open_array(&b, "limits"); + + for (size_t i = 0; i < out.data.nNumData; i++) { + c2 = blobmsg_open_table(&b, ""); + blobmsg_add_u16(&b, "first", out.data.nBandLimits[i].nFirstToneIndex); + blobmsg_add_u16(&b, "last", out.data.nBandLimits[i].nLastToneIndex); + blobmsg_close_table(&b, c2); + } + + blobmsg_close_array(&b, c); +} + static void g977_get_bit_allocation(int fd, DSL_AccessDir_t direction) { IOCTL_DIR(DSL_G997_BitAllocationNsc_t, DSL_FIO_G997_BIT_ALLOCATION_NSC_GET, direction); @@ -639,19 +684,46 @@ static void band_plan_status(int fd, profile_t *profile) { #endif } -static void line_feature_config(int fd, DSL_AccessDir_t direction) { +static void line_feature_config(int fd, DSL_AccessDir_t direction, bool *retx) { IOCTL_DIR(DSL_LineFeature_t, DSL_FIO_LINE_FEATURE_STATUS_GET, direction) m_bool("trellis", out.data.bTrellisEnable); m_bool("bitswap", out.data.bBitswapEnable); m_bool("retx", out.data.bReTxEnable); m_bool("virtual_noise", out.data.bVirtualNoiseSupport); + + *retx = out.data.bReTxEnable; +} + +static void g997_rate_adaptation_status(int fd, DSL_AccessDir_t direction) { +#ifndef INCLUDE_DSL_CPE_API_DANUBE + IOCTL_DIR(DSL_G997_RateAdaptationStatus_t, DSL_FIO_G997_RATE_ADAPTATION_STATUS_GET, direction); + + int map = RAMODE_MAP_UNKNOWN; + const char *str; + switch (out.data.RA_MODE) { + STR_CASE_MAP(DSL_G997_RA_MODE_MANUAL, "Manual", RAMODE_MAP_MANUAL) + STR_CASE_MAP(DSL_G997_RA_MODE_AT_INIT, "At initialization", RAMODE_MAP_AT_INIT) + STR_CASE_MAP(DSL_G997_RA_MODE_DYNAMIC, "Dynamic", RAMODE_MAP_DYNAMIC) + STR_CASE_MAP(DSL_G997_RA_MODE_DYNAMIC_SOS, "Dynamic with SOS", RAMODE_MAP_DYNAMIC_SOS) + default: + str = NULL; + break; + }; + + if (str) + m_str("ra_mode", str); + + if (map != PSTATE_MAP_UNKNOWN) + m_u32("ra_mode_num", map); +#endif } static void g997_channel_status(int fd, DSL_AccessDir_t direction) { IOCTL_DIR(DSL_G997_ChannelStatus_t, DSL_FIO_G997_CHANNEL_STATUS_GET, direction); m_u32("interleave_delay", out.data.ActualInterleaveDelay * 10); + m_double("inp", (double)out.data.ActualImpulseNoiseProtection / 10); #ifndef INCLUDE_DSL_CPE_API_DANUBE // prefer ACTNDR, see comments in drv_dsl_cpe_api_g997.h m_u32("data_rate", out.data.ActualNetDataRate); @@ -672,6 +744,41 @@ static void g997_line_status(int fd, DSL_AccessDir_t direction) { m_u32("attndr", out.data.ATTNDR); } +static void pm_retx_counters_showtime(int fd, DSL_XTUDir_t direction) { +#ifdef INCLUDE_DSL_CPE_PM_RETX_COUNTERS + IOCTL_DIR(DSL_PM_ReTxCounters_t, DSL_FIO_PM_RETX_COUNTERS_SHOWTIME_GET, direction); + + m_u32("mineftr", out.data.nEftrMin); +#endif +} + +#ifndef INCLUDE_DSL_CPE_API_DANUBE +static void olr_statistics(int fd, DSL_AccessDir_t direction) { + IOCTL_DIR(DSL_OlrStatistics_t, DSL_FIO_OLR_STATISTICS_GET, direction) + + void *c = blobmsg_open_table(&b, "bitswap"); + m_u32("requested", out.data.nBitswapRequested + out.data.nBitswapRequested); + m_u32("executed", out.data.nBitswapExecuted); + m_u32("rejected", out.data.nBitswapRejected); + m_u32("timeout", out.data.nBitswapTimeout); + blobmsg_close_table(&b, c); + + c = blobmsg_open_table(&b, "sra"); + m_u32("requested", out.data.nSraRequested); + m_u32("executed", out.data.nSraExecuted); + m_u32("rejected", out.data.nSraRejected); + m_u32("timeout", out.data.nSraTimeout); + blobmsg_close_table(&b, c); + + c = blobmsg_open_table(&b, "sos"); + m_u32("requested", out.data.nSosRequested); + m_u32("executed", out.data.nSosExecuted); + m_u32("rejected", out.data.nSosRejected); + m_u32("timeout", out.data.nSosTimeout); + blobmsg_close_table(&b, c); +} +#endif + static void pm_line_sec_counters_total(int fd, DSL_XTUDir_t direction) { IOCTL_DIR(DSL_PM_LineSecCountersTotal_t, DSL_FIO_PM_LINE_SEC_COUNTERS_TOTAL_GET, direction) @@ -685,6 +792,21 @@ static void pm_line_sec_counters_total(int fd, DSL_XTUDir_t direction) { #endif } +static void pm_retx_counters_total(int fd, DSL_XTUDir_t direction) { +#ifdef INCLUDE_DSL_CPE_PM_RETX_COUNTERS + IOCTL_DIR(DSL_PM_ReTxCountersTotal_t, DSL_FIO_PM_RETX_COUNTERS_TOTAL_GET, direction); + + m_u32("leftrs", out.data.nLeftr); +#endif +} + +static void pm_channel_counters_total(int fd, DSL_XTUDir_t direction) { + IOCTL_DIR(DSL_PM_ChannelCountersTotal_t, DSL_FIO_PM_CHANNEL_COUNTERS_TOTAL_GET, direction); + + m_u32("cv_c", out.data.nCodeViolations); + m_u32("fec_c", out.data.nFEC); +} + static void pm_data_path_counters_total(int fd, DSL_XTUDir_t direction) { IOCTL_DIR(DSL_PM_DataPathCountersTotal_t, DSL_FIO_PM_DATA_PATH_COUNTERS_TOTAL_GET, direction); @@ -810,6 +932,17 @@ static int line_statistics(struct ubus_context *ctx, struct ubus_object *obj, blob_buf_init(&b, 0); + pilot_tones_status(fd); + + c = blobmsg_open_table(&b, "bands"); + c2 = blobmsg_open_table(&b, "downstream"); + band_border_status(fd, DSL_DOWNSTREAM); + blobmsg_close_table(&b, c2); + c2 = blobmsg_open_table(&b, "upstream"); + band_border_status(fd, DSL_UPSTREAM); + blobmsg_close_table(&b, c2); + blobmsg_close_table(&b, c); + c = blobmsg_open_table(&b, "bits"); c2 = blobmsg_open_table(&b, "downstream"); g977_get_bit_allocation(fd, DSL_DOWNSTREAM); @@ -862,6 +995,7 @@ static int metrics(struct ubus_context *ctx, struct ubus_object *obj, standard_t standard = STD_UNKNOWN; profile_t profile = PROFILE_UNKNOWN; vector_t vector = VECTOR_UNKNOWN; + bool retx_up = false, retx_down = false; #ifndef INCLUDE_DSL_CPE_API_DANUBE fd = open(DSL_CPE_DEVICE_NAME "/0", O_RDWR, 0644); @@ -908,9 +1042,12 @@ static int metrics(struct ubus_context *ctx, struct ubus_object *obj, default: break; }; - line_feature_config(fd, DSL_UPSTREAM); + line_feature_config(fd, DSL_UPSTREAM, &retx_up); + g997_rate_adaptation_status(fd, DSL_UPSTREAM); g997_channel_status(fd, DSL_UPSTREAM); g997_line_status(fd, DSL_UPSTREAM); + if (retx_up) + pm_retx_counters_showtime(fd, DSL_FAR_END); blobmsg_close_table(&b, c); c = blobmsg_open_table(&b, "downstream"); @@ -925,20 +1062,40 @@ static int metrics(struct ubus_context *ctx, struct ubus_object *obj, default: break; }; - line_feature_config(fd, DSL_DOWNSTREAM); + line_feature_config(fd, DSL_DOWNSTREAM, &retx_down); + g997_rate_adaptation_status(fd, DSL_DOWNSTREAM); g997_channel_status(fd, DSL_DOWNSTREAM); g997_line_status(fd, DSL_DOWNSTREAM); + if (retx_down) + pm_retx_counters_showtime(fd, DSL_NEAR_END); blobmsg_close_table(&b, c); +#ifndef INCLUDE_DSL_CPE_API_DANUBE + c = blobmsg_open_table(&b, "olr"); + c2 = blobmsg_open_table(&b, "downstream"); + olr_statistics(fd, DSL_DOWNSTREAM); + blobmsg_close_table(&b, c2); + c2 = blobmsg_open_table(&b, "upstream"); + olr_statistics(fd, DSL_UPSTREAM); + blobmsg_close_table(&b, c2); + blobmsg_close_table(&b, c); +#endif + c = blobmsg_open_table(&b, "errors"); c2 = blobmsg_open_table(&b, "near"); pm_line_sec_counters_total(fd, DSL_NEAR_END); + if (retx_down) + pm_retx_counters_total(fd, DSL_NEAR_END); + pm_channel_counters_total(fd, DSL_NEAR_END); pm_data_path_counters_total(fd, DSL_NEAR_END); retx_statistics(fd, DSL_NEAR_END); blobmsg_close_table(&b, c2); c2 = blobmsg_open_table(&b, "far"); pm_line_sec_counters_total(fd, DSL_FAR_END); + if (retx_up) + pm_retx_counters_total(fd, DSL_FAR_END); + pm_channel_counters_total(fd, DSL_FAR_END); pm_data_path_counters_total(fd, DSL_FAR_END); retx_statistics(fd, DSL_FAR_END); blobmsg_close_table(&b, c2); From c46584ab302f0dd9b472aef77c2af163f9719379 Mon Sep 17 00:00:00 2001 From: Jan Hoffmann Date: Sat, 28 Jan 2023 00:01:18 +0100 Subject: [PATCH 14/32] ramips: use on-flash partition table for Sercomm BZV/CHJ These devices have a partition table stored in flash, which compensates for any pre-existing bad blocks by enlarging the respective partition. This means that the current static partition table is only correct for devices without any bad blocks. Typical results of this mismatch are degraded wireless performance and wrong MAC addresses, when the factory partition is shifted due to a bad block somewhere before it. If there is a bad block already before the ubi partition, then OpenWrt may not run at all because the kernel can't find the rootfs. Use the on-flash partition table to fix these issues. Replace the two reserved partitions by the full partition list, as the driver does not allow merging them. Signed-off-by: Jan Hoffmann --- .../dts/mt7621_netgear_sercomm_bzv.dtsi | 169 +++++++++++++++++- .../dts/mt7621_netgear_sercomm_chj.dtsi | 169 +++++++++++++++++- 2 files changed, 330 insertions(+), 8 deletions(-) diff --git a/target/linux/ramips/dts/mt7621_netgear_sercomm_bzv.dtsi b/target/linux/ramips/dts/mt7621_netgear_sercomm_bzv.dtsi index 9fa4af8fd66..ab96b8fdd12 100644 --- a/target/linux/ramips/dts/mt7621_netgear_sercomm_bzv.dtsi +++ b/target/linux/ramips/dts/mt7621_netgear_sercomm_bzv.dtsi @@ -223,47 +223,208 @@ status = "okay"; partitions { - compatible = "fixed-partitions"; + compatible = "sercomm,sc-partitions", "fixed-partitions"; #address-cells = <1>; #size-cells = <1>; partition@0 { label = "u-boot"; reg = <0x0 0x100000>; + sercomm,scpart-id = <0>; read-only; }; partition@100000 { label = "SC PART_MAP"; reg = <0x100000 0x100000>; + sercomm,scpart-id = <1>; read-only; }; partition@200000 { label = "kernel"; reg = <0x200000 0x400000>; + sercomm,scpart-id = <2>; }; partition@600000 { label = "ubi"; reg = <0x600000 0x2800000>; + sercomm,scpart-id = <3>; }; partition@2e00000 { - label = "reserved0"; - reg = <0x2e00000 0x1800000>; + label = "English UI"; + reg = <0x2e00000 0x200000>; + sercomm,scpart-id = <4>; + read-only; + }; + + partition@3000000 { + label = "ML1"; + reg = <0x3000000 0x200000>; + sercomm,scpart-id = <5>; + read-only; + }; + + partition@3200000 { + label = "ML2"; + reg = <0x3200000 0x200000>; + sercomm,scpart-id = <6>; + read-only; + }; + + partition@3400000 { + label = "ML3"; + reg = <0x3400000 0x200000>; + sercomm,scpart-id = <7>; + read-only; + }; + + partition@3600000 { + label = "ML4"; + reg = <0x3600000 0x200000>; + sercomm,scpart-id = <8>; + read-only; + }; + + partition@3800000 { + label = "ML5"; + reg = <0x3800000 0x200000>; + sercomm,scpart-id = <9>; + read-only; + }; + + partition@3a00000 { + label = "ML6"; + reg = <0x3a00000 0x200000>; + sercomm,scpart-id = <10>; + read-only; + }; + + partition@3c00000 { + label = "ML7"; + reg = <0x3c00000 0x200000>; + sercomm,scpart-id = <11>; + read-only; + }; + + partition@3e00000 { + label = "ML8"; + reg = <0x3e00000 0x200000>; + sercomm,scpart-id = <12>; + read-only; + }; + + partition@4000000 { + label = "ML9"; + reg = <0x4000000 0x200000>; + sercomm,scpart-id = <13>; + read-only; + }; + + partition@4200000 { + label = "ML10"; + reg = <0x4200000 0x200000>; + sercomm,scpart-id = <14>; + read-only; + }; + + partition@4400000 { + label = "ML11"; + reg = <0x4400000 0x200000>; + sercomm,scpart-id = <15>; read-only; }; factory: partition@4600000 { label = "factory"; reg = <0x4600000 0x200000>; + sercomm,scpart-id = <16>; read-only; }; partition@4800000 { + label = "SC Private Data"; + reg = <0x4800000 0x200000>; + sercomm,scpart-id = <17>; + read-only; + }; + + partition@4a00000 { + label = "POT"; + reg = <0x4a00000 0x200000>; + sercomm,scpart-id = <18>; + read-only; + }; + + partition@4c00000 { + label = "Traffic Meter"; + reg = <0x4c00000 0x200000>; + sercomm,scpart-id = <19>; + read-only; + }; + + partition@4e00000 { + label = "SC PID"; + reg = <0x4e00000 0x200000>; + sercomm,scpart-id = <20>; + read-only; + }; + + partition@5000000 { + label = "SC Nvram"; + reg = <0x5000000 0x200000>; + sercomm,scpart-id = <21>; + read-only; + }; + + partition@5200000 { + label = "Ralink Nvram"; + reg = <0x5200000 0x200000>; + sercomm,scpart-id = <22>; + read-only; + }; + + partition@5400000 { + label = "reserved0"; + reg = <0x5400000 0x200000>; + sercomm,scpart-id = <23>; + read-only; + }; + + partition@5600000 { label = "reserved1"; - reg = <0x4800000 0x3800000>; + reg = <0x5600000 0x200000>; + sercomm,scpart-id = <24>; + read-only; + }; + + partition@5800000 { + label = "reserved2"; + reg = <0x5800000 0x200000>; + sercomm,scpart-id = <25>; + read-only; + }; + + partition@5a00000 { + label = "reserved3"; + reg = <0x5a00000 0x200000>; + sercomm,scpart-id = <26>; + read-only; + }; + + partition@5c00000 { + label = "reserved4"; + reg = <0x5c00000 0x200000>; + sercomm,scpart-id = <27>; + read-only; + }; + + partition@5e00000 { + label = "reserved5"; + reg = <0x5e00000 0x2180000>; + sercomm,scpart-id = <28>; read-only; }; }; diff --git a/target/linux/ramips/dts/mt7621_netgear_sercomm_chj.dtsi b/target/linux/ramips/dts/mt7621_netgear_sercomm_chj.dtsi index eaf12a891ef..cd9582e5412 100644 --- a/target/linux/ramips/dts/mt7621_netgear_sercomm_chj.dtsi +++ b/target/linux/ramips/dts/mt7621_netgear_sercomm_chj.dtsi @@ -151,47 +151,208 @@ status = "okay"; partitions { - compatible = "fixed-partitions"; + compatible = "sercomm,sc-partitions", "fixed-partitions"; #address-cells = <1>; #size-cells = <1>; partition@0 { label = "u-boot"; reg = <0x0 0x100000>; + sercomm,scpart-id = <0>; read-only; }; partition@100000 { label = "SC PART_MAP"; reg = <0x100000 0x100000>; + sercomm,scpart-id = <1>; read-only; }; partition@200000 { label = "kernel"; reg = <0x200000 0x400000>; + sercomm,scpart-id = <2>; }; partition@600000 { label = "ubi"; reg = <0x600000 0x2800000>; + sercomm,scpart-id = <3>; }; partition@2e00000 { - label = "reserved0"; - reg = <0x2e00000 0x1800000>; + label = "English UI"; + reg = <0x2e00000 0x200000>; + sercomm,scpart-id = <4>; + read-only; + }; + + partition@3000000 { + label = "ML1"; + reg = <0x3000000 0x200000>; + sercomm,scpart-id = <5>; + read-only; + }; + + partition@3200000 { + label = "ML2"; + reg = <0x3200000 0x200000>; + sercomm,scpart-id = <6>; + read-only; + }; + + partition@3400000 { + label = "ML3"; + reg = <0x3400000 0x200000>; + sercomm,scpart-id = <7>; + read-only; + }; + + partition@3600000 { + label = "ML4"; + reg = <0x3600000 0x200000>; + sercomm,scpart-id = <8>; + read-only; + }; + + partition@3800000 { + label = "ML5"; + reg = <0x3800000 0x200000>; + sercomm,scpart-id = <9>; + read-only; + }; + + partition@3a00000 { + label = "ML6"; + reg = <0x3a00000 0x200000>; + sercomm,scpart-id = <10>; + read-only; + }; + + partition@3c00000 { + label = "ML7"; + reg = <0x3c00000 0x200000>; + sercomm,scpart-id = <11>; + read-only; + }; + + partition@3e00000 { + label = "ML8"; + reg = <0x3e00000 0x200000>; + sercomm,scpart-id = <12>; + read-only; + }; + + partition@4000000 { + label = "ML9"; + reg = <0x4000000 0x200000>; + sercomm,scpart-id = <13>; + read-only; + }; + + partition@4200000 { + label = "ML10"; + reg = <0x4200000 0x200000>; + sercomm,scpart-id = <14>; + read-only; + }; + + partition@4400000 { + label = "ML11"; + reg = <0x4400000 0x200000>; + sercomm,scpart-id = <15>; read-only; }; factory: partition@4600000 { label = "factory"; reg = <0x4600000 0x200000>; + sercomm,scpart-id = <16>; read-only; }; partition@4800000 { + label = "SC Private Data"; + reg = <0x4800000 0x200000>; + sercomm,scpart-id = <17>; + read-only; + }; + + partition@4a00000 { + label = "POT"; + reg = <0x4a00000 0x200000>; + sercomm,scpart-id = <18>; + read-only; + }; + + partition@4c00000 { + label = "Traffic Meter"; + reg = <0x4c00000 0x200000>; + sercomm,scpart-id = <19>; + read-only; + }; + + partition@4e00000 { + label = "SC PID"; + reg = <0x4e00000 0x200000>; + sercomm,scpart-id = <20>; + read-only; + }; + + partition@5000000 { + label = "SC Nvram"; + reg = <0x5000000 0x200000>; + sercomm,scpart-id = <21>; + read-only; + }; + + partition@5200000 { + label = "Ralink Nvram"; + reg = <0x5200000 0x200000>; + sercomm,scpart-id = <22>; + read-only; + }; + + partition@5400000 { + label = "reserved0"; + reg = <0x5400000 0x200000>; + sercomm,scpart-id = <23>; + read-only; + }; + + partition@5600000 { label = "reserved1"; - reg = <0x4800000 0x3800000>; + reg = <0x5600000 0x200000>; + sercomm,scpart-id = <24>; + read-only; + }; + + partition@5800000 { + label = "reserved2"; + reg = <0x5800000 0x200000>; + sercomm,scpart-id = <25>; + read-only; + }; + + partition@5a00000 { + label = "reserved3"; + reg = <0x5a00000 0x200000>; + sercomm,scpart-id = <26>; + read-only; + }; + + partition@5c00000 { + label = "reserved4"; + reg = <0x5c00000 0x200000>; + sercomm,scpart-id = <27>; + read-only; + }; + + partition@5e00000 { + label = "reserved5"; + reg = <0x5e00000 0x2180000>; + sercomm,scpart-id = <28>; read-only; }; }; From ecafdfa894e73d2fd69a1e41bd089653e03fdae5 Mon Sep 17 00:00:00 2001 From: Brian Norris Date: Fri, 27 Jan 2023 12:53:32 -0800 Subject: [PATCH 15/32] kernel: modules: add lkdtm module Useful for debugging panic/error handling, crash logging, and more. Signed-off-by: Brian Norris --- package/kernel/linux/modules/other.mk | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/package/kernel/linux/modules/other.mk b/package/kernel/linux/modules/other.mk index c5f944ed319..2bd15dfe67e 100644 --- a/package/kernel/linux/modules/other.mk +++ b/package/kernel/linux/modules/other.mk @@ -243,6 +243,22 @@ endef $(eval $(call KernelPackage,gpio-f7188x)) +define KernelPackage/lkdtm + SUBMENU:=$(OTHER_MENU) + TITLE:=Linux Kernel Dump Test Tool Module + KCONFIG:=CONFIG_LKDTM + FILES:=$(LINUX_DIR)/drivers/misc/lkdtm/lkdtm.ko + AUTOLOAD:=$(call AutoProbe,lkdtm) +endef + +define KernelPackage/lkdtm/description + This module enables testing of the different dumping mechanisms by inducing + system failures at predefined crash points. +endef + +$(eval $(call KernelPackage,lkdtm)) + + define KernelPackage/pinctrl-mcp23s08 SUBMENU:=$(OTHER_MENU) TITLE:=Microchip MCP23xxx I/O expander From c6e412378ca93a6999a034af474474068aa720d8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ar=C4=B1n=C3=A7=20=C3=9CNAL?= Date: Thu, 26 Jan 2023 22:17:40 +0300 Subject: [PATCH 16/32] ramips: mt7621-dts: fix compatible string for mt7530 on TP-Link EAP615-Wall MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The correct compatible string for the multi-chip module MT7530 switch in MT7621AT, MT7621DAT and MT7621ST SoCs is mediatek,mt7621. Remove the property on TP-Link EAP615-Wall which will default to the said string. Fixes: a1b8a4d7b3ff ("ramips: support TP-Link EAP615-Wall") Link: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/devicetree/bindings/net/dsa/mediatek,mt7530.yaml Signed-off-by: Arınç ÜNAL --- target/linux/ramips/dts/mt7621_tplink_eap615-wall-v1.dts | 1 - 1 file changed, 1 deletion(-) diff --git a/target/linux/ramips/dts/mt7621_tplink_eap615-wall-v1.dts b/target/linux/ramips/dts/mt7621_tplink_eap615-wall-v1.dts index 594a9e7bb1b..36809d48ff2 100644 --- a/target/linux/ramips/dts/mt7621_tplink_eap615-wall-v1.dts +++ b/target/linux/ramips/dts/mt7621_tplink_eap615-wall-v1.dts @@ -173,7 +173,6 @@ }; &switch0 { - compatible = "mediatek,mt7530"; ports { port@1 { status = "okay"; From d9a1eee764aa8a800e2094d614bbe8e1b248b8c3 Mon Sep 17 00:00:00 2001 From: Tomasz Maciej Nowak Date: Mon, 23 Jan 2023 14:44:15 +0100 Subject: [PATCH 17/32] x86: add Barracuda Networks F12 interfaces Match interface numbers with printed numbers on device enclosure and assign first port as WAN interface. Notes Serial console is available through RJ-45 port with Cisco pinout baud: 19200, parity: none, flow control: none The device is setup with UEFI. To enter setup hold DEL or ESC key on boot. Default UEFI Administrator password is: bcndk1 For users using graphics IC it's advisable to disable display with: i915.disable_display=1 appending to kernel command line inside bootloader, to save about 0.5-0.6W energy on idle. For users not using graphics IC, disable it in UEFI, this will save about 1.5W energy on idle. Pins marked CN19 are ATX power On/Off button. Signed-off-by: Tomasz Maciej Nowak --- target/linux/x86/base-files/etc/board.d/02_network | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/target/linux/x86/base-files/etc/board.d/02_network b/target/linux/x86/base-files/etc/board.d/02_network index 5befba0a62d..094a45f9148 100644 --- a/target/linux/x86/base-files/etc/board.d/02_network +++ b/target/linux/x86/base-files/etc/board.d/02_network @@ -8,6 +8,14 @@ board_config_update case "$(board_name)" in +barracuda-networks-inc-barracuda-ng-firewall-f12) + ucidef_set_network_device_path "eth1" "pci0000:00/0000:00:14.0/0000:01:00.0" + ucidef_set_network_device_path "eth2" "pci0000:00/0000:00:14.1/0000:02:00.0" + ucidef_set_network_device_path "eth3" "pci0000:00/0000:00:13.0/0000:03:00.0" + ucidef_set_network_device_path "eth4" "pci0000:00/0000:00:13.1/0000:04:00.0" + ucidef_set_network_device_path "eth5" "pci0000:00/0000:00:13.2/0000:05:00.0" + ucidef_set_interfaces_lan_wan "eth2 eth3 eth4 eth5" "eth1" + ;; cisco-mx100-hw) ucidef_set_network_device_path "mgmt" "pci0000:00/0000:00:01.2/0000:03:00.3" ucidef_set_network_device_path "wan" "pci0000:00/0000:00:01.2/0000:03:00.2" From 3cd882744d8ee347e7b55f113a95f93cfe7175cd Mon Sep 17 00:00:00 2001 From: Brian Norris Date: Tue, 20 Dec 2022 22:21:46 -0800 Subject: [PATCH 18/32] base-files: upgrade: Fix export_partdevice() quoting $BOOTDEV_MAJOR may be empty for many of the uevents parsed in this function. This condition thus tends to fail benignly (we just skip to the next device), but it can really clutter the stage2 sysupgrade stderr, since it looks like the "=" operand doesn't have an appropriate left-hand argument. Signed-off-by: Brian Norris --- package/base-files/files/lib/upgrade/common.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package/base-files/files/lib/upgrade/common.sh b/package/base-files/files/lib/upgrade/common.sh index 53b8865a578..af1182cb16a 100644 --- a/package/base-files/files/lib/upgrade/common.sh +++ b/package/base-files/files/lib/upgrade/common.sh @@ -232,7 +232,7 @@ export_partdevice() { while read line; do export -n "$line" done < "$uevent" - if [ $BOOTDEV_MAJOR = $MAJOR -a $(($BOOTDEV_MINOR + $offset)) = $MINOR -a -b "/dev/$DEVNAME" ]; then + if [ "$BOOTDEV_MAJOR" = "$MAJOR" -a $(($BOOTDEV_MINOR + $offset)) = "$MINOR" -a -b "/dev/$DEVNAME" ]; then export "$var=$DEVNAME" return 0 fi From 5155200f97adaeaaac7b752b5a6a5e41cba3db6a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ar=C4=B1n=C3=A7=20=C3=9CNAL?= Date: Tue, 29 Nov 2022 00:33:37 +0300 Subject: [PATCH 19/32] ramips: mt7621-dts: fix phy-mode of external phy on GB-PC2 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The phy-mode property must be defined on the MAC instead of the PHY. Define phy-mode under gmac1 which the external phy is connected to. Tested-by: Petr Louda Signed-off-by: Arınç ÜNAL --- target/linux/ramips/dts/mt7621_gnubee_gb-pc2.dts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/target/linux/ramips/dts/mt7621_gnubee_gb-pc2.dts b/target/linux/ramips/dts/mt7621_gnubee_gb-pc2.dts index 6199511cff8..c18f1025022 100644 --- a/target/linux/ramips/dts/mt7621_gnubee_gb-pc2.dts +++ b/target/linux/ramips/dts/mt7621_gnubee_gb-pc2.dts @@ -118,6 +118,7 @@ &gmac1 { status = "okay"; label = "ethyellow"; + phy-mode = "rgmii-rxid"; phy-handle = <ðphy5>; nvmem-cells = <&macaddr_factory_e000>; @@ -127,7 +128,6 @@ &mdio { ethphy5: ethernet-phy@5 { reg = <5>; - phy-mode = "rgmii-rxid"; }; }; From f56d5932d24f9d2d339088011ffaa5c3e8340e0f Mon Sep 17 00:00:00 2001 From: Andre Heider Date: Sun, 13 Nov 2022 07:06:27 +0100 Subject: [PATCH 20/32] scripts: qemustart: support CONFIG_BINARY_FOLDER If CONFIG_BINARY_FOLDER is set in .config, use that instead of "bin" as the bindir. That allows to set that config and easily run e.g. `./scripts/qemustart armvirt 32`. Signed-off-by: Andre Heider --- scripts/qemustart | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/scripts/qemustart b/scripts/qemustart index f0ddefb8399..764b0e65afa 100755 --- a/scripts/qemustart +++ b/scripts/qemustart @@ -158,7 +158,8 @@ parse_args() { return 1 } [ -n "$o_subtarget" ] || o_subtarget="generic" - o_bindir="bin/targets/$o_target/$o_subtarget" + eval "$(grep ^CONFIG_BINARY_FOLDER= .config 2>/dev/null)" + o_bindir="${CONFIG_BINARY_FOLDER:-bin}/targets/$o_target/$o_subtarget" } start_qemu_armvirt() { From 21242451c265f3b2fb47e710a5fabc74dc59efce Mon Sep 17 00:00:00 2001 From: Andre Heider Date: Mon, 30 Jan 2023 18:37:39 +0100 Subject: [PATCH 21/32] scripts: size_compare: fix support for CONFIG_BINARY_FOLDER There is no CONFIG_BINARY_DIR, it's CONFIG_BINARY_FOLDER. While at it, don't parse the shell compatible .config, eval it. Signed-off-by: Andre Heider --- scripts/size_compare.sh | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/scripts/size_compare.sh b/scripts/size_compare.sh index a5cc3337c74..617004e72bb 100755 --- a/scripts/size_compare.sh +++ b/scripts/size_compare.sh @@ -21,17 +21,20 @@ ### -p --package-size Check IPK package size and not installed size ### -h --help This message -CONFIG_TARGET=$(sed -n 's/^CONFIG_TARGET_BOARD="\(.*\)"$/\1/p' .config) -CONFIG_SUBTARGET=$(sed -n 's/^CONFIG_TARGET_SUBTARGET="\(.*\)"$/\1/p' .config) -CONFIG_ARCH=$(sed -n 's/^CONFIG_TARGET_ARCH_PACKAGES="\(.*\)"$/\1/p' .config) +eval "$(grep \ + -e ^CONFIG_TARGET_BOARD= \ + -e ^CONFIG_TARGET_SUBTARGET= \ + -e ^CONFIG_TARGET_ARCH_PACKAGES= \ + -e ^CONFIG_BINARY_FOLDER= \ + .config 2>/dev/null \ +)" CONFIG_PACKAGES=$(sed -n 's/^CONFIG_PACKAGE_\(.*\)=y$/\1/p' .config | tr '\n' ' ') -CONFIG_BIN_DIR=$(sed -n 's/^CONFIG_BINARY_DIR="\(.*\)"$/\1/p' .config) -TARGET=${TARGET:-$CONFIG_TARGET} -SUBTARGET=${SUBTARGET:-$CONFIG_SUBTARGET} -ARCH=${ARCH:-$CONFIG_ARCH} +TARGET=${TARGET:-$CONFIG_TARGET_BOARD} +SUBTARGET=${SUBTARGET:-$CONFIG_TARGET_SUBTARGET} +ARCH=${ARCH:-$CONFIG_TARGET_ARCH_PACKAGES} PACKAGES=${PACKAGES:-$CONFIG_PACKAGES} -BIN_DIR=${CONFIG_BIN_DIR:-./bin} +BIN_DIR=${CONFIG_BINARY_FOLDER:-./bin} BASE_URL="${BASE_URL:-https://downloads.openwrt.org/snapshots}" CHECK_INSTALLED="${CHECK_INSTALLED:-y}" From 19988b66d07f44be757c4a0e41be899dbf8c72dd Mon Sep 17 00:00:00 2001 From: Andre Heider Date: Tue, 31 Jan 2023 15:58:08 +0100 Subject: [PATCH 22/32] scripts: size_compare: print a grand total Usefull to check the impact of treewide changes: Change Local Remote Package +281 6191 5910 ubus -547 56166 56713 procd -13294 91544 104838 ubi-utils ~~~~~~~ total change -13560 Signed-off-by: Andre Heider --- scripts/size_compare.sh | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/scripts/size_compare.sh b/scripts/size_compare.sh index 617004e72bb..8417d25ff26 100755 --- a/scripts/size_compare.sh +++ b/scripts/size_compare.sh @@ -75,6 +75,7 @@ package_size () { } compare_sizes () { + TOTAL_DIFF="0" for PACKAGE in $PACKAGES; do if [ "$PACKAGE" = "libc" ]; then continue @@ -92,7 +93,8 @@ compare_sizes () { SIZE_LOCAL=$(tar tzvf "$PACKAGE_FILE" ./data.tar.gz | awk '{ print $3 }') fi SIZE_UPSTREAM=$(package_size "$TMP_INDEX" "$PACKAGE") - SIZE_DIFF="$((SIZE_LOCAL-SIZE_UPSTREAM))" + SIZE_DIFF="$((SIZE_LOCAL - SIZE_UPSTREAM))" + TOTAL_DIFF="$((TOTAL_DIFF + SIZE_DIFF))" if [ "$SIZE_DIFF" -gt 0 ]; then SIZE_DIFF="+$SIZE_DIFF" fi @@ -102,6 +104,7 @@ compare_sizes () { echo "$PACKAGE is missing upstream" fi done + echo "~~~~~~~ total change ${TOTAL_DIFF}" } if [ "$1" = "-h" ]; then From 2630e5063df0240eb0d05cd6e953b2bd412e3215 Mon Sep 17 00:00:00 2001 From: Rosen Penev Date: Tue, 27 Dec 2022 20:44:11 -0800 Subject: [PATCH 23/32] treewide: replace wpad-basic-wolfssl default The newly merged mbedtls backend is smaller and has fewer ABI related issues than the wolfSSL one. Signed-off-by: Rosen Penev --- target/linux/apm821xx/image/sata.mk | 2 +- target/linux/apm821xx/nand/target.mk | 2 +- .../apm821xx/sata/profiles/00-default.mk | 2 +- .../archs38/generic/profiles/00-default.mk | 2 +- target/linux/ath25/Makefile | 2 +- target/linux/ath79/generic/target.mk | 2 +- target/linux/ath79/image/generic-ubnt.mk | 2 +- target/linux/ath79/image/generic.mk | 10 ++--- target/linux/ath79/mikrotik/target.mk | 2 +- target/linux/ath79/nand/target.mk | 2 +- target/linux/ath79/tiny/target.mk | 2 +- target/linux/bcm27xx/image/Makefile | 8 ++-- .../generic/profiles/101-Broadcom-wl.mk | 2 +- .../generic/profiles/105-Broadcom-none.mk | 2 +- .../generic/profiles/201-Broadcom-b44-wl.mk | 2 +- .../generic/profiles/205-Broadcom-b44-none.mk | 2 +- .../generic/profiles/211-Broadcom-tg3-wl.mk | 2 +- .../generic/profiles/215-Broadcom-tg3-none.mk | 2 +- .../generic/profiles/221-Broadcom-bgmac-wl.mk | 2 +- .../profiles/225-Broadcom-bgmac-none.mk | 2 +- .../bcm47xx/generic/profiles/PS-1208MFG.mk | 2 +- target/linux/bcm47xx/generic/target.mk | 2 +- .../legacy/profiles/101-Broadcom-wl.mk | 2 +- target/linux/bcm47xx/legacy/target.mk | 2 +- .../mips74k/profiles/102-Broadcom-wl.mk | 2 +- .../mips74k/profiles/103-Broadcom-none.mk | 2 +- target/linux/bcm47xx/mips74k/target.mk | 2 +- target/linux/bcm53xx/image/Makefile | 2 +- target/linux/bcm63xx/image/Makefile | 10 ++--- target/linux/bcm63xx/profiles/default.mk | 2 +- target/linux/bmips/image/Makefile | 4 +- target/linux/ipq40xx/Makefile | 2 +- target/linux/ipq806x/Makefile | 2 +- target/linux/ipq807x/Makefile | 2 +- target/linux/kirkwood/image/Makefile | 6 +-- target/linux/lantiq/image/ar9.mk | 18 ++++---- target/linux/lantiq/image/danube.mk | 24 +++++----- target/linux/lantiq/image/tp-link.mk | 8 ++-- target/linux/lantiq/image/vr9.mk | 34 +++++++------- target/linux/lantiq/image/xway_legacy.mk | 10 ++--- target/linux/malta/Makefile | 2 +- target/linux/mediatek/filogic/target.mk | 2 +- target/linux/mediatek/mt7622/target.mk | 2 +- target/linux/mpc85xx/Makefile | 2 +- target/linux/mvebu/image/cortexa9.mk | 4 +- target/linux/omap/profiles/00-default.mk | 2 +- target/linux/oxnas/image/ox820.mk | 2 +- target/linux/ramips/image/mt7620.mk | 2 +- target/linux/ramips/image/mt7621.mk | 44 +++++++++---------- target/linux/ramips/mt7620/target.mk | 2 +- target/linux/ramips/mt7621/target.mk | 2 +- target/linux/ramips/mt76x8/target.mk | 2 +- target/linux/ramips/rt288x/target.mk | 2 +- target/linux/ramips/rt305x/target.mk | 2 +- target/linux/ramips/rt3883/target.mk | 2 +- target/linux/sunxi/image/cortexa7.mk | 14 +++--- target/linux/sunxi/profiles/00-default.mk | 2 +- target/linux/tegra/image/Makefile | 2 +- target/linux/uml/Makefile | 2 +- 59 files changed, 143 insertions(+), 143 deletions(-) diff --git a/target/linux/apm821xx/image/sata.mk b/target/linux/apm821xx/image/sata.mk index 40bd2807c99..89af488e097 100644 --- a/target/linux/apm821xx/image/sata.mk +++ b/target/linux/apm821xx/image/sata.mk @@ -8,7 +8,7 @@ define Device/wd_mybooklive DEVICE_MODEL := My Book Live DEVICE_ALT0_VENDOR := Western Digital DEVICE_ALT0_MODEL := My Book Live Duo - DEVICE_PACKAGES := kmod-usb-dwc2 kmod-usb-ledtrig-usbport kmod-usb-storage kmod-fs-vfat wpad-basic-wolfssl + DEVICE_PACKAGES := kmod-usb-dwc2 kmod-usb-ledtrig-usbport kmod-usb-storage kmod-fs-vfat wpad-basic-mbedtls SUPPORTED_DEVICES += mbl wd,mybooklive-duo BLOCKSIZE := 1k DTB_SIZE := 16384 diff --git a/target/linux/apm821xx/nand/target.mk b/target/linux/apm821xx/nand/target.mk index 208ea10b91e..0cba949fa06 100644 --- a/target/linux/apm821xx/nand/target.mk +++ b/target/linux/apm821xx/nand/target.mk @@ -1,7 +1,7 @@ BOARDNAME:=Devices with NAND flash (Routers) FEATURES += nand pcie -DEFAULT_PACKAGES += kmod-ath9k swconfig wpad-basic-wolfssl +DEFAULT_PACKAGES += kmod-ath9k swconfig wpad-basic-mbedtls define Target/Description Build firmware images for APM821XX boards with NAND flash. diff --git a/target/linux/apm821xx/sata/profiles/00-default.mk b/target/linux/apm821xx/sata/profiles/00-default.mk index a203821533b..082068fe365 100644 --- a/target/linux/apm821xx/sata/profiles/00-default.mk +++ b/target/linux/apm821xx/sata/profiles/00-default.mk @@ -5,7 +5,7 @@ define Profile/Default NAME:=Default Profile PRIORITY:=1 - PACKAGES := kmod-usb-dwc2 kmod-usb-ledtrig-usbport kmod-usb-storage kmod-fs-vfat wpad-basic-wolfssl + PACKAGES := kmod-usb-dwc2 kmod-usb-ledtrig-usbport kmod-usb-storage kmod-fs-vfat wpad-basic-mbedtls endef define Profile/Default/Description diff --git a/target/linux/archs38/generic/profiles/00-default.mk b/target/linux/archs38/generic/profiles/00-default.mk index 38da896fa6c..ae3292e5b92 100644 --- a/target/linux/archs38/generic/profiles/00-default.mk +++ b/target/linux/archs38/generic/profiles/00-default.mk @@ -4,7 +4,7 @@ define Profile/Default NAME:=Default Profile (all drivers) - PACKAGES:= kmod-usb2 kmod-ath9k-htc wpad-basic-wolfssl + PACKAGES:= kmod-usb2 kmod-ath9k-htc wpad-basic-mbedtls endef define Profile/Default/Description diff --git a/target/linux/ath25/Makefile b/target/linux/ath25/Makefile index debb0a324b3..76dd346628d 100644 --- a/target/linux/ath25/Makefile +++ b/target/linux/ath25/Makefile @@ -19,6 +19,6 @@ endef include $(INCLUDE_DIR)/target.mk -DEFAULT_PACKAGES += wpad-basic-wolfssl kmod-ath5k swconfig kmod-gpio-button-hotplug +DEFAULT_PACKAGES += wpad-basic-mbedtls kmod-ath5k swconfig kmod-gpio-button-hotplug $(eval $(call BuildTarget)) diff --git a/target/linux/ath79/generic/target.mk b/target/linux/ath79/generic/target.mk index 4e53c892605..27c3365a296 100644 --- a/target/linux/ath79/generic/target.mk +++ b/target/linux/ath79/generic/target.mk @@ -1,6 +1,6 @@ BOARDNAME:=Generic -DEFAULT_PACKAGES += wpad-basic-wolfssl +DEFAULT_PACKAGES += wpad-basic-mbedtls define Target/Description Build firmware images for generic Atheros AR71xx/AR913x/AR934x based boards. diff --git a/target/linux/ath79/image/generic-ubnt.mk b/target/linux/ath79/image/generic-ubnt.mk index 8eeaa8de3e4..0f70649d031 100644 --- a/target/linux/ath79/image/generic-ubnt.mk +++ b/target/linux/ath79/image/generic-ubnt.mk @@ -168,7 +168,7 @@ endef TARGET_DEVICES += ubnt_rocket-5ac-lite define Device/ubnt_routerstation_common - DEVICE_PACKAGES := -kmod-ath9k -wpad-basic-wolfssl -uboot-envtools kmod-usb-ohci \ + DEVICE_PACKAGES := -kmod-ath9k -wpad-basic-mbedtls -uboot-envtools kmod-usb-ohci \ kmod-usb2 fconfig DEVICE_VENDOR := Ubiquiti SOC := ar7161 diff --git a/target/linux/ath79/image/generic.mk b/target/linux/ath79/image/generic.mk index 0837d37a307..d12fa7226e6 100644 --- a/target/linux/ath79/image/generic.mk +++ b/target/linux/ath79/image/generic.mk @@ -1477,7 +1477,7 @@ define Device/hak5_lan-turtle TPLINK_HWID := 0x5348334c IMAGES := sysupgrade.bin DEVICE_PACKAGES := kmod-usb-chipidea2 -iwinfo -kmod-ath9k -swconfig \ - -uboot-envtools -wpad-basic-wolfssl + -uboot-envtools -wpad-basic-mbedtls SUPPORTED_DEVICES += lan-turtle endef TARGET_DEVICES += hak5_lan-turtle @@ -1490,7 +1490,7 @@ define Device/hak5_packet-squirrel TPLINK_HWID := 0x5351524c IMAGES := sysupgrade.bin DEVICE_PACKAGES := kmod-usb-chipidea2 -iwinfo -kmod-ath9k -swconfig \ - -uboot-envtools -wpad-basic-wolfssl + -uboot-envtools -wpad-basic-mbedtls SUPPORTED_DEVICES += packet-squirrel endef TARGET_DEVICES += hak5_packet-squirrel @@ -1525,7 +1525,7 @@ define Device/iodata_etg3-r DEVICE_VENDOR := I-O DATA DEVICE_MODEL := ETG3-R IMAGE_SIZE := 7680k - DEVICE_PACKAGES := -iwinfo -kmod-ath9k -wpad-basic-wolfssl + DEVICE_PACKAGES := -iwinfo -kmod-ath9k -wpad-basic-mbedtls endef TARGET_DEVICES += iodata_etg3-r @@ -1585,7 +1585,7 @@ define Device/jjplus_ja76pf2 SOC := ar7161 DEVICE_VENDOR := jjPlus DEVICE_MODEL := JA76PF2 - DEVICE_PACKAGES += -kmod-ath9k -swconfig -wpad-basic-wolfssl -uboot-envtools fconfig kmod-hwmon-lm75 + DEVICE_PACKAGES += -kmod-ath9k -swconfig -wpad-basic-mbedtls -uboot-envtools fconfig kmod-hwmon-lm75 LOADER_TYPE := bin LOADER_FLASH_OFFS := 0x60000 COMPILE := loader-$(1).bin @@ -2652,7 +2652,7 @@ define Device/teltonika_rut300 DEVICE_VENDOR := Teltonika DEVICE_MODEL := RUT300 SUPPORTED_TELTONIKA_DEVICES := teltonika,rut30x - DEVICE_PACKAGES := -kmod-ath9k -uboot-envtools -wpad-basic-wolfssl kmod-usb2 + DEVICE_PACKAGES := -kmod-ath9k -uboot-envtools -wpad-basic-mbedtls kmod-usb2 IMAGE_SIZE := 15552k IMAGES += factory.bin IMAGE/factory.bin = append-kernel | pad-to $$$$(BLOCKSIZE) | \ diff --git a/target/linux/ath79/mikrotik/target.mk b/target/linux/ath79/mikrotik/target.mk index f5df9044875..bfc8cceac61 100644 --- a/target/linux/ath79/mikrotik/target.mk +++ b/target/linux/ath79/mikrotik/target.mk @@ -3,7 +3,7 @@ FEATURES += minor nand KERNELNAME := vmlinux vmlinuz IMAGES_DIR := ../../.. -DEFAULT_PACKAGES += wpad-basic-wolfssl +DEFAULT_PACKAGES += wpad-basic-mbedtls define Target/Description Build firmware images for MikroTik devices based on Qualcomm Atheros diff --git a/target/linux/ath79/nand/target.mk b/target/linux/ath79/nand/target.mk index 7ea9b57f45d..e0900abfe45 100644 --- a/target/linux/ath79/nand/target.mk +++ b/target/linux/ath79/nand/target.mk @@ -2,7 +2,7 @@ BOARDNAME := Generic devices with NAND flash FEATURES += nand -DEFAULT_PACKAGES += wpad-basic-wolfssl +DEFAULT_PACKAGES += wpad-basic-mbedtls define Target/Description Firmware for boards using Qualcomm Atheros, MIPS-based SoCs diff --git a/target/linux/ath79/tiny/target.mk b/target/linux/ath79/tiny/target.mk index 28e02f7a674..fef82fdd7ff 100644 --- a/target/linux/ath79/tiny/target.mk +++ b/target/linux/ath79/tiny/target.mk @@ -1,7 +1,7 @@ BOARDNAME:=Devices with small flash FEATURES += low_mem small_flash -DEFAULT_PACKAGES += wpad-basic-wolfssl +DEFAULT_PACKAGES += wpad-basic-mbedtls define Target/Description Build firmware images for Atheros AR71xx/AR913x/AR934x based boards with small flash diff --git a/target/linux/bcm27xx/image/Makefile b/target/linux/bcm27xx/image/Makefile index 999361e8cde..ad79ac7d0cb 100644 --- a/target/linux/bcm27xx/image/Makefile +++ b/target/linux/bcm27xx/image/Makefile @@ -77,7 +77,7 @@ define Device/rpi DEVICE_PACKAGES := \ cypress-firmware-43430-sdio \ brcmfmac-nvram-43430-sdio \ - kmod-brcmfmac wpad-basic-wolfssl + kmod-brcmfmac wpad-basic-mbedtls endef ifeq ($(SUBTARGET),bcm2708) TARGET_DEVICES += rpi @@ -110,7 +110,7 @@ define Device/rpi-2 brcmfmac-nvram-43430-sdio \ cypress-firmware-43455-sdio \ brcmfmac-nvram-43455-sdio \ - kmod-brcmfmac wpad-basic-wolfssl + kmod-brcmfmac wpad-basic-mbedtls IMAGE/sysupgrade.img.gz := boot-common | boot-2708 | boot-2711 | sdcard-img | gzip | append-metadata IMAGE/factory.img.gz := boot-common | boot-2708 | boot-2711 | sdcard-img | gzip endef @@ -141,7 +141,7 @@ define Device/rpi-3 brcmfmac-nvram-43430-sdio \ cypress-firmware-43455-sdio \ brcmfmac-nvram-43455-sdio \ - kmod-brcmfmac wpad-basic-wolfssl + kmod-brcmfmac wpad-basic-mbedtls endef ifeq ($(SUBTARGET),bcm2710) TARGET_DEVICES += rpi-3 @@ -162,7 +162,7 @@ define Device/rpi-4 DEVICE_PACKAGES := \ cypress-firmware-43455-sdio \ brcmfmac-nvram-43455-sdio \ - kmod-brcmfmac wpad-basic-wolfssl \ + kmod-brcmfmac wpad-basic-mbedtls \ kmod-usb-net-lan78xx \ kmod-r8169 IMAGE/sysupgrade.img.gz := boot-common | boot-2711 | sdcard-img | gzip | append-metadata diff --git a/target/linux/bcm47xx/generic/profiles/101-Broadcom-wl.mk b/target/linux/bcm47xx/generic/profiles/101-Broadcom-wl.mk index 498bc7bfda7..5bd3cd5031b 100644 --- a/target/linux/bcm47xx/generic/profiles/101-Broadcom-wl.mk +++ b/target/linux/bcm47xx/generic/profiles/101-Broadcom-wl.mk @@ -4,7 +4,7 @@ define Profile/Broadcom-wl NAME:=Broadcom SoC, all Ethernet, BCM43xx WiFi (wl, proprietary) - PACKAGES:=-wpad-basic-wolfssl kmod-b44 kmod-tg3 kmod-bgmac kmod-brcm-wl wlc nas + PACKAGES:=-wpad-basic-mbedtls kmod-b44 kmod-tg3 kmod-bgmac kmod-brcm-wl wlc nas endef define Profile/Broadcom-wl/Description diff --git a/target/linux/bcm47xx/generic/profiles/105-Broadcom-none.mk b/target/linux/bcm47xx/generic/profiles/105-Broadcom-none.mk index 0b883825d0f..b90ee8c329e 100644 --- a/target/linux/bcm47xx/generic/profiles/105-Broadcom-none.mk +++ b/target/linux/bcm47xx/generic/profiles/105-Broadcom-none.mk @@ -4,7 +4,7 @@ define Profile/Broadcom-none NAME:=Broadcom SoC, all Ethernet, No WiFi - PACKAGES:=-wpad-basic-wolfssl kmod-b44 kmod-tg3 kmod-bgmac + PACKAGES:=-wpad-basic-mbedtls kmod-b44 kmod-tg3 kmod-bgmac endef define Profile/Broadcom-none/Description diff --git a/target/linux/bcm47xx/generic/profiles/201-Broadcom-b44-wl.mk b/target/linux/bcm47xx/generic/profiles/201-Broadcom-b44-wl.mk index 5d55398dfc9..8ae8e15ee56 100644 --- a/target/linux/bcm47xx/generic/profiles/201-Broadcom-b44-wl.mk +++ b/target/linux/bcm47xx/generic/profiles/201-Broadcom-b44-wl.mk @@ -4,7 +4,7 @@ define Profile/Broadcom-b44-wl NAME:=Broadcom SoC, b44 Ethernet, BCM43xx WiFi (wl, proprietary) - PACKAGES:=-wpad-basic-wolfssl kmod-b44 kmod-brcm-wl wlc nas + PACKAGES:=-wpad-basic-mbedtls kmod-b44 kmod-brcm-wl wlc nas endef define Profile/Broadcom-b44-wl/Description diff --git a/target/linux/bcm47xx/generic/profiles/205-Broadcom-b44-none.mk b/target/linux/bcm47xx/generic/profiles/205-Broadcom-b44-none.mk index 79a223a3161..6ae1767510b 100644 --- a/target/linux/bcm47xx/generic/profiles/205-Broadcom-b44-none.mk +++ b/target/linux/bcm47xx/generic/profiles/205-Broadcom-b44-none.mk @@ -4,7 +4,7 @@ define Profile/Broadcom-b44-none NAME:=Broadcom SoC, b44 Ethernet, No WiFi - PACKAGES:=-wpad-basic-wolfssl kmod-b44 + PACKAGES:=-wpad-basic-mbedtls kmod-b44 endef define Profile/Broadcom-b44-none/Description diff --git a/target/linux/bcm47xx/generic/profiles/211-Broadcom-tg3-wl.mk b/target/linux/bcm47xx/generic/profiles/211-Broadcom-tg3-wl.mk index f594027662c..605c295d5e5 100644 --- a/target/linux/bcm47xx/generic/profiles/211-Broadcom-tg3-wl.mk +++ b/target/linux/bcm47xx/generic/profiles/211-Broadcom-tg3-wl.mk @@ -4,7 +4,7 @@ define Profile/Broadcom-tg3-wl NAME:=Broadcom SoC, tg3 Ethernet, BCM43xx WiFi (wl, proprietary) - PACKAGES:=-wpad-basic-wolfssl kmod-brcm-wl wlc nas kmod-tg3 + PACKAGES:=-wpad-basic-mbedtls kmod-brcm-wl wlc nas kmod-tg3 endef define Profile/Broadcom-tg3-wl/Description diff --git a/target/linux/bcm47xx/generic/profiles/215-Broadcom-tg3-none.mk b/target/linux/bcm47xx/generic/profiles/215-Broadcom-tg3-none.mk index a75e49cb055..3b66edd4b81 100644 --- a/target/linux/bcm47xx/generic/profiles/215-Broadcom-tg3-none.mk +++ b/target/linux/bcm47xx/generic/profiles/215-Broadcom-tg3-none.mk @@ -4,7 +4,7 @@ define Profile/Broadcom-tg3-none NAME:=Broadcom SoC, tg3 Ethernet, no WiFi - PACKAGES:=-wpad-basic-wolfssl kmod-tg3 + PACKAGES:=-wpad-basic-mbedtls kmod-tg3 endef define Profile/Broadcom-tg3-none/Description diff --git a/target/linux/bcm47xx/generic/profiles/221-Broadcom-bgmac-wl.mk b/target/linux/bcm47xx/generic/profiles/221-Broadcom-bgmac-wl.mk index b426b99d37a..264fed8a81a 100644 --- a/target/linux/bcm47xx/generic/profiles/221-Broadcom-bgmac-wl.mk +++ b/target/linux/bcm47xx/generic/profiles/221-Broadcom-bgmac-wl.mk @@ -4,7 +4,7 @@ define Profile/Broadcom-bgmac-wl NAME:=Broadcom SoC, bgmac Ethernet, BCM43xx WiFi (wl, proprietary) - PACKAGES:=-wpad-basic-wolfssl kmod-bgmac kmod-brcm-wl wlc nas + PACKAGES:=-wpad-basic-mbedtls kmod-bgmac kmod-brcm-wl wlc nas endef define Profile/Broadcom-bgmac-wl/Description diff --git a/target/linux/bcm47xx/generic/profiles/225-Broadcom-bgmac-none.mk b/target/linux/bcm47xx/generic/profiles/225-Broadcom-bgmac-none.mk index 8ce675543e4..67cb64e6419 100644 --- a/target/linux/bcm47xx/generic/profiles/225-Broadcom-bgmac-none.mk +++ b/target/linux/bcm47xx/generic/profiles/225-Broadcom-bgmac-none.mk @@ -4,7 +4,7 @@ define Profile/Broadcom-bgmac-none NAME:=Broadcom SoC, bgmac Ethernet, No WiFi - PACKAGES:=-wpad-basic-wolfssl kmod-bgmac + PACKAGES:=-wpad-basic-mbedtls kmod-bgmac endef define Profile/Broadcom-bgmac-none/Description diff --git a/target/linux/bcm47xx/generic/profiles/PS-1208MFG.mk b/target/linux/bcm47xx/generic/profiles/PS-1208MFG.mk index 88b417840a7..cc0136a8380 100644 --- a/target/linux/bcm47xx/generic/profiles/PS-1208MFG.mk +++ b/target/linux/bcm47xx/generic/profiles/PS-1208MFG.mk @@ -4,7 +4,7 @@ define Profile/Ps1208mfg NAME:=Edimax PS-1208MFG - PACKAGES:=-firewall -dropbear -dnsmasq -mtd -ppp -wpad-basic-wolfssl kmod-b44 block-mount kmod-usb-storage kmod-usb2 kmod-usb-ohci -iptables -swconfig kmod-fs-ext4 + PACKAGES:=-firewall -dropbear -dnsmasq -mtd -ppp -wpad-basic-mbedtls kmod-b44 block-mount kmod-usb-storage kmod-usb2 kmod-usb-ohci -iptables -swconfig kmod-fs-ext4 endef define Profile/Ps1208mfg/Description diff --git a/target/linux/bcm47xx/generic/target.mk b/target/linux/bcm47xx/generic/target.mk index 70397de3989..3edeef2a518 100644 --- a/target/linux/bcm47xx/generic/target.mk +++ b/target/linux/bcm47xx/generic/target.mk @@ -1,7 +1,7 @@ BOARDNAME:=Generic FEATURES+=pcmcia -DEFAULT_PACKAGES += wpad-basic-wolfssl +DEFAULT_PACKAGES += wpad-basic-mbedtls define Target/Description Build generic firmware for all Broadcom BCM47xx and BCM53xx MIPS diff --git a/target/linux/bcm47xx/legacy/profiles/101-Broadcom-wl.mk b/target/linux/bcm47xx/legacy/profiles/101-Broadcom-wl.mk index a4c58f63345..0d989815200 100644 --- a/target/linux/bcm47xx/legacy/profiles/101-Broadcom-wl.mk +++ b/target/linux/bcm47xx/legacy/profiles/101-Broadcom-wl.mk @@ -4,7 +4,7 @@ define Profile/Broadcom-wl NAME:=Broadcom SoC, all Ethernet, BCM43xx WiFi (wl, proprietary) - PACKAGES:=-wpad-basic-wolfssl kmod-brcm-wl-mini wlc nas + PACKAGES:=-wpad-basic-mbedtls kmod-brcm-wl-mini wlc nas endef define Profile/Broadcom-wl/Description diff --git a/target/linux/bcm47xx/legacy/target.mk b/target/linux/bcm47xx/legacy/target.mk index e3586a8add7..ac89d798adc 100644 --- a/target/linux/bcm47xx/legacy/target.mk +++ b/target/linux/bcm47xx/legacy/target.mk @@ -1,7 +1,7 @@ FEATURES += low_mem pcmcia small_flash BOARDNAME:=Legacy (BMIPS3300) -DEFAULT_PACKAGES += wpad-basic-wolfssl +DEFAULT_PACKAGES += wpad-basic-mbedtls define Target/Description Build firmware for Broadcom BCM47xx and BCM53xx devices with diff --git a/target/linux/bcm47xx/mips74k/profiles/102-Broadcom-wl.mk b/target/linux/bcm47xx/mips74k/profiles/102-Broadcom-wl.mk index 66a44dc0fbb..0b0e7067701 100644 --- a/target/linux/bcm47xx/mips74k/profiles/102-Broadcom-wl.mk +++ b/target/linux/bcm47xx/mips74k/profiles/102-Broadcom-wl.mk @@ -4,7 +4,7 @@ define Profile/Broadcom-mips74k-wl NAME:=Broadcom SoC, BCM43xx WiFi (proprietary wl) - PACKAGES:=-wpad-basic-wolfssl kmod-brcm-wl wlc nas + PACKAGES:=-wpad-basic-mbedtls kmod-brcm-wl wlc nas endef define Profile/Broadcom-mips74k-wl/Description diff --git a/target/linux/bcm47xx/mips74k/profiles/103-Broadcom-none.mk b/target/linux/bcm47xx/mips74k/profiles/103-Broadcom-none.mk index d5e3f57fcdf..d225e2fc70c 100644 --- a/target/linux/bcm47xx/mips74k/profiles/103-Broadcom-none.mk +++ b/target/linux/bcm47xx/mips74k/profiles/103-Broadcom-none.mk @@ -4,7 +4,7 @@ define Profile/Broadcom-mips74k-none NAME:=Broadcom SoC, No WiFi - PACKAGES:=-wpad-basic-wolfssl + PACKAGES:=-wpad-basic-mbedtls endef define Profile/Broadcom-mips74k-none/Description diff --git a/target/linux/bcm47xx/mips74k/target.mk b/target/linux/bcm47xx/mips74k/target.mk index ee20982e542..e982b15b0cb 100644 --- a/target/linux/bcm47xx/mips74k/target.mk +++ b/target/linux/bcm47xx/mips74k/target.mk @@ -1,7 +1,7 @@ BOARDNAME:=MIPS 74K CPU_TYPE:=74kc -DEFAULT_PACKAGES += wpad-basic-wolfssl +DEFAULT_PACKAGES += wpad-basic-mbedtls define Target/Description Build firmware for Broadcom BCM47xx and BCM53xx devices with diff --git a/target/linux/bcm53xx/image/Makefile b/target/linux/bcm53xx/image/Makefile index ed0b755364f..ed2e9c68212 100644 --- a/target/linux/bcm53xx/image/Makefile +++ b/target/linux/bcm53xx/image/Makefile @@ -111,7 +111,7 @@ DEVICE_VARS += SIGNATURE DEVICE_VARS += NETGEAR_BOARD_ID NETGEAR_REGION TPLINK_BOARD DEVICE_VARS += LUXUL_BOARD -IEEE8021X := wpad-basic-wolfssl +IEEE8021X := wpad-basic-mbedtls B43 := $(IEEE8021X) kmod-b43 BRCMFMAC_43602A1 := $(IEEE8021X) kmod-brcmfmac brcmfmac-firmware-43602a1-pcie BRCMFMAC_4366B1 := $(IEEE8021X) kmod-brcmfmac brcmfmac-firmware-4366b1-pcie diff --git a/target/linux/bcm63xx/image/Makefile b/target/linux/bcm63xx/image/Makefile index f35358173c5..9137971fa57 100644 --- a/target/linux/bcm63xx/image/Makefile +++ b/target/linux/bcm63xx/image/Makefile @@ -305,12 +305,12 @@ define Device/Default endef DEVICE_VARS += CHIP_ID DEVICE_LOADADDR -ATH5K_PACKAGES := kmod-ath5k wpad-basic-wolfssl -ATH9K_PACKAGES := kmod-ath9k wpad-basic-wolfssl -B43_PACKAGES := kmod-b43 wpad-basic-wolfssl +ATH5K_PACKAGES := kmod-ath5k wpad-basic-mbedtls +ATH9K_PACKAGES := kmod-ath9k wpad-basic-mbedtls +B43_PACKAGES := kmod-b43 wpad-basic-mbedtls BRCMWL_PACKAGES := kmod-brcm-wl nas wlc -RT28_PACKAGES := kmod-rt2800-pci wpad-basic-wolfssl -RT61_PACKAGES := kmod-rt61-pci wpad-basic-wolfssl +RT28_PACKAGES := kmod-rt2800-pci wpad-basic-mbedtls +RT61_PACKAGES := kmod-rt61-pci wpad-basic-mbedtls USB1_PACKAGES := kmod-usb-ohci kmod-usb-ledtrig-usbport USB2_PACKAGES := kmod-usb2 kmod-usb-ohci kmod-usb-ledtrig-usbport diff --git a/target/linux/bcm63xx/profiles/default.mk b/target/linux/bcm63xx/profiles/default.mk index 3e8b07d35f0..65f2111087d 100644 --- a/target/linux/bcm63xx/profiles/default.mk +++ b/target/linux/bcm63xx/profiles/default.mk @@ -4,7 +4,7 @@ define Profile/Default NAME:=Default Profile - PACKAGES:=kmod-b43 wpad-basic-wolfssl + PACKAGES:=kmod-b43 wpad-basic-mbedtls PRIORITY:=1 endef diff --git a/target/linux/bmips/image/Makefile b/target/linux/bmips/image/Makefile index 89cd04b0ec7..86ab68d2443 100644 --- a/target/linux/bmips/image/Makefile +++ b/target/linux/bmips/image/Makefile @@ -249,8 +249,8 @@ define Device/Default DEVICE_LOADADDR := endef -ATH9K_PACKAGES := kmod-ath9k wpad-basic-wolfssl -B43_PACKAGES := kmod-b43 wpad-basic-wolfssl +ATH9K_PACKAGES := kmod-ath9k wpad-basic-mbedtls +B43_PACKAGES := kmod-b43 wpad-basic-mbedtls USB1_PACKAGES := kmod-usb-ohci kmod-ledtrig-usbdev USB2_PACKAGES := $(USB1_PACKAGES) kmod-usb2 diff --git a/target/linux/ipq40xx/Makefile b/target/linux/ipq40xx/Makefile index 1da72664adb..53b2f909aeb 100644 --- a/target/linux/ipq40xx/Makefile +++ b/target/linux/ipq40xx/Makefile @@ -16,7 +16,7 @@ include $(INCLUDE_DIR)/target.mk DEFAULT_PACKAGES += \ kmod-usb-dwc3-qcom \ kmod-leds-gpio kmod-gpio-button-hotplug \ - kmod-ath10k-ct wpad-basic-wolfssl \ + kmod-ath10k-ct wpad-basic-mbedtls \ kmod-usb3 kmod-usb-dwc3 ath10k-firmware-qca4019-ct \ uboot-envtools diff --git a/target/linux/ipq806x/Makefile b/target/linux/ipq806x/Makefile index 5c89d413c0d..057446f7557 100644 --- a/target/linux/ipq806x/Makefile +++ b/target/linux/ipq806x/Makefile @@ -20,7 +20,7 @@ DEFAULT_PACKAGES += \ kmod-ata-ahci kmod-ata-ahci-platform \ kmod-usb-ohci kmod-usb2 kmod-usb-ledtrig-usbport \ kmod-phy-qcom-ipq806x-usb kmod-usb3 kmod-usb-dwc3-qcom \ - kmod-ath10k-ct wpad-basic-wolfssl \ + kmod-ath10k-ct wpad-basic-mbedtls \ uboot-envtools $(eval $(call BuildTarget)) diff --git a/target/linux/ipq807x/Makefile b/target/linux/ipq807x/Makefile index 539d930ce35..e432369ce99 100644 --- a/target/linux/ipq807x/Makefile +++ b/target/linux/ipq807x/Makefile @@ -16,6 +16,6 @@ DEFAULT_PACKAGES += \ kmod-leds-gpio kmod-gpio-button-hotplug \ libwolfsslcpu-crypto kmod-qca-nss-dp \ ath11k-firmware-ipq8074 kmod-ath11k-ahb \ - wpad-basic-wolfssl uboot-envtools + wpad-basic-mbedtls uboot-envtools $(eval $(call BuildTarget)) diff --git a/target/linux/kirkwood/image/Makefile b/target/linux/kirkwood/image/Makefile index 60e8654ad3f..ea76e219706 100644 --- a/target/linux/kirkwood/image/Makefile +++ b/target/linux/kirkwood/image/Makefile @@ -93,7 +93,7 @@ define Device/checkpoint_l-50 DEVICE_VENDOR := Check Point DEVICE_MODEL := L-50 DEVICE_PACKAGES := kmod-ath9k kmod-gpio-button-hotplug kmod-mvsdio \ - kmod-rtc-s35390a kmod-usb-ledtrig-usbport wpad-basic-wolfssl + kmod-rtc-s35390a kmod-usb-ledtrig-usbport wpad-basic-mbedtls IMAGES := sysupgrade.bin endef TARGET_DEVICES += checkpoint_l-50 @@ -145,7 +145,7 @@ define Device/endian_4i-edge-200 DEVICE_MODEL := 4i Edge 200 DEVICE_ALT0_VENDOR := Endian DEVICE_ALT0_MODEL := UTM Mini Firewall - DEVICE_PACKAGES := kmod-ath9k kmod-mvsdio wpad-basic-wolfssl + DEVICE_PACKAGES := kmod-ath9k kmod-mvsdio wpad-basic-mbedtls KERNEL_SIZE := 4096k IMAGES := sysupgrade.bin endef @@ -201,7 +201,7 @@ TARGET_DEVICES += iptime_nas1 define Device/linksys DEVICE_VENDOR := Linksys - DEVICE_PACKAGES := kmod-mwl8k wpad-basic-wolfssl kmod-gpio-button-hotplug + DEVICE_PACKAGES := kmod-mwl8k wpad-basic-mbedtls kmod-gpio-button-hotplug KERNEL_IN_UBI := UBINIZE_OPTS := -E 5 IMAGE/factory.bin := append-kernel | pad-to $$$$(KERNEL_SIZE) | append-ubi diff --git a/target/linux/lantiq/image/ar9.mk b/target/linux/lantiq/image/ar9.mk index 434dacb1215..25e4b1fe659 100644 --- a/target/linux/lantiq/image/ar9.mk +++ b/target/linux/lantiq/image/ar9.mk @@ -4,7 +4,7 @@ define Device/avm_fritz7312 SOC := ar9 IMAGE_SIZE := 15744k LOADER_FLASH_OFFS := 0x31000 - DEVICE_PACKAGES := kmod-ath9k kmod-owl-loader wpad-basic-wolfssl \ + DEVICE_PACKAGES := kmod-ath9k kmod-owl-loader wpad-basic-mbedtls \ kmod-ltq-adsl-ar9-mei kmod-ltq-adsl-ar9 \ kmod-ltq-adsl-ar9-fw-b kmod-ltq-atm-ar9 \ ltq-adsl-app ppp-mod-pppoa \ @@ -20,7 +20,7 @@ define Device/avm_fritz7320 SOC := ar9 IMAGE_SIZE := 15744k LOADER_FLASH_OFFS := 0x31000 - DEVICE_PACKAGES := kmod-ath9k kmod-owl-loader wpad-basic-wolfssl \ + DEVICE_PACKAGES := kmod-ath9k kmod-owl-loader wpad-basic-mbedtls \ kmod-ltq-adsl-ar9-mei kmod-ltq-adsl-ar9 \ kmod-ltq-adsl-ar9-fw-b kmod-ltq-atm-ar9 \ ltq-adsl-app ppp-mod-pppoa \ @@ -42,7 +42,7 @@ define Device/bt_homehub-v3a kmod-ltq-adsl-ar9-fw-a kmod-ltq-atm-ar9 \ kmod-ltq-deu-ar9 \ ltq-adsl-app ppp-mod-pppoa \ - kmod-ath9k kmod-owl-loader wpad-basic-wolfssl \ + kmod-ath9k kmod-owl-loader wpad-basic-mbedtls \ uboot-envtools SUPPORTED_DEVICES += BTHOMEHUBV3A DEFAULT := n @@ -60,7 +60,7 @@ define Device/buffalo_wbmr-hp-g300h-a kmod-ltq-adsl-ar9-mei kmod-ltq-adsl-ar9 \ kmod-ltq-adsl-ar9-fw-a kmod-ltq-atm-ar9 \ ltq-adsl-app ppp-mod-pppoa \ - kmod-ath9k kmod-owl-loader wpad-basic-wolfssl + kmod-ath9k kmod-owl-loader wpad-basic-mbedtls SUPPORTED_DEVICES := WBMR buffalo,wbmr-hp-g300h endef TARGET_DEVICES += buffalo_wbmr-hp-g300h-a @@ -76,7 +76,7 @@ define Device/buffalo_wbmr-hp-g300h-b kmod-ltq-adsl-ar9-mei kmod-ltq-adsl-ar9 \ kmod-ltq-adsl-ar9-fw-b kmod-ltq-atm-ar9 \ ltq-adsl-app ppp-mod-pppoa \ - kmod-ath9k kmod-owl-loader wpad-basic-wolfssl + kmod-ath9k kmod-owl-loader wpad-basic-mbedtls SUPPORTED_DEVICES := WBMR buffalo,wbmr-hp-g300h endef TARGET_DEVICES += buffalo_wbmr-hp-g300h-b @@ -106,7 +106,7 @@ define Device/netgear_dgn3500 dgn3500-sercom-footer $(DGN3500_KERNEL_OFFSET_HEX) "WW" | pad-rootfs | \ check-size 16320k | pad-to 16384k DEVICE_PACKAGES := kmod-usb-dwc2 kmod-usb-ledtrig-usbport \ - kmod-ath9k kmod-owl-loader wpad-basic-wolfssl \ + kmod-ath9k kmod-owl-loader wpad-basic-mbedtls \ kmod-ltq-adsl-ar9-mei kmod-ltq-adsl-ar9 \ kmod-ltq-adsl-ar9-fw-a kmod-ltq-atm-ar9 \ kmod-ltq-deu-ar9 ltq-adsl-app ppp-mod-pppoa @@ -128,7 +128,7 @@ define Device/netgear_dgn3500b dgn3500-sercom-footer $(DGN3500_KERNEL_OFFSET_HEX) "DE" | pad-rootfs | \ check-size 16320k | pad-to 16384k DEVICE_PACKAGES := kmod-usb-dwc2 kmod-usb-ledtrig-usbport \ - kmod-ath9k kmod-owl-loader wpad-basic-wolfssl \ + kmod-ath9k kmod-owl-loader wpad-basic-mbedtls \ kmod-ltq-adsl-ar9-mei kmod-ltq-adsl-ar9 \ kmod-ltq-adsl-ar9-fw-b kmod-ltq-atm-ar9 \ kmod-ltq-deu-ar9 ltq-adsl-app ppp-mod-pppoa @@ -141,7 +141,7 @@ define Device/zte_h201l DEVICE_MODEL := H201L IMAGE_SIZE := 7808k SOC := ar9 - DEVICE_PACKAGES := kmod-ath9k-htc wpad-basic-wolfssl \ + DEVICE_PACKAGES := kmod-ath9k-htc wpad-basic-mbedtls \ kmod-ltq-adsl-ar9-mei kmod-ltq-adsl-ar9 \ kmod-ltq-adsl-ar9-fw-b kmod-ltq-atm-ar9 \ kmod-ltq-deu-ar9 ltq-adsl-app ppp-mod-pppoe \ @@ -157,7 +157,7 @@ define Device/zyxel_p-2601hn DEVICE_VARIANT := F1/F3 IMAGE_SIZE := 15616k SOC := ar9 - DEVICE_PACKAGES := kmod-rt2800-usb wpad-basic-wolfssl \ + DEVICE_PACKAGES := kmod-rt2800-usb wpad-basic-mbedtls \ kmod-ltq-adsl-ar9-mei kmod-ltq-adsl-ar9 \ kmod-ltq-adsl-ar9-fw-b kmod-ltq-atm-ar9 \ kmod-ltq-deu-ar9 ltq-adsl-app ppp-mod-pppoe \ diff --git a/target/linux/lantiq/image/danube.mk b/target/linux/lantiq/image/danube.mk index 9cafd2b258a..a54cb3117da 100644 --- a/target/linux/lantiq/image/danube.mk +++ b/target/linux/lantiq/image/danube.mk @@ -10,7 +10,7 @@ define Device/arcadyan_arv4510pw kmod-ltq-adsl-danube-fw-a kmod-ltq-atm-danube \ ltq-adsl-app ppp-mod-pppoa \ kmod-ltq-tapi kmod-ltq-vmmc \ - kmod-rt2800-pci kmod-ath5k wpad-basic-wolfssl + kmod-rt2800-pci kmod-ath5k wpad-basic-mbedtls SUPPORTED_DEVICES += ARV4510PW endef TARGET_DEVICES += arcadyan_arv4510pw @@ -43,7 +43,7 @@ define Device/arcadyan_arv7506pw11 DEVICE_PACKAGES := kmod-ltq-adsl-danube-mei kmod-ltq-adsl-danube \ kmod-ltq-adsl-danube-fw-b kmod-ltq-atm-danube \ ltq-adsl-app ppp-mod-pppoa \ - kmod-rt2800-pci wpad-basic-wolfssl + kmod-rt2800-pci wpad-basic-mbedtls SUPPORTED_DEVICES += ARV7506PW11 endef TARGET_DEVICES += arcadyan_arv7506pw11 @@ -60,7 +60,7 @@ define Device/arcadyan_arv7510pw22 kmod-ltq-adsl-danube-fw-a kmod-ltq-atm-danube \ ltq-adsl-app ppp-mod-pppoa \ kmod-ltq-tapi kmod-ltq-vmmc \ - kmod-rt2800-pci wpad-basic-wolfssl \ + kmod-rt2800-pci wpad-basic-mbedtls \ kmod-usb-uhci kmod-usb2 kmod-usb2-pci SUPPORTED_DEVICES += ARV7510PW22 endef @@ -77,7 +77,7 @@ define Device/arcadyan_arv7518pw kmod-ltq-adsl-danube-mei kmod-ltq-adsl-danube \ kmod-ltq-adsl-danube-fw-a kmod-ltq-atm-danube \ ltq-adsl-app ppp-mod-pppoa \ - kmod-ath9k kmod-owl-loader wpad-basic-wolfssl + kmod-ath9k kmod-owl-loader wpad-basic-mbedtls SUPPORTED_DEVICES += ARV7518PW endef TARGET_DEVICES += arcadyan_arv7518pw @@ -93,7 +93,7 @@ define Device/arcadyan_arv7519pw kmod-ltq-adsl-danube-mei kmod-ltq-adsl-danube \ kmod-ltq-adsl-danube-fw-a kmod-ltq-atm-danube \ ltq-adsl-app ppp-mod-pppoa \ - kmod-rt2800-pci wpad-basic-wolfssl + kmod-rt2800-pci wpad-basic-mbedtls SUPPORTED_DEVICES += ARV7519PW endef TARGET_DEVICES += arcadyan_arv7519pw @@ -106,7 +106,7 @@ define Device/arcadyan_arv7525pw DEVICE_ALT0_VARIANT := Typ A IMAGE_SIZE := 3776k SOC := danube - DEVICE_PACKAGES := kmod-rt2800-pci wpad-basic-wolfssl \ + DEVICE_PACKAGES := kmod-rt2800-pci wpad-basic-mbedtls \ kmod-ltq-adsl-danube-mei kmod-ltq-adsl-danube \ kmod-ltq-adsl-danube-fw-b kmod-ltq-atm-danube \ ltq-adsl-app ppp-mod-pppoa -swconfig @@ -127,7 +127,7 @@ define Device/arcadyan_arv752dpw kmod-ltq-adsl-danube-fw-b kmod-ltq-atm-danube \ ltq-adsl-app ppp-mod-pppoa \ kmod-ltq-tapi kmod-ltq-vmmc \ - kmod-rt2800-pci wpad-basic-wolfssl + kmod-rt2800-pci wpad-basic-mbedtls SUPPORTED_DEVICES += ARV752DPW endef TARGET_DEVICES += arcadyan_arv752dpw @@ -144,7 +144,7 @@ define Device/arcadyan_arv752dpw22 kmod-ltq-adsl-danube-fw-b kmod-ltq-atm-danube \ ltq-adsl-app ppp-mod-pppoa \ kmod-ltq-tapi kmod-ltq-vmmc \ - kmod-rt2800-pci wpad-basic-wolfssl + kmod-rt2800-pci wpad-basic-mbedtls SUPPORTED_DEVICES += ARV752DPW22 endef TARGET_DEVICES += arcadyan_arv752dpw22 @@ -160,7 +160,7 @@ define Device/arcadyan_arv8539pw22 kmod-ltq-adsl-danube-mei kmod-ltq-adsl-danube \ kmod-ltq-adsl-danube-fw-b kmod-ltq-atm-danube \ ltq-adsl-app ppp-mod-pppoa \ - kmod-ath9k kmod-owl-loader wpad-basic-wolfssl + kmod-ath9k kmod-owl-loader wpad-basic-mbedtls SUPPORTED_DEVICES += ARV8539PW22 endef TARGET_DEVICES += arcadyan_arv8539pw22 @@ -176,7 +176,7 @@ define Device/audiocodes_mp-252 kmod-usb-ledtrig-usbport kmod-usb-dwc2 \ kmod-rt2800-pci \ ltq-adsl-app ppp-mod-pppoa \ - wpad-basic-wolfssl + wpad-basic-mbedtls SUPPORTED_DEVICES += ACMP252 endef TARGET_DEVICES += audiocodes_mp-252 @@ -193,7 +193,7 @@ define Device/bt_homehub-v2b kmod-ltq-adsl-danube-mei kmod-ltq-adsl-danube \ kmod-ltq-adsl-danube-fw-a kmod-ltq-atm-danube \ kmod-ltq-deu-danube ltq-adsl-app ppp-mod-pppoa \ - kmod-ath9k kmod-owl-loader wpad-basic-wolfssl + kmod-ath9k kmod-owl-loader wpad-basic-mbedtls SUPPORTED_DEVICES += BTHOMEHUBV2B DEFAULT := n endef @@ -217,7 +217,7 @@ define Device/siemens_gigaset-sx76x kmod-ltq-adsl-danube-mei kmod-ltq-adsl-danube \ kmod-ltq-adsl-danube-fw-b kmod-ltq-atm-danube \ ltq-adsl-app ppp-mod-pppoe \ - kmod-ath5k wpad-basic-wolfssl + kmod-ath5k wpad-basic-mbedtls SUPPORTED_DEVICES += GIGASX76X endef TARGET_DEVICES += siemens_gigaset-sx76x diff --git a/target/linux/lantiq/image/tp-link.mk b/target/linux/lantiq/image/tp-link.mk index 756105b94c7..751f61589de 100644 --- a/target/linux/lantiq/image/tp-link.mk +++ b/target/linux/lantiq/image/tp-link.mk @@ -26,7 +26,7 @@ define Device/tplink_tdw8970 TPLINK_HWID := 0x89700001 TPLINK_HWREV := 1 IMAGE_SIZE := 7680k - DEVICE_PACKAGES:= kmod-ath9k wpad-basic-wolfssl kmod-usb-dwc2 kmod-usb-ledtrig-usbport + DEVICE_PACKAGES:= kmod-ath9k wpad-basic-mbedtls kmod-usb-dwc2 kmod-usb-ledtrig-usbport SUPPORTED_DEVICES += TDW8970 endef TARGET_DEVICES += tplink_tdw8970 @@ -40,7 +40,7 @@ define Device/tplink_tdw8980 TPLINK_HWID := 0x89800001 TPLINK_HWREV := 14 IMAGE_SIZE := 7680k - DEVICE_PACKAGES:= kmod-ath9k kmod-owl-loader wpad-basic-wolfssl kmod-usb-dwc2 kmod-usb-ledtrig-usbport + DEVICE_PACKAGES:= kmod-ath9k kmod-owl-loader wpad-basic-mbedtls kmod-usb-dwc2 kmod-usb-ledtrig-usbport SUPPORTED_DEVICES += TDW8980 endef TARGET_DEVICES += tplink_tdw8980 @@ -54,7 +54,7 @@ define Device/tplink_vr200 TPLINK_HWID := 0x63e64801 TPLINK_HWREV := 0x53 IMAGE_SIZE := 15808k - DEVICE_PACKAGES:= kmod-mt76x0e wpad-basic-wolfssl kmod-usb-dwc2 kmod-usb-ledtrig-usbport + DEVICE_PACKAGES:= kmod-mt76x0e wpad-basic-mbedtls kmod-usb-dwc2 kmod-usb-ledtrig-usbport SUPPORTED_DEVICES += VR200 endef TARGET_DEVICES += tplink_vr200 @@ -68,7 +68,7 @@ define Device/tplink_vr200v TPLINK_HWID := 0x73b70801 TPLINK_HWREV := 0x2f IMAGE_SIZE := 15808k - DEVICE_PACKAGES:= kmod-mt76x0e wpad-basic-wolfssl kmod-usb-dwc2 kmod-usb-ledtrig-usbport kmod-ltq-tapi kmod-ltq-vmmc + DEVICE_PACKAGES:= kmod-mt76x0e wpad-basic-mbedtls kmod-usb-dwc2 kmod-usb-ledtrig-usbport kmod-ltq-tapi kmod-ltq-vmmc SUPPORTED_DEVICES += VR200v endef TARGET_DEVICES += tplink_vr200v diff --git a/target/linux/lantiq/image/vr9.mk b/target/linux/lantiq/image/vr9.mk index deea3996670..804088032f5 100644 --- a/target/linux/lantiq/image/vr9.mk +++ b/target/linux/lantiq/image/vr9.mk @@ -54,7 +54,7 @@ define Device/arcadyan_vgv7510kw22-brn SIGNATURE := BRNDA6431 MAGIC := 0x12345678 CRC32_POLY := 0x04c11db7 - DEVICE_PACKAGES := kmod-rt2800-pci wpad-basic-wolfssl kmod-usb-dwc2 kmod-ltq-tapi kmod-ltq-vmmc + DEVICE_PACKAGES := kmod-rt2800-pci wpad-basic-mbedtls kmod-usb-dwc2 kmod-ltq-tapi kmod-ltq-vmmc SUPPORTED_DEVICES += VGV7510KW22BRN endef TARGET_DEVICES += arcadyan_vgv7510kw22-brn @@ -68,7 +68,7 @@ define Device/arcadyan_vgv7510kw22-nor DEVICE_ALT0_MODEL := Box 6431 DEVICE_ALT0_VARIANT := NOR IMAGE_SIZE := 15232k - DEVICE_PACKAGES := kmod-rt2800-pci wpad-basic-wolfssl kmod-usb-dwc2 kmod-ltq-tapi kmod-ltq-vmmc + DEVICE_PACKAGES := kmod-rt2800-pci wpad-basic-mbedtls kmod-usb-dwc2 kmod-ltq-tapi kmod-ltq-vmmc SUPPORTED_DEVICES += VGV7510KW22NOR endef TARGET_DEVICES += arcadyan_vgv7510kw22-nor @@ -86,7 +86,7 @@ define Device/arcadyan_vgv7519-brn SIGNATURE := 5D00008000 MAGIC := 0x12345678 CRC32_POLY := 0x2083b8ed - DEVICE_PACKAGES := kmod-rt2800-pci wpad-basic-wolfssl kmod-usb-dwc2 kmod-ltq-tapi kmod-ltq-vmmc + DEVICE_PACKAGES := kmod-rt2800-pci wpad-basic-mbedtls kmod-usb-dwc2 kmod-ltq-tapi kmod-ltq-vmmc SUPPORTED_DEVICES += VGV7519BRN endef TARGET_DEVICES += arcadyan_vgv7519-brn @@ -100,7 +100,7 @@ define Device/arcadyan_vgv7519-nor DEVICE_ALT0_MODEL := Experiabox 8 DEVICE_ALT0_VARIANT := NOR IMAGE_SIZE := 15360k - DEVICE_PACKAGES := kmod-rt2800-pci wpad-basic-wolfssl kmod-usb-dwc2 kmod-ltq-tapi kmod-ltq-vmmc + DEVICE_PACKAGES := kmod-rt2800-pci wpad-basic-mbedtls kmod-usb-dwc2 kmod-ltq-tapi kmod-ltq-vmmc SUPPORTED_DEVICES += VGV7519NOR endef TARGET_DEVICES += arcadyan_vgv7519-nor @@ -116,7 +116,7 @@ define Device/avm_fritz3370 IMAGES += eva-kernel.bin eva-filesystem.bin IMAGE/eva-kernel.bin := append-kernel IMAGE/eva-filesystem.bin := append-ubi - DEVICE_PACKAGES := kmod-ath9k wpad-basic-wolfssl kmod-usb-dwc2 fritz-tffs + DEVICE_PACKAGES := kmod-ath9k wpad-basic-mbedtls kmod-usb-dwc2 fritz-tffs endef define Device/avm_fritz3370-rev2-hynix @@ -142,7 +142,7 @@ define Device/avm_fritz3390 DEVICE_MODEL := FRITZ!Box 3390 KERNEL_SIZE := 4096k IMAGE_SIZE := 49152k - DEVICE_PACKAGES := kmod-ath9k kmod-owl-loader wpad-basic-wolfssl \ + DEVICE_PACKAGES := kmod-ath9k kmod-owl-loader wpad-basic-mbedtls \ kmod-usb-dwc2 fritz-tffs endef TARGET_DEVICES += avm_fritz3390 @@ -152,7 +152,7 @@ define Device/avm_fritz7360sl $(Device/AVM) DEVICE_MODEL := FRITZ!Box 7360 SL IMAGE_SIZE := 15744k - DEVICE_PACKAGES := kmod-ath9k kmod-owl-loader wpad-basic-wolfssl kmod-usb-dwc2 + DEVICE_PACKAGES := kmod-ath9k kmod-owl-loader wpad-basic-mbedtls kmod-usb-dwc2 SUPPORTED_DEVICES += FRITZ7360SL endef TARGET_DEVICES += avm_fritz7360sl @@ -163,7 +163,7 @@ define Device/avm_fritz7360-v2 DEVICE_MODEL := FRITZ!Box 7360 DEVICE_VARIANT := v2 IMAGE_SIZE := 32128k - DEVICE_PACKAGES := kmod-ath9k kmod-owl-loader wpad-basic-wolfssl kmod-usb-dwc2 + DEVICE_PACKAGES := kmod-ath9k kmod-owl-loader wpad-basic-mbedtls kmod-usb-dwc2 endef TARGET_DEVICES += avm_fritz7360-v2 @@ -174,7 +174,7 @@ define Device/avm_fritz7362sl DEVICE_MODEL := FRITZ!Box 7362 SL KERNEL_SIZE := 4096k IMAGE_SIZE := 49152k - DEVICE_PACKAGES := kmod-ath9k kmod-owl-loader wpad-basic-wolfssl kmod-usb-dwc2 fritz-tffs + DEVICE_PACKAGES := kmod-ath9k kmod-owl-loader wpad-basic-mbedtls kmod-usb-dwc2 fritz-tffs endef TARGET_DEVICES += avm_fritz7362sl @@ -186,7 +186,7 @@ define Device/avm_fritz7412 BOARD_NAME := FRITZ7412 KERNEL_SIZE := 4096k IMAGE_SIZE := 49152k - DEVICE_PACKAGES := kmod-ath9k kmod-owl-loader wpad-basic-wolfssl fritz-tffs-nand fritz-caldata + DEVICE_PACKAGES := kmod-ath9k kmod-owl-loader wpad-basic-mbedtls fritz-tffs-nand fritz-caldata endef TARGET_DEVICES += avm_fritz7412 @@ -197,7 +197,7 @@ define Device/avm_fritz7430 DEVICE_MODEL := FRITZ!Box 7430 KERNEL_SIZE := 4096k IMAGE_SIZE := 49152k - DEVICE_PACKAGES := kmod-ath9k kmod-owl-loader kmod-usb-dwc2 wpad-basic-wolfssl \ + DEVICE_PACKAGES := kmod-ath9k kmod-owl-loader kmod-usb-dwc2 wpad-basic-mbedtls \ fritz-tffs-nand fritz-caldata endef TARGET_DEVICES += avm_fritz7430 @@ -210,7 +210,7 @@ define Device/bt_homehub-v5a DEVICE_VARIANT := Type A BOARD_NAME := BTHOMEHUBV5A DEVICE_PACKAGES := kmod-ath9k kmod-owl-loader \ - kmod-ath10k-ct ath10k-firmware-qca988x-ct wpad-basic-wolfssl kmod-usb-dwc2 + kmod-ath10k-ct ath10k-firmware-qca988x-ct wpad-basic-mbedtls kmod-usb-dwc2 SUPPORTED_DEVICES += BTHOMEHUBV5A endef TARGET_DEVICES += bt_homehub-v5a @@ -220,7 +220,7 @@ define Device/buffalo_wbmr-300hpd DEVICE_VENDOR := Buffalo DEVICE_MODEL := WBMR-300HPD IMAGE_SIZE := 15616k - DEVICE_PACKAGES := kmod-mt7603 wpad-basic-wolfssl kmod-usb-dwc2 + DEVICE_PACKAGES := kmod-mt7603 wpad-basic-mbedtls kmod-usb-dwc2 SUPPORTED_DEVICES += WBMR300 endef TARGET_DEVICES += buffalo_wbmr-300hpd @@ -232,7 +232,7 @@ define Device/lantiq_easy80920-nand DEVICE_MODEL := VR9 EASY80920 DEVICE_VARIANT := NAND IMAGE_SIZE := 64512k - DEVICE_PACKAGES := kmod-ath9k kmod-owl-loader wpad-basic-wolfssl kmod-usb-dwc2 kmod-usb-ledtrig-usbport + DEVICE_PACKAGES := kmod-ath9k kmod-owl-loader wpad-basic-mbedtls kmod-usb-dwc2 kmod-usb-ledtrig-usbport endef TARGET_DEVICES += lantiq_easy80920-nand @@ -242,7 +242,7 @@ define Device/lantiq_easy80920-nor DEVICE_MODEL := VR9 EASY80920 DEVICE_VARIANT := NOR IMAGE_SIZE := 7936k - DEVICE_PACKAGES := kmod-ath9k kmod-owl-loader wpad-basic-wolfssl kmod-usb-dwc2 kmod-usb-ledtrig-usbport + DEVICE_PACKAGES := kmod-ath9k kmod-owl-loader wpad-basic-mbedtls kmod-usb-dwc2 kmod-usb-ledtrig-usbport endef TARGET_DEVICES += lantiq_easy80920-nor @@ -269,7 +269,7 @@ define Device/zyxel_p-2812hnu-f1 DEVICE_MODEL := P-2812HNU DEVICE_VARIANT := F1 BOARD_NAME := P2812HNUF1 - DEVICE_PACKAGES := kmod-rt2800-pci wpad-basic-wolfssl kmod-usb-dwc2 kmod-usb-ledtrig-usbport + DEVICE_PACKAGES := kmod-rt2800-pci wpad-basic-mbedtls kmod-usb-dwc2 kmod-usb-ledtrig-usbport KERNEL_SIZE := 3072k SUPPORTED_DEVICES += P2812HNUF1 endef @@ -282,7 +282,7 @@ define Device/zyxel_p-2812hnu-f3 DEVICE_MODEL := P-2812HNU DEVICE_VARIANT := F3 BOARD_NAME := P2812HNUF3 - DEVICE_PACKAGES := kmod-rt2800-pci wpad-basic-wolfssl kmod-usb-dwc2 + DEVICE_PACKAGES := kmod-rt2800-pci wpad-basic-mbedtls kmod-usb-dwc2 KERNEL_SIZE := 2048k SUPPORTED_DEVICES += P2812HNUF3 DEFAULT := n diff --git a/target/linux/lantiq/image/xway_legacy.mk b/target/linux/lantiq/image/xway_legacy.mk index a0bf7a85ac5..47b52277f61 100644 --- a/target/linux/lantiq/image/xway_legacy.mk +++ b/target/linux/lantiq/image/xway_legacy.mk @@ -6,7 +6,7 @@ define Device/arcadyan_arv4518pwr01 kmod-ltq-adsl-danube-mei kmod-ltq-adsl-danube \ kmod-ltq-adsl-danube-fw-a kmod-ltq-atm-danube \ ltq-adsl-app ppp-mod-pppoa \ - kmod-ath5k wpad-basic-wolfssl + kmod-ath5k wpad-basic-mbedtls SUPPORTED_DEVICES += ARV4518PWR01 DEFAULT := n endef @@ -20,7 +20,7 @@ define Device/arcadyan_arv4518pwr01a kmod-ltq-adsl-danube-mei kmod-ltq-adsl-danube \ kmod-ltq-adsl-danube-fw-a kmod-ltq-atm-danube \ ltq-adsl-app ppp-mod-pppoa \ - kmod-ath5k wpad-basic-wolfssl + kmod-ath5k wpad-basic-mbedtls SUPPORTED_DEVICES += ARV4518PWR01A DEFAULT := n endef @@ -38,7 +38,7 @@ define Device/arcadyan_arv4520pw kmod-ltq-adsl-danube-mei kmod-ltq-adsl-danube \ kmod-ltq-adsl-danube-fw-b kmod-ltq-atm-danube \ ltq-adsl-app ppp-mod-pppoa \ - kmod-rt61-pci wpad-basic-wolfssl + kmod-rt61-pci wpad-basic-mbedtls SUPPORTED_DEVICES += ARV4520PW DEFAULT := n endef @@ -51,7 +51,7 @@ define Device/arcadyan_arv4525pw DEVICE_ALT0_MODEL := Speedport W502V DEVICE_ALT0_VARIANT := Typ A IMAGE_SIZE := 3776k - DEVICE_PACKAGES := kmod-ath5k wpad-basic-wolfssl \ + DEVICE_PACKAGES := kmod-ath5k wpad-basic-mbedtls \ kmod-ltq-adsl-danube-mei kmod-ltq-adsl-danube \ kmod-ltq-adsl-danube-fw-b kmod-ltq-atm-danube \ ltq-adsl-app ppp-mod-pppoa -swconfig @@ -67,7 +67,7 @@ define Device/arcadyan_arv452cqw DEVICE_ALT0_MODEL := Easybox 801 IMAGE_SIZE := 3776k DEVICE_PACKAGES := kmod-usb-dwc2 kmod-usb-ledtrig-usbport \ - kmod-ath5k wpad-basic-wolfssl \ + kmod-ath5k wpad-basic-mbedtls \ kmod-ltq-adsl-danube-mei kmod-ltq-adsl-danube \ kmod-ltq-adsl-danube-fw-b kmod-ltq-atm-danube \ ltq-adsl-app ppp-mod-pppoa diff --git a/target/linux/malta/Makefile b/target/linux/malta/Makefile index fb24708991f..2ca43fa2e8b 100644 --- a/target/linux/malta/Makefile +++ b/target/linux/malta/Makefile @@ -14,6 +14,6 @@ KERNEL_PATCHVER:=5.15 include $(INCLUDE_DIR)/target.mk -DEFAULT_PACKAGES += wpad-basic-wolfssl kmod-mac80211-hwsim kmod-pcnet32 mkf2fs e2fsprogs +DEFAULT_PACKAGES += wpad-basic-mbedtls kmod-mac80211-hwsim kmod-pcnet32 mkf2fs e2fsprogs $(eval $(call BuildTarget)) diff --git a/target/linux/mediatek/filogic/target.mk b/target/linux/mediatek/filogic/target.mk index 0c5bf4844e6..a255566cc90 100644 --- a/target/linux/mediatek/filogic/target.mk +++ b/target/linux/mediatek/filogic/target.mk @@ -2,7 +2,7 @@ ARCH:=aarch64 SUBTARGET:=filogic BOARDNAME:=Filogic 830 (MT7986) CPU_TYPE:=cortex-a53 -DEFAULT_PACKAGES += kmod-crypto-hw-safexcel kmod-mt7915e kmod-mt7986-firmware wpad-basic-wolfssl uboot-envtools +DEFAULT_PACKAGES += kmod-crypto-hw-safexcel kmod-mt7915e kmod-mt7986-firmware wpad-basic-mbedtls uboot-envtools KERNELNAME:=Image dtbs define Target/Description diff --git a/target/linux/mediatek/mt7622/target.mk b/target/linux/mediatek/mt7622/target.mk index 7c9d57b6a13..7742672a513 100644 --- a/target/linux/mediatek/mt7622/target.mk +++ b/target/linux/mediatek/mt7622/target.mk @@ -2,7 +2,7 @@ ARCH:=aarch64 SUBTARGET:=mt7622 BOARDNAME:=MT7622 CPU_TYPE:=cortex-a53 -DEFAULT_PACKAGES += kmod-mt7622-firmware wpad-basic-wolfssl uboot-envtools +DEFAULT_PACKAGES += kmod-mt7622-firmware wpad-basic-mbedtls uboot-envtools KERNELNAME:=Image dtbs define Target/Description diff --git a/target/linux/mpc85xx/Makefile b/target/linux/mpc85xx/Makefile index 552b9811047..31d0d45f4ff 100644 --- a/target/linux/mpc85xx/Makefile +++ b/target/linux/mpc85xx/Makefile @@ -20,7 +20,7 @@ include $(INCLUDE_DIR)/target.mk DEFAULT_PACKAGES += \ kmod-input-core kmod-input-gpio-keys kmod-button-hotplug \ - kmod-leds-gpio swconfig kmod-ath9k wpad-basic-wolfssl kmod-usb2 \ + kmod-leds-gpio swconfig kmod-ath9k wpad-basic-mbedtls kmod-usb2 \ uboot-envtools $(eval $(call BuildTarget)) diff --git a/target/linux/mvebu/image/cortexa9.mk b/target/linux/mvebu/image/cortexa9.mk index 4b8884383a8..aed1d476464 100644 --- a/target/linux/mvebu/image/cortexa9.mk +++ b/target/linux/mvebu/image/cortexa9.mk @@ -58,7 +58,7 @@ define Device/cznic_turris-omnia KERNEL_INITRAMFS := kernel-bin | gzip | fit gzip $$(KDIR)/image-$$(DEVICE_DTS).dtb DEVICE_PACKAGES := \ mkf2fs e2fsprogs kmod-fs-vfat kmod-nls-cp437 kmod-nls-iso8859-1 \ - wpad-basic-wolfssl kmod-ath9k kmod-ath10k-ct ath10k-firmware-qca988x-ct \ + wpad-basic-mbedtls kmod-ath9k kmod-ath10k-ct ath10k-firmware-qca988x-ct \ partx-utils kmod-i2c-mux-pca954x kmod-leds-turris-omnia IMAGES := $$(DEVICE_IMG_PREFIX)-sysupgrade.img.gz omnia-medkit-$$(DEVICE_IMG_PREFIX)-initramfs.tar.gz IMAGE/$$(DEVICE_IMG_PREFIX)-sysupgrade.img.gz := boot-scr | boot-img | sdcard-img | gzip | append-metadata @@ -109,7 +109,7 @@ TARGET_DEVICES += kobol_helios4 define Device/linksys $(Device/NAND-128K) DEVICE_VENDOR := Linksys - DEVICE_PACKAGES := kmod-mwlwifi wpad-basic-wolfssl + DEVICE_PACKAGES := kmod-mwlwifi wpad-basic-mbedtls IMAGES += factory.img IMAGE/factory.img := append-kernel | pad-to $$$$(KERNEL_SIZE) | \ append-ubi | pad-to $$$$(PAGESIZE) diff --git a/target/linux/omap/profiles/00-default.mk b/target/linux/omap/profiles/00-default.mk index 73338d8652e..172fbc26b3d 100644 --- a/target/linux/omap/profiles/00-default.mk +++ b/target/linux/omap/profiles/00-default.mk @@ -8,7 +8,7 @@ define Profile/Default kmod-usb-net-asix kmod-usb-net-asix-ax88179 kmod-usb-net-hso \ kmod-usb-net-kaweth kmod-usb-net-pegasus kmod-usb-net-mcs7830 \ kmod-usb-net-smsc95xx kmod-usb-net-dm9601-ether \ - wpad-basic-wolfssl + wpad-basic-mbedtls PRIORITY := 1 endef diff --git a/target/linux/oxnas/image/ox820.mk b/target/linux/oxnas/image/ox820.mk index 8dea8425035..deb49b14c44 100644 --- a/target/linux/oxnas/image/ox820.mk +++ b/target/linux/oxnas/image/ox820.mk @@ -50,7 +50,7 @@ define Device/cloudengines_pogoplugpro DEVICE_MODEL := PogoPlug Pro (with mPCIe) SUPPORTED_DEVICES += pogoplug-pro DEVICE_PACKAGES := kmod-usb2-oxnas kmod-usb-ledtrig-usbport \ - kmod-ata-oxnas-sata kmod-rt2800-pci wpad-basic-wolfssl + kmod-ata-oxnas-sata kmod-rt2800-pci wpad-basic-mbedtls endef TARGET_DEVICES += cloudengines_pogoplugpro diff --git a/target/linux/ramips/image/mt7620.mk b/target/linux/ramips/image/mt7620.mk index 445d3dec342..e723fe93e0d 100644 --- a/target/linux/ramips/image/mt7620.mk +++ b/target/linux/ramips/image/mt7620.mk @@ -54,7 +54,7 @@ define Device/alfa-network_tube-e4g DEVICE_VENDOR := ALFA Network DEVICE_MODEL := Tube-E4G DEVICE_PACKAGES := kmod-usb2 kmod-usb-ohci uboot-envtools uqmi -iwinfo \ - -kmod-rt2800-soc -wpad-basic-wolfssl + -kmod-rt2800-soc -wpad-basic-mbedtls SUPPORTED_DEVICES += tube-e4g endef TARGET_DEVICES += alfa-network_tube-e4g diff --git a/target/linux/ramips/image/mt7621.mk b/target/linux/ramips/image/mt7621.mk index 7f4f338039e..8c8c6dee8e3 100644 --- a/target/linux/ramips/image/mt7621.mk +++ b/target/linux/ramips/image/mt7621.mk @@ -155,7 +155,7 @@ define Device/alfa-network_quad-e4g DEVICE_VENDOR := ALFA Network DEVICE_MODEL := Quad-E4G DEVICE_PACKAGES := kmod-ata-ahci kmod-sdhci-mt7620 kmod-usb3 uboot-envtools \ - -wpad-basic-wolfssl + -wpad-basic-mbedtls SUPPORTED_DEVICES += quad-e4g endef TARGET_DEVICES += alfa-network_quad-e4g @@ -217,7 +217,7 @@ define Device/asiarf_ap7621-001 IMAGE_SIZE := 16000k DEVICE_VENDOR := AsiaRF DEVICE_MODEL := AP7621-001 - DEVICE_PACKAGES := kmod-sdhci-mt7620 kmod-mt76x2 kmod-usb3 -wpad-basic-wolfssl + DEVICE_PACKAGES := kmod-sdhci-mt7620 kmod-mt76x2 kmod-usb3 -wpad-basic-mbedtls endef TARGET_DEVICES += asiarf_ap7621-001 @@ -226,7 +226,7 @@ define Device/asiarf_ap7621-nv1 IMAGE_SIZE := 16000k DEVICE_VENDOR := AsiaRF DEVICE_MODEL := AP7621-NV1 - DEVICE_PACKAGES := kmod-sdhci-mt7620 kmod-mt76x2 kmod-usb3 -wpad-basic-wolfssl + DEVICE_PACKAGES := kmod-sdhci-mt7620 kmod-mt76x2 kmod-usb3 -wpad-basic-mbedtls endef TARGET_DEVICES += asiarf_ap7621-nv1 @@ -680,7 +680,7 @@ define Device/dual-q_h721 IMAGE_SIZE := 16064k DEVICE_VENDOR := Dual-Q DEVICE_MODEL := H721 - DEVICE_PACKAGES := kmod-ata-ahci kmod-sdhci-mt7620 kmod-usb3 -wpad-basic-wolfssl + DEVICE_PACKAGES := kmod-ata-ahci kmod-sdhci-mt7620 kmod-usb3 -wpad-basic-mbedtls endef TARGET_DEVICES += dual-q_h721 @@ -923,7 +923,7 @@ define Device/gnubee_gb-pc1 $(Device/uimage-lzma-loader) DEVICE_VENDOR := GnuBee DEVICE_MODEL := Personal Cloud One - DEVICE_PACKAGES := kmod-ata-ahci kmod-usb3 kmod-sdhci-mt7620 -wpad-basic-wolfssl + DEVICE_PACKAGES := kmod-ata-ahci kmod-usb3 kmod-sdhci-mt7620 -wpad-basic-mbedtls IMAGE_SIZE := 32448k endef TARGET_DEVICES += gnubee_gb-pc1 @@ -933,7 +933,7 @@ define Device/gnubee_gb-pc2 $(Device/uimage-lzma-loader) DEVICE_VENDOR := GnuBee DEVICE_MODEL := Personal Cloud Two - DEVICE_PACKAGES := kmod-ata-ahci kmod-usb3 kmod-sdhci-mt7620 -wpad-basic-wolfssl + DEVICE_PACKAGES := kmod-ata-ahci kmod-usb3 kmod-sdhci-mt7620 -wpad-basic-mbedtls IMAGE_SIZE := 32448k endef TARGET_DEVICES += gnubee_gb-pc2 @@ -1246,7 +1246,7 @@ define Device/iptime_t5004 IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata DEVICE_VENDOR := ipTIME DEVICE_MODEL := T5004 - DEVICE_PACKAGES := -wpad-basic-wolfssl + DEVICE_PACKAGES := -wpad-basic-mbedtls endef TARGET_DEVICES += iptime_t5004 @@ -1431,7 +1431,7 @@ define Device/mediatek_ap-mt7621a-v60 IMAGE_SIZE := 7872k DEVICE_VENDOR := Mediatek DEVICE_MODEL := AP-MT7621A-V60 EVB - DEVICE_PACKAGES := kmod-usb3 kmod-sdhci-mt7620 kmod-sound-mt7620 -wpad-basic-wolfssl + DEVICE_PACKAGES := kmod-usb3 kmod-sdhci-mt7620 kmod-sound-mt7620 -wpad-basic-mbedtls endef TARGET_DEVICES += mediatek_ap-mt7621a-v60 @@ -1441,7 +1441,7 @@ define Device/mediatek_mt7621-eval-board IMAGE_SIZE := 15104k DEVICE_VENDOR := MediaTek DEVICE_MODEL := MT7621 EVB - DEVICE_PACKAGES := -wpad-basic-wolfssl + DEVICE_PACKAGES := -wpad-basic-mbedtls SUPPORTED_DEVICES += mt7621 endef TARGET_DEVICES += mediatek_mt7621-eval-board @@ -1469,7 +1469,7 @@ TARGET_DEVICES += mikrotik_ltap-2hnd define Device/mikrotik_routerboard-750gr3 $(Device/MikroTik) DEVICE_MODEL := RouterBOARD 750Gr3 - DEVICE_PACKAGES += -wpad-basic-wolfssl + DEVICE_PACKAGES += -wpad-basic-mbedtls SUPPORTED_DEVICES += mikrotik,rb750gr3 endef TARGET_DEVICES += mikrotik_routerboard-750gr3 @@ -1477,14 +1477,14 @@ TARGET_DEVICES += mikrotik_routerboard-750gr3 define Device/mikrotik_routerboard-760igs $(Device/MikroTik) DEVICE_MODEL := RouterBOARD 760iGS - DEVICE_PACKAGES += kmod-sfp -wpad-basic-wolfssl + DEVICE_PACKAGES += kmod-sfp -wpad-basic-mbedtls endef TARGET_DEVICES += mikrotik_routerboard-760igs define Device/mikrotik_routerboard-m11g $(Device/MikroTik) DEVICE_MODEL := RouterBOARD M11G - DEVICE_PACKAGES := -wpad-basic-wolfssl + DEVICE_PACKAGES := -wpad-basic-mbedtls SUPPORTED_DEVICES += mikrotik,rbm11g endef TARGET_DEVICES += mikrotik_routerboard-m11g @@ -1492,7 +1492,7 @@ TARGET_DEVICES += mikrotik_routerboard-m11g define Device/mikrotik_routerboard-m33g $(Device/MikroTik) DEVICE_MODEL := RouterBOARD M33G - DEVICE_PACKAGES := -wpad-basic-wolfssl + DEVICE_PACKAGES := -wpad-basic-mbedtls SUPPORTED_DEVICES += mikrotik,rbm33g endef TARGET_DEVICES += mikrotik_routerboard-m33g @@ -1805,7 +1805,7 @@ define Device/planex_vr500 IMAGE_SIZE := 65216k DEVICE_VENDOR := Planex DEVICE_MODEL := VR500 - DEVICE_PACKAGES := kmod-usb3 -wpad-basic-wolfssl + DEVICE_PACKAGES := kmod-usb3 -wpad-basic-mbedtls SUPPORTED_DEVICES += vr500 endef TARGET_DEVICES += planex_vr500 @@ -1949,7 +1949,7 @@ define Device/thunder_timecloud IMAGE_SIZE := 16064k DEVICE_VENDOR := Thunder DEVICE_MODEL := Timecloud - DEVICE_PACKAGES := kmod-usb3 -wpad-basic-wolfssl + DEVICE_PACKAGES := kmod-usb3 -wpad-basic-mbedtls SUPPORTED_DEVICES += timecloud endef TARGET_DEVICES += thunder_timecloud @@ -2082,7 +2082,7 @@ define Device/tplink_er605-v2 DEVICE_VENDOR := TP-Link DEVICE_MODEL := ER605 DEVICE_VARIANT := v2 - DEVICE_PACKAGES := -wpad-basic-wolfssl kmod-usb3 + DEVICE_PACKAGES := -wpad-basic-mbedtls kmod-usb3 BLOCKSIZE := 128k PAGESIZE := 2048 KERNEL_SIZE := 4096k @@ -2176,7 +2176,7 @@ define Device/ubnt_edgerouter_common KERNEL_INITRAMFS := $$(KERNEL) | \ ubnt-erx-factory-image $(KDIR)/tmp/$$(KERNEL_INITRAMFS_PREFIX)-factory.tar IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata - DEVICE_PACKAGES += -wpad-basic-wolfssl + DEVICE_PACKAGES += -wpad-basic-mbedtls endef define Device/ubnt_edgerouter-x @@ -2258,7 +2258,7 @@ define Device/unielec_u7621-06-16m DEVICE_VENDOR := UniElec DEVICE_MODEL := U7621-06 DEVICE_VARIANT := 16M - DEVICE_PACKAGES := kmod-ata-ahci kmod-sdhci-mt7620 kmod-usb3 -wpad-basic-wolfssl + DEVICE_PACKAGES := kmod-ata-ahci kmod-sdhci-mt7620 kmod-usb3 -wpad-basic-mbedtls SUPPORTED_DEVICES += u7621-06-256M-16M unielec,u7621-06-256m-16m endef TARGET_DEVICES += unielec_u7621-06-16m @@ -2270,7 +2270,7 @@ define Device/unielec_u7621-06-32m DEVICE_VENDOR := UniElec DEVICE_MODEL := U7621-06 DEVICE_VARIANT := 32M - DEVICE_PACKAGES := kmod-ata-ahci kmod-sdhci-mt7620 kmod-usb3 -wpad-basic-wolfssl + DEVICE_PACKAGES := kmod-ata-ahci kmod-sdhci-mt7620 kmod-usb3 -wpad-basic-mbedtls SUPPORTED_DEVICES += unielec,u7621-06-32m endef TARGET_DEVICES += unielec_u7621-06-32m @@ -2282,7 +2282,7 @@ define Device/unielec_u7621-06-64m DEVICE_VENDOR := UniElec DEVICE_MODEL := U7621-06 DEVICE_VARIANT := 64M - DEVICE_PACKAGES := kmod-ata-ahci kmod-sdhci-mt7620 kmod-usb3 -wpad-basic-wolfssl + DEVICE_PACKAGES := kmod-ata-ahci kmod-sdhci-mt7620 kmod-usb3 -wpad-basic-mbedtls SUPPORTED_DEVICES += unielec,u7621-06-512m-64m endef TARGET_DEVICES += unielec_u7621-06-64m @@ -2505,7 +2505,7 @@ define Device/xiaoyu_xy-c5 IMAGE_SIZE := 32448k DEVICE_VENDOR := XiaoYu DEVICE_MODEL := XY-C5 - DEVICE_PACKAGES := kmod-ata-ahci kmod-usb3 -wpad-basic-wolfssl + DEVICE_PACKAGES := kmod-ata-ahci kmod-usb3 -wpad-basic-mbedtls endef TARGET_DEVICES += xiaoyu_xy-c5 @@ -2515,7 +2515,7 @@ define Device/xzwifi_creativebox-v1 DEVICE_VENDOR := CreativeBox DEVICE_MODEL := v1 DEVICE_PACKAGES := kmod-ata-ahci kmod-mt7603 kmod-mt76x2 kmod-sdhci-mt7620 \ - kmod-usb3 -wpad-basic-wolfssl + kmod-usb3 -wpad-basic-mbedtls endef TARGET_DEVICES += xzwifi_creativebox-v1 diff --git a/target/linux/ramips/mt7620/target.mk b/target/linux/ramips/mt7620/target.mk index 5fc61e49cf8..34488f95afb 100644 --- a/target/linux/ramips/mt7620/target.mk +++ b/target/linux/ramips/mt7620/target.mk @@ -7,7 +7,7 @@ BOARDNAME:=MT7620 based boards FEATURES+=usb ramdisk CPU_TYPE:=24kc -DEFAULT_PACKAGES += kmod-rt2800-soc wpad-basic-wolfssl swconfig +DEFAULT_PACKAGES += kmod-rt2800-soc wpad-basic-mbedtls swconfig define Target/Description Build firmware images for Ralink MT7620 based boards. diff --git a/target/linux/ramips/mt7621/target.mk b/target/linux/ramips/mt7621/target.mk index d1f987b2e03..cfb798e3585 100644 --- a/target/linux/ramips/mt7621/target.mk +++ b/target/linux/ramips/mt7621/target.mk @@ -10,7 +10,7 @@ KERNELNAME:=vmlinux vmlinuz # make Kernel/CopyImage use $LINUX_DIR/vmlinuz IMAGES_DIR:=../../.. -DEFAULT_PACKAGES += wpad-basic-wolfssl +DEFAULT_PACKAGES += wpad-basic-mbedtls define Target/Description Build firmware images for Ralink MT7621 based boards. diff --git a/target/linux/ramips/mt76x8/target.mk b/target/linux/ramips/mt76x8/target.mk index f939e4ca4c6..862736cb2f3 100644 --- a/target/linux/ramips/mt76x8/target.mk +++ b/target/linux/ramips/mt76x8/target.mk @@ -7,7 +7,7 @@ BOARDNAME:=MT76x8 based boards FEATURES+=usb ramdisk CPU_TYPE:=24kc -DEFAULT_PACKAGES += kmod-mt7603 wpad-basic-wolfssl swconfig +DEFAULT_PACKAGES += kmod-mt7603 wpad-basic-mbedtls swconfig define Target/Description Build firmware images for Ralink MT76x8 based boards. diff --git a/target/linux/ramips/rt288x/target.mk b/target/linux/ramips/rt288x/target.mk index 814ac97e895..87e10ff2fd9 100644 --- a/target/linux/ramips/rt288x/target.mk +++ b/target/linux/ramips/rt288x/target.mk @@ -7,7 +7,7 @@ BOARDNAME:=RT288x based boards FEATURES+=small_flash CPU_TYPE:=24kc -DEFAULT_PACKAGES += kmod-rt2800-soc wpad-basic-wolfssl swconfig +DEFAULT_PACKAGES += kmod-rt2800-soc wpad-basic-mbedtls swconfig define Target/Description Build firmware images for Ralink RT288x based boards. diff --git a/target/linux/ramips/rt305x/target.mk b/target/linux/ramips/rt305x/target.mk index 27ad670ca44..759ad2d4562 100644 --- a/target/linux/ramips/rt305x/target.mk +++ b/target/linux/ramips/rt305x/target.mk @@ -7,7 +7,7 @@ BOARDNAME:=RT3x5x/RT5350 based boards FEATURES+=usb ramdisk small_flash CPU_TYPE:=24kc -DEFAULT_PACKAGES += kmod-rt2800-soc wpad-basic-wolfssl swconfig +DEFAULT_PACKAGES += kmod-rt2800-soc wpad-basic-mbedtls swconfig define Target/Description Build firmware images for Ralink RT3x5x/RT5350 based boards. diff --git a/target/linux/ramips/rt3883/target.mk b/target/linux/ramips/rt3883/target.mk index ff878a0a597..c1039625f11 100644 --- a/target/linux/ramips/rt3883/target.mk +++ b/target/linux/ramips/rt3883/target.mk @@ -7,7 +7,7 @@ BOARDNAME:=RT3662/RT3883 based boards FEATURES+=usb pci small_flash CPU_TYPE:=74kc -DEFAULT_PACKAGES += kmod-rt2800-pci kmod-rt2800-soc wpad-basic-wolfssl swconfig +DEFAULT_PACKAGES += kmod-rt2800-pci kmod-rt2800-soc wpad-basic-mbedtls swconfig define Target/Description Build firmware images for Ralink RT3662/RT3883 based boards. diff --git a/target/linux/sunxi/image/cortexa7.mk b/target/linux/sunxi/image/cortexa7.mk index 74cdc6e996e..5b9f27cef80 100644 --- a/target/linux/sunxi/image/cortexa7.mk +++ b/target/linux/sunxi/image/cortexa7.mk @@ -23,7 +23,7 @@ define Device/friendlyarm_nanopi-m1-plus DEVICE_VENDOR := FriendlyARM DEVICE_MODEL := NanoPi M1 Plus DEVICE_PACKAGES:=kmod-leds-gpio kmod-brcmfmac \ - cypress-firmware-43430-sdio wpad-basic-wolfssl + cypress-firmware-43430-sdio wpad-basic-mbedtls SOC := sun8i-h3 endef TARGET_DEVICES += friendlyarm_nanopi-m1-plus @@ -39,7 +39,7 @@ define Device/friendlyarm_nanopi-neo-air DEVICE_VENDOR := FriendlyARM DEVICE_MODEL := NanoPi NEO Air DEVICE_PACKAGES := kmod-leds-gpio kmod-brcmfmac \ - brcmfmac-firmware-43430a0-sdio wpad-basic-wolfssl + brcmfmac-firmware-43430a0-sdio wpad-basic-mbedtls SOC := sun8i-h3 endef TARGET_DEVICES += friendlyarm_nanopi-neo-air @@ -48,7 +48,7 @@ define Device/friendlyarm_nanopi-r1 DEVICE_VENDOR := FriendlyARM DEVICE_MODEL := NanoPi R1 DEVICE_PACKAGES := kmod-usb-net-rtl8152 kmod-leds-gpio \ - kmod-brcmfmac cypress-firmware-43430-sdio wpad-basic-wolfssl + kmod-brcmfmac cypress-firmware-43430-sdio wpad-basic-mbedtls SOC := sun8i-h3 endef TARGET_DEVICES += friendlyarm_nanopi-r1 @@ -66,7 +66,7 @@ define Device/lamobo_lamobo-r1 DEVICE_MODEL := Lamobo R1 DEVICE_ALT0_VENDOR := Bananapi DEVICE_ALT0_MODEL := BPi-R1 - DEVICE_PACKAGES := kmod-ata-sunxi kmod-rtl8192cu wpad-basic-wolfssl + DEVICE_PACKAGES := kmod-ata-sunxi kmod-rtl8192cu wpad-basic-mbedtls DEVICE_COMPAT_VERSION := 1.1 DEVICE_COMPAT_MESSAGE := Config cannot be migrated from swconfig to DSA SOC := sun7i-a20 @@ -85,7 +85,7 @@ define Device/sinovoip_bananapi-m2-berry DEVICE_VENDOR := Sinovoip DEVICE_MODEL := Banana Pi M2 Berry DEVICE_PACKAGES:=kmod-ata-sunxi kmod-brcmfmac \ - cypress-firmware-43430-sdio wpad-basic-wolfssl + cypress-firmware-43430-sdio wpad-basic-mbedtls SUPPORTED_DEVICES:=lemaker,bananapi-m2-berry SOC := sun8i-v40 endef @@ -95,7 +95,7 @@ define Device/sinovoip_bananapi-m2-ultra DEVICE_VENDOR := Sinovoip DEVICE_MODEL := Banana Pi M2 Ultra DEVICE_PACKAGES:=kmod-ata-sunxi kmod-brcmfmac \ - brcmfmac-firmware-43430a0-sdio wpad-basic-wolfssl + brcmfmac-firmware-43430a0-sdio wpad-basic-mbedtls SUPPORTED_DEVICES:=lemaker,bananapi-m2-ultra SOC := sun8i-r40 endef @@ -171,7 +171,7 @@ define Device/sinovoip_bananapi-m2-plus DEVICE_VENDOR := Sinovoip DEVICE_MODEL := Banana Pi M2+ DEVICE_PACKAGES:=kmod-leds-gpio kmod-brcmfmac \ - brcmfmac-firmware-43430a0-sdio wpad-basic-wolfssl + brcmfmac-firmware-43430a0-sdio wpad-basic-mbedtls SOC := sun8i-h3 endef TARGET_DEVICES += sinovoip_bananapi-m2-plus diff --git a/target/linux/sunxi/profiles/00-default.mk b/target/linux/sunxi/profiles/00-default.mk index 0541087a488..0e3192adaf9 100644 --- a/target/linux/sunxi/profiles/00-default.mk +++ b/target/linux/sunxi/profiles/00-default.mk @@ -13,7 +13,7 @@ define Profile/Default kmod-sun4i-emac \ rtl8188eu-firmware \ swconfig \ - wpad-basic-wolfssl + wpad-basic-mbedtls PRIORITY := 1 endef diff --git a/target/linux/tegra/image/Makefile b/target/linux/tegra/image/Makefile index 58c2fe74f8b..82394f4ab6f 100644 --- a/target/linux/tegra/image/Makefile +++ b/target/linux/tegra/image/Makefile @@ -43,7 +43,7 @@ define Device/compulab_trimslice DEVICE_MODEL := TrimSlice DEVICE_DTS := tegra20-trimslice DEVICE_PACKAGES := kmod-r8169 kmod-rt2800-usb kmod-rtc-em3027 \ - kmod-usb-storage wpad-basic-wolfssl + kmod-usb-storage wpad-basic-mbedtls UBOOT := trimslice-mmc endef TARGET_DEVICES += compulab_trimslice diff --git a/target/linux/uml/Makefile b/target/linux/uml/Makefile index 9f6b9644f85..2b314aa4bb0 100644 --- a/target/linux/uml/Makefile +++ b/target/linux/uml/Makefile @@ -17,7 +17,7 @@ KERNEL_PATCHVER:=5.15 include $(INCLUDE_DIR)/target.mk -DEFAULT_PACKAGES += wpad-basic-wolfssl kmod-mac80211-hwsim mkf2fs e2fsprogs +DEFAULT_PACKAGES += wpad-basic-mbedtls kmod-mac80211-hwsim mkf2fs e2fsprogs endif endif From 4bcc3fd3d222bfe545beb3906da9de860fcb83bd Mon Sep 17 00:00:00 2001 From: Rosen Penev Date: Wed, 25 Jan 2023 13:02:12 -0800 Subject: [PATCH 24/32] treewide: replace libustream-wolfssl with -mbedtls Previous commit does the same for wpad-basic. Also matches DEFAULT_VARIANT in ustream-ssl Makefile. Signed-off-by: Rosen Penev --- include/target.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/target.mk b/include/target.mk index a62b1eb0527..992f9553444 100644 --- a/include/target.mk +++ b/include/target.mk @@ -17,7 +17,7 @@ DEFAULT_PACKAGES:=\ fstools \ libc \ libgcc \ - libustream-wolfssl \ + libustream-mbedtls \ logd \ mtd \ netifd \ From 059263dd6e9bed5cb0f817a9fe0bd287db921200 Mon Sep 17 00:00:00 2001 From: Rosen Penev Date: Fri, 3 Feb 2023 15:51:50 -0800 Subject: [PATCH 25/32] ipq807x: remove libwolfsslcpu-crypto dependency Signed-off-by: Rosen Penev --- target/linux/ipq807x/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/target/linux/ipq807x/Makefile b/target/linux/ipq807x/Makefile index e432369ce99..f753cb3f508 100644 --- a/target/linux/ipq807x/Makefile +++ b/target/linux/ipq807x/Makefile @@ -14,7 +14,7 @@ include $(INCLUDE_DIR)/target.mk DEFAULT_PACKAGES += \ kmod-usb3 kmod-usb-dwc3 kmod-usb-dwc3-qcom \ kmod-leds-gpio kmod-gpio-button-hotplug \ - libwolfsslcpu-crypto kmod-qca-nss-dp \ + kmod-qca-nss-dp \ ath11k-firmware-ipq8074 kmod-ath11k-ahb \ wpad-basic-mbedtls uboot-envtools From 3ef655375a5edac9c4967394a213d10b631464a7 Mon Sep 17 00:00:00 2001 From: Christian Marangi Date: Sat, 4 Feb 2023 20:04:58 +0100 Subject: [PATCH 26/32] fstools: bump to latest Git HEAD 14d535e partname: Correct fstools_partname_fallback_scan comparison Signed-off-by: Christian Marangi --- package/system/fstools/Makefile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package/system/fstools/Makefile b/package/system/fstools/Makefile index 8a17f169459..e61cd7a022e 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:=edda9151c73c1adfe369f5e315347344727a540ad57d3e2b41b9f57f9d4313fe -PKG_SOURCE_DATE:=2023-01-22 -PKG_SOURCE_VERSION:=1ea5855e980cd88766dd9f615e78e7dd6edfbb74 +PKG_MIRROR_HASH:=d2fc78b66c4e6ac5f51c77f92bd0d2322db78905a9dfea582fc7d975ea68ffe4 +PKG_SOURCE_DATE:=2023-02-04 +PKG_SOURCE_VERSION:=14d535e4485dc030deecbba9ab493c379df5c237 CMAKE_INSTALL:=1 PKG_LICENSE:=GPL-2.0 From b5193291bdde00e91c58e59029d5c68b0bc605db Mon Sep 17 00:00:00 2001 From: Brian Norris Date: Tue, 24 Jan 2023 22:42:07 -0800 Subject: [PATCH 27/32] ipq806x: onhub: Enable fstools_partname_fallback_scan When fstools is unable to parse our root=<...> arg correctly, it can fall back to scanning all block devices for a 'rootfs_data' partition. This fallback was deemed wrong (or at least, a breaking/incompatible change) for some targets, so we're forced to opt back into it with fstools_partname_fallback_scan=1. Without this, OnHub devices will use a rootfs-appended loop device for rootfs_data instead of the intended 3rd partition. While I'm at it, just move all the boot args into the 'cros-vboot' build rule, instead of using the custom bootargs-append. All cros-vboot subtargets here are using the same rootwait (to support both eMMC and USB boot) and root/partition args. Signed-off-by: Brian Norris [ drop unrelated comments in commit description ] Signed-off-by: Christian Marangi --- .../files-5.15/arch/arm/boot/dts/qcom-ipq8064-asus-onhub.dts | 4 ---- .../arch/arm/boot/dts/qcom-ipq8064-tplink-onhub.dts | 4 ---- target/linux/ipq806x/image/chromium.mk | 4 +++- 3 files changed, 3 insertions(+), 9 deletions(-) diff --git a/target/linux/ipq806x/files-5.15/arch/arm/boot/dts/qcom-ipq8064-asus-onhub.dts b/target/linux/ipq806x/files-5.15/arch/arm/boot/dts/qcom-ipq8064-asus-onhub.dts index 5b60ddb04b3..442bcf19a67 100644 --- a/target/linux/ipq806x/files-5.15/arch/arm/boot/dts/qcom-ipq8064-asus-onhub.dts +++ b/target/linux/ipq806x/files-5.15/arch/arm/boot/dts/qcom-ipq8064-asus-onhub.dts @@ -11,10 +11,6 @@ / { model = "ASUS OnHub"; compatible = "asus,onhub", "google,arkham", "qcom,ipq8064"; - - chosen { - bootargs-append = " rootwait"; - }; }; &qcom_pinmux { diff --git a/target/linux/ipq806x/files-5.15/arch/arm/boot/dts/qcom-ipq8064-tplink-onhub.dts b/target/linux/ipq806x/files-5.15/arch/arm/boot/dts/qcom-ipq8064-tplink-onhub.dts index 6dd39f0d958..6adc6be4aec 100644 --- a/target/linux/ipq806x/files-5.15/arch/arm/boot/dts/qcom-ipq8064-tplink-onhub.dts +++ b/target/linux/ipq806x/files-5.15/arch/arm/boot/dts/qcom-ipq8064-tplink-onhub.dts @@ -11,10 +11,6 @@ / { model = "TP-Link OnHub"; compatible = "tplink,onhub", "google,whirlwind-sp5", "qcom,ipq8064"; - - chosen { - bootargs-append = " rootwait"; - }; }; &qcom_pinmux { diff --git a/target/linux/ipq806x/image/chromium.mk b/target/linux/ipq806x/image/chromium.mk index 16af6b95ba6..f908472419d 100644 --- a/target/linux/ipq806x/image/chromium.mk +++ b/target/linux/ipq806x/image/chromium.mk @@ -20,7 +20,9 @@ endef # (PARTNROFF=1) partition as their rootfs. define Build/cros-vboot $(STAGING_DIR_HOST)/bin/cros-vbutil \ - -k $@ -c "root=PARTUUID=%U/PARTNROFF=1" -o $@.new + -k $@ \ + -c "root=PARTUUID=%U/PARTNROFF=1 rootwait fstools_partname_fallback_scan=1" \ + -o $@.new @mv $@.new $@ endef From c5608227ef8b705c18fb5323409bc69bd9ca192e Mon Sep 17 00:00:00 2001 From: John Audia Date: Sat, 26 Feb 2022 08:29:02 -0500 Subject: [PATCH 28/32] tools/coreutils: update to 9.1 In addition to version update, this commit applies a fixup to allow building on MacOS involving renaming: [gt_TYPE_WINT_T] --> [gt_TYPE_WINT_T_GNUTLS] suggested by zhanhb. Build system: x86_64 Build-tested: bcm2711/RPi4B Signed-off-by: John Audia --- tools/coreutils/Makefile | 5 +- tools/coreutils/patches/001-m4.patch | 95 ++++++++++++++++++++++++++++ 2 files changed, 98 insertions(+), 2 deletions(-) create mode 100644 tools/coreutils/patches/001-m4.patch diff --git a/tools/coreutils/Makefile b/tools/coreutils/Makefile index c64210c5a7c..2b7b40cddcb 100644 --- a/tools/coreutils/Makefile +++ b/tools/coreutils/Makefile @@ -8,13 +8,14 @@ include $(TOPDIR)/rules.mk PKG_NAME:=coreutils PKG_CPE_ID:=cpe:/a:gnu:coreutils -PKG_VERSION:=8.32 +PKG_VERSION:=9.1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz PKG_SOURCE_URL:=@GNU/coreutils -PKG_HASH:=4458d8de7849df44ccab15e16b1548b285224dbba5f08fac070c1c0e0bcc4cfa +PKG_HASH:=61a1f410d78ba7e7f37a5a4f50e6d1320aca33375484a3255eddf17a38580423 HOST_BUILD_PARALLEL := 1 +PKG_FIXUP:=autoreconf BUILD_PROGRAMS = date readlink touch ln chown ginstall diff --git a/tools/coreutils/patches/001-m4.patch b/tools/coreutils/patches/001-m4.patch new file mode 100644 index 00000000000..f3d70183328 --- /dev/null +++ b/tools/coreutils/patches/001-m4.patch @@ -0,0 +1,95 @@ +--- a/m4/gnulib-comp.m4 ++++ b/m4/gnulib-comp.m4 +@@ -2671,7 +2671,7 @@ changequote([, ])dnl + fi + gl_SYS_SOCKET_MODULE_INDICATOR([socket]) + AC_REQUIRE([gt_TYPE_WCHAR_T]) +- AC_REQUIRE([gt_TYPE_WINT_T]) ++ AC_REQUIRE([gt_TYPE_WINT_T_GNUTLS]) + gl_FUNC_STRERROR_R + AS_IF([test $HAVE_DECL_STRERROR_R = 0 || test $REPLACE_STRERROR_R = 1], [ + AC_LIBOBJ([strerror_r]) +--- a/m4/stdint.m4 ++++ b/m4/stdint.m4 +@@ -15,7 +15,7 @@ AC_DEFUN_ONCE([gl_STDINT_H], + AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles + + AC_REQUIRE([gl_LIMITS_H]) +- AC_REQUIRE([gt_TYPE_WINT_T]) ++ AC_REQUIRE([gt_TYPE_WINT_T_GNUTLS]) + + dnl For backward compatibility. Some packages may still be testing these + dnl macros. +--- a/m4/vasnprintf.m4 ++++ b/m4/vasnprintf.m4 +@@ -33,7 +33,7 @@ AC_DEFUN([gl_REPLACE_VASNPRINTF], + AC_DEFUN([gl_PREREQ_PRINTF_ARGS], + [ + AC_REQUIRE([gt_TYPE_WCHAR_T]) +- AC_REQUIRE([gt_TYPE_WINT_T]) ++ AC_REQUIRE([gt_TYPE_WINT_T_GNUTLS]) + ]) + + # Prerequisites of lib/printf-parse.h, lib/printf-parse.c. +@@ -41,7 +41,7 @@ AC_DEFUN([gl_PREREQ_PRINTF_PARSE], + [ + AC_REQUIRE([gl_FEATURES_H]) + AC_REQUIRE([gt_TYPE_WCHAR_T]) +- AC_REQUIRE([gt_TYPE_WINT_T]) ++ AC_REQUIRE([gt_TYPE_WINT_T_GNUTLS]) + AC_REQUIRE([AC_TYPE_SIZE_T]) + AC_CHECK_TYPE([ptrdiff_t], , + [AC_DEFINE([ptrdiff_t], [long], +@@ -55,7 +55,7 @@ AC_DEFUN_ONCE([gl_PREREQ_VASNPRINTF], + [ + AC_REQUIRE([AC_FUNC_ALLOCA]) + AC_REQUIRE([gt_TYPE_WCHAR_T]) +- AC_REQUIRE([gt_TYPE_WINT_T]) ++ AC_REQUIRE([gt_TYPE_WINT_T_GNUTLS]) + AC_CHECK_FUNCS([snprintf strnlen wcslen wcsnlen mbrtowc wcrtomb]) + dnl Use the _snprintf function only if it is declared (because on NetBSD it + dnl is defined as a weak alias of snprintf; we prefer to use the latter). +--- a/m4/wchar_h.m4 ++++ b/m4/wchar_h.m4 +@@ -27,7 +27,7 @@ AC_DEFUN_ONCE([gl_WCHAR_H], + + AC_REQUIRE([gl_FEATURES_H]) + +- AC_REQUIRE([gt_TYPE_WINT_T]) ++ AC_REQUIRE([gt_TYPE_WINT_T_GNUTLS]) + if test $gt_cv_c_wint_t = yes; then + HAVE_WINT_T=1 + else +--- a/m4/wctype_h.m4 ++++ b/m4/wctype_h.m4 +@@ -22,7 +22,7 @@ AC_DEFUN_ONCE([gl_WCTYPE_H], + fi + AC_SUBST([HAVE_ISWCNTRL]) + +- AC_REQUIRE([gt_TYPE_WINT_T]) ++ AC_REQUIRE([gt_TYPE_WINT_T_GNUTLS]) + if test $gt_cv_c_wint_t = yes; then + HAVE_WINT_T=1 + else +--- a/m4/wcwidth.m4 ++++ b/m4/wcwidth.m4 +@@ -13,7 +13,7 @@ AC_DEFUN([gl_FUNC_WCWIDTH], + AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS]) + + AC_REQUIRE([gt_TYPE_WCHAR_T]) +- AC_REQUIRE([gt_TYPE_WINT_T]) ++ AC_REQUIRE([gt_TYPE_WINT_T_GNUTLS]) + + AC_CHECK_HEADERS_ONCE([wchar.h]) + AC_CHECK_FUNCS_ONCE([wcwidth]) +--- a/m4/wint_t.m4 ++++ b/m4/wint_t.m4 +@@ -9,7 +9,7 @@ dnl Test whether has the 'wint + dnl or would, if present, override 'wint_t'. + dnl Prerequisite: AC_PROG_CC + +-AC_DEFUN([gt_TYPE_WINT_T], ++AC_DEFUN([gt_TYPE_WINT_T_GNUTLS], + [ + AC_CACHE_CHECK([for wint_t], [gt_cv_c_wint_t], + [AC_COMPILE_IFELSE( From 57ad2ea110dc3899e87af6c60acf60375c9efa5f Mon Sep 17 00:00:00 2001 From: Nick Hainke Date: Sun, 5 Feb 2023 14:06:35 +0100 Subject: [PATCH 29/32] tools/pkgconf: update to 1.9.4 Release information: https://github.com/pkgconf/pkgconf/blob/master/NEWS Fixes CVE-2023-24056. Further, this commit corrects the "-Dtests" flag and changes it from "false" to "disabled". Signed-off-by: Nick Hainke --- tools/pkgconf/Makefile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tools/pkgconf/Makefile b/tools/pkgconf/Makefile index b5f241b7dce..fded7e0fd62 100644 --- a/tools/pkgconf/Makefile +++ b/tools/pkgconf/Makefile @@ -7,11 +7,11 @@ include $(TOPDIR)/rules.mk PKG_NAME:=pkgconf -PKG_VERSION:=1.9.3 +PKG_VERSION:=1.9.4 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz PKG_SOURCE_URL:=https://distfiles.dereferenced.org/pkgconf -PKG_HASH:=5fb355b487d54fb6d341e4f18d4e2f7e813a6622cf03a9e87affa6a40565699d +PKG_HASH:=daccf1bbe5a30d149b556c7d2ffffeafd76d7b514e249271abdd501533c1d8ae include $(INCLUDE_DIR)/host-build.mk include $(INCLUDE_DIR)/meson.mk @@ -22,7 +22,7 @@ HOSTCC := $(HOSTCC_NOCACHE) MESON_HOST_ARGS += \ -Ddefault_library=static \ - -Dtests=false + -Dtests=disabled define Host/Install $(call Host/Install/Meson) From 6bc675c0bed969303f94bb59310081d92bf2e74a Mon Sep 17 00:00:00 2001 From: Nick Hainke Date: Sun, 5 Feb 2023 14:59:03 +0100 Subject: [PATCH 30/32] tools/pkgconf: add PKG_CPE_ID Add PKG_CPE_ID to track vulnerabilities. Signed-off-by: Nick Hainke --- tools/pkgconf/Makefile | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tools/pkgconf/Makefile b/tools/pkgconf/Makefile index fded7e0fd62..c6e11edaf2b 100644 --- a/tools/pkgconf/Makefile +++ b/tools/pkgconf/Makefile @@ -13,6 +13,8 @@ PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz PKG_SOURCE_URL:=https://distfiles.dereferenced.org/pkgconf PKG_HASH:=daccf1bbe5a30d149b556c7d2ffffeafd76d7b514e249271abdd501533c1d8ae +PKG_CPE_ID:=cpe:/a:pkgconf:pkgconf + include $(INCLUDE_DIR)/host-build.mk include $(INCLUDE_DIR)/meson.mk From cefc543b029a7af72420a5c514245287cd3df933 Mon Sep 17 00:00:00 2001 From: Cezary Jackiewicz Date: Sun, 5 Feb 2023 07:24:05 +0100 Subject: [PATCH 31/32] ipq40xx: fix assignment of lan port numbers for Cell C RTL30VW After switching to DSA, the LAN ports in Cell C RTL30VW have swapped numbers. Assigning the right numbers. Signed-off-by: Cezary Jackiewicz --- .../ipq40xx/files/arch/arm/boot/dts/qcom-ipq4019-rtl30vw.dts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4019-rtl30vw.dts b/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4019-rtl30vw.dts index 3205b7d5640..6fce4ae87b5 100644 --- a/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4019-rtl30vw.dts +++ b/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4019-rtl30vw.dts @@ -383,11 +383,11 @@ &swport3 { status = "okay"; - label = "lan2"; + label = "lan1"; }; &swport4 { status = "okay"; - label = "lan1"; + label = "lan2"; }; From f28a604df4659a572dc3b147b65365fef6dc90d9 Mon Sep 17 00:00:00 2001 From: Christian Marangi Date: Mon, 6 Feb 2023 21:33:26 +0100 Subject: [PATCH 32/32] iwinfo: bump to latest git HEAD c7eb8eb nl80211: restore iterating over all devices in nl80211_phy2ifname() Fixes: #11902 Signed-off-by: Christian Marangi --- package/network/utils/iwinfo/Makefile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package/network/utils/iwinfo/Makefile b/package/network/utils/iwinfo/Makefile index bf258ef4555..4f597ca0b87 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-01-23 -PKG_SOURCE_VERSION:=1e4e709d6f26cc38411ca189bab04f857b444ef3 -PKG_MIRROR_HASH:=851ca5c724f01260770ac7f4c98bc4f32b03fde635d06c797896ff2c4658c753 +PKG_SOURCE_DATE:=2023-02-06 +PKG_SOURCE_VERSION:=c7eb8ebe33de2ff2d08064258edb047e5ac09f29 +PKG_MIRROR_HASH:=f1124cf305710b0f04e2ea6dd42ba96ba4a3367da4d4afb4c19d5af9905b1cc2 PKG_MAINTAINER:=Jo-Philipp Wich PKG_LICENSE:=GPL-2.0