cancel
Showing results for 
Search instead for 
Did you mean: 

Recovering from a stucked bootloader (STM32MP151)

JSamo.2
Associate II

Hello,

my EVB is based on STM32MP151A SoC. The situation we are facing is that sometimes, the FSBL gets stuck and we would like to recover from it. i.e. reflash some Known Good FSBL.

 

As the FSBL in that situation is kinda functional, the device will not fallback to boot from Serial.

On the other hand, as the FSBL is itself stuck, any SW based solution to do so is irrelevant.

Ideally, we need some external mean to force a serial boot, either from the STCube programmer, or the JTAG, or the like.

 

As this seems like a very likely problem to appear during dev, there must be some classical solution to it, unfortunately, i couldn't find out a way from all the docs I could read.

 

Is that known to anybody ?

Thanks,

Jacques

1 ACCEPTED SOLUTION

Accepted Solutions

On dense PCB, you need only one single small test-point to set boot pins to serial (e.g. see AN5031 figure 15).

Otherwise, without having your Hw details, I see no other elegant solution.

I will anyway check with our experts and come back if I get something useful for you.

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.

View solution in original post

4 REPLIES 4
PatrickF
ST Employee

Hi,

Did you provided boot switches on your board ?

You should set BOOT[2:0]=0b000 to boot in Serial.

See following link:

https://wiki.st.com/stm32mpu/wiki/STM32MP15_ROM_code_overview#Boot_interface_selection

Alternatively, setting TAMP_REG[20] = 0xFF and issuing a NRST will tell the BootROM to start in Serial boot (USB DFU).

https://wiki.st.com/stm32mpu/wiki/STM32MP15_ROM_code_overview#Boot_device_selection_via_the_boot_pins_and_OTP

Hope this will help you.

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.
JSamo.2
Associate II

Hello,

Thanks for the quick answer !!

on a bigger EVB yes, we do have switches. However, i was looking for an "external" solution good also for denser EVB where there are no switches.

As for the alternative solution you propose, i think this cannot work (or I didn't get it correctly ...) as in our typical situation, the device is stucked at BL level, so there is no way a user could write TAMP_REG .... as the BL is stucked. Am I missing something here ?

Thanks

Jacques

On dense PCB, you need only one single small test-point to set boot pins to serial (e.g. see AN5031 figure 15).

Otherwise, without having your Hw details, I see no other elegant solution.

I will anyway check with our experts and come back if I get something useful for you.

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.
JSamo.2
Associate II

Thanks Patrick,

i will also share this info with the HW guys here.

Again,

Thanks for the support

Jacques