Skip to content

Commit fe57d0a

Browse files
ashishmhetre8thierryreding
authored andcommitted
arm64: tegra: 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. Update SMMU compatible strings to use nvidia,tegra264-smmu to enable CMDQV support. Add device tree nodes for the CMDQV hardware 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. Acked-by: Nicolin Chen <nicolinc@nvidia.com> Signed-off-by: Ashish Mhetre <amhetre@nvidia.com> Reviewed-by: Jon Hunter <jonathanh@nvidia.com> Signed-off-by: Thierry Reding <treding@nvidia.com>
1 parent fbde94c commit fe57d0a

2 files changed

Lines changed: 53 additions & 5 deletions

File tree

arch/arm64/boot/dts/nvidia/tegra264-p3834.dtsi

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,16 @@
2323
status = "okay";
2424
};
2525

26+
cmdqv@5200000 {
27+
status = "okay";
28+
};
29+
2630
iommu@6000000 {
2731
status = "okay";
2832
};
33+
34+
cmdqv@6200000 {
35+
status = "okay";
36+
};
2937
};
3038
};

arch/arm64/boot/dts/nvidia/tegra264.dtsi

Lines changed: 45 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3361,7 +3361,7 @@
33613361
<0x02 0x00000000 0xd0 0x00000000 0x08 0x80000000>; /* ECAM, prefetchable memory, I/O */
33623362

33633363
smmu1: iommu@5000000 {
3364-
compatible = "arm,smmu-v3";
3364+
compatible = "nvidia,tegra264-smmu", "arm,smmu-v3";
33653365
reg = <0x00 0x5000000 0x0 0x200000>;
33663366
interrupts = <GIC_SPI 12 IRQ_TYPE_EDGE_RISING>,
33673367
<GIC_SPI 13 IRQ_TYPE_EDGE_RISING>;
@@ -3370,10 +3370,18 @@
33703370

33713371
#iommu-cells = <1>;
33723372
dma-coherent;
3373+
nvidia,cmdqv = <&cmdqv1>;
3374+
};
3375+
3376+
cmdqv1: cmdqv@5200000 {
3377+
compatible = "nvidia,tegra264-cmdqv";
3378+
reg = <0x00 0x5200000 0x0 0x830000>;
3379+
interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>;
3380+
status = "disabled";
33733381
};
33743382

33753383
smmu2: iommu@6000000 {
3376-
compatible = "arm,smmu-v3";
3384+
compatible = "nvidia,tegra264-smmu", "arm,smmu-v3";
33773385
reg = <0x00 0x6000000 0x0 0x200000>;
33783386
interrupts = <GIC_SPI 1 IRQ_TYPE_EDGE_RISING>,
33793387
<GIC_SPI 2 IRQ_TYPE_EDGE_RISING>;
@@ -3382,6 +3390,14 @@
33823390

33833391
#iommu-cells = <1>;
33843392
dma-coherent;
3393+
nvidia,cmdqv = <&cmdqv2>;
3394+
};
3395+
3396+
cmdqv2: cmdqv@6200000 {
3397+
compatible = "nvidia,tegra264-cmdqv";
3398+
reg = <0x00 0x6200000 0x0 0x830000>;
3399+
interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>;
3400+
status = "disabled";
33853401
};
33863402

33873403
mc: memory-controller@8020000 {
@@ -3438,7 +3454,7 @@
34383454
};
34393455

34403456
smmu0: iommu@a000000 {
3441-
compatible = "arm,smmu-v3";
3457+
compatible = "nvidia,tegra264-smmu", "arm,smmu-v3";
34423458
reg = <0x00 0xa000000 0x0 0x200000>;
34433459
interrupts = <GIC_SPI 21 IRQ_TYPE_EDGE_RISING>,
34443460
<GIC_SPI 22 IRQ_TYPE_EDGE_RISING>;
@@ -3447,10 +3463,18 @@
34473463

34483464
#iommu-cells = <1>;
34493465
dma-coherent;
3466+
nvidia,cmdqv = <&cmdqv0>;
3467+
};
3468+
3469+
cmdqv0: cmdqv@a200000 {
3470+
compatible = "nvidia,tegra264-cmdqv";
3471+
reg = <0x00 0xa200000 0x0 0x830000>;
3472+
interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>;
3473+
status = "disabled";
34503474
};
34513475

34523476
smmu4: iommu@b000000 {
3453-
compatible = "arm,smmu-v3";
3477+
compatible = "nvidia,tegra264-smmu", "arm,smmu-v3";
34543478
reg = <0x00 0xb000000 0x0 0x200000>;
34553479
interrupts = <GIC_SPI 30 IRQ_TYPE_EDGE_RISING>,
34563480
<GIC_SPI 31 IRQ_TYPE_EDGE_RISING>;
@@ -3459,6 +3483,14 @@
34593483

34603484
#iommu-cells = <1>;
34613485
dma-coherent;
3486+
nvidia,cmdqv = <&cmdqv4>;
3487+
};
3488+
3489+
cmdqv4: cmdqv@b200000 {
3490+
compatible = "nvidia,tegra264-cmdqv";
3491+
reg = <0x00 0xb200000 0x0 0x830000>;
3492+
interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
3493+
status = "disabled";
34623494
};
34633495

34643496
i2c14: i2c@c410000 {
@@ -3691,7 +3723,7 @@
36913723
ranges = <0x00 0x00000000 0x88 0x00000000 0x01 0x00000000>;
36923724

36933725
smmu3: iommu@6000000 {
3694-
compatible = "arm,smmu-v3";
3726+
compatible = "nvidia,tegra264-smmu", "arm,smmu-v3";
36953727
reg = <0x00 0x6000000 0x0 0x200000>;
36963728
interrupts = <GIC_SPI 225 IRQ_TYPE_EDGE_RISING>,
36973729
<GIC_SPI 226 IRQ_TYPE_EDGE_RISING>;
@@ -3700,6 +3732,14 @@
37003732

37013733
#iommu-cells = <1>;
37023734
dma-coherent;
3735+
nvidia,cmdqv = <&cmdqv3>;
3736+
};
3737+
3738+
cmdqv3: cmdqv@6200000 {
3739+
compatible = "nvidia,tegra264-cmdqv";
3740+
reg = <0x00 0x6200000 0x0 0x830000>;
3741+
interrupts = <GIC_SPI 232 IRQ_TYPE_LEVEL_HIGH>;
3742+
status = "disabled";
37033743
};
37043744

37053745
hda@90b0000 {

0 commit comments

Comments
 (0)