[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20251031062959.1521704-4-amhetre@nvidia.com>
Date: Fri, 31 Oct 2025 06:29:59 +0000
From: Ashish Mhetre <amhetre@...dia.com>
To: <will@...nel.org>, <robin.murphy@....com>, <joro@...tes.org>,
<robh@...nel.org>, <krzk+dt@...nel.org>, <conor+dt@...nel.org>,
<thierry.reding@...il.com>, <jonathanh@...dia.com>, <jgg@...pe.ca>,
<nicolinc@...dia.com>
CC: <linux-tegra@...dia.com>, <linux-arm-kernel@...ts.infradead.org>,
<iommu@...ts.linux.dev>, <devicetree@...r.kernel.org>,
<linux-kernel@...r.kernel.org>, <linux-tegra@...r.kernel.org>, Ashish Mhetre
<amhetre@...dia.com>
Subject: [PATCH 3/3] arm64: dts: nvidia: Add nodes for CMDQV
The Command Queue Virtualization (CMDQV) hardware is part of the
SMMUv3 implementation on NVIDIA Tegra SoCs. It assists in
virtualizing the command queue for the SMMU.
Add device tree nodes for the CMDQV hardware in the Tegra264 SoC
device tree and enable them on the tegra264-p3834 platform where
SMMUs are enabled. Each SMMU instance is paired with its corresponding
CMDQV instance via the nvidia,cmdqv property.
Signed-off-by: Ashish Mhetre <amhetre@...dia.com>
---
.../arm64/boot/dts/nvidia/tegra264-p3834.dtsi | 8 +++
arch/arm64/boot/dts/nvidia/tegra264.dtsi | 50 +++++++++++++++++++
2 files changed, 58 insertions(+)
diff --git a/arch/arm64/boot/dts/nvidia/tegra264-p3834.dtsi b/arch/arm64/boot/dts/nvidia/tegra264-p3834.dtsi
index 06795c82427a..375d122b92fa 100644
--- a/arch/arm64/boot/dts/nvidia/tegra264-p3834.dtsi
+++ b/arch/arm64/boot/dts/nvidia/tegra264-p3834.dtsi
@@ -26,5 +26,13 @@ iommu@...0000 {
iommu@...0000 {
status = "okay";
};
+
+ cmdqv@...0000 {
+ status = "okay";
+ };
+
+ cmdqv@...0000 {
+ status = "okay";
+ };
};
};
diff --git a/arch/arm64/boot/dts/nvidia/tegra264.dtsi b/arch/arm64/boot/dts/nvidia/tegra264.dtsi
index 872a69553e3c..609f6f5f7ef5 100644
--- a/arch/arm64/boot/dts/nvidia/tegra264.dtsi
+++ b/arch/arm64/boot/dts/nvidia/tegra264.dtsi
@@ -212,6 +212,7 @@ smmu1: iommu@...0000 {
#iommu-cells = <1>;
dma-coherent;
+ nvidia,cmdqv = <&cmdqv1>;
};
smmu2: iommu@...0000 {
@@ -224,6 +225,25 @@ smmu2: iommu@...0000 {
#iommu-cells = <1>;
dma-coherent;
+ nvidia,cmdqv = <&cmdqv2>;
+ };
+
+ cmdqv1: cmdqv@...0000 {
+ compatible = "nvidia,tegra264-cmdqv";
+ status = "disabled";
+
+ reg = <0x00 0x5200000 0x0 0x830000>;
+ interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-names = "cmdqv";
+ };
+
+ cmdqv2: cmdqv@...0000 {
+ compatible = "nvidia,tegra264-cmdqv";
+ status = "disabled";
+
+ reg = <0x00 0x6200000 0x0 0x830000>;
+ interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-names = "cmdqv";
};
mc: memory-controller@...0000 {
@@ -288,6 +308,7 @@ smmu0: iommu@...0000 {
#iommu-cells = <1>;
dma-coherent;
+ nvidia,cmdqv = <&cmdqv0>;
};
smmu4: iommu@...0000 {
@@ -300,6 +321,25 @@ smmu4: iommu@...0000 {
#iommu-cells = <1>;
dma-coherent;
+ nvidia,cmdqv = <&cmdqv4>;
+ };
+
+ cmdqv0: cmdqv@...0000 {
+ compatible = "nvidia,tegra264-cmdqv";
+ status = "disabled";
+
+ reg = <0x00 0xa200000 0x0 0x830000>;
+ interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-names = "cmdqv";
+ };
+
+ cmdqv4: cmdqv@...0000 {
+ compatible = "nvidia,tegra264-cmdqv";
+ status = "disabled";
+
+ reg = <0x00 0xb200000 0x0 0x830000>;
+ interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-names = "cmdqv";
};
i2c14: i2c@...0000 {
@@ -541,6 +581,16 @@ smmu3: iommu@...0000 {
#iommu-cells = <1>;
dma-coherent;
+ nvidia,cmdqv = <&cmdqv3>;
+ };
+
+ cmdqv3: cmdqv@...0000 {
+ compatible = "nvidia,tegra264-cmdqv";
+ status = "disabled";
+
+ reg = <0x00 0x6200000 0x0 0x830000>;
+ interrupts = <GIC_SPI 232 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-names = "cmdqv";
};
};
--
2.25.1
Powered by blists - more mailing lists