我在u-boot的I.MX6板上测试以太网连接
我使用了以下命令:
setenv ipaddr xx.xx.xx.xx
setenv serverip xx.xx.xx.xx
setenv netmask xx.xx.xx.xx
setenv gatewayip xx.xx.xx.xx
setenv ethaddr xx:xx:xx:xx:xx:xx
当我对地址执行ping操作时,它失败了
=> ping xx.xx.xx.xx
Using FEC device
ARP Retry count exceeded; starting again
ARP Retry count exceeded; starting again
=> mii info
PHY 0x00: OUI = 0x209A, Model = 0x01, Rev = 0x00, 100baseT, FDX
=> mii dump 0 0
0. (3100) -- PHY control register --
(8000:0000) 0.15 = 0 reset
(4000:0000) 0.14 = 0 loopback
(2040:2000) 0. 6,13 = b01 speed selection = 100 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)
可能是什么错误。我在NXP网站上看到过,这个伪造的MAC地址不能和ping一起工作。。如何让它工作。。
最佳答案
首先,我们需要检查MAC地址是否正确写入了H/W寄存器,即基本上SpecAdd1top
和SpecAdd1bottom
寄存器(包含MAC地址)。读取这两个寄存器的值以及它们是否与指定的MAC地址完全匹配。
需要通过在服务器端PC上运行Wireshark来验证ARP请求是否正在到达服务器端PC。如果正在到达,则在其ARP超时时间为5毫秒内,它没有收到对目标板的ARP响应。似乎ARP请求没有到达服务器端,这意味着它没有正确发送ARP请求。
检查ENET MAC是否成功地从u-boot以太网MAC驱动程序发送ARP请求。
将ARP超时时间从5ms增加到一些ms。
关于linux - uboot中超过了ARP重试计数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49767954/