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.

[参考译文] AM5K2E04:TI Keystone II:诊断 PCIe 连接问题

Guru**** 2540720 points
Other Parts Discussed in Thread: AM5K2E04

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/633671/am5k2e04-ti-keystone-ii-diagnosis-of-pcie-connection-problems

器件型号:AM5K2E04

您好!

我的客户设计了基于 Keystone II 器件的新处理器板、即 AM5K2E04。 目前,我们正处于项目启动阶段,即我们正在尝试启动并运行所有相关的硬件单元。 遗憾的是、我们在启用 Keystone 处理器的 PCI Express 控制器时遇到问题。

我们的板充当 PCIe 根复合体、并使用 Keystone 的两个 PCIe 接口。 PCIe 0连接到 FPGA、PCI#1连接到 PCIe 开关。 两个接口均使用2通道 PCIe 第2代。   我们的问题是、Keystone 的 PCIe 接口都无法与其通信伙伴建立稳定的物理连接。

为了了解这一点,我们修改了引导加载程序(uBoot),使其能够持续监控 PCIe 控制器的状态。

引导加载程序执行以下操作:

  • 它将两个控制器切换到根复数模式
  • 它使用 TI 提供的设置初始化 SerDes
  • 它启用 PCIe 电源域
  • 它会触发 PCIe 链路训练

之后、引导加载 程序进入无限循环、在该循环中、它持续读取和输出许多 PCIe 调试寄存器、最重要的是该循环中的物理链路状态(LTSSM)、我们可以看到链路训练需要非常非常非常长的时间(秒!)。  即使链路出现、它通常也会在一段时间(有时是秒、有时是分钟)后中断。  所有这些几乎都是不确定的。

因此,我们认为可能存在硬件问题。 但是、我们如何继续诊断这种情况呢?

我们的问题是:

  • 您对如何解决与 PCIe 链路训练/物理层问题相关的问题有什么建议吗?
  • 在初始化 SerDes PHY 时、是否需要考虑任何因素?
    SerDes 规范(spruho3a.pdf)规定,客户*切勿*使用除 TI 提供的设置之外的任何设置。 客户是否有任何已知的使用案例需要特殊的 PHY 设置?

谢谢

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!
    我从未尝试过、因为我的系统是 gen1。 但是、如果您不尝试将您的链接从 Gen2降级到 gen1、那您会怎么做呢? 如果这会有所帮助、您可能会猜测问题是由于高速时信号质量较差造成的。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Frederik、

    此外、在我们开始调试 CSL 设置之前。 您的客户能否验证他们是否遵循了 KeyStone II 器件的硬件设计指南(www.ti.com/.../sprabv0.pdf)第6.6节外设组件快速互连(PCIe)和 KeyStone 架构外设组件快速互连(PCIe)用户指南(www.ti.com/.../spruho3a.pdf)第10.2节推荐的串行器/解串器 PCB 布局限制?

    此致、
    Yordan

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

    我是客户,Frederik 谈论的是:-)
    首先、感谢您的建议。

    是的、我们已经尝试降级到 PCIe 第1代、遗憾的是没有成功。
    关于 PCIe 设计文档、我很确定硬件开发人员已经考虑了这一点。 无论如何、我们将仔细检查所有内容。

    @Yordan:您提供的文档链接不起作用(至少不适用于我)。 请检查一下它们吗?

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

    我已编辑我的帖子。 这些链接现在应该可以正常工作。

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

    "修改了引导加载程序(uBoot)、使其能够持续监控 PCIe 控制器的状态。"=========> TI U-boot 不会对 PCIe 进行初始化。 请详细说明您用于 PCIe 初始化的软件(Linux 或 RTOS)和版本?

    通常、Linux 内核具有 PCIe 驱动程序并执行 PSC/RC 模式/SerDes/link 训练。 或者、我们有用于相同操作系统的处理器 SDK RTOS。

    PCIe 串行器/解串器设置通常我们不会触摸、根据我们的经验、它是稳健的、无需进行调优。

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

    谢谢、Eric!  首先、我们使用了未调制的 Uboot 以及标准的 Linux 驱动程序代码。 我们仅修改了 uBoot 以诊断链路状态。

    无论如何、我想我们已经发现了这个问题。 似乎我们没有正确连接 PCIe 参考电阻 器 PCIE0REFRES/PCIE1REFRES :-)( 硬件设备目前正在研究以某种方式修复电路板的方法。

    不管怎样、串行器/解串器设置不需要修改的信息也非常有用。 我们想知道是否还需要审查所有这些异端参数。 很高兴听到标准设置非常好。

    感谢大家的帮助!