David Brazdil | 0f672f6 | 2019-12-10 10:32:29 +0000 | [diff] [blame^] | 1 | # SPDX-License-Identifier: GPL-2.0-only |
Andrew Scull | b4b6d4a | 2019-01-02 15:54:55 +0000 | [diff] [blame] | 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 | depends on IOMMU_API |
David Brazdil | 0f672f6 | 2019-12-10 10:32:29 +0000 | [diff] [blame^] | 25 | select VFIO_IOMMU_TYPE1 if (X86 || S390 || ARM || ARM64) |
Andrew Scull | b4b6d4a | 2019-01-02 15:54:55 +0000 | [diff] [blame] | 26 | help |
| 27 | VFIO provides a framework for secure userspace device drivers. |
David Brazdil | 0f672f6 | 2019-12-10 10:32:29 +0000 | [diff] [blame^] | 28 | See Documentation/driver-api/vfio.rst for more details. |
Andrew Scull | b4b6d4a | 2019-01-02 15:54:55 +0000 | [diff] [blame] | 29 | |
| 30 | If you don't know what to do here, say N. |
| 31 | |
| 32 | menuconfig 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 "virt/lib/Kconfig" |