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

Dushara Jayasinghe DusharaJ at optiscan.com
Fri Jun 12 08:34:21 CEST 2009


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


More information about the U-Boot mailing list