Disable Jetson AGX Orin IOMMU

Hi, NVIDIA developers

Thanks for your help, i successful disable PCIe iommu on Jetson AGX Orin now. There is some steps for reference:

step1: disable CONFIG_ARM_SMMU_DISABLE_BYPASS_BY_DEFAULT config option

diff --git a/arch/arm64/configs/defconfig b/arch/arm64/configs/defconfig
index bda2dff571c4..1ad72b48f9a3 100644
--- a/arch/arm64/configs/defconfig
+++ b/arch/arm64/configs/defconfig
@@ -1225,6 +1225,7 @@ CONFIG_TEGRA_IOMMU_SMMU=y
 CONFIG_ARM_SMMU=y
 CONFIG_ARM_SMMU_DEBUG=y
 CONFIG_ARM_SMMU_V3=y
+# CONFIG_ARM_SMMU_DISABLE_BYPASS_BY_DEFAULT is not set
 CONFIG_SOUNDWIRE=m
 CONFIG_ARCH_TEGRA_210_SOC=y
 CONFIG_ARCH_TEGRA_186_SOC=y

step2: remove iommus, iommu-map and dma-coherent properties from sources/hardware/nvidia/soc/t23x/kernel-dts/tegra234-soc/tegra234-soc-pcie.dtsi (example for C5 X8 root point)

 /* C5 X8 */
        pcie_c5_rp: pcie@141a0000 {
               
                ...

                interconnects = <&mc TEGRA234_MEMORY_CLIENT_PCIE5R>,
                                <&mc TEGRA234_MEMORY_CLIENT_PCIE5W>;
                interconnect-names = "dma-mem", "dma-mem";
                //iommus = <&smmu_niso0 TEGRA_SID_NISO0_PCIE5>;
                //iommu-map = <0x0 &smmu_niso0 TEGRA_SID_NISO0_PCIE5 0x1000>;
                msi-parent = <&gic_v2m TEGRA_SID_NISO0_PCIE5>;
                msi-map = <0x0 &gic_v2m TEGRA_SID_NISO0_PCIE5 0x1000>;
                //dma-coherent;
                //iommu-map-mask = <0x0>;

Thanks for NV developers help again!

Thanks you your sharing to the community!

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.