IMX8MP always boots from eMMC boot0, cannot boot from eMMc partition mmcblk2p1

Hi,

I am working with a SolidRun i.MX8MP board. I have the default image (core-image-inimal-imx8mpsolidrun.wic.zst) flashed to both SD card and eMMC. I want the board to boot from eMMC user partition 1 (mmcblk2p1) but it boots from mmcblk2boot0 .

Observations

Booting from SD card:

mmc dev
switch to partitions #0, OK
mmc1 is current device

SD card boots correctly from the user partition.

Kernel loads imx8mp-hummingpulse.dtb

Custom changes I made in U-Boot (e.g., board messages, DTB selection) are reflected.

Booting from eMMC:

mmc dev
switch to partitions #0, OK
mmc2(part 0) is current device

U-Boot loads from boot0.

Default DTB imx8mp-cubox.dtb is loaded not imx8mp-hummingpulse.dtb.

Changes I made in U-Boot are not reflected at all.

eMMC info:

mmc info
Boot area 0: 4 MiB
Boot area 1: 4 MiB
User area: 29.1 GiB
Boot areas not write-protected

I tried Setting U-Boot variables alone but its not working

setenv mmcdev 2
setenv mmcpart 1

Uboot still loaded from boot0 — user partition changes ignored.

I stop U-Boot during startup using the UART console and print boot_targets; the output is (mmc1 mmc2 usb pxe dhcp). I change it to mmc2 mmc1 usb pxe dhcp using setenv and save it with saveenv. After reflashing a new image, I check boot_targets again, and it still shows mmc2 mmc1 usb pxe dhcp, so the changes I made persist even after flashing the new image

This confirms that ROM always executes boot0, never the user partition.

Is there any way I can boot from eMMC partition(mmcblk2p1) ?

Thanks

The eMMC has a hardware boot partition configuration. This programs the eMMC to choose which partition it should use to boot from. If you no longer want to use boot0 as the boot partition then in u-boot you can use the mmc command, mmc command — Das U-Boot unknown version documentation

If you want to boot from the userspace area of the emmc then the boot partition would be 0x7. The other option is to just flash the boot0 partition with a newer u-boot.