[U-Boot] EHCI driver problem

Jussi Eronen jussi.eronen at saunalahti.fi
Mon Sep 28 16:32:29 CEST 2009


Hi,

I am working on a propietary board, which has MPC8270 cpu (big endian mode) and NEC uPD720101 USB controller, with devices connected to ports 1-4. OHCI and EHCI work fine with Linux kernel and OHCI works also in u-boot.

I recall from some discussion that u-boot can only use one OHCI controller at a time and EHCI could be used to overcome this limitation. I tried to config u-boot for OHCI#1 and #2 and the both work as expected using ports 1&3 or 2&4. To get simulateous access to all ports, I wanted to get EHCI to work with u-boot. Problem is, that driver doesn't recognice any devices.

My config for EHCI is
#define CONFIG_LEGACY_USB_INIT_SEQ 1
#define CONFIG_SYS_USB_HOST
#define CONFIG_PCI_EHCI_DEVICE 0
#define CONFIG_USB_EHCI
#define CONFIG_USB_EHCI_PCI 1
#define CONFIG_EHCI_MMIO_BIG_ENDIAN     1
#define CONFIG_SYS_USB_EHCI_MAX_ROOT_PORTS 10 #define CONFIG_PCI_EHCI_DEVNO 0 #define CONFIG_EHCI_HCD_INIT_AFTER_RESET 1

When I run 'usb start', this is what I get (added some extra debugging messages):
usb start
(Re)start USB...
USB:   Register 2395 NbrPorts 5
USB EHCI 1.00
scanning bus for devices... New Device 0 ....

So init founds the chip and tries to use it. However, resetting of each port fails (or that was at least how I interpreted later messages).

Later for each port reset is tried 5 times

usb_control_msg: request: 0x3, requesttype: 0x23, value 0x4 index 0x1 length 0x0 ehci_submit_root, rootdev=1, req=3 (0x3), type=35 (0x23), value=4, index=1 Len is 0 (00000000 0)
usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x1 length 0x4 ehci_submit_root, rootdev=1, req=0 (0x0), type=163 (0xa3), value=0, index=1 portstatus 511, change 10, 480 Mb/s STAT_C_CONNECTION = 0 STAT_CONNECTION = 1  USB_PORT_STAT_ENABLE 0 Cannot enable port 1 after 5 retries, disabling port.
Maybe the USB cable is bad?
cannot reset port 1!?

--Jussi





More information about the U-Boot mailing list