Skip to main content
Associate II
Nov 11, 2025 8:09 AM UTC
Question

"Forced system reset PSCI" and write loop during TF-A/OPTEE boot on custom STM32MP157DAA1 board

Hello ,

I have developed a custom board using the STM32MP157DAA1. Its design is very similar to the STM32MP157-DK2.

I am trying to build and boot TF-A and OPTEE. However, I am encountering an "I/TC: Forced system reset PSCI" error, which causes the system to enter a programming loop.

Below is the CubeProgrammer log during this loop state:

16:33:55 : USB speed   : High Speed (480MBit/s)
16:33:55 : Manuf. ID   : STMicroelectronics
16:33:55 : Product ID  : DFU in HS Mode @Device ID /0x500, @Revision ID /0x0000
16:33:55 : SN          : 002700303532510837363531
16:33:55 : DFU protocol: 1.1
16:33:55 : Board       : --
16:33:55 : Device ID   : 0x0500
16:33:56 : Start Embedded Flashing service
16:33:56 : Opening and parsing file: tf-a-stm32mp157d-a_cv2-mx-optee-programmer-usb.stm32
16:33:56 : Memory Programming ...
16:33:56 :   File          : tf-a-stm32mp157d-a_cv2-mx-optee-programmer-usb.stm32
16:33:56 :   Size          : 220.41 KB 
16:33:56 :   Partition ID  : 0x01 
16:33:56 : Download in Progress:
16:33:58 : File download complete
16:33:58 : Time elapsed during download operation: 00:00:01.830
16:33:58 : RUNNING Program ... 
16:33:58 :   PartID:      :0x01 
16:33:58 : Start operation done successfully at partition 0x01
16:33:58 : Opening and parsing file: fip-stm32mp157d-a_cv2-mx-optee-programmer-usb.bin
16:33:58 : Memory Programming ...
16:33:58 :   File          : fip-stm32mp157d-a_cv2-mx-optee-programmer-usb.bin
16:33:58 :   Size          : 1.82 MB 
16:33:58 :   Partition ID  : 0x03 
16:33:58 : Download in Progress:
16:34:00 : File download complete
16:34:00 : Time elapsed during download operation: 00:00:02.113
16:34:00 : RUNNING Program ... 
16:34:00 :   PartID:      :0x03 
16:34:01 : Reconnecting the device ...
16:34:07 : USB speed   : High Speed (480MBit/s)
16:34:07 : Manuf. ID   : STMicroelectronics
16:34:07 : Product ID  : DFU in HS Mode @Device ID /0x500, @Revision ID /0x0000
16:34:07 : SN          : 002700303532510837363531
16:34:07 : DFU protocol: 1.1
16:34:07 : Board       : --
16:34:07 : Device ID   : 0x0500
16:34:07 : Device name : STM32MP157DAA Rev.Z
16:34:07 : Device type : 
16:34:07 : Device CPU  : 
16:34:07 : Start operation done successfully at partition 0x03
16:34:07 : Opening and parsing file: tf-a-stm32mp157d-a_cv2-mx-optee-programmer-usb.stm32
16:34:07 : Memory Programming ...
16:34:07 :   File          : tf-a-stm32mp157d-a_cv2-mx-optee-programmer-usb.stm32
16:34:07 :   Size          : 220.41 KB 
16:34:07 :   Partition ID  : 0x01 
16:34:07 : Download in Progress:
16:34:08 : aborting on going operation...
16:34:08 : Operation canceled
16:34:08 : Error: failed to download  Sector[0]
16:34:08 : Error: failed to download the File
16:34:08 : Error: Download partition 0x01 failed
16:34:08 : Error: TSV flashing service failed
16:34:08 : Disconnected from device.

I am attaching the TF-A Device Tree (DT), OPTEE DT, and the debug log from the flashing attempt.

Could you please help me identify the potential cause of this issue?

Thank you for your assistance.

3 replies

GatienC
ST Employee
Nov 12, 2025 8:53 AM UTC

Hello,

Let's put aside the Warning traces for the secure config (BTW, GPIOZ bank pins can be secured, and you can describe the pinctrl for the H pins using the STM32_PINMUX_NSEC() macro).

This looks like an early U-Boot crash, resetting the platform, can you try to enable early log in U-Boot?

Regards,

Gatien

Associate II
Nov 13, 2025 7:21 AM UTC

Hello Gatien,

I was able to boot successfully by modifying the U-Boot device tree. Sorry for the trouble.

By the way, how can I fix these Warning traces you mentioned?

Regards,

GatienC
ST Employee
Nov 13, 2025 8:34 AM UTC

Hello,

Cool. By securing the pins that can be secured(GPIOZ bank) and declaring the pins that cannot be secured with STM32_PINMUX_NSEC() instead of STM32_PINMUX(), as mentioned above :)

Regards,

Gatien