cancel
Showing results for 
Search instead for 
Did you mean: 

TF-A doesn't launch u-boot and MPU keeps rebooting

NBhat.1
Associate III

In our custom board which uses STM32MP153C, right when TF-A is about to launch u-boot it displays PSCI power domain map logs and MPU reboots with MPSYSRST reason. Any idea what is the root cause? We are using the device tree based on the dk2 sample device tree.

INFO:   ARM GICv2 driver initialized

INFO:   stm32mp HASH1 (9): Secure

INFO:   stm32mp RNG1 (15): Secure

INFO:   stm32mp USART1 (18): Secure

INFO:   ETZPC: SPI6 (4) could be non secure

INFO:   ETZPC: CRYP1 (9) could be non secure

INFO:   ETZPC: I2C6 (12) could be non secure

INFO:   SP_MIN: Initializing runtime services

INFO:   SP_MIN: Preparing exit to normal world

INFO:   PSCI Power Domain Map:

INFO:     Domain Node : Level 1, parent_node -1, State ON (0x0)

INFO:     Domain Node : Level 0, parent_node 0, State ON (0x0)

INFO:     CPU Node : MPID 0x0, parent_node 0, State ON (0x0)

INFO:     CPU Node : MPID 0xffffffff, parent_node 0, State OFF (0x2)

NOTICE: CPU: STM32MP153CAA Rev.B

NOTICE: Model: STMicroelectronics custom STM32CubeMX board

INFO:   Reset reason (0x54):

INFO:     System reset generated by MPU (MPSYSRST)

INFO:   PMIC version = 0x21

INFO:   Using SDMMC

INFO:     Instance 1

INFO:   Boot used partition fsbl1

NOTICE: BL2: v2.2-r1.0(debug):devtool-patched-dirty

NOTICE: BL2: Built : 13:11:26, Oct 10 2020

INFO:   Using crypto library 'stm32_crypto_lib'

INFO:   BL2: Doing platform setup

INFO:   RAM: DDR3-DDR3L 16bits 400000Khz

INFO:   Memory size = 0x10000000 (256 MB)

INFO:   BL2 runs SP_MIN setup

INFO:   BL2: Loading image id 4

INFO:   Loading image id=4 at address 0x2ffed000

INFO:   Image id=4 loaded: 0x2ffed000 - 0x2ffff000

INFO:   BL2: Loading image id 5

INFO:   Loading image id=5 at address 0xc0100000

INFO:   STM32 Image size : 851674

INFO:   Image id=5 loaded: 0xc0100000 - 0xc01cfeda

WARNING: Skip signature check (header option)

NOTICE: ROTPK is not deployed on platform. Skipping ROTPK verification.

NOTICE: BL2: Booting BL32

INFO:   Entry point address = 0x2ffed000

INFO:   SPSR = 0x1d3

NOTICE: SP_MIN: v2.2-r1.0(debug):devtool-patched-dirty

NOTICE: SP_MIN: Built : 13:11:26, Oct 10 2020

INFO:   ARM GICv2 driver initialized

INFO:   stm32mp HASH1 (9): Secure

INFO:   stm32mp RNG1 (15): Secure

INFO:   stm32mp USART1 (18): Secure

INFO:   ETZPC: SPI6 (4) could be non secure

INFO:   ETZPC: CRYP1 (9) could be non secure

INFO:   ETZPC: I2C6 (12) could be non secure

INFO:   SP_MIN: Initializing runtime services

INFO:   SP_MIN: Preparing exit to normal world

INFO:   PSCI Power Domain Map:

INFO:     Domain Node : Level 1, parent_node -1, State ON (0x0)

INFO:     Domain Node : Level 0, parent_node 0, State ON (0x0)

INFO:     CPU Node : MPID 0x0, parent_node 0, State ON (0x0)

INFO:     CPU Node : MPID 0xffffffff, parent_node 0, State OFF (0x2)

NOTICE: CPU: STM32MP153CAA Rev.B

NOTICE: Model: STMicroelectronics custom STM32CubeMX board

INFO:   Reset reason (0x54):

INFO:     System reset generated by MPU (MPSYSRST)

1 ACCEPTED SOLUTION

Accepted Solutions
Olivier GALLIEN
ST Employee

Hi @NBhat.1​ ,

As per analysed by our local US office FAE :

USART1 was configured in secure mode in TFA. After changing its entry in TF-A DT to NS, U-boot worked fine.

TFA DT change:

