* [PATCH 1/2] dt-bindings: firmware: document rsu-handle for intel stratix10-svc
2026-05-06 12:42 [PATCH 0/2] dt-bindings: arm64: dts: Intel SoCFPGA: rsu-handle on svc for U-Boot tze.yee.ng
@ 2026-05-06 12:42 ` tze.yee.ng
2026-05-06 13:12 ` Krzysztof Kozlowski
2026-05-06 13:22 ` Rob Herring (Arm)
2026-05-06 12:42 ` [PATCH 2/2] arm64: dts: socfpga: add rsu-handle to svc on QSPI SoCDK boards tze.yee.ng
1 sibling, 2 replies; 5+ messages in thread
From: tze.yee.ng @ 2026-05-06 12:42 UTC (permalink / raw)
To: Dinh Nguyen, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Mahesh Rao, linux-kernel, devicetree
Cc: Tze Yee Ng, Adrian Ng Ho Yin, Nazim Amirul
From: Tze Yee Ng <tze.yee.ng@altera.com>
Add the optional rsu-handle property to the intel,stratix10-svc binding.
It holds a phandle to the QSPI boot partition (qspi_boot) for U-Boot
remote system update (RSU) handoff.
Extend the example with a minimal QSPI fixed-partitions node so the
qspi_boot label is defined where rsu-handle is used.
Signed-off-by: Tze Yee Ng <tze.yee.ng@altera.com>
---
.../firmware/intel,stratix10-svc.yaml | 25 +++++++++++++++++++
1 file changed, 25 insertions(+)
diff --git a/Documentation/devicetree/bindings/firmware/intel,stratix10-svc.yaml b/Documentation/devicetree/bindings/firmware/intel,stratix10-svc.yaml
index b42cfa78b28b..5b90058f4f6b 100644
--- a/Documentation/devicetree/bindings/firmware/intel,stratix10-svc.yaml
+++ b/Documentation/devicetree/bindings/firmware/intel,stratix10-svc.yaml
@@ -58,6 +58,12 @@ properties:
iommus:
maxItems: 1
+ rsu-handle:
+ $ref: /schemas/types.yaml#/definitions/phandle
+ description:
+ Phandle to the QSPI boot partition node (qspi_boot), used by U-Boot
+ during remote system update flow.
+
fpga-mgr:
$ref: /schemas/fpga/intel,stratix10-soc-fpga-mgr.yaml
description: Optional child node for fpga manager to perform fabric configuration.
@@ -94,11 +100,30 @@ examples:
};
};
+ qspi@0 {
+ compatible = "jedec,spi-nor";
+ reg = <0x0 0x1000>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partitions {
+ compatible = "fixed-partitions";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ qspi_boot: partition@0 {
+ label = "u-boot";
+ reg = <0x0 0x100000>;
+ };
+ };
+ };
+
firmware {
svc {
compatible = "intel,stratix10-svc";
method = "smc";
memory-region = <&service_reserved>;
+ rsu-handle = <&qspi_boot>;
fpga-mgr {
compatible = "intel,stratix10-soc-fpga-mgr";
--
2.43.7
^ permalink raw reply related [flat|nested] 5+ messages in thread* [PATCH 2/2] arm64: dts: socfpga: add rsu-handle to svc on QSPI SoCDK boards
2026-05-06 12:42 [PATCH 0/2] dt-bindings: arm64: dts: Intel SoCFPGA: rsu-handle on svc for U-Boot tze.yee.ng
2026-05-06 12:42 ` [PATCH 1/2] dt-bindings: firmware: document rsu-handle for intel stratix10-svc tze.yee.ng
@ 2026-05-06 12:42 ` tze.yee.ng
1 sibling, 0 replies; 5+ messages in thread
From: tze.yee.ng @ 2026-05-06 12:42 UTC (permalink / raw)
To: Dinh Nguyen, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Mahesh Rao, linux-kernel, devicetree
Cc: Tze Yee Ng, Adrian Ng Ho Yin, Nazim Amirul
From: Tze Yee Ng <tze.yee.ng@altera.com>
Label the firmware svc node as "svc" in the Stratix 10, Agilex, and
Agilex5 SoC base include files so board DTS can override it by phandle.
Set rsu-handle = <&qspi_boot> on &svc only in board DTs that define
the qspi_boot partition, so boards without that partition do not
reference an undefined phandle.
Signed-off-by: Tze Yee Ng <tze.yee.ng@altera.com>
---
arch/arm64/boot/dts/altera/socfpga_stratix10.dtsi | 2 +-
arch/arm64/boot/dts/altera/socfpga_stratix10_socdk.dts | 4 ++++
arch/arm64/boot/dts/altera/socfpga_stratix10_socdk_nand.dts | 4 ++++
arch/arm64/boot/dts/intel/socfpga_agilex.dtsi | 2 +-
arch/arm64/boot/dts/intel/socfpga_agilex3_socdk.dts | 4 ++++
arch/arm64/boot/dts/intel/socfpga_agilex5.dtsi | 2 +-
arch/arm64/boot/dts/intel/socfpga_agilex5_socdk.dts | 4 ++++
arch/arm64/boot/dts/intel/socfpga_agilex5_socdk_013b.dts | 4 ++++
arch/arm64/boot/dts/intel/socfpga_agilex5_socdk_modular.dts | 4 ++++
arch/arm64/boot/dts/intel/socfpga_agilex_socdk.dts | 4 ++++
arch/arm64/boot/dts/intel/socfpga_n5x_socdk.dts | 4 ++++
11 files changed, 35 insertions(+), 3 deletions(-)
diff --git a/arch/arm64/boot/dts/altera/socfpga_stratix10.dtsi b/arch/arm64/boot/dts/altera/socfpga_stratix10.dtsi
index 0d9cad0c0351..64e9e1d8a852 100644
--- a/arch/arm64/boot/dts/altera/socfpga_stratix10.dtsi
+++ b/arch/arm64/boot/dts/altera/socfpga_stratix10.dtsi
@@ -70,7 +70,7 @@ l2_shared: cache {
};
firmware {
- svc {
+ svc: svc {
compatible = "intel,stratix10-svc";
method = "smc";
memory-region = <&service_reserved>;
diff --git a/arch/arm64/boot/dts/altera/socfpga_stratix10_socdk.dts b/arch/arm64/boot/dts/altera/socfpga_stratix10_socdk.dts
index e2a1cea7f3da..f4c9f9bb26aa 100644
--- a/arch/arm64/boot/dts/altera/socfpga_stratix10_socdk.dts
+++ b/arch/arm64/boot/dts/altera/socfpga_stratix10_socdk.dts
@@ -134,3 +134,7 @@ root: partition@4200000 {
};
};
};
+
+&svc {
+ rsu-handle = <&qspi_boot>;
+};
diff --git a/arch/arm64/boot/dts/altera/socfpga_stratix10_socdk_nand.dts b/arch/arm64/boot/dts/altera/socfpga_stratix10_socdk_nand.dts
index 7951ce46ae1f..1f3e4b50412d 100644
--- a/arch/arm64/boot/dts/altera/socfpga_stratix10_socdk_nand.dts
+++ b/arch/arm64/boot/dts/altera/socfpga_stratix10_socdk_nand.dts
@@ -184,3 +184,7 @@ qspi_rootfs: partition@3fe0000 {
};
};
};
+
+&svc {
+ rsu-handle = <&qspi_boot>;
+};
diff --git a/arch/arm64/boot/dts/intel/socfpga_agilex.dtsi b/arch/arm64/boot/dts/intel/socfpga_agilex.dtsi
index 0dfbafde8822..6440b4c6818a 100644
--- a/arch/arm64/boot/dts/intel/socfpga_agilex.dtsi
+++ b/arch/arm64/boot/dts/intel/socfpga_agilex.dtsi
@@ -61,7 +61,7 @@ cpu3: cpu@3 {
};
firmware {
- svc {
+ svc: svc {
compatible = "intel,agilex-svc";
method = "smc";
memory-region = <&service_reserved>;
diff --git a/arch/arm64/boot/dts/intel/socfpga_agilex3_socdk.dts b/arch/arm64/boot/dts/intel/socfpga_agilex3_socdk.dts
index 14b299f19f3a..af8b75107216 100644
--- a/arch/arm64/boot/dts/intel/socfpga_agilex3_socdk.dts
+++ b/arch/arm64/boot/dts/intel/socfpga_agilex3_socdk.dts
@@ -130,3 +130,7 @@ &uart0 {
&watchdog0 {
status = "okay";
};
+
+&svc {
+ rsu-handle = <&qspi_boot>;
+};
diff --git a/arch/arm64/boot/dts/intel/socfpga_agilex5.dtsi b/arch/arm64/boot/dts/intel/socfpga_agilex5.dtsi
index 02e62d954e94..d415b762f328 100644
--- a/arch/arm64/boot/dts/intel/socfpga_agilex5.dtsi
+++ b/arch/arm64/boot/dts/intel/socfpga_agilex5.dtsi
@@ -80,7 +80,7 @@ L3: l3-cache {
};
firmware {
- svc {
+ svc: svc {
compatible = "intel,agilex5-svc";
method = "smc";
memory-region = <&service_reserved>;
diff --git a/arch/arm64/boot/dts/intel/socfpga_agilex5_socdk.dts b/arch/arm64/boot/dts/intel/socfpga_agilex5_socdk.dts
index 262bb3e8e5c7..0985e70dfe44 100644
--- a/arch/arm64/boot/dts/intel/socfpga_agilex5_socdk.dts
+++ b/arch/arm64/boot/dts/intel/socfpga_agilex5_socdk.dts
@@ -110,3 +110,7 @@ &usb0 {
&watchdog0 {
status = "okay";
};
+
+&svc {
+ rsu-handle = <&qspi_boot>;
+};
diff --git a/arch/arm64/boot/dts/intel/socfpga_agilex5_socdk_013b.dts b/arch/arm64/boot/dts/intel/socfpga_agilex5_socdk_013b.dts
index f71e1280c778..5948f125ba0b 100644
--- a/arch/arm64/boot/dts/intel/socfpga_agilex5_socdk_013b.dts
+++ b/arch/arm64/boot/dts/intel/socfpga_agilex5_socdk_013b.dts
@@ -124,3 +124,7 @@ &uart0 {
&watchdog0 {
status = "okay";
};
+
+&svc {
+ rsu-handle = <&qspi_boot>;
+};
diff --git a/arch/arm64/boot/dts/intel/socfpga_agilex5_socdk_modular.dts b/arch/arm64/boot/dts/intel/socfpga_agilex5_socdk_modular.dts
index 1831402d8808..78be156208d9 100644
--- a/arch/arm64/boot/dts/intel/socfpga_agilex5_socdk_modular.dts
+++ b/arch/arm64/boot/dts/intel/socfpga_agilex5_socdk_modular.dts
@@ -107,3 +107,7 @@ &uart0 {
&watchdog0 {
status = "okay";
};
+
+&svc {
+ rsu-handle = <&qspi_boot>;
+};
diff --git a/arch/arm64/boot/dts/intel/socfpga_agilex_socdk.dts b/arch/arm64/boot/dts/intel/socfpga_agilex_socdk.dts
index 8f8a5423ba02..d277b7073dbf 100644
--- a/arch/arm64/boot/dts/intel/socfpga_agilex_socdk.dts
+++ b/arch/arm64/boot/dts/intel/socfpga_agilex_socdk.dts
@@ -136,3 +136,7 @@ root: partition@4200000 {
};
};
};
+
+&svc {
+ rsu-handle = <&qspi_boot>;
+};
diff --git a/arch/arm64/boot/dts/intel/socfpga_n5x_socdk.dts b/arch/arm64/boot/dts/intel/socfpga_n5x_socdk.dts
index d7d500f50a07..ac8cf8b7257b 100644
--- a/arch/arm64/boot/dts/intel/socfpga_n5x_socdk.dts
+++ b/arch/arm64/boot/dts/intel/socfpga_n5x_socdk.dts
@@ -126,3 +126,7 @@ &usb0 {
&watchdog0 {
status = "okay";
};
+
+&svc {
+ rsu-handle = <&qspi_boot>;
+};
--
2.43.7
^ permalink raw reply related [flat|nested] 5+ messages in thread