uboot中添加USB固件恢复功能
一、前言:
在嵌入式Linux设备中,一般都有固件升级功能。一般在flash比较大的设备中,会有AB分区,在升级时,将固件写入至B分区,在uboot启动时可根据标志位选择A或B分区作为启动分区。这样便可做到安全升级:即使固件写入到B分区时断电或意外重启,标志位未被写入,下次启动时依然从A分区启动。
而在某些嵌入式环境中,flash过小(如常见的汇邦16MB spi flash),此时写入固件时便会有风险:写入固件时断电或出错导致固件未写完或写入出错,则会导致无法启动,用户只能返厂维修,十分麻烦。
此时,可在uboot中增加USB或其他功能来恢复固件。其原理很简单,在uboot的交互中,可以使用usb命令加载u盘等设备,并使用fat命令读取u盘中的文件,并写入到对应的分区中,恢复kernel及rootfs。
分析uboot中的文件如下: