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.

[参考译文] PHYTC-3P-PHYCORE-AM335X:内核5.10以太网 PHY 时钟选择

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1170198/phytc-3p-phycore-am335x-kernel-5-10-ethernet-phy-clock-selection

器件型号:PHYTC-3P-PHYCORE-AM335X

在内核4.x 中、有一个 DTS 选项可将 RMII 配置为使用外部时钟:

phy_SEL{&
RMII-时钟-外部;
};

在内核5.10中、已被弃用、并被 phy-gmii-SEL 取代:

dT-bindings:net:TI:弃用 cpsw-phy-SEL bindings
cpsw-phy-SEL 驱动程序已替换为新的 PHY 驱动程序 phy-gmii-SEL、因此弃用 cpsw-phy-SEL 绑定。

RMII-clock-ext 似乎不是 phy-gmii-SEL 驱动程序中的选项。

我们如何确定外部时钟已启用? 我的理解是内部时钟具有太多的抖动。

在50%的启动时、我们注意到 Eth0上的连接速度非常慢。 如果我们执行 ifconfig eth0 down;ifconfig eth0 up 序列、连接将恢复并再次快速。

我们使用了 ethtool 和铁鲨来发现、当连接缓慢时、我们会遇到许多 CRC 错误。 当我们重新启动链路时、CRC 错误消失、速度正常。

在出现类似问题的几个帖子中、他们的解决方案是启用外部 RMII 时钟。 但是、对于 Linux 5.10、我们不确定如何使用新驱动程序启用它、或者检查它是否启用。

相关帖子:

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/808525/linux-am4378-ethernet-ping-issue

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/802339/am3351-rx-crc-errors-and-align-code-errors-with-ksz8081rnaia-rmii

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

    我查看了驱动程序、发现它确实设置了该位以使用外部时钟。  

    此外、仅当 AM335x 插入 TP-link 品牌的非托管交换机或 TP-link 品牌路由器时、才会出现我们的问题。 我不确定为什么会发生这种情况、但我们测试的其他交换机/路由器上不存在此问题。

    因此、我将关闭此问题、因为它似乎是由 TP-LINK 而不是 AM335x 引起的。