Commit 38901f1c authored by Andi Kleen's avatar Andi Kleen Committed by Ingo Molnar

x86/iommu: Don't make AMD_GART depend on EXPERT and default y

The AMD_GART driver was made EXPERT/EMBEDDED a long time
ago to avoid unbootable 64bit systems with 32bit only devices.

This was before swiotlb was there, which does the job
of this fallback today. SWIOTLB is always on, so systems
should always boot.

The drawback is that every system has to compile that
driver in (it cannot be a module).

Also:
 - Newer AMD CPUs (the APUs) don't seem to have AMD_GART support
   at all anymore.

 - Newer AMD platforms have a much better real IOMMU

 - The AMD GART driver was never very good (lots of overhead,
   e.g. in flushing due to some workarounds) and it's doubtful it's
   really better than SWIOTLB.

 - On older K8 systems it didn't even work with all chipsets.

 - The 32bit device bounce buffer case should be rare/
   non performance critical these days anyways.

 - On non AMD systems it is not needed at all.

So drop the EXPERT dependency on AMD_GART and remove the
default y. The driver can be still compiled in, just
it's an explicit decision now, and people who don't want
it can unselect it.

I also clarified the description a bit.

This allows to save ~8K text on most modern x86-64 systems.
Signed-off-by: default avatarAndi Kleen <ak@linux.intel.com>
Acked-by: default avatarBorislav Petkov <bp@suse.de>
Link: http://lkml.kernel.org/r/1380922676-23007-1-git-send-email-andi@firstfloor.orgSigned-off-by: default avatarIngo Molnar <mingo@kernel.org>
parent e62063d6
...@@ -756,17 +756,16 @@ config DMI ...@@ -756,17 +756,16 @@ config DMI
BIOS code. BIOS code.
config GART_IOMMU config GART_IOMMU
bool "GART IOMMU support" if EXPERT bool "Old AMD GART IOMMU support"
default y
select SWIOTLB select SWIOTLB
depends on X86_64 && PCI && AMD_NB depends on X86_64 && PCI && AMD_NB
---help--- ---help---
Support for full DMA access of devices with 32bit memory access only Support for full DMA access of devices with 32bit memory access only
on systems with more than 3GB. This is usually needed for USB, on systems with more than 3GB. This is usually needed for USB,
sound, many IDE/SATA chipsets and some other devices. sound, many IDE/SATA chipsets and some other devices.
Provides a driver for the AMD Athlon64/Opteron/Turion/Sempron GART Provides a driver for the older AMD Athlon64/Opteron/Turion/Sempron GART
based hardware IOMMU and a software bounce buffer based IOMMU used based hardware IOMMU.
on Intel systems and as fallback. Newer systems typically have a better AMD IOMMU.
The code is only active when needed (enough memory and limited The code is only active when needed (enough memory and limited
device) unless CONFIG_IOMMU_DEBUG or iommu=force is specified device) unless CONFIG_IOMMU_DEBUG or iommu=force is specified
too. too.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment