Quantcast
Viewing all articles
Browse latest Browse all 262198

Linux/PROCESSOR-SDK-AM335X: USB babble interrupt leads to hang

Part Number:PROCESSOR-SDK-AM335X

Tool/software: Linux

Hi,

We have a custom board with an AM3352 running kernel 4.9 and are running into a babble condition during musb driver init. The problem is easily reproducible using a specific flash drive we have lying around here. Steps to reproduce the bug:

  1. Plug the flash drive into the USB port;
  2. Turn on power OR remove and reinsert musb_dsps (modprobe -r musb_dsps; modprobe musb_dsps);

The kernel then outputs the following messages:

[    7.582171] usb 1-1: USB disconnect, device number 2
[    7.857761] usb 1-1: new high-speed USB device number 3 using musb-hdrc
[    8.007396] hub 1-1:1.0: USB hub found
[    8.018063] hub 1-1:1.0: 4 ports detected
[    8.157908] musb-hdrc musb-hdrc.0.auto: Babble
[    8.461755] usb 1-1: reset high-speed USB device number 3 using musb-hdrc
[    8.713997] usb 1-1: USB disconnect, device number 3
[    8.981754] usb 1-1: new high-speed USB device number 4 using musb-hdrc
[    9.127157] hub 1-1:1.0: USB hub found
[    9.133984] hub 1-1:1.0: 4 ports detected
[    9.274141] musb-hdrc musb-hdrc.0.auto: Babble
[    9.577751] usb 1-1: reset high-speed USB device number 4 using musb-hdrc
[    9.834020] usb 1-1: USB disconnect, device number 4
[   10.101755] usb 1-1: new high-speed USB device number 5 using musb-hdrc
[   10.251032] hub 1-1:1.0: USB hub found
[   10.262003] hub 1-1:1.0: 4 ports detected
[   10.401913] musb-hdrc musb-hdrc.0.auto: Babble
[   10.705753] usb 1-1: reset high-speed USB device number 5 using musb-hdrc
[   10.957992] usb 1-1: USB disconnect, device number 5
[   11.225749] usb 1-1: new high-speed USB device number 6 using musb-hdrc
[   11.371005] hub 1-1:1.0: USB hub found
[   11.382058] hub 1-1:1.0: 4 ports detected
[   11.522113] musb-hdrc musb-hdrc.0.auto: Babble
[   11.825752] usb 1-1: reset high-speed USB device number 6 using musb-hdrc
[   12.082016] usb 1-1: USB disconnect, device number 6
[   12.349758] usb 1-1: new high-speed USB device number 7 using musb-hdrc
[   12.495010] hub 1-1:1.0: USB hub found
[   12.501990] hub 1-1:1.0: 4 ports detected
[   12.649938] musb-hdrc musb-hdrc.0.auto: Babble
[   12.953757] usb 1-1: reset high-speed USB device number 7 using musb-hdrc
[   13.209991] usb 1-1: USB disconnect, device number 7
[   13.477749] usb 1-1: new high-speed USB device number 8 using musb-hdrc
[   13.623022] hub 1-1:1.0: USB hub found
[   13.634002] hub 1-1:1.0: 4 ports detected
[   13.766528] musb_stage0_irq 595: bogus host RESUME (a_wait_vfall)
[   13.774317] musb-hdrc musb-hdrc.0.auto: Babble

After this, the system does not recognize anything that is plugged into the USB port. Unloading and loading the musb_dsps module seems to fix detection, but if this flash drive is plugged into the port, we run into the same scenario.

Some extra info:

  • The problem is happening exclusively with this flash drive. We use a USB Ethernet converter that stays plugged almost all the time, and it never showed any issues;
  • If we try to reproduce the problem with the flash drive AND the USB Ethernet converter plugged at the same time (into different ports of the same USB hub), the problem doesn't happen;

While we are still investigating the hardware side of this issue, one thing strikes me as odd: after trying to recover from babble a few times, the driver gives a 'bogus host RESUME' message, and then enters a state where it simply keeps polling devctl (which always reads 19) and doesn't detect any activity in the bus. Shouldn't the driver keep trying to recover from the babble until it goes away?

I believe this to be an effect of a hardware issue, but this behaviour where the driver simply stops detecting any bus activity is bugging me.

Regards,

Guilherme


Viewing all articles
Browse latest Browse all 262198

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>