Role of mmcblk0boot1 partition and how it is used

Could someone explain the role of mmcblk0boot1? I understand that is contains a copy of u-boot which is in mmcblk0boot0. But how is it used? Does the first stage loader fallback to it if a boot attempt from mmcblk0boot0 fails? Can the first stage be instructed to use it (via POR state pins or similar) instead of boot0?

I’m interested in the scenario where a corrupt uboot gets flashed to a remote device that needs to recover without manual intervention. TEZI isn’t a readily available option in this case.

root@colibri-imx8x:~# tdx-info 

Software summary
------------------------------------------------------------
Bootloader:               U-Boot
Kernel version:           5.15.77-6.2.0-devel+git.aa0ff7e3554e #1 SMP PREEMPT Wed Mar 29 15:33:40 UTC 2023
Kernel command line:      root=/dev/mmcblk0p3 ro rootwait console=tty1 console=ttyLP3,115200 consoleblank=0 earlycon
Distro name:              NAME="TDX Wayland with XWayland"
Distro version:           VERSION_ID=6.2.0-devel-20250707154326-build.0
Hostname:                 colibri-imx8x
------------------------------------------------------------

Hardware info
------------------------------------------------------------
HW model:                 Toradex Colibri iMX8QXP on Colibri Iris V2 Board
Toradex version:          0038 V1.0D
Serial number:            07251696
Processor arch:           aarch64
------------------------------------------------------------

Hi, I’m the Toradex AI Assistant.

I might make mistakes. Our support team will step in if needed. If I answered your question, please tick the “Solution” checkbox. For follow-up questions to me, please use @ToradexAI in your post.

Did you like my answer? :+1: :-1:


Hello! I’d be happy to explain the roles of the eMMC boot partitions, especially as they relate to the Colibri iMX8X.

eMMC Boot Partitions: mmcblk0boot0 vs mmcblk0boot1

On Toradex modules with eMMC (like the iMX8X), the chip provides two special “boot area” partitions:

  • mmcblk0boot0
  • mmcblk0boot1
    plus the normal user area (mmcblk0).

On Toradex reference designs, only one boot partition is actively used for U-Boot: typically mmcblk0boot0. The other (mmcblk0boot1) is, by default, left empty and is available for custom uses such as redundancy or image backup.

Key points:

  • U-Boot is usually installed into mmcblk0boot0.
  • The U-Boot environment is also stored in the same boot partition.
  • mmcblk0boot1 can optionally be used for redundancy (for example, as a backup copy of U-Boot), but Toradex’s standard images and tools do not implement switching or automatic fallback between partitions by default.
  • The eMMC’s boot partition selection is configured by the eMMC’s PARTITION_CONFIG register. You can manually select which partition to boot from using the mmc partconf command from U-Boot.

Is There an Automatic Fallback?

No, there is no automatic fallback between boot0 and boot1 at the hardware or ROM level on i.MX SoCs.

  • The SoC boots from the partition indicated in the eMMC’s configuration register (PARTITION_CONFIG).
  • If the image in the configured boot partition is corrupt, the device will not automatically try the other.
  • No POR (Power-On Reset) state pins are available to easily switch between boot partitions at boot time.

For more details: eMMC hardware boot area partitions

Can You Use mmcblk0boot1 for Recovery?

  • You can manually configure the system to use mmcblk0boot1 as the boot source, but this must be done beforehand (e.g., as part of a custom dual-bootloader update strategy).
  • This is not something the boot ROM or U-Boot will handle themselves in case of failure. You would need custom logic (in U-Boot or as part of a higher-level software update strategy) to manage switching between partitions.
  • For true remote recovery after a corrupt U-Boot, you must implement your own mechanism. For example, a redundant bootloader with watchdog resets and partition switching via software update process—or use a hardware mechanism (such as a microcontroller or secure element) to reconfigure the eMMC partition register.

In Summary

  • mmcblk0boot1 is a second eMMC boot partition, available for custom redundancy.
  • No automatic fallback—the SoC will not switch boot partitions on failure.
  • Boot partition selection is controlled via eMMC registers, not by first-stage loader logic or external pins.
  • Recovery strategies require custom handling beyond the default Toradex implementation.

For more about eMMC boot partitions and configuration, please see:

If you need more technical details about setting up a redundant U-Boot using both boot partitions, let me know!

Best regards,
Toradex AI Assistant.

Very good Mr. AI Bot boi.