Correctly detect CFE bootloaders starting with "cfe-" instead of "cfe-v".

Signed-off-by: Álvaro Fernández Rojas <nolt...@gmail.com>

Index: target/linux/brcm63xx/patches-3.3/802-cfe_version_mod.patch
===================================================================
--- target/linux/brcm63xx/patches-3.3/802-cfe_version_mod.patch (revisión: 0)
+++ target/linux/brcm63xx/patches-3.3/802-cfe_version_mod.patch (revisión: 0)
@@ -0,0 +1,30 @@
+--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
++++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
+@@ -2882,6 +2882,12 @@ void __init board_prom_init(void)
+       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 (!memcmp(cfe, "cfe-", 4)) {
++              for(i = 0; i < 0x10; i++) {
++                      cfe_version[i] = cfe[4 + i];
++              }
++              cfe_version[i] = 0;
++      }
+       else
+               strcpy(cfe_version, "unknown");
+       printk(KERN_INFO PFX "CFE version: %s\n", cfe_version);
+--- a/drivers/mtd/bcm63xxpart.c
++++ b/drivers/mtd/bcm63xxpart.c
+@@ -55,10 +55,10 @@ static int bcm63xx_detect_cfe(struct mtd
+       if (ret)
+               return ret;
+ 
+-      if (strncmp("cfe-v", buf, 5) == 0)
++      if (strncmp("cfe-", buf, 4) == 0)
+               return 0;
+ 
+-      /* very old CFE's do not have the cfe-v string, so check for magic */
++      /* very old CFE's do not have the cfe- string, so check for magic */
+       ret = mtd_read(master, BCM63XX_CFE_MAGIC_OFFSET, 8, &retlen,
+                      (void *)buf);
+       buf[retlen] = 0;
_______________________________________________
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel

Reply via email to