Skip to main content
Associate II
May 22, 2026
Question

stm32mp157fad dts config and kernel start

  • May 22, 2026
  • 5 replies
  • 106 views

 

Hi~ My board gets stuck at the kernel stage during boot. I've referred to numerous related posts but failed to resolve the issue.
The boot file versions I use are OP-TEE 4.0, U-Boot 2023.10 and Linux 6.6.116.
The official device tree I referenced is stm32mp157f-ed1.
I have attached the boot logs, hardware schematic and device tree files. Please help analyze the root cause of the problem.

 

 

 

stm32f7-i2c i2c@5c002000: pinctrl_select_state_full: pinctrl_config_one: err=-19​
 

 

 

 

[ 1.741795] arm-scmi firmware:scmi: SCMI Protocol v2.0 'ST:' Firmware version 0x0
[ 1.748959] DEBUG: SCMI CLOCK PROBE STARTED! sdev name: scmi_dev.2
I/TC: SCMI-CLOCK: Reporting 34 clocks to Linux
I/TC: SCMI-FW: ETZPC ID 2 DENIED for Non-Secure world!
I/TC: SCMI-MSG: NS Request Clock ID 15 (iwdg1), ETZPC 2, Access=FAIL
I/TC: SCMI-CLK: ID 15 has no name/not found
I/TC: SCMI-FW: ETZPC ID 7 DENIED for Non-Secure world!
I/TC: SCMI-MSG: NS Request Clock ID 16 (rng1_k), ETZPC 7, Access=FAIL
I/TC: SCMI-CLK: ID 16 has no name/not found
[ 1.793499] scmi-clocks: probe of scmi_dev.2 failed with error -1050650364
[ 2.404687] clk: Disabling unused clocks
[ 2.407399] Warning: unable to open an initial console.
[ 2.416636] Freeing unused kernel image (initmem) memory: 2048K
[ 2.421697] Run /init as init process
[ 12.764703] platform 50000000.rcc: deferred probe pending
[ 12.768728] platform soc:pinctrl@50002000: deferred probe pending
[ 12.774753] platform soc:pinctrl@54004000: deferred probe pending
[ 12.780888] platform 48002000.dma-router: deferred probe pending
[ 12.786859] platform 48000000.dma-controller: deferred probe pending
[ 12.793189] platform 48001000.dma-controller: deferred probe pending
[ 12.799575] platform 58000000.dma-controller: deferred probe pending
[ 12.805904] platform 40010000.serial: deferred probe pending
[ 12.811539] platform 5c004000.rtc: deferred probe pending
[ 12.816959] platform 5c002000.i2c: deferred probe pending
[ 12.822322] platform 50028000.thermal: deferred probe pending
[ 12.828078] platform stm32-cpufreq: deferred probe pending
[ 12.833540] platform led: deferred probe pending
[ 12.838168] platform 50001000.pwr: deferred probe pending
[ 12.843540] amba 58005000.mmc: deferred probe pending
E/TC:1 Panic 'Watchdog' at core/drivers/stm32_iwdg.c:218 <stm32_iwdg_it_handler>
I/TC: Halting CPU 0
 
 
 

The log messages below are added by myself. RNG1 and IWDG1 can only be configured as secure peripherals in OP-TEE, so I believe these failure logs are not the cause of the boot stall.

 

 

 
I/TC: SCMI-CLOCK: Reporting 34 clocks to Linux
I/TC: SCMI-FW: ETZPC ID 2 DENIED for Non-Secure world!
I/TC: SCMI-MSG: NS Request Clock ID 15 (iwdg1), ETZPC 2, Access=FAIL
I/TC: SCMI-CLK: ID 15 has no name/not found
I/TC: SCMI-FW: ETZPC ID 7 DENIED for Non-Secure world!
I/TC: SCMI-MSG: NS Request Clock ID 16 (rng1_k), ETZPC 7, Access=FAIL
I/TC: SCMI-CLK: ID 16 has no name/not found​

5 replies

Associate II
May 22, 2026
[ 1.899644] scmi-clocks: probe of scmi_dev.2 failed with error -1050650364

I wonder if the above errors lead to the boot failure. This issue has troubled me for a month and a half. I would appreciate it greatly if you could offer your help.

Associate II
May 22, 2026

"I switched to another version of the SDK, the official 6.0.0. It seems to be stuck at the same place. Please see the attached log."

Associate II
May 23, 2026

