Kconfig 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  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
  12. select IOMMU_API
  13. select GENERIC_PT
  14. select IOMMU_PT
  15. select IOMMU_PT_X86_64
  16. select IOMMU_PT_VTDSS
  17. select IOMMU_IOVA
  18. select IOMMU_IOPF
  19. select IOMMUFD_DRIVER if IOMMUFD
  20. select NEED_DMA_MAP_STATE
  21. select DMAR_TABLE
  22. select SWIOTLB
  23. select PCI_ATS
  24. select PCI_PRI
  25. select PCI_PASID
  26. help
  27. DMA remapping (DMAR) devices support enables independent address
  28. translations for Direct Memory Access (DMA) from devices.
  29. These DMA remapping devices are reported via ACPI tables
  30. and include PCI device scope covered by these DMA
  31. remapping devices.
  32. if INTEL_IOMMU
  33. config INTEL_IOMMU_DEBUGFS
  34. bool "Export Intel IOMMU internals in Debugfs"
  35. depends on IOMMU_DEBUGFS
  36. select DMAR_PERF
  37. select DMAR_DEBUG
  38. help
  39. !!!WARNING!!!
  40. DO NOT ENABLE THIS OPTION UNLESS YOU REALLY KNOW WHAT YOU ARE DOING!!!
  41. Expose Intel IOMMU internals in Debugfs.
  42. This option is -NOT- intended for production environments, and should
  43. only be enabled for debugging Intel IOMMU.
  44. config INTEL_IOMMU_SVM
  45. bool "Support for Shared Virtual Memory with Intel IOMMU"
  46. depends on X86_64
  47. select MMU_NOTIFIER
  48. select IOMMU_SVA
  49. help
  50. Shared Virtual Memory (SVM) provides a facility for devices
  51. to access DMA resources through process address space by
  52. means of a Process Address Space ID (PASID).
  53. config INTEL_IOMMU_DEFAULT_ON
  54. bool "Enable Intel DMA Remapping Devices by default"
  55. default y
  56. help
  57. Selecting this option will enable a DMAR device at boot time if
  58. one is found. If this option is not selected, DMAR support can
  59. be enabled by passing intel_iommu=on to the kernel.
  60. config INTEL_IOMMU_FLOPPY_WA
  61. def_bool y
  62. depends on X86 && BLK_DEV_FD
  63. help
  64. Floppy disk drivers are known to bypass DMA API calls
  65. thereby failing to work when IOMMU is enabled. This
  66. workaround will setup a 1:1 mapping for the first
  67. 16MiB to make floppy (an ISA device) work.
  68. config INTEL_IOMMU_SCALABLE_MODE_DEFAULT_ON
  69. bool "Enable Intel IOMMU scalable mode by default"
  70. default y
  71. help
  72. Selecting this option will enable by default the scalable mode if
  73. hardware presents the capability. The scalable mode is defined in
  74. VT-d 3.0. The scalable mode capability could be checked by reading
  75. /sys/devices/virtual/iommu/dmar*/intel-iommu/ecap. If this option
  76. is not selected, scalable mode support could also be enabled by
  77. passing intel_iommu=sm_on to the kernel. If not sure, please use
  78. the default value.
  79. config INTEL_IOMMU_PERF_EVENTS
  80. bool "Intel IOMMU performance events"
  81. default y
  82. depends on INTEL_IOMMU && PERF_EVENTS
  83. help
  84. Selecting this option will enable the performance monitoring
  85. infrastructure in the Intel IOMMU. It collects information about
  86. key events occurring during operation of the remapping hardware,
  87. to aid performance tuning and debug. These are available on modern
  88. processors which support Intel VT-d 4.0 and later.
  89. endif # INTEL_IOMMU