各位专家好,
i.MX95 的启动 ROM 是否支持在选定的启动分区包含无效的 AHAB 容器时,在 eMMC Boot0 和 Boot1 之间自动故障转移?
我将同一个 flash.bin 文件分别写入了 Boot0 和 Boot1 中。启用 BOOT_PARTITION_ENABLE = Boot0 后,我损坏了 Boot0 的前 4 KB(破坏了 AHAB 容器的开头)。董事会报告:
Boot stage: Primary
Image set: 0
Parse seco container failed -14
SPL: failed to boot from all boot devices如果我手动将 BOOT_PARTITION_ENABLE 设置为 Boot1,则开发板可以正常启动。
根据一些较早的 i.MX8 论坛讨论,我预期 ROM 会自动尝试 Boot1。i.MX95 是否支持自动从 Boot0 回退到 Boot1?如果属实,那么什么条件会触发它?如果没有,那么针对引导加载程序恢复的推荐冗余机制是什么?
重现步骤:
设置:
mmc partconf 0 0 1 0
(已选择 Boot0)
损坏 Boot0 的前 4 KB:
dd if=/dev/zero of=/dev/mmcblk0boot0 bs=512 count=8 conv=fsync
观察:
U-Boot SPL 2025.04-g99518e6b6f20 (Feb 02 2026 - 05:52:54 +0000)
SYS Boot reason: por, origin: -1, errid: -1
SYS shutdown reason: por, origin: -1, errid: -1
Normal Boot
Trying to boot from MMC1
Boot stage: Primary
Image set: 0, offset: 0x0
Parse seco container failed -14
Load image from MMC/SD 0x0
mmc_load_image_raw_sector: mmc block read error
Error: -38
SPL: failed to boot from all boot devices
### ERROR ### Please RESET the board ###
将 PARTITION_CONFIG 更改为 Boot1:
mmc partconf 0 0 2 0
简而言之,我想就以下几点获得澄清。
i.MX95 启动 ROM 是否支持 eMMC 启动0↔启动1 自动故障转移,或者冗余机制是否需要以不同的方式实现(例如,通过映像集、软件更新或备用引导设备)?
BR,
阿伦·库马尔
i.MX95 支持此功能,但需要 SPL 支持此功能。
根据您的描述,您使用的 U-Boot 版本似乎不包含以下补丁。
LFU-890-1 imx:镜像容器:支持 iMX95 和 iMX94 二级启动 · nxp-imx/uboot-imx@02d75ab · GitHub
此致,
志明