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!