Why smmu on PCIe3 doesn't work (Jetson-AGX-Xavier)?

This is on Jetson-AGX-Xavier:
I have a Marvell 88W8897 wifi chip on PCIe 3.
I have seen many smmu errors in dmesg for pcie3:
t19x-arm-smmu 12000000.iommu: Unhandled context fault: smmu0, iova=0xfffae980, fsynr=0x40013, cb=2, sid=89(0x59 - PCIE3), pgd=449667003, pud=449667003, pmd=449668003, pte=0

I fixed this by disabling smmu for PCIE3 in device-tree. (Removing iommus and dma-coherent in pcie@14140000 node.)

I wonder, why smmu in PCIe3 doesn’t work. I think it’s better to enable smmu for PCIe3. Is there a way make smmu on PCIE3 to work?

Thanks,
Shuo

SMMU for PCIe-3 does work. I guess the problem here seems to do with the driver you are using for Marvell 88W8897. Is this an upstreamed driver? Drivers must use IOVA addresses to initiate its internal DMA engines to perform read/writes to the Tegra system memory.

The linux source code was from the L4T package that I downloaded from Nvidia website. But the Marvell 88W8897 wifi driver was part of upstream driver. Its path is under:
kernel/kernel-4.9/drivers/net/wireless/marvell/mwifiex
Which is not under kernel/nvidia/ path.

Do you have a working Marvell 88W8897 wifi driver?

Thanks,
Shuo