Part Number: AM3352
Other Parts Discussed in Thread: AM1808
Tool/software: Linux
Hi Team
Recently, my customer encountered an USB problem on AM335x platform.
On the platform, the USB1 is worked as USB host and it is used for the connection of a 2D barcode scanner USB device.
Nothing went on wrong until they did a quick plug-in and out test. In this test, the 2D barcode scanner USB device is plugged in then out, then in, then in… at a very high speed. That means the USB device is continuously connected and then disconnected.
At some time, the USB will stop work. By checking it carefully, it was found out that the system would not enumerate the USB device anymore.
If the issue occurred, only powering down then up the USB device, or plugged it out then in, would not recover the USB status.
Log can be found as attached.
Then after debugging, I found that, this issue can be recovered by manually generating the babble interrupt when using the command ”echo b > /proc/driver/musb_hdrc.1”.
After doing this, the USB device could work normally. Log can be checked as attached.
So here I have 3 questions:
- Do you have any idea how this issue happened, and why the babble interrupt could solve it?
- Is there any driver code patch could help to recover this, rather than input the echo command manually?
- I’m digging the root cause is because on the AM1808 platform, we have similar issue observation. You can check the previous email loop. As AM1808 didn’t provide the /proc/driver/musb_hdrc.1 in Linux, and it is a very old platform. We can hardly get any progress there. I’m wondering if this AM335x solution could help.
Feel free to let me know if you have any comments! Thanks!
[ 6664.777862] musb_proc_write 726: Command E not implemented [ 6678.827423] musb_proc_write 726: Command E not implemented [ 6685.898010] ti81xx_interrupt 1093: CAUTION: musb1: Babble Interrupt Occured [ 6685.898315] musb_babble_workaround 899: Babble: devtcl(98)Restarting musb.... [ 6685.898590] usb 1-1: USB disconnect, device number 44 [ 6685.998992] musb-hdrc: ConfigData=0xde (UTMI-8, dyn FIFOs, bulk combine, bulk split, HB-ISO Rx, HB-ISO Tx, SoftConn) [ 6685.999023] musb-hdrc: MHDRC RTL version 2.0 [ 6685.999023] musb-hdrc: setup fifo_mode 4 [ 6685.999053] musb-hdrc: 28/31 max ep, 16384/16384 memory [ 6685.999084] musb-hdrc.1: bulk split disabled [ 6685.999084] musb-hdrc.1: bulk combine disabled [ 6686.386077] usb 1-1: new full-speed USB device number 45 using musb-hdrc [ 6686.499511] usb 1-1: not running at top speed; connect to a high speed hub [ 6686.501159] usb 1-1: New USB device found, idVendor=05e3, idProduct=0608 [ 6686.501190] usb 1-1: New USB device strings: Mfr=0, Product=1, SerialNumber=0 [ 6686.501190] usb 1-1: Product: USB2.0 Hub [ 6686.505737] hub 1-1:1.0: USB hub found [ 6686.507293] hub 1-1:1.0: 2 ports detected [ 6686.779266] usb 1-1.1: new full-speed USB device number 46 using musb-hdrc [ 6686.867919] usb 1-1.1: New USB device found, idVendor=04e7, idProduct=0050 [ 6686.867980] usb 1-1.1: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [ 6686.868011] usb 1-1.1: Product: Elo TouchSystems 2216 AccuTouch庐 USB Touchmonitor Interface [ 6686.868011] usb 1-1.1: Manufacturer: EloTouchSystems,Inc [ 6686.868041] usb 1-1.1: SerialNumber: 50U12622 [ 6686.882324] input: EloTouchSystems,Inc Elo TouchSystems 2216 AccuTouch庐 USB Touchmonitor Interface as /devices/platform/omap/musb-ti81xx/musb-hdrc.1/usb1/1-1/1-1.1/1-1.1:1.0/input/input56[ 6686. 897491] generic-usb 0003:04E7:0050.0051: input,hidraw0: USB HID v1.00 Pointer [EloTouchSystems,Inc Elo TouchSystems 2216 AccuTouch庐 USB Touchmonitor Interface] on usb-musb-hdrc.1-1.1/input0