-DECPROT(STM32MP1_ETZPC_USART1_ID, DECPROT_S_RW, DECPROT_UNLOCK)

+DECPROT(STM32MP1_ETZPC_USART1_ID, DECPROT_NS_RW, DECPROT_UNLOCK)

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.

View solution in original post

3 REPLIES 3
Olivier GALLIEN
ST Employee

Hi @NBhat.1​ ,

As per analysed by our local US office FAE :

USART1 was configured in secure mode in TFA. After changing its entry in TF-A DT to NS, U-boot worked fine.

TFA DT change:

-DECPROT(STM32MP1_ETZPC_USART1_ID, DECPROT_S_RW, DECPROT_UNLOCK)

+DECPROT(STM32MP1_ETZPC_USART1_ID, DECPROT_NS_RW, DECPROT_UNLOCK)

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.

Hello,

I have run into the same issue with the latest ST Ecosystem 4.0.2 and I am not sure how to fix the flash loop.

My project is using the SiP from OctavoSystems (OSD32MP157c) and the DTS files are generated by STM32CubeMX 6.6.1. I have tried to set the USART1 in unprotected mode but it did not help. Can you please suggest to me what could cause this issue?

Bellow is flash log

NOTICE:  CPU: STM32MP157C?? Rev.Z
NOTICE:  Model: STMicroelectronics custom STM32CubeMX board - openstlinux-5.15-yocto-kirkstone-mp1-v22.06.15
INFO:    PMIC version = 0x21
INFO:    Product_below_2v5=0: HSLVEN protected by HW
INFO:    Reset reason (0x54):
INFO:      System reset generated by MPU (MPSYSRST)
INFO:    FCONF: Reading TB_FW firmware configuration file from: 0x2ffe2000
INFO:    FCONF: Reading firmware configuration information for: stm32mp_io
INFO:    Using USB
INFO:      Instance 2
INFO:    Boot used partition fsbl1
NOTICE:  BL2: v2.6-stm32mp1-r1.0(debug):v2.6-dirty
NOTICE:  BL2: Built : 13:14:26, Nov 23 2021
INFO:    BL2: Doing platform setup
INFO:    RAM: DDR3-DDR3L 16bits 533000kHz
INFO:    Memory size = 0x20000000 (512 MB)
INFO:    DFU USB START...
INFO:    phase ID :3, Manifestation 3 at c71186f3
INFO:    Send detach request
INFO:    Receive DFU Detach
INFO:    DFU USB STOP...
INFO:    BL2: Loading image id 31
INFO:    Loading image id=31 at address 0x2ffff000
INFO:    Image id=31 loaded: 0x2ffff000 - 0x2ffff226
INFO:    FCONF: Reading FW_CONFIG firmware configuration file from: 0x2ffff000
INFO:    FCONF: Reading firmware configuration information for: dyn_cfg
INFO:    FCONF: Reading firmware configuration information for: stm32mp1_firewall
INFO:    BL2: Loading image id 4
INFO:    Loading image id=4 at address 0x2ffc5000
INFO:    Image id=4 loaded: 0x2ffc5000 - 0x2ffd9820
INFO:    BL2: Skip loading image id 21
INFO:    BL2: Skip loading image id 22
INFO:    BL2: Loading image id 23
INFO:    Loading image id=23 at address 0xc0500000
INFO:    Image id=23 loaded: 0xc0500000 - 0xc0512d18
INFO:    BL2: Loading image id 26
INFO:    Loading image id=26 at address 0x2ffc0000
INFO:    Image id=26 loaded: 0x2ffc0000 - 0x2ffc3ffd
INFO:    BL2: Loading image id 5
INFO:    Loading image id=5 at address 0xc0100000
INFO:    Image id=5 loaded: 0xc0100000 - 0xc01ece98
NOTICE:  BL2: Booting BL32
INFO:    Entry point address = 0x2ffc5000
INFO:    SPSR = 0x1d3
NOTICE:  SP_MIN: v2.6-stm32mp1-r1.0(debug):v2.6-dirty
NOTICE:  SP_MIN: Built : 13:14:26, Nov 23 2021
INFO:    ARM GICv2 driver initialized
INFO:    ETZPC: UART1 (3) could be non secure
INFO:    ETZPC: SPI6 (4) could be non secure
INFO:    ETZPC: I2C6 (12) could be non secure
INFO:    SP_MIN: Initializing runtime services
INFO:    SP_MIN: Preparing exit to normal world
INFO:    PSCI Power Domain Map:
INFO:      Domain Node : Level 1, parent_node -1, State ON (0x0)
INFO:      Domain Node : Level 0, parent_node 0, State ON (0x0)
INFO:      CPU Node : MPID 0x0, parent_node 0, State ON (0x0)
INFO:      CPU Node : MPID 0xffffffff, parent_node 0, State OFF (0x2)

