Kconfig 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. # SPDX-License-Identifier: GPL-2.0-only
  2. # Intel IOMMU support
  3. config DMAR_TABLE
  4. bool
  5. config DMAR_PERF
  6. bool
  7. config DMAR_DEBUG
  8. bool
  9. config INTEL_IOMMU
  10. bool "Support for Intel IOMMU using DMA Remapping Devices"
  11. depends on PCI_MSI && ACPI && (X86 || IA64)
  12. select DMA_OPS
  13. select IOMMU_API
  14. select IOMMU_IOVA
  15. select NEED_DMA_MAP_STATE
  16. select DMAR_TABLE
  17. select SWIOTLB
  18. select IOASID
  19. select PCI_ATS
  20. select PCI_PRI
  21. select PCI_PASID
  22. help
  23. DMA remapping (DMAR) devices support enables independent address
  24. translations for Direct Memory Access (DMA) from devices.
  25. These DMA remapping devices are reported via ACPI tables
  26. and include PCI device scope covered by these DMA
  27. remapping devices.
  28. if INTEL_IOMMU
  29. config INTEL_IOMMU_DEBUGFS
  30. bool "Export Intel IOMMU internals in Debugfs"
  31. depends on IOMMU_DEBUGFS
  32. select DMAR_PERF
  33. select DMAR_DEBUG
  34. help
  35. !!!WARNING!!!
  36. DO NOT ENABLE THIS OPTION UNLESS YOU REALLY KNOW WHAT YOU ARE DOING!!!
  37. Expose Intel IOMMU internals in Debugfs.
  38. This option is -NOT- intended for production environments, and should
  39. only be enabled for debugging Intel IOMMU.
  40. config INTEL_IOMMU_SVM
  41. bool "Support for Shared Virtual Memory with Intel IOMMU"
  42. depends on X86_64
  43. select MMU_NOTIFIER
  44. select IOMMU_SVA
  45. help
  46. Shared Virtual Memory (SVM) provides a facility for devices
  47. to access DMA resources through process address space by
  48. means of a Process Address Space ID (PASID).
  49. config INTEL_IOMMU_DEFAULT_ON
  50. bool "Enable Intel DMA Remapping Devices by default"
  51. default y
  52. help
  53. Selecting this option will enable a DMAR device at boot time if
  54. one is found. If this option is not selected, DMAR support can
  55. be enabled by passing intel_iommu=on to the kernel.
  56. config INTEL_IOMMU_BROKEN_GFX_WA
  57. bool "Workaround broken graphics drivers (going away soon)"
  58. depends on BROKEN && X86
  59. help
  60. Current Graphics drivers tend to use physical address
  61. for DMA and avoid using DMA APIs. Setting this config
  62. option permits the IOMMU driver to set a unity map for
  63. all the OS-visible memory. Hence the driver can continue
  64. to use physical addresses for DMA, at least until this
  65. option is removed in the 2.6.32 kernel.
  66. config INTEL_IOMMU_FLOPPY_WA
  67. def_bool y
  68. depends on X86
  69. help
  70. Floppy disk drivers are known to bypass DMA API calls
  71. thereby failing to work when IOMMU is enabled. This
  72. workaround will setup a 1:1 mapping for the first
  73. 16MiB to make floppy (an ISA device) work.
  74. config INTEL_IOMMU_SCALABLE_MODE_DEFAULT_ON
  75. bool "Enable Intel IOMMU scalable mode by default"
  76. default y
  77. help
  78. Selecting this option will enable by default the scalable mode if
  79. hardware presents the capability. The scalable mode is defined in
  80. VT-d 3.0. The scalable mode capability could be checked by reading
  81. /sys/devices/virtual/iommu/dmar*/intel-iommu/ecap. If this option
  82. is not selected, scalable mode support could also be enabled by
  83. passing intel_iommu=sm_on to the kernel. If not sure, please use
  84. the default value.
  85. endif # INTEL_IOMMU