Skip to contentSkip to conversation

Enable Service layer driver for Agilex5

PATCH In review Khairul Anuar Romli 3 participants 6 messages Nov 6, 2025 – Nov 7, 2025

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

v6 cover Enable Service layer driver for Agilex5

This patch series introduces support for the Agilex5 service layer driver (SVC) in the Linux kernel. The changes span across device tree bindings, platform DTS files, and the Stratix10 SVC firmware driver.

These changes are necessary to enable firmware communication on Agilex5 SoCs via the SVC interface, similar to existing support for Stratix10 and Agilex platforms.

Agilex5 introduces the ability for the TBU to operate in non-secure mode, making it accessible to Linux through the IOMMU framework. This key difference enables improved memory management in non-secure environments. As a result, this series extends the SVC driver and device tree bindings to support IOMMU integration for Agilex5.
---
Notes:
This patch series is applied on socfpga maintainer's tree
https://git.kernel.org/pub/scm/linux/kernel/git/dinguyen/linux.git/log/?h=socfpga_dts_for_v6.19

Changes in v6:
- Reinstate AllOf so that the future addition will not have not require re-indentation.
- Add svc node below cpu node in DT.
Changes in v5:
- Use contains enum instead of const
Changes in v4:
- Refactor the logical check without using AllOf.
Changes in v3:
- Remove driver changes in driver as it is fully compatible
- Add iommu entry and rewrite the git commit message to describe why the changes is required.
Changes in v2:
- Add driver changes for Agilex5-svc compatible
---
Khairul Anuar Romli (2):
dt-bindings: firmware: svc: Add IOMMU support for Agilex5
arm64: dts: intel: Add Agilex5 SVC node with memory region

 .../bindings/firmware/intel,stratix10-svc.yaml    | 15 +++++++++++++++
 arch/arm64/boot/dts/intel/socfpga_agilex5.dtsi    |  9 +++++++++
 2 files changed, 24 insertions(+)
Signature · 1 line
2.43.7
#1 lore raw

PATCH v6 1/2 dt-bindings: firmware: svc: Add IOMMU support for Agilex5

In Agilex5, the TBU (Translation Buffer Unit) can now operate in non-secure mode, enabling Linux to utilize it through the IOMMU framework. This allows improved memory management capabilities in non-secure environments. With Agilex5 lifting this restriction, we are now extending the device tree bindings to support IOMMU for the Agilex5 SVC.

---
Changes in v6:
- Reinstate AllOf to avoid re-indentation on future addition to the logical condition.
Changes in v6:
- Use contains enum instead of const
Changes in v4:
- Fix syntax / style error.
- Refactor code not to use AllOf but instead use if directly.
Changes in v3:
- Add iommu property.
- Add logical check where only Agilex5 required iommus
- Rewrite the commit message to explain why this changes is needed.
Changes in v2:
- Reprase commit message to exclude iommu

---
 .../bindings/firmware/intel,stratix10-svc.yaml    | 15 +++++++++++++++
 1 file changed, 15 insertions(+)
Documentation/devicetree/bindings/firmware/intel,stratix10-svc.yaml +15 -0
index fac1e955852e..b42cfa78b28b 100644
@@ -34,6 +34,7 @@ properties:
     enum:
       - intel,stratix10-svc
       - intel,agilex-svc
+      - intel,agilex5-svc
 
   method:
     description: |
@@ -54,6 +55,9 @@ properties:
       reserved memory region for the service layer driver to
       communicate with the secure device manager.
 
+  iommus:
+    maxItems: 1
+
   fpga-mgr:
     $ref: /schemas/fpga/intel,stratix10-soc-fpga-mgr.yaml
     description: Optional child node for fpga manager to perform fabric configuration.
@@ -63,6 +67,17 @@ required:
   - method
   - memory-region
 
+allOf:
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - intel,agilex5-svc
+    then:
+      required:
+        - iommus
+
 additionalProperties: false
 
 examples:
Signature · 1 line
2.43.7
#2 lore raw

Re: [PATCH v6 1/2] dt-bindings: firmware: svc: Add IOMMU support for Agilex5

Quoted 8 lines · Khairul Anuar Romli

In Agilex5, the TBU (Translation Buffer Unit) can now operate in non-secure mode, enabling Linux to utilize it through the IOMMU framework. This allows improved memory management capabilities in non-secure environments. With Agilex5 lifting this restriction, we are now extending the device tree bindings to support IOMMU for the Agilex5 SVC.

---

<form letter>
This is a friendly reminder during the review process.

It looks like you received a tag and forgot to add it.

