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.

[参考译文] DP83867IR:将 TI DP83867IR phy 与 Xilinx Zynq UltraScale+ RFSOC 搭配使用时、SGMII 以太网链路不一致问题

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

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/1166518/dp83867ir-sgmii-ethernet-link-inconsistency-issue-faced-when-using-ti-dp83867ir-phy-with-xilinx-zynq-ultrascale-rfsoc

器件型号:DP83867IR
主题中讨论的其他器件: DP83867ISTXS0102

您好!

 将 TI DP83867IR phy 与 Xilinx Zynq UltraScale+ RFSOC 搭配使用时、我们面临 SGMII 以太网链路不一致问题。

在 PHY 端,我们配置了“SGMII Enable=1 (模式2)和 RX_CTRL=0 (模式3)”。

在以太网链路断开之前、我们在 Petalinux 日志中收到以下错误消息。

[401.013577] TI DP83867 ff0b0000.ethernet-ffff:00:主/从分辨率失败

  1. 您能否根据驱动程序报告上述错误消息的条件提供建议?
  2. 是否有其他人遇到此错误?

此致
路易

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

    您好、Louis、

    您是否能够提供有关何时发生链路不一致或中断的更多详细信息? 还请发送一个从地址0到1E 的寄存器转储来确认 PHY 自举配置。

    当问题发生时、请尝试在 PHY 上将4000写入1F、以查看链路是否出现。

    谢谢、

    Evan

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

    您好!

    我们发现电路板上存在间歇性 MDIO 访问故障、在这些电路板上、以太网链路不一致。 我们怀疑间歇性 MDIO 访问故障导致以太网链路断开。

    首先、我们将尝试了解 MDIO 访问失败的原因。

    我们 重复读取 PHYID1 (地址0x2)和 PHYID2 (地址0x3)寄存器、并在通过和失败的情况下捕获 MDIO 波形。

    在故障情况下、TI phy 器件似乎已开始驱动、似乎已在一个时钟周期之前开始驱动读取寄存器值、从而导致 FPGA 错误地锁存数据。

    请参阅随附的幻灯片(幻灯片4和5)、了解比较通过和失败共源共栅0的波形

    我有两个问题:

    1. 如果您对 PHY 器件在读取前驱动 MDIO 总线一个时钟周期的原因有一些意见、请告知您。
    2. PHY 器件在 MDIO 寄存器读取访问的第15个时钟周期和第16个时钟周期之间开始驱动 MDIO 总线的延迟规格是多少?  [我们需要这些数据来验证在满足 MDC 时钟上升沿之前、RFSOC 器件 MDIO 设置时间要求为80ns ]

    e2e.ti.com/.../MDIOinterfaceAccessIssueDebug_5F00_0.2.pdf

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

    您好、Louis、

    FPGA 的 MDC/MDIO 上是否还连接了其他任何 PHY?

    如果连接了另一个 PHY、您能否在观察 MDIO 信号的同时关闭该 PHY?

    请指定什么链接不一致是指链接定期返回还是保持关闭?

    谢谢、

    Evan

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

    您好 Evan、

    DP83867IS 是唯一连接到 FPGA MDC/MDIO 上的 PHY 器件。

    不一致之处如下:

    在多个 MDIO 读取访问时(读取 PHYID1和 PHYID2寄存器)、在某些迭代中、我们会得到无效响应。 在故障情况下探测 MDIO 信号时、我们发现与 DP83867数据表中的表3和图17相比、PHY 器件会提前一个时钟周期开始发送读取寄存器响应。

    请参阅我的附件幻灯片4和5。

    2.以太网链路不一致:一旦它停止运行,它就无法自行恢复。 我们怀疑这是因为 MDIO 访问失败。

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

    您好、Louis、

    MDIO 读取故障不应是链路故障/不一致的根本原因。 链路可能仍然正常、但 MDIO 读取失败会阻止您正确读取 PHY 的状态。

    您是否能够使用 MDIO 读取之外的方法验证链接是否失败? 这可以通过 LED_0/1/2或探测两个链路伙伴之间的输入/输出数据来实现。

    [引用 userid="12170" URL"~/support/interface-group/interface/f/interface-forum/1166518/dp83867ir-sgmii-ethernet-link-inconsistency-issue-faced-when-using-ti-dp83867ir-phy-with-xilinx-zynq-ultrascale-rfsoc "[401.013577] TI DP83867 ff0b0000.ethernet-ffffff:00:主/从解析失败

    我当前的假设是、问题出在 MDIO 侧、因为此日志取决于 MDIO 读取。

    谢谢、

    Evan

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

    您好 Evan、

    我同意、我认为链接很好。 我们已验证是否满足 SGMII 眼罩要求。 但是、由于 MDIO 访问问题、我怀疑 Linux 器件驱动程序正在禁用 Xilinx RFSOC 上的 SGMII 接口。

    我想了解 MDIO 访问失败的原因:

    1. 如果您对 PHY 器件在读取时提前一个时钟周期驱动 MDIO 总线的原因有一些意见、请告知您。
    2. PHY 器件在 MDIO 寄存器读取访问的第15个时钟周期和第16个时钟周期之间开始驱动 MDIO 总线的延迟规格是多少?  [我们需要这些数据来验证在满足 MDC 时钟上升沿之前、RFSOC 器件 MDIO 设置时间要求为80ns ]

    谢谢

    路易

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

    您好、Louis、

    [引用 userid="12170" URL"~/support/interface-group/interface/f/interface-forum/1166518/dp83867ir-sgmii-ethernet-link-inconsistency-issue-faced-when-using-ti-dp83867ir-phy-with-xilinx-zynq-ultrascale-rfsoc/4416386 #4416386]如果您对 PHY 器件在读取时提前一个时钟周期驱动 MDIO 总线的原因有任何意见、请告知您?

    MDC/MDIO 线路上可能存在一些偏差、但需要更多信息来确认这一点。 您是否能够降低 MDC 频率并查看此行为是否发生变化?

    [引用 userid="12170" URL"~/support/interface-group/interface/f/interface-forum/1166518/dp83867ir-sgmii-ethernet-link-inconsistency-issue-faced-when-using-ti-dp83867ir-phy-with-xilinx-zynq-ultrascale-rfsoc/4416386 #4416386]在 MDIO 寄存器读取访问的第15个时钟周期和第16个时钟周期之间开始驱动 MDIO 总线的 PHY 器件延迟规格是什么?

    该标准将2位时间间隔延迟定义为相对于 MDC 的周转时间。

    参考幻灯片4 -在故障情况的第14个时钟周期、问题可能出在 MAC 端、而 ZU67会提前一个时钟周期释放最后一个寄存器地址位。

    谢谢、

    Evan

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

    感谢您的回应 Evan。

    尝试 降低 MDC 时钟频率:

    当前 MDC 时钟频率设置为2.08MHz。

    我们尝试将时钟频率降至1.5625Mhz 和1.04MHz、5次迭代中未出现 MDIO 访问问题

    但是、在446KHz 和781KHz 时、发现 MDIO 访问故障。

    在1.5625Mhz MDIO 频率下、以太网 ping 不起作用。 我们正在与 Xilinx 一起检查在更改 MDC 时钟频率后是否需要任何其他设置来使 ping 工作。

    2.是否可以指定-在 MDIO 读取访问的第14个 MDC 时钟上升沿之后、DP83867 PHY 器件开始驱动 MDIO 线路的最小和最大延迟是多少?

    参考幻灯片4 -在故障情况的第14个时钟周期、在第14个时钟上升沿、MDIO 线路为高电平。 在上升沿之后不久、MDIO 线路变为低电平。 我的理解是、如果 ZU67提前释放了 MDIO 线路、MDIO 线路就会保持高电平、而不是变为低电平。

    请注意、作为幻灯片(幻灯片3)中的共享内容、我们在 ZU67和 DP83867 PHY 之间的 MDIO/MDC 接口上提供了 TI TXS0102器件

    我们包含该器件、以便在插入测试板(包含 phy 器件)之前将外部 MDIO 接口保持在三态、并通过软件控制来启用它。

    此 TXS0102 器件 包含一次性上升沿速率加速器电路。

    我们怀疑此器件是否导致了此问题。  

    如果您有关于 TXS0102器件可能在此接口上引起问题的任何信息、请告知我们。

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

    您好、Louis、

    我们通常不会在 MDC/MDIO 线路上看到有源组件-此应用是否需要 TXS0102?

    在这种情况下、MAC 和 PHY 都遵循802.3设置的 MDC/MDIO 标准-如果应用程序不偏离标准和数据表建议、我们不会遇到任何问题。

    请检查在 TXS0102之间短路时是否可以重现故障情况。  

    [引用 userid="12170" url="~/support/interface-group/interface/f/interface-forum/1166518/dp83867ir-sgmii-ethernet-link-inconsistency-issue-faced-when-using-ti-dp83867ir-phy-with-xilinx-zynq-ultrascale-rfsoc/4418509 #4418509]2. 它是否可以指定-在 MDIO 读取访问的第14个 MDC 时钟上升沿之后、DP83867 PHY 器件将开始驱动 MDIO 线路的最小和最大延迟是多少?[/QUERP]

    我正在寻找此信息、请在11月30日(周三)假期之前跟进此信息。

    谢谢、

    Evan

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

    谢谢 Evan。

    我将等待周转时间规格。

    关于 TXS0102:

     我们包括该器件、以便在插入测试板(PHY 所在)之前使外部 MDIO 接口保持三态、并通过软件控制启用外部 MDIO 接口。  

    我们测试了 TXS0102上的短路。

    在默认 MDC 时钟频率为2.08Mhz 的情况下、我们观察到3 out 11 MDC 读取访问迭代中失败(一个读取迭代包括对 PHYID1和 PHYID2寄存器的1000次读取)

    我们将 MDC 时钟频率降低到1.04MHz、并在所有10次迭代中传递。

    我们将 MDC 时钟频率降至781KHz、并在所有10次迭代中传递。

    当我们将 MDC 时钟频率降低到446KHz 时、MDIO 读取访问在2次6次迭代中失败。

    PHY 支持的最小 MDC 时钟频率。

    接下来、我们将在不短接 TXS0102的情况下使用降低的 MDC 频率进行测试、并将进行更新。

     

    此致
    路易

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

    您好、Louis、

    我无法指定超出标准中量化的周转时间- 2位时间间隔。 如果 MDC 以2.08MHz 运行、则最大周转时间为0.96us。

    是否在测试板或无线电板端测量 MDIO/MDC 信号? 如果在无线电端测量、请改为在 PHY 端重复测试。

    [引用 userid="12170" URL"~/support/interface-group/interface/f/interface-forum/1166518/dp83867ir-sgmii-ethernet-link-inconsistency-issue-faced-when-using-ti-dp83867ir-phy-with-xilinx-zynq-ultrascale-rfsoc/4420960 #4420960"] PHY 是否支持最低 MDC 时钟频率。

    虽然我会与团队确认并就此与您联系、但我认为不是这样。

    谢谢、

    Evan

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

    谢谢 Evan。

    从 IEEE 标准802.3-2018第22.3.4节 MDIO 与 MDC 的时序关系中、指定了该值

    当 STA 为 MDIO 信号供电时、STA 应提供以 MDC 的上升沿为基准的最少10ns 的设置时间和最少10ns 的保持时间、如图22-18所示、在 MII 连接器上测量。"

    '在 MII 连接器上测量的 PHY 的时钟到输出延迟 应最小为0ns、最大为300ns "

    关于周转时间行为并考虑 IEEE 标准中的时序规格:

    在第14个 MDC 时钟上升沿、STA (ZU67)在 MDC 上升沿之后驱动最后一个寄存器地址位至少10ns、然后对 MDIO 线路进行三态处理。

    直到第15个 MDC 时钟上升沿为止、STA (ZU67)和 PHY 器件均将 MDIO 线路置于三态。

    在第15个时钟上升沿之后、PHY 器件将以0驱动 MDIO 总线、最小延迟为0ns、最大延迟为300ns。

    但是、在我所附文档的幻灯片4和5中可以看到的故障情况下、PHY 器件似乎在第14个 MDC 时钟上升沿之后(而不是在第15个 MDC 时钟上升沿之后)开始驱动0

    如前一个更新所述、当我们绕过 TXS0102器件时、我们看到了显著的改进。

    TXS0102器件是否会导致此问题并导致 PHY 提前1个时钟周期开始发送 MDIO 读取数据?

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

    您好、Louis、

    TXS0102可能会引入一些延迟/失真/... 导致此行为的信号路径、但我不熟悉此器件和用例、因此无法提供精确的建议。

    是否正在从无线电板或测试板侧测量 MDC/MDIO 信号?  

    谢谢、

    Evan

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

    您好 Evan、

    先前共享的捕获是在无线电板上捕获的。

    我们今天在 PHY 端捕获了波形(通过和失败情况)。 我们还放大了第十四和第十五个 MDC 时钟周期的时钟。 如果您发现 PHY 在故障情况下提前一个时钟开始驱动读取响应的任何问题/任何原因、请查看并告知我们。

    请查找随附的捕获。  

    (Louis 12月2日:更新了文件,增加了详细信息并 上传了)

    e2e.ti.com/.../MDIOinterfaceAccessIssueDebug_5F00_CaptureatPhyEnd_5F00_0.3.pdf

    此外、我们之前在 TXS0102 MDC 输出端包含了一个100pF 电容器、以提高信号完整性。

    我们通过移除 TXS0102器件和100pF 电容器并将 TXS102焊盘上的 MDC 信号短接进行了测试。 TXS0102焊盘上类似短接的 MDIO 信号。

    因此、我们无法重现 MDIO 访问和 Ping 不一致问题。

    TI 的某个人能否拥有有关 TXS0102 (Clemens Ladisch?)的专业知识? 还应评论 TXS0102导致 DP83867 PHY 出现意外行为的可能原因、即在故障情况下提前一个时钟开始驱动读取响应?

    谢谢

    路易

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

    您好、Louis、

    请创建一个新的线程、以便使用此现有线程作为上下文来获得 TXS0102的帮助。  

    谢谢、

    Evan

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

    当然、Evan。  

    我将为 TXS0102创建一个新线程。

    • 在 DP83867侧、根据 PHY 端共享的 MDIO/MDC 波形、是否可以解释 PHY 器件为何在故障情况下驱动 MDIO 线路的时钟周期比预期的早一个时钟周期?

    根据 MDC/MDIO 波形、在 PHY 端满足10ns/10ns 的设置/保持时序要求。 因此、我无法理解 PHY 器件为何会在故障情况下比预期的低一个时钟周期驱动 MDIO 线路。

    e2e.ti.com/.../2671.MDIOinterfaceAccessIssueDebug_5F00_CaptureatPhyEnd_5F00_0.3.pdf

    我还有一个意见要分享:

    正如幻灯片2上的硬件接口图中所述、我们在 TXS0102输出端的 MDC 信号上有一个100pF 电容器、用于减少 PHY 端 MDC 信号的过冲 [上述共享的波形采用此配置]

    出于测试目的、我们通过保留 TXS0102并仅移除100pF 电容器进行了测试。 在这种情况下、MDIO 访问通过(针对 PHYID1和 PHYID2的15000次读取访问进行了测试)。 还在-50C 至+65C 的温度范围内进行了测试。

    在存在100pF 电容器的情况下、从共享波形中可以看出、我们不违反 PHY 器件 MDIO 设置/保持时序规格10ns/10ns。

    • 如果您有一些解释、为什么在 TXS0102输出端 MDC 信号上存在100pF 电容器似乎会导致 PHY 器件在 故障情况下比预期的时间提前一个时钟周期来驱动 MDIO 线路、请告知您?

    谢谢

    路易

    注:供参考:我已在 TXS0102相关查询中创建了以下 TT:

    TXS0102:在逻辑论坛-逻辑- TI E2E 支持论坛之间的 Xilinx Zynq UltraScale+和 TI DP83867 PHY 与 TI TXS0102器件之间的 MDIO 接口上观察到问题

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

    您好、Louis、

    如果移除100pF 电容器和 TXS0102、误差是否可重现?

    [引用 userid="12170" URL"~/support/interface-group/interface/f/interface-forum/1166518/dp83867ir-sgmii-ethernet-link-inconsistency-issue-faced-when-using-ti-dp83867ir-phy-with-xilinx-zynq-ultrascale-rfsoc/4429353 #4429353"]如果您有一些解释,请告知您为什么在 TXS0102输出端的 MDC 信号上存在100pF 电容器似乎导致 PHY 器件在 故障情况下比预期的要早一个时钟周期驱动 MDIO 线路?

    我无法评论 TXS0102输出与电容器配对时的行为。 正如您所示、电容器本身不会导致 PHY 违反设置/保持时间、因此我怀疑该行为是由 TXS0102引起的。  

    谢谢、

    Evan  

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

    您好 Evan、

    从 PHY 端的共享 MDC/MDIO 波形中、是否可以解释 PHY 器件为何 在故障情况下在周转时间内比预期的时间提前一个时钟周期驱动 MDIO 线路?

    是否有违反 PHY 器件规格的行为会导致此行为?

    我正在跟进这一问题、以确保我们在投入量产时了解这一问题的根本原因。

    谢谢

    路易

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

    您好、Louis、

    查看故障情况第14个上升沿的放大数据/时钟波形、可以看到相对于 MDIO 信号的电压电平、超出10ns 的最小保持时间。

    在3.3VDDIO 域上运行、VIH > 1.7V、VIL < 0.7V。 波形中的 MDIO 信号在时钟边沿之后稳定在~1.5V、因此不清楚它在时钟周期中是被记录为逻辑高电平还是低电平。 由于它在整个时钟周期内保持此电压、其未知逻辑状态可能违反保持时间。

    谢谢、

    Evan

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

    您好 Evan、

    在第14 个 MDC 时钟周期上升沿后的故障情况下 、下一个下降沿 MDIO 为1.5V 、表示 MDIO 上存在争用
    信号。

    在 第14个 MDC 时钟周期上升沿之前、ZU67主动驱动 MDIO 线路、在下降沿1处驱动、直到第14个 MDC 时钟周期后的下一个下降沿。

    PHY 似乎已经开始在第14个时钟周期上升沿以0驱动 MDIO 线路、从而导致 MDIO 线路上的争用。

    明显的保持冲突似乎是因为 PHY 意外地开始驱动其响应1时钟周期、这也可以从在第15个及后续时钟周期上驱动的其余位中看出、这些位都比预期的要早驱动一个时钟周期。

    是否有任何违反 PHY 器件规格的行为会导致 PHY 开始驱动 MDIO 总线、其时钟周期比预期的早一个时钟周期?

    谢谢

    路易

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

    您好、Louis、

    [引用 userid="12170" URL"~/support/interface-group/interface/f/interface-forum/1166518/dp83867ir-sgmii-ethernet-link-inconsistency-issue-faced-when-using-ti-dp83867ir-phy-with-xilinx-zynq-ultrascale-rfsoc/4436347 #4436347"] PHY 似乎在第14个时钟周期的上升沿以0开始驱动 MDIO 线路,从而导致 MDIO 线路争用。

    我不确定~1.5V 电平是由 SOC 和 PHY 之间的争用引起的、还是由 TXS0102的输出行为引起的。

    [引用 userid="12170" URL"~/support/interface-group/interface/f/interface-forum/1166518/dp83867ir-sgmii-ethernet-link-inconsistency-issue-faced-when-using-ti-dp83867ir-phy-with-xilinx-zynq-ultrascale-rfsoc/4436347 #4436347"]是否违反了 PHY 器件的任何规范、从而可能导致 PHY 比预期的时钟周期提前一个时钟周期开始驱动 MDIO 总线?

    PHY 不应提前一个周期驱动 MDIO 线路、因为第14个时钟周期之前的 MDC/MDIO 波形都在设置/保持时间规格内。  

    谢谢、

    Evan

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

    您好 Evan、

    我们观察到 MDIO 电压 为1.5V、紧接着 第十四 个 MDC 时钟周期上升沿之后、直到 TXS0102 (PHY 端和 FPGA 端)的下一个下降沿 、这似乎表明 TXS0102已完全导通。

    基于上述观察结果、我认为 TXS0102输出行为不太可能是 MDIO 线路上1.5V 电压的原因。

    无论如何、根据我们到目前为止的测试、移除了靠近 TXS01012 MDC 输出的100pF 电容器后、我们看不到 MDIO 访问故障。

    此外、我们还测试了将100pF 电容器放置在 MDC 靠近 PHY 端的位置(TXS0102 MDC 输出附近没有电容器)、在该配置下 、我们 也看不到 MDIO 访问故障。

    我们将继续观察这一点几个星期,如果没有发现任何问题,将以这一解决办法结束。

    谢谢

    路易