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