IOMMU Groups

This database attempts to document the iommu group to physical device mapping of different motherboard manufacturers.
This is useful for anyone who wants to run a VM with direct access to hardware to achieve native hardware access in a VM.
The most common example is a VM with direct access to a graphics card.

Using this site

Either lookup entries by Vendor and select a mainboard. Or browse all entries.

Contributing to the database is easy. Ensure you are running Linux with Virtualisation enabled in the bios, download the generate script hosted on github, confirm it looks safe, and then run it to upload your systems' IOMMU Group mappings to the database.

If you are currently running an IOMMU setup, the script needs to run on the hypervisor not your guest system.

tl;dr;

git clone https://github.com/mkoreneff/iommu_info_generate.git
cd iommu_info_generate
python3 generate_data.py

What's all this about?

The Arch Wiki describes IOMMU Groups as

An IOMMU group is the smallest set of physical devices that can be passed to a virtual machine. For instance, in the example above, both the GPU in 06:00.0 and its audio controller in 6:00.1 belong to IOMMU group 13 and can only be passed together. The frontal USB controller, however, has its own group (group 2) which is separate from both the USB expansion controller (group 10) and the rear USB controller (group 4), meaning that any of them could be passed to a virtual machine without affecting the others.