I am using a TI/Mistral AM3715 / 3430 EVM. In menuconfig I have enabled
EHCI HCDRoot Hub Transaction TranslatorImproved Transaction TranslatorInventra Highspeed Dual ROle Controller - Omap 343xUSB Mass Storage supportUSB Modem (CDC ACM) supportUSB Serial converter supportUSB GenericUSB FTDIUSB Prolific 2303
This all builds and runs fine. Using the ECHI-Host USB port on the EVM:
If I plug in a USB to Serial lead - an FTDI device or Prolific 2303 device - I get the message "hub1-0:1.0: Cannot enable port 2. Maybe the USB cable is bad?"
If I plug in a USB Flash stick it get enumerated and works OK.
If I plug in a USB Hub that gets recognised fine.
If I plug the FTDI and Prolific USB To Serial devices into the hub, they are are both recognised OK and their respective drivers are loaded.
So why don't they work when plugged in directly? It's puzzling!
The EHCI port is HS only. You need a HS hub to be able to use LS/FS devices. Mostly likely your USB Serial device is FS so direct connection did not work. Most likely your USB Flash stick is HS so it did work directly connected.
Steve K.
Thanks for the reply Steve. This may well be the issue. What makes it HS only? The processor datasheet talks about the USB Host ports supporting all speeds, the ULPI connections supporting HS & FS.
In the USB spec Hosts must be able to switch from EHCI to OHCI if the peripheral requires it. Is the Linux driver the limiting factor?
If it's hardware, our new boards may be stuffed!
I also noticed an incompatibility in the pin function between the TI and the SMSC3320 PHY. When switching to FS/LS mode, 3pin or 6pin serial; the TI has TX_EN on usb Data[3], DATA on Data[2] & SE0 on Data[1]. The SMSC has TX_EN on Data[0], Data on Data[1] & SE0 on Data[2].
So that won't be able to switch to FS/LS.
Is the TI chip compatible with any other PHY chips out there? ( TI's own TUSB1210 PHY doesn't match)
And also, to really put the nail in the coffin; from the AM3715 Errata:
"Advisory 1.113
USB HOST: Impossible To Attach a FS Device To An EHCI Port - Handoff To OHCI
Is Not Functional
Revision(s) Affected
1.2, 1.1 and 1.0
Details
It is not possible to perform USB transactions with an FS device on port USB_B1/B2.
EHCI is able to detect the device, reset it, and find that it is a FS device. SW will then
hand off the port to OHCI by setting the PORTSC[5]:PO (PORT OWNER) bit.
OHCI is able to detect the connection, but then cannot communicate with the device.
When the PHY switches to FsLsSerialMode, the ULPI DIR signal will go to 1 forever. In
HS mode, if DIR is 1, then the ULPI DATA switches to input only mode. This input only
configuration is wrongly kept after switching to FsLsSerialMode, so USB transactions
cannot occur.
Attaching a FS device directly to an OHCI port is working fine.
Workaround(s)
Only attach FS devices to OHCI ports or use an HS hub to interface between EHCI ports
and LS/FS/HS devices."
So I guess that's our boards wiped then.
If we are to do a quick and dirty mod, can the TUSB1210 be used? It seems to imply that it can do HS, FS and LS comms in ULPI mode. Would the AM3715 be able to support this? Or do we have to use a hub chip so the Host is in HS mode and the hub handles transaction translation?
For others researching this issue there other important threads below:
http://e2e.ti.com/support/dsp/omap_applications_processors/f/447/p/94945/345167.aspx#345167
http://e2e.ti.com/support/dsp/omap_applications_processors/f/447/t/122651.aspx
http://e2e.ti.com/support/dsp/omap_applications_processors/f/447/t/94945.aspx
http://e2e.ti.com/support/dsp/sitara_arm174_microprocessors/f/416/t/43433.aspx