Disable PCIE IOMMU ,if msi comming then a error

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@14160000:

#iommus = <&smmu_niso0 TEGRA_SID_NISO0_PCIE4>;
#iommu-map = <0x0 &smmu_niso0 TEGRA_SID_NISO0_PCIE4 0x1000>;
#dma-coherent;
#iommu-map-mask = <0x0>;

However, after disabling SMMU, when I get a msi interrupt from fpga, I get the following errors:

[ 99.990743] arm-smmu 12000000.iommu: Unexpected global fault, this could be serious
[ 99.998642] arm-smmu 12000000.iommu: GFSR 0x00000002, GFSYNR0 0x00000002, GFSYNR1 0x00001013, GFSYNR2 0x00000000
[ 100.011468] mc-err: vpr base=0:0, size=0, ctrl=1, override:(201803c6, b9ee11c1, 1, 0)
[ 100.019557] mc-err: (255) csw_pcie4w: MC request violates VPR requirements
[ 100.026650] mc-err: status = 0x0ff740e1; hi_addr_reg = 0x00000000 addr = 0xffffffff00
[ 100.034904] mc-err: secure: yes, access-type: write

If I re-enable SMMU, then this error goes away.
However, I need the SMMU disabled due to some other reason. How can I fix this error and keep the SMMU disabled?
I use jetson linux 35.4.1

Need help
PowerUp_log.txt (93.3 KB)

What is the exact purpose to disable SMMU?

We don’t suggest to do that.

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