Skip to content

Commit c7289b1

Browse files
committed
arm64: tegra: Enable SMMU support on Tegra194
Add the device tree node for the dual-SMMU found on Tegra194 and hook up peripherals such as host1x, BPMP, HDA, SDMMC, EQOS and VIC. Signed-off-by: Thierry Reding <treding@nvidia.com>
1 parent b966d2d commit c7289b1

1 file changed

Lines changed: 86 additions & 0 deletions

File tree

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

Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@
6262
interconnects = <&mc TEGRA194_MEMORY_CLIENT_EQOSR &emc>,
6363
<&mc TEGRA194_MEMORY_CLIENT_EQOSW &emc>;
6464
interconnect-names = "dma-mem", "write";
65+
iommus = <&smmu TEGRA194_SID_EQOS>;
6566
status = "disabled";
6667

6768
snps,write-requests = <1>;
@@ -733,6 +734,7 @@
733734
interconnects = <&mc TEGRA194_MEMORY_CLIENT_SDMMCRA &emc>,
734735
<&mc TEGRA194_MEMORY_CLIENT_SDMMCWA &emc>;
735736
interconnect-names = "dma-mem", "write";
737+
iommus = <&smmu TEGRA194_SID_SDMMC1>;
736738
nvidia,pad-autocal-pull-up-offset-3v3-timeout =
737739
<0x07>;
738740
nvidia,pad-autocal-pull-down-offset-3v3-timeout =
@@ -759,6 +761,7 @@
759761
interconnects = <&mc TEGRA194_MEMORY_CLIENT_SDMMCR &emc>,
760762
<&mc TEGRA194_MEMORY_CLIENT_SDMMCW &emc>;
761763
interconnect-names = "dma-mem", "write";
764+
iommus = <&smmu TEGRA194_SID_SDMMC3>;
762765
nvidia,pad-autocal-pull-up-offset-1v8 = <0x00>;
763766
nvidia,pad-autocal-pull-down-offset-1v8 = <0x7a>;
764767
nvidia,pad-autocal-pull-up-offset-3v3-timeout = <0x07>;
@@ -790,6 +793,7 @@
790793
interconnects = <&mc TEGRA194_MEMORY_CLIENT_SDMMCRAB &emc>,
791794
<&mc TEGRA194_MEMORY_CLIENT_SDMMCWAB &emc>;
792795
interconnect-names = "dma-mem", "write";
796+
iommus = <&smmu TEGRA194_SID_SDMMC4>;
793797
nvidia,pad-autocal-pull-up-offset-hs400 = <0x00>;
794798
nvidia,pad-autocal-pull-down-offset-hs400 = <0x00>;
795799
nvidia,pad-autocal-pull-up-offset-1v8-timeout = <0x0a>;
@@ -821,6 +825,7 @@
821825
interconnects = <&mc TEGRA194_MEMORY_CLIENT_HDAR &emc>,
822826
<&mc TEGRA194_MEMORY_CLIENT_HDAW &emc>;
823827
interconnect-names = "dma-mem", "write";
828+
iommus = <&smmu TEGRA194_SID_HDA>;
824829
status = "disabled";
825830
};
826831

@@ -1300,6 +1305,84 @@
13001305
interrupt-controller;
13011306
};
13021307

1308+
smmu: iommu@12000000 {
1309+
compatible = "nvidia,tegra194-smmu", "nvidia,smmu-500";
1310+
reg = <0x12000000 0x800000>,
1311+
<0x11000000 0x800000>;
1312+
interrupts = <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1313+
<GIC_SPI 232 IRQ_TYPE_LEVEL_HIGH>,
1314+
<GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1315+
<GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1316+
<GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1317+
<GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1318+
<GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1319+
<GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1320+
<GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1321+
<GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1322+
<GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1323+
<GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1324+
<GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1325+
<GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1326+
<GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1327+
<GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1328+
<GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1329+
<GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1330+
<GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1331+
<GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1332+
<GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1333+
<GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1334+
<GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1335+
<GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1336+
<GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1337+
<GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1338+
<GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1339+
<GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1340+
<GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1341+
<GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1342+
<GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1343+
<GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1344+
<GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1345+
<GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1346+
<GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1347+
<GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1348+
<GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1349+
<GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1350+
<GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1351+
<GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1352+
<GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1353+
<GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1354+
<GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1355+
<GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1356+
<GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1357+
<GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1358+
<GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1359+
<GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1360+
<GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1361+
<GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1362+
<GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1363+
<GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1364+
<GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1365+
<GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1366+
<GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1367+
<GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1368+
<GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1369+
<GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1370+
<GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1371+
<GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1372+
<GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1373+
<GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1374+
<GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1375+
<GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1376+
<GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1377+
<GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>;
1378+
stream-match-mask = <0x7f80>;
1379+
#global-interrupts = <2>;
1380+
#iommu-cells = <1>;
1381+
1382+
nvidia,memory-controller = <&mc>;
1383+
status = "okay";
1384+
};
1385+
13031386
host1x@13e00000 {
13041387
compatible = "nvidia,tegra194-host1x";
13051388
reg = <0x13e00000 0x10000>,
@@ -1319,6 +1402,7 @@
13191402
ranges = <0x15000000 0x15000000 0x01000000>;
13201403
interconnects = <&mc TEGRA194_MEMORY_CLIENT_HOST1XDMAR &emc>;
13211404
interconnect-names = "dma-mem";
1405+
iommus = <&smmu TEGRA194_SID_HOST1X>;
13221406

13231407
display-hub@15200000 {
13241408
compatible = "nvidia,tegra194-display";
@@ -1430,6 +1514,7 @@
14301514
interconnects = <&mc TEGRA194_MEMORY_CLIENT_VICSRD &emc>,
14311515
<&mc TEGRA194_MEMORY_CLIENT_VICSWR &emc>;
14321516
interconnect-names = "dma-mem", "write";
1517+
iommus = <&smmu TEGRA194_SID_VIC>;
14331518
};
14341519

14351520
dpaux0: dpaux@155c0000 {
@@ -2136,6 +2221,7 @@
21362221
<&mc TEGRA194_MEMORY_CLIENT_BPMPDMAR &emc>,
21372222
<&mc TEGRA194_MEMORY_CLIENT_BPMPDMAW &emc>;
21382223
interconnect-names = "read", "write", "dma-mem", "dma-write";
2224+
iommus = <&smmu TEGRA194_SID_BPMP>;
21392225

21402226
bpmp_i2c: i2c {
21412227
compatible = "nvidia,tegra186-bpmp-i2c";

0 commit comments

Comments
 (0)