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.

[参考译文] J721EXCPXEVM:PCIe2 串行器/解串器初始化错误

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1597327/j721excpxevm-pcie2-serdes-init-error

器件型号: J721EXCPXEVM

我们将 BSP 从 7.3 移植到 10、PCIe 总线探针出现故障、如下所示 (PCIe2 和 PCIe3)。 我们已启用 PCIe2 和 3 作为 PCI、serdes0 和 1 用于 USB。 服务器 4 由 ethfw 控制。 通过 u-boot、如果我使用 dm tree 命令、我可以看到 serdes2 链路已接通、但在 PCIe2 初始化时、等待 PHY 状态准备就绪时会超时、我添加一些打印消息、复位正常工作、但在 Linux 中硬件“就绪“位从不会清除。  
相同的硬件对于旧 PSDK 没有问题。
请提供帮助。
谢谢、
Mandy

nop           2  [   ]   phy-j721e-wiz         |   |-- wiz@5020000
 misc          6  [   ]   cdns,sierra           |   |   `-- serdes@5020000
 phy           3  [   ]   sierra_phy_link       |   |       `-- link

[    1.594724] j721e-pcie 2920000.pcie: host bridge /bus@100000/pcie@2920000 ranges:
[    1.602233] j721e-pcie 2920000.pcie:       IO 0x4400001000..0x4400010fff -> 0x0000001000
[    1.618848] j721e-pcie 2920000.pcie:      MEM 0x4400011000..0x4407ffffff -> 0x0000011000
[    1.635209] j721e-pcie 2920000.pcie:   IB MEM 0x0000000000..0xffffffffffff -> 0x0000000000
[    1.781617] cdns-sierra-phy 5020000.serdes: Timeout waiting for PHY status ready
[    1.789001] phy phy-5020000.serdes.2: phy poweron failed --> -110
[    1.795087] j721e-pcie 2920000.pcie: error -ETIMEDOUT: Failed to init phy
[    1.801874] j721e-pcie: probe of 2920000.pcie failed with error -110
[    1.808642] j721e-pcie 2930000.pcie: host bridge /bus@100000/pcie@2930000 ranges:
[    1.816144] j721e-pcie 2930000.pcie:       IO 0x4410001000..0x4410010fff -> 0x0000001000
[    1.824225] j721e-pcie 2930000.pcie:      MEM 0x4410011000..0x4417ffffff -> 0x0000011000
[    1.832303] j721e-pcie 2930000.pcie:   IB MEM 0x0000000000..0xffffffffffff -> 0x0000000000
[    2.869342] j721e-pcie 2930000.pcie: PCI host bridge to bus 0000:00
[    2.875626] pci_bus 0000:00: root bus resource [bus 00-ff]
[    2.881101] pci_bus 0000:00: root bus resource [io  0x10000-0x1ffff] (bus address [0x1000-0x10fff])
[    2.890126] pci_bus 0000:00: root bus resource [mem 0x4410011000-0x4417ffffff] (bus address [0x00011000-0x07ffffff])
[    2.900646] pci 0000:00:00.0: [104c:b00d] type 01 class 0x060400
[    2.906640] pci_bus 0000:00: 2-byte config write to 0000:00:00.0 offset 0x4 may corrupt adjacent RW1C bits
[    2.916341] pci 0000:00:00.0: supports D1
[    2.920340] pci 0000:00:00.0: PME# supported from D0 D1 D3hot
[    2.928001] pci 0000:00:00.0: bridge configuration invalid ([bus 00-00]), reconfiguring
[    2.936119] pci_bus 0000:01: busn_res: [bus 01-ff] end is updated to 01
[    2.942747] pci 0000:00:00.0: PCI bridge to [bus 01]
[    2.947777] pcieport 0000:00:00.0: of_irq_parse_pci: failed with rc=-22
[    2.954554] pcieport 0000:00:00.0: PME: Signaling with IRQ 477
[    2.960539] pcieport 0000:00:00.0: AER: enabled with IRQ 477
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Mandy:

    可能会生成这些错误日志的两个常见问题是:

    1. CTRLMMR 设置错误。 对于本例、请检查是否为 PCIe 设置了 SERDES2 和 SERDES3 的 SERDES_ln_ctrl 器件树节点。
    2. 基准时钟设置问题。 您能否确认系统是否正在使用为 SoC 提供 100MHz PCIe 参考时钟的外部时钟发生器、或者 SoC 是否正在从内部生成时钟并从 SoC 驱动基准时钟? TI SDK 和 EVM 默认使用外部时钟发生器。

    此致、

    Takuma

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

    感谢您的支持、我们也使用了外部时钟发生器、我能够解决这个问题。

    请关闭 TT。

    Mandy