GongMinghe_0-1779505779024.png

	pmic: stpmic@33 {
		compatible = "st,stpmic1";
		reg = <0x33>;
		interrupts-extended = <&exti 55 IRQ_TYPE_EDGE_FALLING>;
		interrupt-controller;
		#interrupt-cells = <2>;
		status = "okay";

		regulators {
			compatible = "st,stpmic1-regulators";
			buck1-supply = <&vin>;
			buck2-supply = <&vin>;
			buck3-supply = <&vin>;
			buck4-supply = <&vin>;
			ldo1-supply = <&v3v3>;
			ldo2-supply = <&v3v3>;
			ldo3-supply = <&vdd_ddr>;
			ldo4-supply = <&vin>;
			ldo5-supply = <&v3v3>;
			ldo6-supply = <&v3v3>;
			vref_ddr-supply = <&vin>;
			boost-supply = <&vin>;
			pwr_sw1-supply = <&bst_out>;
			pwr_sw2-supply = <&bst_out>;

			vddcore: buck1 {
				regulator-name = "vddcore";
				regulator-min-microvolt = <1200000>;
				regulator-max-microvolt = <1350000>;
				regulator-always-on;
				regulator-initial-mode = <0>;
				regulator-over-current-protection;
			};

			vdd_ddr: buck2 {
				regulator-name = "vdd_ddr";
				regulator-min-microvolt = <1350000>;
				regulator-max-microvolt = <1350000>;
				regulator-always-on;
				regulator-initial-mode = <0>;
				regulator-over-current-protection;
			};

			vdd: buck3 {
				regulator-name = "vdd";
				regulator-min-microvolt = <3300000>;
				regulator-max-microvolt = <3300000>;
				regulator-always-on;
				st,mask-reset;
				regulator-initial-mode = <0>;
				regulator-over-current-protection;
			};

			v3v3: buck4 {
				regulator-name = "v3v3";
				regulator-min-microvolt = <3300000>;
				regulator-max-microvolt = <3300000>;
				regulator-always-on;
				regulator-over-current-protection;
				regulator-initial-mode = <0>;
			};

			vdda: ldo1 {
				regulator-name = "vdda";
				regulator-min-microvolt = <2900000>;
				regulator-max-microvolt = <2900000>;
				interrupts = <IT_CURLIM_LDO1 0>;
			};

			v2v8: ldo2 {
				regulator-name = "v2v8";
				regulator-min-microvolt = <2800000>;
				regulator-max-microvolt = <2800000>;
				interrupts = <IT_CURLIM_LDO2 0>;
			};

			vtt_ddr: ldo3 {
				regulator-name = "vtt_ddr";
				regulator-min-microvolt = <500000>;
				regulator-max-microvolt = <750000>;
				regulator-always-on;
				regulator-over-current-protection;
			};

			vdd_usb: ldo4 {
				regulator-name = "vdd_usb";
				interrupts = <IT_CURLIM_LDO4 0>;
			};

			vdd_sd: ldo5 {
				regulator-name = "vdd_sd";
				regulator-min-microvolt = <2900000>;
				regulator-max-microvolt = <2900000>;
				interrupts = <IT_CURLIM_LDO5 0>;
				regulator-boot-on;
			};

			v1v8: ldo6 {
				regulator-name = "v1v8";
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <1800000>;
				interrupts = <IT_CURLIM_LDO6 0>;
			};

			vref_ddr: vref-ddr {
				regulator-name = "vref_ddr";
				regulator-always-on;
			};

			bst_out: boost {
				regulator-name = "bst_out";
				interrupts = <IT_OCP_BOOST 0>;
			};

			vbus_otg: pwr-sw1 {
				regulator-name = "vbus_otg";
				interrupts = <IT_OCP_OTG 0>;
			};

			vbus_sw: pwr-sw2 {
				regulator-name = "vbus_sw";
				interrupts = <IT_OCP_SWOUT 0>;
				regulator-active-discharge = <1>;
			};
		};

		onkey {
			compatible = "st,stpmic1-onkey";
			interrupts = <IT_PONKEY_F 0>, <IT_PONKEY_R 0>;
			interrupt-names = "onkey-falling", "onkey-rising";
			power-off-time-sec = <10>;
			status = "okay";
		};

		watchdog {
			compatible = "st,stpmic1-wdt";
			status = "disabled";
		};
	};

Do I need to modify the content of the PMIC node in my device tree?

Associate II
May 23, 2026

I open optee log level = 3, panic info :

D/TC:? 0 tee_ta_init_session_with_context:562 Re-open trusted service a8cfe406-d4f5-4a2e-9f8d-a25dc754c099
[ 2.642924] scmi_protocol scmi_dev.1: Enabled polling mode TX channel - prot_id:16
[ 2.649869] arm-scmi firmware:scmi: SCMI Notifications - Core Enabled.
[ 2.656291] Freeing initrd memory: 6400K
[ 2.657075] arm-scmi firmware:scmi: SCMI Protocol v2.0 'ST:' Firmware version 0x0
E/TC:1 0 Panic at core/arch/arm/plat-stm32mp1/shared_resources.c:142 <get_gpioz_nbpin>
I/TC: Halting CPU 0

 

