uboot中超出了ARP重试次数

时间:2018-04-11 06:26:39

标签: linux networking embedded-linux ping u-boot

我正在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)

错误是什么。我在恩智浦网站上看到,假的MAC地址不适用于ping ..如何使其工作..

3 个答案:

答案 0 :(得分:1)

首先,我们需要检查MAC地址是否正确写入了H / W寄存器,即基本上是SpecAdd1topSpecAdd1bottom寄存器(保存了MAC地址)。读取这两个寄存器的值,以及它们是否与分配的MAC地址完全匹配。

  • 需要通过在服务器端PC上运行Wireshark来验证ARP请求是否已在服务器PC上到达。如果到达,则在ARP超时时间为5毫秒内未获得对目标板的ARP响应。似乎ARP请求没有到达服务器端,这意味着它没有正确发送ARP请求。

  • 从u-boot以太网MAC驱动程序检查ENET MAC是否成功发送ARP请求。

  • 将ARP超时时间从5ms增加到更多ms。

答案 1 :(得分:0)

使用wireshark或tcpdump来验证" wire"实际发生了什么。随着现代以太网的切换,您需要找到一种方法来实际看到特定的以太网段。如果您的设备通过交叉电缆连接并且您的笔记本电脑位于另一侧,则这很容易。否则,您可能必须配置交换机,以便将流量从某个端口复制到连接笔记本电脑的端口。

答案 2 :(得分:0)

您可能希望使用 dhcp 命令而不是使用 setenv 来设置网络适配器。

使用 dhcp 验证您是否具有正常工作的网络连接,并且可以使用 printenv 手动显示当前正在设置的环境变量的正确值。

  

如果基本ping无法使用静态IP地址,那么是什么让您认为DHCP请求有更大的成功机会?

静态地址可能设置不正确。例如。如果指定了错误的网关或网络掩码,则可能无法ping目标。