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:
What happens today:
What we already tried:
What we’re looking for (requests):
You can refer to i.MX93 eMMC Secondary Boot. The script there is for burning eMMC boot0 and boot1. This part is the same for iMX95 and iMX93.
i.MX93_emmc_boot_part_secondary_boot.uuu
uuu_version 1.2.39
SDPS: boot -f imx-boot-imx93-11x11-lpddr4x-evk-sd.bin-flash_singleboot-LF_v6.6.3_1.0.0
SDPV: delay 1000
SDPV: write -f imx-boot-imx93-11x11-lpddr4x-evk-sd.bin-flash_singleboot-LF_v6.6.3_1.0.0 -skipspl
SDPV: jump
#FB: ucmd setenv emmc_dev 1
FB: ucmd setenv part 1
FB: ucmd setenv boot_offset 0x0
FB: ucmd setenv fastboot_dev mmc
FB: ucmd setenv mmcdev ${emmc_dev}
FB: ucmd if test ${part} != 7; then mmc dev ${emmc_dev} ${part}; else mmc dev ${emmc_dev}; fi
FB: ucmd setenv fastboot_buffer ${loadaddr}
FB: download -f imx-boot-imx93-11x11-lpddr4x-evk-sd.bin-flash_singleboot-LF_v6.1.55-2.2.0
#FB: download -f imx-boot-imx93-11x11-lpddr4x-evk-sd.bin-flash_singleboot-LF_v6.6.3_1.0.0
FB: ucmd echo ${fastboot_bytes}
FB: ucmd setexpr blks ${fastboot_bytes} / 0x200; setexpr blks ${blks} + 1
FB: ucmd mmc write ${loadaddr} ${boot_offset} ${blks}
# Secondary boot
FB: ucmd setenv part 2
FB: ucmd if test ${part} != 7; then mmc dev ${emmc_dev} ${part}; else mmc dev ${emmc_dev}; fi
#FB: download -f imx-boot-imx93-11x11-lpddr4x-evk-sd.bin-flash_singleboot-LF_v6.1.55-2.2.0
FB: download -f imx-boot-imx93-11x11-lpddr4x-evk-sd.bin-flash_singleboot-LF_v6.6.3_1.0.0
FB: ucmd echo ${fastboot_bytes}
FB: ucmd setexpr blks ${fastboot_bytes} / 0x200; setexpr blks ${blks} + 1
FB: ucmd mmc write ${loadaddr} ${boot_offset} ${blks}
FB: ucmd setenv part 1
FB: ucmd if env exists emmc_ack; then ; else setenv emmc_ack 0; fi;
FB: ucmd mmc partconf ${emmc_dev} ${emmc_ack} ${part} 0
FB: done
I recommend you refer to i.MX93 eMMC Secondary Boot. The mechanism of this part of iMX95 is the same as that of iMX93.