1# SPDX-License-Identifier: GPL-2.0-only 2# Intel IOMMU support 3config DMAR_TABLE 4 bool 5 6config DMAR_PERF 7 bool 8 9config DMAR_DEBUG 10 bool 11 12config INTEL_IOMMU 13 bool "Support for Intel IOMMU using DMA Remapping Devices" 14 depends on PCI_MSI && ACPI && X86 15 select IOMMU_API 16 select IOMMU_IOVA 17 select IOMMUFD_DRIVER if IOMMUFD 18 select NEED_DMA_MAP_STATE 19 select DMAR_TABLE 20 select SWIOTLB 21 select PCI_ATS 22 select PCI_PRI 23 select PCI_PASID 24 help 25 DMA remapping (DMAR) devices support enables independent address 26 translations for Direct Memory Access (DMA) from devices. 27 These DMA remapping devices are reported via ACPI tables 28 and include PCI device scope covered by these DMA 29 remapping devices. 30 31if INTEL_IOMMU 32 33config INTEL_IOMMU_DEBUGFS 34 bool "Export Intel IOMMU internals in Debugfs" 35 depends on IOMMU_DEBUGFS 36 select DMAR_PERF 37 select DMAR_DEBUG 38 help 39 !!!WARNING!!! 40 41 DO NOT ENABLE THIS OPTION UNLESS YOU REALLY KNOW WHAT YOU ARE DOING!!! 42 43 Expose Intel IOMMU internals in Debugfs. 44 45 This option is -NOT- intended for production environments, and should 46 only be enabled for debugging Intel IOMMU. 47 48config INTEL_IOMMU_SVM 49 bool "Support for Shared Virtual Memory with Intel IOMMU" 50 depends on X86_64 51 select MMU_NOTIFIER 52 select IOMMU_SVA 53 select IOMMU_IOPF 54 help 55 Shared Virtual Memory (SVM) provides a facility for devices 56 to access DMA resources through process address space by 57 means of a Process Address Space ID (PASID). 58 59config INTEL_IOMMU_DEFAULT_ON 60 bool "Enable Intel DMA Remapping Devices by default" 61 default y 62 help 63 Selecting this option will enable a DMAR device at boot time if 64 one is found. If this option is not selected, DMAR support can 65 be enabled by passing intel_iommu=on to the kernel. 66 67config INTEL_IOMMU_FLOPPY_WA 68 def_bool y 69 depends on X86 70 help 71 Floppy disk drivers are known to bypass DMA API calls 72 thereby failing to work when IOMMU is enabled. This 73 workaround will setup a 1:1 mapping for the first 74 16MiB to make floppy (an ISA device) work. 75 76config INTEL_IOMMU_SCALABLE_MODE_DEFAULT_ON 77 bool "Enable Intel IOMMU scalable mode by default" 78 default y 79 help 80 Selecting this option will enable by default the scalable mode if 81 hardware presents the capability. The scalable mode is defined in 82 VT-d 3.0. The scalable mode capability could be checked by reading 83 /sys/devices/virtual/iommu/dmar*/intel-iommu/ecap. If this option 84 is not selected, scalable mode support could also be enabled by 85 passing intel_iommu=sm_on to the kernel. If not sure, please use 86 the default value. 87 88config INTEL_IOMMU_PERF_EVENTS 89 bool "Intel IOMMU performance events" 90 default y 91 depends on INTEL_IOMMU && PERF_EVENTS 92 help 93 Selecting this option will enable the performance monitoring 94 infrastructure in the Intel IOMMU. It collects information about 95 key events occurring during operation of the remapping hardware, 96 to aid performance tuning and debug. These are available on modern 97 processors which support Intel VT-d 4.0 and later. 98 99endif # INTEL_IOMMU 100