well, same issue: ssb: Sonics Silicon Backplane found on PCI device 0000:00:02.0 ssb: Core 0 found: ChipCommon (cc 0x800, rev 0x02, vendor 0x4243) ssb: Core 1 found: IEEE 802.11 (cc 0x812, rev 0x04, vendor 0x4243) ssb: Core 2 found: PCMCIA (cc 0x80D, rev 0x01, vendor 0x4243) ssb: Core 3 found: V90 (cc 0x807, rev 0x01, vendor 0x4243) ssb: Core 4 found: PCI (cc 0x804, rev 0x07, vendor 0x4243) ssb: Core 5 found: IEEE 802.11 (cc 0x812, rev 0x04, vendor 0x4243) ssb: Ignoring additional 802.11 core ssb: Using different timing for ioread 16. udelay(10) ssb: Using different timing for ioread 16. udelay(10) ssb: WARNING: Invalid SPROM CRC (corrupt SPROM) ssb: SPROM revision 91 detected. ssb: Unsupported SPROM revision 91 detected. Will extract v1 ssb: Sonics Silicon Backplane found on PCI device 0000:00:04.0
I tried udelay(5) and udelay(10). Something strange happens there that ssb isn't able to access SPROM ... Larry Finger wrote: > Daniel Schmitt wrote: >> Larry, I don't think that sprom_do_read is able to read _ANY_ valid data >> because if I do it today it results it > > Is there any reason to suspect a timing issue? I'm not familiar with > your platform. If that is the issue, perhaps might try (my mailer will > mangle this, but you get the idea): > > Index: wireless-testing/drivers/ssb/pci.c > =================================================================== > --- wireless-testing.orig/drivers/ssb/pci.c > +++ wireless-testing/drivers/ssb/pci.c > @@ -246,8 +246,10 @@ static int sprom_do_read(struct ssb_bus > { > int i; > > - for (i = 0; i < bus->sprom_size; i++) > + for (i = 0; i < bus->sprom_size; i++) { > sprom[i] = ioread16(bus->mmio + SSB_SPROM_BASE + (i * 2)); > + udelay(5); > + } > > return 0; > } > > > _______________________________________________ Bcm43xx-dev mailing list Bcm43xx-dev@lists.berlios.de https://lists.berlios.de/mailman/listinfo/bcm43xx-dev