How to program U‑Boot to both eMMC boot partitions (boot0 & boot1) on i.MX95 during factory flashing

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

How to program U‑Boot to both eMMC boot partitions (boot0 & boot1) on i.MX95 during factory flashing

122件の閲覧回数
pushpendra2911
Contributor I

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:

  1. 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).
  2. 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).
  3. 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):

  1. 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.
  2. Sample .wks (or wic post‑process hook) that NXP recommends for i.MX95 modules to handle boot0 + boot1 mirroring.
  3. 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.)
タグ(2)
0 件の賞賛
返信
0 返答(返信)