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.

[参考译文] DP83826E:使用 DP83826E PHY 与我们的定制电路板进行通信时出现问题

Guru**** 2815955 points

Other Parts Discussed in Thread: DP83826E

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

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/1625193/dp83826e-issue-in-communication-using-dp83826e-phy-with-our-custom-board

部件号: DP83826E

我们已使用创建了一个定制电路板 DP83826E Phy 。 。 器件树 (DTB) 配置正确的 PHY 地址、并且物理链路检测正常工作。 但是、我们仍然无法通过以太网进行通信。 我们无法发送或接收数据、通过以太网的 SSH 也无法在 Linux 上运行。 我已将 PHY 配置为具有 RMII 的增强模式。 我包含日志以供您查看。

Linux 日志
 
dmesg | grep phy
[ 11.624521] AM-cpsw-Nuss 8000000.Ethernet eth1:PHY [8000f00.MDIO:04]驱动器[TI DP83826C](IRQ=POLL)
[ 11.700356] am-cpsw-nuss 8000000.Ethernet eth0:PHY [8000f00.MDIO:00]驱动程序[TI DP83826C](IRQ=POLL)
 
 dmesg | grep cpsw
[  1.358695] am-cpsw-nuss 8000000.ethernet:正在初始化 am cpsw Nuss 版本 0x6BA01103、cpsw 版本 0x6BA81103 端口:3 quirks:00000006
[  1.371745] am-cpsw-nuss 8000000.ethernet:使用随机 MAC 地址
[  1.378013] am-cpsw-nuss 8000000.ethernet:初始化的 cpsw ale 版本 1.5
[  1.385143] am-cpsw-Nuss 8000000.Ethernet: ALE Table Size 512
[  1.391945] am-cpsw-Nuss 8000000.Ethernet:CPt ver 0x4e8a010c、freq:500000000、add_val:1 pps:0
[  1.402377] am-cpsw-nuss 8000000.Ethernet:设置新的 follow-id-base 19
[ 11.624521] AM-cpsw-Nuss 8000000.Ethernet eth1:PHY [8000f00.MDIO:04]驱动器[TI DP83826C](IRQ=POLL)
[ 11.634102] am-cpsw-nuss 8000000.Ethernet eth1:配置 phy/RMII 链路模式
[ 11.700356] am-cpsw-nuss 8000000.Ethernet eth0:PHY [8000f00.MDIO:00]驱动程序[TI DP83826C](IRQ=POLL)
[ 11.709910] am-cpsw-nuss 8000000.Ethernet eth0:配置 phy/RMII 链路模式
[78.197099] am-cpsw-nuss 8000000.Ethernet eth1:链路接通 — 100Mbps/full — 流控制 Rx/TX
 
