
Le 21/10/2010 14:00, Wolfgang Denk a écrit :
Dear Albert ARIBAUD,
In message4CC01C6B.9090904@free.fr you wrote:
Wolfgang/other testers, can you do the following three tests?
My test looks like this:
usb_test=usb start;run usb_test20 usb_test30 usb_test40 usb_test2=usb read 80800000 0 100;date usb_test20=run usb_test2 usb_test2 usb_test2 usb_test2 usb_test2 usb_test3=usb read 80800000 0 1000;date usb_test30=run usb_test3 usb_test3 usb_test3 usb_test3 usb_test3 usb_test4=usb read 80800000 0 10000;date usb_test40=run usb_test4 usb_test4 usb_test4 usb_test4 usb_test4
I.e. I will repeat 5 reads with 256, 4096 resp. 65536 blocks, starting with the small counts, going up.
- Replace the three mcr instructions I added in my patch with this single
Hangs at 2nd read of 4096 blocks.
- Replace the three mcr instructions I added in my patch with this single
Hangs at 2nd read of 4096 blocks.
- Replace the three mcr instructions I added in my patch with these two
Hangs at 1st read of 4096 blocks.
Best regards,
Wolfgang Denk
Hmm... The USB code runs well for 256 blocks? This makes me question a code fixup issue, because the code executed is certainly the same regardless to the count of USB blocks (some parts get executed in a loop, but then they've been put in the cache in the first iteration, and that does not depend on the number of iterations), so IMO an i-cache issue would also be the same regardless to block count.
OTOH, block count directly affects how much memory gets written into, and in that respect there can be a difference between fixed relocation and ELF based relocation, because u-boot does not land at the same location in both cases.
On this board, where does u-boot run without ELF relocation? Where does it run with ELF relocation? What size is a single USB block?
Amicalement,