最近对uboot进行了修改。
原来只能通过串口对uboot进行操作,譬如setenv,bootm,tftp等。现在可以通过网络对uboot进行控制。
PC端建立一个服务器,开发板在启动的时候,会和PC通信,可以通过PC来对uboot进行远程操作,譬如setenv,bootm,tftp等。
主要是从底层的收发,逐步朝上建立一套网络发送,接收,标志位解析,包括ARP请求等一系列操作。具体顺序是:
1. ARP_REQUEST
2. Get server information
3. Configure the variables related to net device
4. Communicate to server
5. CMD analysis
6. Call functions
我觉得这些都好实现,最麻烦的就是和PC通信的时候,uboot内部一些操作的逻辑以及调用顺序和状态改变等。
这个是针对目前一些开发板的远程升级所作的一些方案。
我所用的平台是davinci DM6467.