mmcblk0boot0 is a hardware-defined partition in the eMMC distinct from the mmcblk0pN partitions that are defined by the MBR partition table in the “user area”. U-Boot (if you’re using a version that supports it) could be configured to to access the environment from mmcblk0boot0 instead of the mmcblk0 “user area” by defining #define CONFIG_SYS_MMC_ENV_PART 1 You will also have to define CONFIG_ENV_OFFSET to skip over the u-boot.bin image

mmcblk0boot is a (special) partition itself, so you should not create partitions there. Instead, create partitions on /dev/mmcblk0. These partitions should show up as /dev/mmcblk0p1, /dev/mmblk0p2, etc.

To boot in emmc mode place u-boot on one of the boot partitions and enable the correct boot partition for boot via sysfs.

烧写boot.img到mmcblk0boot0分区

echo 0 > /sys/block/mmcblk0boot0/force_ro
dd if=boot.img of=/dev/mmcblk0boot0
echo 1 > /sys/block/mmcblk0boot0/force_ro

Then boot partition (here 0) must be activated e.g. like this:
​​​echo 8 > /sys/devices/platform/sdhci-esdhc-imx.1/mmc_host/mmc0/mmc0:0001/boot_config​​ Then set the fuses/gpio for emmc boot.

分别烧写u-boot.imx和环境变量到mmcblk0boot0分区

echo 0 > /sys/block/mmcblk0boot0/force_ro
dd if=u-boot.imx of=/dev/mmcblk0boot0 seek=2
dd if=env.img of=/dev/mmcblk0boot0 seek=4079
echo 1 > /sys/block/mmcblk0boot0/force_ro

参考文章

​Copy U-Boot + U-Boot vars using dd​