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:查询以太网 PHY 收发器错误的原因

Guru**** 2487425 points


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

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/1409322/dp83867ir-inquiry-on-the-cause-of-ethernet-phy-transceiver-error

器件型号:DP83867IR

工具与软件:

您好!

我的客户正在测试连接到 AM6232的两个 DP83867以太网 PHY 收发器的运行情况、遇到以下问题:

 -如果他们在 Linux 控制台中运行"# ifconfig eth0 down", eth1也将关闭。

 -这种症状只出现在他们生产的几个样本板中的某些板上。

请告知我们是否有任何 H/W 因素可能导致该问题、例如 DP83867以太网 PHY 收发器的引脚连接或电阻器或电容器连接。

谢谢你。

JH

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

    尊敬的 JH:

    您能分享一下原理图吗? 我想检查 PHY 是否与 AM62共享任何信令。

    我目前假设禁用一个接口可能会禁用与另一个 PHY 的某些共享信号、从而导致链路断开。

    如果每个 PHY 向 MAC 的信号都是独立的、则问题可能出在软件层面。

    谢谢!

    Evan

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

    尊敬的 Evan:

    感谢您的答复。

    我发送了一个友好请求、因为客户要求我将原理图保密。

    BR、

    JH

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

    你(们)好

    请在运行 ethtool 时找到测试日志。

    ally_nbiu_m:[~]#
    ally_nbiu_m:[~]# ethtool -i eth0
    driver: am65-cpsw-nuss
    version: 6.1.46-dirty
    firmware-version:
    expansion-rom-version:
    bus-info: 8000000.ethernet
    supports-statistics: yes
    supports-test: no
    supports-eeprom-access: no
    supports-register-dump: yes
    supports-priv-flags: yes
    
    ally_nbiu_m:[~]#
    ally_nbiu_m:[~]#
    ally_nbiu_m:[~]# ethtool -i eth1
    driver: am65-cpsw-nuss
    version: 6.1.46-dirty
    firmware-version:
    expansion-rom-version:
    bus-info: 8000000.ethernet
    supports-statistics: yes
    supports-test: no
    supports-eeprom-access: no
    supports-register-dump: yes
    supports-priv-flags: yes
    ally_nbiu_m:[~]#
    ally_nbiu_m:[~]#
    ally_nbiu_m:[~]#
    

    它们使用如下所示的不同 Phy 地址。

    &mdio {
        phy0: ethernet-phy@0 {
            reg = <0>;
        };
    
        phy1: ethernet-phy@1 {
            reg = <1>;
        };
    };
    

    可以查看 GPIO 引脚。 请告知我们。  

    谢谢。

    此致、  

    插孔

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

    您好!

    Evan 今天太棒了,明天还会再来的。  

    此致、

    Gerome.

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

    尊敬的 Jack、JH:

    Ethtool 日志和 PHY 地址配置对我来说很好。

    有关原理图、请发送电子邮件至 e-mayhew@ti.com 。

    客户是否记录了此问题的故障率?

    谢谢!

    Evan

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

    尊敬的 Evan:

    感谢你的帮助。

    客户表示通过分别实施不同的(一个是 MDC/MDIO、另一个是 GPIO)进行了测试、但是问题没有变化。

    BR、

    JH

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

    你(们)好
    感谢您的回答。
    客户还检查了两个 phy 芯片的单独驱动程序负载、他们正在分别加载它们、并且没有发现任何异常。
    能否请查看他们创建的 PCB 光绘数据? 导出为 PDF 文件。

    e2e.ti.com/.../nbiu_5F00_io_5F00_v02gerber.zip

    谢谢。

    此致、  

    插孔

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

    你(们)好。

    请查找其附加测试结果。  

    这种情况发生在6块电路板中的5块电路板上、症状如下所示。

    [1] 2个电路板、当 eth1停机时、eth0停机(当 eth0停机时、eth1停机)
    [2] 3个电路板、当 eth0停机时、eth1也停机(当 eth1停机时、eth0不停机)
    [3]上面[1]中的2个器件(4个芯片)、加上优秀的器件、将会得到相同的结果。
    问题仅出在"ifconfig down"命令部分、否则 phy 芯片行为正常。
    他们认为已经安装在板上的 phy 芯片不是问题所在、
    因此他们完全没有理由尝试新芯片。

    谢谢。

    此致、  

    插孔

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

    尊敬的 Jack:

    感谢您分享有关故障率和测试的更多详细信息。

    我不认为这是原理图或布局问题、到每个 PHY 的 MAC 连接是独立的。

    这似乎是与 MPU 如何识别和分配每个 eth 接口相关的固件问题。

    该问题是否仅在运行"ifconfig eth "下"、或在断开其中一个连接线上的电缆时 接口?

    是否可以共享处理器的完整 DTS? 我想回顾一下如何分配 MAC 端口。

    谢谢!
    Evan

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

    你(们)好

    感谢您的热情支持。

    我们有客户提供的其他更新。

    下面是我上周末与您分享的 DTS 文件。 该 dts 基于 TI SDK 使用的 Linux 内核 dts。

    e2e.ti.com/.../ally_5F00_mcpu.dts.txt

    这是 eth0停机而 eth1是问题电路板时现象的行为描述。

    当‘在 shell 中执行"ifconfig eth0 down"时、似乎会在每个进程的最后一个信息部分将内核的网络 phy 驱动程序设置为电源完成模式。

    这意味着 Linux 内核 phy 驱动程序将设置 BMCR 的位11、这将导致下面提到的问题。

    另外、即使您使用 GPIO 引脚将 PHY-0置于复位状态、也会发生这种现象。

    在该状态下读取 PHY-1的寄存器时、会读取异常值。

    由于 PHY 状态寄存器返回异常值、因此 eth1网络关闭并且也无法正常运行。

    我很难知道实际的 PHY 读取/写入操作是问题还是 PHY 内部的状态是问题。 但是、PHY 内部的状态似乎发生了改变、而不是读取/写入操作、因为即使 PHY-1的 MDIO 总线被分离为 GPIO、该状态也是相同的。

    要消除这种现象、请将位11设置为0、或者在使用 GPIO 进行复位时、释放复位并重新初始化网络、它将正常工作。

    换句话说、在断电模式下、似乎使用寄存器或通过 PHY 的复位 SIGINAL 进入复位状态。

    到目前为止、状态如上所示。

    此外、我无法与他们共享日志、但根据他们的说法、他们确认他们将总线信息或驱动程序与设备树中的 eth0和 eth1分开加载、并且他们没有向 PHY 驱动程序添加任何代码来单独控制 eth0和 eth1、如下所示。

    静态 int phy_suspend (结构 phy_device * phydev)

    if (strcmp (phydev->attached_dev->name、"eth1")== 0){
    // eth1 phy 未断电
    返回0;
    }

    //其他 PHY 已断电
    PHY_MODIFY (phydev、MII_BMCR、BMCR_POWERDOWN、BMCR_POWERDOWN);
    返回0;
    }

    如果我需要修改代码以便能够为各个接口控制 PHY 驱动程序、我会喜欢提供一份指南、
    如果有一种测试方法(如 ethertool 或 sysfs)来单独控制它、请提供指导。

    谢谢。

    此致、  

    插孔  

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

    尊敬的 Jack:

    请参阅此常见问题解答、了解用于寄存器访问的常见 Linux 实用程序:

    https://e2e.ti.com/support/interface-group/interface/f/interface-forum/1164499/faq-how-to-read-and-write-ethernet-phy-registers-using-a-linux-terminal?tisearch=e2e-sitesearch&keymatch=phytool#

    如果可以使用 phytool、我想确认对特定 PHY ID 的手动寄存器写入仅适用于一个 PHY。 这将有助于确认 PHY ID strap 配置是否不同、并且 ifconfig 问题不是 MDIO 总线的问题。

    谢谢!

    Evan