If you do not know the process, here is a short explanation:
Please add Acked-by/Reviewed-by/Tested-by tags when posting new versions of patchset, under or above your Signed-off-by tag, unless patch changed significantly (e.g. new properties added to the DT bindings). Tag is "received", when provided in a message replied to you on the mailing list. Tools like b4 can help here. However, there's no need to repost patches *only* to add the tags. The upstream maintainer will do that for tags received on the version they apply.

Please read:
https://elixir.bootlin.com/linux/v6.12-rc3/source/Documentation/process/submitting-patches.rst#L577

If a tag was not added on purpose, please state why and what changed. </form letter>

Best regards,
Krzysztof

#3 lore raw

Re: [PATCH v6 1/2] dt-bindings: firmware: svc: Add IOMMU support for Agilex5

Quoted 24 lines · Krzysztof Kozlowski
Quoted 8 lines · Khairul Anuar Romli

In Agilex5, the TBU (Translation Buffer Unit) can now operate in non-secure mode, enabling Linux to utilize it through the IOMMU framework. This allows improved memory management capabilities in non-secure environments. With Agilex5 lifting this restriction, we are now extending the device tree bindings to support IOMMU for the Agilex5 SVC.

---

<form letter>
This is a friendly reminder during the review process.

It looks like you received a tag and forgot to add it.

If you do not know the process, here is a short explanation:
Please add Acked-by/Reviewed-by/Tested-by tags when posting new versions of patchset, under or above your Signed-off-by tag, unless patch changed significantly (e.g. new properties added to the DT bindings). Tag is "received", when provided in a message replied to you on the mailing list. Tools like b4 can help here. However, there's no need to repost patches *only* to add the tags. The upstream maintainer will do that for tags received on the version they apply.

Quoted 9 lines

Please read:
https://elixir.bootlin.com/linux/v6.12-rc3/source/Documentation/process/submitting-patches.rst#L577

If a tag was not added on purpose, please state why and what changed. </form letter>

Best regards,
Krzysztof

The reviewed-by tag was not added on purpose because I re-added the "allOf" and add indentations to the rest of the of logical block versus the previous version.

Thanks.

Regards,
Khairul

maintainer
#4 lore raw

Re: [PATCH v6 1/2] dt-bindings: firmware: svc: Add IOMMU support for Agilex5

In reply to Khairul Anuar Romli
Quoted 6 lines · Khairul Anuar Romli

In Agilex5, the TBU (Translation Buffer Unit) can now operate in non-secure mode, enabling Linux to utilize it through the IOMMU framework. This allows improved memory management capabilities in non-secure environments. With Agilex5 lifting this restriction, we are now extending the device tree bindings to support IOMMU for the Agilex5 SVC.

Quoted 7 lines

---
Changes in v6:
- Reinstate AllOf to avoid re-indentation on future addition to the logical condition.
Changes in v6:
- Use contains enum instead of const

This should be v5. Krzysztof gave you his Reviewed-by: in v5, you should include his Reviewed-by: in this version.

Dinh

#5 lore raw

PATCH v6 2/2 arm64: dts: intel: Add Agilex5 SVC node with memory region

In reply to Khairul Anuar Romli

Introduce the Stratix10 SoC Service Layer (SVC) node for Agilex5 SoCs. This node includes the compatible string "intel,agilex5-svc" and references a reserved memory region used for communication with the Secure Device Manager (SDM).

Agilex5 introduces changes in how reserved memory is mapped and accessed compared to previous SoC generations. This commit updates the device tree structure to support Agilex5-specific handling of the SVC interface.

---
Changes in v6:
- Move svc node below cpu node.
Changes in v5:
- No change.
Changes in v4:
- Exclude peers reviewers in the sign off.
Changes in v3:
- include iommu property in svc node.
- Rephrase git commit message to describe iommu presence in Agilex5
Changes in v2:
- Rephrase commit message to exclude mentioning iommu

---
 arch/arm64/boot/dts/intel/socfpga_agilex5.dtsi | 9 +++++++++
 1 file changed, 9 insertions(+)
arch/arm64/boot/dts/intel/socfpga_agilex5.dtsi +9 -0
index 408911ea7bc5..bf7128adddde 100644
@@ -79,6 +79,15 @@ L3: l3-cache {
 
 	};
 
+	firmware {
+		svc {
+			compatible = "intel,agilex5-svc";
+			method = "smc";
+			memory-region = <&service_reserved>;
+			iommus = <&smmu 10>;
+		};
+	};
+
 	psci {
 		compatible = "arm,psci-0.2";
 		method = "smc";
Signature · 1 line
2.43.7