[U-Boot] USB EHCI on MPC8349 based board very slow

Hi all,
I'm trying to use the ehci-hcd driver to load linux from a USB memory stick.
The version I'm using is commit id:c06326c73bf90e48a8e1cf8893ad31c575423f50 of the mpc-83xx fork.
The device is detected but the data transfers are very slow (takes about 20 seconds to load a ~3M file into RAM).
On linux itself, the operation is instantaneous:
dd if=/mnt/flash/uRamdisk of=/dev/null
The output of usb reset (with DEBUG_HUB enabled) is:
=> usb reset (Re)start USB... USB: PORTSC0=0000008c->0010008c Register 1210012 NbrPorts 2 USB EHCI 1.00 scanning bus for devices... USB hub found 2 ports detected ganged power switching standalone hub global over-current protection power on to power good time: 510ms hub controller current requirement: 0mA port 1 is removable port 2 is removable get_hub_status returned status 1, change 2 local power source is lost (inactive) no over-current condition exists enabling power on all ports port 1 returns 0 port 2 returns 0 Port 1 Status 101 Change 1 port 1 connection change portstatus 101, change 1, 12 Mb/s hub_port_reset: resetting port 0... portstatus 503, change 10, 480 Mb/s STAT_C_CONNECTION = 0 STAT_CONNECTION = 1 USB_PORT_STAT_ENABLE 1 hub_port_reset: resetting port 0... portstatus 503, change 10, 480 Mb/s STAT_C_CONNECTION = 0 STAT_CONNECTION = 1 USB_PORT_STAT_ENABLE 1 USB hub found 7 ports detected individual port power switching standalone hub individual port over-current protection power on to power good time: 100ms hub controller current requirement: 1mA port 1 is removable port 2 is removable port 3 is removable port 4 is removable port 5 is removable port 6 is removable port 7 is removable get_hub_status returned status 0, change 0 local power source is good no over-current condition exists enabling power on all ports port 1 returns 0 port 2 returns 0 port 3 returns 0 port 4 returns 0 port 5 returns 0 port 6 returns 0 port 7 returns 0 Port 1 Status 100 Change 0 Port 2 Status 100 Change 0 Port 3 Status 100 Change 0 Port 4 Status 100 Change 0 Port 5 Status 100 Change 0 Port 6 Status 100 Change 0 Port 7 Status 100 Change 0 Port 2 Status 101 Change 1 port 2 connection change portstatus 101, change 1, 12 Mb/s hub_port_reset: resetting port 1... portstatus 503, change 10, 480 Mb/s STAT_C_CONNECTION = 0 STAT_CONNECTION = 1 USB_PORT_STAT_ENABLE 1 hub_port_reset: resetting port 1... portstatus 503, change 10, 480 Mb/s STAT_C_CONNECTION = 0 STAT_CONNECTION = 1 USB_PORT_STAT_ENABLE 1 3 USB Device(s) found scanning bus for storage devices... 1 Storage Device(s) found
and the device tree:
Device Tree: 1 Hub (480 Mb/s, 0mA) | u-boot EHCI Host Controller | +-2 Hub (480 Mb/s, 2mA) | +-3 Mass Storage (480 Mb/s, 200mA) Micron Technology Real SSD eUSB 2GB ECF0022700011917
Any help would be appreciated as I'm not exactly sure what the issue is.
Also is it possible to set the linux root file system directly using (for example) root=/dev/sda2 without first loading a ramdisk? My initial experiments failed, but I'm not sure if there are any show stoppers.
Thanks again
Dushara Jayasinghe
participants (1)
-
Dushara Jayasinghe