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.

[参考译文] TDA4VM:PHY 与 DP83867的链路断开

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1505467/tda4vm-phy-link-down-with-dp83867

器件型号:TDA4VM

工具/软件:

尊敬的 TI

基于 TDA4VM 板的新板。 以太网器件之间的连接如下所示。

 CPSW5G      端口1    |-- RGMII --| TI PHY (DP83867)  |

|              端口2    |-- RGMII --| TI PHY (DP83867)  |

|               端口3    |-- RGMII --| Marvell 8端口交换机(88E6390|

我将使用 ti-processor-sdk-linux-j7200-evm-09_02_00_04、DaVinci MDIO 的默认手动模式设置为 true。

当我尝试访问88E6390寄存器时、它返回全部0xFF。

因此、我将手动模式更改为 FALSE、并成功读取了寄存器88E6390。

但它有时会显示在控制台日志的下方。

[424.996967] am65-cpsw-Nuss c000000.ethernet eth0:链路断开
[426.021393] am65-cpsw-Nuss c000000.ethernet eth0:链路接通- 1Gbps/full -流控制 Rx/TX

在我们的电路板中、eth0是端口1、与 DP83867连接。

当我在 phy_device.c 中的 int genphy_update_link (结构 phy_device *phydev)函数处添加调试代码时、有时会从 DP83867读取到奇怪的值。

**读取 MII_BMCR 而不是 MII_BMSR  

----------------------------------------------------------------------------------------

[107.844410]## genphy_update_link:0x1140
[ 107.849906] am65-cpsw-Nuss c000000.ethernet eth0:链路断开

--------------------------------------------------------------------------------------------

**无法读取有效寄存器。

--------------------------------------------------------------------------------------------

[214.084127]## genphy_update_link:0x0
[214.089385] am65-cpsw-Nuss c000000.ethernet eth0:链路断开

--------------------------------------------------------------------------------------------

它下次读取有效寄存器值(0x796d)并报告链路接通。

您能否给出一些如何调试此问题的建议?

仅供参考、当我将手动模式设置为 true 时、此问题不会发生。 但是、将手动模式设置为 true 时、无法访问88E6390。

BR

杰斯

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

    您好、

    Unknown 说:
    仅供参考、当我将手动模式设置为 true 时、此问题不会发生。 但是、将手动模式设置为 true 时、无法访问88E6390。

    由于 MDIO 硬件勘误表 i2329、您需要在手动模式下使用 MDIO。

    Marvell 开关(88E6390)是否支持 MDIO 接口? 如果是、此情况下的 MDIO 频率是多少。

    当使用 Linux 内核中的 MDIO 位拆裂驱动程序进行 MDIO 操作时、启用 MDIO 的手动模式将非常低、并且基于延迟位拆裂驱动程序。

    此致、
    Sudheer

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

    你好 Sudheer

    Marvell 开关(88E6390)支持 MDIO 接口。

    在手动模式下、PHY (DP83867)正常工作、MDIO 频率如下所示

    且 Switch (88e6390)不工作、MDIO 频率如下所示

    BR

    杰斯

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

    您好、

    来自漫威规范 MDC 似乎需要最低20MHz 时钟。

    请咨询 Marvel、它是否可以支持较低的频率?

    [引述 userid="606047" url="~/support/processors-group/processors/f/processors-forum/1505467/tda4vm-phy-link-down-with-dp83867

    当我在 phy_device.c 中的 int genphy_update_link (结构 phy_device *phydev)函数处添加调试代码时、有时会从 DP83867读取到奇怪的值。

    **读取 MII_BMCR 而不是 MII_BMSR  

    ----------------------------------------------------------------------------------------

    [107.844410]## genphy_update_link:0x1140
    [ 107.849906] am65-cpsw-Nuss c000000.ethernet eth0:链路断开

    --------------------------------------------------------------------------------------------

    **无法读取有效寄存器。

    --------------------------------------------------------------------------------------------

    [214.084127]## genphy_update_link:0x0
    [214.089385] am65-cpsw-Nuss c000000.ethernet eth0:链路断开

    --------------------------------------------------------------------------------------------

    它下次读取有效寄存器值(0x796d)并报告链路接通。

    您能否给出一些如何调试此问题的建议?

    [/报价]

    这可能是由于硬件勘误表导致的、它可能会损坏 MDIO 数据。
    因此、默认情况下、我们建议在手动模式下使用。

    此致、
    Sudheer