Hello Experts,
On the i.MX95, does the Boot ROM support automatic failover between eMMC Boot0 and Boot1 when the selected boot partition contains an invalid AHAB container?
I programmed the same flash.bin into both Boot0 and Boot1. After setting BOOT_PARTITION_ENABLE = Boot0, I corrupted the first 4 KB of Boot0 (destroying the beginning of the AHAB container). The board reports:
Boot stage: Primary
Image set: 0
Parse seco container failed -14
SPL: failed to boot from all boot devices
If I manually switch BOOT_PARTITION_ENABLE to Boot1, the board boots normally.
Based on some older i.MX8 forum discussions, I expected the ROM to automatically try Boot1. Is automatic Boot0→Boot1 fallback supported on i.MX95? If so, what conditions trigger it? If not, what is the recommended redundancy mechanism for bootloader recovery?
Steps for reproduction:
- Flash the same imx-boot-imx95-19x19-verdin-sd.bin-flash_all to eMMC Boot0 and Boot1. Following is the script that I have used to flash both banks of emmc (attached in attachments)
- Verify both partitions contain the same image.
Set:
(Boot0 selected)
Corrupt the first 4 KB of Boot0:
dd if=/dev/zero of=/dev/mmcblk0boot0 bs=512 count=8 conv=fsync
- Reboot.
Observe:
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 ###
Change PARTITION_CONFIG to Boot1:
- The board boots successfully from Boot1.
In short, I would like to get clarification on the following
Does the i.MX95 Boot ROM support automatic eMMC Boot0↔Boot1 failover, or is the redundancy mechanism expected to be implemented differently (e.g., via image sets, software updates, or an alternate boot device)?
BR,
Arun Kumar