Skip to main content
Visitor II
October 13, 2020
Solved

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

  • October 13, 2020
  • 2 replies
  • 1611 views

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)

    This topic has been closed for replies.
    Best answer by Olivier GALLIEN

    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

    2 replies

    Technical Moderator
    October 15, 2020

    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

    Graduate
    September 6, 2022

    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

    Technical Moderator
    September 6, 2022

    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