# short-description: Create an image for eMMC
# long-description: Creates an eMMC card image for the User Data Area that can
# be used with the Nuvoton SoC family.
#
# Assumes a minimum flash size of 1GB.
# Assumes U-Boot is stored elsewhere, such as an eMMC boot volume or NOR flash.
#
#  --- - ---------- -------- -------- -------- -------- ------ -------
# |GPT| | reserved | boot-a | boot-b | rofs-a | rofs-b | rwfs |GPT-sec|
#  --- - ---------- -------- -------- -------- -------- ------ -------
#       ^   1MB       64MB     64MB    256MB    256MB    256MB
#       |
#       0x5000
#
# Primary GPT size (Beginning of image):
# 512B (Protective MBR) + 512B (Primary Header) + 16KB (Primary Table)
# First partition (u-boot-env) is 4K-aligned, which puts it at offset 0x5000
#
# Secondary GPT size (End of image):
# 16KB (Secondary Table) + 512B (Secondary Header)

bootloader --ptable gpt

# Hint: bootimg-partition size must be same as MMC_BOOT_PARTITION_SIZE
# Note: the partition layout above is SoC default value, it may change by user
#       set WKS_ROFS_SIZE, WKS_RWFS_SIZE or MMC_BOOT_PARTITION_SIZE.
part --align 4 --fixed-size 1M
part --fstype=ext4 --fixed-size ${MMC_BOOT_PARTITION_SIZE}K --source bootimg-partition --label boot-a
part --fstype=ext4 --fixed-size ${MMC_BOOT_PARTITION_SIZE}K --source bootimg-partition --label boot-b
part --fstype=ext4 --fixed-size ${WKS_ROFS_SIZE} --source rootfs --label rofs-a
part --fstype=ext4 --fixed-size ${WKS_ROFS_SIZE} --source rootfs --label rofs-b
part --fstype=ext4 --fixed-size ${WKS_RWFS_SIZE} --label rwfs
