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

Reply via email to