Iam running omap3-linux kernel version 2.6.34. When Linux boots on the Beagle Board it seems that it correctly initializes the EHCI controller, but it is not able to detect any usb devices connected to that port. dmesg says:
usbcore: registered new interface driver asix
usbcore: registered new interface driver cdc_ether
usbcore: registered new interface driver MOSCHIP usb-ethernet driver
usbmon: debugfs is not available
ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
ehci-omap ehci-omap.0: OMAP-EHCI Host Controller
ehci-omap ehci-omap.0: new USB bus registered, assigned bus number 1
ehci-omap ehci-omap.0: irq 77, io mem 0x48064800
ehci-omap ehci-omap.0: USB 2.0 started, EHCI 1.00
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 3 ports detected
g_serial gadget: Gadget Serial v2.4
g_serial gadget: g_serial ready
musb_hdrc musb_hdrc: MUSB HDRC host driver
musb_hdrc musb_hdrc: new USB bus registered, assigned bus number 2
hub 2-0:1.0: USB hub found
hub 2-0:1.0: 1 port detected
but if a device (I've tried it with USB keyboard, USB ethernet adapter and USB mass storage device) gets connected to the EHCI port nothing happens.
Can anyone tell me whats going on here? Thanks in advance.
The EHCI port is High Speed only. In order to use a keyboard or a mouse you must go through a USB 2.0 HUB.
thanks for your answer. I always thought EHCI is USB 2.0. Anyway, my actual objective is to get a USB2.0 ethernet adapter running on the EHCI port, but the EHCI-hcd driver for omap3 doesn't even detect the device.
Also Iam using USB serial gadget to get a serial connection to the board via the mini-USB port. I've found out that when the serial gadget driver is disabled, the normal (non-mini) USB port can detect mouse and keyboard, at least I can see that the mouse / keyboard is served with power. Isn't it possible to use the serial gadget driver for the mini-usb port and EHCI driver on the non-mini one at the same time?
I've heard that there are some patches for omap3 kernel sources around. Can you clarify that to me?
Gerald Coley wrote:
You must go through a high speed USB hub in order to connect the mouse and keyboard to the EHCI port. I'd recommend using a powered hub too. The EHCI port is high speed only on Beagle - it is unable to handle lower speed devices. The fact that you're getting power does not mean that the device enumerated.
There should be no issues using both USB ports at the same time.
You might want to make sure that you have HID support enabled (for mouse/keyboard) and USBNET (for the ethernet adapter) in your kernel.
Final thing to check is that you're using right u-boot version for your board. There was an update with C4, and it has to do with the way power is supplied to the EHCI port. However, since you report being able to get power from the port, that's likely not a problem.
thanks for the information. I checked everything you said, but it still does not work. I have usbnet, hid, ehci, serial gadget compiled in. And the ethernet adapter is for sure highspeed, so at least this should be recognized by the EHCI. But nothing. Again, the kernel seems to have no problem initializing all the things, but if a device gets plugged simply nothing happens. Here is the related kernel config directly from /proc/config.gz:
Please also notice that I will get a kernel exception within g_serial driver maybe this could be a problem?
Pawel Potera wrote:
dmesg output after boot:
cat /proc/bus/usb/devices says:
[root@beagleboard /root]# cat /proc/bus/usb/devices
cat: can't open '/proc/bus/usb/devices': No such file or directory
Furthermore there is no file existing in /proc/bus/usb directory
[root@beagleboard /root]# lsusb
Bus 001 Device 001: ID 1d6b:0002
Bus 002 Device 001: ID 1d6b:0002
@Pawel: Sorry for the spam, I just wanted to post the answer on the mail group. Thanks.
Pawel Potera wrote:
Unless I missed something, I don't see any USB messages related to any devices being plugged in. So, if something was supposed to show up, I'm not sure what to tell you.
you are right there are no USB related messages, because the EHCI driver does not enumarate any device. I have two USB HS devices here (a usb mass storage device and an USB-to-Ethernet adapter), non of these are detected by the EHCI-hcd driver. Anyway, Iam really out of ideas. Interestingly the driver does initialize the controller (also a hub with 3 ports is detected at init time) but doesn't detect any plug event of device. Maybe there is a kernel option left that I've probably missed?
Pawel Potera wrote:
The "hub" with 3 ports is the actual on-chip EHCI controller (only one port is brought out).
I finally figured out what the problem was and got my USB Ethernet adapter working:
Iam using the "omap3-dev-usb" branch of the u-boot-omap3 repository mentioned in http://elinux.org/U-boot_musb_gadget_support. This branch does not initialize the VAUX2 power voltage with 1.8V. Thus, the EHCI port does not detect and enumarate any USB device connected to it. If anyone uses this uboot branch and encounters the same problem the attached patch might help.
Thanks all for your help and investigated time on this issue.
Steve Kreyer wrote:
ehci_port_power.patch (889 Bytes)