TI中文支持网
TI专业的中文技术问题搜集分享网站

使用zynq 移植linux使用DP83822 可以识别但是无法ping通

使用的是xilinx-release-2019-02-01版本内核,也已经支持了对应的驱动,但是内核启动后无法连接:

macb e000b000.ethernet eth0: Cadence GEM rev 0x00020118 at 0xe000b000 irq 27 (00:0a:35:00:01:22)
TI DP83822 10/100 Mbps PHY e000b000.ethernet-ffffffff:1f: attached PHY driver [TI DP83822 10/100 Mbps PHY]
IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
eth0      Link encap:Ethernet  HWaddr 00:0A:35:00:01:22 
          inet addr:192.168.1.10  Bcast:192.168.1.255  Mask:255.255.255.0
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
          Interrupt:27 Base address:0xb000
请求帮助!!!!!!!!!!!
但是我用RTEM操作系统是好的表示硬件设计是可以的,可能移植linux那个地方没处理好,设备树我是使用的zynq-zed.dts修改编译的。硬件设计如下
Kailyn Chen:

您好,您的这个问题,我建议是到linux 论坛上咨询下。或者我这边帮您到我们的英文E2E请教下资深工程师?

user6251483:

回复 Kailyn Chen:

可以啊,麻烦您了我这边一直没有什么好进展~~拜谢

Kailyn Chen:

回复 user6251483:

好的,已经咨询美国工程师,您先看下这个帖子是否能解决您的问题:

https://e2e.ti.com/support/interface/f/138/p/574543/2108603

user6251483:

回复 Kailyn Chen:

首先表示感谢,但是这个情况和我的有些区别,我的状态是没有link上,因为自动协商无法完成,贴友的情况是已经协商完成的基础上产生的问题~

Kailyn Chen:

回复 user6251483:

您好,是的,我帮您咨询了美国工程师, 他的回复如下:

第一,确保供电电压的去耦电容已经接上,参考Figure36 的"power connection"部分。 其次就是 0x0002和 0x0003回读寄存器值没问题, MDC pin不需要上拉。 只有MIDO引脚需要上拉。

第二,通过0X0001读的寄存器值看起来自动协商没有完成,所以需要确认下 link partner是否支持自动协商,是否已经enable此功能? 另外,这几个寄存器x0004, 0x0005 和0x0010读取的值是什么?

Please confirm that the power supply filtering caps are present in the schematic as shown in "Figure 36. Power Connections". Also although it looks like you are able to access registers with no problem because 0x0002 and 0x0003 reads are correct, the MDC pin does not require a pullup resistor, only MDIO does.
Based on your screenshot of register 0x0001 contents it looks like the auto-negotiation process was not completed, can you confirm the link partner is also capable of auto-negotiation and is set for this? Also please send me the read back value of register 0x0004, 0x0005 and 0x0010.

user6251483:

回复 Kailyn Chen:

你好,十分感谢您的帮助!!
1)首先我确定硬件没有问题因为,我用其他操作系统已经验证过该硬件没有问题已经正常通讯,当时采用的是RTEMS操作系统,我现在是想实现linux的移植出现的问题。
2)根据您说的这个寄存器值,我把对应的0x00~0x1c寄存器状态都读了一下如下:
register 0x00 is 0x3100
register 0x01 is 0x7849
register 0x02 is 0x2000
register 0x03 is 0xa240
register 0x04 is 0x1e1
register 0x05 is 0x0
register 0x06 is 0x4
register 0x09 is 0x0
register 0x0a is 0x100
register 0x0d is 0x0
register 0x0e is 0x0
register 0x0f is 0x0
register 0x12 is 0x0
register 0x13 is 0x800
register 0x14 is 0x0
register 0x15 is 0x0
register 0x16 is 0x100
register 0x17 is 0x2c1
register 0x18 is 0x400
register 0x19 is 0x801f
register 0x1a is 0x0
register 0x1b is 0x7d
register 0x1c is 0x5ee

user6251483:

回复 user6251483:

你好在您的帮助下我查到第一个问题了,就是我在已知过程中复位引脚没有拉高,导致phy一直复位,现在已经link上了且协商为100M,但是现在还有个小问题,就是一直无法ping通

user6251483:

回复 Kailyn Chen:

请问我的设备树文件如何编写,这应该是关键因素我感觉

Xinyi Zhang1:

回复 user6251483:

你好,请问你当时的问题只是复位引脚没有拉高吗? 我不太明白。如果Phy芯片一直是复位状态的话,那linux不应该能够检测到phy地址,你又是怎么读寄存器的呢?

我现在遇到了一模一样的问题, 用的也是Zynq板子,然后自动协商失败。petalinux启动后只显示eth0: link not ready. 非常希望知道原因! 谢谢!

Kailyn Chen你知道这个问题是怎么解决的吗

赞(0)
未经允许不得转载:TI中文支持网 » 使用zynq 移植linux使用DP83822 可以识别但是无法ping通
分享到: 更多 (0)