# short-description: Create eMMC image
# long-description: Creates a partitioned eMMC image with RAUC for STM32MP OpenSTLinux BSP
#
#  - ----------- ----------- ------- ------- ------------ --------- --------- ----------- ----------- --------- --------- -------
# | | METADATA1 | METADATA2 | FIP-A | FIP-B | U-BOOT ENV | bootafs | bootbfs | vendorafs | vendorbfs | rootafs | rootbfs | userfs
#  - ----------- ----------- ------- ------- ------------ --------- --------- ----------- ----------- --------- --------- -------
# ^ ^
# | |
# 0 512kB
#
# Partition sizes are defined throught the machine settings (or can be changed manually on this file).
# Warning:
# - The first stage of boot FSLB1 and FSLB2 must be programmed seperately in the eMMC boot area.
# - The first stage of boot (FSLB and FIP) MUST be on GPT partition to be detected.

# Metadata partitions
part metadata1 --source rawcopy --fstype=ext4 --fsoptions "noauto" --part-name=metadata1 --sourceparams="file=/home/automatix/stm/b/build-openstlinuxwestonrauc-stm32mp25x-phyflex-libra-rdk-3/tmp-glibc/deploy/images/stm32mp25x-phyflex-libra-rdk-3/arm-trusted-firmware/metadata.bin" --ondisk mmcblk --part-type 0x8301 --fixed-size 256K --align 512
part metadata2 --source rawcopy --fstype=ext4 --fsoptions "noauto" --part-name=metadata2 --sourceparams="file=/home/automatix/stm/b/build-openstlinuxwestonrauc-stm32mp25x-phyflex-libra-rdk-3/tmp-glibc/deploy/images/stm32mp25x-phyflex-libra-rdk-3/arm-trusted-firmware/metadata.bin" --ondisk mmcblk --part-type 0x8301 --fixed-size 256K

# Fip partition
part fip-a --source rawcopy --fstype=ext4 --fsoptions "noauto" --part-name=fip-a --sourceparams="file=/home/automatix/stm/b/build-openstlinuxwestonrauc-stm32mp25x-phyflex-libra-rdk-3/tmp-glibc/deploy/images/stm32mp25x-phyflex-libra-rdk-3/fip/fip-stm32mp257f-phyflex-fpsc-g-som-optee-emmc.bin" --ondisk mmcblk --part-type 0x8301 --fixed-size 4096K --uuid 4fd84c93-54ef-463f-a7ef-ae25ff887087
part fip-b --fstype=ext4 --fsoptions "noauto" --part-name=fip-b --ondisk mmcblk --part-type 0x8301 --fixed-size 4096K --uuid 09c54952-d5bf-45af-acee-335303766fb3

# U-BOOT env
part u-boot-env --source empty --part-name=u-boot-env --ondisk mmcblk --part-type 0x8301 --fixed-size 512K

# Bootfs
part bootafs --source rawcopy --sourceparams="file=st-image-bootfs-openstlinux-weston-rauc-stm32mp25x-phyflex-libra-rdk-3.bootafs.ext4" --ondisk mmcblk --fstype=ext4 --part-name bootafs --active --fixed-size 65536K
part bootbfs --ondisk mmcblk --fstype=ext4 --part-name bootbfs --active --fixed-size 65536K

# Vendorfs
part vendorafs --source rawcopy --sourceparams="file=st-image-vendorfs-openstlinux-weston-rauc-stm32mp25x-phyflex-libra-rdk-3.vendorafs.ext4" --ondisk mmcblk --fstype=ext4 --part-name vendorafs --fixed-size 49152K
part vendorbfs --ondisk mmcblk --fstype=ext4 --part-name vendorbfs --fixed-size 49152K

# Rootfs
part rootafs --source rootfs --ondisk mmcblk --fstype=ext4 --part-name rootafs --fixed-size 926720K --uuid 491f6117-415d-4f53-88c9-6e0de54deac6
part rootbfs --ondisk mmcblk --fstype=ext4 --part-name rootbfs --fixed-size 926720K

# Userfs
part userfs --source rawcopy --sourceparams="file=st-image-userfs-openstlinux-weston-rauc-stm32mp25x-phyflex-libra-rdk-3.userfs.ext4" --ondisk mmcblk --fstype=ext4 --part-name userfs --fixed-size 131072K

bootloader --ptable gpt
