[U-Boot] "EHCI timed out on TD" on OpenRD Ultimate

Hello!
I tried running latest U-Boot on OpenRD Ultimate, and USB support appears to be broken:
Marvell>> usb reset
(Re)start USB...
USB: Register 10011 NbrPorts 1
USB EHCI 1.00
scanning bus for devices... EHCI timed out on TD - token=0x80008c80
2 USB Device(s) found
scanning bus for storage devices... 0 Storage Device(s) found
According to "git bisect" the patch which causes this behavior is c2dd0d45540397704de9b13287417d21049d34c6 (armv7: integrate cache maintenance support). I tried increasing USB_TIMEOUT_MS as was suggested by Jason Cooper, but that did not help.

On Thu, Jul 28, 2011 at 07:25:54PM +0400, Alexei Ozhigov wrote:
I tried running latest U-Boot on OpenRD Ultimate, and USB support appears to be broken:
Marvell>> usb reset
(Re)start USB...
USB: Register 10011 NbrPorts 1
USB EHCI 1.00
scanning bus for devices... EHCI timed out on TD - token=0x80008c80
2 USB Device(s) found
scanning bus for storage devices... 0 Storage Device(s) found
According to "git bisect" the patch which causes this behavior is c2dd0d45540397704de9b13287417d21049d34c6 (armv7: integrate cache maintenance support).
Did you try reverting this patch?
I tried increasing USB_TIMEOUT_MS as was suggested by Jason Cooper, but that did not help.
Yes, I don't think increasing the timeout is the final answer.
hth,
Jason.

2011/7/28 Jason u-boot@lakedaemon.net:
On Thu, Jul 28, 2011 at 07:25:54PM +0400, Alexei Ozhigov wrote:
I tried running latest U-Boot on OpenRD Ultimate, and USB support appears to be broken:
Marvell>> usb reset
(Re)start USB...
USB: Register 10011 NbrPorts 1
USB EHCI 1.00
scanning bus for devices... EHCI timed out on TD - token=0x80008c80
2 USB Device(s) found
scanning bus for storage devices... 0 Storage Device(s) found
According to "git bisect" the patch which causes this behavior is c2dd0d45540397704de9b13287417d21049d34c6 (armv7: integrate cache maintenance support).
Did you try reverting this patch? ... Jason.
Yes, after reverting USB works all right, at least reading from USB flash works.

On Thu, Jul 28, 2011 at 11:15:56PM +0400, Alexei Ozhigov wrote:
2011/7/28 Jason u-boot@lakedaemon.net:
On Thu, Jul 28, 2011 at 07:25:54PM +0400, Alexei Ozhigov wrote:
I tried running latest U-Boot on OpenRD Ultimate, and USB support appears to be broken:
Marvell>> usb reset
(Re)start USB...
USB: Register 10011 NbrPorts 1
USB EHCI 1.00
scanning bus for devices... EHCI timed out on TD - token=0x80008c80
2 USB Device(s) found
scanning bus for storage devices... 0 Storage Device(s) found
According to "git bisect" the patch which causes this behavior is c2dd0d45540397704de9b13287417d21049d34c6 (armv7: integrate cache maintenance support).
Did you try reverting this patch? ... Jason.
Yes, after reverting USB works all right, at least reading from USB flash works.
Great, that's a start. I've emailed the relevant folks and am waiting for a response as this is a little bit out of my depth.
thx,
Jason.

On Fri, Jul 29, 2011 at 11:51:08AM -0400, Jason wrote:
On Thu, Jul 28, 2011 at 11:15:56PM +0400, Alexei Ozhigov wrote:
2011/7/28 Jason u-boot@lakedaemon.net:
On Thu, Jul 28, 2011 at 07:25:54PM +0400, Alexei Ozhigov wrote:
I tried running latest U-Boot on OpenRD Ultimate, and USB support appears to be broken:
Marvell>> usb reset
(Re)start USB...
USB: Register 10011 NbrPorts 1
USB EHCI 1.00
scanning bus for devices... EHCI timed out on TD - token=0x80008c80
2 USB Device(s) found
scanning bus for storage devices... 0 Storage Device(s) found
According to "git bisect" the patch which causes this behavior is c2dd0d45540397704de9b13287417d21049d34c6 (armv7: integrate cache maintenance support).
Did you try reverting this patch? ... Jason.
Yes, after reverting USB works all right, at least reading from USB flash works.
Great, that's a start. I've emailed the relevant folks and am waiting for a response as this is a little bit out of my depth.
Ok, I figured it out (or, rather, I googled it to death). Aneesh's patch is correct, but not all drivers are dcache aware. the Marvell/kirkwood usb driver is one of them. See here [1] for the explanation. All you need to do is add
#define CONFIG_SYS_DCACHE_OFF
to include/configs/openrd.h or similar. I'm testing right now on my side. Please test on yours to see if it works.
Thanks,
Jason.

On Fri, Jul 29, 2011 at 12:30:46PM -0400, Jason wrote:
On Fri, Jul 29, 2011 at 11:51:08AM -0400, Jason wrote:
On Thu, Jul 28, 2011 at 11:15:56PM +0400, Alexei Ozhigov wrote:
2011/7/28 Jason u-boot@lakedaemon.net:
On Thu, Jul 28, 2011 at 07:25:54PM +0400, Alexei Ozhigov wrote:
I tried running latest U-Boot on OpenRD Ultimate, and USB support appears to be broken:
Marvell>> usb reset
(Re)start USB...
USB: Register 10011 NbrPorts 1
USB EHCI 1.00
scanning bus for devices... EHCI timed out on TD - token=0x80008c80
2 USB Device(s) found
scanning bus for storage devices... 0 Storage Device(s) found
According to "git bisect" the patch which causes this behavior is c2dd0d45540397704de9b13287417d21049d34c6 (armv7: integrate cache maintenance support).
Did you try reverting this patch? ... Jason.
Yes, after reverting USB works all right, at least reading from USB flash works.
Great, that's a start. I've emailed the relevant folks and am waiting for a response as this is a little bit out of my depth.
Ok, I figured it out (or, rather, I googled it to death). Aneesh's patch is correct, but not all drivers are dcache aware. the Marvell/kirkwood usb driver is one of them. See here [1] for the explanation. All you need to do is add
#define CONFIG_SYS_DCACHE_OFF
to include/configs/openrd.h or similar. I'm testing right now on my side. Please test on yours to see if it works.
Grrr. I've tried both defining CONFIG_SYS_DCACHE_OFF, and reverting c2dd0d45540397704de9b13287417d21049d34c6... neither work on the dreamplug. :-( Something else is going on.
I don't want to release v6 of the dreamplug patch series until this is nailed down. Especially since the rootfs / kernel / initrd is on the microsd card.
thx,
Jason.
participants (2)
-
Alexei Ozhigov
-
Jason