Hi.
I am working on a PCIe driver for a custom Xilinx FPGA based end point device. I recently disabled SMMU by removing these 4 lines from the device tree node pcie@141a0000:
iommus = <&smmu TEGRA_SID_PCIE5>;
dma-coherent;
iommu-map = <0x0 &smmu TEGRA_SID_PCIE5 0x1000>;
iommu-map-mask = <0x0>;
However, after disabling SMMU, when I send data from my AGX Xavier root port to my end point device, I get the following errors:
[ 59.326048] arm-smmu 12000000.iommu: Unexpected global fault, this could be serious
[ 59.326258] arm-smmu 12000000.iommu: GFSR 0x80000002, GFSYNR0 0x00000000, GFSYNR1 0x00000c5b, GFSYNR2 0x00000000
[ 59.326487] arm-smmu 12000000.iommu: Unexpected global fault, this could be serious
[ 59.326631] arm-smmu 12000000.iommu: GFSR 0x80000002, GFSYNR0 0x00000000, GFSYNR1 0x00000c5b, GFSYNR2 0x00000000
[ 59.329135] arm-smmu 12000000.iommu: Unexpected global fault, this could be serious
[ 59.329333] arm-smmu 12000000.iommu: GFSR 0x80000002, GFSYNR0 0x00000000, GFSYNR1 0x0000005b, GFSYNR2 0x00000000
[ 59.329584] arm-smmu 12000000.iommu: Unexpected global fault, this could be serious
[ 59.329790] arm-smmu 12000000.iommu: GFSR 0x80000002, GFSYNR0 0x00000000, GFSYNR1 0x0000085b, GFSYNR2 0x00000000
[ 59.332302] arm-smmu 12000000.iommu: Unexpected global fault, this could be serious
[ 59.332498] arm-smmu 12000000.iommu: GFSR 0x80000002, GFSYNR0 0x00000000, GFSYNR1 0x00000c5b, GFSYNR2 0x00000000
[ 59.332771] arm-smmu 12000000.iommu: Unexpected global fault, this could be serious
[ 59.335569] arm-smmu 12000000.iommu: GFSR 0x80000002, GFSYNR0 0x00000000, GFSYNR1 0x0000085b, GFSYNR2 0x00000000
[ 59.347947] arm-smmu 12000000.iommu: Unexpected global fault, this could be serious
[ 59.353340] arm-smmu 12000000.iommu: GFSR 0x80000002, GFSYNR0 0x00000000, GFSYNR1 0x00000c5b, GFSYNR2 0x00000000
[ 59.363665] arm-smmu 12000000.iommu: Unexpected global fault, this could be serious
[ 59.371619] arm-smmu 12000000.iommu: GFSR 0x80000002, GFSYNR0 0x00000000, GFSYNR1 0x0000005b, GFSYNR2 0x00000000
fa 59.384023] arm-smmu 120000TX1: Clea00.niniommu:g R Unexpesoected urcgloes...
, this could be serious
[ 59.391753] arm-smmu 12000000.iommu: GFSR 0x80000002, GFSYNR0 0x00000000, GFSYNR1 0x0000045b, GFSYNR2 0x00000000
[ 59.404386] mc-err: unknown mcerr fault, int_status=0x00000000, ch_int_status=0x00000000, hubc_int_status=0x00000000 sbs_int_status=0x00000000, hub_int_status=0x00000000
If I re-enable SMMU, then this error goes away. Hence, this issue is related to SMMU, and not a driver error. However, I need the SMMU disabled due to some other reason. How can I fix this error and keep the SMMU disabled? I am using Jetpack 5.1.