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