[openwrt/openwrt] bcm63xx: switch to upstream CFE version detection patch

LEDE Commits lede-commits at lists.infradead.org
Thu Aug 6 17:07:01 EDT 2020


noltari pushed a commit to openwrt/openwrt.git, branch master:
https://git.openwrt.org/92727a122819a911c783841abec6d989c9560f56

commit 92727a122819a911c783841abec6d989c9560f56
Author: Álvaro Fernández Rojas <noltari at gmail.com>
AuthorDate: Thu Aug 6 16:20:30 2020 +0200

    bcm63xx: switch to upstream CFE version detection patch
    
    The patch improving CFE version detection has been merged (linux 5.9).
    
    Signed-off-by: Álvaro Fernández Rojas <noltari at gmail.com>
---
 ...IPS-BCM63xx-improve-CFE-version-detection.patch | 56 ++++++++++++++++++++++
 ...X-register-OHCI-controller-if-board-enabl.patch |  2 +-
 ...X-register-EHCI-controller-if-board-enabl.patch |  2 +-
 ...X-move-device-registration-code-into-its-.patch |  2 +-
 ...X-pass-a-mac-addresss-allocator-to-board-.patch |  2 +-
 .../bcm63xx/patches-5.4/309-cfe_version_mod.patch  | 27 -----------
 ...X-add-support-for-matching-the-board_info.patch |  2 +-
 7 files changed, 61 insertions(+), 32 deletions(-)

diff --git a/target/linux/bcm63xx/patches-5.4/032-v5.9-MIPS-BCM63xx-improve-CFE-version-detection.patch b/target/linux/bcm63xx/patches-5.4/032-v5.9-MIPS-BCM63xx-improve-CFE-version-detection.patch
new file mode 100644
index 0000000000..1daa3e6149
--- /dev/null
+++ b/target/linux/bcm63xx/patches-5.4/032-v5.9-MIPS-BCM63xx-improve-CFE-version-detection.patch
@@ -0,0 +1,56 @@
+From e27e1cc9d360a347dbd5a398e9df21cfb4e60e3c Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= <noltari at gmail.com>
+Date: Mon, 8 Jun 2020 11:28:35 +0200
+Subject: [PATCH] MIPS: BCM63xx: improve CFE version detection
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+There are some CFE variants that start with 'cfe-vd' instead of 'cfe-v', such
+as the one used in the Huawei HG556a: "cfe-vd081.5003". In this case, the CFE
+version is stored as is (string vs number bytes).
+
+Some newer devices have an additional version number, such as the Comtrend
+VR-3032u: "1.0.38-112.118-11".
+
+Finally, print the string as is if the version doesn't start with "cfe-v" or
+"cfe-vd", but starts with "cfe-".
+
+Signed-off-by: Álvaro Fernández Rojas <noltari at gmail.com>
+Signed-off-by: Thomas Bogendoerfer <tsbogend at alpha.franken.de>
+---
+ arch/mips/bcm63xx/boards/board_bcm963xx.c | 22 ++++++++++++++++++----
+ 1 file changed, 18 insertions(+), 4 deletions(-)
+
+--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
++++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
+@@ -760,11 +760,25 @@ void __init board_prom_init(void)
+ 
+ 	/* dump cfe version */
+ 	cfe = boot_addr + BCM963XX_CFE_VERSION_OFFSET;
+-	if (!memcmp(cfe, "cfe-v", 5))
+-		snprintf(cfe_version, sizeof(cfe_version), "%u.%u.%u-%u.%u",
+-			 cfe[5], cfe[6], cfe[7], cfe[8], cfe[9]);
+-	else
++	if (strstarts(cfe, "cfe-")) {
++		if(cfe[4] == 'v') {
++			if(cfe[5] == 'd')
++				snprintf(cfe_version, 11, "%s",
++					 (char *) &cfe[5]);
++			else if (cfe[10] > 0)
++				snprintf(cfe_version, sizeof(cfe_version),
++					 "%u.%u.%u-%u.%u-%u", cfe[5], cfe[6],
++					 cfe[7], cfe[8], cfe[9], cfe[10]);
++			else
++				snprintf(cfe_version, sizeof(cfe_version),
++					 "%u.%u.%u-%u.%u", cfe[5], cfe[6],
++					 cfe[7], cfe[8], cfe[9]);
++		} else {
++			snprintf(cfe_version, 12, "%s", (char *) &cfe[4]);
++		}
++	} else {
+ 		strcpy(cfe_version, "unknown");
++	}
+ 	pr_info("CFE version: %s\n", cfe_version);
+ 
+ 	bcm63xx_nvram_init(boot_addr + BCM963XX_NVRAM_OFFSET);
diff --git a/target/linux/bcm63xx/patches-5.4/106-MIPS-BCM63XX-register-OHCI-controller-if-board-enabl.patch b/target/linux/bcm63xx/patches-5.4/106-MIPS-BCM63XX-register-OHCI-controller-if-board-enabl.patch
index 80427d7fd3..b2fbb68ee1 100644
--- a/target/linux/bcm63xx/patches-5.4/106-MIPS-BCM63XX-register-OHCI-controller-if-board-enabl.patch
+++ b/target/linux/bcm63xx/patches-5.4/106-MIPS-BCM63XX-register-OHCI-controller-if-board-enabl.patch
@@ -24,7 +24,7 @@ Signed-off-by: Florian Fainelli <florian at openwrt.org>
  #include <bcm63xx_dev_usb_usbd.h>
  #include <board_bcm963xx.h>
  
