forked from Qortal/Brooklyn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
97 lines
3.0 KiB
97 lines
3.0 KiB
# SPDX-License-Identifier: GPL-2.0-only |
|
# Intel IOMMU support |
|
config DMAR_TABLE |
|
bool |
|
|
|
config DMAR_PERF |
|
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 |
|
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
|
|
|