xref: /linux-6.15/drivers/vfio/Kconfig (revision e2d55709)
1# SPDX-License-Identifier: GPL-2.0-only
2menuconfig VFIO
3	tristate "VFIO Non-Privileged userspace driver framework"
4	select IOMMU_API
5	select VFIO_IOMMU_TYPE1 if MMU && (X86 || S390 || ARM || ARM64)
6	select INTERVAL_TREE
7	help
8	  VFIO provides a framework for secure userspace device drivers.
9	  See Documentation/driver-api/vfio.rst for more details.
10
11	  If you don't know what to do here, say N.
12
13if VFIO
14config VFIO_IOMMU_TYPE1
15	tristate
16	default n
17
18config VFIO_IOMMU_SPAPR_TCE
19	tristate
20	depends on SPAPR_TCE_IOMMU
21	default VFIO
22
23config VFIO_VIRQFD
24	bool
25	select EVENTFD
26	default n
27
28config VFIO_NOIOMMU
29	bool "VFIO No-IOMMU support"
30	help
31	  VFIO is built on the ability to isolate devices using the IOMMU.
32	  Only with an IOMMU can userspace access to DMA capable devices be
33	  considered secure.  VFIO No-IOMMU mode enables IOMMU groups for
34	  devices without IOMMU backing for the purpose of re-using the VFIO
35	  infrastructure in a non-secure mode.  Use of this mode will result
36	  in an unsupportable kernel and will therefore taint the kernel.
37	  Device assignment to virtual machines is also not possible with
38	  this mode since there is no IOMMU to provide DMA translation.
39
40	  If you don't know what to do here, say N.
41
42source "drivers/vfio/pci/Kconfig"
43source "drivers/vfio/platform/Kconfig"
44source "drivers/vfio/mdev/Kconfig"
45source "drivers/vfio/fsl-mc/Kconfig"
46endif
47
48source "virt/lib/Kconfig"
49