Kconfig 2.9 KB

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