主题中讨论的其他器件: 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