超时后u-boot不会重试

时间:2018-04-02 12:52:10

标签: u-boot

我将u-boot配置为使用tftpboot通过以太网网络获取linux映像。如果外部设备上的tftp服务器已经设置并运行,一切正常。但是,如果我的设备在服务器准备就绪之前打开电源,它将会超时。一旦超时,它将不再尝试连接到服务器以获取文件。:

t.me

即使它说“重新开始”,但实际上没有重新启动。一旦服务器最终准备就绪,就没有通信来获取linux映像。请注意,我可以使用串口手动重启tftpboot,但我需要它自动重试。

是否有一些选项会使重试真正发生?以下是一些环境变量:

Filename 'image.ub'.
Load address: 0x10000000
Loading: T T T T T T T T T T
Retry count exceeded; starting again
Zynq>

1 个答案:

答案 0 :(得分:1)

U-Boot输出的最后一条消息,

Retry count exceeded; starting again

来自tftp_timeout_handler()restart(),然后调用net_start_again()

  

是否有一些选项会使重试真正发生?

U-Boot例程net_start_again()表示环境变量netretry确定局部变量retrycntretry_forever

尝试使用值netretry定义环境变量yes,即

setenv netretry yes

当环境中不存在变量netretry时,代码表示不会尝试重试(按照此patch),正如您所经历的那样。