# short-description: Create SD card image with a boot partition
# long-description: Creates a partitioned SD card image for STM32MP1 OpenSTLinux BSP
#
#  - -------- ----- ------------ -------- ---------- -------- --------
# | | TFA(2) | FIP | U-BOOT ENV | bootfs | vendorfs | rootfs | userfs |
#  - -------- ----- ------------ -------- ---------- -------- --------
# ^ ^
# | |
# 0 17kB
#
# Partition sizes are defined throught the machine settings (or can be changed manually on this file).
#
# Warning: the first stage of boot (here fsbl1, fsbl2, fip) MUST be on GPT partition to be detected.
#

# FSBL partitions (TF-M BL2)
part fsblm1 --source rawcopy --fstype=ext4 --fsoptions "noauto" --part-name=fsblm1 --sourceparams="file=/home/automatix/stm/b/build-openstlinuxweston-stm32mp25x-phyflex-libra-rdk-3-m33td/tmp-glibc/deploy/images/stm32mp25x-phyflex-libra-rdk-3-m33td/arm-trusted-firmware-m/bl2-stm32mp257f-phyflex-fpsc-g-som-m33td-sdcard.stm32" --ondisk mmcblk --part-type 0x8301 --fixed-size 256K --align 17
part fsblm2 --source rawcopy --fstype=ext4 --fsoptions "noauto" --part-name=fsblm2 --sourceparams="file=/home/automatix/stm/b/build-openstlinuxweston-stm32mp25x-phyflex-libra-rdk-3-m33td/tmp-glibc/deploy/images/stm32mp25x-phyflex-libra-rdk-3-m33td/arm-trusted-firmware-m/bl2-stm32mp257f-phyflex-fpsc-g-som-m33td-sdcard.stm32" --ondisk mmcblk --part-type 0x8301 --fixed-size 256K

# M33DDR partitions
part m33ddr-a --source rawcopy --fstype=ext4 --fsoptions "noauto" --part-name=m33ddr-a --sourceparams="file=/home/automatix/stm/b/build-openstlinuxweston-stm32mp25x-phyflex-libra-rdk-3-m33td/tmp-glibc/deploy/images/stm32mp25x-phyflex-libra-rdk-3-m33td/arm-trusted-firmware-m/ddr_phy_signed-stm32mp257f-phyflex-fpsc-g-som-m33td-sdcard.bin" --ondisk mmcblk --part-type 0x8301 --fixed-size 256K --align 17
part m33ddr-b --source empty --fstype=ext4 --fsoptions "noauto" --part-name=m33ddr-b --ondisk mmcblk --part-type 0x8301 --fixed-size 256K

# M33FW partitions
part m33fw-a --source rawcopy --fstype=ext4 --fsoptions "noauto" --part-name=m33fw-a --sourceparams="file=/home/automatix/stm/b/build-openstlinuxweston-stm32mp25x-phyflex-libra-rdk-3-m33td/tmp-glibc/deploy/images/stm32mp25x-phyflex-libra-rdk-3-m33td/arm-trusted-firmware-m-cube/tfm-starterapp-stm32mp257f-phyflex-fpsc-g-som-m33td-sdcard-sdcard_s_ns_signed.bin" --ondisk mmcblk --part-type 0x8301 --fixed-size 9216K --align 17
part m33fw-b --source empty --fstype=ext4 --fsoptions "noauto" --part-name=m33fw-b --ondisk mmcblk --part-type 0x8301 --fixed-size 9216K

# FSBL partitions (TF-A BL2)
part fsbla --source rawcopy --fstype=ext4 --fsoptions "noauto" --part-name=fsbla --sourceparams="file=/home/automatix/stm/b/build-openstlinuxweston-stm32mp25x-phyflex-libra-rdk-3-m33td/tmp-glibc/deploy/images/stm32mp25x-phyflex-libra-rdk-3-m33td/arm-trusted-firmware/tf-a-stm32mp257f-phyflex-fpsc-g-som-m33td-optee-sdcard.stm32" --ondisk mmcblk --part-type 0x8301 --fixed-size 256K --align 17
part fsbla2 --source rawcopy --fstype=ext4 --fsoptions "noauto" --part-name=fsbla2 --sourceparams="file=/home/automatix/stm/b/build-openstlinuxweston-stm32mp25x-phyflex-libra-rdk-3-m33td/tmp-glibc/deploy/images/stm32mp25x-phyflex-libra-rdk-3-m33td/arm-trusted-firmware/tf-a-stm32mp257f-phyflex-fpsc-g-som-m33td-optee-sdcard.stm32" --ondisk mmcblk --part-type 0x8301 --fixed-size 256K

# Fip partition
part fip   --source rawcopy --fstype=ext4 --fsoptions "noauto" --part-name=fip --sourceparams="file=/home/automatix/stm/b/build-openstlinuxweston-stm32mp25x-phyflex-libra-rdk-3-m33td/tmp-glibc/deploy/images/stm32mp25x-phyflex-libra-rdk-3-m33td/fip/fip-stm32mp257f-phyflex-fpsc-g-som-m33td-optee-sdcard.bin" --ondisk mmcblk --part-type 0x8301 --fixed-size 4096K

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

# Bootfs
part bootfs --source rawcopy --sourceparams="file=st-image-bootfs-openstlinux-weston-stm32mp25x-phyflex-libra-rdk-3-m33td.bootfs.ext4" --ondisk mmcblk --fstype=ext4 --part-name bootfs --active --fixed-size 65536K
# Vendorfs
part vendorfs --source rawcopy --sourceparams="file=st-image-vendorfs-openstlinux-weston-stm32mp25x-phyflex-libra-rdk-3-m33td.vendorfs.ext4" --ondisk mmcblk --fstype=ext4 --part-name vendorfs --fixed-size 49152K
# Rootfs
part / --source rootfs --ondisk mmcblk --fstype=ext4 --part-name rootfs --fixed-size 926720K --uuid e91c4e10-16e6-4c0e-bd0e-77becf4a3582
# Userfs
part userfs --source rawcopy --sourceparams="file=st-image-userfs-openstlinux-weston-stm32mp25x-phyflex-libra-rdk-3-m33td.userfs.ext4" --ondisk mmcblk --fstype=ext4 --part-name userfs --fixed-size 131072K

bootloader --ptable gpt
