bcm63xx: Improve CFE version mod patch.
Fix "cfe-" string length copy. Check if there's an extra byte a.b.c-d.e / a.b.c-d.e-f. Add support for Huawei CFE versions ("cfe-vd"). Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com> Patchwork: http://patchwork.openwrt.org/patch/3766/ Signed-off-by: Jonas Gorski <jogo@openwrt.org> SVN-Revision: 37101
This commit is contained in:
parent
6df83c3f89
commit
7d1cd9dfab
9 changed files with 33 additions and 17 deletions
|
@ -1,11 +1,27 @@
|
||||||
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
|
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
|
||||||
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
|
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
|
||||||
@@ -837,6 +837,8 @@ void __init board_prom_init(void)
|
@@ -834,10 +834,20 @@ void __init board_prom_init(void)
|
||||||
if (!memcmp(cfe, "cfe-v", 5))
|
|
||||||
snprintf(cfe_version, sizeof(cfe_version), "%u.%u.%u-%u.%u",
|
/* dump cfe version */
|
||||||
cfe[5], cfe[6], cfe[7], cfe[8], cfe[9]);
|
cfe = boot_addr + BCM963XX_CFE_VERSION_OFFSET;
|
||||||
+ else if (!memcmp(cfe, "cfe-", 4))
|
- if (!memcmp(cfe, "cfe-v", 5))
|
||||||
+ snprintf(cfe_version, 16, "%s", (char *) &cfe[4]);
|
- snprintf(cfe_version, sizeof(cfe_version), "%u.%u.%u-%u.%u",
|
||||||
else
|
- 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");
|
strcpy(cfe_version, "unknown");
|
||||||
printk(KERN_INFO PFX "CFE version: %s\n", cfe_version);
|
printk(KERN_INFO PFX "CFE version: %s\n", cfe_version);
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
|
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
|
||||||
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
|
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
|
||||||
@@ -902,6 +902,8 @@ void __init board_prom_init(void)
|
@@ -910,6 +910,8 @@ void __init board_prom_init(void)
|
||||||
if (BCMCPU_IS_6348())
|
if (BCMCPU_IS_6348())
|
||||||
val |= GPIO_MODE_6348_G3_EXT_MII |
|
val |= GPIO_MODE_6348_G3_EXT_MII |
|
||||||
GPIO_MODE_6348_G0_EXT_MII;
|
GPIO_MODE_6348_G0_EXT_MII;
|
||||||
|
|
|
@ -37,7 +37,7 @@ Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
|
||||||
#include <bcm63xx_dev_pcmcia.h>
|
#include <bcm63xx_dev_pcmcia.h>
|
||||||
#include <bcm63xx_dev_spi.h>
|
#include <bcm63xx_dev_spi.h>
|
||||||
#include <bcm63xx_dev_usb_ehci.h>
|
#include <bcm63xx_dev_usb_ehci.h>
|
||||||
@@ -995,6 +996,7 @@ int __init board_register_devices(void)
|
@@ -1003,6 +1004,7 @@ int __init board_register_devices(void)
|
||||||
pr_err(PFX "failed to register fallback SPROM\n");
|
pr_err(PFX "failed to register fallback SPROM\n");
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -18,7 +18,7 @@ Subject: [PATCH 58/72] BCM63XX: allow providing fixup data in board data
|
||||||
|
|
||||||
#include <uapi/linux/bcm933xx_hcs.h>
|
#include <uapi/linux/bcm933xx_hcs.h>
|
||||||
#include <uapi/linux/bcm963xx_tag.h>
|
#include <uapi/linux/bcm963xx_tag.h>
|
||||||
@@ -950,6 +951,7 @@ int __init board_register_devices(void)
|
@@ -958,6 +959,7 @@ int __init board_register_devices(void)
|
||||||
{
|
{
|
||||||
int button_count = 0;
|
int button_count = 0;
|
||||||
int led_count = 0;
|
int led_count = 0;
|
||||||
|
@ -26,7 +26,7 @@ Subject: [PATCH 58/72] BCM63XX: allow providing fixup data in board data
|
||||||
|
|
||||||
if (board.has_uart0)
|
if (board.has_uart0)
|
||||||
bcm63xx_uart_register(0);
|
bcm63xx_uart_register(0);
|
||||||
@@ -988,7 +990,8 @@ int __init board_register_devices(void)
|
@@ -996,7 +998,8 @@ int __init board_register_devices(void)
|
||||||
* do this after registering enet devices
|
* do this after registering enet devices
|
||||||
*/
|
*/
|
||||||
#ifdef CONFIG_SSB_PCIHOST
|
#ifdef CONFIG_SSB_PCIHOST
|
||||||
|
@ -36,7 +36,7 @@ Subject: [PATCH 58/72] BCM63XX: allow providing fixup data in board data
|
||||||
memcpy(bcm63xx_sprom.et0mac, bcm63xx_sprom.il0mac, ETH_ALEN);
|
memcpy(bcm63xx_sprom.et0mac, bcm63xx_sprom.il0mac, ETH_ALEN);
|
||||||
memcpy(bcm63xx_sprom.et1mac, bcm63xx_sprom.il0mac, ETH_ALEN);
|
memcpy(bcm63xx_sprom.et1mac, bcm63xx_sprom.il0mac, ETH_ALEN);
|
||||||
if (ssb_arch_register_fallback_sprom(
|
if (ssb_arch_register_fallback_sprom(
|
||||||
@@ -1034,5 +1037,9 @@ int __init board_register_devices(void)
|
@@ -1042,5 +1045,9 @@ int __init board_register_devices(void)
|
||||||
platform_device_register(&bcm63xx_gpio_keys_device);
|
platform_device_register(&bcm63xx_gpio_keys_device);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -11,7 +11,7 @@ Subject: [PATCH 69/80] MIPS: BCM63XX: pass caldata info to flash
|
||||||
|
|
||||||
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
|
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
|
||||||
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
|
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
|
||||||
@@ -1009,7 +1009,7 @@ int __init board_register_devices(void)
|
@@ -1017,7 +1017,7 @@ int __init board_register_devices(void)
|
||||||
if (board.num_spis)
|
if (board.num_spis)
|
||||||
spi_register_board_info(board.spis, board.num_spis);
|
spi_register_board_info(board.spis, board.num_spis);
|
||||||
|
|
||||||
|
|
|
@ -39,7 +39,7 @@
|
||||||
return;
|
return;
|
||||||
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
|
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
|
||||||
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
|
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
|
||||||
@@ -1039,7 +1039,8 @@ int __init board_register_devices(void)
|
@@ -1047,7 +1047,8 @@ int __init board_register_devices(void)
|
||||||
|
|
||||||
/* register any fixups */
|
/* register any fixups */
|
||||||
for (i = 0; i < board.has_caldata; i++)
|
for (i = 0; i < board.has_caldata; i++)
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
|
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
|
||||||
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
|
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
|
||||||
@@ -1040,7 +1040,7 @@ int __init board_register_devices(void)
|
@@ -1048,7 +1048,7 @@ int __init board_register_devices(void)
|
||||||
/* register any fixups */
|
/* register any fixups */
|
||||||
for (i = 0; i < board.has_caldata; i++)
|
for (i = 0; i < board.has_caldata; i++)
|
||||||
pci_enable_ath9k_fixup(board.caldata[i].slot, board.caldata[i].caldata_offset,
|
pci_enable_ath9k_fixup(board.caldata[i].slot, board.caldata[i].caldata_offset,
|
||||||
|
|
|
@ -36,7 +36,7 @@ Subject: [PATCH 72/72] 446-BCM63XX-add-a-fixup-for-rt2x00-devices
|
||||||
|
|
||||||
#include <uapi/linux/bcm933xx_hcs.h>
|
#include <uapi/linux/bcm933xx_hcs.h>
|
||||||
#include <uapi/linux/bcm963xx_tag.h>
|
#include <uapi/linux/bcm963xx_tag.h>
|
||||||
@@ -1038,9 +1039,19 @@ int __init board_register_devices(void)
|
@@ -1046,9 +1047,19 @@ int __init board_register_devices(void)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* register any fixups */
|
/* register any fixups */
|
||||||
|
|
|
@ -100,7 +100,7 @@ Subject: [PATCH 32/63] bcm63xx: add support for 96368MVWG board.
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -2452,12 +2528,25 @@ void __init board_prom_init(void)
|
@@ -2460,12 +2536,25 @@ void __init board_prom_init(void)
|
||||||
bcm63xx_pci_enabled = 1;
|
bcm63xx_pci_enabled = 1;
|
||||||
if (BCMCPU_IS_6348())
|
if (BCMCPU_IS_6348())
|
||||||
val |= GPIO_MODE_6348_G2_PCI;
|
val |= GPIO_MODE_6348_G2_PCI;
|
||||||
|
|
Loading…
Reference in a new issue