-@@ -878,6 +879,9 @@ int __init board_register_devices(void)
+@@ -892,6 +893,9 @@ int __init board_register_devices(void)
  	if (board.has_usbd)
  		bcm63xx_usbd_register(&board.usbd);
  
diff --git a/target/linux/bcm63xx/patches-5.4/109-MIPS-BCM63XX-register-EHCI-controller-if-board-enabl.patch b/target/linux/bcm63xx/patches-5.4/109-MIPS-BCM63XX-register-EHCI-controller-if-board-enabl.patch
index e8c2588b67..feb99a1cd7 100644
--- a/target/linux/bcm63xx/patches-5.4/109-MIPS-BCM63XX-register-EHCI-controller-if-board-enabl.patch
+++ b/target/linux/bcm63xx/patches-5.4/109-MIPS-BCM63XX-register-EHCI-controller-if-board-enabl.patch
@@ -24,7 +24,7 @@ Signed-off-by: Florian Fainelli <florian at openwrt.org>
  #include <bcm63xx_dev_usb_ohci.h>
  #include <bcm63xx_dev_usb_usbd.h>
  #include <board_bcm963xx.h>
-@@ -879,6 +880,9 @@ int __init board_register_devices(void)
+@@ -893,6 +894,9 @@ int __init board_register_devices(void)
  	if (board.has_usbd)
  		bcm63xx_usbd_register(&board.usbd);
  
diff --git a/target/linux/bcm63xx/patches-5.4/207-MIPS-BCM63XX-move-device-registration-code-into-its-.patch b/target/linux/bcm63xx/patches-5.4/207-MIPS-BCM63XX-move-device-registration-code-into-its-.patch
index f39c9a8122..a53274a4ba 100644
--- a/target/linux/bcm63xx/patches-5.4/207-MIPS-BCM63XX-move-device-registration-code-into-its-.patch
+++ b/target/linux/bcm63xx/patches-5.4/207-MIPS-BCM63XX-move-device-registration-code-into-its-.patch
@@ -114,7 +114,7 @@ Signed-off-by: Jonas Gorski <jogo at openwrt.org>
   * early init callback, read nvram data from flash and checksum it
   */
  void __init board_prom_init(void)
-@@ -782,137 +724,15 @@ void __init board_prom_init(void)
+@@ -796,137 +738,15 @@ void __init board_prom_init(void)
  		if (strncmp(board_name, bcm963xx_boards[i]->name, 16))
  			continue;
  		/* copy, board desc array is marked initdata */