dmesg | grep mdio
[  0.781567] MDIO_BUS 固定 0:用于消费类复位的 GPIO 查找
[  0.781595] MDIO_BUS 固定 0:使用查找表进行 GPIO 查找
[0.781602]  MDIO_BUS FIXED-0:未找到 GPIO 消费类复位
[  1.302969] davinci_mdio 8000f00.mdio:在手动模式下配置 MDIO
[  1.309906] mdio_bus 8000f00.mdio:用于消费类复位的 GPIO 查找
[  1.309914] mdio_bus 8000f00.mdio:使用器件树查找 GPIO
[  1.309927] of_get_named_gpiod_flags:无法解析节点“/bus@f0000/Ethernet@80000/MDIO@f00[0]“的“reget-GPIOs"属性“属性
[  1.309948] of_get_named_gpiod_flags:无法解析节点“/bus@f0000/Ethernet@80000/MDIO@f00[0]“的“reget-GPIO"属性“属性
[  1.309964] mdio_bus 8000f00.mdio:使用查找表进行 GPIO 查找
[  1.309979] mdio_bus 8000f00.mdio:未找到 GPIO 消费类复位
[  1.349434] davinci_mdio 8000f00.mdio:DaVinci MDIO 修订版 9.7、总线频率 1000000
[  1.358003] mdio_bus 8000f00.mdio:00:GPIO 查找以进行耗电元件复位
[  1.358016] mdio_bus 8000f00.mdio:00:使用器件树查找 GPIO
[  1.358029] of_get_named_gpiod_flags:无法解析节点“/bus@f0000/Ethernet@8000000/MDIO@f00/Ethernet-phy@0[0]“的“reset-GPIOs"属性“属性
[  1.358067] mdio_bus 8000f00.mdio:00:未找到 GPIO 消费类复位
[  1.455279] davinci_mdio 8000f00.mdio:在手动模式下配置 MDIO
[1.462183]  mdio_bus 8000f00.mdio:用于消费类复位的 GPIO 查找
[  1.469295] MDIO_BUS 8000f00.MDIO:使用器件树进行 GPIO 查找
[  1.469306] of_get_named_gpiod_flags:无法解析节点“/bus@f0000/Ethernet@80000/MDIO@f00[0]“的“reget-GPIOs"属性“属性
[  1.469321] of_get_named_gpiod_flags:无法解析节点“/bus@f0000/Ethernet@80000/MDIO@f00[0]“的“reget-GPIO"属性“属性
[  1.469336] mdio_bus 8000f00.mdio:使用查找表进行 GPIO 查找
[  1.469342] mdio_bus 8000f00.mdio:未找到 GPIO 消费类复位
[  1.50541] davinci_mdio 8000f00.mdio:DaVinci MDIO 修订版 9.7、总线频率 1000000
[  1.514122] mdio_bus 8000f00.mdio:00:GPIO 查找以实现耗电元件复位
[  1.514136] mdio_bus 8000f00.mdio:00:使用器件树查找 GPIO
[  1.514156] of_get_named_gpiod_flags:无法解析节点“/bus@f0000/Ethernet@8000000/MDIO@f00/Ethernet-phy@0[0]“的“reset-GPIOs"属性“属性
[  1.514199] of_get_named_gpiod_flags:解析的节点“/bus@f0000/Ethernet@80000/MDIO@f00/Ethernet-phy@0[0]'- status (0)
[  1.619589] mdio_bus 8000f00.mdio:04:用于消费类复位的 GPIO 查找
[  1.619609] mdio_bus 8000f00.mdio:04:使用器件树查找 GPIO
[  1.619626] of_get_named_gpiod_flags:无法解析节点“/bus@f0000/Ethernet@8000000/MDIO@f00/Ethernet-phy@4[0]“的“reget-GPIOs"属性“属性
[  1.61967] of_get_named_gpiod_flags:解析的节点“/bus@f0000/Ethernet@80000/MDIO@f00/Ethernet-phy@4[0]“的“reset-GPIO"属性“属性-属性 — status (0)
[  1.718229] davinci_mdio 8000f00.mdio:phy[0]:器件 8000f00.mdio:00、驱动程序 TI DP83826C
[  1.726505] davinci_mdio 8000f00.mdio:phy[4]:器件 8000f00.mdio:04、驱动程序 TI DP83826C
[ 11.624521] AM-cpsw-Nuss 8000000.Ethernet eth1:PHY [8000f00.MDIO:04]驱动器[TI DP83826C](IRQ=POLL)
[ 11.700356] am-cpsw-nuss 8000000.Ethernet eth0:PHY [8000f00.MDIO:00]驱动程序[TI DP83826C](IRQ=POLL)
 
U-boot 日志
 
