Skip to main content
MSatish
Associate II
August 3, 2021
Solved

In STM32L552 Nucleo-144, unable to load non secure code when call happened from secure to non secure.

  • August 3, 2021
  • 2 replies
  • 897 views

I am working on STM32L552 Nucle0-144 board with Trustzone enabled.

Secure code starts from 0x0C000000 and non secure code vector table located at 0x08040000. After completing the initializations in secure code I am calling non secure reset handler by loading the address from 0x08040004. Here I observed in disassembly that non secure Vector table contents are all 0's (Zeros), hence not able to load the non secure initialization code. Please guide me to resolve this

This topic has been closed for replies.
Best answer by Bubbles

Hi @MSatish​ ,

that's not how the TZ is supposed to work.

Look at AN5347, specifically chapter 5.2 on why the access is blocked.

J

2 replies

Bubbles
BubblesBest answer
ST Employee
August 3, 2021

Hi @MSatish​ ,

that's not how the TZ is supposed to work.

Look at AN5347, specifically chapter 5.2 on why the access is blocked.

J

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.
MSatish
MSatishAuthor
Associate II
August 3, 2021

Hi @JHOUD​ , thanks for your reply.

Now I learnt that the area I am considering (0x08040000 - 0x0807ffff) as a non secure is actually configured as secure in secure area2 Watermark Registers(SECWM2_PSTRT, SECWM2_PEND). Now I have modified this area to out of the non secure code present. Now non secure code is executing as expected. Your recommendation is really helped me. Thanks a ton :)