Merge tag 'for-linus-2022111101' of git://git.kernel.org/pub/scm/linux/kernel/git...
[platform/kernel/linux-starfive.git] / drivers / vfio / Kconfig
1 # SPDX-License-Identifier: GPL-2.0-only
2 menuconfig 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
13 if VFIO
14 config VFIO_IOMMU_TYPE1
15         tristate
16         default n
17
18 config VFIO_IOMMU_SPAPR_TCE
19         tristate
20         depends on SPAPR_TCE_IOMMU
21         default VFIO
22
23 config VFIO_SPAPR_EEH
24         tristate
25         depends on EEH && VFIO_IOMMU_SPAPR_TCE
26         default VFIO
27
28 config VFIO_VIRQFD
29         tristate
30         select EVENTFD
31         default n
32
33 config VFIO_NOIOMMU
34         bool "VFIO No-IOMMU support"
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 endif
52
53 source "virt/lib/Kconfig"