diff options
Diffstat (limited to 'drivers/vfio/Kconfig')
| -rw-r--r-- | drivers/vfio/Kconfig | 98 |
1 files changed, 74 insertions, 24 deletions
diff --git a/drivers/vfio/Kconfig b/drivers/vfio/Kconfig index fd17db9b432f..ceae52fd7586 100644 --- a/drivers/vfio/Kconfig +++ b/drivers/vfio/Kconfig @@ -1,37 +1,68 @@ # SPDX-License-Identifier: GPL-2.0-only -config VFIO_IOMMU_TYPE1 - tristate - depends on VFIO - default n - -config VFIO_IOMMU_SPAPR_TCE - tristate - depends on VFIO && SPAPR_TCE_IOMMU - default VFIO - -config VFIO_SPAPR_EEH - tristate - depends on EEH && VFIO_IOMMU_SPAPR_TCE - default VFIO - -config VFIO_VIRQFD - tristate - depends on VFIO && EVENTFD - default n - menuconfig VFIO tristate "VFIO Non-Privileged userspace driver framework" - depends on IOMMU_API - select VFIO_IOMMU_TYPE1 if (X86 || S390 || ARM || ARM64) + select IOMMU_API + depends on IOMMUFD || !IOMMUFD + select INTERVAL_TREE + select VFIO_GROUP if SPAPR_TCE_IOMMU || IOMMUFD=n + select VFIO_DEVICE_CDEV if !VFIO_GROUP + select VFIO_CONTAINER if IOMMUFD=n help VFIO provides a framework for secure userspace device drivers. See Documentation/driver-api/vfio.rst for more details. If you don't know what to do here, say N. -menuconfig VFIO_NOIOMMU +if VFIO +config VFIO_DEVICE_CDEV + bool "Support for the VFIO cdev /dev/vfio/devices/vfioX" + depends on IOMMUFD && !SPAPR_TCE_IOMMU + default !VFIO_GROUP + help + The VFIO device cdev is another way for userspace to get device + access. Userspace gets device fd by opening device cdev under + /dev/vfio/devices/vfioX, and then bind the device fd with an iommufd + to set up secure DMA context for device access. This interface does + not support noiommu. + + If you don't know what to do here, say N. + +config VFIO_GROUP + bool "Support for the VFIO group /dev/vfio/$group_id" + default y + help + VFIO group support provides the traditional model for accessing + devices through VFIO and is used by the majority of userspace + applications and drivers making use of VFIO. + + If you don't know what to do here, say Y. + +config VFIO_CONTAINER + bool "Support for the VFIO container /dev/vfio/vfio" + select VFIO_IOMMU_TYPE1 if MMU && (X86 || S390 || ARM || ARM64) + depends on VFIO_GROUP + default y + help + The VFIO container is the classic interface to VFIO for establishing + IOMMU mappings. If N is selected here then IOMMUFD must be used to + manage the mappings. + + Unless testing IOMMUFD say Y here. + +if VFIO_CONTAINER +config VFIO_IOMMU_TYPE1 + tristate + default n + +config VFIO_IOMMU_SPAPR_TCE + tristate + depends on SPAPR_TCE_IOMMU + default VFIO +endif + +config VFIO_NOIOMMU bool "VFIO No-IOMMU support" - depends on VFIO + depends on VFIO_GROUP help VFIO is built on the ability to isolate devices using the IOMMU. Only with an IOMMU can userspace access to DMA capable devices be @@ -44,7 +75,26 @@ menuconfig VFIO_NOIOMMU If you don't know what to do here, say N. +config VFIO_VIRQFD + bool + select EVENTFD + default n + +config VFIO_DEBUGFS + bool "Export VFIO internals in DebugFS" + depends on DEBUG_FS + help + Allows exposure of VFIO device internals. This option enables + the use of debugfs by VFIO drivers as required. The device can + cause the VFIO code create a top-level debug/vfio directory + during initialization, and then populate a subdirectory with + entries as required. + source "drivers/vfio/pci/Kconfig" source "drivers/vfio/platform/Kconfig" source "drivers/vfio/mdev/Kconfig" +source "drivers/vfio/fsl-mc/Kconfig" +source "drivers/vfio/cdx/Kconfig" +endif + source "virt/lib/Kconfig" |
