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.

[参考译文] DRA829J:勘误表 i2183相关问题- PCIe:未将未使用的通道分配给 PCIe 控制器时、链路建立故障

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1515219/dra829j-question-about-errata-i2183---pcie-link-up-failure-when-unused-lanes-are-not-assigned-to-pcie-controller

器件型号:DRA829J
主题:SysConfig 中讨论的其他器件

工具/软件:

团队、

请参阅SPRZ455 (F) 勘误表 i2183 -> PCIe:未将未使用的通道分配给 PCIe 控制器时、链路建立故障
您能确认我从内部 E2E 论坛复制的以下声明吗?

"如果我们要避免实施权变措施、SERDES 的所有通道都需要是 PCIe。
但是、在 PCIe 侧、我们不需要为所有4个通道进行配置。
作为一个实验、我将 Linux 中的 PCIe 通道数更改为1、同时在 J721E: https://git.ti.com/cgit/ti-linux-kernel/ti-linux-kernel/tree/arch/arm64/boot/dts/ti/k3-j721e-common-proc-board.dts?h=ti-linux-5.10.y#n939上仍为2个通道配置了 SERDES
稍后、我通过 PCIe 连接了 SSD 卡、以检查链路训练是否成功进行、我能够从 lspci -vvv 中提取以下日志:
LnkSta:速度8GT/s (正常)、宽度 x1 (降级)
因此、将 SERDES 配置到比 PCIe 通道更多的通道似乎是可以的。 但是、相反的是、配置的 PCIe 通道多于 SERDES 通道会导致问题、并且链路训练失败。"

提前感谢、

Anthony

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

    尊敬的 Anthony:

    我找不到本声明的内部 E2E 论坛主题、因此我没有背景信息。 但是、这句话听起来像我 所说的。

    在任何情况下、如果客户希望通过在系统端看到双重确认、则可以通过更改器件树来重现实验 应该是小幅变化、其中更改了串行器/解串器节点中的串行器/解串器通道数和 PCIe 节点中的通道数: https://git.ti.com/cgit/ti-linux-kernel/ti-linux-kernel/tree/arch/arm64/boot/dts/ti/k3-j721e-common-proc-board.dts?h=ti-linux-6.1.y#n857

    此致、

    Takuma

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

    尊敬的 Takuma:

    我想在本次讨论中添加一些细节。 我们不能真正地尝试所有的前期,因为一些连接有一个绑定,但临时性质的设计.

    使用的组件是 DRA829JMT5BALFRQ1。 由于 SR1.1的安全漏洞、我们将很快升级到 SR2.0。

    设想的配置如下:

    • SERDES0
      • PCIe0
        • 通道0
      • CPSW0 SGMII
        • 通道2
    • SERDES1
      • PCIe1
        • 通道0
      • CPSW0 SGMII
        • 通道4
    • SERDES2
      • USB1
        • USB 3.0
    • SERDES3
      • PCIe3.
        • 通道0
        • 通道1

    此勘误表对于所得到的功能非常不明确:

    例如、如果通道2和3分配给另一个协议、而通道0和1用于 PCIe 形成双通道链路、则链路训练失败。

    我的问题是:

    1. 如果四个 SERDES 块中的一个配置为双通道 PCIe、则除其他 SERDES 块上的 PCIe 之外、我不能使用任何其他 SERDES 块。 是这样吗?
      或者反过来:  
      如果我想在任何其他 SERDES 块中使用除 PCIe 之外的任何其他内容、则无法实现双通道 PCIe。
    2. 您能否查看上述配置并告诉我该配置是否有效/正常工作?

    此致

    Wolfram

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

    您好 Wolfram、

    感谢您的澄清、并了解需要什么。 让我与团队核实一下。

    给出一些上下文:

    由此、我认为您的配置是可以的。 但是、我的经验主要是在 PCIe 方面、因此想从 SGMII 的角度与团队核实这一点很好。

    此致、

    Takuma

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

    尊敬的 Takuma:
    感谢您的反馈。
    是的、请再次咨询 SGMII 团队并告知我们。

    与 Wolfram 提供的用例/配置相关:
    您是否可以在 SysConfig 文件中创建我们可以确认其受支持的配置?
    这是为了确保针对 SERDES 配置和关联的引脚多路复用器具有已知的良好参考。

    https://dev.ti.com/sysconfig/#/config/?args=--device%20DRA829J%20--package%20%22FCBGA%20P$OPEN$ALFP$CLOSE$%22%20--variant%20defaul
    提前感谢、

    Anthony

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

    尊敬的 Anthony:

    与 SGMII 团队进行了检查、结果如下所示:

    ""

    默认情况下、serdes0我们使用 PCIe + Qsgmii

    在最新的 SDK 中、Linux 端不会为 PCIe+ Qsgmii 配置串行器/解串器
    它是在 u-boot 中配置的、因此 linix 不会重新配置。
    如果客户不使用 u-boot、则在使用 TI EVM 时需要更改 Linux 中的器件树。

    ""

    因此看起来支持 PCIe + SGMII。

    至于 SysConfig、我们不支持 SysConfig 配置 SERDES。 与 SERDES 关联的引脚没有多路复用模式、因为它们专用于 SERDES:

    Linux dts 文件和 Linux SDK 文档可用作设置 SERDES 的参考。

    此致、

    Takuma