cancel
Showing results for 
Search instead for 
Did you mean: 

OPTEE panic error: E/TC:0 0 print_probe_list:411 |- Driver stm32-cpu-opp on node cpu0-opp-table failed

xchen
Associate II

Hi, 

I have customized a board using STM32MP157DAC referencing the mp157d-disco board hardware design. I have discrete power supply. I deleted the PMIC related nodes is DT and add fixed regulator in the root. The TF-A boot is ok, but the optee panic with the error message below:

NOTICE: CPU: STM32MP157DAC Rev.Z
NOTICE: Model: STMicroelectronics STM32MP157D-DK1 STM32CubeMX board - openstlinux-6.1-yocto-mickledore-mpu-v24.06.26
WARNING: VDD unknown
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: FCONF: Reading firmware configuration information for: stm32mp_fuse
INFO: Using USB
INFO: Instance 2
INFO: Boot used partition fsbl1
NOTICE: BL2: v2.8-stm32mp1-r2.0(debug):lts-v2.8.15-dirty(567af710)
NOTICE: BL2: Built : 00:51:33, Jan 26 2024
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 c7156ffa
INFO: Send detach request
INFO: Receive DFU Detach
INFO: DFU USB STOP...
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 0xde000000
INFO: Image id=4 loaded: 0xde000000 - 0xde00001c
INFO: OPTEE ep=0xde000000
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 0xde000000
INFO: Image id=8 loaded: 0xde000000 - 0xde02ee08
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 - 0xc0513230
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 - 0xc0214c94
NOTICE: BL2: Booting BL32
INFO: Entry point address = 0xde000000
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.3.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: Override the OTP 18: 0x7b0c0000 to 0x7b0c01e0
I/TC: WARNING: Embeds insecure stm32mp_provisioning driver
E/TC:0 0 probe_driver_node:458 Failed to probe stm32-cpu-opp on node cpu0-opp-table: 0xffff0000
E/TC:0 0 print_probe_list:411 |- Driver stm32-cpu-opp on node cpu0-opp-table failed
I/TC: Platform stm32mp1: flavor PLATFORM_FLAVOR - DT stm32mp157d-custom-157d-mx.dts
I/TC: OP-TEE ST profile: system_services
I/TC: DTB enables console (non-secure)
E/TC:0 0 probe_dt_drivers:795 Probe sequence result: 0
E/TC:0 0 print_probe_list:411 |- Driver stm32-cpu-opp on node cpu0-opp-table failed
E/TC:0 0 Panic

I enclosed my dts file.

Many thanks for help.

 

1 ACCEPTED SOLUTION

Accepted Solutions

@xchen, please try it. Change the values inside the following regulator to both on 1350000. This one simple change solved my issue. If not, please share your clock configuration or an ioc file.

 

vddcore: vddcore {
		compatible = "regulator-fixed";
		regulator-name = "vddcore";
		regulator-min-microvolt = <1200000>;
		regulator-max-microvolt = <1350000>;
		regulator-always-on;
	};

 

What MPU frequency do you have in the clock configuration? The configuration below works in my case. I set the MPU frequency to 800 Mhz.

 

vddcore: regulator-vddcore {
	compatible = "regulator-fixed";
	regulator-name = "vddcore";
	regulator-min-microvolt = <1350000>;
	regulator-max-microvolt = <1350000>;
	regulator-always-on;
};

&cpu0 {
	cpu-frequency = <800000000>;
	cpu-supply = <&vddcore>;
};

 

 

View solution in original post

8 REPLIES 8
rgruberski
Associate III

Hi @xchen Have you solved this issue? I have precisely the same results.

no, I have tried solutions with similar error but still not working.

Good luck! Let me know if you solve it. I will let you know also.

@xchen I have an idea of how you can solve your issue. First, you have to enable debug logs in the OPTEE Makefile. My problem was caused by the wrong clock configuration and CPU frequency, and the debug log described the reason in detail.

I couldn't enable debugging by command parameters, so I had to make a few changes to OPTEE's Makefile, specifically the EXTRA_OEMAKE variable.

CFG_TEE_CORE_LOG_LEVEL=4 CFG_TEE_CORE_DEBUG=y

Please enable debug and share the entire boot log. I will try to help based on my own experience :) 

