[U-Boot] ELF_RELOC causes strange I-cache issues

Albert ARIBAUD albert.aribaud at free.fr
Thu Oct 21 12:34:01 CEST 2010


Le 21/10/2010 12:11, Reinhard Meyer a écrit :
> Hello,
>
> observation here:
>
> ICACHE is always ON. No crash with "usb read 21000000 0 1000"
> Sorry that I can't reproduce the problem here, not even with 10000 blocks.
> (tried a few dozen times)
> (ARM926EJS - AT91SAM9XE)
> (based on TOT 3ed16071b006dbda65070a4143db74da469f6e30 of 35h ago)
>
> But with DCACHE ON, the USB Stick is not found - maybe a timing problem:
>
> TOP9000>  dc off
> Data (writethrough) Cache is OFF
> TOP9000>  usb reset
> (Re)start USB...
> USB:   scanning bus for devices... 2 USB Device(s) found
>         scanning bus for storage devices... 1 Storage Device(s) found
> TOP9000>  dc on
> Data (writethrough) Cache is ON
> TOP9000>  usb reset
> (Re)start USB...
> USB:   scanning bus for devices... ERROR: CTL:TIMEOUT
> 2 USB Device(s) found
>         scanning bus for storage devices... 0 Storage Device(s) found
> TOP9000>
>
>
> Reinhard

If the USB controller uses DMA, then the DCache issue probably has to do 
with making sure to flush the (relevant lines of) cache before 
memory-to-device DMAs and to invalidate the (again, relevant lines of) 
cache after device-to-memory DMAs.

And I suggest we move this dcache issue to its own discussion thread.

Amicalement,
-- 
Albert.


More information about the U-Boot mailing list