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.

DP83TD510E: 关于DP83TD510E在IMX93的linux 6.12.3 上驱动,后,速度正常匹配,但无法ping通的问题

Part Number: DP83TD510E

内核版本:6.12.3-lts

原理图

内核配置添加

CONFIG_DP83TD510_PHY=y

设备树

可以看到 使用的是DP83TD510的驱动

一些信息如下

root@imx93-kedge:~# ethtool eth0
Settings for eth0:
Supported ports: [ ]
Supported link modes: 10baseT1L/Full
Supported pause frame use: Symmetric
Supports auto-negotiation: Yes
Supported FEC modes: Not reported
Advertised link modes: 10baseT1L/Full
Advertised pause frame use: Symmetric
Advertised auto-negotiation: Yes
Advertised FEC modes: Not reported
Link partner advertised link modes: 10baseT1L/Full
Link partner advertised pause frame use: Symmetric
Link partner advertised auto-negotiation: Yes
Link partner advertised FEC modes: Not reported
Speed: 10Mb/s
Duplex: Full
Auto-negotiation: on
master-slave cfg: preferred slave
master-slave status: unknown
Port: Twisted Pair
PHYAD: 0
Transceiver: external
MDI-X: Unknown
Supports Wake-on: g
Wake-on: d
Link detected: yes
SQI: 7/7

root@imx93-kedge:~# ifconfig
eth0 Link encap:Ethernet HWaddr 52:F3:CD:DB:86:48
inet6 addr: fe80::50f3:cdff:fedb:8648/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:4 errors:422 dropped:0 overruns:0 frame:422
TX packets:179 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:264 (264.0 B) TX bytes:53110 (51.8 KiB)

root@imx93-kedge:~# ethtool -t eth0
The test result is FAIL
The test extra info:
1. Carrier 0
2. PHY dev is present 0
3. PHY internal loopback, enab 0
4. PHY internal loopback, UDP -110
5. PHY internal loopback, MTU -110
6. PHY internal loopback, TCP 0
7. PHY internal loopback, disa 0

root@imx93-kedge:~# ethtool -d eth0
0x004: 0x00008000
0x008: 0x0a0000aa
0x010: 0x01000000
0x014: 0x00000000
0x024: 0x70000112
0x040: 0x603a1000
0x044: 0x0000033e
0x064: 0x40000000
0x084: RCR (Receive Control Register) 0x47c00264
MAX_FL (Maximum frame length) 1984
FCE (Flow control enable) 1
BC_REJ (Broadcast frame reject) 0
PROM (Promiscuous mode) 0
DRT (Disable receive on transmit) 0
LOOP (Internal loopback) 0
0x0c4: TCR (Transmit Control Register) 0x00000004
RFC_PAUSE (Receive frame control pause) 0
TFC_PAUSE (Transmit frame control pause) 0
FDEN (Full duplex enable) 1
HBC (Heartbeat control) 0
GTS (Graceful transmit stop) 0
0x0e4: 0x52f3cddb
0x0e8: 0x86488808
0x0ec: 0x0001fff0
0x0f0: 0xcc801312
0x0f4: 0xcc801312
0x0f8: 0xcc801312
0x100: 0xcc801312
0x104: 0xcc801312
0x108: 0xcc801312
0x118: IAUR (Individual Address Upper Register) 0x00000000
IADDR1 0x0000000000000000
0x11c: IALR (Individual Address Lower Register) 0x00000000
IADDR2 0x0000000000000000
0x120: GAUR (Group Address Upper Register) 0x04400000
GADDR1 0x0440000000000000
0x124: GALR (Group Address Lower Register) 0x11800009
GADDR2 0x0000000011800009
0x144: TFWR (Transmit FIFO Watermark Register) 0x00000100
X_WMRK 64 bytes
0x14c: FRBR (FIFO Receive Bound Register) 0x00000000
R_BOUND (Highest valid FIFO RAM address) 0x00
0x150: 0x00000000
0x160: 0xb0182000
0x164: 0xb018e000
0x168: 0x000007c0
0x16c: 0xb0184000
0x170: 0xb0196000
0x174: 0x000007c0
0x180: 0xb0180000
0x184: 0xb0186000
0x188: EMRBR (Maximum Receive Buffer Size) 0x000007c0
R_BUF_SIZE (Receive buffer size) 124
0x190: 0x00000010
0x194: 0x00000084
0x198: 0x00000008
0x19c: 0x00000008
0x1c4: 0x00000086
0x1c8: 0x00013210
0x1cc: 0x00017654
0x1d8: 0x00010200
0x1dc: 0x00010200
0x1e0: 0x01000000
0x1e4: 0x00000000
0x1e8: 0x01000000
0x1ec: 0x00000000
0x1f0: 0x00000000
0x200: 0x00000000
0x204: 0x000000be
0x208: 0x0000009b
0x20c: 0x0000001d
0x210: 0x00000000
0x214: 0x00000000
0x218: 0x00000000
0x21c: 0x00000000
0x220: 0x00000000
0x224: 0x00000000
0x228: 0x00000002
0x22c: 0x00000019
0x230: 0x00000006
0x234: 0x0000009b
0x238: 0x00000000
0x23c: 0x00000002
0x240: 0x00000000
0x244: 0x0000e223
0x248: 0x00000000
0x24c: 0x000000be
0x250: 0x00000000
0x254: 0x00000000
0x258: 0x00000000
0x25c: 0x00000000
0x260: 0x00000000
0x264: 0x00000000
0x268: 0x00000000
0x26c: 0x00000000
0x270: 0x00000000
0x274: 0x0000e223
0x284: 0x000001c9
0x288: 0x00000004
0x28c: 0x00000000
0x290: 0x000001b8
0x294: 0x00000000
0x298: 0x00000000
0x29c: 0x00000000
0x2a0: 0x00000000
0x2a4: 0x00000000
0x2a8: 0x00000115
0x2ac: 0x00000015
0x2b0: 0x00000000
0x2b4: 0x0000009e
0x2b8: 0x00000000
0x2bc: 0x00000001
0x2c0: 0x00000000
0x2c4: 0x00011e16
0x2c8: 0x00000000
0x2cc: 0x00000005
0x2d0: 0x000001b8
0x2d4: 0x00000000
0x2d8: 0x00000000
0x2dc: 0x00000000
0x2e0: 0x00000147

