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.

[参考译文] AM3354:AM3354 USB mushw_tx_flush-FIFO

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1513658/am3354-am3354-usb-mushw_tx_flush-fifo

器件型号:AM3354

工具/软件:

我在 AM3354平台上使用4.1内核、并且遇到 USB TX FIFO 清除失败问题。

显示的日志如下所示

以下作路径为高频次所需路径:μ s
插入 Ω USB 驱动器和 USB 打印机
通过/dev/usb/lp0向 USB 打印机写入数据(当打印机缺纸时)
内核会输出一个名为"ushw_tx_flush-FIFO"
的警告信息、如果此时查看 USB 驱动器的挂载路径、很容易触发上述警告信息并重置 USB

我知道这个内核版本很旧、我们目前希望继续使用它、同时也要维护 USB DMA。我想知道我们是否可以通过哪些补丁来解决这个问题。

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

    以下运行路径是高频所需路径:
    1.插入 USB 驱动器和 USB 打印机
    2.通过/dev/usb/lp0将数据写入 USB 打印机(当打印机缺纸时)
    内核将输出名为"ushw_tx_flush-Filge-FIFO"的警告消息
    如果您此时检查 USB 驱动器的安装路径、则很容易触发上述警告消息并重置 USB

    我知道这个内核版本很旧、我们目前想在保持 USB DMA 的同时继续使用它。 我想知道我们是否可以通过哪些修补程序来解决这个问题。

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

    您好、自强:

    有关 musb_h_tx_flush_fifo 本身的内核警告消息可能是无害的。 更新的内核已更改、仅打印此消息一次。

    此警告不应直接链接到 USB 总线复位、这可能是由其他 USB 问题引起的。

    您已经知道不再支持内核 v4.1。 请使用最新的 SDK 进行测试、看看问题是否仍然发生。

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

    您好 Bin、
    我会尝试使用内核6.1.46的最新 SDK、但由于我们长期以来一直在4.1版上进行开发、更改内核版本的可能性目前很低。 我知道您对此 USB 有很多知识、我想问一下、在4.1版中、您是否建议我们应包含哪些与 USB 相关的补丁? 目前、我们的问题也相对稳定、我们想先做这个小的改变。 感谢您的支持。

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

    、对版本4.1进行了检查、发现当出现"ushw_tx_flush-FIFO"时、每次 csr=musc_readw (epio、MUSB_TXCSR)时、所有返回值 CSR 为0X250B、此后所有 usc_submit.urb (写入 urb、gfp_kernel)运行将触发、rv=usblp=flique(usblock)、直至打印机 fle/rv=usblp=flease_flease(usblp=f)。 我想知道是什么原因导致未来无法写入、以及我如何监控这一状态。 此时我想组织 USB 设备的编写。

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

    您好 Bin、

    (+) AM3358:多个具有32个以上端点的 USB 器件-处理器论坛-处理器- TI E2E 支持论坛

    如上所述、您似乎也处理过类似的问题。 另外、我们还需要通过 USB 集线器在 CPU 上安装一个 USB 端口。 这是否会导致该问题。 在非 HUB 版本中不会出现此问题、我不知道是否有任何好的解决方案。

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

    您好、自强:

    Nd 我想问、在4.1版中、您是否建议我们应包含哪些与 USB 相关的补丁? [/报价]

    内核4.1有10年的历史,我不记得它的 USB 驱动程序的细节,以及从4.1起修复了什么确切的错误。 最重要的是,我们还不知道问题的根本原因,除了 USB 总线得到重置。 现在可以提供内核补丁。

    并且每次 csr=musc_readw (epio、MUSB_TXCSR);返回值 CSR 为0X250B、

    该寄存器值实际上没有任何问题、但表明已启用 CPPI41_DMA。 如果是、您能否尝试禁用 CPPI41_DMA 以查看问题是否仍然发生?

    在非集线器版本
    中不会出现此问题

    我想您已将 USB 驱动器和 USB 打印机连接到 AM335x USB。 如何在没有集线器的情况下连接2个 USB 设备?

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

    您好、Bin、

    1. 4.1版的 USB 驱动程序似乎不是很稳定,但目前我们无法进行主要的内核版本更改。 如果我们只想进行小规模的更改、建议使用支持 Kenel4的 SDK 中间版本吗? X?

    2.是否存在禁用 CPPI41-DMA 的风险、例如来自其他外设的中断是否会使 USB 中断更容易。 我看到了许多推荐关闭 CPPI41-DMA 选项的帖子。 这是因为版本4.1中的 USB DMA 驱动程序尚未完成吗?

    3.我们的硬件版本没有集线器,但直接连接到 CPU 上的两个 USB 端口,复制方法似乎没有问题。 但是、如果不连接到集线器、多次拔下和拔下通信不良的 USB 驱动器可能会导致系统异常、而连接到集线器只会导致 USB 功能异常。 因此、我们临时选择连接到集线器版本以确保系统稳定性

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

    您好、自强:

    内核 v4.1是支持 AM335x 的最早版本之一、其 USB 驱动程序仍在开发中、在某些 USB 用例中不够稳定。 我建议使用的内核4.x 是 v4.19、该版本在 SDK6.3中提供。

    禁用 CPPI41DMA 的唯一缺点是会在 USB 传输时增加 CPU 负载。 CPPI41DMA 在早期版本的内核中被禁用了很长时间。

    将连接到 AM335x 的高速或全速 USB 设备的最大速度是多少? 一般来说、如果两个 USB 设备都是高速的、您不应该遇到与 USB 集线器相关的问题。 但是、如果其中一个 USB 器件为全速、将两者连接到高速 USB 集线器并连接到 AM335x 可能会导致问题。