
Hello Albert,
Albert ARIBAUD wrote:
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.
Yep. I think if you want to use dcache here, you have to activate CONFIG_EHCI_DCACHE and implement the flush_dcache_range(), invalidate_dcache_range(), flush_invalidate() functions for your plattform, if not implemented yet.
And I suggest we move this dcache issue to its own discussion thread.
Yep.
bye, Heiko