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/TUSB7340:USB2.0和更低故障/ Xilinx ZynqMP / PCIe root / xhci-hcd Linux 驱动程序

Guru**** 2473260 points
Other Parts Discussed in Thread: TUSB7340, TUSB7320

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

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/651631/linux-tusb7340-usb2-0-and-lower-failure-xilinx-zynqmp-pcie-root-xhci-hcd-linux-driver

器件型号:TUSB7340
主题中讨论的其他器件: TUSB7320

工具/软件:Linux

支持路径:/Product/Development 和故障排除/

大家好、


我在连接到 TUSB7340 USB3.0 xHCI 主机控制器端口的 USB2.0 (及更低版本)外设方面遇到一些问题。 硬件平台是基于 Xilinx Zynq UltraScale+ MPSoC (7EV 系列)的定制板、在处理系统中启用 PCIe 根复合体(5Gb/s 时的 x1链路)。 USB3.0器件(集线器/存储器)工作正常、但较慢器件在系统中未启用/不存在。 Linux 内核版本为 v4.9 (Xilinx rel-2017.3)、具有用于 USB3.0主机(ARM64/Xilinx zynqmp_defconfig)的 xhci-hcd 驱动程序。 lspci 和 lsusb 工具的输出如下所示:

00:00.0 PCI 桥接器:Xilinx Corporation Device 7012 (prog-if 00 [正常解码])
   标志:总线主控、快速选择器、延迟0、IRQ 255
   e0100000处的存储器(32位、可预取)[size=8K]
   总线:primary=00、secondary =01、subordinate=0c、sec-latiter=0
   桥后的 I/O:00000000-00000fff
   桥后存储器:e0000000-e00ffff
   功能:[40]电源管理版本3
   功能:[60]快速根端口(插槽-)、MSI 00
   功能:[100]器件序列号00-00-00-00-00-00-00-00-00
   功能:[10c]虚拟通道
   能力:[128]供应商特定信息:ID=1234 Rev=1 Len=018

01:00.0 USB 控制器:德州仪器(TI) TUSB73x0超高速 USB 3.0 xHCI 主机控制器(修订版02)(prog-if 30 [XHCCI])
   标志:总线主控、快速选择器、延迟0、IRQ 54
   e0000000处的存储器(64位、不可预取)[size=64K]
   e0010000处的存储器(64位、不可预取)[size=8K]
   功能:[40]电源管理版本3
   功能:[48] MSI:ENABLE+ Count=1/8可屏蔽- 64位以上
   功能:[70] Express Endpoint、MSI 00
   功能:[C0] MSI-X:启用-计数=8屏蔽-
   功能:[100]高级错误报告
   功能:[150]器件序列号08-00-28-00-20-00-00
   使用中的内核驱动程序:xhci_hcd

 

:~# lsusb -t
/: 总线02.Port 1:dev 1、class="root_hub"、Driver=xhci_hcd/4p、5000m
/: 总线01.Port 1:dev 1、class="root_hub"、Driver=xhci_hcd/4p、480M

连接键盘或鼠标时完全不会生成内核消息、但在 USB 存储/集线器的情况下、我可以看到一些内核输出连接到4个可用端口中的2个、如下所示:

[3.440737]   USB 1-2:使用 xhci_hcd 的新型高速 USB 器件编号2
[3.680735]   USB 1-2:使用 xhci_hcd 的新型高速 USB 器件编号3
[4.115517]   USB 1-2:使用 xhci_hcd 的新型高速 USB 器件编号4
[4.122036]   USB 1-2:器件不响应设置地址。
[4.332804]   USB 1-2:器件不响应设置地址。
[4.544763]   USB 1-2:器件不接受地址4、错误-71
[4.668759]   USB 1-2:使用 xhci_hcd 的新型高速 USB 器件编号5
[4.676095]   USB 1-2:器件未响应设置地址。
[4.888798]   USB 1-2:器件不响应设置地址。
[5.100758]   USB 1-2:器件不接受地址5、错误-71
[5.111658]   USB USB1-port2:无法枚举 USB 设备

作为参考、我们有另一个具有 TUSB7320主机的电路板(是的、仅具有2个端口的器件稍有不同)基于 Xilinx Zynq-7000芯片、在 FPGA 结构中启用了 PCIe 根子系统、并在同一 Linux 内核(为 armv7/Xilinx_Zynq_defconfig 构建)上运行、使用了相同的 xhci-hcd 驱动程序。 在这种情况下、不会报告任何问题:所有类型的 USB 外设都能正常工作。 从系统的角度来看、这两块电路板之间 USB3.0设计的唯一区别在于 PCIe 根复合体实现:用于 Zynq-7000的"软"IP 与用于 Zynq US+ MPSoC 的"硬化"块。 这2台 PCIe 主机的 Linux 驱动程序也不同:适用于软 PCIe 主机的 PCIe-Xilinx.c 与适用于 MPSoC 芯片中集成版本的 PCIe-XilinX-NWL.c。 两个 PCIe 主机的配置参数完全相同。


您对此有什么想法吗?

此致、
Igor

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

    我想知道您是否使用某些特定器件发现了此问题? 我是指特定鼠标/键盘出现故障、还是任何 USB 2.0设备出现故障?

    我们以前从未发现过此问题、您能否将您的平台原理图发送给我们进行完整性检查? 请注意、TUSB7340和 TUSB7320完全相同(端口数量除外)。

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

    所有类型的 USB2.0 (和更低版本)器件都出现了此问题。 正如我之前提到的、连接其中的一些(USB2.0集线器或 USB2.0存储)会导致内核日志错误(看起来像是器件枚举问题)、但在连接 USB 键盘/鼠标的情况下会观察到完全静音。

    我如何让您共享原理图?

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

    您能否使用我们的评估板验证您是否遇到相同的问题? 如果可能、您可以使用 Windows 环境进行验证。

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

    遗憾的是、我们没有用于 TUSB7340的评估板。 如果您仍然愿意查看电路板原理图、请告诉我可以与您分享的方式。 我不允许在具有公共访问权限的论坛上发布它。

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

    此问题是由 R1EXT 和 R1EXTRTN 线路之间放置的不适当电阻器(909k 而不是9,09k)引起的。 感谢 Roberto 的支持。 问题得到解决。

    此致、
    Igor