For certain DMA API implementations, the overhead of going through the
IOMMU framework is too much. Such an implementation might want to
perform some rudimentary page table management using bits of information
from the underlying page tables. Add a domain attribute and structure
for querying this type of information. For now, the only information
supported is the kernel virtual address of the PMDs (assumed to be
virtually contiguous).
CRs-Fixed: 997751
Change-Id: I29d31e9649c24d30a5a7ffaa4b238a0203846594
Signed-off-by: Mitchel Humpherys <mitchelh@codeaurora.org>
bool force_aperture; /* DMA only allowed in mappable range? */
};
+struct iommu_pgtbl_info {
+ void *pmds;
+};
+
/* Domain feature flags */
#define __IOMMU_DOMAIN_PAGING (1U << 0) /* Support for iommu_map/unmap */
#define __IOMMU_DOMAIN_DMA_API (1U << 1) /* Domain for use in DMA-API
DOMAIN_ATTR_NON_FATAL_FAULTS,
DOMAIN_ATTR_S1_BYPASS,
DOMAIN_ATTR_FAST,
+ DOMAIN_ATTR_PGTBL_INFO,
DOMAIN_ATTR_MAX,
};