cancel
Showing results for 
Search instead for 
Did you mean: 

STM32U5A9 boot fail at low temperatures

NPato
Associate III

Hi,

We have a design that at normal temperatures runs fine (21C). If it goes below 0C it starts failing to boot.

The system has the Secure Boot Secure Firmware Update (SBSFU) system on it. We found that putting a delay at the start of the main() function in bl2_main.c seems to allow it to run. The delay needs to be about half a second.

Then as we reduce the temperature towards -40C we find we need to increase the delay to over a second to get it to work.

Does this sound familiar to anyone? Any ideas what could be going on?

Thanks

Nigel

14 REPLIES 14
Uwe Bonnes
Principal III

Do your crystals/oscillators have slow startup times?

Probably an external hardware issue; eg, clocks (as @Uwe Bonnes said), power supply, reset ...

STOne-32
ST Employee

Dear @NPato ,

I tag @CMYL to help , it seems with cold the timing of oscillators are changing , most probably HSI or Similar used inside the SBSFU .

Ciao

STOne-32

NPato
Associate III

Hi,

Thanks all.
We don't believe it's external, we've checked reset against Vdd coming up and Vdd is stable before reset starts rising. The HSE is not active yet, the SBSFU uses the MSI clock. If I connect a debugger using STM32CubeProgrammer (v2.16.0) and use the 'Fault Analyzer' it indicates both instruction and data access faults (IACCVIOL, DACCVIOL).

Could some setup of the MSI in SBSFU need changing?

Thanks

Nigel

Is external memory involved?

No, only using internal memory (FLASH and RAM)

Dear @NPato,

We need some information to share with experts:

  • Can you check the  status of RCC_CR_MSISRDY flag when it fails to boot  (set or reset) ? Also, if you are using ST HAL check whether HAL_RCC_OscConfig returns HAL_TIMEOUT ?
  • Are you using STM32U5A9J-DK board ?

 

Best Regards

NPato
Associate III

> Are you using STM32U5A9J-DK board

No, this is our own HW design, which runs fine above 0C.

Can you check the  status of RCC_CR_MSISRDY flag when it fails to boot 

When I connect the Stm32CubeProgrammer and use the registers page to look at RCC_CR it has value 0x0300F035, MSISON and MSISRDY bits are high.

> Also, if you are using ST HAL check whether HAL_RCC_OscConfig returns HAL_TIMEOUT ?

It's in the SBSFU code which I'm not overly familiar with. I'm not sure it's getting as far as running the SystemClock_Config() function. Has the ROM bootloader already brought up the MSI?


@NPato wrote:

> Are you using STM32U5A9J-DK board

No, this is our own HW design


Does the DK run OK at the same temperature?