目中用到了DP83867芯片,ping不通,PHYID能读到为:0x2000 0xa231,以下是phy芯片0-4寄存器的值
fx6 # mii dump 0 0
0. (1140) — PHY control register —
(8000:0000) 0.15 = 0 reset
(4000:0000) 0.14 = 0 loopback
(2040:0040) 0. 6,13 = b10 speed selection = 1000 Mbps
(1000:1000) 0.12 = 1 A/N enable
(0800:0000) 0.11 = 0 power-down
(0400:0000) 0.10 = 0 isolate
(0200:0000) 0. 9 = 0 restart A/N
(0100:0100) 0. 8 = 1 duplex = full
(0080:0000) 0. 7 = 0 collision test enable
(003f:0000) 0. 5- 0 = 0 (reserved)
fx6 # mii dump 0 1
1. (796d) — PHY status register —
(8000:0000) 1.15 = 0 100BASE-T4 able
(4000:4000) 1.14 = 1 100BASE-X full duplex able
(2000:2000) 1.13 = 1 100BASE-X half duplex able
(1000:1000) 1.12 = 1 10 Mbps full duplex able
(0800:0800) 1.11 = 1 10 Mbps half duplex able
(0400:0000) 1.10 = 0 100BASE-T2 full duplex able
(0200:0000) 1. 9 = 0 100BASE-T2 half duplex able
(0100:0100) 1. 8 = 1 extended status
(0080:0000) 1. 7 = 0 (reserved)
(0040:0040) 1. 6 = 1 MF preamble suppression
(0020:0020) 1. 5 = 1 A/N complete
(0010:0000) 1. 4 = 0 remote fault
(0008:0008) 1. 3 = 1 A/N able
(0004:0004) 1. 2 = 1 link status
(0002:0000) 1. 1 = 0 jabber detect
(0001:0001) 1. 0 = 1 extended capabilities
fx6 # mii dump 0 2
2. (2000) — PHY ID 1 register —
(ffff:2000) 2.15- 0 = 8192 OUI portion
fx6 # mii dump 0 3
3. (a231) — PHY ID 2 register —
(fc00:a000) 3.15-10 = 40 OUI portion
(03f0:0230) 3. 9- 4 = 35 manufacturer part number
(000f:0001) 3. 3- 0 = 1 manufacturer rev. number
4. (01e1) — Autonegotiation advertisement register —
(8000:0000) 4.15 = 0 next page able
(4000:0000) 4.14 = 0 (reserved)
(2000:0000) 4.13 = 0 remote fault
(1000:0000) 4.12 = 0 (reserved)
(0800:0000) 4.11 = 0 asymmetric pause
(0400:0000) 4.10 = 0 pause enable
(0200:0000) 4. 9 = 0 100BASE-T4 able
(0100:0100) 4. 8 = 1 100BASE-TX full duplex able
(0080:0080) 4. 7 = 1 100BASE-TX able
(0040:0040) 4. 6 = 1 10BASE-T full duplex able
(0020:0020) 4. 5 = 1 10BASE-T able
(001f:0001) 4. 4- 0 = 1 selector = IEEE 802.3 CSMA/CD
5. (c1e1) — Autonegotiation partner abilities register —
(8000:8000) 5.15 = 1 next page able
(4000:4000) 5.14 = 1 acknowledge
(2000:0000) 5.13 = 0 remote fault
(1000:0000) 5.12 = 0 (reserved)
(0800:0000) 5.11 = 0 asymmetric pause able
(0400:0000) 5.10 = 0 pause able
(0200:0000) 5. 9 = 0 100BASE-T4 able
(0100:0100) 5. 8 = 1 100BASE-X full duplex able
(0080:0080) 5. 7 = 1 100BASE-TX able
(0040:0040) 5. 6 = 1 10BASE-T full duplex able
(0020:0020) 5. 5 = 1 10BASE-T able
(001f:0001) 5. 4- 0 = 1 partner selector = IEEE 802.3 CSMA/CD
开发板直连PC机,从PC机ping 板子RXCLK为125M、RX0-3上有数据,TXCLK为5M,TX0-3有数据,但是通过phy后差分信号线上无数据。
原理图如下所示:
驱动使用的Linux系统下drivers/net/phy下的ti.c,想通过loopback定义问题,如下图
请问下,我再uboot命令行中通过mii 命令给上面寄存器写值后,如何进行回环测试,目前使用ping 本机地址或者直连的PC机地址都不通,请问是回环怎么进行测试,同时DP83867原理图有没有问题,芯片18脚clkout输出的是多少M的信号?期待回复,谢谢
Kailyn Chen:
您好,CLKOUTY默认输出频率是和XI 输入时钟同步的,但是也可以通过寄存器配置输出125Mhz或者被5分频后的25Mhz,也可以通过寄存器e CLK_O_DISABLE配置为disable输出。
关于如何配置loopback的步骤,参考这篇DP83867 troubling shooting guide,其中Page9&10给出了far-end和near-end的loopback配置步骤:
www.ti.com.cn/…/snla246a.pdf
,
user1794335:
这个文档已关注,根据Page9&10给出了far-end和near-end的loopback配置回环测试的寄存器,关于设置寄存器在uboot命令行可以用mii命令设置,在内核中也可以,但是文档没有描述如何进行测试,如何确定回环成功了,用什么程序测试回环呢?通过ping还是通过广播包,还是有别的办法进行回环测试,麻烦详细解答下,谢谢,期待您的回复