Current etzpc configuration for TF-A:

&etzpc{
	status = "okay";
	st,decprot = <
	/*"Non Secured" peripherals*/
	DECPROT(STM32MP1_ETZPC_ADC_ID, DECPROT_NS_RW, DECPROT_UNLOCK)
	DECPROT(STM32MP1_ETZPC_CRYP1_ID, DECPROT_NS_RW, DECPROT_UNLOCK)
	DECPROT(STM32MP1_ETZPC_DMA1_ID, DECPROT_NS_RW, DECPROT_UNLOCK)
	DECPROT(STM32MP1_ETZPC_DMA2_ID, DECPROT_NS_RW, DECPROT_UNLOCK)
	DECPROT(STM32MP1_ETZPC_DMAMUX_ID, DECPROT_NS_RW, DECPROT_UNLOCK)
	DECPROT(STM32MP1_ETZPC_HASH1_ID, DECPROT_NS_RW, DECPROT_UNLOCK)
	DECPROT(STM32MP1_ETZPC_I2C1_ID, DECPROT_NS_RW, DECPROT_UNLOCK)
	DECPROT(STM32MP1_ETZPC_I2C4_ID, DECPROT_NS_RW, DECPROT_UNLOCK)
	DECPROT(STM32MP1_ETZPC_RNG1_ID, DECPROT_NS_RW, DECPROT_UNLOCK)
	DECPROT(STM32MP1_ETZPC_SDMMC3_ID, DECPROT_NS_RW, DECPROT_UNLOCK)
	DECPROT(STM32MP1_ETZPC_DLYBSD3_ID, DECPROT_NS_RW, DECPROT_UNLOCK)
	DECPROT(STM32MP1_ETZPC_TIM8_ID, DECPROT_NS_RW, DECPROT_UNLOCK)
	DECPROT(STM32MP1_ETZPC_UART4_ID, DECPROT_NS_RW, DECPROT_UNLOCK)
	DECPROT(STM32MP1_ETZPC_UART5_ID, DECPROT_NS_RW, DECPROT_UNLOCK)
	DECPROT(STM32MP1_ETZPC_UART7_ID, DECPROT_NS_RW, DECPROT_UNLOCK)
	DECPROT(STM32MP1_ETZPC_UART8_ID, DECPROT_NS_RW, DECPROT_UNLOCK)
	DECPROT(STM32MP1_ETZPC_OTG_ID, DECPROT_NS_RW, DECPROT_UNLOCK)
	DECPROT(STM32MP1_ETZPC_VREFBUF_ID, DECPROT_NS_RW, DECPROT_UNLOCK)
	/*"NS_R S_W" peripherals*/
	DECPROT(STM32MP1_ETZPC_DDRCTRL_ID, DECPROT_NS_R_S_W, DECPROT_LOCK)
	DECPROT(STM32MP1_ETZPC_DDRPHYC_ID, DECPROT_NS_R_S_W, DECPROT_LOCK)
	/*"Secured" peripherals*/
	DECPROT(STM32MP1_ETZPC_STGENC_ID, DECPROT_S_RW, DECPROT_UNLOCK)
 
	/*Restriction: following IDs are not managed  - please to use User-Section if needed:
		  STM32MP1_ETZPC_SRAMx_ID  STM32MP1_ETZPC_RETRAM_ID  STM32MP1_ETZPC_BKPSRAM_ID*/
 
	/* USER CODE BEGIN etzpc_decprot */
		/*STM32CubeMX generates a basic and standard configuration for ETZPC.
		Additional device configurations can be added here if needed.
		"etzpc" node could be also overloaded in "addons" User-Section.*/
	/* USER CODE END etzpc_decprot */
	>;
 
	/* USER CODE BEGIN etzpc */
	/* USER CODE END etzpc */
};

Thanks for any help.

Best regards,

Tomas

Hi @Tom�? Ju?ena​ 

Please open a new post with complete context ( eg was it working on previous ecosystem )

Also for OSD32MP157c I can advise you first trying to contact Octavo if they have pushed a DV4.0 sample image and/or MX6.6.1 ioc which can be used as reference.

Thanks,

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.