diff options
Diffstat (limited to 'arch/x86_64')
-rw-r--r-- | arch/x86_64/Kconfig | 10 | ||||
-rw-r--r-- | arch/x86_64/kernel/pci-dma.c | 28 |
2 files changed, 12 insertions, 26 deletions
diff --git a/arch/x86_64/Kconfig b/arch/x86_64/Kconfig index 02dd39457bc..a55382a1bb4 100644 --- a/arch/x86_64/Kconfig +++ b/arch/x86_64/Kconfig | |||
@@ -458,8 +458,8 @@ config IOMMU | |||
458 | on systems with more than 3GB. This is usually needed for USB, | 458 | on systems with more than 3GB. This is usually needed for USB, |
459 | sound, many IDE/SATA chipsets and some other devices. | 459 | sound, many IDE/SATA chipsets and some other devices. |
460 | Provides a driver for the AMD Athlon64/Opteron/Turion/Sempron GART | 460 | Provides a driver for the AMD Athlon64/Opteron/Turion/Sempron GART |
461 | based IOMMU and a software bounce buffer based IOMMU used on Intel | 461 | based hardware IOMMU and a software bounce buffer based IOMMU used |
462 | systems and as fallback. | 462 | on Intel systems and as fallback. |
463 | The code is only active when needed (enough memory and limited | 463 | The code is only active when needed (enough memory and limited |
464 | device) unless CONFIG_IOMMU_DEBUG or iommu=force is specified | 464 | device) unless CONFIG_IOMMU_DEBUG or iommu=force is specified |
465 | too. | 465 | too. |
@@ -496,6 +496,12 @@ config CALGARY_IOMMU_ENABLED_BY_DEFAULT | |||
496 | # need this always selected by IOMMU for the VIA workaround | 496 | # need this always selected by IOMMU for the VIA workaround |
497 | config SWIOTLB | 497 | config SWIOTLB |
498 | bool | 498 | bool |
499 | help | ||
500 | Support for software bounce buffers used on x86-64 systems | ||
501 | which don't have a hardware IOMMU (e.g. the current generation | ||
502 | of Intel's x86-64 CPUs). Using this PCI devices which can only | ||
503 | access 32-bits of memory can be used on systems with more than | ||
504 | 3 GB of memory. If unsure, say Y. | ||
499 | 505 | ||
500 | config X86_MCE | 506 | config X86_MCE |
501 | bool "Machine check support" if EMBEDDED | 507 | bool "Machine check support" if EMBEDDED |
diff --git a/arch/x86_64/kernel/pci-dma.c b/arch/x86_64/kernel/pci-dma.c index 683b7a5c1ab..651ccfb0669 100644 --- a/arch/x86_64/kernel/pci-dma.c +++ b/arch/x86_64/kernel/pci-dma.c | |||
@@ -223,30 +223,10 @@ int dma_set_mask(struct device *dev, u64 mask) | |||
223 | } | 223 | } |
224 | EXPORT_SYMBOL(dma_set_mask); | 224 | EXPORT_SYMBOL(dma_set_mask); |
225 | 225 | ||
226 | /* iommu=[size][,noagp][,off][,force][,noforce][,leak][,memaper[=order]][,merge] | 226 | /* |
227 | [,forcesac][,fullflush][,nomerge][,biomerge] | 227 | * See <Documentation/x86_64/boot-options.txt> for the iommu kernel parameter |
228 | size set size of iommu (in bytes) | 228 | * documentation. |
229 | noagp don't initialize the AGP driver and use full aperture. | 229 | */ |
230 | off don't use the IOMMU | ||
231 | leak turn on simple iommu leak tracing (only when CONFIG_IOMMU_LEAK is on) | ||
232 | memaper[=order] allocate an own aperture over RAM with size 32MB^order. | ||
233 | noforce don't force IOMMU usage. Default. | ||
234 | force Force IOMMU. | ||
235 | merge Do lazy merging. This may improve performance on some block devices. | ||
236 | Implies force (experimental) | ||
237 | biomerge Do merging at the BIO layer. This is more efficient than merge, | ||
238 | but should be only done with very big IOMMUs. Implies merge,force. | ||
239 | nomerge Don't do SG merging. | ||
240 | forcesac For SAC mode for masks <40bits (experimental) | ||
241 | fullflush Flush IOMMU on each allocation (default) | ||
242 | nofullflush Don't use IOMMU fullflush | ||
243 | allowed overwrite iommu off workarounds for specific chipsets. | ||
244 | soft Use software bounce buffering (default for Intel machines) | ||
245 | noaperture Don't touch the aperture for AGP. | ||
246 | allowdac Allow DMA >4GB | ||
247 | nodac Forbid DMA >4GB | ||
248 | panic Force panic when IOMMU overflows | ||
249 | */ | ||
250 | __init int iommu_setup(char *p) | 230 | __init int iommu_setup(char *p) |
251 | { | 231 | { |
252 | iommu_merge = 1; | 232 | iommu_merge = 1; |