Skip to main content
ZUl A.1
Associate II
March 17, 2023
Question

How to make TFA redundant and how to make ROM code select different partitions of FSBL?

  • March 17, 2023
  • 1 reply
  • 4269 views

In stm32mp157, I need two partitions for FSBL, and it is working correctly, but I want to make TFA redundant meaning I should be able to update the second partition of FSBL and then shift it on the second partition on restart.

I have made roofs redundant, but then I used environment variables inside U-BOOT to switch partitions. TFA (BL2) runs instantly after the ROM code, and I cannot change that.

Is there any solution that I can do here? What is the purpose of having two FSBL partitions if it is not for redundant TFA?

This topic has been closed for replies.

1 reply

Olivier GALLIEN
Technical Moderator
March 17, 2023

Hi @ZUl A.1​ ,

read https://wiki.st.com/stm32mpu/wiki/STM32_MPU_ROM_code_overview

FSBL redundancy is there just in case of flash memory corruption.

Number of versions depends of flash type.

But there's no mechanism to force bootrom to select one partition, and so FSBL is not part of Secure Firmware Update feature present from DV4.0.

Secure Firmware Update - stm32mpu

But note that there's no need to update BL2 starting from DV4 version.(v2.6-stm32mp-r1)

ST guarantee its compatibilty for all coming versions.

Olivier

Olivier GALLIEN 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.
ZUl A.1
ZUl A.1Author
Associate II
March 17, 2023

So what is the mechanism for flash memory corruption? If the FSBL1 is not working it will automatically goes to the FSBL2?

Olivier GALLIEN
Technical Moderator
March 17, 2023

Yes. The ROM code tries to load and launch the first copy. In the case of failure, it then tries to load the second copy.

Olivier

Olivier GALLIEN 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.