On 11/18/2009 11:36 AM, Oncaphillis wrote: > I already tried something similar. Unfortunately I can not report in detail > right now since I've once again killed my kernel and my acer stands at > home. > I'll give more details in a couple of hours -- but the punch line is: > > (1) if I transform the series of ioread16 into a series of ioread32 the > loop > runs through giving me a CRC error afterwards.
For you Rev. 8 SPROM, the program will get one CRC error as it first tries for the smaller SPROM found in versions 1-3. > (2) I tried to compensate for different endianess by doing this: Endianess is not an issue as you are just ding an internal transfer with le => le or be => be. > u32 *my_buff = (u32 *)spromm; > u32 dw; > > for (i = 0; i< bus->sprom_size/2; i = i++) { > dw = ioread32(bus->mmio + SSB_SPROM_BASE + (i * 4)); > my_buff[i] = (dw<< 16) | (dw>> 16); > } This one certainly would fail. After you get access to the machine, please try my patch. It has been tested here. The first few lines from the output are: ssb: Entering sprom_do_read ssb: Read 0x00002801 from SPROM ssb: Read 0x103C137C from SPROM ssb: Read 0x6DBE0078 from SPROM Larry _______________________________________________ Bcm43xx-dev mailing list Bcm43xx-dev@lists.berlios.de https://lists.berlios.de/mailman/listinfo/bcm43xx-dev