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.

[参考译文] DP83825I:DP83825I:DP83825I 在应力测试 (OMAP-L138/DaVinci EMAC) 后挂起–需要软件复位才能恢复

Guru**** 2811815 points

Other Parts Discussed in Thread: DP83825I, OMAP-L138

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

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/1623978/dp83825i-dp83825i-phy-link-hang-after-stress-test-omap-l138-davinci-emac-requires-software-reset-to-recover

器件型号: DP83825I
主题中讨论的其他器件: OMAP-L138

大家好:

我遇到的持续“链路挂起“问题 DP83825I PHY 通过 RMII 连接到 OMAP-L138 (DaVinci _EMAC)。

问题: 在涉及以太网电缆重复热插拔的应力测试期间、链路最终进入永久“断开“(载波 0)的状态。 即使重新连接了已知良好的电缆、系统也会无限期地保持此状态。

恢复: 恢复链路的唯一方法是通过 MDIO 手动执行数字软复位:phytool write eth0/0/0 0x8000  发出此复位命令后、链路会立即恢复、DHCP 成功完成。

“挂起“状态下的寄存器观察结果:

  • 寄存器 0x01 (BMSR): 0x7849(链接已关闭,但自动协商未完成)。

  • 寄存器 0x10 (PHYSTS): 0x19120x0812。 请注意 位 12(信号检测) 通常为 1、但 位 0(链路状态) 保持为 0。

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

    您好:

    这是意料之外的。 PHY 热插拔的频率如何? 我担心状态机可能会卡住、但这可能是由其他因素导致的、例如基准时钟干扰。 在挂起状态期间、是否填充了寄存器 0x5?

    在本例中、链路伙伴是什么? 是否其他链路伙伴或另一个作为链路伙伴的 DP83825 发生这种情况?

    此致、

    Gerome

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

    您好、Gerome、  

    我在快速插拔应力测试期间链路挂起的确切时刻捕获了寄存器转储。 我通过 RJ45 连接到了路由器。

    良好情况:

    寄存器 0x00:0x3100
    寄存器 0x01:0x786d
    寄存器 0x02:0x2000
    寄存器 0x03:0xa140
    寄存器 0x04:0x01e1
    寄存器 0x05:0xcde1
    寄存器 0x06:0x000f
    寄存器 0x07:0x2001
    寄存器 0x08:0000
    寄存器 0x09:0000
    寄存器 0x0a:0x0100
    寄存器 0x0B:0000
    寄存器 0x0c:0000
    寄存器 0x0d:0x4007
    寄存器 0x0E:0000
    寄存器 0x0F:0000
    寄存器 0x10:0x4615
    寄存器 0x11:0x0108
    寄存器 0x12:0x6400
    寄存器 0x13:0x2800
    寄存器 0x14:0000
    寄存器 0x15:0000
    寄存器 0x16:0x0100
    寄存器 0x17:0x0065
    寄存器 0x18:0x0480
    寄存器 0x19:0x8c00
    寄存器 0x1a:0000
    寄存器 0x1b:0x007d
    寄存器 0x1c:0x05ee
    寄存器 0x1d:0000
    寄存器 0x1E:0x0102
    寄存器 0x1f:0000

    坏情况:

    寄存器 0x00:0x3100
    寄存器 0x01:0x7849
    寄存器 0x02:0x2000
    寄存器 0x03:0xa140
    寄存器 0x04:0x01e1
    寄存器 0x05:0000
    寄存器 0x06:0x0007
    寄存器 0x07:0x2001
    寄存器 0x08:0000
    寄存器 0x09:0000
    寄存器 0x0a:0x0100
    寄存器 0x0B:0000
    寄存器 0x0c:0000
    寄存器 0x0d:0x401f
    寄存器 0x0E:0x1000
    寄存器 0x0F:0000
    寄存器 0x10:0x1812
    寄存器 0x11:0x0108
    寄存器 0x12:0xe600
    寄存器 0x13:0x2800
    寄存器 0x14:0000
    寄存器 0x15:0000
    寄存器 0x16:0x0100
    寄存器 0x17:0x0065
    寄存器 0x18:0x0480
    寄存器 0x19:0x8000
    寄存器 0x1a:0x0010
    寄存器 0x1b:0x007d
    寄存器 0x1c:0x05ee
    寄存器 0x1d:0000
    寄存器 0x1E:0x0102
    寄存器 0x1f:0000

    我测量了时钟、似乎保持了 50MHz。  

    [66.573865] DaVinci _EMAC DaVinci _EMAC.1 eth0:链路断开
    [73.849079] DaVinci _EMAC DaVinci _EMAC.1 eth0:链路接通 — 100Mbps/完整 — 流控制 Rx/TX
    [ 75.933756] DaVinci _EMAC DaVinci _EMAC.1 eth0:链路断开
    [78.009091] DaVinci _EMAC DaVinci _EMAC.1 eth0:链路接通 — 100Mbps/完整 — 流控制 Rx/TX
    [ 80.088749] DaVinci _EMAC DaVinci _EMAC.1 eth0:链路断开
    [83.209090] DaVinci _EMAC DaVinci _EMAC.1 eth0:链路接通 — 100Mbps/完整 — 流控制 Rx/TX
    [95.688799] DaVinci _EMAC DaVinci _EMAC.1 eth0:链路断开
    [ 96.729095] DaVinci _EMAC DaVinci _EMAC.1 eth0:链路接通 — 100Mbps/完整 — 流量控制 Rx/TX
    [ 104.015925] DaVinci _EMAC DaVinci _EMAC.1 eth0:链路断开
    [106.089105] DaVinci _EMAC DaVinci _EMAC.1 eth0:链路接通 — 100Mbps/完整 — 流量控制 Rx/TX

    [117.528748] DaVinci _EMAC DaVinci _EMAC.1 eth0:链路断开
    [126.889076] DaVinci _EMAC DaVinci _EMAC.1 eth0:链路接通 — 100Mbps/完整 — 流控制 Rx/TX
    [ 134.168740] DaVinci _EMAC DaVinci _EMAC.1 eth0:链路断开
    [ 137.289095] DaVinci _EMAC DaVinci _EMAC.1 eth0:链路接通 — 100Mbps/完整 — 流控制 Rx/TX
    [ 141.458741] DaVinci _EMAC DaVinci _EMAC.1 eth0:链路断开
    [145.609268] DaVinci _EMAC DaVinci _EMAC.1 eth0:链路接通 — 100Mbps/完整 — 流控制 Rx/TX
    [ 150.813809] DaVinci _EMAC DaVinci _EMAC.1 eth0:链路断开

    此致、  

    Wei Han

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

    您好、Wei Han、

    不幸的是,转储没有指出任何具体的东西。 转储中显示的大多数增量都可以归因于链路状态、从顶层摘要中已经知道链路状态。 您能否提供有关链路伙伴的更多信息、以及某些链路伙伴触发此行为?

     您的热插拔速度有多快? 在不良状态下、在使用 100 欧姆端接的 RJ-45 上进行测量(由链路伙伴或其他地方(如示波器/负载板)时是否仍然存在 FLP?

    此致、
    Gerome

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

    您好 Gerome、  

    我没有等待链路建立完成;我已经执行了另一个链路断开和链路建立 d、所以速度相当快。  
    根据我的日志、我将使用轮询方法来读取状态。 发生问题后、它会一直显示“No link detected“。  

    好情况:寄存器 0x01:0x786d

    错误情况:寄存器 0x01:0x7849

    此外、即使我执行 BMCR=0x8000、问题也会很快再次出现、有时甚至无法恢复。 你有什么线索吗?

    当 dp83825 工作正常时、测量以太网电缆上的 TD_P 引脚、能够每 60Hz 间隔观察一次数据脉冲(与快速链路脉冲 (FLP) 突发时序 (~16ms) 匹配)。

    但当挂起问题发生、并且我们测量同一引脚时、无法再每 60Hz 频率观察到脉冲。

    此致、

    Wei Han

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

    尊敬的 Wei:

    工作假设是热插拔多次过于激进、可能会导致状态机锁定。 虽然某些热插拔是可以接受的、但在极短的时间内多次尝试可能会导致这种情况发生。  

    一些客户确实有热插拔测试用例、但您所描述的似乎是一个非常激进的用例。 如果您降低了热插拔发生率或减少了每次运行的测试次数、问题是否仍然存在?

    此致、

    Gerome

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

    您好、Gerome、

    感谢您的答复。 但主要问题是我们无法控制最终用户环境、但 PHY 会进入“锁存“状态、在该状态下、它会在直到BMCR_RESET或下电上电之前完全停止响应链路脉冲。

    您能否解释一下 DP83825 用于转换链路状态位的内部逻辑? 具体来说、状态机如何处理在“自动协商“或“解码器锁“仍在进行时发生的“链路断开“事件?

    此致、  

    Wei Han

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

    您好:

    遗憾的是、这涉及到我无法透露的 PHY 的专有实现细节。

    另一个工作原理是、类似的热插拔行为也会为 PHY 触发 ESD 事件。 这也会导致 PHY 闩锁。 一种确认这一点的方法是电源轨上的电流消耗高于正常空闲运行模式。 是否可以为此使用电流表?

    如果是这种情况、我们的产品系列中还有其他在 ESD 测试中更强大的 PHY。

    此致、

    Gerome