We’re preparing a factory flashing flow for Verdin i.MX95 where U‑Boot must be present in both eMMC boot partitions (/dev/mmcblk0boot0 and /dev/mmcblk0boot1 ) so that a future field upgrade can switch partitions safely. With the default .wic image flashed via uuu , U‑Boot ends up only in boot0 ; boot1 remains empty . We can populate boot1 afterwards from a running target, but we need this to happen as part of the first flash at the factory .
Environment:
- Module/SoC: Toradex Verdin i.MX95
- Bootloader: U‑Boot 2024.04 (nxp_imx)
- Yocto/WIC: image produced via .wks (WIC)
- Flasher: NXP mfgtools/uuu
- Storage: eMMC with /dev/mmcblk0boot0 & /dev/mmcblk0boot1 hardware partitions and user area
- Goal: Mirror (duplicate) U‑Boot to boot0 and boot1 during factory flash
What happens today:
- Flashing the default .wic using uuu: U‑Boot is written to boot0 only; boot1 is empty afterwards.
What we already tried:
- Extra entry in the .wks: added a second bootloader/rawcopy‑style entry intended to write to boot1. It didn’t produce the desired result (boot1 still empty).
- Post‑processing script in the WIC pipeline: attempted to place U‑Boot at a fixed offset (e.g., +4 MiB) assuming it would reach boot1, but that still writes into the user area it seems, not the boot hardware partition, so it doesn’t achieve mirrored boot. (As far as I can see, WIC’s standard plugins like bootimg-partition/rawcopy address regular partitions; guidance for boot0/boot1 is unclear).
- After boot on the target: From Linux we can dd to /dev/mmcblk0boot1 (after toggling force_ro) and then device boots from boot1 fine; so the silicon/board path is OK. But we must achieve this during factory flashing via .wic + uuu. (There are threads describing dd/offsets from Linux but not tied to WIC/UUU at factory time.)
What we’re looking for (requests):
- Recommended way (NXP‑supported) to populate U‑Boot into boot0 and boot1 during factory flashing, ideally using:
- A WIC plugin/usage example to target boot0/boot1 directly, or
- A UUU script snippet that writes the same U‑Boot binary to both boot partitions (if WIC cannot directly address boot partitions). (Related discussions suggest mfgtools/uuu typically writes only the first boot partition unless customized—confirmation and an example would help a lot.
- Sample .wks (or wic post‑process hook) that NXP recommends for i.MX95 modules to handle boot0 + boot1 mirroring.
- Field upgrade best‑practices on iMX95 for U‑Boot A/B: Is there a NXP guide for bootloader redundancy with boot0/boot1, and switching via mmc partconf/bootbus safely from U‑Boot? (U‑Boot’s mmc docs cover partconf, bootbus, a NXP‑specific example would be great for uboot upgrade on field.)