我在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寄存器,即基本上SpecAdd1topSpecAdd1bottom寄存器(包含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/

10-11 22:54