This project is about implementing the needed support for Intel's VT-d and AMD-IOV functionality in the native x86 ports, with a focus on amd64 first (i386 being a nice-to-have, but not strictly required).

NetBSD already has machine-independent bus abstraction layers (namely, bus_space(9) for bus-related memory operations, and bus_dma(9) for DMA related transactions) that are successfully used on other arches like SPARC for IOMMU.

The present project is to implement the machine-dependent functions to support IOMMU on x86.

Please note that it requires specific hardware for testing, as not all motherboards/chipsets have IOMMU supported let alone working correctly. In case of doubt, ask on the mailing list or point of contact.