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.

[参考译文] DP83867IS:DP83867

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

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/890202/dp83867is-dp83867

器件型号:DP83867IS

您好!

我们的板具有两个100Mb 和两个千兆位接口。 所有接口都连接到同一台 PC (CentOS 7 OS)。

经过一段时间(几分钟或几个小时)后、100Mb 接口中的一个没有任何原因(在我们的板上未检测到链路)就会发生故障。 电路板上的 Linux 4.1.35和 FreeBSD 11.2操作系统出现问题。

其它 PC (Windows/Linux)出现问题

我们在问题发生前后对 PHY 寄存器进行了转储:

之前:

BMCR:0x1140
BMSR:0x796d
PHY_IDR1:0x2000
PHY_IDR2:0xa231
ANAR:0x011
ANLPAR:0xc5e1
ANER:0x006d
ANNPTR:0x2001
ANNPRR:0x7801
CCFG1:0x0300
STS1:0x0800
CCRCR REGCR:0x401DP_DRP:0x0002
CCR:

0x000DP_DRP:0x0002 DP_DRP:0x0002 DP_DRP





:0x0002 DP_2000_DRP:0x000DP_DRP:0x0008 DP_DRP TRP:0x0008 DP_DRP TRP:0x0008 DP_TRP:0x000DP_TRP:0x0008 DP_TRP



0x0002
DP_CFG3:0x0082
DP_CTRL:0x0000
DP_TMCH_CTRL:0xc5e1
DP_FLD_CFG:0x401f
DP_CFG4:0x6c02
DP_RGMIICTL:0x0008
DP_RGMIICL2:0x0000
DP_100CR:0xa231
DP_STRP_STS1:0x0008DP_TRUX_TRUX_TRUX_TRUX_TRUX_0x0008DP_TRUX_TRUX_TRUX_TRUX_TRUX_TRUX_TRUX_TRUX_TRUX_0x0008R0008



:0x0008DP_TRUX_TRUX_TRUX_TRUX_TRUX_TRUX_TRUX_TRUX_TRUX_TRUX_TRUX_TR

之后:

BMCR:0x1140
BMSR:0x1140
PHY_IDR1:0x1140
PHY_IDR2:0x1140
ANAR:0x1140
ANLPAR:0x1140
ANER:0x1140
ANNPRR:
0x1140 PHNPRR:0x1140
CFSCR
:0x1140
REGCR:0x1140 ADPT_TRP




:0x1140 DP_TRP:0x1140 DP_TRP:


0x1140 CCR:0x1140 DP_DP_TRP:0x1140 DP_TRP TRP:0x1140 DP_TRP:0x1140 CCR:0x1140 DP_TRP TRP:0x1140 DP_TRP TRP:0x1140 DP_TRP:0x1140 CCR:0x1140 CCR:0x1140




0x1140
DP_CFG3:0x1140
DP_CTRL:0x1140
DP_TMCH_CTRL:0x1140
DP_FLD_CFG:0x401f
DP_CFG4:0x1140
DP_RGMIICTL:0x1140
DP_RGMIICL2:0x1140
DP_100CR:0x1140
DP_STRP_STS1:0x1140 DP_TRL_TRUX_TRUX_TRUX_TRUX_TRUX_TRUX_0x1140




GPIO:0x1140 DP_CTL2:0x1140 DP_TRL_TRUX_TRUX_TRUX_TRUX_TRUX_TRUX_TRUX_TRUX_TRUX_TRUX_TRUX_TRUX_TRUX_TRUX_TRUX_TRUX_TRUX_TR 

当连接到交换机时,此问题似乎不会出现。 此外、我们还没有在千兆链路上观察到它。

例如、我们的板支持半双工。 但在 CentOS PC 上、ethtool 返回:

支持的端口:[ TP ]
支持的链路模式:10BaseT/Half 10baseT/Full
100BaseT /半个100BaseT /全双工
1000BaseT/Half 1000Base/全双工
支持的暂停帧使用:否
支持自动协商:是
支持的 FEC 模式:未报告
通告的链路模式:10BaseT /半10baseT/全
100BaseT /半个100BaseT /全双工
通告的暂停帧使用:对称
广播自协商:是
通告的 FEC 模式:未报告
链接伙伴通告的链接模式:100BaseT /半双工 
链接伙伴通告的暂停帧使用:否
连接方通告的自动协商:否
连接伙伴通告的 FEC 模式:未报告
速度:100Mb/s
双工:半双工 
端口:双绞线
PHYAD:4.
收发器:内部
自协商:开
MDI-X:关
支持唤醒:g
唤醒:D
当前消息级别:0x000000ff (255)
DRV 探头链路计时器 ifdown ifup Rx_err TX_err
检测到链接:是 

您是否知道此问题可能来自哪里?

感谢您的帮助、如果您需要更多信息、请随时访问。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Yannis、

    在"之后"照片中、当您记录寄存器转储时有链接时、这是否仍然存在? 您的设计是否捆绑到半双工?  

    最棒的

    Cecilia

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

    您好、Cecilia、

    是的、链路仍处于连接状态、PC 继续工作、就像没有发生任何情况一样、我的意思是没有新的自动连接、链路高达100Mb 全双工。

    但是、Ethtool PC 图片是在进行拔出/插拔操作后拍摄的。 我们的以太网测试仪还 确认了100Mb 半双工。

    我们的设计捆绑到半双工。 我们修改寄存器以不通过软件通告半双工

    此致、

    Yannis

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

    如果您的设计捆绑到半双工、则可能会重新启动以通告半双工。 在进行拔出/插操作后、软件是否完成了对寄存器的修改?

    谢谢、

    Cecilia

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

    您好 Cecilia、

    对寄存器的修改在 每次 PHY 复位后完成。

    这里的问题不是宣传半双工。 它看起来像是广播被停用。  PC 会减去100BaseTX 半双工、但我们板的链路已断开。

    千兆链路从未出现此问题。

    谢谢你

    Yannis

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

    您好、Yannis、

    连接方是处于强制模式还是启用了自动协商? 自动协商和双工选择之间可能不匹配。  

    谢谢、

    Cecilia

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

    您好、Cecilia、

    两个器件(我们的电路板和 Linux PC)都启用了自动协商功能。 我们还使用了以太网测试仪(Fluke)、结果与 Linux PC 值类似。

    正如您在我的第一篇文章中看到的、我们的板配置为仅通告10Mb 全双工和100Mb 全双工。  PHY 似乎 进入错误模式、或者 PHY 和我们的驱动程序之间的通信(MDIO)中断。

    PHY 为什么可以使用我们 设置的配置进入错误模式? 我们如何检测 PHY 处于错误模式? 如果设置不正确、哪种搭接会产生这种问题?

    谢谢、

    Yannis

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

    您好、Yannis、

    我认为您怀疑 MDIO 与 PHY 之间的通信可能读数不正确是正确的。 您是否有用于连接数据线的原理图?

    谢谢、

    Cecilia

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

    您好、Cecilia、

    通过查看我们的原理图、我们发现在 MODE3中未配置 RX_CTRL/RX_DV 自举(它们根本未使用)。

     解决 方案是将配置寄存器4 (0x31)中的 INT_TST_MODE_1 (7)位设置为0。

    感谢你的帮助

    Yannis