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.

[参考译文] PROCESSOR-SDK-AM335X:USB 错误

Guru**** 2540720 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/840973/processor-sdk-am335x-usb-error

器件型号:PROCESSOR-SDK-AM335X

您好!

我们的目的是禁用每2秒发生的 ADP OTG 脉冲、而当用户按下一个键时、启用 VBUS。 这是使用上述线程中的补丁实现的。 我们面临的一个特殊情况如下:

执行的步骤如下

a)将 USB 闪存驱动器插入设备

b)发出命令、echo 1 >/sys/kernel/debug/musb-hdrc.0/softconnect

c)安装 USB、然后使用 USB 文件副本等进行跟踪

d)运行卸载 USB 的脚本、并提供以下命令以断开 USB 闪存驱动器

# echo 0 >/sys/kernel/debug/musb-hdrc.0/softconnect

e)运行此命令后、有时会看到以下日志:

USB USB1-port1:无法启用。 可能是 USB 电缆损坏了?

如果在执行步骤$d (闪存驱动器仍然连接)后、我们要从步骤 b 开始执行、则闪存驱动器无法正确安装。 下面是我们获得的日志:

USB 1-1:USB 断开连接、器件编号41
USB 1-1:42号新高速 USB 器件、使用 musb-hdrc
USB-STORAGE 1-1:1.0:检测到 USB 海量存储设备

典型的检测日志如下所示:

[9805.649560] USB 1-1:使用 musb-hdrc 的新型高速 USB 器件、编号41
[9805.827479] USB 存储设备1-1:1.0:检测到 USB 大容量存储设备
[9805.843293] SCSI host0:USB-storage 1-1:1.0
[9807.269776] SD 0:0:0:0:[SDA] 30274560 512字节逻辑块:(15.5 GB/14.4 GiB)

[9807.270630] SD 0:0:0:0:[SDA]写保护关闭

[9807.270691] SD 0:0:0:0:[SDA]模式检测:45 00 00
[9807.271091] SD 0:0:0:0:[SDA]写入高速缓存:禁用、读取高速缓存:启用、不支持 DPO 或 FUA
[9807.284501] SDA:SDA1

f)如果我们不是在步骤 d 后立即执行步骤 b、而是等待大约5-8秒、则会正确检测到闪存驱动器。 日志显示以下行大约4-5次、然后设备断开连接:

[9865.519665] USB USB1-port1:无法启用。 可能是 USB 电缆损坏了?
[9869.839760] USB USB1-port1:无法启用。 可能是 USB 电缆损坏了?
[9874.159678] USB USB1-port1:无法启用。 可能是 USB 电缆损坏了?
[9878.479809] USB USB1-port1:无法启用。 可能是 USB 电缆损坏了?

[9878.480145] USB 1-1:USB 断开连接、器件编号43

获取断开设备编号后。" 日志、我们要启用 softconnect 命令、这些操作按预期工作。 我的问题是、为什么我会看到"无法启用"这一行。 可能是 USB 电缆损坏"如何在提供"USB 断开连接、器件编号..."之前克服延迟 日志。

此致、

法里亚

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    请发布您使用的 Linux 版本。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    内核版本4.9.31。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Fariya、

    我认为问题是软连接条目不是针对这种情况设计的、这会导致 USB 驱动程序堆栈混淆。

    DTS 中的 USB0 dr_mode 设置是什么? 我将在我的设置中重复此场景、以了解正在发生的情况。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您的 USB0是设计为双角色模式还是仅主机模式?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Bin Liu、

    DTS 中的 dr_mode 设置为"OTG"。

    此致、

    法里亚

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    USB0被设计为双角色模式、但可按需启用主机模式。

    此致、

    法里亚

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Bin Liu、

    您是否能够在设置中尝试解决此问题?

    谢谢

    法里亚

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    法里亚

    很抱歉、我正在进行另一项工作、目前还没有机会处理您的问题。 但我的想法是、断开 USB 设备连接时、您不需要使用 softconnect sysfs 条目、您可能只需要它在连接 USB 设备时启动枚举。 我将在我的 EVM 上尝试此方法并为您提供解决方案、我可能会在本周晚些时候查看此方法。 很抱歉耽误你的时间。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Bin、

    感谢您的回复。 我们确实需要

    echo 0 >/sys/kernel/debug/musb-hdrc.0/softconnect

    命令、因为如果用户在安装闪存驱动器后大约30秒内未使用它、我们打算断开连接的闪存驱动器。

    在尝试过我提到的情景后、请帮助我们观察您的情况。

    此致、

    法里亚

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Bin、

    您是否能够查看我提到的情形?

    谢谢

    法里亚

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Bin、

    您是否有机会了解这一点?

    此致、

    法里亚

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Fariya、

    很抱歉耽误你的时间。 我测试了您的方案、但无法重现此问题"无法启用"。 可能是 USB 电缆损坏了?" 误差。 为了与我们在内核中所做的更改保持一致、下面随附了 SDK4.0.0.4/ti2017.01内核中的5个补丁、这些补丁基于 v4.9.28、接近于您的 v4.9.31。

    e2e.ti.com/.../softconnect_2D00_ti2017.01.tgz

    然后、我使用以下序列来测试您的场景、我跳过了步骤 d)、因为我认为它不相关。 我测试了50次以上、但没有看到任何错误。

    !/bin/sh
    CD /sys/kernel/debug/musb-hdrc.0
    echo 1 >软连接
    睡眠10.
    echo 0 >软连接
    睡眠5.