@rgruberski , thanks for help.

I have the detailed log info. I think the error occurred here, it seems like a discret power node problem:

D/TC:0 0 print_probe_list:403 `- Probe list end
D/TC:0 0 print_probe_list:409 Failed list: 0 elements
D/TC:0 0 print_probe_list:414 `- Failed list end
D/TC:0 0 probe_driver_node:443 element: simple-bus on node soc initialized
F/TC:0 0 probe_driver_node:436 Probing stm32-cpu-opp on node cpu0-opp-table
F/TC:0 0 get_supply_phandle:104 cpu: supplied by 4
D/TC:0 0 stm32_bsec_find_otp_in_nvmem_layout:644 nvmem part_number_otp = 1: 1 bit offset: 0, length: 8
D/TC:0 0 get_opp_freqvolt_from_dt_subnode:1426 Invalid opp-supported-hw 0x1
D/TC:0 0 stm32_cpu_opp_is_supported:557 Not supported opp-supported-hw 0x1
D/TC:0 0 stm32_cpu_opp_get_dt_subnode:622 Found OPP 0 (400000kHz/1200mV) from DT
D/TC:0 0 stm32_cpu_opp_is_supported:557 Not supported opp-supported-hw 0x1
D/TC:0 0 stm32_cpu_opp_get_dt_subnode:622 Found OPP 1 (800000kHz/1350mV) from DT
F/TC:0 0 regulator_set_voltage:290 vddcore 1350mV
E/TC:0 0 probe_driver_node:458 Failed to probe stm32-cpu-opp on node cpu0-opp-table: 0xffff0009
F/TC:0 0 process_probe_list:550 Probe loop 2 after 0 for deferral(s)
D/TC:0 0 print_probe_list:397 Probe list: 9 elements
D/TC:0 0 print_probe_list:399 |- Driver stm32-timer probes on node timer@44006000
D/TC:0 0 print_probe_list:399 |- Driver stm32mp15_rstctrl probes on node rcc@50000000
D/TC:0 0 print_probe_list:399 |- Driver stm32mp1-pwr-regu probes on node pwr@50001000
D/TC:0 0 print_probe_list:399 |- Driver stm32-rtc probes on node rtc@5c004000
D/TC:0 0 print_probe_list:399 |- Driver stm32mp1-tzc400 probes on node tzc@5c006000
D/TC:0 0 print_probe_list:399 |- Driver stm32-tamp probes on node tamp@5c00a000
D/TC:0 0 print_probe_list:399 |- Driver stm32_gpio probes on node pin-controller@50002000
D/TC:0 0 print_probe_list:399 |- Driver stm32_gpio probes on node pin-controller-z@54004000
D/TC:0 0 print_probe_list:399 |- Driver stm32-etzpc probes on node etzpc@5c007000
D/TC:0 0 print_probe_list:403 `- Probe list end
D/TC:0 0 print_probe_list:409 Failed list: 1 elements
E/TC:0 0 print_probe_list:411 |- Driver stm32-cpu-opp on node cpu0-opp-table failed
D/TC:0 0 print_probe_list:414 `- Failed list end

 

Do you have idea how to fix it? I enclosed my optee device tree and the entire boot log.

Thanks

@xchen, please try it. Change the values inside the following regulator to both on 1350000. This one simple change solved my issue. If not, please share your clock configuration or an ioc file.

 

vddcore: vddcore {
		compatible = "regulator-fixed";
		regulator-name = "vddcore";
		regulator-min-microvolt = <1200000>;
		regulator-max-microvolt = <1350000>;
		regulator-always-on;
	};

 

What MPU frequency do you have in the clock configuration? The configuration below works in my case. I set the MPU frequency to 800 Mhz.

 

vddcore: regulator-vddcore {
	compatible = "regulator-fixed";
	regulator-name = "vddcore";
	regulator-min-microvolt = <1350000>;
	regulator-max-microvolt = <1350000>;
	regulator-always-on;
};

&cpu0 {
	cpu-frequency = <800000000>;
	cpu-supply = <&vddcore>;
};

 

 

Thank you mate, this has resolved the issue.

@xchen You're welcome! I am so glad it helped. Please let me know if you will have any issues. I almost ran my custom board :)