| # SPDX-License-Identifier: GPL-2.0-only |
| config IOMMUFD |
| tristate "IOMMU Userspace API" |
| select INTERVAL_TREE |
| select INTERVAL_TREE_SPAN_ITER |
| select IOMMU_API |
| default n |
| help |
| Provides /dev/iommu, the user API to control the IOMMU subsystem as |
| it relates to managing IO page tables that point at user space memory. |
| |
| If you don't know what to do here, say N. |
| |
| if IOMMUFD |
| config IOMMUFD_VFIO_CONTAINER |
| bool "IOMMUFD provides the VFIO container /dev/vfio/vfio" |
| depends on VFIO_GROUP && !VFIO_CONTAINER |
| default VFIO_GROUP && !VFIO_CONTAINER |
| help |
| IOMMUFD will provide /dev/vfio/vfio instead of VFIO. This relies on |
| IOMMUFD providing compatibility emulation to give the same ioctls. |
| It provides an option to build a kernel with legacy VFIO components |
| removed. |
| |
| IOMMUFD VFIO container emulation is known to lack certain features |
| of the native VFIO container, such as peer-to-peer |
| DMA mapping, PPC IOMMU support, as well as other potentially |
| undiscovered gaps. This option is currently intended for the |
| purpose of testing IOMMUFD with unmodified userspace supporting VFIO |
| and making use of the Type1 VFIO IOMMU backend. General purpose |
| enabling of this option is currently discouraged. |
| |
| Unless testing IOMMUFD, say N here. |
| |
| config IOMMUFD_TEST |
| bool "IOMMU Userspace API Test support" |
| depends on DEBUG_KERNEL |
| depends on FAULT_INJECTION |
| depends on RUNTIME_TESTING_MENU |
| select IOMMUFD_DRIVER |
| default n |
| help |
| This is dangerous, do not enable unless running |
| tools/testing/selftests/iommu |
| endif |