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/AM5726:PCIe 无法正常工作

Guru**** 2927270 points

Other Parts Discussed in Thread: DS80PCI102

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

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/719808/linux-am5726-pcie-not-working

器件型号:AM5726
主题中讨论的其他器件:DS80PCI102

工具/软件:Linux

大家好、

在其中一个定制板中、我们在 RC 模式下使用两个 PCIe 端口、一个连接到缓冲器 DS80PCI102器件、另一个直接连接。 在两个端口上连接了类似的 wifi 设备。  

始终会检测到 WiFi 设备直接连接端口上的问题、但在连接缓冲器的端口中、设备未被检测到、并且非常频繁且随机。

有什么建议? 如果需要更多数据、我们可以共享、

此致、

罗纳克

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

    我们使用的是内核4.9、SDK 版本为4.3.0.5。
    我们正在从 u-boot 启用所需的 GPIO (RESET 和 POWERON)、并看到模块始终处于复位状态。

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

    我们没有用于检查 DS80PCI102的设置、但 lspci 会显示什么? 内核启动时是否枚举了它?

    雷克斯
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的 Ronak:
    在缓冲器安装在信号路径中的端口上、下游器件是否枚举过?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    有时会检测到第二个 PCI 插槽上连接的 WiFi 卡、有时会检测不到。

    它是随机且频繁的。

    下面是 lspci 的日志。

    检测到它时。

    ===========================

    root@am57xx-EVM:~# lspci
    0000:00:00.0 PCI 桥:德州仪器(TI)多核 DSP+ARM KeyStone II SOC (修订版01)
    0000:01:00.0网络控制器:Qualcomm Atheros Device 0046
    0001:00:00.0非 VGA 未分类器件:德州仪器(TI)多核 DSP+ARM KeyStone II SOC (修订版01)

    和内核日志

    root@am57xx-EVM:~# dmesg | grep pci
    [0.755005] dra7-PCIe 51000000.PCIe:作为消费者链接到 phy-4a094000.pciephy.3.
    [0.755164] dra7-PCIe 51000000.PCIe:用于消费类产品的 GPIO 查找(空)
    [0.755171] dra7-PCIe 51000000.PCIe:使用器件树进行 GPIO 查找
    [0.755200] of _get_named_gpio_FLAGS:解析了节点'/ocp/axi@0/PCIe@51000000[0]'的'GPIO'属性-状态(0)
    [0.755321]、共:PCI:主机桥/ocp/axi@0/PCIe@51000000范围:
    [0.755332]、共页:PCI:未找到/ocp/axi@0/PCIe@51000000的总线范围、使用[bus 00-ff]
    [0.856543] dra7-PCIe 51000000.PCIe:链路建立
    [0.856709] dra7-PCIe 51000000.PCIe:PCI 主机桥至总线0000:00
    [0.856722] PCI_BUS 0000:00:根总线资源[bus 00-ff]
    [0.856732] PCI_BUS 0000:00:根总线资源[IO 0x0000-0xFFF]
    [0.856743] PCI_BUS 0000:00:根总线资源[mem 0x20013000-0x2fffffff]
    [0.856777] PCI 0000:00:00.0:[104C:888]类型01类0x060400
    [0.856799] PCI 0000:00:00.0:寄存器0x10:[MEM 0x00000000-0x000fff]
    [0.856813] PCI 0000:00:00.0:寄存器0x14:[MEM 0x00000000-0x0000FFF]
    [0.856880] PCI 0000:00:00.0:支持 D1
    [0.856887] PCI 0000:00:00.0:D0 D1 D3hot 支持 PME#
    [0.857302] PCI 0000:01:00.0:[168c:0046]类型00类0x028000
    [0.857388] PCI 0000:01:00.0:寄存器0x10:[MEM 0x00000000-0x001ffff 64bit ]
    [0.857791] PCI 0000:01:00.0:D0 D3hot D3cold 支持 PME#
    [0.879955] PCI 0000:00:00.0:条8:已分配[mem 0x20200000-0x203fff]
    [0.879968] PCI 0000:00:00.0:条0:已分配[mem 0x20100000-0x201fff]
    [0.879982] PCI 0000:00:00.0:条1:已分配[mem 0x2000000-0x2002FFF]
    [0.879998] PCI 0000:01:00.0:条0:已分配[mem 0x20200000-0x203fff 64位]
    [0.880045] PCI 0000:00:00.0:PCI 桥至[bus 01]
    [0.880058] PCI 0000:00:00.0:桥接窗口[mem 0x20200000-0x203fff]
    [0.880282] pcieport 0000:00:00.0:通过 PCIe PME 中断向 PME 发出信号
    [0.880292] PCI 0000:01:00.0:通过 PCIe PME 中断向 PME 发出信号
    [0.880304] PCIe_PME 0000:00:00.0:pcie001:已加载服务驱动程序 PCIe_PME
    [0.880432] aer 0000:00:00.0:pcie002:服务驱动程序 aer loaded
    [0.695] dra7-PCIe 5188000.PCIe:作为消费者链接到 phy-4a095000.pciephy.4
    [0.880797] dra7-PCIe 518000.PCIe:消费类器件的 GPIO 查找(空)
    [0.880804] dra7-PCIe 518000.PCIe:使用器件树进行 GPIO 查找
    [0.880830] of _get_named_gpio_FLAGS:解析了节点'/ocp/axi@1/PCIe@518000[0]'的'GPIO'属性-状态(0)
    [0.880938]、共:PCI:主机桥/ocp/axi@1/PCIe@518000范围:
    [0.880949]、共一个:PCI:未找到/ocp/axi@1/PCIe@5180000的总线范围、使用[bus 00-ff]
    [1.882357] dra7-PCIe 518000.PCIe:PHY 链路从未出现
    [1.882516] dra7-PCIe 518000.PCIe:PCI 主机桥至总线0001:00
    [1.882528] PCI_BUS 0001:00:根总线资源[bus 00-ff]
    [1.882540] PCI_BUS 0001:00:根总线资源[IO 0x10000-0x1FFF](总线地址[0x0000-0xFFF])
    [1.882551] PCI_BUS 0001:00:根总线资源[mem 0x30013000-0x3fffffff]
    [1.882580] PCI 0001:00:00.0:[104C:888]类型01类0x000000
    [1.882591] PCI 0001:00:00.0:忽略类0x000000 (与标头类型01不匹配)
    [1.882646] PCI 0001:00:00.0:支持 D1
    [1.882654] PCI 0001:00:00.0:D0 D1 D3hot 支持 PME#
    [1.882879] PCI 0001:00:00.0:网桥配置无效([bus 00-00])、重新配置
    [1.883011] PCI_bus 0001:01:Busn_res:[bus 01-ff] end 更新为01
    [1.883167] PCI 0001:00:00.0:未为总线0001:01设置网桥

    进行检测

    ===========================

    root@am57xx-EVM:~# lspci
    0000:00:00.0 PCI 桥:德州仪器(TI)多核 DSP+ARM KeyStone II SOC (修订版01)
    0000:01:00.0网络控制器:Qualcomm Atheros Device 0046
    0001:00:00.0 PCI 桥:德州仪器(TI)多核 DSP+ARM KeyStone II SOC (修订版01)
    0001:01:00.0网络控制器:Qualcomm Atheros Device 0046

    和内核日志

    root@am57xx-EVM:~# dmesg | grep pci
    [0.754936] dra7-PCIe 51000000.PCIe:作为消费类产品链接到 phy-4a094000.pciephy.3.
    [0.755092] dra7-PCIe 51000000.PCIe:消费类 GPIO 查找(空)
    [0.755100] dra7-PCIe 51000000.PCIe:使用器件树进行 GPIO 查找
    [0.755127] of _get_named_gpio_FLAGS:解析了节点'/ocp/axi@0/PCIe@51000000[0]'的'GPIO'属性-状态(0)
    [0.755249]、共:PCI:主机桥/ocp/axi@0/PCIe@51000000范围:
    [0.755261]、共页:PCI:未找到/ocp/axi@0/PCIe@51000000的总线范围、使用[bus 00-ff]
    [0.856476] dra7-PCIe 51000000.PCIe:链路连接
    [0.856645] dra7-PCIe 51000000.PCIe:PCI 主机桥至总线0000:00
    [0.856658] PCI_BUS 0000:00:根总线资源[bus 00-ff]
    [0.856669] PCI_BUS 0000:00:根总线资源[IO 0x0000-0xFFF]
    [0.856679] PCI_BUS 0000:00:根总线资源[mem 0x20013000-0x2fffffff]
    [0.856712] PCI 0000:00:00.0:[104C:888]类型01类0x060400
    [0.856734] PCI 0000:00:00.0:寄存器0x10:[MEM 0x00000000-0x000fff]
    [0.856748] PCI 0000:00:00.0:寄存器0x14:[MEM 0x00000000-0x0000FFF]
    [0.856815] PCI 0000:00:00.0:支持 D1
    [0.856822] PCI 0000:00:00.0:D0 D1 D3hot 支持 PME#
    [0.857237] PCI 0000:01:00.0:[168c:0046]类型00类0x028000
    [0.857323] PCI 0000:01:00.0:寄存器0x10:[MEM 0x00000000-0x001ffff 64bit ]
    [0.857726] PCI 0000:01:00.0:D0 D3hot D3cold 支持 PME#
    [0.879954] PCI 0000:00:00.0:条8:已分配[mem 0x20200000-0x203fff]
    [0.879967] PCI 0000:00:00.0:条0:已分配[mem 0x20100000-0x201fff]
    [0.879981] PCI 0000:00:00.0:条1:已分配[mem 0x2000000-0x2002FFF]
    [0.879997] PCI 0000:01:00.0:条0:已分配[mem 0x20200000-0x203fff 64位]
    [0.880045] PCI 0000:00:00.0:PCI 桥至[bus 01]
    [0.880057] PCI 0000:00:00.0:桥接窗口[mem 0x20200000-0x203fff]
    [0.880284] pcieport 0000:00:00.0:通过 PCIe PME 中断向 PME 发送信号
    [0.880294] PCI 0000:01:00.0:通过 PCIe PME 中断向 PME 发出信号
    [0.880305] PCIe_PME 0000:00:00.0:pcie001:服务驱动程序 PCIe_PME 已加载
    [0.880434] aer 0000:00:00.0:pcie002:服务驱动程序 aer loaded
    [0.696] dra7-PCIe 5188000.PCIe:作为消费者链接到 phy-4a095000.pciephy.4
    [0.880800] dra7-PCIe 518000.PCIe:消费类器件的 GPIO 查找(空)
    [0.8808080807] dra7-PCIe 518000.PCIe:使用器件树进行 GPIO 查找
    [0.880834] of _get_named_gpio_FLAGS:解析了节点'/ocp/axi@1/PCIe@518000[0]'的'GPIO'属性-状态(0)
    [0.880940]、共:PCI:主机桥/ocp/axi@1/PCIe@518000范围:
    [0.880951]、共页:PCI:未找到/ocp/axi@1/PCIe@5180000的总线范围、使用[bus 00-ff]
    [0.982152] dra7-PCIe 518000.PCIe:链路建立
    [0.982312] dra7-PCIe 518000.PCIe:PCI 主机桥至总线0001:00
    [0.982324] PCI_BUS 0001:00:根总线资源[bus 00-ff]
    [0.982337] PCI_bus 0001:00:根总线资源[IO 0x10000-0x1FFF](总线地址[0x0000-0xFFF])
    [0.982347] PCI_BUS 0001:00:根总线资源[mem 0x30013000-0x3fffffff]
    [0.982377] PCI 0001:00:00.0:[104C:888]类型01类0x060400
    [0.982398] PCI 0001:00:00.0:寄存器0x10:[MEM 0x00000000-0x000fff]
    [0.982410] PCI 0001:00:00.0:寄存器0x14:[MEM 0x00000000-0x0000FFF]
    [0.982472] PCI 0001:00:00.0:支持 D1
    [0.982479] PCI 0001:00:00.0:D0 D1 D3hot 支持 PME#
    [0.982878] PCI 0001:01:00.0:[168c:0046]类型00类0x028000
    [0.982970] PCI 0001:01:00.0:寄存器0x10:[MEM 0x00000000-0x001fff 64位]
    [0.983413] PCI 0001:01:00.0:D0 D3hot D3cold 支持 PME#
    [1.010016] PCI 0001:00:00.0:条8:已分配[mem 0x30200000-0x303fff]
    [1.010030] PCI 0001:00:00.0:条0:已分配[mem 0x30100000-0x301fff]
    [1.010043] PCI 0001:00:00.0:条1:已分配[mem 0x3000000-0x3002FFF]
    [1.010059] PCI 0001:01:00.0:条0:已分配[mem 0x30200000-0x303ffff 64bit ]
    [1.010109] PCI 0001:00:00.0:PCI 桥至[bus 01]
    [1.010121] PCI 0001:00:00.0:桥接窗口[mem 0x30200000-0x303fff]
    [1.010332] pcieport 0001:00:00.0:通过 PCIe PME 中断向 PME 发送信号
    [1.010342] PCI 0001:01:00.0:通过 PCIe PME 中断向 PME 发出信号
    [1.010353] PCIe_PME 0001:00:00.0:pcie001:已加载服务驱动程序 PCIe_PME
    [1.010481] aer 0001:00:00.0:pcie002:服务驱动程序 aer loaded

    如需更多信息、请告知我。

    此致、

    罗纳克

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

    是的、在缓冲器之后、我们在 mini-PCIe 上连接了5.8GHz WiFi 卡。
    它将检测一段时间、但成功率非常小。
    我还在上一个帖子中发布了内核日志和 lspci 日志、以获取您的信息。
    如果需要更多信息、请告诉我。

    此致、
    罗纳克
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的 Ronak:
    这似乎是一个信号完整性问题、支持缓冲器本身的团队会更好地解决该问题。 正如您指出的那样、不带缓冲器的端口运行良好。

    我要将此主题移至支持缓冲区的论坛。 我已经通知了支持工程师、因此他会期待这件事。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    罗纳克

    您的 DS80PCI102 EQ、去加重和 VOD 设置为什么? 通常、当未检测到端口时、这是因为转接驱动器严重过度均衡信号。 请注意、如果器件不处于引脚模式、则该转接驱动器的默认 EQ 值为0x2F、增益超过20dB。 如果转接驱动器之前的插入损耗极小、则可能会导致中断。 我建议将 EQ 设置为0x00、VOD = 1.0V、DEM = 0dB、然后查看端口是否识别。 如果没有、则缓慢增大 EQ。

    顺便说一下、转接驱动器两侧的通道插入损耗是多少?

    谢谢
    David