diff --git a/target/linux/bcm63xx/patches-5.4/208-MIPS-BCM63XX-pass-a-mac-addresss-allocator-to-board-.patch b/target/linux/bcm63xx/patches-5.4/208-MIPS-BCM63XX-pass-a-mac-addresss-allocator-to-board-.patch
index f34e222314..3cf3afd49d 100644
--- a/target/linux/bcm63xx/patches-5.4/208-MIPS-BCM63XX-pass-a-mac-addresss-allocator-to-board-.patch
+++ b/target/linux/bcm63xx/patches-5.4/208-MIPS-BCM63XX-pass-a-mac-addresss-allocator-to-board-.patch
@@ -17,7 +17,7 @@ Signed-off-by: Jonas Gorski <jogo at openwrt.org>
 
 --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
 +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -724,7 +724,8 @@ void __init board_prom_init(void)
+@@ -738,7 +738,8 @@ void __init board_prom_init(void)
  		if (strncmp(board_name, bcm963xx_boards[i]->name, 16))
  			continue;
  		/* copy, board desc array is marked initdata */
diff --git a/target/linux/bcm63xx/patches-5.4/309-cfe_version_mod.patch b/target/linux/bcm63xx/patches-5.4/309-cfe_version_mod.patch
deleted file mode 100644
index 3a0d08074d..0000000000
--- a/target/linux/bcm63xx/patches-5.4/309-cfe_version_mod.patch
+++ /dev/null
@@ -1,27 +0,0 @@
---- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
-+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -704,10 +704,20 @@ void __init board_prom_init(void)
- 
- 	/* dump cfe version */
- 	cfe = boot_addr + BCM963XX_CFE_VERSION_OFFSET;
--	if (!memcmp(cfe, "cfe-v", 5))
--		snprintf(cfe_version, sizeof(cfe_version), "%u.%u.%u-%u.%u",
--			 cfe[5], cfe[6], cfe[7], cfe[8], cfe[9]);
--	else
-+	if (strstarts(cfe, "cfe-")) {
-+		if(cfe[4] == 'v') {
-+			if(cfe[5] == 'd')
-+				snprintf(cfe_version, 11, "%s", (char *) &cfe[5]);
-+			else if (cfe[10] > 0)
-+				snprintf(cfe_version, sizeof(cfe_version), "%u.%u.%u-%u.%u-%u",
-+					 cfe[5], cfe[6], cfe[7], cfe[8], cfe[9], cfe[10]);
-+			else
-+				snprintf(cfe_version, sizeof(cfe_version), "%u.%u.%u-%u.%u",
-+					 cfe[5], cfe[6], cfe[7], cfe[8], cfe[9]);
-+		} else {
-+			snprintf(cfe_version, 12, "%s", (char *) &cfe[4]);
-+		}
-+	} else
- 		strcpy(cfe_version, "unknown");
- 	pr_info("CFE version: %s\n", cfe_version);
- 
diff --git a/target/linux/bcm63xx/patches-5.4/368-MIPS-BCM63XX-add-support-for-matching-the-board_info.patch b/target/linux/bcm63xx/patches-5.4/368-MIPS-BCM63XX-add-support-for-matching-the-board_info.patch
index db30de2183..ba7346ce28 100644
--- a/target/linux/bcm63xx/patches-5.4/368-MIPS-BCM63XX-add-support-for-matching-the-board_info.patch
+++ b/target/linux/bcm63xx/patches-5.4/368-MIPS-BCM63XX-add-support-for-matching-the-board_info.patch
@@ -35,7 +35,7 @@ Signed-off-by: Jonas Gorski <jogo at openwrt.org>
  
  	/* read base address of boot chip select (0)
  	 * 6328/6362 do not have MPI but boot from a fixed address
-@@ -742,6 +747,16 @@ void __init board_bcm963xx_init(void)
+@@ -746,6 +751,16 @@ void __init board_bcm963xx_init(void)
  	} else {
  		board_name = bcm63xx_nvram_get_name();
  	}



More information about the lede-commits mailing list