diff options
Diffstat (limited to 'arch/x86_64/Kconfig')
-rw-r--r-- | arch/x86_64/Kconfig | 51 |
1 files changed, 38 insertions, 13 deletions
diff --git a/arch/x86_64/Kconfig b/arch/x86_64/Kconfig index af44130f0d65..ccc4a7fb97a3 100644 --- a/arch/x86_64/Kconfig +++ b/arch/x86_64/Kconfig | |||
@@ -386,24 +386,45 @@ config HPET_EMULATE_RTC | |||
386 | bool "Provide RTC interrupt" | 386 | bool "Provide RTC interrupt" |
387 | depends on HPET_TIMER && RTC=y | 387 | depends on HPET_TIMER && RTC=y |
388 | 388 | ||
389 | config GART_IOMMU | 389 | # Mark as embedded because too many people got it wrong. |
390 | bool "K8 GART IOMMU support" | 390 | # The code disables itself when not needed. |
391 | config IOMMU | ||
392 | bool "IOMMU support" if EMBEDDED | ||
391 | default y | 393 | default y |
392 | select SWIOTLB | 394 | select SWIOTLB |
393 | select AGP | 395 | select AGP |
394 | depends on PCI | 396 | depends on PCI |
395 | help | 397 | help |
396 | Support for hardware IOMMU in AMD's Opteron/Athlon64 Processors | 398 | Support for full DMA access of devices with 32bit memory access only |
397 | and for the bounce buffering software IOMMU. | 399 | on systems with more than 3GB. This is usually needed for USB, |
398 | Needed to run systems with more than 3GB of memory properly with | 400 | sound, many IDE/SATA chipsets and some other devices. |
399 | 32-bit PCI devices that do not support DAC (Double Address Cycle). | 401 | Provides a driver for the AMD Athlon64/Opteron/Turion/Sempron GART |
400 | The IOMMU can be turned off at runtime with the iommu=off parameter. | 402 | based IOMMU and a software bounce buffer based IOMMU used on Intel |
401 | Normally the kernel will take the right choice by itself. | 403 | systems and as fallback. |
402 | This option includes a driver for the AMD Opteron/Athlon64 IOMMU | 404 | The code is only active when needed (enough memory and limited |
403 | northbridge and a software emulation used on other systems without | 405 | device) unless CONFIG_IOMMU_DEBUG or iommu=force is specified |
404 | hardware IOMMU. If unsure, say Y. | 406 | too. |
405 | 407 | ||
406 | # need this always selected by GART_IOMMU for the VIA workaround | 408 | config CALGARY_IOMMU |
409 | bool "IBM Calgary IOMMU support" | ||
410 | default y | ||
411 | select SWIOTLB | ||
412 | depends on PCI && EXPERIMENTAL | ||
413 | help | ||
414 | Support for hardware IOMMUs in IBM's xSeries x366 and x460 | ||
415 | systems. Needed to run systems with more than 3GB of memory | ||
416 | properly with 32-bit PCI devices that do not support DAC | ||
417 | (Double Address Cycle). Calgary also supports bus level | ||
418 | isolation, where all DMAs pass through the IOMMU. This | ||
419 | prevents them from going anywhere except their intended | ||
420 | destination. This catches hard-to-find kernel bugs and | ||
421 | mis-behaving drivers and devices that do not use the DMA-API | ||
422 | properly to set up their DMA buffers. The IOMMU can be | ||
423 | turned off at boot time with the iommu=off parameter. | ||
424 | Normally the kernel will make the right choice by itself. | ||
425 | If unsure, say Y. | ||
426 | |||
427 | # need this always selected by IOMMU for the VIA workaround | ||
407 | config SWIOTLB | 428 | config SWIOTLB |
408 | bool | 429 | bool |
409 | 430 | ||
@@ -501,6 +522,10 @@ config REORDER | |||
501 | optimal TLB usage. If you have pretty much any version of binutils, | 522 | optimal TLB usage. If you have pretty much any version of binutils, |
502 | this can increase your kernel build time by roughly one minute. | 523 | this can increase your kernel build time by roughly one minute. |
503 | 524 | ||
525 | config K8_NB | ||
526 | def_bool y | ||
527 | depends on AGP_AMD64 || IOMMU || (PCI && NUMA) | ||
528 | |||
504 | endmenu | 529 | endmenu |
505 | 530 | ||
506 | # | 531 | # |