hc
2024-01-05 071106ecf68c401173c58808b1cf5f68cc50d390
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
# SPDX-License-Identifier: GPL-2.0-only
# Intel IOMMU support
config DMAR_TABLE
   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
   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.
 
config INTEL_IOMMU_DEBUGFS
   bool "Export Intel IOMMU internals in Debugfs"
   depends on INTEL_IOMMU && IOMMU_DEBUGFS
   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 INTEL_IOMMU && X86_64
   select PCI_PASID
   select PCI_PRI
   select MMU_NOTIFIER
   select IOASID
   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
   def_bool y
   prompt "Enable Intel DMA Remapping Devices by default"
   depends on INTEL_IOMMU
   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 INTEL_IOMMU && 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 INTEL_IOMMU && 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"
   depends on INTEL_IOMMU
   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.