Back to home page

OSCL-LXR

 
 

    


0001 # SPDX-License-Identifier: GPL-2.0-only
0002 # Intel IOMMU support
0003 config DMAR_TABLE
0004         bool
0005 
0006 config DMAR_PERF
0007         bool
0008 
0009 config DMAR_DEBUG
0010         bool
0011 
0012 config INTEL_IOMMU
0013         bool "Support for Intel IOMMU using DMA Remapping Devices"
0014         depends on PCI_MSI && ACPI && (X86 || IA64)
0015         select DMA_OPS
0016         select IOMMU_API
0017         select IOMMU_IOVA
0018         select NEED_DMA_MAP_STATE
0019         select DMAR_TABLE
0020         select SWIOTLB
0021         select IOASID
0022         select IOMMU_DMA
0023         select PCI_ATS
0024         help
0025           DMA remapping (DMAR) devices support enables independent address
0026           translations for Direct Memory Access (DMA) from devices.
0027           These DMA remapping devices are reported via ACPI tables
0028           and include PCI device scope covered by these DMA
0029           remapping devices.
0030 
0031 if INTEL_IOMMU
0032 
0033 config INTEL_IOMMU_DEBUGFS
0034         bool "Export Intel IOMMU internals in Debugfs"
0035         depends on IOMMU_DEBUGFS
0036         select DMAR_PERF
0037         select DMAR_DEBUG
0038         help
0039           !!!WARNING!!!
0040 
0041           DO NOT ENABLE THIS OPTION UNLESS YOU REALLY KNOW WHAT YOU ARE DOING!!!
0042 
0043           Expose Intel IOMMU internals in Debugfs.
0044 
0045           This option is -NOT- intended for production environments, and should
0046           only be enabled for debugging Intel IOMMU.
0047 
0048 config INTEL_IOMMU_SVM
0049         bool "Support for Shared Virtual Memory with Intel IOMMU"
0050         depends on X86_64
0051         select PCI_PASID
0052         select PCI_PRI
0053         select MMU_NOTIFIER
0054         select IOASID
0055         select IOMMU_SVA
0056         help
0057           Shared Virtual Memory (SVM) provides a facility for devices
0058           to access DMA resources through process address space by
0059           means of a Process Address Space ID (PASID).
0060 
0061 config INTEL_IOMMU_DEFAULT_ON
0062         bool "Enable Intel DMA Remapping Devices by default"
0063         default y
0064         help
0065           Selecting this option will enable a DMAR device at boot time if
0066           one is found. If this option is not selected, DMAR support can
0067           be enabled by passing intel_iommu=on to the kernel.
0068 
0069 config INTEL_IOMMU_BROKEN_GFX_WA
0070         bool "Workaround broken graphics drivers (going away soon)"
0071         depends on BROKEN && X86
0072         help
0073           Current Graphics drivers tend to use physical address
0074           for DMA and avoid using DMA APIs. Setting this config
0075           option permits the IOMMU driver to set a unity map for
0076           all the OS-visible memory. Hence the driver can continue
0077           to use physical addresses for DMA, at least until this
0078           option is removed in the 2.6.32 kernel.
0079 
0080 config INTEL_IOMMU_FLOPPY_WA
0081         def_bool y
0082         depends on X86
0083         help
0084           Floppy disk drivers are known to bypass DMA API calls
0085           thereby failing to work when IOMMU is enabled. This
0086           workaround will setup a 1:1 mapping for the first
0087           16MiB to make floppy (an ISA device) work.
0088 
0089 config INTEL_IOMMU_SCALABLE_MODE_DEFAULT_ON
0090         bool "Enable Intel IOMMU scalable mode by default"
0091         default y
0092         help
0093           Selecting this option will enable by default the scalable mode if
0094           hardware presents the capability. The scalable mode is defined in
0095           VT-d 3.0. The scalable mode capability could be checked by reading
0096           /sys/devices/virtual/iommu/dmar*/intel-iommu/ecap. If this option
0097           is not selected, scalable mode support could also be enabled by
0098           passing intel_iommu=sm_on to the kernel. If not sure, please use
0099           the default value.
0100 
0101 endif # INTEL_IOMMU