I am having an issue on board using an AM335X (similar in design to a beaglebone black). The result is sometimes upon reboot, I get a babble interrupt during enumeration of a USB device. This appears to result in MUSB being reset, but after MUSB reset this device doesn't re-enumerate. It is disconnected then never heard from again until the next reboot of the AM335x. Most reboots succeed, it is just the few that do not which are causing problems.
This log message appears after MUSB is reset and after the device is disconnected from the bus.
musb_stage0_irq 498: bogus host RESUME (a_wait_vfall)
This is with Linux-3.18.20
Does anybody have any thoughts on this?
1. Why would I be getting a babble interrupt in the first place
2. Why doesn't it recover?
3. Should the MUSB driver be waiting until after the USB disconnect (of all devices) before resetting the MUSB controller for recover? I see the reverse happening in my log.
4. There seems to be a lot of chatter out there about the babble interrupt and many patches floating around. So the other question is, does TI have a complete list of patches for MUSB in host mode that I need to be sure are applied that could impact this?
Any help will be greatly appreciated.
A more complete log section below:
2016-01-20 12:48:38,072 - S_CONSOLE - IO <-- [ 1.285859] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002
2016-01-20 12:48:38,084 - S_CONSOLE - IO <-- [ 1.293004] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
2016-01-20 12:48:38,095 - S_CONSOLE - IO <-- [ 1.300627] usb usb1: Product: MUSB HDRC host driver
2016-01-20 12:48:38,107 - S_CONSOLE - IO <-- [ 1.305868] usb usb1: Manufacturer: Linux 3.18.20-aron-rob musb-hcd
2016-01-20 12:48:38,118 - S_CONSOLE - IO <-- [ 1.312462] usb usb1: SerialNumber: musb-hdrc.1.auto
2016-01-20 12:48:38,129 - S_CONSOLE - IO <-- [ 1.318516] hub 1-0:1.0: USB hub found
2016-01-20 12:48:38,140 - S_CONSOLE - IO <-- [ 1.322529] hub 1-0:1.0: 1 port detected
[ 2.164455] usb 1-1.2: new high-speed USB device number 3 using musb-hdrc
2016-01-20 12:48:38,362 - S_CONSOLE - IO <-- [ 2.194388] tilcdc 4830e000.lcdc: timeout waiting for framedone
2016-01-20 12:48:38,391 - S_CONSOLE - IO <-- [ 2.224616] CAUTION: musb: Babble Interrupt Occurred
2016-01-20 12:48:38,414 - S_ARM - INFO - serialport (/dev/ttyACM1,115200,8N1): Is not open
2016-01-20 12:48:38,493 - S_CONSOLE - IO <-- [ 2.324418] musb-hdrc musb-hdrc.1.auto: Restarting MUSB to recover from Babble
2016-01-20 12:48:38,521 - S_CONSOLE - IO <-- [ 2.354608] usb 1-1: USB disconnect, device number 2
2016-01-20 12:48:38,546 - S_CONSOLE - IO <-- [ 2.380166] EXT4-fs (mmcblk0p1): recovery complete
2016-01-20 12:48:38,558 - S_CONSOLE - IO <-- [ 2.387391] EXT4-fs (mmcblk0p1): mounted filesystem with ordered data mode. Opts: (null)
2016-01-20 12:48:38,569 - S_CONSOLE - IO <-- [ 2.396313] VFS: Mounted root (ext4 filesystem) on device 179:1.
2016-01-20 12:48:38,580 - S_CONSOLE - IO <-- [ 2.410467] devtmpfs: mounted
2016-01-20 12:48:38,591 - S_CONSOLE - IO <-- [ 2.417316] Freeing unused kernel memory: 784K (c0724000 - c07e8000)
2016-01-20 12:48:38,664 - S_CONSOLE - IO <-- - runit: $Id: 25da3b86f7bed4038b8a039d2f8e8c9bbcf0822b $: booting.
2016-01-20 12:48:38,675 - S_CONSOLE - IO <-- - runit: enter stage: /etc/runit/1
2016-01-20 12:48:38,962 - S_CONSOLE - IO <-- [ 2.794626] usb 1-1: new high-speed USB device number 4 using musb-hdrc
2016-01-20 12:48:39,080 - S_CONSOLE - IO <-- [ 2.910494] EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Opts: (null)
2016-01-20 12:48:39,113 - S_CONSOLE - IO <-- [ 2.944868] usb 1-1: New USB device found, idVendor=0424, idProduct=2512
2016-01-20 12:48:39,125 - S_CONSOLE - IO <-- [ 2.952719] usb 1-1: New USB device strings: Mfr=0, Product=0, SerialNumber=0
2016-01-20 12:48:39,136 - S_CONSOLE - IO <-- [ 2.967113] hub 1-1:1.0: USB hub found
2016-01-20 12:48:39,147 - S_CONSOLE - IO <-- [ 2.980446] hub 1-1:1.0: 2 ports detected
2016-01-20 12:48:39,208 - S_CONSOLE - IO <-- /etc/runit/1: line 61: echo: write error: No such device
2016-01-20 12:48:39,220 - S_CONSOLE - IO <-- /etc/runit/1: line 63: echo: write error: No such device
2016-01-20 12:48:39,295 - S_CONSOLE - IO <-- [ 3.128102] bq27x00-battery 1-0055: support ver. 1.2.0 enabled
2016-01-20 12:48:39,306 - S_CONSOLE - IO <-- [ 3.139937] cryptodev: driver 1.6 loaded.
2016-01-20 12:48:39,414 - S_ARM - INFO - serialport (/dev/ttyACM1,115200,8N1): Is not open
2016-01-20 12:48:39,521 - S_CONSOLE - IO <-- [ 3.354742] g_serial gadget: Gadget Serial v2.4
2016-01-20 12:48:39,532 - S_CONSOLE - IO <-- [ 3.359541] g_serial gadget: g_serial ready
2016-01-20 12:48:39,543 - S_CONSOLE - IO <-- [ 3.363966] musb_stage0_irq 498: bogus host RESUME (a_wait_vfall)