# SPDX-License-Identifier: GPL-2.0-only
# Intel IOMMU support
config DMAR_TABLE
	bool

config DMAR_PERF
	bool

config DMAR_DEBUG
	bool

config INTEL_IOMMU
	bool "Support for Intel IOMMU using DMA Remapping Devices"
	depends on PCI_MSI && ACPI && (X86 || IA64)
	select DMA_OPS
	select IOMMU_API
	select IOMMU_IOVA
	select NEED_DMA_MAP_STATE
	select DMAR_TABLE
	select SWIOTLB
	select IOASID
	select IOMMU_DMA
	select PCI_ATS
	help
	  DMA remapping (DMAR) devices support enables independent address
	  translations for Direct Memory Access (DMA) from devices.
	  These DMA remapping devices are reported via ACPI tables
	  and include PCI device scope covered by these DMA
	  remapping devices.

if INTEL_IOMMU

config INTEL_IOMMU_DEBUGFS
	bool "Export Intel IOMMU internals in Debugfs"
	depends on IOMMU_DEBUGFS
	select DMAR_PERF
	select DMAR_DEBUG
	help
	  !!!WARNING!!!

	  DO NOT ENABLE THIS OPTION UNLESS YOU REALLY KNOW WHAT YOU ARE DOING!!!

	  Expose Intel IOMMU internals in Debugfs.

	  This option is -NOT- intended for production environments, and should
	  only be enabled for debugging Intel IOMMU.

config INTEL_IOMMU_SVM
	bool "Support for Shared Virtual Memory with Intel IOMMU"
	depends on X86_64
	select PCI_PASID
	select PCI_PRI
	select MMU_NOTIFIER
	select IOASID
	select IOMMU_SVA_LIB
	help
	  Shared Virtual Memory (SVM) provides a facility for devices
	  to access DMA resources through process address space by
	  means of a Process Address Space ID (PASID).

config INTEL_IOMMU_DEFAULT_ON
	bool "Enable Intel DMA Remapping Devices by default"
	default y
	help
	  Selecting this option will enable a DMAR device at boot time if
	  one is found. If this option is not selected, DMAR support can
	  be enabled by passing intel_iommu=on to the kernel.

config INTEL_IOMMU_BROKEN_GFX_WA
	bool "Workaround broken graphics drivers (going away soon)"
	depends on BROKEN && X86
	help
	  Current Graphics drivers tend to use physical address
	  for DMA and avoid using DMA APIs. Setting this config
	  option permits the IOMMU driver to set a unity map for
	  all the OS-visible memory. Hence the driver can continue
	  to use physical addresses for DMA, at least until this
	  option is removed in the 2.6.32 kernel.

config INTEL_IOMMU_FLOPPY_WA
	def_bool y
	depends on X86
	help
	  Floppy disk drivers are known to bypass DMA API calls
	  thereby failing to work when IOMMU is enabled. This
	  workaround will setup a 1:1 mapping for the first
	  16MiB to make floppy (an ISA device) work.

config INTEL_IOMMU_SCALABLE_MODE_DEFAULT_ON
	bool "Enable Intel IOMMU scalable mode by default"
	default y
	help
	  Selecting this option will enable by default the scalable mode if
	  hardware presents the capability. The scalable mode is defined in
	  VT-d 3.0. The scalable mode capability could be checked by reading
	  /sys/devices/virtual/iommu/dmar*/intel-iommu/ecap. If this option
	  is not selected, scalable mode support could also be enabled by
	  passing intel_iommu=sm_on to the kernel. If not sure, please use
	  the default value.

endif # INTEL_IOMMU
