This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

USB on OMAP35x

Hi,

I am testing the USB port with my OAMP35x EVM board and it doesn't seem to be working.

Here is what I have:
BSP: 1.0.2
kernel: 2.6.22.18-omap3
Board revision: D

Experiment 1: connect a USB thumb drive using a mini-A (5-pin) male to A connector with an extension for A receptacle
No response from the kernel (this is a known good drive and cable)

Experiment 2: connect a 4-port self-powered hub with mini-A cable to the board
again, the hub is not detected. Further connecting a usb keyboard or mouse to the hub doesn't do anything either.

So I looked through 1.0.2 release notes section 3.6.2 Known Issues and Limitations. It mentions that older rev of EVM requires two mods:
1. Select the ISP1504 PHY;
2. Remove large surge suppressor in the D+ and D- lines

Does anyone know if these are applicable to rev.D board? Do I need to do anything to enable the usb host mode?

Thanks in advance,

Frank

A dump of "dmesg | grep usb":
======================
usbcore: registered new interface driver usbfs
usbcore: registered new interface driver hub
usbcore: registered new device driver usb
musb_hdrc: version 2.2a/db-0.5.2/dbg, musb-dma, host, debug=1
musb_platform_resume 171:
musb_hdrc: ConfigData=0xde (UTMI-8, dyn FIFOs, bulk combine (X), bulk split (X), HB-ISO Rx (X), HB-ISO Tx (X), So)
musb_hdrc: MHDRC RTL version 1.400
musb_hdrc: setup fifo_mode 4
musb_hdrc: 29/33 max ep, 15424/16384 memory
musb_hdrc: hw_ep 0shared, max 64
musb_hdrc: hw_ep 1tx, max 512
musb_hdrc: hw_ep 1rx, max 512
musb_hdrc: hw_ep 2tx, max 512
musb_hdrc: hw_ep 2rx, max 512
musb_hdrc: hw_ep 3tx, max 512
musb_hdrc: hw_ep 3rx, max 512
musb_hdrc: hw_ep 4tx, max 512
musb_hdrc: hw_ep 4rx, max 512
musb_hdrc: hw_ep 5tx, max 512
musb_hdrc: hw_ep 5rx, max 512
musb_hdrc: hw_ep 6tx, max 512
musb_hdrc: hw_ep 6rx, max 512
musb_hdrc: hw_ep 7tx, max 512
musb_hdrc: hw_ep 7rx, max 512
musb_hdrc: hw_ep 8tx, max 512
musb_hdrc: hw_ep 8rx, max 512
musb_hdrc: hw_ep 9tx, max 512
musb_hdrc: hw_ep 9rx, max 512
musb_hdrc: hw_ep 10tx, max 512
musb_hdrc: hw_ep 10rx, max 512
musb_hdrc: hw_ep 11tx, max 512
musb_hdrc: hw_ep 11rx, max 512
musb_hdrc: hw_ep 12tx, max 512
musb_hdrc: hw_ep 12rx, max 512
musb_hdrc: hw_ep 13tx, max 512
musb_hdrc: hw_ep 13rx, max 512
musb_hdrc: hw_ep 14shared, max 1024
musb_hdrc: hw_ep 15shared, max 1024
musb_hdrc: USB Host mode controller at c8800000 using DMA, IRQ 92
musb_hdrc musb_hdrc.0: MUSB HDRC host driver
drivers/usb/core/inode.c: creating file 'devices'
drivers/usb/core/inode.c: creating file '001'
musb_hdrc musb_hdrc.0: new USB bus registered, assigned bus number 1
usb usb1: default language 0x0409
usb usb1: new device strings: Mfr=3, Product=2, SerialNumber=1
usb usb1: Product: MUSB HDRC host driver
usb usb1: Manufacturer: Linux 2.6.22.18-omap3 musb-hcd
usb usb1: SerialNumber: musb_hdrc.0
usb usb1: uevent
usb usb1: usb_probe_device
usb usb1: configuration #1 chosen from 1 choice
usb usb1: adding 1-0:1.0 (config #1, interface 0)
usb 1-0:1.0: uevent
usb 1-0:1.0: uevent
hub 1-0:1.0: usb_probe_interface
hub 1-0:1.0: usb_probe_interface - got id
drivers/usb/core/inode.c: creating file '001'
musb_init_controller 2137: HOST mode, status 0, devctl 90 B
Registered /proc/driver/musb_hdrc
musb_stage2_irq 863: SUSPEND (a_idle) devctl 91 power e0
usbmon: debugfs is not available
usbcore: registered new interface driver cdc_acm
drivers/usb/class/cdc-acm.c: v0.25:USB Abstract Control Model driver for USB modems and ISDN adapters
usbcore: registered new interface driver usb-storage
usbcore: registered new interface driver usbtest
usbcore: registered new interface driver usbhid
drivers/hid/usbhid/hid-core.c: v2.6:USB HID core driver
usbcore: registered new interface driver snd-usb-audio

=========================================================



  • Please follow below steps to test EVM in host mode.

     

    • Boot the kernel with USB support and insert the controller module if they are not built into kernel image.
    • Connect USB device to EVM with Mini-A plug towards EVM
    • If you don't see any new device attach log then use below command to switch on the bus power,

     

      • $ echo F > /proc/driver/musb_hdrc

     

    • Now the device should be detected and should work properly.

    Regards,
    Ajay

  • Also make sure to connect the devices using a self powered USB Hub.

    Thanks,

    Prathap.

  • Thanks for your suggestions.

    I am using the default 1.0.2 kernel configuration which has USB bulit into the kernel (as well as the host controller support). See below for a dump for USB related settings in my .config file.

    On echo F > /proc/driver/musb_hdrc

    I get

    musb_stage2_irq 864: SUSPEND (a_idle) devctl 91 power e0

    I am using a mini-A (5-pin) connector connecting into the board, and it is self-powered. The same hub plugged into my linux machine (ubuntu-8.10) gets recognized properly (just to say the hub is ok).

    Other ideas?

    Frank

    ==== dump of my .config related to USB ====

    # USB Network Adapters
    # CONFIG_USB_CATC is not set
    # CONFIG_USB_KAWETH is not set
    # CONFIG_USB_PEGASUS is not set
    # CONFIG_USB_RTL8150 is not set
    # CONFIG_USB_USBNET_MII is not set
    # CONFIG_USB_USBNET is not set
    # CONFIG_TOUCHSCREEN_USB_COMPOSITE is not set
    # USB-based Watchdog Cards
    # CONFIG_USBPCWATCHDOG is not set
    # CONFIG_I2C_TINY_USB is not set
    CONFIG_TWL4030_USB=y
    CONFIG_TWL4030_USB_HS_ULPI=y
    # CONFIG_TWL4030_USB_FS_3_PIN is not set
    # CONFIG_V4L_USB_DRIVERS is not set
    # USB devices
    CONFIG_SND_USB_AUDIO=y
    # CONFIG_SND_USB_CAIAQ is not set
    # USB Input Devices
    CONFIG_USB_HID=y
    # CONFIG_USB_HIDINPUT_POWERBOOK is not set
    # CONFIG_USB_HIDDEV is not set
    # USB support
    CONFIG_USB_ARCH_HAS_HCD=y
    CONFIG_USB_ARCH_HAS_OHCI=y
    CONFIG_USB_ARCH_HAS_EHCI=y
    CONFIG_USB=y
    CONFIG_USB_DEBUG=y
    # Miscellaneous USB options
    CONFIG_USB_DEVICEFS=y
    # CONFIG_USB_DEVICE_CLASS is not set
    # CONFIG_USB_DYNAMIC_MINORS is not set
    # CONFIG_USB_SUSPEND is not set
    # CONFIG_USB_OTG is not set
    # USB Host Controller Drivers
    # CONFIG_USB_EHCI_HCD is not set
    # CONFIG_USB_ISP116X_HCD is not set
    # CONFIG_USB_OHCI_HCD is not set
    # CONFIG_USB_SL811_HCD is not set
    CONFIG_USB_MUSB_HDRC=y
    CONFIG_USB_MUSB_SOC=y
    # OMAP 343x high speed USB support
    CONFIG_USB_MUSB_HOST=y
    # CONFIG_USB_MUSB_PERIPHERAL is not set
    # CONFIG_USB_MUSB_OTG is not set
    CONFIG_USB_MUSB_HDRC_HCD=y
    # CONFIG_USB_INVENTRA_FIFO is not set
    CONFIG_USB_INVENTRA_DMA=y
    # CONFIG_USB_TI_CPPI_DMA is not set
    CONFIG_USB_INVENTRA_HCD_LOGGING=1
    # USB Device Class drivers
    CONFIG_USB_ACM=y
    # CONFIG_USB_PRINTER is not set
    # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
    # may also be needed; see USB_STORAGE Help for more information
    CONFIG_USB_STORAGE=y
    # CONFIG_USB_STORAGE_DEBUG is not set
    # CONFIG_USB_STORAGE_DATAFAB is not set
    # CONFIG_USB_STORAGE_FREECOM is not set
    # CONFIG_USB_STORAGE_DPCM is not set
    # CONFIG_USB_STORAGE_USBAT is not set
    # CONFIG_USB_STORAGE_SDDR09 is not set
    # CONFIG_USB_STORAGE_SDDR55 is not set
    # CONFIG_USB_STORAGE_JUMPSHOT is not set
    # CONFIG_USB_STORAGE_ALAUDA is not set
    # CONFIG_USB_STORAGE_KARMA is not set
    # CONFIG_USB_LIBUSUAL is not set
    # USB Imaging devices
    # CONFIG_USB_MDC800 is not set
    # CONFIG_USB_MICROTEK is not set
    CONFIG_USB_MON=y
    # USB port drivers
    # USB Serial Converter support
    # CONFIG_USB_SERIAL is not set
    # USB Miscellaneous drivers
    # CONFIG_USB_EMI62 is not set
    # CONFIG_USB_EMI26 is not set
    # CONFIG_USB_ADUTUX is not set
    # CONFIG_USB_AUERSWALD is not set
    # CONFIG_USB_RIO500 is not set
    # CONFIG_USB_LEGOTOWER is not set
    # CONFIG_USB_LCD is not set
    # CONFIG_USB_BERRY_CHARGE is not set
    # CONFIG_USB_LED is not set
    # CONFIG_USB_CYPRESS_CY7C63 is not set
    # CONFIG_USB_CYTHERM is not set
    # CONFIG_USB_PHIDGET is not set
    # CONFIG_USB_IDMOUSE is not set
    # CONFIG_USB_FTDI_ELAN is not set
    # CONFIG_USB_APPLEDISPLAY is not set
    # CONFIG_USB_LD is not set
    # CONFIG_USB_TRANCEVIBRATOR is not set
    # CONFIG_USB_IOWARRIOR is not set
    CONFIG_USB_TEST=y
    # USB DSL modem support
    # USB Gadget Support
    # CONFIG_USB_GADGET is not set
    ===================================

  • Pl. ensure that the Mini-A to A-receptacle adapter is connected to the EVM MiniA/B port when the EVM boots up(either with or without the associated USB device).  I think this might be the cause of the issue you are facing.

    regards

    swami

  • I will give that a try. Thanks.

    In the meantime, for those who have this working (usb kb and mouse), can you post your .config file and "dmesg | grep usb" dump so that I can compare what I am missing? Or if the my config and the boot message dump doesn't raise any suspicion, maybe it is a cable issue?

    Thanks a lot,

    Frank