ZHCADI5A December   2023  – August 2025 DP83869HM

 

  1.   1
  2.   摘要
  3.   商标
  4. 1DP83869 应用概述
  5. 2排查应用问题
    1. 2.1 原理图和布局检查清单
    2. 2.2 器件运行状况检查
      1. 2.2.1 电压检查
      2. 2.2.2 探测 RESET_N 信号
      3. 2.2.3 探测 RBIAS
      4. 2.2.4 探测 XI 时钟
      5. 2.2.5 在初始化期间探测搭接引脚
        1. 2.2.5.1 配置正确的运行模式
      6. 2.2.6 探测串行管理接口(MDC、MDIO)
        1. 2.2.6.1 读取并检查寄存器值
    3. 2.3 MDI 运行状况检查
      1. 2.3.1 磁性元件
      2. 2.3.2 探测 MDI 信号
      3. 2.3.3 检查链路质量
        1. 2.3.3.1 提高短电缆链路裕度
        2. 2.3.3.2 提高通道间链路裕度
      4. 2.3.4 合规性
    4. 2.4 MII 运行状况检查
      1. 2.4.1 MII 检查
      2. 2.4.2 RGMII 检查
      3. 2.4.3 SGMII 检查
    5. 2.5 环回和 PRBS
      1. 2.5.1 环回模式
      2. 2.5.2 通过 MAC 发送和接收数据包
      3. 2.5.3 通过 BIST 发送和接收数据包
  6. 3澄清了运行模式
    1. 3.1 桥接模式
    2. 3.2 光纤配置
      1. 3.2.1 光纤寄存器
      2. 3.2.2 介质转换器 LED 行为
  7. 4工具和参考
    1. 4.1 扩展寄存器访问
      1. 4.1.1 读取(无后增量)操作
      2. 4.1.2 写入(无后增量)操作
    2. 4.2 Linux 上的软件和驱动程序调试
      1. 4.2.1 普通端子输出
  8. 5总结
  9. 6参考资料
  10. 7修订历史记录

普通端子输出

以下部分旨在提供可用于调试驱动程序相关问题的常见终端命令。

$ 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 8000000.ethernet eth1: PHY [mdio_mux-0.1:03] driver [TI DP83869] (irq=POLL)

该消息显示 PHY 已加载正确的驱动程序并成功检测到。运行 ifconfig 验证网络接口是否存在。当 PHY 成功识别为网络适配器时的示例 ifconfig 输出:

root@am64xx-evm:~# ifconfig
eth0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        ether 34:08:e1:80:b5:f8  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

eth1: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        ether 70:ff:76:1e:9e:a6  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
        inet 127.0.0.1  netmask 255.0.0.0
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 90  bytes 6824 (6.6 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 90  bytes 6824 (6.6 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0