=> MDIO 列表
以太网@8000000port@1:
0 — 通用 PHY <-->以太网@8000000port@1
=> MII 信息
PHY 0x00:OUI = 0x80028、模型= 0x13、Rev = 0x01、 10baseT、HDX
PHY 0x04:OUI = 0x80028、Model = 0x13、Rev = 0x01,100BaseT、FDx
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Gaurav:

    物理链路检测能够正常工作。 只需确认、 您是否能够通过软件访问寄存器? 似乎软件报告链路接通、因此您可能可以访问寄存器、但我想确定。

    是否执行了任何环回测试? 如果 PHY 可以响应寄存器、但数据没有通过 PHY、则尝试使用 MII 环回。  我们的DP83826 疑难解答指南对此进行了介绍。

    此致、

    Shane

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

    尊敬的 Gaurav:

    除了 Shane 的建议之外、您能否分享测试通信的程序?  ethtool 和  ifconfig 是否报告了预期的链路和速度状态、并使用静态 IP 在链路伙伴之间执行 ping 操作?

    谢谢您、
    Evan

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

    嗨、Shane、  
    是的、我可以通过软件访问寄存器并读取它们的状态。

    [ 3962.713300] am-cpsw-nuss 8000000.ethernet eth1: Link is Up - 100Mbps/Full - flow control rx/tx
    [ 3967.823727] am-cpsw-nuss 8000000.ethernet eth1: Link is Down
    
    
    ethtool eth1
    Settings for eth1:
            Supported ports: [ TP    MII ]
            Supported link modes:   10baseT/Half 10baseT/Full
                                    100baseT/Half 100baseT/Full
            Supported pause frame use: Symmetric
            Supports auto-negotiation: Yes
            Supported FEC modes: Not reported
            Advertised link modes:  10baseT/Half 10baseT/Full
                                    100baseT/Half 100baseT/Full
            Advertised pause frame use: Symmetric
            Advertised auto-negotiation: Yes
            Advertised FEC modes: Not reported
            Link partner advertised link modes:  10baseT/Half 10baseT/Full
                                                 100baseT/Half 100baseT/Full
            Link partner advertised pause frame use: Symmetric Receive-only
            Link partner advertised auto-negotiation: Yes
            Link partner advertised FEC modes: Not reported
            Speed: 100Mb/s
            Duplex: Full
            Auto-negotiation: on
            Port: Twisted Pair
            PHYAD: 4
            Transceiver: external
            MDI-X: Unknown
            Supports Wake-on: gs
            Wake-on: d
            SecureOn password: 00:00:00:00:00:00
            Current message level: 0x000020f7 (8439)
                                   drv probe link ifdown ifup rx_err tx_err hw
            Link detected: yes
    

    寄存器值 PHY4(已连接) PHY4(已断开连接 PHY0(已断开连接) PHY0(已连接)
    phytoolreadeth0/4/0x0 0x3100 0x3100 0x3100 0x3100
    phytoolreadeth0/4/0x1 0x786d 0x7849 0x786d 0x786d
    phytoolreadeth0/4/0x2 0x2000 0x2000 0x2000 0x2000
    phytoolreadeth0/4/0x3 0xa131 0xa131 0xa131 0xa131
    ~phytoolreadeth0/4/0x4 0x05e1 0x05e1 0x05e1 0x05e1
    ~phytoolreadeth0/4/0x5 0xcde1 0x0 0x0 0xcde1
    ~phytoolreadeth0/4/0xa 0x0100 0x0100 0x0100 0x0100
    ~phytoolreadeth0/4/0xb 0x0 0x0 0x0 0x0
    ~phytoolreadeth0/4/0x10 0x4715 0x4812 0x4002 0x4715
    ~phytoolreadeth0/4/0x11 0x0108 0x0108 0x0108 0x0108
    ~phytoolreadeth0/4/0x14 0x0 0x0 0x0 0x0
    ~phytoolreadeth0/4/0x15 0x0 0x0 0x0 0x0
    ~phytoolreadeth0/4/0x17 0x0049 0x0049 0x0041 0x0049
    ~phytoolreadeth0/4/0x19 0xfc04 0xc004 0xc000 0xfc00

    我已分配了静态 IP 地址并通过 ping 相同的 IP 来检查环回。 下面随附了日志。

    ifconfig
    eth0      Link encap:Ethernet  HWaddr ------present----
              inet addr:192.168.30.122  Bcast:192.168.30.255  Mask:255.255.255.0
              inet6 addr: fe80::6670:60ff:feff:f338/64 Scope:Link
              UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
              RX packets:0 errors:0 dropped:0 overruns:0 frame:0
              TX packets:510 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:1000
              RX bytes:0 (0.0 B)  TX bytes:24824 (24.2 KiB)
    
    eth1      Link encap:Ethernet  HWaddr ----present----
              inet addr:192.168.31.122  Bcast:192.168.31.255  Mask:255.255.255.0
              inet6 addr: fe80::648a:5eff:fe9f:aa85/64 Scope:Link
              UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
              RX packets:0 errors:0 dropped:0 overruns:0 frame:0
              TX packets:91 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:1000
              RX bytes:0 (0.0 B)  TX bytes:9126 (8.9 KiB)
    
    lo        Link encap:Local Loopback
              inet addr:127.0.0.1  Mask:255.0.0.0
              inet6 addr: ::1/128 Scope:Host
              UP LOOPBACK RUNNING  MTU:65536  Metric:1
              RX packets:1749 errors:0 dropped:0 overruns:0 frame:0
              TX packets:1749 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:1000
              RX bytes:153468 (149.8 KiB)  TX bytes:153468 (149.8 KiB)
    
    root@ ping 192.168.30.122
    PING 192.168.30.122 (192.168.30.122): 56 data bytes
    64 bytes from 192.168.30.122: seq=0 ttl=64 time=0.247 ms
    64 bytes from 192.168.30.122: seq=1 ttl=64 time=0.526 ms
    
    # ping 192.168.31.122
    PING 192.168.31.122 (192.168.31.122): 56 data bytes
    64 bytes from 192.168.31.122: seq=0 ttl=64 time=0.248 ms
    64 bytes from 192.168.31.122: seq=1 ttl=64 time=0.528 ms
    
    
    

    由于我已经连接了 PHY 在增强模式下工作与 RMII 这是我的硬件布局.

    请考虑将黑色标记的部件标记为 DNP。
     

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

    是的、ethtool 和 ifconfig 报告了预期的链路和速度状态。 但 ethtool 报告了 RX 错误。


    ethtool -S eth1
    NIC statistics:
         p0_rx_good_frames: 654
         p0_rx_broadcast_frames: 494
         p0_rx_multicast_frames: 160
         p0_rx_crc_errors: 0
         p0_rx_oversized_frames: 0
         p0_rx_undersized_frames: 0
         p0_ale_drop: 0
         p0_ale_overrun_drop: 0
         p0_rx_octets: 48764
         p0_tx_good_frames: 0
         p0_tx_broadcast_frames: 0
         p0_tx_multicast_frames: 0
         p0_tx_octets: 0
         p0_tx_64B_frames: 514
         p0_tx_65_to_127B_frames: 106
         p0_tx_128_to_255B_frames: 34
         p0_tx_256_to_511B_frames: 0
         p0_tx_512_to_1023B_frames: 0
         p0_tx_1024B_frames: 0
         p0_net_octets: 48764
         p0_rx_bottom_fifo_drop: 0
         p0_rx_port_mask_drop: 0
         p0_rx_top_fifo_drop: 0
         p0_ale_rate_limit_drop: 0
         p0_ale_vid_ingress_drop: 0
         p0_ale_da_eq_sa_drop: 0
         p0_ale_block_drop: 0
         p0_ale_secure_drop: 0
         p0_ale_auth_drop: 0
         p0_ale_unknown_ucast: 0
         p0_ale_unknown_ucast_bytes: 0
         p0_ale_unknown_mcast: 0
         p0_ale_unknown_mcast_bytes: 0
         p0_ale_unknown_bcast: 0
         p0_ale_unknown_bcast_bytes: 0
         p0_ale_pol_match: 0
         p0_ale_pol_match_red: 0
         p0_ale_pol_match_yellow: 0
         p0_ale_mcast_sa_drop: 0
         p0_ale_dual_vlan_drop: 0
         p0_ale_len_err_drop: 0
         p0_ale_ip_next_hdr_drop: 0
         p0_ale_ipv4_frag_drop: 0
         p0_tx_mem_protect_err: 0
         p0_tx_pri0: 0
         p0_tx_pri1: 0
         p0_tx_pri2: 0
         p0_tx_pri3: 0
         p0_tx_pri4: 0
         p0_tx_pri5: 0
         p0_tx_pri6: 0
         p0_tx_pri7: 0
         p0_tx_pri0_bcnt: 0
         p0_tx_pri1_bcnt: 0
         p0_tx_pri2_bcnt: 0
         p0_tx_pri3_bcnt: 0
         p0_tx_pri4_bcnt: 0
         p0_tx_pri5_bcnt: 0
         p0_tx_pri6_bcnt: 0
         p0_tx_pri7_bcnt: 0
         p0_tx_pri0_drop: 0
         p0_tx_pri1_drop: 0
         p0_tx_pri2_drop: 0
         p0_tx_pri3_drop: 0
         p0_tx_pri4_drop: 0
         p0_tx_pri5_drop: 0
         p0_tx_pri6_drop: 0
         p0_tx_pri7_drop: 0
         p0_tx_pri0_drop_bcnt: 0
         p0_tx_pri1_drop_bcnt: 0
         p0_tx_pri2_drop_bcnt: 0
         p0_tx_pri3_drop_bcnt: 0
         p0_tx_pri4_drop_bcnt: 0
         p0_tx_pri5_drop_bcnt: 0
         p0_tx_pri6_drop_bcnt: 0
         p0_tx_pri7_drop_bcnt: 0
         rx_good_frames: 0
         rx_broadcast_frames: 0
         rx_multicast_frames: 0
         rx_pause_frames: 0
         rx_crc_errors: 0
         rx_align_code_errors: 0
         rx_oversized_frames: 0
         rx_jabber_frames: 0
         rx_undersized_frames: 0
         rx_fragments: 0
         ale_drop: 0
         ale_overrun_drop: 0
         rx_octets: 0
         tx_good_frames: 113
         tx_broadcast_frames: 0
         tx_multicast_frames: 113
         tx_pause_frames: 0
         tx_deferred_frames: 0
         tx_collision_frames: 0
         tx_single_coll_frames: 0
         tx_mult_coll_frames: 0
         tx_excessive_collisions: 0
         tx_late_collisions: 0
         rx_ipg_error: 0
         tx_carrier_sense_errors: 0
         tx_octets: 11558
         tx_64B_frames: 16
         tx_65_to_127B_frames: 77
         tx_128_to_255B_frames: 20
         tx_256_to_511B_frames: 0
         tx_512_to_1023B_frames: 0
         tx_1024B_frames: 0
         net_octets: 11558
         rx_bottom_fifo_drop: 0
         rx_port_mask_drop: 0
         rx_top_fifo_drop: 0
         ale_rate_limit_drop: 0
         ale_vid_ingress_drop: 0
         ale_da_eq_sa_drop: 0
         ale_block_drop: 0
         ale_secure_drop: 0
         ale_auth_drop: 0
         ale_unknown_ucast: 0
         ale_unknown_ucast_bytes: 0
         ale_unknown_mcast: 0
         ale_unknown_mcast_bytes: 0
         ale_unknown_bcast: 0
         ale_unknown_bcast_bytes: 0
         ale_pol_match: 0
         ale_pol_match_red: 0
         ale_pol_match_yellow: 0
         ale_mcast_sa_drop: 0
         ale_dual_vlan_drop: 0
         ale_len_err_drop: 0
         ale_ip_next_hdr_drop: 0
         ale_ipv4_frag_drop: 0
         iet_rx_assembly_err: 0
         iet_rx_assembly_ok: 0
         iet_rx_smd_err: 0
         iet_rx_frag: 0
         iet_tx_hold: 0
         iet_tx_frag: 0
         tx_mem_protect_err: 0
         tx_pri0: 113
         tx_pri1: 0
         tx_pri2: 0
         tx_pri3: 0
         tx_pri4: 0
         tx_pri5: 0
         tx_pri6: 0
         tx_pri7: 0
         tx_pri0_bcnt: 11558
         tx_pri1_bcnt: 0
         tx_pri2_bcnt: 0
         tx_pri3_bcnt: 0
         tx_pri4_bcnt: 0
         tx_pri5_bcnt: 0
         tx_pri6_bcnt: 0
         tx_pri7_bcnt: 0
         tx_pri0_drop: 0
         tx_pri1_drop: 0
         tx_pri2_drop: 0
         tx_pri3_drop: 0
         tx_pri4_drop: 0
         tx_pri5_drop: 0
         tx_pri6_drop: 0
         tx_pri7_drop: 0
         tx_pri0_drop_bcnt: 0
         tx_pri1_drop_bcnt: 0
         tx_pri2_drop_bcnt: 0
         tx_pri3_drop_bcnt: 0
         tx_pri4_drop_bcnt: 0
         tx_pri5_drop_bcnt: 0
         tx_pri6_drop_bcnt: 0
         tx_pri7_drop_bcnt: 0
    


    此致

    Gaurav

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

    尊敬的 Gaurav:

    感谢您分享详细的日志。 这可能是 IP 路由问题、 地址 192.168.30.122 和 192.168.31.122 在掩码范围内共享相同的子网、且 IP 地址不同。

    请尝试使用相同的子网掩码 255.255.255.0 设置这些静态 IP:

    eth0 到 192.168.30.122
    eth1 到 192.168.30.123

    在这种情况下 ping 是否起作用?

    谢谢您、
    Evan

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

    尊敬的 Evan:  
    我们尝试,它不工作.

    此致
    Gaurav

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

    尊敬的 Gaurav:

    感谢您的确认。 在 ethtool 日志中、我看到了“rx_good_frames"和“和“tx_good_frames"的“的递增值。 这表明通过 MDI 和 MAC 传输数据包时链路正常运行、但某些路由问题导致无法进行 ping 确认。

    两个 PHY 是否连接到同一台主机、您的系统中是否需要此拓扑? 如果可能、请尝试使用唯一的{Host+PHY}端点 ping。

    用于调试的应用手册参考: https://www.ti.com/lit/an/spradj8/spradj8.pdf

    谢谢您、
    Evan