-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'core-iommu-for-linus' of git://git.kernel.org/pub/scm/l…
…inux/kernel/git/tip/linux-2.6-tip * 'core-iommu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: iommu/core: Fix build with INTR_REMAP=y && CONFIG_DMAR=n iommu/amd: Don't use MSI address range for DMA addresses iommu/amd: Move missing parts to drivers/iommu iommu: Move iommu Kconfig entries to submenu x86/ia64: intel-iommu: move to drivers/iommu/ x86: amd_iommu: move to drivers/iommu/ msm: iommu: move to drivers/iommu/ drivers: iommu: move to a dedicated folder x86/amd-iommu: Store device alias as dev_data pointer x86/amd-iommu: Search for existind dev_data before allocting a new one x86/amd-iommu: Allow dev_data->alias to be NULL x86/amd-iommu: Use only dev_data in low-level domain attach/detach functions x86/amd-iommu: Use only dev_data for dte and iotlb flushing routines x86/amd-iommu: Store ATS state in dev_data x86/amd-iommu: Store devid in dev_data x86/amd-iommu: Introduce global dev_data_list x86/amd-iommu: Remove redundant device_flush_dte() calls iommu-api: Add missing header file Fix up trivial conflicts (independent additions close to each other) in drivers/Makefile and include/linux/pci.h
- Loading branch information
Showing
27 changed files
with
332 additions
and
267 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,110 @@ | ||
# IOMMU_API always gets selected by whoever wants it. | ||
config IOMMU_API | ||
bool | ||
|
||
menuconfig IOMMU_SUPPORT | ||
bool "IOMMU Hardware Support" | ||
default y | ||
---help--- | ||
Say Y here if you want to compile device drivers for IO Memory | ||
Management Units into the kernel. These devices usually allow to | ||
remap DMA requests and/or remap interrupts from other devices on the | ||
system. | ||
|
||
if IOMMU_SUPPORT | ||
|
||
# MSM IOMMU support | ||
config MSM_IOMMU | ||
bool "MSM IOMMU Support" | ||
depends on ARCH_MSM8X60 || ARCH_MSM8960 | ||
select IOMMU_API | ||
help | ||
Support for the IOMMUs found on certain Qualcomm SOCs. | ||
These IOMMUs allow virtualization of the address space used by most | ||
cores within the multimedia subsystem. | ||
|
||
If unsure, say N here. | ||
|
||
config IOMMU_PGTABLES_L2 | ||
def_bool y | ||
depends on MSM_IOMMU && MMU && SMP && CPU_DCACHE_DISABLE=n | ||
|
||
# AMD IOMMU support | ||
config AMD_IOMMU | ||
bool "AMD IOMMU support" | ||
select SWIOTLB | ||
select PCI_MSI | ||
select PCI_IOV | ||
select IOMMU_API | ||
depends on X86_64 && PCI && ACPI | ||
---help--- | ||
With this option you can enable support for AMD IOMMU hardware in | ||
your system. An IOMMU is a hardware component which provides | ||
remapping of DMA memory accesses from devices. With an AMD IOMMU you | ||
can isolate the the DMA memory of different devices and protect the | ||
system from misbehaving device drivers or hardware. | ||
|
||
You can find out if your system has an AMD IOMMU if you look into | ||
your BIOS for an option to enable it or if you have an IVRS ACPI | ||
table. | ||
|
||
config AMD_IOMMU_STATS | ||
bool "Export AMD IOMMU statistics to debugfs" | ||
depends on AMD_IOMMU | ||
select DEBUG_FS | ||
---help--- | ||
This option enables code in the AMD IOMMU driver to collect various | ||
statistics about whats happening in the driver and exports that | ||
information to userspace via debugfs. | ||
If unsure, say N. | ||
|
||
# Intel IOMMU support | ||
config DMAR | ||
bool "Support for DMA Remapping Devices" | ||
depends on PCI_MSI && ACPI && (X86 || IA64_GENERIC) | ||
select IOMMU_API | ||
help | ||
DMA remapping (DMAR) devices support enables independent address | ||
translations for Direct Memory Access (DMA) from devices. | ||
These DMA remapping devices are reported via ACPI tables | ||
and include PCI device scope covered by these DMA | ||
remapping devices. | ||
|
||
config DMAR_DEFAULT_ON | ||
def_bool y | ||
prompt "Enable DMA Remapping Devices by default" | ||
depends on DMAR | ||
help | ||
Selecting this option will enable a DMAR device at boot time if | ||
one is found. If this option is not selected, DMAR support can | ||
be enabled by passing intel_iommu=on to the kernel. | ||
|
||
config DMAR_BROKEN_GFX_WA | ||
bool "Workaround broken graphics drivers (going away soon)" | ||
depends on DMAR && BROKEN && X86 | ||
---help--- | ||
Current Graphics drivers tend to use physical address | ||
for DMA and avoid using DMA APIs. Setting this config | ||
option permits the IOMMU driver to set a unity map for | ||
all the OS-visible memory. Hence the driver can continue | ||
to use physical addresses for DMA, at least until this | ||
option is removed in the 2.6.32 kernel. | ||
|
||
config DMAR_FLOPPY_WA | ||
def_bool y | ||
depends on DMAR && X86 | ||
---help--- | ||
Floppy disk drivers are known to bypass DMA API calls | ||
thereby failing to work when IOMMU is enabled. This | ||
workaround will setup a 1:1 mapping for the first | ||
16MiB to make floppy (an ISA device) work. | ||
|
||
config INTR_REMAP | ||
bool "Support for Interrupt Remapping (EXPERIMENTAL)" | ||
depends on X86_64 && X86_IO_APIC && PCI_MSI && ACPI && EXPERIMENTAL | ||
---help--- | ||
Supports Interrupt remapping for IO-APIC and MSI devices. | ||
To use x2apic mode in the CPU's which support x2APIC enhancements or | ||
to support platforms with CPU's having > 8 bit APIC ID, say Y. | ||
|
||
endif # IOMMU_SUPPORT |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
obj-$(CONFIG_IOMMU_API) += iommu.o | ||
obj-$(CONFIG_MSM_IOMMU) += msm_iommu.o msm_iommu_dev.o | ||
obj-$(CONFIG_AMD_IOMMU) += amd_iommu.o amd_iommu_init.o | ||
obj-$(CONFIG_DMAR) += dmar.o iova.o intel-iommu.o | ||
obj-$(CONFIG_INTR_REMAP) += dmar.o intr_remapping.o |
Oops, something went wrong.