
Hello Stelian and others,
I have made some progress here, and I would like to inform you all:
But I have a question here: Does USB-storage devices work in U-boot at your place? (e.g. 1GB USB memory stick) I use U-boot 1.3.4-rc1
You're correct, USB support on the AT91SAM9 boards has some unknown issues. I can reproduce the behaviour you're seing easily here. Nicolas Ferre (added in CC:) confirmed the problem too (with both the current U-Boot version and the atmel specific 1.1.5-atmel_1.5 version). But he is very certain that it did work at some time in the past, with some USB storage devices.
I have done a lot of debugging/testing etc. and I noticed that binary deliverables of U-boot for the evaluationkit work properly with USB-storage devices on the AT91SAM9261-EK kit. They were all based on U-boot 1.1.3, 1.1.4, 1.1.5 Atmel versions.
But, I was not able to get a working version when I build such a code tree myself. I use gcc version 4.2.3 (Sourcery G++ Lite 2008q1-126) An hour ago I got the stupid idea to get an older compiler: gcc version 3.4.2 (release) (CodeSourcery ARM Q3D 2004)
And this one delivers a working usb-ohci in u-boot.bin :-))
Even u-boot-1.3.4-rc1 now works with USB-storage devices on these at91sam9261 cores. I also tried GCC 4.1.0, but that one delivered also a broken binary Compiling without optimisation (-Os) resulted in a binary that did not boot at all... (not debugged yet why)
So, with GCC 4.2.3 everything in U-boot seems to work, except the USB-OHCI driver... For the USB-OHCI driver we apparantly need a GCC 3.xx compiler.
Now, we need to debug why GCC 4.x is a problem...
Kind Regards,
Remy
So it may be a matter of hardware (lo or hi-speed USB storage devices ?), or a matter of timing somewhere in the driver, I do not know. The Linux USB stack works perfectly, so this is not a hardware problem on the AT91SAM9 chip or board.
Somebody needs to debug this, but I didn't found the time to investigate yet. If you badly need it to work, well, you're welcome to try debugging it :)