xref: /linux/drivers/iommu/intel/Kconfig (revision d373449d8e97891434db0c64afca79d903c1194e)
1ab65ba57SJerry Snitselaar# SPDX-License-Identifier: GPL-2.0-only
2ab65ba57SJerry Snitselaar# Intel IOMMU support
3ab65ba57SJerry Snitselaarconfig DMAR_TABLE
4ab65ba57SJerry Snitselaar	bool
5ab65ba57SJerry Snitselaar
655ee5e67SLu Baoluconfig DMAR_PERF
755ee5e67SLu Baolu	bool
855ee5e67SLu Baolu
9914ff771SKyung Min Parkconfig DMAR_DEBUG
10914ff771SKyung Min Park	bool
11914ff771SKyung Min Park
12ab65ba57SJerry Snitselaarconfig INTEL_IOMMU
13ab65ba57SJerry Snitselaar	bool "Support for Intel IOMMU using DMA Remapping Devices"
14cf8e8658SArd Biesheuvel	depends on PCI_MSI && ACPI && X86
15ab65ba57SJerry Snitselaar	select IOMMU_API
16*d373449dSJason Gunthorpe	select GENERIC_PT
17*d373449dSJason Gunthorpe	select IOMMU_PT
18*d373449dSJason Gunthorpe	select IOMMU_PT_X86_64
19*d373449dSJason Gunthorpe	select IOMMU_PT_VTDSS
20ab65ba57SJerry Snitselaar	select IOMMU_IOVA
21140f5dedSJoel Granados	select IOMMU_IOPF
22f35f22ccSJoao Martins	select IOMMUFD_DRIVER if IOMMUFD
23ab65ba57SJerry Snitselaar	select NEED_DMA_MAP_STATE
24ab65ba57SJerry Snitselaar	select DMAR_TABLE
25ab65ba57SJerry Snitselaar	select SWIOTLB
26879fcc6bSLu Baolu	select PCI_ATS
270faa19a1SLu Baolu	select PCI_PRI
280faa19a1SLu Baolu	select PCI_PASID
29ab65ba57SJerry Snitselaar	help
30ab65ba57SJerry Snitselaar	  DMA remapping (DMAR) devices support enables independent address
31ab65ba57SJerry Snitselaar	  translations for Direct Memory Access (DMA) from devices.
32ab65ba57SJerry Snitselaar	  These DMA remapping devices are reported via ACPI tables
33ab65ba57SJerry Snitselaar	  and include PCI device scope covered by these DMA
34ab65ba57SJerry Snitselaar	  remapping devices.
35ab65ba57SJerry Snitselaar
3601dac2d9SLu Baoluif INTEL_IOMMU
3701dac2d9SLu Baolu
38ab65ba57SJerry Snitselaarconfig INTEL_IOMMU_DEBUGFS
39ab65ba57SJerry Snitselaar	bool "Export Intel IOMMU internals in Debugfs"
4001dac2d9SLu Baolu	depends on IOMMU_DEBUGFS
41456bb0b9SLu Baolu	select DMAR_PERF
42914ff771SKyung Min Park	select DMAR_DEBUG
43ab65ba57SJerry Snitselaar	help
44ab65ba57SJerry Snitselaar	  !!!WARNING!!!
45ab65ba57SJerry Snitselaar
46ab65ba57SJerry Snitselaar	  DO NOT ENABLE THIS OPTION UNLESS YOU REALLY KNOW WHAT YOU ARE DOING!!!
47ab65ba57SJerry Snitselaar
48ab65ba57SJerry Snitselaar	  Expose Intel IOMMU internals in Debugfs.
49ab65ba57SJerry Snitselaar
50ab65ba57SJerry Snitselaar	  This option is -NOT- intended for production environments, and should
51ab65ba57SJerry Snitselaar	  only be enabled for debugging Intel IOMMU.
52ab65ba57SJerry Snitselaar
53ab65ba57SJerry Snitselaarconfig INTEL_IOMMU_SVM
54ab65ba57SJerry Snitselaar	bool "Support for Shared Virtual Memory with Intel IOMMU"
5501dac2d9SLu Baolu	depends on X86_64
56ab65ba57SJerry Snitselaar	select MMU_NOTIFIER
577ba56472SFenghua Yu	select IOMMU_SVA
58ab65ba57SJerry Snitselaar	help
59ab65ba57SJerry Snitselaar	  Shared Virtual Memory (SVM) provides a facility for devices
60ab65ba57SJerry Snitselaar	  to access DMA resources through process address space by
61ab65ba57SJerry Snitselaar	  means of a Process Address Space ID (PASID).
62ab65ba57SJerry Snitselaar
63ab65ba57SJerry Snitselaarconfig INTEL_IOMMU_DEFAULT_ON
6401dac2d9SLu Baolu	bool "Enable Intel DMA Remapping Devices by default"
6501dac2d9SLu Baolu	default y
66ab65ba57SJerry Snitselaar	help
67ab65ba57SJerry Snitselaar	  Selecting this option will enable a DMAR device at boot time if
68ab65ba57SJerry Snitselaar	  one is found. If this option is not selected, DMAR support can
69ab65ba57SJerry Snitselaar	  be enabled by passing intel_iommu=on to the kernel.
70ab65ba57SJerry Snitselaar
71ab65ba57SJerry Snitselaarconfig INTEL_IOMMU_FLOPPY_WA
72ab65ba57SJerry Snitselaar	def_bool y
7301dac2d9SLu Baolu	depends on X86
74ab65ba57SJerry Snitselaar	help
75ab65ba57SJerry Snitselaar	  Floppy disk drivers are known to bypass DMA API calls
76ab65ba57SJerry Snitselaar	  thereby failing to work when IOMMU is enabled. This
77ab65ba57SJerry Snitselaar	  workaround will setup a 1:1 mapping for the first
78ab65ba57SJerry Snitselaar	  16MiB to make floppy (an ISA device) work.
79ab65ba57SJerry Snitselaar
80ab65ba57SJerry Snitselaarconfig INTEL_IOMMU_SCALABLE_MODE_DEFAULT_ON
81ab65ba57SJerry Snitselaar	bool "Enable Intel IOMMU scalable mode by default"
82792fb43cSLu Baolu	default y
83ab65ba57SJerry Snitselaar	help
84ab65ba57SJerry Snitselaar	  Selecting this option will enable by default the scalable mode if
85ab65ba57SJerry Snitselaar	  hardware presents the capability. The scalable mode is defined in
86ab65ba57SJerry Snitselaar	  VT-d 3.0. The scalable mode capability could be checked by reading
87ab65ba57SJerry Snitselaar	  /sys/devices/virtual/iommu/dmar*/intel-iommu/ecap. If this option
88ab65ba57SJerry Snitselaar	  is not selected, scalable mode support could also be enabled by
89ab65ba57SJerry Snitselaar	  passing intel_iommu=sm_on to the kernel. If not sure, please use
90ab65ba57SJerry Snitselaar	  the default value.
9101dac2d9SLu Baolu
92a6a5006dSKan Liangconfig INTEL_IOMMU_PERF_EVENTS
93a6a5006dSKan Liang	bool "Intel IOMMU performance events"
94cd14b018SMasahiro Yamada	default y
95a6a5006dSKan Liang	depends on INTEL_IOMMU && PERF_EVENTS
96a6a5006dSKan Liang	help
97a6a5006dSKan Liang	  Selecting this option will enable the performance monitoring
98a6a5006dSKan Liang	  infrastructure in the Intel IOMMU. It collects information about
99a6a5006dSKan Liang	  key events occurring during operation of the remapping hardware,
100a6a5006dSKan Liang	  to aid performance tuning and debug. These are available on modern
101a6a5006dSKan Liang	  processors which support Intel VT-d 4.0 and later.
102a6a5006dSKan Liang
10301dac2d9SLu Baoluendif # INTEL_IOMMU
104