* [PATCH v2] dt-bindings: iommu: riscv: Add bindings for Tenstorrent RISC-V IOMMU
@ 2026-05-20 6:16 Drew Fustini
2026-05-20 6:37 ` sashiko-bot
0 siblings, 1 reply; 2+ messages in thread
From: Drew Fustini @ 2026-05-20 6:16 UTC (permalink / raw)
To: Tomasz Jeznach, Joerg Roedel, Will Deacon, Robin Murphy,
Rob Herring, Krzysztof Kozlowski, Conor Dooley, Paul Walmsley,
Palmer Dabbelt, Albert Ou, Alexandre Ghiti
Cc: iommu, linux-riscv, devicetree, linux-kernel, Drew Fustini,
Joel Stanley, Joerg Roedel, Nicholas Piggin
From: Nicholas Piggin <npiggin@gmail.com>
Extend the binding to cover details specific to the Tenstorrent RISC-V
IOMMU. In particular, a second register range is added which contains
M-privileged registers, e.g., PMAs and PMPs.
The RISC-V spec S-privileged registers remain in the first register
range and are compatible with "riscv,iommu" so the Linux driver does not
notice any difference, but the binding will be used by OpenSBI and
potentially other M-mode software.
Reviewed-by: Joel Stanley <joel@jms.id.au>
Acked-by: Joerg Roedel <joerg.roedel@amd.com>
Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
[fustini: fix dt_binding_check errors]
Signed-off-by: Drew Fustini <fustini@kernel.org>
---
v2 changes:
- Fix dt_binding_check errors
- Add the Acked-by: from Joerg
- Drop RFC prefix
Link to v1:
https://lore.kernel.org/lkml/20260310003850.3837030-1-npiggin@gmail.com/
.../bindings/iommu/riscv,iommu.yaml | 62 ++++++++++++++++---
1 file changed, 55 insertions(+), 7 deletions(-)
diff --git a/Documentation/devicetree/bindings/iommu/riscv,iommu.yaml b/Documentation/devicetree/bindings/iommu/riscv,iommu.yaml
index d4838c3b3741..5aad8cf67840 100644
--- a/Documentation/devicetree/bindings/iommu/riscv,iommu.yaml
+++ b/Documentation/devicetree/bindings/iommu/riscv,iommu.yaml
@@ -32,22 +32,35 @@ properties:
# should be specified along with 'reg' property providing MMIO location.
compatible:
oneOf:
- - items:
+ - description: Platform (non-PCIe) IOMMU implementations
+ items:
- enum:
- qemu,riscv-iommu
- const: riscv,iommu
- - items:
+ - description: PCIe IOMMU implementations
+ items:
- enum:
- pci1efd,edf1
- const: riscv,pci-iommu
+ - description: Tenstorrent IOMMUs implementing "riscv,iommu"
+ items:
+ - enum:
+ - tenstorrent,riscv-iommu
+ - const: riscv,iommu
reg:
- maxItems: 1
+ minItems: 1
+ maxItems: 2
description:
- For non-PCI devices this represents base address and size of for the
- IOMMU memory mapped registers interface.
- For PCI IOMMU hardware implementation this should represent an address
- of the IOMMU, as defined in the PCI Bus Binding reference.
+ For non-PCI devices the first item represents base address and size of
+ for the IOMMU memory mapped registers interface.
+ For PCI IOMMU hardware implementation the first item should represent
+ an address of the IOMMU, as defined in the PCI Bus Binding reference.
+
+ reg-names:
+ items:
+ - const: base
+ - const: machine
'#iommu-cells':
const: 1
@@ -75,6 +88,31 @@ required:
additionalProperties: false
+allOf:
+ - if:
+ properties:
+ compatible:
+ contains:
+ enum:
+ - tenstorrent,riscv-iommu
+ then:
+ properties:
+ reg:
+ items:
+ - description: IOMMU base registers
+ - description: Tenstorrent IOMMU machine mode registers.
+ reg-names:
+ items:
+ - const: base
+ - const: machine
+ description:
+ Region containing platform specific MMRs for machine-mode
+ configuration, such as PMA and PMP registers.
+ else:
+ properties:
+ reg:
+ maxItems: 1
+
examples:
- |+
/* Example 1 (IOMMU device with wired interrupts) */
@@ -145,3 +183,13 @@ examples:
};
};
};
+
+ - |+
+ /* Example 5 (Tenstorrent IOMMU device with MSIs) */
+ iommu5: iommu@d2020000 {
+ compatible = "tenstorrent,riscv-iommu", "riscv,iommu";
+ reg = <0xd2020000 0x10000 0xaa000000 0x10000>;
+ reg-names = "base", "machine";
+ msi-parent = <&imsics_smode>;
+ #iommu-cells = <1>;
+ };
--
2.43.0
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [PATCH v2] dt-bindings: iommu: riscv: Add bindings for Tenstorrent RISC-V IOMMU
2026-05-20 6:16 [PATCH v2] dt-bindings: iommu: riscv: Add bindings for Tenstorrent RISC-V IOMMU Drew Fustini
@ 2026-05-20 6:37 ` sashiko-bot
0 siblings, 0 replies; 2+ messages in thread
From: sashiko-bot @ 2026-05-20 6:37 UTC (permalink / raw)
To: Drew Fustini; +Cc: devicetree, conor+dt, robh
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Medium] Missing Schema Constraints for Hardware Variant
--
commit 171e0844b229701117691d7ea692a719866e79d9
Author: Nicholas Piggin <npiggin@gmail.com>
dt-bindings: iommu: riscv: Add bindings for Tenstorrent RISC-V IOMMU
This commit extends the RISC-V IOMMU binding to cover the Tenstorrent
variant. It adds a second register range for machine-mode (M-privileged)
registers such as PMAs and PMPs.
> diff --git a/Documentation/devicetree/bindings/iommu/riscv,iommu.yaml b/Documentation/devicetree/bindings/iommu/riscv,iommu.yaml
> --- a/Documentation/devicetree/bindings/iommu/riscv,iommu.yaml
> +++ b/Documentation/devicetree/bindings/iommu/riscv,iommu.yaml
[ ... ]
> @@ -75,6 +88,31 @@ required:
>
> additionalProperties: false
>
> +allOf:
> + - if:
> + properties:
> + compatible:
> + contains:
> + enum:
> + - tenstorrent,riscv-iommu
> + then:
> + properties:
> + reg:
> + items:
> + - description: IOMMU base registers
> + - description: Tenstorrent IOMMU machine mode registers.
> + reg-names:
> + items:
> + - const: base
> + - const: machine
> + description:
> + Region containing platform specific MMRs for machine-mode
> + configuration, such as PMA and PMP registers.
[Severity: Medium]
Should minItems: 2 be explicitly specified for the reg property in this
block?
Since the top-level schema allows minItems: 1, a device tree could
provide only a single register range and silently pass validation if
the tooling does not automatically infer the minimum items from the items
list within the conditional block.
Additionally, since the Tenstorrent variant introduces a second distinct
register region, should reg-names be added to a required list within this
conditional block to guarantee the regions are always properly disambiguated
by software?
> + else:
> + properties:
> + reg:
> + maxItems: 1
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260520061855.1623468-4-fustini@kernel.org?part=1
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2026-05-20 6:37 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-05-20 6:16 [PATCH v2] dt-bindings: iommu: riscv: Add bindings for Tenstorrent RISC-V IOMMU Drew Fustini
2026-05-20 6:37 ` sashiko-bot
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox