ZHCADI8 December   2023 DP83822H , DP83822HF , DP83822I , DP83822IF , DP83826I

 

  1.   1
  2.   摘要
  3.   商标
  4. 1DP83822 应用概述
  5. 2排查 PHY 应用问题
    1. 2.1  原理图和布局检查清单
    2. 2.2  验证 PHY 是否成功上电
    3. 2.3  读取并检查寄存器值
    4. 2.4  外设引脚检查
      1. 2.4.1 探测 RESET_N 信号
      2. 2.4.2 探测 RBIAS 引脚
      3. 2.4.3 探测串行管理接口(MDC、MDIO)信号
      4. 2.4.4 探测 MDI 信号
    5. 2.5  在初始化期间验证 Strap 配置
    6. 2.6  调试链路质量
    7. 2.7  具有各种环回模式的内置自检
    8. 2.8  调试光纤连接
    9. 2.9  调试 MAC 接口
    10. 2.10 调试帧起始检测
    11. 2.11 工具和参考
      1. 2.11.1 DP83822 寄存器访问
      2. 2.11.2 扩展寄存器访问
      3. 2.11.3 Linux 上的软件和驱动程序调试
        1. 2.11.3.1 普通端子输出和解决方案
  6. 3参考资料

普通端子输出和解决方案

使用终端命令“dmesg | grep mdio”,从软件的角度来看,可能会有几条线索显示是什么原因导致 PHY 无法正常工作。

$ dmesg | grep "mdio"

可能的输出之一如下所示:

$ mdio_bus xxx.ethernet-x: MDIO device at address 8 is missing

该消息指示 PHY 未在 MDIO 总线上找到,这可能是由多个问题引起的。一种常见原因是器件树缺失或不正确,但也可能是由于 PHY 无法正常工作或 SMI 连接不良。

一旦可以在 MDIO 总线上检测到 PHY,另一个常见错误消息如下所示:

$ Generic PHY xxx.ethernet-x: attached PHY driver [Generic PHY]

该消息指示相应 PHY 的驱动程序文件未正确加载或根本不存在,并且加载到通用驱动程序中的 Linux 很可能无法与 PHY 配合使用。在这种情况下,请验证驱动程序是否已成功编译并已添加到 Linux,并确保驱动程序与所使用的 PHY 型号相匹配。

最后,可能会显示如下类似消息:

$ am65-cpsw-nuss c000000.ethernet eth3: PHY [c000f00.mdio:05] driver [TI DP83822] (irq=POLL)

该消息显示 PHY 已加载正确的驱动程序并成功检测到。 运行 ifconfig 验证网络接口是否存在。

当 PHY 成功识别为网络适配器时的示例 ifconfig 输出:

root@j7-evm:~# ifconfig
eth0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500  metric 1
        ether 24:76:25:a2:62:8b  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536  metric 1
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 82  bytes 6220 (6.0 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 82  bytes 6220 (6.0 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

下一步是验证数据传输是否成功。