0001 # SPDX-License-Identifier: GPL-2.0-only
0002 menuconfig VFIO
0003 tristate "VFIO Non-Privileged userspace driver framework"
0004 select IOMMU_API
0005 select VFIO_IOMMU_TYPE1 if MMU && (X86 || S390 || ARM || ARM64)
0006 help
0007 VFIO provides a framework for secure userspace device drivers.
0008 See Documentation/driver-api/vfio.rst for more details.
0009
0010 If you don't know what to do here, say N.
0011
0012 if VFIO
0013 config VFIO_IOMMU_TYPE1
0014 tristate
0015 default n
0016
0017 config VFIO_IOMMU_SPAPR_TCE
0018 tristate
0019 depends on SPAPR_TCE_IOMMU
0020 default VFIO
0021
0022 config VFIO_SPAPR_EEH
0023 tristate
0024 depends on EEH && VFIO_IOMMU_SPAPR_TCE
0025 default VFIO
0026
0027 config VFIO_VIRQFD
0028 tristate
0029 select EVENTFD
0030 default n
0031
0032 config VFIO_NOIOMMU
0033 bool "VFIO No-IOMMU support"
0034 help
0035 VFIO is built on the ability to isolate devices using the IOMMU.
0036 Only with an IOMMU can userspace access to DMA capable devices be
0037 considered secure. VFIO No-IOMMU mode enables IOMMU groups for
0038 devices without IOMMU backing for the purpose of re-using the VFIO
0039 infrastructure in a non-secure mode. Use of this mode will result
0040 in an unsupportable kernel and will therefore taint the kernel.
0041 Device assignment to virtual machines is also not possible with
0042 this mode since there is no IOMMU to provide DMA translation.
0043
0044 If you don't know what to do here, say N.
0045
0046 source "drivers/vfio/pci/Kconfig"
0047 source "drivers/vfio/platform/Kconfig"
0048 source "drivers/vfio/mdev/Kconfig"
0049 source "drivers/vfio/fsl-mc/Kconfig"
0050 endif
0051
0052 source "virt/lib/Kconfig"