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: Verdin i.MX95
- Bootloader: U‑Boot 2024.04 (nxp_imx)
- Yocto/WIC: image produced via
.wks(WIC) - Flasher: NXP mfgtools/
uuu - Storage: eMMC with boot0 & boot1 hardware partitions and user area
- Goal: Mirror (duplicate) U‑Boot to boot0 and boot1 during factory flash
What happens today
- Flashing the default
.wicusinguuu: 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, 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/rawcopyaddress regular partitions; guidance for boot0/boot1 is unclear). -
After boot on the target:
- From Linux we can
ddto/dev/mmcblk0boot1(after togglingforce_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 (Toradex‑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/uuutypically writes only the first boot partition unless customized—confirmation and an example would help a lot.)
- Sample
.wks(orwicpost‑process hook) that Toradex recommends for Verdin i.MX modules to handle boot0 + boot1 mirroring. - Field upgrade best‑practices on Verdin for U‑Boot A/B:
- Is there a Toradex guide for bootloader redundancy with boot0/boot1, and switching via
mmc partconf/bootbussafely from U‑Boot? (U‑Boot’smmcdocs coverpartconf,bootbus, a Verdin‑specific example would be great for uboot upgrade on field.)