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