* [PATCH v2 1/7] arm64: dts: freescale: Import optee node from u-boot i.MX91 and i.MX93 device trees
2026-07-15 14:22 [PATCH v2 0/7] Import optee node from u-boot device trees Mathieu Dubois-Briand
@ 2026-07-15 14:22 ` Mathieu Dubois-Briand
2026-07-15 14:22 ` [PATCH v2 2/7] arm64: dts: freescale: Import optee node from u-boot i.MX8 " Mathieu Dubois-Briand
` (6 subsequent siblings)
7 siblings, 0 replies; 10+ messages in thread
From: Mathieu Dubois-Briand @ 2026-07-15 14:22 UTC (permalink / raw)
To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Frank Li,
Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam,
Maxime Coquelin, Alexandre Torgue, Wei Xu, Andrew Jeffery,
Avi Fishman, Tomer Maimon, Tali Perry, Patrick Venture,
Nancy Yuen, Benjamin Fair
Cc: Thomas Petazzoni, devicetree, imx, linux-arm-kernel, linux-kernel,
linux-stm32, openbmc, Tom Rini, Peter Robinson,
Mathieu Dubois-Briand
U-Boot is importing kernel device trees for these platforms, but adding
a firmware node to enable communication with OP-TEE. Importing
changes here will allow to remove these additions in U-Boot.
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
---
arch/arm64/boot/dts/freescale/imx91-11x11-evk.dts | 7 +++++++
arch/arm64/boot/dts/freescale/imx91-11x11-frdm.dts | 7 +++++++
arch/arm64/boot/dts/freescale/imx91-phyboard-segin.dts | 7 +++++++
arch/arm64/boot/dts/freescale/imx93-11x11-evk.dts | 7 +++++++
arch/arm64/boot/dts/freescale/imx93-9x9-qsb.dts | 7 +++++++
arch/arm64/boot/dts/freescale/imx93-kontron-bl-osm-s.dts | 7 +++++++
arch/arm64/boot/dts/freescale/imx93-phyboard-segin.dts | 7 +++++++
arch/arm64/boot/dts/freescale/imx93-var-som-symphony.dts | 7 +++++++
8 files changed, 56 insertions(+)
diff --git a/arch/arm64/boot/dts/freescale/imx91-11x11-evk.dts b/arch/arm64/boot/dts/freescale/imx91-11x11-evk.dts
index 5716febb5a50..c7050bafacae 100644
--- a/arch/arm64/boot/dts/freescale/imx91-11x11-evk.dts
+++ b/arch/arm64/boot/dts/freescale/imx91-11x11-evk.dts
@@ -110,6 +110,13 @@ linux,cma {
};
};
+ firmware {
+ optee: optee {
+ compatible = "linaro,optee-tz";
+ method = "smc";
+ };
+ };
+
sound-wm8962 {
compatible = "fsl,imx-audio-wm8962";
model = "wm8962-audio";
diff --git a/arch/arm64/boot/dts/freescale/imx91-11x11-frdm.dts b/arch/arm64/boot/dts/freescale/imx91-11x11-frdm.dts
index c25561574d3f..c0156921414f 100644
--- a/arch/arm64/boot/dts/freescale/imx91-11x11-frdm.dts
+++ b/arch/arm64/boot/dts/freescale/imx91-11x11-frdm.dts
@@ -152,6 +152,13 @@ linux,cma {
};
};
+ firmware {
+ optee: optee {
+ compatible = "linaro,optee-tz";
+ method = "smc";
+ };
+ };
+
soc@0 {
bootph-all;
bootph-pre-ram;
diff --git a/arch/arm64/boot/dts/freescale/imx91-phyboard-segin.dts b/arch/arm64/boot/dts/freescale/imx91-phyboard-segin.dts
index 022e9c6841ef..62b6eff013f1 100644
--- a/arch/arm64/boot/dts/freescale/imx91-phyboard-segin.dts
+++ b/arch/arm64/boot/dts/freescale/imx91-phyboard-segin.dts
@@ -35,6 +35,13 @@ chosen {
stdout-path = &lpuart1;
};
+ firmware {
+ optee: optee {
+ compatible = "linaro,optee-tz";
+ method = "smc";
+ };
+ };
+
flexcan1_tc: can-phy0 {
/* TI SN65HVD234D CAN-CC 1MBit/s */
compatible = "ti,tcan1043";
diff --git a/arch/arm64/boot/dts/freescale/imx93-11x11-evk.dts b/arch/arm64/boot/dts/freescale/imx93-11x11-evk.dts
index c6db9c85f2ac..0bea169d7029 100644
--- a/arch/arm64/boot/dts/freescale/imx93-11x11-evk.dts
+++ b/arch/arm64/boot/dts/freescale/imx93-11x11-evk.dts
@@ -42,6 +42,13 @@ reg_usdhc3_vmmc: regulator-usdhc3 {
enable-active-high;
};
+ firmware {
+ optee: optee {
+ compatible = "linaro,optee-tz";
+ method = "smc";
+ };
+ };
+
usdhc3_pwrseq: usdhc3_pwrseq {
compatible = "mmc-pwrseq-simple";
reset-gpios = <&pcal6524 12 GPIO_ACTIVE_LOW>;
diff --git a/arch/arm64/boot/dts/freescale/imx93-9x9-qsb.dts b/arch/arm64/boot/dts/freescale/imx93-9x9-qsb.dts
index 01c11c517986..6b99c0594125 100644
--- a/arch/arm64/boot/dts/freescale/imx93-9x9-qsb.dts
+++ b/arch/arm64/boot/dts/freescale/imx93-9x9-qsb.dts
@@ -147,6 +147,13 @@ reg_usdhc3_vmmc: regulator-usdhc3 {
enable-active-high;
};
+ firmware {
+ optee: optee {
+ compatible = "linaro,optee-tz";
+ method = "smc";
+ };
+ };
+
sound-bt-sco {
compatible = "simple-audio-card";
simple-audio-card,name = "bt-sco-audio";
diff --git a/arch/arm64/boot/dts/freescale/imx93-kontron-bl-osm-s.dts b/arch/arm64/boot/dts/freescale/imx93-kontron-bl-osm-s.dts
index 4620c070f4d7..b8fa0cda33b2 100644
--- a/arch/arm64/boot/dts/freescale/imx93-kontron-bl-osm-s.dts
+++ b/arch/arm64/boot/dts/freescale/imx93-kontron-bl-osm-s.dts
@@ -62,6 +62,13 @@ reg_vcc_panel: regulator-vcc-panel {
regulator-min-microvolt = <3300000>;
regulator-name = "VCC_PANEL";
};
+
+ firmware {
+ optee: optee {
+ compatible = "linaro,optee-tz";
+ method = "smc";
+ };
+ };
};
&eqos { /* Second ethernet (OSM-S ETH_B) */
diff --git a/arch/arm64/boot/dts/freescale/imx93-phyboard-segin.dts b/arch/arm64/boot/dts/freescale/imx93-phyboard-segin.dts
index d929aa9ff255..e96b8437f922 100644
--- a/arch/arm64/boot/dts/freescale/imx93-phyboard-segin.dts
+++ b/arch/arm64/boot/dts/freescale/imx93-phyboard-segin.dts
@@ -36,6 +36,13 @@ chosen {
stdout-path = &lpuart1;
};
+ firmware {
+ optee: optee {
+ compatible = "linaro,optee-tz";
+ method = "smc";
+ };
+ };
+
flexcan1_tc: can-phy0 {
compatible = "ti,tcan1043";
#phy-cells = <0>;
diff --git a/arch/arm64/boot/dts/freescale/imx93-var-som-symphony.dts b/arch/arm64/boot/dts/freescale/imx93-var-som-symphony.dts
index 409c7e74ffe3..20eaabc23b49 100644
--- a/arch/arm64/boot/dts/freescale/imx93-var-som-symphony.dts
+++ b/arch/arm64/boot/dts/freescale/imx93-var-som-symphony.dts
@@ -125,6 +125,13 @@ ele_reserved: ele-reserved@87de0000 {
};
};
+ firmware {
+ optee: optee {
+ compatible = "linaro,optee-tz";
+ method = "smc";
+ };
+ };
+
gpio-keys {
compatible = "gpio-keys";
--
2.47.3
^ permalink raw reply related [flat|nested] 10+ messages in thread* [PATCH v2 2/7] arm64: dts: freescale: Import optee node from u-boot i.MX8 device trees
2026-07-15 14:22 [PATCH v2 0/7] Import optee node from u-boot device trees Mathieu Dubois-Briand
2026-07-15 14:22 ` [PATCH v2 1/7] arm64: dts: freescale: Import optee node from u-boot i.MX91 and i.MX93 " Mathieu Dubois-Briand
@ 2026-07-15 14:22 ` Mathieu Dubois-Briand
2026-07-15 14:22 ` [PATCH v2 3/7] arm: dts: st: Import optee node from u-boot " Mathieu Dubois-Briand
` (5 subsequent siblings)
7 siblings, 0 replies; 10+ messages in thread
From: Mathieu Dubois-Briand @ 2026-07-15 14:22 UTC (permalink / raw)
To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Frank Li,
Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam,
Maxime Coquelin, Alexandre Torgue, Wei Xu, Andrew Jeffery,
Avi Fishman, Tomer Maimon, Tali Perry, Patrick Venture,
Nancy Yuen, Benjamin Fair
Cc: Thomas Petazzoni, devicetree, imx, linux-arm-kernel, linux-kernel,
linux-stm32, openbmc, Tom Rini, Peter Robinson,
Mathieu Dubois-Briand
U-Boot is importing kernel device trees for these platforms, but adding
a firmware node to enable communication with OP-TEE. Importing
changes here will allow to remove these additions in U-Boot.
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
---
arch/arm64/boot/dts/freescale/imx8mm.dtsi | 7 +++++++
arch/arm64/boot/dts/freescale/imx8mn.dtsi | 7 +++++++
arch/arm64/boot/dts/freescale/imx8mp.dtsi | 7 +++++++
3 files changed, 21 insertions(+)
diff --git a/arch/arm64/boot/dts/freescale/imx8mm.dtsi b/arch/arm64/boot/dts/freescale/imx8mm.dtsi
index 5cf2998d396d..4a55464e8a6f 100644
--- a/arch/arm64/boot/dts/freescale/imx8mm.dtsi
+++ b/arch/arm64/boot/dts/freescale/imx8mm.dtsi
@@ -233,6 +233,13 @@ timer {
arm,no-tick-in-suspend;
};
+ firmware {
+ optee: optee {
+ compatible = "linaro,optee-tz";
+ method = "smc";
+ };
+ };
+
thermal_zones: thermal-zones {
cpu-thermal {
polling-delay-passive = <250>;
diff --git a/arch/arm64/boot/dts/freescale/imx8mn.dtsi b/arch/arm64/boot/dts/freescale/imx8mn.dtsi
index 79b169b07c4f..c3b4560ec9b4 100644
--- a/arch/arm64/boot/dts/freescale/imx8mn.dtsi
+++ b/arch/arm64/boot/dts/freescale/imx8mn.dtsi
@@ -265,6 +265,13 @@ timer {
arm,no-tick-in-suspend;
};
+ firmware {
+ optee: optee {
+ compatible = "linaro,optee-tz";
+ method = "smc";
+ };
+ };
+
soc: soc@0 {
compatible = "fsl,imx8mn-soc", "simple-bus";
#address-cells = <1>;
diff --git a/arch/arm64/boot/dts/freescale/imx8mp.dtsi b/arch/arm64/boot/dts/freescale/imx8mp.dtsi
index 5ce2825182fd..285b98384255 100644
--- a/arch/arm64/boot/dts/freescale/imx8mp.dtsi
+++ b/arch/arm64/boot/dts/freescale/imx8mp.dtsi
@@ -404,6 +404,13 @@ timer {
arm,no-tick-in-suspend;
};
+ firmware {
+ optee: optee {
+ compatible = "linaro,optee-tz";
+ method = "smc";
+ };
+ };
+
soc: soc@0 {
compatible = "fsl,imx8mp-soc", "simple-bus";
#address-cells = <1>;
--
2.47.3
^ permalink raw reply related [flat|nested] 10+ messages in thread* [PATCH v2 3/7] arm: dts: st: Import optee node from u-boot device trees
2026-07-15 14:22 [PATCH v2 0/7] Import optee node from u-boot device trees Mathieu Dubois-Briand
2026-07-15 14:22 ` [PATCH v2 1/7] arm64: dts: freescale: Import optee node from u-boot i.MX91 and i.MX93 " Mathieu Dubois-Briand
2026-07-15 14:22 ` [PATCH v2 2/7] arm64: dts: freescale: Import optee node from u-boot i.MX8 " Mathieu Dubois-Briand
@ 2026-07-15 14:22 ` Mathieu Dubois-Briand
2026-07-15 14:38 ` sashiko-bot
2026-07-15 14:22 ` [PATCH v2 4/7] arm: dts: st: stm32mp157c-ed1: Add bootph-pre-ram tag on optee reserved memory Mathieu Dubois-Briand
` (4 subsequent siblings)
7 siblings, 1 reply; 10+ messages in thread
From: Mathieu Dubois-Briand @ 2026-07-15 14:22 UTC (permalink / raw)
To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Frank Li,
Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam,
Maxime Coquelin, Alexandre Torgue, Wei Xu, Andrew Jeffery,
Avi Fishman, Tomer Maimon, Tali Perry, Patrick Venture,
Nancy Yuen, Benjamin Fair
Cc: Thomas Petazzoni, devicetree, imx, linux-arm-kernel, linux-kernel,
linux-stm32, openbmc, Tom Rini, Peter Robinson,
Mathieu Dubois-Briand
U-Boot is importing kernel device trees for these platforms, but adding
a firmware node to enable communication with OP-TEE. Importing
changes here will allow to remove these additions in U-Boot.
Also import the corresponding reserved-memory region.
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
---
arch/arm/boot/dts/st/stm32mp157a-dk1.dts | 17 +++++++++++++++++
arch/arm/boot/dts/st/stm32mp157c-ed1.dts | 12 ++++++++++++
2 files changed, 29 insertions(+)
diff --git a/arch/arm/boot/dts/st/stm32mp157a-dk1.dts b/arch/arm/boot/dts/st/stm32mp157a-dk1.dts
index 0da3667ab1e0..236da589eb90 100644
--- a/arch/arm/boot/dts/st/stm32mp157a-dk1.dts
+++ b/arch/arm/boot/dts/st/stm32mp157a-dk1.dts
@@ -22,4 +22,21 @@ aliases {
chosen {
stdout-path = "serial0:115200n8";
};
+
+ reserved-memory {
+ bootph-pre-ram;
+
+ optee@de000000 {
+ reg = <0xde000000 0x02000000>;
+ no-map;
+ bootph-pre-ram;
+ };
+ };
+
+ firmware {
+ optee: optee {
+ compatible = "linaro,optee-tz";
+ method = "smc";
+ };
+ };
};
diff --git a/arch/arm/boot/dts/st/stm32mp157c-ed1.dts b/arch/arm/boot/dts/st/stm32mp157c-ed1.dts
index 49dd555cc228..7da726035086 100644
--- a/arch/arm/boot/dts/st/stm32mp157c-ed1.dts
+++ b/arch/arm/boot/dts/st/stm32mp157c-ed1.dts
@@ -70,6 +70,18 @@ retram: retram@38000000 {
reg = <0x38000000 0x10000>;
no-map;
};
+
+ optee@fe000000 {
+ reg = <0xfe000000 0x02000000>;
+ no-map;
+ };
+ };
+
+ firmware {
+ optee: optee {
+ compatible = "linaro,optee-tz";
+ method = "smc";
+ };
};
led {
--
2.47.3
^ permalink raw reply related [flat|nested] 10+ messages in thread* Re: [PATCH v2 3/7] arm: dts: st: Import optee node from u-boot device trees
2026-07-15 14:22 ` [PATCH v2 3/7] arm: dts: st: Import optee node from u-boot " Mathieu Dubois-Briand
@ 2026-07-15 14:38 ` sashiko-bot
0 siblings, 0 replies; 10+ messages in thread
From: sashiko-bot @ 2026-07-15 14:38 UTC (permalink / raw)
To: Mathieu Dubois-Briand; +Cc: conor+dt, devicetree, Frank.Li, robh, imx
Thank you for your contribution! Sashiko AI review found 4 potential issue(s) to consider:
- [Critical] The `bootph-pre-ram` property is missing from the `optee@fe000000` node and its parent `reserved-memory` node in `stm32mp157c-ed1.dts`, which will crash U-Boot on this board.
- [High] The patch unconditionally reserves 32MB of RAM for OP-TEE in the base board device trees, permanently removing this memory for users booting without OP-TEE.
- [High] The OP-TEE nodes were added to the DK1 base DT but omitted from the DK2 base DT, which will silently break OP-TEE support for DK2 when U-Boot drops its local overrides.
- [Low] The newly added `optee@de000000` and `optee@fe000000` nodes duplicate definitions that already exist in the corresponding `-scmi.dts` variants.
--
--- Patch [3]: [PATCH v2 3/7] arm: dts: st: Import optee node from u-boot device trees ---
commit 455c0e25ccd33494a8e1d7d65c591a7e9158f5c7
Author: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
arm: dts: st: Import optee node from u-boot device trees
This commit imports OP-TEE firmware nodes and reserved-memory regions from
U-Boot device trees into the upstream kernel device trees. The goal is to
allow U-Boot to drop its local additions and use the kernel device trees
directly for these platforms.
> diff --git a/arch/arm/boot/dts/st/stm32mp157a-dk1.dts b/arch/arm/boot/dts/st/stm32mp157a-dk1.dts
> index 0da3667ab1e0e..236da589eb909 100644
> --- a/arch/arm/boot/dts/st/stm32mp157a-dk1.dts
> +++ b/arch/arm/boot/dts/st/stm32mp157a-dk1.dts
[ ... ]
> @@ -22,4 +22,21 @@ aliases {
> chosen {
> stdout-path = "serial0:115200n8";
> };
> +
> + reserved-memory {
> + bootph-pre-ram;
> +
> + optee@de000000 {
[Severity: High]
Since stm32mp157c-dk2.dts does not include stm32mp157a-dk1.dts, won't adding
this only to the dk1-specific file silently break OP-TEE on the DK2 board once
U-Boot drops its local overrides? Should these nodes be placed in the shared
stm32mp15xx-dkx.dtsi instead?
[Severity: High]
Does this unconditionally consume 32MB of RAM for users booting the standard
stm32mp157a-dk1.dtb without OP-TEE?
ST provides dedicated *-scmi.dts variants for OP-TEE environments that already
contain these exact memory reservations. By placing this in the base device
tree, it looks like standard non-secure users permanently lose this memory to
the memblock allocator.
[Severity: Low]
Since stm32mp157a-dk1-scmi.dts includes this base file, does adding
optee@de000000 here duplicate the node already existing in the -scmi.dts
variant?
> + reg = <0xde000000 0x02000000>;
> + no-map;
> + bootph-pre-ram;
> + };
> + };
[ ... ]
> diff --git a/arch/arm/boot/dts/st/stm32mp157c-ed1.dts b/arch/arm/boot/dts/st/stm32mp157c-ed1.dts
> index 49dd555cc228c..7da7260350869 100644
> --- a/arch/arm/boot/dts/st/stm32mp157c-ed1.dts
> +++ b/arch/arm/boot/dts/st/stm32mp157c-ed1.dts
[ ... ]
> @@ -70,6 +70,18 @@ retram: retram@38000000 {
> reg = <0x38000000 0x10000>;
> no-map;
> };
> +
> + optee@fe000000 {
[Severity: Critical]
Is the bootph-pre-ram property missing here and in the parent reserved-memory
node?
During pre-relocation, U-Boot allocates memory downwards from the top of RAM
where OP-TEE also resides. Without bootph-pre-ram, U-Boot's DT parser will
ignore the reservation. Won't this cause U-Boot to relocate its code and stack
directly into OP-TEE's secure memory space and trigger a synchronous abort?
[Severity: Low]
Similar to the DK1 file, does adding optee@fe000000 to the base ED1 device
tree duplicate the reservation that already exists in the
stm32mp157c-ed1-scmi.dts variant?
> + reg = <0xfe000000 0x02000000>;
> + no-map;
> + };
[ ... ]
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260715-mathieu-uboot-dts-import-v2-0-bc931417bd0e@bootlin.com?part=3
^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH v2 4/7] arm: dts: st: stm32mp157c-ed1: Add bootph-pre-ram tag on optee reserved memory
2026-07-15 14:22 [PATCH v2 0/7] Import optee node from u-boot device trees Mathieu Dubois-Briand
` (2 preceding siblings ...)
2026-07-15 14:22 ` [PATCH v2 3/7] arm: dts: st: Import optee node from u-boot " Mathieu Dubois-Briand
@ 2026-07-15 14:22 ` Mathieu Dubois-Briand
2026-07-15 14:22 ` [PATCH v2 5/7] arm64: dts: hisilicon: hi3798cv200-poplar: Import optee node from u-boot device tree Mathieu Dubois-Briand
` (3 subsequent siblings)
7 siblings, 0 replies; 10+ messages in thread
From: Mathieu Dubois-Briand @ 2026-07-15 14:22 UTC (permalink / raw)
To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Frank Li,
Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam,
Maxime Coquelin, Alexandre Torgue, Wei Xu, Andrew Jeffery,
Avi Fishman, Tomer Maimon, Tali Perry, Patrick Venture,
Nancy Yuen, Benjamin Fair
Cc: Thomas Petazzoni, devicetree, imx, linux-arm-kernel, linux-kernel,
linux-stm32, openbmc, Tom Rini, Peter Robinson,
Mathieu Dubois-Briand, Sashiko
Add bootph-pre-ram property to bind optee reserved-memory during the SPL
phase.
Reported-by: Sashiko <sashiko-bot@kernel.org>
Link: https://sashiko.dev/#/patchset/20260710-mathieu-uboot-dts-import-v1-0-ffe0210e50c9@bootlin.com?part=2
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
---
arch/arm/boot/dts/st/stm32mp157c-ed1.dts | 2 ++
1 file changed, 2 insertions(+)
diff --git a/arch/arm/boot/dts/st/stm32mp157c-ed1.dts b/arch/arm/boot/dts/st/stm32mp157c-ed1.dts
index 7da726035086..827480e9bf7d 100644
--- a/arch/arm/boot/dts/st/stm32mp157c-ed1.dts
+++ b/arch/arm/boot/dts/st/stm32mp157c-ed1.dts
@@ -34,6 +34,7 @@ reserved-memory {
#address-cells = <1>;
#size-cells = <1>;
ranges;
+ bootph-pre-ram;
mcuram2: mcuram2@10000000 {
compatible = "shared-dma-pool";
@@ -74,6 +75,7 @@ retram: retram@38000000 {
optee@fe000000 {
reg = <0xfe000000 0x02000000>;
no-map;
+ bootph-pre-ram;
};
};
--
2.47.3
^ permalink raw reply related [flat|nested] 10+ messages in thread* [PATCH v2 5/7] arm64: dts: hisilicon: hi3798cv200-poplar: Import optee node from u-boot device tree
2026-07-15 14:22 [PATCH v2 0/7] Import optee node from u-boot device trees Mathieu Dubois-Briand
` (3 preceding siblings ...)
2026-07-15 14:22 ` [PATCH v2 4/7] arm: dts: st: stm32mp157c-ed1: Add bootph-pre-ram tag on optee reserved memory Mathieu Dubois-Briand
@ 2026-07-15 14:22 ` Mathieu Dubois-Briand
2026-07-15 14:22 ` [PATCH v2 6/7] arm64: dts: nuvoton: npcm845-evb: " Mathieu Dubois-Briand
` (2 subsequent siblings)
7 siblings, 0 replies; 10+ messages in thread
From: Mathieu Dubois-Briand @ 2026-07-15 14:22 UTC (permalink / raw)
To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Frank Li,
Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam,
Maxime Coquelin, Alexandre Torgue, Wei Xu, Andrew Jeffery,
Avi Fishman, Tomer Maimon, Tali Perry, Patrick Venture,
Nancy Yuen, Benjamin Fair
Cc: Thomas Petazzoni, devicetree, imx, linux-arm-kernel, linux-kernel,
linux-stm32, openbmc, Tom Rini, Peter Robinson,
Mathieu Dubois-Briand
U-Boot is defining its own device tree for this platform. Among all
differences, a firmware node to enable communication with OP-TEE is
added. Importing this node here will reduce these differences.
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
---
arch/arm64/boot/dts/hisilicon/hi3798cv200-poplar.dts | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/arch/arm64/boot/dts/hisilicon/hi3798cv200-poplar.dts b/arch/arm64/boot/dts/hisilicon/hi3798cv200-poplar.dts
index 579d55daa7d0..f20fbfc1c954 100644
--- a/arch/arm64/boot/dts/hisilicon/hi3798cv200-poplar.dts
+++ b/arch/arm64/boot/dts/hisilicon/hi3798cv200-poplar.dts
@@ -70,6 +70,13 @@ reg_pcie: regulator-pcie {
gpio = <&gpio6 7 0>;
enable-active-high;
};
+
+ firmware {
+ optee: optee {
+ compatible = "linaro,optee-tz";
+ method = "smc";
+ };
+ };
};
&ehci {
--
2.47.3
^ permalink raw reply related [flat|nested] 10+ messages in thread* [PATCH v2 6/7] arm64: dts: nuvoton: npcm845-evb: Import optee node from u-boot device tree
2026-07-15 14:22 [PATCH v2 0/7] Import optee node from u-boot device trees Mathieu Dubois-Briand
` (4 preceding siblings ...)
2026-07-15 14:22 ` [PATCH v2 5/7] arm64: dts: hisilicon: hi3798cv200-poplar: Import optee node from u-boot device tree Mathieu Dubois-Briand
@ 2026-07-15 14:22 ` Mathieu Dubois-Briand
2026-07-15 14:22 ` [PATCH v2 7/7] arm64: dts: freescale: imx93-frdm: Add OP-TEE device tree node Mathieu Dubois-Briand
2026-07-15 15:01 ` [PATCH v2 0/7] Import optee node from u-boot device trees Marco Felsch
7 siblings, 0 replies; 10+ messages in thread
From: Mathieu Dubois-Briand @ 2026-07-15 14:22 UTC (permalink / raw)
To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Frank Li,
Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam,
Maxime Coquelin, Alexandre Torgue, Wei Xu, Andrew Jeffery,
Avi Fishman, Tomer Maimon, Tali Perry, Patrick Venture,
Nancy Yuen, Benjamin Fair
Cc: Thomas Petazzoni, devicetree, imx, linux-arm-kernel, linux-kernel,
linux-stm32, openbmc, Tom Rini, Peter Robinson,
Mathieu Dubois-Briand
U-Boot is defining its own device tree for this platform. Among all
differences, a firmware node to enable communication with OP-TEE is
added. Importing this node here will reduce these differences.
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
---
arch/arm64/boot/dts/nuvoton/nuvoton-npcm845-evb.dts | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/arch/arm64/boot/dts/nuvoton/nuvoton-npcm845-evb.dts b/arch/arm64/boot/dts/nuvoton/nuvoton-npcm845-evb.dts
index 5edf5d13342d..6be771e581df 100644
--- a/arch/arm64/boot/dts/nuvoton/nuvoton-npcm845-evb.dts
+++ b/arch/arm64/boot/dts/nuvoton/nuvoton-npcm845-evb.dts
@@ -26,6 +26,13 @@ refclk: refclk-25mhz {
clock-frequency = <25000000>;
#clock-cells = <0>;
};
+
+ firmware {
+ optee: optee {
+ compatible = "linaro,optee-tz";
+ method = "smc";
+ };
+ };
};
&serial0 {
--
2.47.3
^ permalink raw reply related [flat|nested] 10+ messages in thread* [PATCH v2 7/7] arm64: dts: freescale: imx93-frdm: Add OP-TEE device tree node
2026-07-15 14:22 [PATCH v2 0/7] Import optee node from u-boot device trees Mathieu Dubois-Briand
` (5 preceding siblings ...)
2026-07-15 14:22 ` [PATCH v2 6/7] arm64: dts: nuvoton: npcm845-evb: " Mathieu Dubois-Briand
@ 2026-07-15 14:22 ` Mathieu Dubois-Briand
2026-07-15 15:01 ` [PATCH v2 0/7] Import optee node from u-boot device trees Marco Felsch
7 siblings, 0 replies; 10+ messages in thread
From: Mathieu Dubois-Briand @ 2026-07-15 14:22 UTC (permalink / raw)
To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Frank Li,
Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam,
Maxime Coquelin, Alexandre Torgue, Wei Xu, Andrew Jeffery,
Avi Fishman, Tomer Maimon, Tali Perry, Patrick Venture,
Nancy Yuen, Benjamin Fair
Cc: Thomas Petazzoni, devicetree, imx, linux-arm-kernel, linux-kernel,
linux-stm32, openbmc, Tom Rini, Peter Robinson,
Mathieu Dubois-Briand
Add missing firmware/optee node, so the kernel can communicate with the
OP-TEE firmware.
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
---
arch/arm64/boot/dts/freescale/imx93-11x11-frdm.dts | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/arch/arm64/boot/dts/freescale/imx93-11x11-frdm.dts b/arch/arm64/boot/dts/freescale/imx93-11x11-frdm.dts
index bd14ba28690c..8aba7ed4c535 100644
--- a/arch/arm64/boot/dts/freescale/imx93-11x11-frdm.dts
+++ b/arch/arm64/boot/dts/freescale/imx93-11x11-frdm.dts
@@ -121,6 +121,13 @@ vdevbuffer: vdevbuffer@a4020000 {
};
};
+ firmware {
+ optee: optee {
+ compatible = "linaro,optee-tz";
+ method = "smc";
+ };
+ };
+
sound-mqs {
compatible = "fsl,imx-audio-mqs";
model = "mqs-audio";
--
2.47.3
^ permalink raw reply related [flat|nested] 10+ messages in thread* Re: [PATCH v2 0/7] Import optee node from u-boot device trees
2026-07-15 14:22 [PATCH v2 0/7] Import optee node from u-boot device trees Mathieu Dubois-Briand
` (6 preceding siblings ...)
2026-07-15 14:22 ` [PATCH v2 7/7] arm64: dts: freescale: imx93-frdm: Add OP-TEE device tree node Mathieu Dubois-Briand
@ 2026-07-15 15:01 ` Marco Felsch
7 siblings, 0 replies; 10+ messages in thread
From: Marco Felsch @ 2026-07-15 15:01 UTC (permalink / raw)
To: Mathieu Dubois-Briand
Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Frank Li,
Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam,
Maxime Coquelin, Alexandre Torgue, Wei Xu, Andrew Jeffery,
Avi Fishman, Tomer Maimon, Tali Perry, Patrick Venture,
Nancy Yuen, Benjamin Fair, devicetree, Tom Rini, imx, openbmc,
linux-kernel, Sashiko, Peter Robinson, Thomas Petazzoni,
linux-stm32, linux-arm-kernel
Hi Mathieu,
On 26-07-15, Mathieu Dubois-Briand wrote:
> In a recent discussion on the U-Boot mailing list [1], it was found out
> that several platforms were adding the OP-TEE device tree-node thanks to
> some U-Boot specific dtsi. This was deemed as a bad solution, as this
> should instead be added in the DTS files hosted in Linux sources,
> particularly for platforms already using the "upstream" (Linux) device
> tree.
>
> Most i.MX8 and i.MX9 platforms are already using OF_UPSTREAM
> configuration in U-Boot. Some are not, but are fairly new, so we can
> expect them to use the Linux device tree once their support is a bit
> more stable. So they will benefit from these changes once upstream
> device trees are refreshed in U-Boot.
>
> STM32MP157 platforms are using OF_UPSTREAM, with similar consequences.
>
> The two other platforms are using an U-Boot specific device tree, yet
> adding these nodes on the kernel side will help to reduce the
> differences.
>
> The zynqmp platform was ignored, as a similar change was previously
> reverted [2]. I also ignored a few platforms without direct match
> between U-Boot and Linux dts files.
We do the same in barebox bootloader for all OP-TEE supported i.MX
platforms. Therefore this change would cause a regression for barebox as
well.
Furthermore, this change would cause an anyoing dmesg warning on
platforms which don't use OP-TEE at all, because it's not ensured that
the OP-TEE firmware was actually loaded.
Therefore the bootloader adds the OP-TEE nodes only if the OP-TEE binary
was actually loaded.
Therefore I vote for dynamic adding the nodes and not this static
approach.
Furthermore OP-TEE can provide a DTB overlay fragment with all the
required nodes, which you only need to apply within the bootloader. This
is cleanest way. You only need to provide OP-TEE the DTB location during
runtime.
Regards,
Marco
> Also add the OP-TEE node on the imx93 FRDM platform device tree: while
> this is not part of U-Boot code today, it is the change that triggered
> the U-Boot discussion.
>
> [1]: https://lore.kernel.org/all/20260706145906.GW749385@bill-the-cat/
> [2]: https://lore.kernel.org/all/20251125-revert-zynqmp-optee-v1-1-d2ce4c0fcaf6@vaisala.com/
>
> Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
> ---
> Changes in v2:
> - Splitting i.MX8 SoC changes in a separate commit.
> - Adding bootph-pre-ram on stm32mp157c-ed1 reserved memory.
> - Rebased on v7.2-rc3.
> - Link to v1: https://lore.kernel.org/r/20260710-mathieu-uboot-dts-import-v1-0-ffe0210e50c9@bootlin.com
>
> ---
> Mathieu Dubois-Briand (7):
> arm64: dts: freescale: Import optee node from u-boot i.MX91 and i.MX93 device trees
> arm64: dts: freescale: Import optee node from u-boot i.MX8 device trees
> arm: dts: st: Import optee node from u-boot device trees
> arm: dts: st: stm32mp157c-ed1: Add bootph-pre-ram tag on optee reserved memory
> arm64: dts: hisilicon: hi3798cv200-poplar: Import optee node from u-boot device tree
> arm64: dts: nuvoton: npcm845-evb: Import optee node from u-boot device tree
> arm64: dts: freescale: imx93-frdm: Add OP-TEE device tree node
>
> arch/arm/boot/dts/st/stm32mp157a-dk1.dts | 17 +++++++++++++++++
> arch/arm/boot/dts/st/stm32mp157c-ed1.dts | 14 ++++++++++++++
> arch/arm64/boot/dts/freescale/imx8mm.dtsi | 7 +++++++
> arch/arm64/boot/dts/freescale/imx8mn.dtsi | 7 +++++++
> arch/arm64/boot/dts/freescale/imx8mp.dtsi | 7 +++++++
> arch/arm64/boot/dts/freescale/imx91-11x11-evk.dts | 7 +++++++
> arch/arm64/boot/dts/freescale/imx91-11x11-frdm.dts | 7 +++++++
> arch/arm64/boot/dts/freescale/imx91-phyboard-segin.dts | 7 +++++++
> arch/arm64/boot/dts/freescale/imx93-11x11-evk.dts | 7 +++++++
> arch/arm64/boot/dts/freescale/imx93-11x11-frdm.dts | 7 +++++++
> arch/arm64/boot/dts/freescale/imx93-9x9-qsb.dts | 7 +++++++
> .../arm64/boot/dts/freescale/imx93-kontron-bl-osm-s.dts | 7 +++++++
> arch/arm64/boot/dts/freescale/imx93-phyboard-segin.dts | 7 +++++++
> .../arm64/boot/dts/freescale/imx93-var-som-symphony.dts | 7 +++++++
> arch/arm64/boot/dts/hisilicon/hi3798cv200-poplar.dts | 7 +++++++
> arch/arm64/boot/dts/nuvoton/nuvoton-npcm845-evb.dts | 7 +++++++
> 16 files changed, 129 insertions(+)
> ---
> base-commit: a13c140cc289c0b7b3770bce5b3ad42ab35074aa
> change-id: 20260710-mathieu-uboot-dts-import-69f51bc097d7
>
> Best regards,
> --
> Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
>
>
>
--
#gernperDu
#CallMeByMyFirstName
Pengutronix e.K. | |
Steuerwalder Str. 21 | https://www.pengutronix.de/ |
31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-9 |
^ permalink raw reply [flat|nested] 10+ messages in thread