[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20251112-upstream_uboot_properties-v1-6-0b19133710e3@foss.st.com>
Date: Wed, 12 Nov 2025 11:46:48 +0100
From: Patrice Chotard <patrice.chotard@...s.st.com>
To: Rob Herring <robh@...nel.org>, Krzysztof Kozlowski <krzk+dt@...nel.org>,
Conor Dooley <conor+dt@...nel.org>,
Maxime Coquelin
<mcoquelin.stm32@...il.com>,
Alexandre Torgue <alexandre.torgue@...s.st.com>,
Patrick Delaunay <patrick.delaunay@...s.st.com>
CC: <devicetree@...r.kernel.org>, <linux-stm32@...md-mailman.stormreply.com>,
<linux-arm-kernel@...ts.infradead.org>, <linux-kernel@...r.kernel.org>,
Patrice Chotard <patrice.chotard@...s.st.com>
Subject: [PATCH 6/6] arm64: dts: st: Add boot phase tags for
STMicroelectronics mp2 boards
The bootph-all flag was introduced in dt-schema
(dtschema/schemas/bootph.yaml) to define node usage across
different boot phases.
To ensure SD boot, timer, gpio, syscfg, clock and uart nodes need to be
present in all boot stages, so add missing bootph-all phase flag
to these nodes to support SD boot.
Signed-off-by: Patrice Chotard <patrice.chotard@...s.st.com>
---
arch/arm64/boot/dts/st/stm32mp211.dtsi | 7 +++++++
arch/arm64/boot/dts/st/stm32mp215f-dk.dts | 1 +
arch/arm64/boot/dts/st/stm32mp231.dtsi | 22 ++++++++++++++++++++++
arch/arm64/boot/dts/st/stm32mp235f-dk.dts | 11 +++++++++++
arch/arm64/boot/dts/st/stm32mp251.dtsi | 27 ++++++++++++++++++++++++++-
arch/arm64/boot/dts/st/stm32mp257f-dk.dts | 11 +++++++++++
arch/arm64/boot/dts/st/stm32mp257f-ev1.dts | 11 +++++++++++
7 files changed, 89 insertions(+), 1 deletion(-)
diff --git a/arch/arm64/boot/dts/st/stm32mp211.dtsi b/arch/arm64/boot/dts/st/stm32mp211.dtsi
index bf888d60cd4f..81b6a71fc032 100644
--- a/arch/arm64/boot/dts/st/stm32mp211.dtsi
+++ b/arch/arm64/boot/dts/st/stm32mp211.dtsi
@@ -50,6 +50,7 @@ firmware {
optee {
compatible = "linaro,optee-tz";
method = "smc";
+ bootph-all;
};
scmi: scmi {
@@ -57,15 +58,18 @@ scmi: scmi {
#address-cells = <1>;
#size-cells = <0>;
linaro,optee-channel-id = <0>;
+ bootph-all;
scmi_clk: protocol@14 {
reg = <0x14>;
#clock-cells = <1>;
+ bootph-all;
};
scmi_reset: protocol@16 {
reg = <0x16>;
#reset-cells = <1>;
+ bootph-all;
};
};
};
@@ -73,6 +77,7 @@ scmi_reset: protocol@16 {
psci {
compatible = "arm,psci-1.0";
method = "smc";
+ bootph-all;
};
timer {
@@ -92,6 +97,7 @@ soc@0 {
interrupt-parent = <&intc>;
#address-cells = <1>;
#size-cells = <2>;
+ bootph-all;
rifsc: bus@...80000 {
compatible = "simple-bus";
@@ -100,6 +106,7 @@ rifsc: bus@...80000 {
dma-ranges;
#address-cells = <1>;
#size-cells = <2>;
+ bootph-all;
usart2: serial@...e0000 {
compatible = "st,stm32h7-uart";
diff --git a/arch/arm64/boot/dts/st/stm32mp215f-dk.dts b/arch/arm64/boot/dts/st/stm32mp215f-dk.dts
index 7bdaeaa5ab0f..bc366639744a 100644
--- a/arch/arm64/boot/dts/st/stm32mp215f-dk.dts
+++ b/arch/arm64/boot/dts/st/stm32mp215f-dk.dts
@@ -45,5 +45,6 @@ &arm_wdt {
};
&usart2 {
+ bootph-all;
status = "okay";
};
diff --git a/arch/arm64/boot/dts/st/stm32mp231.dtsi b/arch/arm64/boot/dts/st/stm32mp231.dtsi
index 88e214d395ab..075b4419d3ae 100644
--- a/arch/arm64/boot/dts/st/stm32mp231.dtsi
+++ b/arch/arm64/boot/dts/st/stm32mp231.dtsi
@@ -57,6 +57,7 @@ optee: optee {
method = "smc";
interrupt-parent = <&intc>;
interrupts = <GIC_PPI 15 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_LOW)>;
+ bootph-all;
};
scmi {
@@ -64,15 +65,18 @@ scmi {
#address-cells = <1>;
#size-cells = <0>;
linaro,optee-channel-id = <0>;
+ bootph-all;
scmi_clk: protocol@14 {
reg = <0x14>;
#clock-cells = <1>;
+ bootph-all;
};
scmi_reset: protocol@16 {
reg = <0x16>;
#reset-cells = <1>;
+ bootph-all;
};
scmi_voltd: protocol@17 {
@@ -114,6 +118,7 @@ scmi_vdda18adc: regulator@7 {
psci {
compatible = "arm,psci-1.0";
method = "smc";
+ bootph-all;
cpu0_pd: power-domain-cpu0 {
#power-domain-cells = <0>;
@@ -146,6 +151,7 @@ soc@0 {
interrupt-parent = <&intc>;
#address-cells = <1>;
#size-cells = <1>;
+ bootph-all;
hpdma: dma-controller@...00000 {
compatible = "st,stm32mp25-dma3";
@@ -223,6 +229,7 @@ rifsc: bus@...80000 {
#address-cells = <1>;
#size-cells = <1>;
#access-controller-cells = <1>;
+ bootph-all;
i2s2: audio-controller@...b0000 {
compatible = "st,stm32mp25-i2s";
@@ -760,6 +767,7 @@ bsec: efuse@...00000 {
reg = <0x44000000 0x1000>;
#address-cells = <1>;
#size-cells = <1>;
+ bootph-all;
part_number_otp@24 {
reg = <0x24 0x4>;
@@ -857,6 +865,7 @@ rcc: clock-controller@...00000 {
<&scmi_clk CK_SCMI_PLL3>,
<&clk_dsi_txbyte>;
access-controllers = <&rifsc 156>;
+ bootph-all;
};
exti1: interrupt-controller@...20000 {
@@ -955,6 +964,7 @@ exti1: interrupt-controller@...20000 {
syscfg: syscon@...30000 {
compatible = "st,stm32mp23-syscfg", "syscon";
reg = <0x44230000 0x10000>;
+ bootph-all;
};
pinctrl: pinctrl@...40000 {
@@ -965,6 +975,7 @@ pinctrl: pinctrl@...40000 {
interrupt-parent = <&exti1>;
st,syscfg = <&exti1 0x60 0xff>;
pins-are-numbered;
+ bootph-all;
gpioa: gpio@...40000 {
reg = <0x0 0x400>;
@@ -974,6 +985,7 @@ gpioa: gpio@...40000 {
#interrupt-cells = <2>;
clocks = <&scmi_clk CK_SCMI_GPIOA>;
st,bank-name = "GPIOA";
+ bootph-all;
status = "disabled";
};
@@ -985,6 +997,7 @@ gpiob: gpio@...50000 {
#interrupt-cells = <2>;
clocks = <&scmi_clk CK_SCMI_GPIOB>;
st,bank-name = "GPIOB";
+ bootph-all;
status = "disabled";
};
@@ -996,6 +1009,7 @@ gpioc: gpio@...60000 {
#interrupt-cells = <2>;
clocks = <&scmi_clk CK_SCMI_GPIOC>;
st,bank-name = "GPIOC";
+ bootph-all;
status = "disabled";
};
@@ -1007,6 +1021,7 @@ gpiod: gpio@...70000 {
#interrupt-cells = <2>;
clocks = <&scmi_clk CK_SCMI_GPIOD>;
st,bank-name = "GPIOD";
+ bootph-all;
status = "disabled";
};
@@ -1018,6 +1033,7 @@ gpioe: gpio@...80000 {
#interrupt-cells = <2>;
clocks = <&scmi_clk CK_SCMI_GPIOE>;
st,bank-name = "GPIOE";
+ bootph-all;
status = "disabled";
};
@@ -1029,6 +1045,7 @@ gpiof: gpio@...90000 {
#interrupt-cells = <2>;
clocks = <&scmi_clk CK_SCMI_GPIOF>;
st,bank-name = "GPIOF";
+ bootph-all;
status = "disabled";
};
@@ -1040,6 +1057,7 @@ gpiog: gpio@...a0000 {
#interrupt-cells = <2>;
clocks = <&scmi_clk CK_SCMI_GPIOG>;
st,bank-name = "GPIOG";
+ bootph-all;
status = "disabled";
};
@@ -1051,6 +1069,7 @@ gpioh: gpio@...b0000 {
#interrupt-cells = <2>;
clocks = <&scmi_clk CK_SCMI_GPIOH>;
st,bank-name = "GPIOH";
+ bootph-all;
status = "disabled";
};
@@ -1062,6 +1081,7 @@ gpioi: gpio@...c0000 {
#interrupt-cells = <2>;
clocks = <&scmi_clk CK_SCMI_GPIOI>;
st,bank-name = "GPIOI";
+ bootph-all;
status = "disabled";
};
};
@@ -1084,6 +1104,7 @@ pinctrl_z: pinctrl@...00000 {
interrupt-parent = <&exti1>;
st,syscfg = <&exti1 0x60 0xff>;
pins-are-numbered;
+ bootph-all;
gpioz: gpio@...00000 {
reg = <0 0x400>;
@@ -1094,6 +1115,7 @@ gpioz: gpio@...00000 {
clocks = <&scmi_clk CK_SCMI_GPIOZ>;
st,bank-name = "GPIOZ";
st,bank-ioport = <11>;
+ bootph-all;
status = "disabled";
};
diff --git a/arch/arm64/boot/dts/st/stm32mp235f-dk.dts b/arch/arm64/boot/dts/st/stm32mp235f-dk.dts
index c3e688068223..391494eda5e6 100644
--- a/arch/arm64/boot/dts/st/stm32mp235f-dk.dts
+++ b/arch/arm64/boot/dts/st/stm32mp235f-dk.dts
@@ -130,7 +130,18 @@ &usart2 {
pinctrl-0 = <&usart2_pins_a>;
pinctrl-1 = <&usart2_idle_pins_a>;
pinctrl-2 = <&usart2_sleep_pins_a>;
+ bootph-all;
/delete-property/dmas;
/delete-property/dma-names;
status = "okay";
};
+
+&usart2_pins_a {
+ bootph-all;
+ pins1 {
+ bootph-all;
+ };
+ pins2 {
+ bootph-all;
+ };
+};
diff --git a/arch/arm64/boot/dts/st/stm32mp251.dtsi b/arch/arm64/boot/dts/st/stm32mp251.dtsi
index a8e6e0f77b83..068720d49afa 100644
--- a/arch/arm64/boot/dts/st/stm32mp251.dtsi
+++ b/arch/arm64/boot/dts/st/stm32mp251.dtsi
@@ -66,6 +66,7 @@ optee: optee {
method = "smc";
interrupt-parent = <&intc>;
interrupts = <GIC_PPI 15 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_LOW)>;
+ bootph-all;
};
scmi {
@@ -73,15 +74,18 @@ scmi {
#address-cells = <1>;
#size-cells = <0>;
linaro,optee-channel-id = <0>;
+ bootph-all;
scmi_clk: protocol@14 {
reg = <0x14>;
#clock-cells = <1>;
+ bootph-all;
};
scmi_reset: protocol@16 {
reg = <0x16>;
#reset-cells = <1>;
+ bootph-all;
};
scmi_voltd: protocol@17 {
@@ -142,6 +146,7 @@ v2m0: v2m@...90000 {
psci {
compatible = "arm,psci-1.0";
method = "smc";
+ bootph-all;
CPU_PD0: power-domain-cpu0 {
#power-domain-cells = <0>;
@@ -174,7 +179,8 @@ soc@0 {
#size-cells = <1>;
interrupt-parent = <&intc>;
ranges = <0x0 0x0 0x0 0x80000000>;
-
+ bootph-all;
+
hpdma: dma-controller@...00000 {
compatible = "st,stm32mp25-dma3";
reg = <0x40400000 0x1000>;
@@ -305,6 +311,7 @@ rifsc: bus@...80000 {
#size-cells = <1>;
#access-controller-cells = <1>;
ranges;
+ bootph-all;
timers2: timer@...00000 {
compatible = "st,stm32mp25-timers";
@@ -1569,6 +1576,7 @@ trigger@4 {
};
ltdc: display-controller@...10000 {
+ bootph-all;
compatible = "st,stm32mp251-ltdc";
reg = <0x48010000 0x400>;
interrupts = <GIC_SPI 158 IRQ_TYPE_LEVEL_HIGH>,
@@ -1738,6 +1746,7 @@ bsec: efuse@...00000 {
reg = <0x44000000 0x1000>;
#address-cells = <1>;
#size-cells = <1>;
+ bootph-all;
part_number_otp@24 {
reg = <0x24 0x4>;
@@ -1842,6 +1851,7 @@ rcc: clock-controller@...00000 {
<&scmi_clk CK_SCMI_PLL3>,
<&clk_dsi_txbyte>;
access-controllers = <&rifsc 156>;
+ bootph-all;
};
exti1: interrupt-controller@...20000 {
@@ -1941,6 +1951,7 @@ syscfg: syscon@...30000 {
compatible = "st,stm32mp25-syscfg", "syscon";
reg = <0x44230000 0x10000>;
#clock-cells = <0>;
+ bootph-all;
};
pinctrl: pinctrl@...40000 {
@@ -1951,6 +1962,7 @@ pinctrl: pinctrl@...40000 {
interrupt-parent = <&exti1>;
st,syscfg = <&exti1 0x60 0xff>;
pins-are-numbered;
+ bootph-all;
gpioa: gpio@...40000 {
gpio-controller;
@@ -1960,6 +1972,7 @@ gpioa: gpio@...40000 {
reg = <0x0 0x400>;
clocks = <&scmi_clk CK_SCMI_GPIOA>;
st,bank-name = "GPIOA";
+ bootph-all;
status = "disabled";
};
@@ -1971,6 +1984,7 @@ gpiob: gpio@...50000 {
reg = <0x10000 0x400>;
clocks = <&scmi_clk CK_SCMI_GPIOB>;
st,bank-name = "GPIOB";
+ bootph-all;
status = "disabled";
};
@@ -1982,6 +1996,7 @@ gpioc: gpio@...60000 {
reg = <0x20000 0x400>;
clocks = <&scmi_clk CK_SCMI_GPIOC>;
st,bank-name = "GPIOC";
+ bootph-all;
status = "disabled";
};
@@ -1993,6 +2008,7 @@ gpiod: gpio@...70000 {
reg = <0x30000 0x400>;
clocks = <&scmi_clk CK_SCMI_GPIOD>;
st,bank-name = "GPIOD";
+ bootph-all;
status = "disabled";
};
@@ -2004,6 +2020,7 @@ gpioe: gpio@...80000 {
reg = <0x40000 0x400>;
clocks = <&scmi_clk CK_SCMI_GPIOE>;
st,bank-name = "GPIOE";
+ bootph-all;
status = "disabled";
};
@@ -2015,6 +2032,7 @@ gpiof: gpio@...90000 {
reg = <0x50000 0x400>;
clocks = <&scmi_clk CK_SCMI_GPIOF>;
st,bank-name = "GPIOF";
+ bootph-all;
status = "disabled";
};
@@ -2026,6 +2044,7 @@ gpiog: gpio@...a0000 {
reg = <0x60000 0x400>;
clocks = <&scmi_clk CK_SCMI_GPIOG>;
st,bank-name = "GPIOG";
+ bootph-all;
status = "disabled";
};
@@ -2037,6 +2056,7 @@ gpioh: gpio@...b0000 {
reg = <0x70000 0x400>;
clocks = <&scmi_clk CK_SCMI_GPIOH>;
st,bank-name = "GPIOH";
+ bootph-all;
status = "disabled";
};
@@ -2048,6 +2068,7 @@ gpioi: gpio@...c0000 {
reg = <0x80000 0x400>;
clocks = <&scmi_clk CK_SCMI_GPIOI>;
st,bank-name = "GPIOI";
+ bootph-all;
status = "disabled";
};
@@ -2059,6 +2080,7 @@ gpioj: gpio@...d0000 {
reg = <0x90000 0x400>;
clocks = <&scmi_clk CK_SCMI_GPIOJ>;
st,bank-name = "GPIOJ";
+ bootph-all;
status = "disabled";
};
@@ -2070,6 +2092,7 @@ gpiok: gpio@...e0000 {
reg = <0xa0000 0x400>;
clocks = <&scmi_clk CK_SCMI_GPIOK>;
st,bank-name = "GPIOK";
+ bootph-all;
status = "disabled";
};
};
@@ -2092,6 +2115,7 @@ pinctrl_z: pinctrl@...00000 {
interrupt-parent = <&exti1>;
st,syscfg = <&exti1 0x60 0xff>;
pins-are-numbered;
+ bootph-all;
gpioz: gpio@...00000 {
gpio-controller;
@@ -2102,6 +2126,7 @@ gpioz: gpio@...00000 {
clocks = <&scmi_clk CK_SCMI_GPIOZ>;
st,bank-name = "GPIOZ";
st,bank-ioport = <11>;
+ bootph-all;
status = "disabled";
};
};
diff --git a/arch/arm64/boot/dts/st/stm32mp257f-dk.dts b/arch/arm64/boot/dts/st/stm32mp257f-dk.dts
index e718d888ce21..69bac9e719d7 100644
--- a/arch/arm64/boot/dts/st/stm32mp257f-dk.dts
+++ b/arch/arm64/boot/dts/st/stm32mp257f-dk.dts
@@ -130,7 +130,18 @@ &usart2 {
pinctrl-0 = <&usart2_pins_a>;
pinctrl-1 = <&usart2_idle_pins_a>;
pinctrl-2 = <&usart2_sleep_pins_a>;
+ bootph-all;
/delete-property/dmas;
/delete-property/dma-names;
status = "okay";
};
+
+&usart2_pins_a {
+ bootph-all;
+ pins1 {
+ bootph-all;
+ };
+ pins2 {
+ bootph-all;
+ };
+};
diff --git a/arch/arm64/boot/dts/st/stm32mp257f-ev1.dts b/arch/arm64/boot/dts/st/stm32mp257f-ev1.dts
index 6e165073f732..307b9692b00a 100644
--- a/arch/arm64/boot/dts/st/stm32mp257f-ev1.dts
+++ b/arch/arm64/boot/dts/st/stm32mp257f-ev1.dts
@@ -477,11 +477,22 @@ &usart2 {
pinctrl-0 = <&usart2_pins_a>;
pinctrl-1 = <&usart2_idle_pins_a>;
pinctrl-2 = <&usart2_sleep_pins_a>;
+ bootph-all;
/delete-property/dmas;
/delete-property/dma-names;
status = "okay";
};
+&usart2_pins_a {
+ bootph-all;
+ pins1 {
+ bootph-all;
+ };
+ pins2 {
+ bootph-all;
+ };
+};
+
&usart6 {
pinctrl-names = "default", "idle", "sleep";
pinctrl-0 = <&usart6_pins_a>;
--
2.43.0
Powered by blists - more mailing lists