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.

OMAP4460 - OTG Babble Interrupt

Other Parts Discussed in Thread: SYSCONFIG, 4460

Hi,

we are using a custom OMAP4460 board based on the Variscite VAR-SOM-OM44 module [1]. The linux kernel is based on the ti-ubuntu-3.4-stable kernel [2] modified for our board.

The OTG port shall be used only in host mode for mass storage devices. When booting the kernel (musb-hdrc, omap2430 are builtin), loading the g_mass_storage module and inserting a mass storage device, everything
works as expected. If the device was inserted before loading the g_mass_storage module we are receiving a babble interrupt (log output below).

We tried setting the SOFTRESET bit in the OTG_SYSCONFIG register followed by musb_restart() in this case, but this only leads to VBUS errors.

The OMAP4460 Silicon Errata lists the Errata ID: i661 which causes babble interrupts, but we are using the port in UTMI mode, so we can exclude this case.

The image shows the connection of the OTG port on our board. The USB power comes from an external voltage regulator and is not switchable.

Do you have any hints regarding this problem?

Best regards,
Matthias

Kernel messages when loading the g_mass_storage module with memory device already inserted (BUS RESET == babble interrupt):

[ 9.565093] udc musb-hdrc: registering UDC driver [g_mass_storage]
[ 9.572723] gadget: Mass Storage Function, version: 2009/09/11
[ 9.579071] gadget: Number of LUNs=1
[ 9.583679] lun0: LUN: removable file: (no medium)
[ 9.588897] gadget: Mass Storage Gadget, version: 2009/09/11
[ 9.595123] gadget: userspace failed to provide iSerialNumber
[ 9.601379] gadget: g_mass_storage ready
[ 9.857971] musb-hdrc musb-hdrc: MUSB HDRC host driver
[ 9.864532] musb-hdrc musb-hdrc: new USB bus registered, assigned bus number 2
[ 9.872589] usb usb2: New USB device found, idVendor=1d6b, idProduct=0002
[ 9.879974] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 9.887817] usb usb2: Product: MUSB HDRC host driver
[ 9.893249] usb usb2: Manufacturer: Linux 3.4.62-blx1+ musb-hcd
[ 9.899749] usb usb2: SerialNumber: musb-hdrc
[ 9.907135] hub 2-0:1.0: USB hub found
[ 9.911315] hub 2-0:1.0: 1 port detected
[ 9.915771] musb-hdrc musb-hdrc: <== devctl 80
[ 10.092895] musb-hdrc musb-hdrc: ** IRQ host usb0010 tx0000 rx0000
[ 10.099426] musb-hdrc musb-hdrc: <== Power=e0, DevCtl=5d, int_usb=0x10
[ 10.106323] musb-hdrc musb-hdrc: CONNECT (a_host) devctl 5d
[ 10.380065] musb-hdrc musb-hdrc: ** IRQ peripheral usb000c tx0000 rx0000
[ 10.387145] musb-hdrc musb-hdrc: <== Power=f0, DevCtl=98, int_usb=0xc
[ 10.393951] musb-hdrc musb-hdrc: BUS RESET as a_host
[ 10.399169] musb-hdrc musb-hdrc: Unhandled BUS RESET as a_host
[ 10.405487] usb 2-1: new high-speed USB device number 2 using musb-hdrc
[ 10.414154] musb-hdrc musb-hdrc: TX ep0 fifo fc0ab020 count 8 buf ea82d8c0
[ 15.425567] musb-hdrc musb-hdrc: TX ep0 fifo fc0ab020 count 8 buf ea8d2800
[ 20.425842] musb-hdrc musb-hdrc: TX ep0 fifo fc0ab020 count 8 buf eb5e7980
[ 25.558410] usb 2-1: device descriptor read/64, error -110
[ 25.668182] musb-hdrc musb-hdrc: TX ep0 fifo fc0ab020 count 8 buf eb441080
[ 30.675628] musb-hdrc musb-hdrc: TX ep0 fifo fc0ab020 count 8 buf eb441080
[ 35.675659] musb-hdrc musb-hdrc: TX ep0 fifo fc0ab020 count 8 buf ea8d79c0
[ 40.800567] usb 2-1: device descriptor read/64, error -110
[ 41.035003] usb 2-1: new high-speed USB device number 3 using musb-hdrc
[ 41.042144] musb-hdrc musb-hdrc: TX ep0 fifo fc0ab020 count 8 buf ea8d7d40
[ 46.050689] musb-hdrc musb-hdrc: TX ep0 fifo fc0ab020 count 8 buf ea8d7d40
[ 51.050598] musb-hdrc musb-hdrc: TX ep0 fifo fc0ab020 count 8 buf ea8d7d40
[ 56.175598] usb 2-1: device descriptor read/64, error -110

References:

[1] http://www.variscite.com/products/system-on-module-som/cortex-a9/var-som-om44-cpu-ti-omap-4-omap4460
[2] http://dev.omapzoom.org/?p=integration/kernel-ubuntu.git;a=shortlog;h=refs/heads/ti-ubuntu-3.4-stable

  • Hi Matthias,

    Did you ever find a solution for this?  I've recently been tracking down a nearly identical issue on a Variscite DART board (OMAP 4460, pretty similar to the SOM-OM44 from what I understand).  Same kernel, same symptoms related to whether the USB gadget module is loaded before/after the device is plugged in, same log in the failing case.

    If you solved it, I'd be very interested to hear your solution, and if you weren't able to solve it, I'd be happy to update this thread if/when I find a solution of my own (though it's been over a year since you posted, so I'd imagine it may not be too useful to you anymore).

    Thanks!

     - Nathan

  • Hi Nathan,

    we were not really able to solve this problem in software.

    Since it doesn't exist when booting the device from powered off mode, we created a workaround which does a power reset on the USB hub on every reboot. Maybe not the best solution, but it works.

    Let me know if you find a software solution instead.

    Best regards,

    Matthias