cancel
Showing results for 
Search instead for 
Did you mean: 

STM32MP157F - Custom board Panic in TF-A "fdt_counter_get:146"

Guilam
Associate II

Hello,

I am trying to bring up my custom board with STM32MP157F largely inspired by STM32MP157F-DK2 board but with a dual RAM configuration.

I am having a Panic error after ROM boot which states in the line before an error related to "fdt_counter_get", a function that I have no idea what it does and I cannot seem to find where it comes from, anywhere on internet or in my files.

I have looked at the usual troobleshooting guidelines and I have no difference with discovery kit devictree configuration regarding HSE (oscillator bypass), I2C4 and PMIC (although I removed some unused configuration for HDMI or audio which I do not have in my board).

Here are the logs I get on UART console during boot. Thank you for your help.

NOTICE: CPU: STM32MP157FAA Rev.Z
NOTICE: Model: STMicroelectronics STM32MP157F-EV1 STM32CubeMX board - openstlinux-6.1-yocto-mickledore-mp1-v23.06.21
INFO: PMIC version = 0x21
INFO: Reset reason (0x15):
INFO: Power-on Reset (rst_por)
INFO: FCONF: Reading TB_FW firmware configuration file from: 0x2ffe2000
INFO: FCONF: Reading firmware configuration information for: stm32mp_io
INFO: Using SDMMC
INFO: Instance 1
INFO: Boot used partition fsbl1
NOTICE: BL2: v2.8-stm32mp1-r1.0(debug):lts-v2.8.6-dirty(ff0bd5f9)
NOTICE: BL2: Built : 17:57:15, Apr 21 2023
INFO: BL2: Doing platform setup
INFO: RAM: DDR3-1066/888 bin G 2x4Gb 533MHz v1.45
INFO: Memory size = 0x40000000 (1024 MB)
INFO: BL2: Loading image id 1
INFO: Loading image id=1 at address 0x2ffff000
INFO: Image id=1 loaded: 0x2ffff000 - 0x2ffff1ea
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 0xfe000000
INFO: Image id=4 loaded: 0xfe000000 - 0xfe00001c
INFO: OPTEE ep=0xfe000000
INFO: OPTEE header info:
INFO: magic=0x4554504f
INFO: version=0x2
INFO: arch=0x0
INFO: flags=0x0
INFO: nb_images=0x1
INFO: BL2: Loading image id 8
INFO: Loading image id=8 at address 0xfe000000
INFO: Image id=8 loaded: 0xfe000000 - 0xfe031bb8
INFO: BL2: Skip loading image id 9
INFO: BL2: Loading image id 2
INFO: Loading image id=2 at address 0xc0500000
INFO: Image id=2 loaded: 0xc0500000 - 0xc0512168
INFO: BL2: Skip loading image id 16
INFO: BL2: Loading image id 5
INFO: Loading image id=5 at address 0xc0100000
INFO: Image id=5 loaded: 0xc0100000 - 0xc01f5d3c
NOTICE: BL2: Booting BL32
INFO: Entry point address = 0xfe000000
INFO: SPSR = 0x1d3
I/TC: Early console on UART#4
I/TC:
I/TC: Embedded DTB found
I/TC: OP-TEE version: 3.19.0-dev (gcc version 12.2.0 (GCC)) #1 Fri Oct 14 19:00:05 UTC 2022 arm
I/TC: WARNING: This OP-TEE configuration might be insecure!
I/TC: WARNING: Please check https://optee.readthedocs.io/en/latest/architecture/porting_guidelines.html
I/TC: Primary CPU initializing
I/TC: Platform stm32mp1: flavor PLATFORM_FLAVOR - DT stm32mp157f-evalboard-mx.dts
I/TC: DTB enables console (non-secure)
E/TC:0 0 fdt_counter_get:146 No counter device registered for phandle: 10
E/TC:0 0 Panic

1 ACCEPTED SOLUTION

Accepted Solutions

So I finally find the solution...

There is a node in OPTEE device tree that I disabled in CubeMX and should not have.

 
&timers15{
status = "okay";
 
/* USER CODE BEGIN timers15 */
 
counter{
status = "okay";
};
/* USER CODE END timers15 */
};
 
This node is necessary and trigger the fdt_counter_get error if deleted. The function probably searches for the counter{status="okay";} for reasons linked to Optee config... But I do not know much more about it.

View solution in original post

2 REPLIES 2
Guilam
Associate II

The only thing I find weird in my output (other than the error) is that the building date is indicated as April 21, 2023. My host server for building images is configured at local time so it seems like some files used to generate my .wic images does not come from my own build.

So I finally find the solution...

There is a node in OPTEE device tree that I disabled in CubeMX and should not have.

 
&timers15{
status = "okay";
 
/* USER CODE BEGIN timers15 */
 
counter{
status = "okay";
};
/* USER CODE END timers15 */
};
 
This node is necessary and trigger the fdt_counter_get error if deleted. The function probably searches for the counter{status="okay";} for reasons linked to Optee config... But I do not know much more about it.