"Unexpected global fault, this could be serious" error when disabling SMMU

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.

It seems I also needed to change McSidStreamidOverrideConfigPcie* to 0x0000007f, as mentioned in the following patch.

Removing the 4 lines from the device tree (as mentioned in previous comment), AND applying the patch resolved the issue.

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