your boot_partition:0x00; shows the boot configuration is wrong.
It seems you are using the BSP L3.0.35. It has some issue for emmc boot configuration. But can use a workaround of changing the command order in mfg tool xml.
But it is a workaround. not fix. it is under some cases. This workaround doesn't work all the time.
to fix, please check the item #2 below.
In the new BSP release 3.10.xx or 3.14.xx kernel has no such issue.
1. For test, please use the third party application mmc attached.
a. put to mfg tools: Profiles\MX6Q Linux Update\OS Firmware\files\mmc.tar
b. add following line to Profiles\MX6Q Linux Update\OS Firmware\ucl2.xml
-->
<CMD state="Updater" type="push" body="$ dd if=$FILE of=/dev/mmcblk0boot0 bs=512 seek=2 skip=2">write U-Boot to sd card</CMD>
<CMD state="Updater" type="push" body="$ echo 1 > /sys/block/mmcblk0boot0/force_ro"> re-enable read-only access </CMD>
<!--
<CMD state="Updater" type="push" body="$ echo 8 > /sys/devices/platform/sdhci-esdhc-imx.3/mmc_host/mmc0/mmc0:0001/boot_config">enable boot partion 1 to boot</CMD>
-->
<CMD state="Updater" type="push" body="send" file="files/mmc.tar">Sending mmc util</CMD>
<CMD state="Updater" type="push" body="$ tar xf $FILE "> untar mmc</CMD>
<CMD state="Updater" type="push" body="$ ./mmc bootpart enable 1 1 /dev/mmcblk0"/>
Or you can untar the mmc.tar. put in the sdcard use the SD card boot and write the boot configuration to emmc.
run the command ./mmc bootpart enable 1 1 as it is mentioned above in mfg tool .
2. to fix
Modify the following code. and re-compile the kernel for mfg tool . and use the new mfg tool kernel to flash the emmc.
drivers/mmc/core/mmc.c
setup_boot_partitions
…..
err = mmc_send_ext_csd(card, ext_csd); // The setup_boot_partitions is trying to filter wrong value but back door here.
..... // it reads back the value may contain the PARTITION_ACCESS bit by echo the force_ro
/* enable the boot partition in boot mode */
/* boot enable be -
* 0x00 - disable boot enable.
* 0x08 - boot partition 1 is enabled for boot.
* 0x10 - boot partition 2 is enabled for boot.
* 0x38
switch (part & EXT_CSD_BOOT_PARTITION_ENABLE_MASK) {
break;
case EXT_CSD_BOOT_PARTITION_ENABLE_MASK:
boot_config = ((ext_csd[EXT_CSD_PART_CONFIG]
| EXT_CSD_BOOT_PARTITION_ENABLE_MASK)
& ~EXT_CSD_BOOT_ACK_ENABLE);
break;
default:
printk(KERN_ERR "%s: wrong boot config parameter"
" 00 (disable boot), 08 (enable boot1),"
"16 (enable boot2), 56 (User area)\n",
mmc_hostname(card->host));
err = -EINVAL;
goto err_rtn;
}
boot_config = boot_config & 0x78; // Let PARTITION_ACCESS = 0
err = mmc_switch(card, EXT_CSD_CMD_SET_NORMAL,
EXT_CSD_PART_CONFIG, boot_config, card->ext_csd.part_time);
The following is from the emmc spec.

boot_config = boot_config & 0x78; // Let PARTITION_ACCESS = 0
