Ich boote von SD-Karte ins Linux und flashe dann die emmc-Partitionen wie folgt (beschrieben bis u-boot):
BL2 (bei mir tf-a-stm32mp257f-ev1-optee-emmc.stm32) wird nach mmcblk1boot0 und mmcblk1boot1 geflasht.
(1) Schreibschutz aufheben an den beiden boot Partitionen:
echo 0 > /sys/block/mmcblk1boot0/force_ro
echo 0 > /sys/block/mmcblk1boot1/force_ro
(2) Flash BL2:
dd if=tf-a-stm32mp257f-ev1-optee-emmc.stm32 of=/dev/mmcblk1boot0 conv=fdatasync
(gleiches Kommando nach /dev/mmcblk1boot1)
(3) Aktiviere boot0 Partition:
mmc bootpart enable 1 1 /dev/mmcblk1
Damit läuft BL2 schon hoch, ggfls. müssen noch die beiden metadata-Partitionen (/dev/mmcblk1p1 und ..p2) mit metadata.bin geflasht werden. Ich habe BL2 mit PSA_FWU_SUPPORT=0 kompiliert, dann entfällt das.
(4) Flashen von BL33 (u-boot) in die FIP-Partition:
dd if=fip-stm32mp257f-ev1-optee-emmc.bin of=/dev/mmcblk1p3 conv=fdatasync
(gleiches Kommando nach /dev/mmcblk1p4)
(5) Prüfe den Partitionstyp der beiden FIP-Partitionen auf mmcblk1p1, muss "19D5DF83-11B0-457B-BE2C-7559C13142A5 4FD84C93-54EF-463F-A7EF-AE25FF887087" (FIP_TYPE) sein. ggfls mit fdisk umstellen.
Damit sollte u-boot starten