用于选择最新映像的 U-Boot 脚本

U-Boot script for choosing the most recent image

我有一个 u-boot,可以从串行闪存复制多映像 (Linux kernel+rootfs+dts) 到 DDR。该设备是远程供电的。该设备需要故障安全远程固件升级,它可以在电源故障时幸存下来。我总是在 FLASH 上保存两张图片。当我将新固件写入闪存时,闪存上总会有另一个较旧的固件映像。上电后U-boot会启动最新的固件。

启动时间很重要,但并不关键。例如,我想让 u-boot 引导第一个 "valid" 映像。 Linux 应用程序将决定是否需要重启并修改 u-boot 环境。

我可以给 u-boot 打补丁——添加一个命令来查找 FLASH 上的最新固件。我希望某个地方的某个人已经解决了这个问题并且可能比我更好。是否有用于 u-boot 的 patch/script 允许根据一些元数据自动选择最新固件?

还有其他解决问题的方法吗?

是的。 使用 Uboot 的 bootcount 功能。 它会增加每次启动重试。并且应该在内核启动后由文件系统上的应用程序清除。 如果它达到了一个阈值。然后你可以从 uboot 启动另一个映像。