I have implemented the Linux kernel driver for the device connected into PCIe. My host is AMD CPU, 6.2.0-39-generic kernel and IOMMU enabled in bios. The dma controller in the device has the scatter gather capability. In the driver, after set up the dma controller placed in the device , when the user test program writes the buffer into device, the kernel error messages are shown as like: AMD-Vi: Event logged [IO_PAGE_FAULT domain=0x000e address=0xfffffffffffffffc flags=0x0030]
My device is allocated IOMMU Group in 15 (0xe).
What is the cause of error ? What function is added for AMD IOMMU in my driver code ?
When IOMMU is disabled in bios, my driver is well running and test program is ok.