主题中讨论的其他器件:AM3352
工具/软件:Linux
您好!
我们有一个自定义电路板、其中 AM3352运行内核4.9、并在 MUSB 驱动程序初始化期间运行到 BABBLE 状态。 使用我们在这里放置的特定闪存驱动器很容易重现此问题。 重现错误的步骤:
- 将闪存驱动器插入 USB 端口;
- 打开电源或移除并重新插入 musb_dsp (modprobe -r musb_dsp;modprobe musb_dsp);
然后内核输出以下消息:
[7.582171] USB 1-1:USB 断开连接、器件编号2 [7.857761] USB 1-1:新的高速 USB 器件编号3使用 musb-hdrc [8.007396]集线器1-1:1.0:找到 USB 集线器 [8.018063]集线器1-1:1.0:检测到4个端口 [8.157908] USB busb-hdr1 :musb-hdrc.0.auto: 使用 musb-hdrc [8.713997] USB 1-1:USB 断开连接、器件编号3 [8.981754] USB 1-1:使用 musb-hdrc [9.127157] hub 1-1:1.0:找到 USB 集线器 [9.133984] hub 1-hdrc 1:4c musb-hdrc.0.auto:端口重置高速 USB 器编号3 BABBLE [9.577751] USB 1-1:使用 MUSB hdrc [9.834020]重置高速 USB 器件编号4 :USB 1-1:USB 断开连接、器件编号4 [10.101755] USB 1-1:使用 MUSB hdrc [10.251032]集线器1: USB 集线器1:10.261.0] USB 集线器[10.2003] 4个检测到的端口 [10.401913] musb-hdrc musb-hdrc.0.auto: Babble [10.705753] USB 1-1:使用 musb-hdrc [10.957992]重置高速 USB 器件编号5 USB 1-1:USB 断开连接、器件编号5 [11.225749] USB 1-1:使用 musb-hdrc 1的新高速 USB 器件编号6:11.37dr1 [11.1005] 找到 USB 集线器 [11.382058]集线器1-1:1.0:检测到4个端口 [11.522113] musb-hdrc musb-hdrc.0.auto: Babble [11.825752] USB 1-1:使用 musb-hdrc 重置高速 USB 器件编号6 [12.082016] USB 1-1:USB 断开连接、器件编号6 [12.349758] USB 1-1: 使用 musb-hdrc [12.495010] hub 1-1:1.0:找到 USB hub [12.501990] hub 1-1:1.0:检测到4个端口 [12.649938] musb-hdrc musb-hdrc.0.auto: Babble [12.953757] USB 1-1:使用 USB-dr1重置高速 USB 器件编号7 :13.991] USB 断开连接、器件编号7 [13.477749] USB 1-1:使用 Babb-hdrc [13.623022]集线器1:1.0的新型高速 USB 器件编号8:找到 USB 集线器 [ 13.634002]集线器1:1.0:检测到4个端口 [13.766528] musb_stage0_IRQ 595:us host_bogble]( 13.766517] vrble_rb[13.7717] musb-hdrc.0.auto:
之后、系统无法识别插入 USB 端口的任何内容。 卸载和加载 musb_dsp 模块似乎可以修复检测问题、但如果将该闪存驱动器插入端口、我们将会运行到相同的情况。
一些额外信息:
- 问题仅发生在该闪存驱动器上。 我们使用的 USB 以太网转换器几乎始终保持插电状态、它从未出现任何问题;
- 如果我们尝试同时插入闪存驱动器和 USB 以太网转换器(插入同一 USB 集线器的不同端口)、问题就不会发生;
当我们仍在调查此问题的硬件方面时、有一点让我感到奇怪: 尝试从 BABBLE 恢复几次后、驱动程序会发出"假主机恢复"消息、然后进入一种状态、它只保持轮询 devctl (始终读取19)、并且不检测总线中的任何活动。 驾驶员是否应该一直尝试从 Babble 中恢复、直到它消失?
我认为这是硬件问题的影响、但驾驶员只是停止检测任何总线活动的这种行为会使我感到很受指责。
此致、
吉列尔梅