then i change -> (#include "stm32mp15xxad-pinctrl.dtsi" to "stm32mp15xxaa-pinctrl.dtsi"),panic info :

[ 2.838500] stm32-ipcc 4c001000.mailbox: ipcc rev:1.0 enabled, 6 chans, proc 0
[ 2.845549] of_clk_hw_onecell_get: invalid index 21
[ 2.849160] stm32mp157-pinctrl soc:pinctrl@50002000: error -EINVAL: failed to get clk
[ 2.857035] stm32mp157-pinctrl: probe of soc:pinctrl@50002000 failed with error -22
[ 2.866205] stm32mp157-pinctrl soc:pinctrl@54004000: at least one GPIO bank is required
[ 2.872766] stm32mp157-pinctrl: probe of soc:pinctrl@54004000 failed with error -22
[ 2.885411] stm32-rproc 10000000.m4: wdg irq registered
[ 2.889646] remoteproc remoteproc0: m4 is available
[ 2.900537] clk: Disabling unused clocks

how to resolve this question?

Associate II
May 23, 2026
[ 2.872801] Unable to register uart4_k
[ 2.875128] stm32mp1_rcc 50000000.rcc: Can't register clk uart4_k: -17
[ 2.881687] stm32mp1 clock failed to initialize
[ 2.886187] stm32mp1_rcc: probe of 50000000.rcc failed with error -17
D/TC:? 0 scmi_msg_get_clock_handler:604 SCMI-CLK: Msg 0x7 on Chan 0
D/TC:? 0 scmi_msg_get_clock_handler:604 SCMI-CLK: Msg 0x7 on Chan 0
D/TC:? 0 scmi_msg_get_clock_handler:604 SCMI-CLK: Msg 0x6 on Chan 0
[ 2.929309] stm32_rtc 5c004000.rtc: registered as rtc0
[ 2.933067] stm32_rtc 5c004000.rtc: setting system clock to 2000-01-01T00:00:16 UTC (946684816)
[ 2.942184] stm32_rtc 5c004000.rtc: Date/Time must be initialized
[ 2.947879] stm32_rtc 5c004000.rtc: registered rev:1.2
[ 2.993162] clk: Disabling unused clocks
D/TC:? 0 scmi_msg_get_clock_handler:604 SCMI-CLK: Msg 0x7 on Chan 0
[ 3.003250] 8<--- cut here ---
[ 3.004848] Unable to handle kernel paging request at virtual address e8b76218 when read
[ 3.012939] [e8b76218] *pgd=c3138811, *pte=00000000, *ppte=00000000
[ 3.019209] Internal error: Oops: 7 [#1] SMP ARM
[ 3.023819] Modules linked in:
[ 3.026863] CPU: 1 PID: 1 Comm: swapper/0 Not tainted 6.6.116 #1
[ 3.032862] Hardware name: STM32 (Device Tree Support)
[ 3.037997] PC is at clk_gate_is_enabled+0xc/0x44
[ 3.042695] LR is at clk_core_is_enabled+0x40/0xec
[ 3.047481] pc : [<c09b0bc0>] lr : [<c09a839c>] psr: 60000093
[ 3.053746] sp : e8815ec0 ip : 00000000 fp : 00000000
[ 3.058966] r10: c1c578e4 r9 : c1bcf858 r8 : 00000000
[ 3.064187] r7 : 60000013 r6 : 00000000 r5 : 00000000 r4 : c3164f00
[ 3.070714] r3 : e8b76218 r2 : 00000000 r1 : c3162d40 r0 : c31651c0
[ 3.077240] Flags: nZCv IRQs off FIQs on Mode SVC_32 ISA ARM Segment none
[ 3.084465] Control: 10c5387d Table: c020406a DAC: 00000051
[ 3.090206] Register r0 information: slab kmalloc-128 start c3165180 pointer offset 64 size 128
[ 3.098907] Register r1 information: slab kmalloc-64 start c3162d40 pointer offset 0 size 64
[ 3.107348] Register r2 information: NULL pointer
[ 3.112046] Register r3 information: vmalloc memory
[ 3.116919] Register r4 information: slab kmalloc-192 start c3164f00 pointer offset 0 size 192
[ 3.125535] Register r5 information: NULL pointer
[ 3.130234] Register r6 information: NULL pointer
[ 3.134933] Register r7 information: non-paged memory
[ 3.139981] Register r8 information: NULL pointer
[ 3.144681] Register r9 information: non-slab/vmalloc memory
[ 3.150338] Register r10 information: non-slab/vmalloc memory
[ 3.156082] Register r11 information: NULL pointer
[ 3.160868] Register r12 information: NULL pointer
[ 3.165654] Process swapper/0 (pid: 1, stack limit = 0x084cd6bf)
[ 3.171658] Stack: (0xe8815ec0 to 0xe8816000)
[ 3.176018] 5ec0: c3164f00 00000000 00000000 c1b3e104 c3045e40 c3164f00 c20e0000 00000007
[ 3.184197] 5ee0: 00000000 c1b3e0b8 c3045e40 c1fd25b0 c20e0000 00000007 00000000 c1b3e290
[ 3.192378] 5f00: c1b3e224 c1f73ae0 c20e0000 c030248c c2260941 00000000 c2260958 00000000
[ 3.200556] 5f20: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[ 3.208736] 5f40: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 c861261a
[ 3.216917] 5f60: 00000192 c2260900 c1bcf838 00000007 c191f068 c1b013a0 00000007 00000007
[ 3.225097] 5f80: 00000000 c1b004d0 c1d04d00 c1263724 00000000 00000000 00000000 00000000
[ 3.233277] 5fa0: 00000000 c126373c 00000000 c03001ac 00000000 00000000 00000000 00000000
[ 3.241456] 5fc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[ 3.249637] 5fe0: 00000000 00000000 00000000 00000000 00000013 00000000 00000000 00000000
[ 3.257820] clk_gate_is_enabled from clk_core_is_enabled+0x40/0xec
[ 3.264078] clk_core_is_enabled from clk_disable_unused_subtree+0x74/0x194
[ 3.271039] clk_disable_unused_subtree from clk_disable_unused_subtree+0x28/0x194
[ 3.278607] clk_disable_unused_subtree from clk_disable_unused+0x6c/0x10c
[ 3.285481] clk_disable_unused from do_one_initcall+0x58/0x200
[ 3.291400] do_one_initcall from kernel_init_freeable+0x210/0x26c
[ 3.297578] kernel_init_freeable from kernel_init+0x18/0x130
[ 3.303322] kernel_init from ret_from_fork+0x14/0x28
[ 3.308367] Exception stack(0xe8815fb0 to 0xe8815ff8)
[ 3.313419] 5fa0: 00000000 00000000 00000000 00000000
[ 3.321601] 5fc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[ 3.329780] 5fe0: 00000000 00000000 00000000 00000000 00000013 00000000
[ 3.336397] Code: eafffff7 e5d02011 e590300c e3120004 (e5931000) 
[ 3.342483] ---[ end trace 0000000000000000 ]---
[ 3.347091] note: swapper/0[1] exited with irqs disabled
[ 3.352506] Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000000b
[ 3.360065] CPU0: stopping
[ 3.360078] CPU: 0 PID: 0 Comm: swapper/0 Tainted: G D 6.6.116 #1
[ 3.360092] Hardware name: STM32 (Device Tree Support)
[ 3.360103] unwind_backtrace from show_stack+0x10/0x14
[ 3.360140] show_stack from dump_stack_lvl+0x40/0x4c
[ 3.360170] dump_stack_lvl from do_handle_IPI+0x1b8/0x1ec
[ 3.360201] do_handle_IPI from ipi_handler+0x18/0x20
[ 3.360229] ipi_handler from handle_percpu_devid_irq+0x8c/0x1d8
[ 3.360265] handle_percpu_devid_irq from handle_irq_desc+0x50/0x80
[ 3.360297] handle_irq_desc from gic_handle_irq+0x88/0xa8
[ 3.360322] gic_handle_irq from generic_handle_arch_irq+0x34/0x44
[ 3.360352] generic_handle_arch_irq from __irq_svc+0x88/0xb0
[ 3.360379] Exception stack(0xc1d01f20 to 0xc1d01f68)
[ 3.360397] 1f20: 00109e0c 00000001 00000000 00000000 c1d09800 c1f74d04 c1d04d58 c1d04db4
[ 3.360412] 1f40: 00000000 00000000 c1bcfa60 00000000 c1f745d8 c1d01f70 c1261aec c1262eac
[ 3.360421] 1f60: 60000013 ffffffff
[ 3.360429] __irq_svc from default_idle_call+0x1c/0xb0
[ 3.360458] default_idle_call from do_idle+0x208/0x290
[ 3.360493] do_idle from cpu_startup_entry+0x28/0x2c
[ 3.360518] cpu_startup_entry from rest_init+0xac/0xb0
[ 3.360549] rest_init from arch_post_acpi_subsys_init+0x0/0x8
[ 3.477262] ---[ end Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000000b ]---