Bootable eMMC

Introduction
First of all, any eMMC can be also used as a regular SD card. Which means that it can be treated as a single large block device representing its full capacity. And the first stage bootloader (U-Boot SPL or Allwinner's boot0) is expected to be stored in a special hardcoded place between the MBR and the first partition, which does not play very nice with GPT partitioning. But if you are happy with this particular setup, then just go to the Bootable SD card page for further information and instructions.

eMMC supports separate boot partitions for storing the bootloader. They are not sharing the same block device with the data.

At least Allwinner H3 is expected to support eMMC boot paritions because the manual says "Supports eMMC boot operation and alternative boot operation". The JEDEC eMMC spec mentions "boot operation" and "alternative boot operation".

Information for devboard designers
TBD

The BROM implementation details
TBD

Software development and trying something here and now
Disabling eMMC boot partitions write protection in Linux (for more details, check https://www.kernel.org/doc/Documentation/mmc/mmc-dev-parts.txt):

echo 0 > /sys/block/mmcblk1boot0/force_ro echo 0 > /sys/block/mmcblk1boot1/force_ro

Just trying to write the SPL into boot partitions does not seem to work. So we need to inspect the BROM code to check what exactly it is doing.