How to ensure continuous physical memory address with IOMMU?

173 Views Asked by At

In Linux kernel driver, can I initiate DMA with continuous physical memory region when IOMMU is in the middle?

Here's my understanding of IOMMU features:

  • Memory protection for security reasons
  • Provides IOVA for peripherals for DMA to relax 'continuous physical address` restriction. However, if virtual memory is involved, kernel (or something else) should maintain page table and it would be an overhead.

Given above, I wonder if there's an IOMMU hardware that does not support IOVA for the performance reasons.

Also, is there an IOMMU hardware that can be programmed to turn on/off IOVA supports? If it is, does linux kernel provide portable library for it (or vendor specific)?

I'm interested more on the ARM environment, but I'd appreciate any answer about any architecture(s).

0

There are 0 best solutions below