[PATCH v3 11/11] arm64: dts: Enable EdgeLock Secure Enclave on all i.MX91/i.MX93 boards
From: Frieder Schrempf
Date: Thu Jul 23 2026 - 03:32:17 EST
From: Frieder Schrempf <frieder.schrempf@xxxxxxxxxx>
Include the common dtsi to enable the firmware node for all boards
based on the i.MX91 or i.MX93 SoC.
For the TQ-Systems i.MX91 TQMa91xxCA / TQMa91xxLA SOM that already has
a node for the reserved memory, keep the current settings.
Signed-off-by: Frieder Schrempf <frieder.schrempf@xxxxxxxxxx>
---
arch/arm64/boot/dts/freescale/imx91-11x11-evk.dts | 1 +
arch/arm64/boot/dts/freescale/imx91-11x11-frdm-s.dts | 1 +
arch/arm64/boot/dts/freescale/imx91-11x11-frdm.dts | 1 +
arch/arm64/boot/dts/freescale/imx91-9x9-qsb.dts | 1 +
arch/arm64/boot/dts/freescale/imx91-phycore-som.dtsi | 1 +
arch/arm64/boot/dts/freescale/imx91-tqma9131.dtsi | 15 ++++++++-------
arch/arm64/boot/dts/freescale/imx91-var-dart.dtsi | 1 +
arch/arm64/boot/dts/freescale/imx91-var-som.dtsi | 1 +
arch/arm64/boot/dts/freescale/imx91_93_common.dtsi | 9 +++++++++
arch/arm64/boot/dts/freescale/imx93-11x11-evk-common.dtsi | 1 +
arch/arm64/boot/dts/freescale/imx93-11x11-frdm.dts | 1 +
arch/arm64/boot/dts/freescale/imx93-14x14-evk.dts | 1 +
arch/arm64/boot/dts/freescale/imx93-9x9-qsb.dts | 1 +
arch/arm64/boot/dts/freescale/imx93-kontron-osm-s.dtsi | 1 +
arch/arm64/boot/dts/freescale/imx93-phycore-som.dtsi | 1 +
arch/arm64/boot/dts/freescale/imx93-tqma9352.dtsi | 1 +
arch/arm64/boot/dts/freescale/imx93-var-dart.dtsi | 1 +
arch/arm64/boot/dts/freescale/imx93-var-som.dtsi | 1 +
18 files changed, 33 insertions(+), 7 deletions(-)
diff --git a/arch/arm64/boot/dts/freescale/imx91-11x11-evk.dts b/arch/arm64/boot/dts/freescale/imx91-11x11-evk.dts
index 5716febb5a50..7813a3cf215b 100644
--- a/arch/arm64/boot/dts/freescale/imx91-11x11-evk.dts
+++ b/arch/arm64/boot/dts/freescale/imx91-11x11-evk.dts
@@ -7,6 +7,7 @@
#include <dt-bindings/usb/pd.h>
#include "imx91.dtsi"
+#include "imx93-firmware.dtsi"
/ {
compatible = "fsl,imx91-11x11-evk", "fsl,imx91";
diff --git a/arch/arm64/boot/dts/freescale/imx91-11x11-frdm-s.dts b/arch/arm64/boot/dts/freescale/imx91-11x11-frdm-s.dts
index 62dc1dedfb0e..b5a042a58b57 100644
--- a/arch/arm64/boot/dts/freescale/imx91-11x11-frdm-s.dts
+++ b/arch/arm64/boot/dts/freescale/imx91-11x11-frdm-s.dts
@@ -7,6 +7,7 @@
#include <dt-bindings/usb/pd.h>
#include "imx91.dtsi"
+#include "imx93-firmware.dtsi"
/ {
compatible = "fsl,imx91-11x11-frdm-s", "fsl,imx91";
diff --git a/arch/arm64/boot/dts/freescale/imx91-11x11-frdm.dts b/arch/arm64/boot/dts/freescale/imx91-11x11-frdm.dts
index c25561574d3f..20c7e4989367 100644
--- a/arch/arm64/boot/dts/freescale/imx91-11x11-frdm.dts
+++ b/arch/arm64/boot/dts/freescale/imx91-11x11-frdm.dts
@@ -7,6 +7,7 @@
#include <dt-bindings/usb/pd.h>
#include "imx91.dtsi"
+#include "imx93-firmware.dtsi"
/ {
compatible = "fsl,imx91-11x11-frdm", "fsl,imx91";
diff --git a/arch/arm64/boot/dts/freescale/imx91-9x9-qsb.dts b/arch/arm64/boot/dts/freescale/imx91-9x9-qsb.dts
index ea8cf14e0bc6..430c0402138b 100644
--- a/arch/arm64/boot/dts/freescale/imx91-9x9-qsb.dts
+++ b/arch/arm64/boot/dts/freescale/imx91-9x9-qsb.dts
@@ -7,6 +7,7 @@
#include <dt-bindings/usb/pd.h>
#include "imx91.dtsi"
+#include "imx93-firmware.dtsi"
/ {
compatible = "fsl,imx91-9x9-qsb", "fsl,imx91";
diff --git a/arch/arm64/boot/dts/freescale/imx91-phycore-som.dtsi b/arch/arm64/boot/dts/freescale/imx91-phycore-som.dtsi
index 8b8cb3daecbb..509d869a216b 100644
--- a/arch/arm64/boot/dts/freescale/imx91-phycore-som.dtsi
+++ b/arch/arm64/boot/dts/freescale/imx91-phycore-som.dtsi
@@ -11,6 +11,7 @@
#include <dt-bindings/regulator/nxp,pca9450-regulator.h>
#include "imx91.dtsi"
+#include "imx93-firmware.dtsi"
/ {
model = "PHYTEC phyCORE-i.MX91";
diff --git a/arch/arm64/boot/dts/freescale/imx91-tqma9131.dtsi b/arch/arm64/boot/dts/freescale/imx91-tqma9131.dtsi
index c99d7bc16848..ad66fea4099a 100644
--- a/arch/arm64/boot/dts/freescale/imx91-tqma9131.dtsi
+++ b/arch/arm64/boot/dts/freescale/imx91-tqma9131.dtsi
@@ -7,6 +7,7 @@
*/
#include "imx91.dtsi"
+#include "imx93-firmware.dtsi"
/{
model = "TQ-Systems i.MX91 TQMa91xxCA / TQMa91xxLA SOM";
@@ -31,13 +32,6 @@ linux,cma {
size = <0 0x10000000>;
linux,cma-default;
};
-
- /* EdgeLock secure enclave */
- ele_reserved: ele-reserved@a4120000 {
- compatible = "shared-dma-pool";
- reg = <0 0xa4120000 0 0x100000>;
- no-map;
- };
};
/* SD2 RST# via PMIC SW_EN */
@@ -58,6 +52,13 @@ &adc1 {
vref-supply = <&buck5>;
};
+&ele_memory {
+ /delete-property/alloc-ranges;
+ /delete-property/size;
+ reg = <0 0xa4120000 0 0x100000>;
+ no-map;
+};
+
&flexspi1 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_flexspi1>;
diff --git a/arch/arm64/boot/dts/freescale/imx91-var-dart.dtsi b/arch/arm64/boot/dts/freescale/imx91-var-dart.dtsi
index a9e44efad13f..2e1830c33012 100644
--- a/arch/arm64/boot/dts/freescale/imx91-var-dart.dtsi
+++ b/arch/arm64/boot/dts/freescale/imx91-var-dart.dtsi
@@ -13,6 +13,7 @@
#include <dt-bindings/leds/common.h>
#include <dt-bindings/usb/pd.h>
#include "imx91.dtsi"
+#include "imx93-firmware.dtsi"
/ {
model = "Variscite DART-MX91 Module";
diff --git a/arch/arm64/boot/dts/freescale/imx91-var-som.dtsi b/arch/arm64/boot/dts/freescale/imx91-var-som.dtsi
index b30a0d8a81ba..87db0abb8257 100644
--- a/arch/arm64/boot/dts/freescale/imx91-var-som.dtsi
+++ b/arch/arm64/boot/dts/freescale/imx91-var-som.dtsi
@@ -11,6 +11,7 @@
/dts-v1/;
#include "imx91.dtsi"
+#include "imx93-firmware.dtsi"
/{
model = "Variscite VAR-SOM-MX91 module";
diff --git a/arch/arm64/boot/dts/freescale/imx91_93_common.dtsi b/arch/arm64/boot/dts/freescale/imx91_93_common.dtsi
index a1a7e6a0571b..60798b216438 100644
--- a/arch/arm64/boot/dts/freescale/imx91_93_common.dtsi
+++ b/arch/arm64/boot/dts/freescale/imx91_93_common.dtsi
@@ -46,6 +46,15 @@ A55_0: cpu@0 {
};
};
+ firmware {
+ hsm0: secure-enclave {
+ compatible = "fsl,imx93-se-ele-hsm";
+ mbox-names = "tx", "rx";
+ mboxes = <&s4muap 0 0>, <&s4muap 1 0>;
+ status = "disabled";
+ };
+ };
+
osc_32k: clock-osc-32k {
compatible = "fixed-clock";
#clock-cells = <0>;
diff --git a/arch/arm64/boot/dts/freescale/imx93-11x11-evk-common.dtsi b/arch/arm64/boot/dts/freescale/imx93-11x11-evk-common.dtsi
index f48e7947cf64..65db986fc7ba 100644
--- a/arch/arm64/boot/dts/freescale/imx93-11x11-evk-common.dtsi
+++ b/arch/arm64/boot/dts/freescale/imx93-11x11-evk-common.dtsi
@@ -4,6 +4,7 @@
*/
#include <dt-bindings/usb/pd.h>
+#include "imx93-firmware.dtsi"
/ {
aliases {
diff --git a/arch/arm64/boot/dts/freescale/imx93-11x11-frdm.dts b/arch/arm64/boot/dts/freescale/imx93-11x11-frdm.dts
index bd14ba28690c..0bd19988ce9f 100644
--- a/arch/arm64/boot/dts/freescale/imx93-11x11-frdm.dts
+++ b/arch/arm64/boot/dts/freescale/imx93-11x11-frdm.dts
@@ -3,6 +3,7 @@
#include <dt-bindings/usb/pd.h>
#include "imx93.dtsi"
+#include "imx93-firmware.dtsi"
/ {
compatible = "fsl,imx93-11x11-frdm", "fsl,imx93";
diff --git a/arch/arm64/boot/dts/freescale/imx93-14x14-evk.dts b/arch/arm64/boot/dts/freescale/imx93-14x14-evk.dts
index ec78c03f4788..0e5c7d1ed4ee 100644
--- a/arch/arm64/boot/dts/freescale/imx93-14x14-evk.dts
+++ b/arch/arm64/boot/dts/freescale/imx93-14x14-evk.dts
@@ -7,6 +7,7 @@
#include <dt-bindings/usb/pd.h>
#include "imx93.dtsi"
+#include "imx93-firmware.dtsi"
/ {
model = "NXP i.MX93 14X14 EVK board";
diff --git a/arch/arm64/boot/dts/freescale/imx93-9x9-qsb.dts b/arch/arm64/boot/dts/freescale/imx93-9x9-qsb.dts
index 01c11c517986..694f114aef36 100644
--- a/arch/arm64/boot/dts/freescale/imx93-9x9-qsb.dts
+++ b/arch/arm64/boot/dts/freescale/imx93-9x9-qsb.dts
@@ -7,6 +7,7 @@
#include <dt-bindings/usb/pd.h>
#include "imx93.dtsi"
+#include "imx93-firmware.dtsi"
/ {
model = "NXP i.MX93 9x9 Quick Start Board";
diff --git a/arch/arm64/boot/dts/freescale/imx93-kontron-osm-s.dtsi b/arch/arm64/boot/dts/freescale/imx93-kontron-osm-s.dtsi
index c79b1df339db..c9aa764cc3b8 100644
--- a/arch/arm64/boot/dts/freescale/imx93-kontron-osm-s.dtsi
+++ b/arch/arm64/boot/dts/freescale/imx93-kontron-osm-s.dtsi
@@ -5,6 +5,7 @@
#include <dt-bindings/interrupt-controller/irq.h>
#include "imx93.dtsi"
+#include "imx93-firmware.dtsi"
/ {
model = "Kontron OSM-S i.MX93";
diff --git a/arch/arm64/boot/dts/freescale/imx93-phycore-som.dtsi b/arch/arm64/boot/dts/freescale/imx93-phycore-som.dtsi
index 325e465d0056..076716cc2095 100644
--- a/arch/arm64/boot/dts/freescale/imx93-phycore-som.dtsi
+++ b/arch/arm64/boot/dts/freescale/imx93-phycore-som.dtsi
@@ -12,6 +12,7 @@
#include <dt-bindings/regulator/nxp,pca9450-regulator.h>
#include "imx93.dtsi"
+#include "imx93-firmware.dtsi"
/{
model = "PHYTEC phyCORE-i.MX93";
diff --git a/arch/arm64/boot/dts/freescale/imx93-tqma9352.dtsi b/arch/arm64/boot/dts/freescale/imx93-tqma9352.dtsi
index ce34a296495c..159be0d5dfde 100644
--- a/arch/arm64/boot/dts/freescale/imx93-tqma9352.dtsi
+++ b/arch/arm64/boot/dts/freescale/imx93-tqma9352.dtsi
@@ -6,6 +6,7 @@
*/
#include "imx93.dtsi"
+#include "imx93-firmware.dtsi"
/{
model = "TQ-Systems i.MX93 TQMa93xxLA/TQMa93xxCA SOM";
diff --git a/arch/arm64/boot/dts/freescale/imx93-var-dart.dtsi b/arch/arm64/boot/dts/freescale/imx93-var-dart.dtsi
index 69495bb7fc9f..122a8a091c80 100644
--- a/arch/arm64/boot/dts/freescale/imx93-var-dart.dtsi
+++ b/arch/arm64/boot/dts/freescale/imx93-var-dart.dtsi
@@ -12,6 +12,7 @@
#include <dt-bindings/usb/pd.h>
#include "imx93.dtsi"
+#include "imx93-firmware.dtsi"
/ {
model = "Variscite DART-MX93 Module";
diff --git a/arch/arm64/boot/dts/freescale/imx93-var-som.dtsi b/arch/arm64/boot/dts/freescale/imx93-var-som.dtsi
index 24063bf8183d..50aec264f87c 100644
--- a/arch/arm64/boot/dts/freescale/imx93-var-som.dtsi
+++ b/arch/arm64/boot/dts/freescale/imx93-var-som.dtsi
@@ -7,6 +7,7 @@
/dts-v1/;
#include "imx93.dtsi"
+#include "imx93-firmware.dtsi"
/{
model = "Variscite VAR-SOM-MX93 module";
--
2.55.0