1# SPDX-License-Identifier: GPL-2.0-only
2# AMD IOMMU support
3config AMD_IOMMU
4	bool "AMD IOMMU support"
5	select SWIOTLB
6	select PCI_MSI
7	select PCI_ATS
8	select PCI_PRI
9	select PCI_PASID
10	select IOMMU_API
11	select IOMMU_IOVA
12	select IOMMU_DMA
13	select IOMMU_IO_PGTABLE
14	depends on X86_64 && PCI && ACPI && HAVE_CMPXCHG_DOUBLE
15	help
16	  With this option you can enable support for AMD IOMMU hardware in
17	  your system. An IOMMU is a hardware component which provides
18	  remapping of DMA memory accesses from devices. With an AMD IOMMU you
19	  can isolate the DMA memory of different devices and protect the
20	  system from misbehaving device drivers or hardware.
21
22	  You can find out if your system has an AMD IOMMU if you look into
23	  your BIOS for an option to enable it or if you have an IVRS ACPI
24	  table.
25
26config AMD_IOMMU_V2
27	tristate "AMD IOMMU Version 2 driver"
28	depends on AMD_IOMMU
29	select MMU_NOTIFIER
30	help
31	  This option enables support for the AMD IOMMUv2 features of the IOMMU
32	  hardware. Select this option if you want to use devices that support
33	  the PCI PRI and PASID interface.
34
35config AMD_IOMMU_DEBUGFS
36	bool "Enable AMD IOMMU internals in DebugFS"
37	depends on AMD_IOMMU && IOMMU_DEBUGFS
38	help
39	  !!!WARNING!!!  !!!WARNING!!!  !!!WARNING!!!  !!!WARNING!!!
40
41	  DO NOT ENABLE THIS OPTION UNLESS YOU REALLY, -REALLY- KNOW WHAT YOU ARE DOING!!!
42	  Exposes AMD IOMMU device internals in DebugFS.
43
44	  This option is -NOT- intended for production environments, and should
45	  not generally be enabled.
46