brcm-wl: use new brcm63xx fallback sprom

This fixes brcm63xx fallback sprom extraction.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
Signed-off-by: Jonas Gorski <jogo@openwrt.org>

SVN-Revision: 42725
master
Jonas Gorski 10 years ago
parent f9fb48c6bc
commit 9a24294b02
  1. 24
      package/kernel/broadcom-wl/patches/910-fallback-sprom.patch

@ -6,24 +6,13 @@
+#if defined(CONFIG_SSB_PCIHOST) && defined(CONFIG_BOARD_BCM963XX) +#if defined(CONFIG_SSB_PCIHOST) && defined(CONFIG_BOARD_BCM963XX)
+#include <linux/ssb/ssb.h> +#include <linux/ssb/ssb.h>
+extern struct ssb_sprom bcm63xx_sprom; +extern int bcm63xx_get_fallback_sprom(uint pci_bus, uint pci_slot, struct ssb_sprom *out);
+#endif +#endif
+ +
#ifdef WLTEST #ifdef WLTEST
#include <sbsprom.h> #include <sbsprom.h>
#endif /* WLTEST */ #endif /* WLTEST */
@@ -2058,6 +2063,10 @@ BCMATTACHFN(initvars_srom_pci)(si_t *sih @@ -2120,6 +2125,63 @@ BCMATTACHFN(initvars_srom_pci)(si_t *sih
bool flash = FALSE;
int err = 0;
+#if defined(CONFIG_SSB_PCIHOST) && defined(CONFIG_BOARD_BCM963XX)
+ char eabuf[18];
+#endif
+
/*
* Apply CRC over SROM content regardless SROM is present or not,
* and use variable <devpath>sromrev's existance in flash to decide
@@ -2120,6 +2129,58 @@ BCMATTACHFN(initvars_srom_pci)(si_t *sih
goto varscont; goto varscont;
} }
@ -32,9 +21,14 @@
+ +
+ if( base != NULL ) + if( base != NULL )
+ { + {
+ varbuf_init(&b, base, MAXSZ_NVRAM_VARS); + char eabuf[18];
+ struct ssb_sprom bcm63xx_sprom;
+ uint pci_bus = osl_pci_bus(osh), pci_slot = osl_pci_slot(osh);
+
+ bcm63xx_get_fallback_sprom(pci_bus, pci_slot, &bcm63xx_sprom);
+ printk("BCM%X(%02x:%02x) using sprom version %i\n", sih->chip, pci_bus, pci_slot, bcm63xx_sprom.revision);
+ +
+ printk("Got version %i SPROM from SSB\n", bcm63xx_sprom.revision); + varbuf_init(&b, base, MAXSZ_NVRAM_VARS);
+ +
+ varbuf_append(&b, vstr_sromrev, bcm63xx_sprom.revision); + varbuf_append(&b, vstr_sromrev, bcm63xx_sprom.revision);
+ varbuf_append(&b, vstr_boardrev, bcm63xx_sprom.board_rev); + varbuf_append(&b, vstr_boardrev, bcm63xx_sprom.board_rev);

Loading…
Cancel
Save