cancel
Showing results for 
Search instead for 
Did you mean: 

STM32MP135F eMMC boot partition

RomainP
Associate

Hello,

 

I am using a STM32MP135F on a custom board which is working well using SD Card (sdmmc1).

The SDCard is partitioned as: 

1) fsbl1

2) fsbl2

3) fip

4) bootfs

5) rootfs

From the SDcard system, I try to prepare the eMMC (4GB, sdmmc2).
I tried different configurations:
- mmcblk1p1boot0 (and boot1) contains fsbl1 (tf-a*.stm32), mmcblk1p1 contains fip => Could NOT find the fip partition! (although it contains the right GUID for fip partition 19...)

- mmcblk1p1boot0 contains fsbl1 (tf-a*.stm32) and fip (at offset 256KB => dd seek=512 bs=512) with 

STM32MP_EMMC_BOOT=1 => FIP magic failed (get_boot_part_fip_header: eMMC boot magic at offset 256K: 0a040001 / boot_mmc: Can't find FIP header on eMMC boot partition. Trying GPT. VERBOSE: MBR boot signature failure
VERBOSE: Failed to access image id=3 (-2)
ERROR: Failed to parse partition with image id = 3
ERROR: Could NOT find the fip partition!
- The MMC partconf is:
STM32MP> mmc partconf 1      
EXT_CSD[179], PARTITION_CONFIG:
BOOT_ACK: 0x1
BOOT_PARTITION_ENABLE: 0x1 (boot0)
PARTITION_ACCESS: 0x0 (user)

The BOOT_ACK is often erase and I have to renable it manually via u-boot on SDCard.
When I read back boot0 and boot1 at offset, the expected magic is present. Do you have an eMMC mapping for simple boot (the update & secure boot will be implemented later) to boot from eMMC successfully?

For information, please find the arguments for TFA:

EXTRA_OEMAKE:append:pn-trusted-firmware-a = " \
    ARCH=aarch32 ARM_ARCH_MAJOR=7 \
    AARCH32_SP=optee \
    DTB_FILE_NAME=myb-stm32mp135x-512m.dtb \
    STM32MP1_OPTEE_IN_SYSRAM=0 \
    BL32=${DEPLOY_DIR_IMAGE}/optee/tee-header_v2.bin \
    BL32_EXTRA1=${DEPLOY_DIR_IMAGE}/optee/tee-pager_v2.bin \
    BL32_EXTRA2=${DEPLOY_DIR_IMAGE}/optee/tee-pageable_v2.bin \
    BL33_CFG=${DEPLOY_DIR_IMAGE}/u-boot.dtb \
    STM32MP_EMMC=1 \
    STM32MP_SDMMC=1 \
    STM32MP_EMMC_BOOT=1 \
    BL33=${DEPLOY_DIR_IMAGE}/u-boot-nodtb.bin \
    STM32MP13=1 \
    STM32MP15=0 \
    LOG_LEVEL=50 \
"

 

Thank you for your help and I wish you a happy new year! 

2 REPLIES 2
PatrickF
ST Employee

Hi @RomainP 

Not surer it could help, but please have a look to:

https://wiki.st.com/stm32mpu/wiki/STM32_MPU_ROM_code_overview#Boot_from_e-E2-80-A2MMC-E2-84-A2

https://wiki.st.com/stm32mpu/wiki/STM32_MPU_Flash_mapping#e-E2-80-A2MMC_memory_mapping

https://wiki.st.com/stm32mpu/wiki/STM32CubeProgrammer_flashlayout#e-E2-80-A2MMC

 

Regards

In order to give better visibility on the answered topics, please click on 'Accept as Solution' on the reply which solved your issue or answered your question.
Tip of the day: Try Sidekick STM32 AI agent, see here
theeuwke
Associate

I think I have the same issue. I think the problem is the placement of image 2; BL32 aka u-boot. My current solution is to rebuilt the fib manually with --align 2048. I don't see any alignment options that can be set via the environment.