xref: /linux/drivers/vfio/Kconfig (revision 85c94dcffcb775bafffd6e966db49253e1b789d9)
1ec8f24b7SThomas Gleixner# SPDX-License-Identifier: GPL-2.0-only
2cba3345cSAlex Williamsonmenuconfig VFIO
3cba3345cSAlex Williamson	tristate "VFIO Non-Privileged userspace driver framework"
4179209faSJason Gunthorpe	select IOMMU_API
5b2b12db5SJason Gunthorpe	select VFIO_IOMMU_TYPE1 if MMU && (X86 || S390 || ARM || ARM64)
6cba3345cSAlex Williamson	help
7cba3345cSAlex Williamson	  VFIO provides a framework for secure userspace device drivers.
8baa293e9SMauro Carvalho Chehab	  See Documentation/driver-api/vfio.rst for more details.
9cba3345cSAlex Williamson
10cba3345cSAlex Williamson	  If you don't know what to do here, say N.
1189e1f7d4SAlex Williamson
12*85c94dcfSJason Gunthorpeif VFIO
13*85c94dcfSJason Gunthorpeconfig VFIO_IOMMU_TYPE1
14*85c94dcfSJason Gunthorpe	tristate
15*85c94dcfSJason Gunthorpe	default n
16*85c94dcfSJason Gunthorpe
17*85c94dcfSJason Gunthorpeconfig VFIO_IOMMU_SPAPR_TCE
18*85c94dcfSJason Gunthorpe	tristate
19*85c94dcfSJason Gunthorpe	depends on SPAPR_TCE_IOMMU
20*85c94dcfSJason Gunthorpe	default VFIO
21*85c94dcfSJason Gunthorpe
22*85c94dcfSJason Gunthorpeconfig VFIO_SPAPR_EEH
23*85c94dcfSJason Gunthorpe	tristate
24*85c94dcfSJason Gunthorpe	depends on EEH && VFIO_IOMMU_SPAPR_TCE
25*85c94dcfSJason Gunthorpe	default VFIO
26*85c94dcfSJason Gunthorpe
27*85c94dcfSJason Gunthorpeconfig VFIO_VIRQFD
28*85c94dcfSJason Gunthorpe	tristate
29*85c94dcfSJason Gunthorpe	select EVENTFD
30*85c94dcfSJason Gunthorpe	default n
31*85c94dcfSJason Gunthorpe
3226c22cfdSJason Gunthorpeconfig VFIO_NOIOMMU
3303a76b60SAlex Williamson	bool "VFIO No-IOMMU support"
3403a76b60SAlex Williamson	help
3503a76b60SAlex Williamson	  VFIO is built on the ability to isolate devices using the IOMMU.
3603a76b60SAlex Williamson	  Only with an IOMMU can userspace access to DMA capable devices be
3703a76b60SAlex Williamson	  considered secure.  VFIO No-IOMMU mode enables IOMMU groups for
3803a76b60SAlex Williamson	  devices without IOMMU backing for the purpose of re-using the VFIO
3903a76b60SAlex Williamson	  infrastructure in a non-secure mode.  Use of this mode will result
4003a76b60SAlex Williamson	  in an unsupportable kernel and will therefore taint the kernel.
4103a76b60SAlex Williamson	  Device assignment to virtual machines is also not possible with
4203a76b60SAlex Williamson	  this mode since there is no IOMMU to provide DMA translation.
4303a76b60SAlex Williamson
4403a76b60SAlex Williamson	  If you don't know what to do here, say N.
4503a76b60SAlex Williamson
4689e1f7d4SAlex Williamsonsource "drivers/vfio/pci/Kconfig"
4753161532SAntonios Motakissource "drivers/vfio/platform/Kconfig"
487b96953bSKirti Wankhedesource "drivers/vfio/mdev/Kconfig"
49fb1ff4c1SBharat Bhushansource "drivers/vfio/fsl-mc/Kconfig"
50*85c94dcfSJason Gunthorpeendif
51*85c94dcfSJason Gunthorpe
526d7425f1SFeng Wusource "virt/lib/Kconfig"
53