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
[email protected]
https://lists.berlios.de/mailman/listinfo/bcm43xx-dev