<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: How to program U‑Boot to both eMMC boot partitions (boot0 &amp;amp; boot1) on i.MX95 during factory in i.MX Processors</title>
    <link>https://community.nxp.com/t5/i-MX-Processors/How-to-program-U-Boot-to-both-eMMC-boot-partitions-boot0-amp/m-p/2168914#M240693</link>
    <description>&lt;P&gt;I recommend you refer to i.MX93 eMMC Secondary Boot. The mechanism of this part of iMX95 is the same as that of iMX93.&lt;/P&gt;&lt;P&gt;&lt;A href="https://community.nxp.com/t5/i-MX-Processors-Knowledge-Base/iMX-secondary-boot-collection/ta-p/1916915" target="_blank"&gt;https://community.nxp.com/t5/i-MX-Processors-Knowledge-Base/iMX-secondary-boot-collection/ta-p/1916915&lt;/A&gt;&lt;/P&gt;</description>
    <pubDate>Fri, 12 Sep 2025 11:27:49 GMT</pubDate>
    <dc:creator>kawateb265</dc:creator>
    <dc:date>2025-09-12T11:27:49Z</dc:date>
    <item>
      <title>How to program U‑Boot to both eMMC boot partitions (boot0 &amp; boot1) on i.MX95 during factory flashing</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/How-to-program-U-Boot-to-both-eMMC-boot-partitions-boot0-amp/m-p/2163513#M240518</link>
      <description>&lt;P&gt;&lt;SPAN&gt;We’re preparing a factory flashing flow for Verdin i.MX95 where U‑Boot must be present in both eMMC boot partitions&amp;nbsp;(/dev/mmcblk0boot0 and /dev/mmcblk0boot1 ) so that a future field upgrade can switch partitions safely. With the default .wic&amp;nbsp;image flashed via uuu&amp;nbsp;, U‑Boot ends up only in boot0&amp;nbsp;; boot1 remains empty&amp;nbsp;. We can populate boot1 afterwards from a running target, but we need this to happen as part of the first flash at the factory&amp;nbsp;.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;STRONG&gt;Environment:&lt;/STRONG&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;&lt;SPAN&gt;Module/SoC: Toradex&amp;nbsp;Verdin i.MX95 &lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN&gt;Bootloader: U‑Boot 2024.04 (nxp_imx) &lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN&gt;Yocto/WIC: image produced via .wks&amp;nbsp;(WIC) &lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN&gt;Flasher: NXP mfgtools/uuu &lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN&gt;Storage: eMMC with /dev/mmcblk0boot0&amp;nbsp;&amp;amp; /dev/mmcblk0boot1 hardware partitions and user area &lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN&gt;Goal: Mirror (duplicate) U‑Boot&amp;nbsp;to boot0 and boot1&amp;nbsp;during factory flash &lt;/SPAN&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;STRONG&gt;What happens today:&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;&lt;SPAN&gt;Flashing the default .wic&amp;nbsp;using uuu: U‑Boot is written to boot0 only;&amp;nbsp;boot1&amp;nbsp;is&amp;nbsp;empty&amp;nbsp;afterwards. &lt;/SPAN&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;STRONG&gt;What we already tried:&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;OL&gt;&lt;LI&gt;&lt;SPAN&gt;&lt;STRONG&gt;Extra entry in the .wks&lt;/STRONG&gt;: added a second bootloader/rawcopy‑style entry intended to write to boot1. It didn’t produce the desired result (boot1 still empty). &lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN&gt;&lt;STRONG&gt;Post‑processing script&lt;/STRONG&gt;&amp;nbsp;in the WIC pipeline: attempted to place U‑Boot at a fixed offset&amp;nbsp;(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&amp;nbsp;address regular partitions; guidance for boot0/boot1&amp;nbsp;is unclear). &lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN&gt;&lt;STRONG&gt;After boot&lt;/STRONG&gt;&amp;nbsp;on the target: From Linux we can dd&amp;nbsp;to /dev/mmcblk0boot1&amp;nbsp;(after toggling force_ro) and then device boots from boot1&amp;nbsp;fine; so the silicon/board path is OK. But we must&amp;nbsp;achieve this during factory flashing&amp;nbsp;via .wic&amp;nbsp;+ uuu. (There are threads describing dd/offsets from Linux but not tied to WIC/UUU at factory time.) &lt;/SPAN&gt;&lt;/LI&gt;&lt;/OL&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;STRONG&gt;What we’re looking for (requests):&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;OL&gt;&lt;LI&gt;&lt;SPAN&gt;&lt;STRONG&gt;Recommended way&lt;/STRONG&gt;&amp;nbsp;(NXP‑supported) to populate U‑Boot into boot0 and boot1&amp;nbsp;during factory flashing, ideally using: &lt;/SPAN&gt;&lt;UL&gt;&lt;LI&gt;&lt;SPAN&gt;A WIC plugin/usage&amp;nbsp;example to target boot0/boot1&amp;nbsp;directly, or &lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN&gt;A UUU script&amp;nbsp;snippet that writes the same U‑Boot binary to both boot partitions&amp;nbsp;(if WIC cannot directly address boot partitions). &lt;/SPAN&gt;&lt;SPAN&gt;(Related discussions suggest mfgtools/uuu&amp;nbsp;typically writes only the first boot partition unless customized—confirmation and an example would help a lot. &lt;/SPAN&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN&gt;&lt;STRONG&gt;Sample .wks&lt;/STRONG&gt;&amp;nbsp;(or wic&amp;nbsp;post‑process hook) that NXP recommends for i.MX95 modules to handle boot0 + boot1 mirroring. &lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN&gt;&lt;STRONG&gt;Field upgrade&lt;/STRONG&gt;&amp;nbsp;best‑practices on iMX95 for U‑Boot A/B: Is there a NXP guide for bootloader redundancy&amp;nbsp;with boot0/boot1, and switching via mmc partconf/bootbus&amp;nbsp;safely from U‑Boot? (U‑Boot’s mmc&amp;nbsp;docs cover partconf, bootbus, a NXP‑specific example would be great for uboot upgrade on field.)&lt;/SPAN&gt;&lt;/LI&gt;&lt;/OL&gt;</description>
      <pubDate>Thu, 04 Sep 2025 08:39:08 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/How-to-program-U-Boot-to-both-eMMC-boot-partitions-boot0-amp/m-p/2163513#M240518</guid>
      <dc:creator>pushpendra2911</dc:creator>
      <dc:date>2025-09-04T08:39:08Z</dc:date>
    </item>
    <item>
      <title>Re: How to program U‑Boot to both eMMC boot partitions (boot0 &amp; boot1) on i.MX95 during factory</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/How-to-program-U-Boot-to-both-eMMC-boot-partitions-boot0-amp/m-p/2168914#M240693</link>
      <description>&lt;P&gt;I recommend you refer to i.MX93 eMMC Secondary Boot. The mechanism of this part of iMX95 is the same as that of iMX93.&lt;/P&gt;&lt;P&gt;&lt;A href="https://community.nxp.com/t5/i-MX-Processors-Knowledge-Base/iMX-secondary-boot-collection/ta-p/1916915" target="_blank"&gt;https://community.nxp.com/t5/i-MX-Processors-Knowledge-Base/iMX-secondary-boot-collection/ta-p/1916915&lt;/A&gt;&lt;/P&gt;</description>
      <pubDate>Fri, 12 Sep 2025 11:27:49 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/How-to-program-U-Boot-to-both-eMMC-boot-partitions-boot0-amp/m-p/2168914#M240693</guid>
      <dc:creator>kawateb265</dc:creator>
      <dc:date>2025-09-12T11:27:49Z</dc:date>
    </item>
    <item>
      <title>Re: How to program U‑Boot to both eMMC boot partitions (boot0 &amp; boot1) on i.MX95 during factory</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/How-to-program-U-Boot-to-both-eMMC-boot-partitions-boot0-amp/m-p/2168918#M240695</link>
      <description>&lt;P&gt;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.&lt;/P&gt;&lt;P&gt;&lt;A href="https://community.nxp.com/t5/i-MX-Processors-Knowledge-Base/iMX-secondary-boot-collection/ta-p/1916915" target="_blank"&gt;https://community.nxp.com/t5/i-MX-Processors-Knowledge-Base/iMX-secondary-boot-collection/ta-p/1916915&lt;/A&gt;&lt;/P&gt;&lt;P&gt;i.MX93_emmc_boot_part_secondary_boot.uuu&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;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&lt;/LI-CODE&gt;</description>
      <pubDate>Fri, 12 Sep 2025 11:37:50 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/How-to-program-U-Boot-to-both-eMMC-boot-partitions-boot0-amp/m-p/2168918#M240695</guid>
      <dc:creator>kawateb265</dc:creator>
      <dc:date>2025-09-12T11:37:50Z</dc:date>
    </item>
    <item>
      <title>Re: How to program U‑Boot to both eMMC boot partitions (boot0 &amp; boot1) on i.MX95 during factory</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/How-to-program-U-Boot-to-both-eMMC-boot-partitions-boot0-amp/m-p/2169339#M240715</link>
      <description>&lt;P&gt;hI&amp;nbsp;&lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/229429"&gt;@pushpendra2911&lt;/a&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;Attached is a UUU script to download bootloader to both emmc boo0 and boot1 partition on imx8mp. you can modify the file name in this script to make it fit for i.MX95 image.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;B.R&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Mon, 15 Sep 2025 04:13:30 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/How-to-program-U-Boot-to-both-eMMC-boot-partitions-boot0-amp/m-p/2169339#M240715</guid>
      <dc:creator>pengyong_zhang</dc:creator>
      <dc:date>2025-09-15T04:13:30Z</dc:date>
    </item>
    <item>
      <title>Re: How to program U‑Boot to both eMMC boot partitions (boot0 &amp; boot1) on i.MX95 during factory</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/How-to-program-U-Boot-to-both-eMMC-boot-partitions-boot0-amp/m-p/2169340#M240716</link>
      <description>&lt;P&gt;hI&amp;nbsp;&lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/229429"&gt;@pushpendra2911&lt;/a&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;I will be on vacation for a week and may not reply during this period. If you are in a hurry, you can create a new ticket. My other colleagues will support you. Thanks for your understand.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;B.R&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Mon, 15 Sep 2025 04:13:51 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/How-to-program-U-Boot-to-both-eMMC-boot-partitions-boot0-amp/m-p/2169340#M240716</guid>
      <dc:creator>pengyong_zhang</dc:creator>
      <dc:date>2025-09-15T04:13:51Z</dc:date>
    </item>
  </channel>
</rss>

