uImage/ramdisk准备好后,准备tftp到单板上小式一把,结果将单板停在uboot后,网口一直link down,ping host后还打印“could not establish link”。真是抑郁啊。
细想,板子回来后,在uImage起来后,我是验证过网口的,是OK的,所以硬件应该没啥问题,应该是u-boot的支持问题。研究一下ping的流程:
do_ping-->NetLoop(PING)-->eth_halt-->eth_init-->PingStart-->PingSend-->ArpRequest-->eth_rx-->NetReceive-->eth_send-->eth_rx-->NetReceive-->NETLOOP_SUCCESS-->eth_halt。
do_ping-->NetLoop(PING)-->eth_halt-->eth_init
初始化网口,准备发包,
PingStart-->PingSend-->ArpRequest-->eth_rx-->NetReceive
请求arp包,一直等待收arp响应包,并设置5S超时。
eth_send-->eth_rx-->NetReceive-->NETLOOP_SUCCESS-->eth_halt。
如果收到arp响应,发出ping包,等待收包,ping为10S超时,收包或者超时都调用eth_halt。
DM9000,eth_init-->dm9000_reset-->DM9000_iow(D