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.
工具/软件:Linux
您好!
我们的产品使用内核为4.9.78的 BeagleBone Black、我们发现一个问题与中所述的类似:
https://e2e.ti.com/support/processors/f/791/p/250507/887113#887113
因此,我们将遇到随机重新启动问题,如所述:
我们如何在 VBUS 线上禁用这些脉冲? 使用内核3.8.x 时、如果在内核配置中禁用 USB_OTG、这些脉冲将被禁用、但对于内核4.9、这不起作用。 如果加载了 g_ether 驱动程序、即使禁用了 USB_OTG、我仍然可以看到脉冲。 如果删除了 G_ether 模块、则脉冲将消失。
相关线程提到在内核驱动程序中禁用这些功能、但我不确定在哪里查找。 是否有需要设置的特定配置选项或是否应修改源?
请告知、
- Tavi
尊敬的 Tavi:
您使用的是哪个处理器 SDK 版本?
当您看到 VBUS 脉冲时、BBB USB0端口是连接到 USB 主机还是拔下?
请在电路板上运行以下命令并提供其输出。
# cat /sys/firmware/devicetree/base/ocp/usb@47400000/USB@47401000/dr_mode
您好、Bin、
我只能在拔下电缆时看到脉冲。 只有先连接电缆、然后断开连接、才会发生这种情况。 如果电路板在没有电缆的情况下引导、则不会出现脉冲。
如果我移除 g_ether 模块(modprobe -r g_ether)、VBUS 脉冲也会消失
上面列出的 cat 命令的输出是"peripheral"
此产品不使用 TI SDK、并且内核/文件系统基于 BBB debian 社区映像。
我知道 TI 不支持这种配置、但我希望您能指向正确的内核配置或源文件、在这里我可以禁用内核4.9.x 的 VBUS 脉冲
- Tavi
TAMI、
请测试 TI Processor SDK 内核、以查看问题是否也会发生。
我测试了基于内核 v4.9.41的 SDK v4.1.0.6、但在拔下 USB 电缆后看不到任何 VBUS 脉冲。
我在 sdcard 上刷写了 SDK v4.1.0.6附带的 rootfs、但仍然看到同样的问题。
以下是我复制它所遵循的步骤:
-从使用 tisdk-rootfs-image-am335x-evm.tar.xz 刷写的 sdcard 引导。 此电路板由5V 直流连接器(P1)供电。 我正在从串行控制台监控引导过程
-将 USB 电缆插入 mini-USB 连接器(P4)。 USB 电缆的另一端连接到我的 Linux 工作站。
-拔下 USB 电缆
-现在我可以在示波器上看到 VBUS 脉冲,PMIC 也会检测到这些脉冲。 当我运行命令"watch -n0 i2cdump -f -y 0 0x24"时、TPS65217的寄存器0xA 在0x8c 和0x88之间变化
注:
未加载模块 g_ether、因此我无法验证行为是否受此影响。
TAMI、
我执行的测试序列相同、但在示波器上看不到 VBUS 脉冲。
您在 BeagleBone Black 上进行测试、而不是在定制板上进行测试、对吧?
您能否提供示波器的屏幕截图以显示脉冲的外观?
顺便说一下、SDK rootfs 默认加载 g_multi-driver。 您可以使用以下命令检查加载的 USB 小工具驱动程序。
# cat /sys/class/udc /*/uevent
您好、Bin、
是的、我正在 BeagleBone Black 上进行测试。 我附加了脉冲的屏幕截图。 它们大约为2.5V、每2秒重复一次。
我还粘贴在 cat 命令的输出下方、在 SDK 映像上运行
root@AM335x-EVM:~# cat /sys/class/udc /*/uevent
驱动程序=g_multi
USB_UDC_NAME=musb-hdrc
USB_UDC_DRIVER=g_MULTI
我们基于 debian 的系统使用 g_ether、我可以使用"modprobe -r g_ete"来移除它、它会停止 VBUS 脉冲。
我尝试以与 SDK 映像相同的方式删除 g_multi,但命令挂起。 系统仍然正常工作、只有 modprobe 命令永远不会返回。
- Tavi
TAMI、
感谢您提供示波器屏幕截图。 现在我知道脉冲是什么。 但是、我们需要一起进行调试、以找到导致脉冲的驱动程序错误、因为我无法在设置中看到问题。
拔下 USB 电缆以触发脉冲时、请在电路板上运行以下命令并提供其输出。
# cat /sys/devices/platform/ocp/47400000.usb/47401400.usb/musb-hdrc.0/mode
TAMI、
请忽略我之前的调试请求、并确保您使用2019年发布的任何内核版本、并仔细检查内核是否已应用以下补丁。
谢谢你。
拔下 USB 电缆后、应用上面列出的补丁程序即可消除 VBUS 脉冲。
TAMI、
感谢您的更新。 我很高兴问题得到解决。