两块板子配置好静态IP后 互相是ping不通的, 现在没有任何调查的方向,请问能提供一些可能的调查方向吗?

示波器测量 ping命令那一方 

TX_CLK 有波形 频率2.5M 

TX_D0-D3也是有波形的(不ping就没有波形)

被ping那一方 的 

RX_CLK 有波形 频率2.5M 

RX_D0-D3也是有波形的(不ping就没有波形)

但TX_D0-D3是没有波形的(RX_CLK  有波形)

  • 感谢您对TI产品的关注!
    关于你的咨询,我们正在确认你的问题,稍后回复您。

  • 补充 寄存器值

    root@imx93-kedge:/# x=0; while [ $x -le 31 ]; do printf "Register 0x%02X = " $x ; ./phytool read eth0/0/$x $(( x++ )) ; done
    Register 0x00 = 0x1100
    Register 0x01 = 0x016d
    Register 0x02 = 0x2000
    Register 0x03 = 0x0181
    Register 0x04 = 0000
    Register 0x05 = 0000
    Register 0x06 = 0000
    Register 0x07 = 0000
    Register 0x08 = 0000
    Register 0x09 = 0000
    Register 0x0A = 0000
    Register 0x0B = 0000
    Register 0x0C = 0000
    Register 0x0D = 0x4007
    Register 0x0E = 0x1000
    Register 0x0F = 0000
    Register 0x10 = 0x0001
    Register 0x11 = 0x002b
    Register 0x12 = 0x0020
    Register 0x13 = 0000
    Register 0x14 = 0000
    Register 0x15 = 0000
    Register 0x16 = 0x0100
    Register 0x17 = 0x4201
    Register 0x18 = 0x0043
    Register 0x19 = 0000
    Register 0x1A = 0000
    Register 0x1B = 0000
    Register 0x1C = 0000
    Register 0x1D = 0000
    Register 0x1E = 0000
    Register 0x1F = 0000

  • 补充寄存器值   ping命令端

    root@imx93-kedge:/# x=0; while [ $x -le 31 ]; do printf "Register 0x%02X = " $x ; ./phytool read eth0/0/$x $(( x++ )) ; done
    Register 0x00 = 0x1100
    Register 0x01 = 0x016d
    Register 0x02 = 0x2000
    Register 0x03 = 0x0181
    Register 0x04 = 0000
    Register 0x05 = 0000
    Register 0x06 = 0000
    Register 0x07 = 0000
    Register 0x08 = 0000
    Register 0x09 = 0000
    Register 0x0A = 0000
    Register 0x0B = 0000
    Register 0x0C = 0000
    Register 0x0D = 0x4007
    Register 0x0E = 0x1000
    Register 0x0F = 0000
    Register 0x10 = 0x0001
    Register 0x11 = 0x002b
    Register 0x12 = 0x0020
    Register 0x13 = 0000
    Register 0x14 = 0000
    Register 0x15 = 0x0018
    Register 0x16 = 0x0100
    Register 0x17 = 0x4209
    Register 0x18 = 0x0043
    Register 0x19 = 0000
    Register 0x1A = 0000
    Register 0x1B = 0000
    Register 0x1C = 0000
    Register 0x1D = 0000
    Register 0x1E = 0000
    Register 0x1F = 0000

    被ping端

    root@imx93-kedge:~# x=0; while [ $x -le 31 ]; do printf "Register 0x%02X = " $x ; ./phytool read eth0/0/$x $(( x++ )) ; done
    Register 0x00 = 0x1100
    Register 0x01 = 0x0169
    Register 0x02 = 0x2000
    Register 0x03 = 0x0181
    Register 0x04 = 0000
    Register 0x05 = 0000
    Register 0x06 = 0000
    Register 0x07 = 0000
    Register 0x08 = 0000
    Register 0x09 = 0000
    Register 0x0A = 0000
    Register 0x0B = 0000
    Register 0x0C = 0000
    Register 0x0D = 0x401f
    Register 0x0E = 0x7000
    Register 0x0F = 0000
    Register 0x10 = 0x0001
    Register 0x11 = 0x002b
    Register 0x12 = 0x0020
    Register 0x13 = 0x2300
    Register 0x14 = 0000
    Register 0x15 = 0x0917
    Register 0x16 = 0x0100
    Register 0x17 = 0x4209
    Register 0x18 = 0x0043
    Register 0x19 = 0000
    Register 0x1A = 0000
    Register 0x1B = 0000
    Register 0x1C = 0000
    Register 0x1D = 0000
    Register 0x1E = 0000
    Register 0x1F = 0000

  • 英文论坛已经在为您处理,等待Evan的回复。

    后续问题,也和Evan沟通,本贴关闭。