2005-04-16 18:20:36 -04:00
|
|
|
#
|
|
|
|
# For a description of the syntax of this configuration file,
|
|
|
|
# see Documentation/kbuild/kconfig-language.txt.
|
|
|
|
#
|
|
|
|
# Note: ISA is disabled and will hopefully never be enabled.
|
|
|
|
# If you managed to buy an ISA x86-64 box you'll have to fix all the
|
|
|
|
# ISA drivers you need yourself.
|
|
|
|
#
|
|
|
|
|
|
|
|
mainmenu "Linux Kernel Configuration"
|
|
|
|
|
|
|
|
config X86_64
|
|
|
|
bool
|
|
|
|
default y
|
|
|
|
help
|
|
|
|
Port to the x86-64 architecture. x86-64 is a 64-bit extension to the
|
|
|
|
classical 32-bit x86 architecture. For details see
|
|
|
|
<http://www.x86-64.org/>.
|
|
|
|
|
|
|
|
config 64BIT
|
|
|
|
def_bool y
|
|
|
|
|
|
|
|
config X86
|
|
|
|
bool
|
|
|
|
default y
|
|
|
|
|
2006-09-26 02:31:13 -04:00
|
|
|
config ZONE_DMA32
|
|
|
|
bool
|
|
|
|
default y
|
|
|
|
|
2006-07-03 03:25:01 -04:00
|
|
|
config LOCKDEP_SUPPORT
|
|
|
|
bool
|
|
|
|
default y
|
|
|
|
|
2006-07-03 03:24:40 -04:00
|
|
|
config STACKTRACE_SUPPORT
|
|
|
|
bool
|
|
|
|
default y
|
|
|
|
|
2005-09-03 18:56:52 -04:00
|
|
|
config SEMAPHORE_SLEEPERS
|
|
|
|
bool
|
|
|
|
default y
|
|
|
|
|
2005-04-16 18:20:36 -04:00
|
|
|
config MMU
|
|
|
|
bool
|
|
|
|
default y
|
|
|
|
|
|
|
|
config ISA
|
|
|
|
bool
|
|
|
|
|
|
|
|
config SBUS
|
|
|
|
bool
|
|
|
|
|
|
|
|
config RWSEM_GENERIC_SPINLOCK
|
|
|
|
bool
|
|
|
|
default y
|
|
|
|
|
|
|
|
config RWSEM_XCHGADD_ALGORITHM
|
|
|
|
bool
|
|
|
|
|
[PATCH] bitops: x86_64: use generic bitops
- remove sched_find_first_bit()
- remove generic_hweight{64,32,16,8}()
- remove ext2_{set,clear,test,find_first_zero,find_next_zero}_bit()
- remove minix_{test,set,test_and_clear,test,find_first_zero}_bit()
Signed-off-by: Akinobu Mita <mita@miraclelinux.com>
Cc: Andi Kleen <ak@muc.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-03-26 04:39:42 -05:00
|
|
|
config GENERIC_HWEIGHT
|
|
|
|
bool
|
|
|
|
default y
|
|
|
|
|
2005-04-16 18:20:36 -04:00
|
|
|
config GENERIC_CALIBRATE_DELAY
|
|
|
|
bool
|
|
|
|
default y
|
|
|
|
|
|
|
|
config X86_CMPXCHG
|
|
|
|
bool
|
|
|
|
default y
|
|
|
|
|
|
|
|
config EARLY_PRINTK
|
|
|
|
bool
|
|
|
|
default y
|
|
|
|
|
|
|
|
config GENERIC_ISA_DMA
|
|
|
|
bool
|
|
|
|
default y
|
|
|
|
|
|
|
|
config GENERIC_IOMAP
|
|
|
|
bool
|
|
|
|
default y
|
|
|
|
|
2005-09-05 20:48:42 -04:00
|
|
|
config ARCH_MAY_HAVE_PC_FDC
|
|
|
|
bool
|
|
|
|
default y
|
|
|
|
|
2006-09-27 04:49:52 -04:00
|
|
|
config ARCH_POPULATES_NODE_MAP
|
|
|
|
def_bool y
|
|
|
|
|
2006-01-11 16:43:33 -05:00
|
|
|
config DMI
|
|
|
|
bool
|
|
|
|
default y
|
|
|
|
|
2006-09-12 03:04:40 -04:00
|
|
|
config AUDIT_ARCH
|
|
|
|
bool
|
|
|
|
default y
|
|
|
|
|
2006-12-08 05:36:22 -05:00
|
|
|
config GENERIC_BUG
|
|
|
|
bool
|
|
|
|
default y
|
|
|
|
depends on BUG
|
|
|
|
|
2005-04-16 18:20:36 -04:00
|
|
|
source "init/Kconfig"
|
|
|
|
|
|
|
|
|
|
|
|
menu "Processor type and features"
|
|
|
|
|
2006-01-11 16:46:18 -05:00
|
|
|
choice
|
|
|
|
prompt "Subarchitecture Type"
|
|
|
|
default X86_PC
|
|
|
|
|
|
|
|
config X86_PC
|
|
|
|
bool "PC-compatible"
|
|
|
|
help
|
|
|
|
Choose this option if your computer is a standard PC or compatible.
|
|
|
|
|
|
|
|
config X86_VSMP
|
|
|
|
bool "Support for ScaleMP vSMP"
|
2006-09-26 04:52:41 -04:00
|
|
|
depends on PCI
|
2006-01-11 16:46:18 -05:00
|
|
|
help
|
|
|
|
Support for ScaleMP vSMP systems. Say 'Y' here if this kernel is
|
|
|
|
supposed to run on these EM64T-based machines. Only choose this option
|
|
|
|
if you have one of these machines.
|
|
|
|
|
|
|
|
endchoice
|
|
|
|
|
2005-04-16 18:20:36 -04:00
|
|
|
choice
|
|
|
|
prompt "Processor family"
|
2006-12-06 20:14:09 -05:00
|
|
|
default GENERIC_CPU
|
2005-04-16 18:20:36 -04:00
|
|
|
|
|
|
|
config MK8
|
|
|
|
bool "AMD-Opteron/Athlon64"
|
|
|
|
help
|
|
|
|
Optimize for AMD Opteron/Athlon64/Hammer/K8 CPUs.
|
|
|
|
|
|
|
|
config MPSC
|
2006-12-06 20:14:09 -05:00
|
|
|
bool "Intel P4 / older Netburst based Xeon"
|
2005-04-16 18:20:36 -04:00
|
|
|
help
|
2006-12-06 20:14:09 -05:00
|
|
|
Optimize for Intel Pentium 4 and older Nocona/Dempsey Xeon CPUs
|
|
|
|
with Intel Extended Memory 64 Technology(EM64T). For details see
|
2005-04-16 18:20:36 -04:00
|
|
|
<http://www.intel.com/technology/64bitextensions/>.
|
2006-12-06 20:14:09 -05:00
|
|
|
Note the the latest Xeons (Xeon 51xx and 53xx) are not based on the
|
|
|
|
Netburst core and shouldn't use this option. You can distingush them
|
|
|
|
using the cpu family field
|
|
|
|
in /proc/cpuinfo. Family 15 is a older Xeon, Family 6 a newer one
|
|
|
|
(this rule only applies to system that support EM64T)
|
|
|
|
|
|
|
|
config MCORE2
|
|
|
|
bool "Intel Core2 / newer Xeon"
|
|
|
|
help
|
|
|
|
Optimize for Intel Core2 and newer Xeons (51xx)
|
|
|
|
You can distingush the newer Xeons from the older ones using
|
|
|
|
the cpu family field in /proc/cpuinfo. 15 is a older Xeon
|
|
|
|
(use CONFIG_MPSC then), 6 is a newer one. This rule only
|
|
|
|
applies to CPUs that support EM64T.
|
2005-04-16 18:20:36 -04:00
|
|
|
|
|
|
|
config GENERIC_CPU
|
|
|
|
bool "Generic-x86-64"
|
|
|
|
help
|
|
|
|
Generic x86-64 CPU.
|
2006-12-06 20:14:09 -05:00
|
|
|
Run equally well on all x86-64 CPUs.
|
2005-04-16 18:20:36 -04:00
|
|
|
|
|
|
|
endchoice
|
|
|
|
|
|
|
|
#
|
|
|
|
# Define implied options from the CPU selection here
|
|
|
|
#
|
|
|
|
config X86_L1_CACHE_BYTES
|
|
|
|
int
|
|
|
|
default "128" if GENERIC_CPU || MPSC
|
2006-12-06 20:14:09 -05:00
|
|
|
default "64" if MK8 || MCORE2
|
2005-04-16 18:20:36 -04:00
|
|
|
|
|
|
|
config X86_L1_CACHE_SHIFT
|
|
|
|
int
|
|
|
|
default "7" if GENERIC_CPU || MPSC
|
2006-12-06 20:14:09 -05:00
|
|
|
default "6" if MK8 || MCORE2
|
2005-04-16 18:20:36 -04:00
|
|
|
|
2006-04-07 13:50:09 -04:00
|
|
|
config X86_INTERNODE_CACHE_BYTES
|
|
|
|
int
|
|
|
|
default "4096" if X86_VSMP
|
|
|
|
default X86_L1_CACHE_BYTES if !X86_VSMP
|
|
|
|
|
2005-04-16 18:20:36 -04:00
|
|
|
config X86_TSC
|
|
|
|
bool
|
|
|
|
default y
|
|
|
|
|
|
|
|
config X86_GOOD_APIC
|
|
|
|
bool
|
|
|
|
default y
|
|
|
|
|
|
|
|
config MICROCODE
|
|
|
|
tristate "/dev/cpu/microcode - Intel CPU microcode support"
|
2006-09-27 04:50:53 -04:00
|
|
|
select FW_LOADER
|
2005-04-16 18:20:36 -04:00
|
|
|
---help---
|
|
|
|
If you say Y here the 'File systems' section, you will be
|
|
|
|
able to update the microcode on Intel processors. You will
|
|
|
|
obviously need the actual microcode binary data itself which is
|
|
|
|
not shipped with the Linux kernel.
|
|
|
|
|
|
|
|
For latest news and information on obtaining all the required
|
|
|
|
ingredients for this driver, check:
|
|
|
|
<http://www.urbanmyth.org/microcode/>.
|
|
|
|
|
|
|
|
To compile this driver as a module, choose M here: the
|
|
|
|
module will be called microcode.
|
|
|
|
If you use modprobe or kmod you may also want to add the line
|
|
|
|
'alias char-major-10-184 microcode' to your /etc/modules.conf file.
|
|
|
|
|
2006-09-27 04:50:51 -04:00
|
|
|
config MICROCODE_OLD_INTERFACE
|
|
|
|
bool
|
|
|
|
depends on MICROCODE
|
|
|
|
default y
|
|
|
|
|
2005-04-16 18:20:36 -04:00
|
|
|
config X86_MSR
|
|
|
|
tristate "/dev/cpu/*/msr - Model-specific register support"
|
|
|
|
help
|
|
|
|
This device gives privileged processes access to the x86
|
|
|
|
Model-Specific Registers (MSRs). It is a character device with
|
|
|
|
major 202 and minors 0 to 31 for /dev/cpu/0/msr to /dev/cpu/31/msr.
|
|
|
|
MSR accesses are directed to a specific CPU on multi-processor
|
|
|
|
systems.
|
|
|
|
|
|
|
|
config X86_CPUID
|
|
|
|
tristate "/dev/cpu/*/cpuid - CPU information support"
|
|
|
|
help
|
|
|
|
This device gives processes access to the x86 CPUID instruction to
|
|
|
|
be executed on a specific processor. It is a character device
|
|
|
|
with major 203 and minors 0 to 31 for /dev/cpu/0/cpuid to
|
|
|
|
/dev/cpu/31/cpuid.
|
|
|
|
|
|
|
|
config X86_HT
|
|
|
|
bool
|
|
|
|
depends on SMP && !MK8
|
|
|
|
default y
|
|
|
|
|
|
|
|
config MATH_EMULATION
|
|
|
|
bool
|
|
|
|
|
|
|
|
config MCA
|
|
|
|
bool
|
|
|
|
|
|
|
|
config EISA
|
|
|
|
bool
|
|
|
|
|
|
|
|
config X86_IO_APIC
|
|
|
|
bool
|
|
|
|
default y
|
|
|
|
|
|
|
|
config X86_LOCAL_APIC
|
|
|
|
bool
|
|
|
|
default y
|
|
|
|
|
|
|
|
config MTRR
|
|
|
|
bool "MTRR (Memory Type Range Register) support"
|
|
|
|
---help---
|
|
|
|
On Intel P6 family processors (Pentium Pro, Pentium II and later)
|
|
|
|
the Memory Type Range Registers (MTRRs) may be used to control
|
|
|
|
processor access to memory ranges. This is most useful if you have
|
|
|
|
a video (VGA) card on a PCI or AGP bus. Enabling write-combining
|
|
|
|
allows bus write transfers to be combined into a larger transfer
|
|
|
|
before bursting over the PCI/AGP bus. This can increase performance
|
|
|
|
of image write operations 2.5 times or more. Saying Y here creates a
|
|
|
|
/proc/mtrr file which may be used to manipulate your processor's
|
|
|
|
MTRRs. Typically the X server should use this.
|
|
|
|
|
|
|
|
This code has a reasonably generic interface so that similar
|
|
|
|
control registers on other processors can be easily supported
|
|
|
|
as well.
|
|
|
|
|
|
|
|
Saying Y here also fixes a problem with buggy SMP BIOSes which only
|
|
|
|
set the MTRRs for the boot CPU and not for the secondary CPUs. This
|
|
|
|
can lead to all sorts of problems, so it's good to say Y here.
|
|
|
|
|
|
|
|
Just say Y here, all x86-64 machines support MTRRs.
|
|
|
|
|
|
|
|
See <file:Documentation/mtrr.txt> for more information.
|
|
|
|
|
|
|
|
config SMP
|
|
|
|
bool "Symmetric multi-processing support"
|
|
|
|
---help---
|
|
|
|
This enables support for systems with more than one CPU. If you have
|
|
|
|
a system with only one CPU, like most personal computers, say N. If
|
|
|
|
you have a system with more than one CPU, say Y.
|
|
|
|
|
|
|
|
If you say N here, the kernel will run on single and multiprocessor
|
|
|
|
machines, but will use only one CPU of a multiprocessor machine. If
|
|
|
|
you say Y here, the kernel will run on many, but not all,
|
|
|
|
singleprocessor machines. On a singleprocessor machine, the kernel
|
|
|
|
will run faster if you say N here.
|
|
|
|
|
|
|
|
If you don't know what to do here, say N.
|
|
|
|
|
|
|
|
config SCHED_SMT
|
|
|
|
bool "SMT (Hyperthreading) scheduler support"
|
|
|
|
depends on SMP
|
|
|
|
default n
|
|
|
|
help
|
|
|
|
SMT scheduler support improves the CPU scheduler's decision making
|
|
|
|
when dealing with Intel Pentium 4 chips with HyperThreading at a
|
|
|
|
cost of slightly increased overhead in some places. If unsure say
|
|
|
|
N here.
|
|
|
|
|
2006-03-27 04:15:22 -05:00
|
|
|
config SCHED_MC
|
|
|
|
bool "Multi-core scheduler support"
|
|
|
|
depends on SMP
|
|
|
|
default y
|
|
|
|
help
|
|
|
|
Multi-core scheduler support improves the CPU scheduler's decision
|
|
|
|
making when dealing with multi-core CPU chips at a cost of slightly
|
|
|
|
increased overhead in some places. If unsure say N here.
|
|
|
|
|
2005-06-25 17:57:36 -04:00
|
|
|
source "kernel/Kconfig.preempt"
|
|
|
|
|
2005-11-05 11:25:54 -05:00
|
|
|
config NUMA
|
|
|
|
bool "Non Uniform Memory Access (NUMA) Support"
|
2005-04-16 18:20:36 -04:00
|
|
|
depends on SMP
|
|
|
|
help
|
2005-11-05 11:25:54 -05:00
|
|
|
Enable NUMA (Non Uniform Memory Access) support. The kernel
|
|
|
|
will try to allocate memory used by a CPU on the local memory
|
|
|
|
controller of the CPU and add some more NUMA awareness to the kernel.
|
|
|
|
This code is recommended on all multiprocessor Opteron systems.
|
|
|
|
If the system is EM64T, you should say N unless your system is EM64T
|
|
|
|
NUMA.
|
|
|
|
|
|
|
|
config K8_NUMA
|
|
|
|
bool "Old style AMD Opteron NUMA detection"
|
2006-09-26 04:52:41 -04:00
|
|
|
depends on NUMA && PCI
|
2005-11-05 11:25:54 -05:00
|
|
|
default y
|
|
|
|
help
|
|
|
|
Enable K8 NUMA node topology detection. You should say Y here if
|
|
|
|
you have a multi processor AMD K8 system. This uses an old
|
2006-10-03 16:34:14 -04:00
|
|
|
method to read the NUMA configuration directly from the builtin
|
2005-11-05 11:25:54 -05:00
|
|
|
Northbridge of Opteron. It is recommended to use X86_64_ACPI_NUMA
|
|
|
|
instead, which also takes priority if both are compiled in.
|
|
|
|
|
2006-04-11 01:53:53 -04:00
|
|
|
config NODES_SHIFT
|
|
|
|
int
|
|
|
|
default "6"
|
|
|
|
depends on NEED_MULTIPLE_NODES
|
|
|
|
|
2005-11-05 11:25:54 -05:00
|
|
|
# Dummy CONFIG option to select ACPI_NUMA from drivers/acpi/Kconfig.
|
|
|
|
|
|
|
|
config X86_64_ACPI_NUMA
|
|
|
|
bool "ACPI NUMA detection"
|
|
|
|
depends on NUMA
|
|
|
|
select ACPI
|
2006-03-28 17:04:00 -05:00
|
|
|
select PCI
|
2005-11-05 11:25:54 -05:00
|
|
|
select ACPI_NUMA
|
|
|
|
default y
|
|
|
|
help
|
|
|
|
Enable ACPI SRAT based node topology detection.
|
2005-04-16 18:20:36 -04:00
|
|
|
|
|
|
|
config NUMA_EMU
|
2005-11-05 11:25:54 -05:00
|
|
|
bool "NUMA emulation"
|
|
|
|
depends on NUMA
|
2005-04-16 18:20:36 -04:00
|
|
|
help
|
|
|
|
Enable NUMA emulation. A flat machine will be split
|
|
|
|
into virtual nodes when booted with "numa=fake=N", where N is the
|
|
|
|
number of nodes. This is only useful for debugging.
|
|
|
|
|
2005-06-23 03:07:43 -04:00
|
|
|
config ARCH_DISCONTIGMEM_ENABLE
|
2005-04-16 18:20:36 -04:00
|
|
|
bool
|
|
|
|
depends on NUMA
|
|
|
|
default y
|
|
|
|
|
2005-06-23 03:08:05 -04:00
|
|
|
config ARCH_DISCONTIGMEM_DEFAULT
|
|
|
|
def_bool y
|
|
|
|
depends on NUMA
|
|
|
|
|
|
|
|
config ARCH_SPARSEMEM_ENABLE
|
|
|
|
def_bool y
|
2006-01-17 01:03:41 -05:00
|
|
|
depends on (NUMA || EXPERIMENTAL)
|
|
|
|
|
|
|
|
config ARCH_MEMORY_PROBE
|
|
|
|
def_bool y
|
|
|
|
depends on MEMORY_HOTPLUG
|
2005-06-23 03:08:05 -04:00
|
|
|
|
|
|
|
config ARCH_FLATMEM_ENABLE
|
|
|
|
def_bool y
|
|
|
|
depends on !NUMA
|
|
|
|
|
2005-06-23 03:07:43 -04:00
|
|
|
source "mm/Kconfig"
|
|
|
|
|
2006-10-01 02:27:05 -04:00
|
|
|
config MEMORY_HOTPLUG_RESERVE
|
|
|
|
def_bool y
|
|
|
|
depends on (MEMORY_HOTPLUG && DISCONTIGMEM)
|
|
|
|
|
2005-06-23 03:08:05 -04:00
|
|
|
config HAVE_ARCH_EARLY_PFN_TO_NID
|
|
|
|
def_bool y
|
2006-01-17 01:03:41 -05:00
|
|
|
depends on NUMA
|
2005-06-23 03:08:05 -04:00
|
|
|
|
2006-03-27 04:15:34 -05:00
|
|
|
config OUT_OF_LINE_PFN_TO_PAGE
|
|
|
|
def_bool y
|
|
|
|
depends on DISCONTIGMEM
|
|
|
|
|
2005-04-16 18:20:36 -04:00
|
|
|
config NR_CPUS
|
|
|
|
int "Maximum number of CPUs (2-256)"
|
2006-03-25 10:30:58 -05:00
|
|
|
range 2 255
|
2005-04-16 18:20:36 -04:00
|
|
|
depends on SMP
|
|
|
|
default "8"
|
|
|
|
help
|
|
|
|
This allows you to specify the maximum number of CPUs which this
|
|
|
|
kernel will support. Current maximum is 256 CPUs due to
|
|
|
|
APIC addressing limits. Less depending on the hardware.
|
|
|
|
|
|
|
|
This is purely to save memory - each supported CPU requires
|
|
|
|
memory in the static kernel configuration.
|
|
|
|
|
2005-06-25 17:55:00 -04:00
|
|
|
config HOTPLUG_CPU
|
|
|
|
bool "Support for hot-pluggable CPUs (EXPERIMENTAL)"
|
|
|
|
depends on SMP && HOTPLUG && EXPERIMENTAL
|
|
|
|
help
|
|
|
|
Say Y here to experiment with turning CPUs off and on. CPUs
|
|
|
|
can be controlled through /sys/devices/system/cpu/cpu#.
|
|
|
|
Say N if you want to disable CPU hotplug.
|
|
|
|
|
2006-06-29 05:24:27 -04:00
|
|
|
config ARCH_ENABLE_MEMORY_HOTPLUG
|
|
|
|
def_bool y
|
2005-06-25 17:55:00 -04:00
|
|
|
|
2005-04-16 18:20:36 -04:00
|
|
|
config HPET_TIMER
|
|
|
|
bool
|
|
|
|
default y
|
|
|
|
help
|
|
|
|
Use the IA-PC HPET (High Precision Event Timer) to manage
|
|
|
|
time in preference to the PIT and RTC, if a HPET is
|
|
|
|
present. The HPET provides a stable time base on SMP
|
|
|
|
systems, unlike the TSC, but it is more expensive to access,
|
|
|
|
as it is off-chip. You can find the HPET spec at
|
2005-09-21 12:55:44 -04:00
|
|
|
<http://www.intel.com/hardwaredesign/hpetspec.htm>.
|
2005-04-16 18:20:36 -04:00
|
|
|
|
|
|
|
config HPET_EMULATE_RTC
|
|
|
|
bool "Provide RTC interrupt"
|
|
|
|
depends on HPET_TIMER && RTC=y
|
|
|
|
|
2006-06-26 07:57:22 -04:00
|
|
|
# Mark as embedded because too many people got it wrong.
|
|
|
|
# The code disables itself when not needed.
|
|
|
|
config IOMMU
|
|
|
|
bool "IOMMU support" if EMBEDDED
|
2005-07-29 00:15:32 -04:00
|
|
|
default y
|
2006-01-11 16:44:42 -05:00
|
|
|
select SWIOTLB
|
2006-06-22 17:47:35 -04:00
|
|
|
select AGP
|
2005-04-16 18:20:36 -04:00
|
|
|
depends on PCI
|
|
|
|
help
|
2006-06-26 07:57:22 -04:00
|
|
|
Support for full DMA access of devices with 32bit memory access only
|
|
|
|
on systems with more than 3GB. This is usually needed for USB,
|
|
|
|
sound, many IDE/SATA chipsets and some other devices.
|
|
|
|
Provides a driver for the AMD Athlon64/Opteron/Turion/Sempron GART
|
|
|
|
based IOMMU and a software bounce buffer based IOMMU used on Intel
|
|
|
|
systems and as fallback.
|
|
|
|
The code is only active when needed (enough memory and limited
|
|
|
|
device) unless CONFIG_IOMMU_DEBUG or iommu=force is specified
|
|
|
|
too.
|
|
|
|
|
2006-06-26 07:58:14 -04:00
|
|
|
config CALGARY_IOMMU
|
|
|
|
bool "IBM Calgary IOMMU support"
|
|
|
|
select SWIOTLB
|
|
|
|
depends on PCI && EXPERIMENTAL
|
|
|
|
help
|
|
|
|
Support for hardware IOMMUs in IBM's xSeries x366 and x460
|
|
|
|
systems. Needed to run systems with more than 3GB of memory
|
|
|
|
properly with 32-bit PCI devices that do not support DAC
|
|
|
|
(Double Address Cycle). Calgary also supports bus level
|
|
|
|
isolation, where all DMAs pass through the IOMMU. This
|
|
|
|
prevents them from going anywhere except their intended
|
|
|
|
destination. This catches hard-to-find kernel bugs and
|
|
|
|
mis-behaving drivers and devices that do not use the DMA-API
|
|
|
|
properly to set up their DMA buffers. The IOMMU can be
|
|
|
|
turned off at boot time with the iommu=off parameter.
|
|
|
|
Normally the kernel will make the right choice by itself.
|
|
|
|
If unsure, say Y.
|
|
|
|
|
2006-12-06 20:14:07 -05:00
|
|
|
config CALGARY_IOMMU_ENABLED_BY_DEFAULT
|
|
|
|
bool "Should Calgary be enabled by default?"
|
|
|
|
default y
|
|
|
|
depends on CALGARY_IOMMU
|
|
|
|
help
|
|
|
|
Should Calgary be enabled by default? if you choose 'y', Calgary
|
|
|
|
will be used (if it exists). If you choose 'n', Calgary will not be
|
|
|
|
used even if it exists. If you choose 'n' and would like to use
|
|
|
|
Calgary anyway, pass 'iommu=calgary' on the kernel command line.
|
|
|
|
If unsure, say Y.
|
|
|
|
|
2006-06-26 07:57:22 -04:00
|
|
|
# need this always selected by IOMMU for the VIA workaround
|
2005-04-16 18:20:36 -04:00
|
|
|
config SWIOTLB
|
|
|
|
bool
|
|
|
|
|
|
|
|
config X86_MCE
|
|
|
|
bool "Machine check support" if EMBEDDED
|
|
|
|
default y
|
|
|
|
help
|
|
|
|
Include a machine check error handler to report hardware errors.
|
|
|
|
This version will require the mcelog utility to decode some
|
|
|
|
machine check error logs. See
|
|
|
|
ftp://ftp.x86-64.org/pub/linux/tools/mcelog
|
|
|
|
|
|
|
|
config X86_MCE_INTEL
|
|
|
|
bool "Intel MCE features"
|
|
|
|
depends on X86_MCE && X86_LOCAL_APIC
|
|
|
|
default y
|
|
|
|
help
|
|
|
|
Additional support for intel specific MCE features such as
|
|
|
|
the thermal monitor.
|
|
|
|
|
2005-11-05 11:25:53 -05:00
|
|
|
config X86_MCE_AMD
|
|
|
|
bool "AMD MCE features"
|
|
|
|
depends on X86_MCE && X86_LOCAL_APIC
|
|
|
|
default y
|
|
|
|
help
|
|
|
|
Additional support for AMD specific MCE features such as
|
|
|
|
the DRAM Error Threshold.
|
|
|
|
|
2005-06-25 17:58:02 -04:00
|
|
|
config KEXEC
|
2006-09-26 04:52:40 -04:00
|
|
|
bool "kexec system call"
|
2005-06-25 17:58:02 -04:00
|
|
|
help
|
|
|
|
kexec is a system call that implements the ability to shutdown your
|
|
|
|
current kernel, and to start another kernel. It is like a reboot
|
2006-06-29 01:32:47 -04:00
|
|
|
but it is independent of the system firmware. And like a reboot
|
2005-06-25 17:58:02 -04:00
|
|
|
you can start any kernel with it, not just Linux.
|
|
|
|
|
2006-06-29 01:32:47 -04:00
|
|
|
The name comes from the similarity to the exec system call.
|
2005-06-25 17:58:02 -04:00
|
|
|
|
|
|
|
It is an ongoing process to be certain the hardware in a machine
|
|
|
|
is properly shutdown, so do not be surprised if this code does not
|
|
|
|
initially work for you. It may help to enable device hotplugging
|
|
|
|
support. As of this writing the exact hardware interface is
|
|
|
|
strongly in flux, so no good recommendation can be made.
|
|
|
|
|
2006-01-09 23:51:49 -05:00
|
|
|
config CRASH_DUMP
|
|
|
|
bool "kernel crash dumps (EXPERIMENTAL)"
|
|
|
|
depends on EXPERIMENTAL
|
|
|
|
help
|
2006-09-26 04:52:35 -04:00
|
|
|
Generate crash dump after being started by kexec.
|
|
|
|
This should be normally only set in special crash dump kernels
|
|
|
|
which are loaded in the main kernel with kexec-tools into
|
|
|
|
a specially reserved region and then later executed after
|
|
|
|
a crash by kdump/kexec. The crash dump kernel must be compiled
|
|
|
|
to a memory address not used by the main kernel or BIOS using
|
|
|
|
PHYSICAL_START.
|
|
|
|
For more details see Documentation/kdump/kdump.txt
|
2006-01-09 23:51:49 -05:00
|
|
|
|
2006-01-09 23:51:52 -05:00
|
|
|
config PHYSICAL_START
|
|
|
|
hex "Physical address where the kernel is loaded" if (EMBEDDED || CRASH_DUMP)
|
|
|
|
default "0x1000000" if CRASH_DUMP
|
2006-03-25 10:30:13 -05:00
|
|
|
default "0x200000"
|
2006-01-09 23:51:52 -05:00
|
|
|
help
|
|
|
|
This gives the physical address where the kernel is loaded. Normally
|
2006-03-25 10:30:13 -05:00
|
|
|
for regular kernels this value is 0x200000 (2MB). But in the case
|
2006-01-09 23:51:52 -05:00
|
|
|
of kexec on panic the fail safe kernel needs to run at a different
|
|
|
|
address than the panic-ed kernel. This option is used to set the load
|
|
|
|
address for kernels used to capture crash dump on being kexec'ed
|
|
|
|
after panic. The default value for crash dump kernels is
|
|
|
|
0x1000000 (16MB). This can also be set based on the "X" value as
|
|
|
|
specified in the "crashkernel=YM@XM" command line boot parameter
|
|
|
|
passed to the panic-ed kernel. Typically this parameter is set as
|
|
|
|
crashkernel=64M@16M. Please take a look at
|
|
|
|
Documentation/kdump/kdump.txt for more details about crash dumps.
|
|
|
|
|
|
|
|
Don't change this unless you know what you are doing.
|
|
|
|
|
2005-04-16 18:20:36 -04:00
|
|
|
config SECCOMP
|
|
|
|
bool "Enable seccomp to safely compute untrusted bytecode"
|
|
|
|
depends on PROC_FS
|
|
|
|
default y
|
|
|
|
help
|
|
|
|
This kernel feature is useful for number crunching applications
|
|
|
|
that may need to compute untrusted bytecode during their
|
|
|
|
execution. By using pipes or other transports made available to
|
|
|
|
the process as file descriptors supporting the read/write
|
|
|
|
syscalls, it's possible to isolate those applications in
|
|
|
|
their own address space using seccomp. Once seccomp is
|
|
|
|
enabled via /proc/<pid>/seccomp, it cannot be disabled
|
|
|
|
and the task is only allowed to execute a few safe syscalls
|
|
|
|
defined by each seccomp mode.
|
|
|
|
|
|
|
|
If unsure, say Y. Only embedded should say N here.
|
|
|
|
|
2006-09-26 04:52:38 -04:00
|
|
|
config CC_STACKPROTECTOR
|
|
|
|
bool "Enable -fstack-protector buffer overflow detection (EXPRIMENTAL)"
|
|
|
|
depends on EXPERIMENTAL
|
|
|
|
help
|
|
|
|
This option turns on the -fstack-protector GCC feature. This
|
|
|
|
feature puts, at the beginning of critical functions, a canary
|
|
|
|
value on the stack just before the return address, and validates
|
|
|
|
the value just before actually returning. Stack based buffer
|
|
|
|
overflows (that need to overwrite this return address) now also
|
|
|
|
overwrite the canary, which gets detected and the attack is then
|
|
|
|
neutralized via a kernel panic.
|
|
|
|
|
|
|
|
This feature requires gcc version 4.2 or above, or a distribution
|
|
|
|
gcc with the feature backported. Older versions are automatically
|
|
|
|
detected and for those versions, this configuration option is ignored.
|
|
|
|
|
|
|
|
config CC_STACKPROTECTOR_ALL
|
|
|
|
bool "Use stack-protector for all functions"
|
|
|
|
depends on CC_STACKPROTECTOR
|
|
|
|
help
|
|
|
|
Normally, GCC only inserts the canary value protection for
|
|
|
|
functions that use large-ish on-stack buffers. By enabling
|
|
|
|
this option, GCC will be asked to do this for ALL functions.
|
|
|
|
|
2005-06-23 03:08:25 -04:00
|
|
|
source kernel/Kconfig.hz
|
|
|
|
|
2006-03-25 10:30:49 -05:00
|
|
|
config REORDER
|
|
|
|
bool "Function reordering"
|
|
|
|
default n
|
|
|
|
help
|
|
|
|
This option enables the toolchain to reorder functions for a more
|
|
|
|
optimal TLB usage. If you have pretty much any version of binutils,
|
|
|
|
this can increase your kernel build time by roughly one minute.
|
|
|
|
|
2006-06-26 07:56:40 -04:00
|
|
|
config K8_NB
|
|
|
|
def_bool y
|
2006-06-26 07:57:22 -04:00
|
|
|
depends on AGP_AMD64 || IOMMU || (PCI && NUMA)
|
2006-06-26 07:56:40 -04:00
|
|
|
|
2005-04-16 18:20:36 -04:00
|
|
|
endmenu
|
|
|
|
|
|
|
|
#
|
|
|
|
# Use the generic interrupt handling code in kernel/irq/:
|
|
|
|
#
|
|
|
|
config GENERIC_HARDIRQS
|
|
|
|
bool
|
|
|
|
default y
|
|
|
|
|
|
|
|
config GENERIC_IRQ_PROBE
|
|
|
|
bool
|
|
|
|
default y
|
|
|
|
|
2005-05-04 00:39:22 -04:00
|
|
|
# we have no ISA slots, but we do have ISA-style DMA.
|
|
|
|
config ISA_DMA_API
|
|
|
|
bool
|
|
|
|
default y
|
|
|
|
|
[PATCH] x86/x86_64: deferred handling of writes to /proc/irqxx/smp_affinity
When handling writes to /proc/irq, current code is re-programming rte
entries directly. This is not recommended and could potentially cause
chipset's to lockup, or cause missing interrupts.
CONFIG_IRQ_BALANCE does this correctly, where it re-programs only when the
interrupt is pending. The same needs to be done for /proc/irq handling as well.
Otherwise user space irq balancers are really not doing the right thing.
- Changed pending_irq_balance_cpumask to pending_irq_migrate_cpumask for
lack of a generic name.
- added move_irq out of IRQ_BALANCE, and added this same to X86_64
- Added new proc handler for write, so we can do deferred write at irq
handling time.
- Display of /proc/irq/XX/smp_affinity used to display CPU_MASKALL, instead
it now shows only active cpu masks, or exactly what was set.
- Provided a common move_irq implementation, instead of duplicating
when using generic irq framework.
Tested on i386/x86_64 and ia64 with CONFIG_PCI_MSI turned on and off.
Tested UP builds as well.
MSI testing: tbd: I have cards, need to look for a x-over cable, although I
did test an earlier version of this patch. Will test in a couple days.
Signed-off-by: Ashok Raj <ashok.raj@intel.com>
Acked-by: Zwane Mwaikambo <zwane@holomorphy.com>
Grudgingly-acked-by: Andi Kleen <ak@muc.de>
Signed-off-by: Coywolf Qi Hunt <coywolf@lovecn.org>
Signed-off-by: Ashok Raj <ashok.raj@intel.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-09-06 18:16:15 -04:00
|
|
|
config GENERIC_PENDING_IRQ
|
|
|
|
bool
|
|
|
|
depends on GENERIC_HARDIRQS && SMP
|
|
|
|
default y
|
|
|
|
|
2005-04-16 18:20:36 -04:00
|
|
|
menu "Power management options"
|
|
|
|
|
|
|
|
source kernel/power/Kconfig
|
|
|
|
|
|
|
|
source "drivers/acpi/Kconfig"
|
|
|
|
|
|
|
|
source "arch/x86_64/kernel/cpufreq/Kconfig"
|
|
|
|
|
|
|
|
endmenu
|
|
|
|
|
|
|
|
menu "Bus options (PCI etc.)"
|
|
|
|
|
|
|
|
config PCI
|
|
|
|
bool "PCI support"
|
|
|
|
|
|
|
|
# x86-64 doesn't support PCI BIOS access from long mode so always go direct.
|
|
|
|
config PCI_DIRECT
|
|
|
|
bool
|
|
|
|
depends on PCI
|
|
|
|
default y
|
|
|
|
|
|
|
|
config PCI_MMCONFIG
|
|
|
|
bool "Support mmconfig PCI config space access"
|
2005-05-27 06:48:50 -04:00
|
|
|
depends on PCI && ACPI
|
2005-04-16 18:20:36 -04:00
|
|
|
|
|
|
|
source "drivers/pci/pcie/Kconfig"
|
|
|
|
|
|
|
|
source "drivers/pci/Kconfig"
|
|
|
|
|
|
|
|
source "drivers/pcmcia/Kconfig"
|
|
|
|
|
|
|
|
source "drivers/pci/hotplug/Kconfig"
|
|
|
|
|
|
|
|
endmenu
|
|
|
|
|
|
|
|
|
|
|
|
menu "Executable file formats / Emulations"
|
|
|
|
|
|
|
|
source "fs/Kconfig.binfmt"
|
|
|
|
|
|
|
|
config IA32_EMULATION
|
|
|
|
bool "IA32 Emulation"
|
|
|
|
help
|
|
|
|
Include code to run 32-bit programs under a 64-bit kernel. You should likely
|
|
|
|
turn this on, unless you're 100% sure that you don't have any 32-bit programs
|
|
|
|
left.
|
|
|
|
|
|
|
|
config IA32_AOUT
|
2005-11-05 11:25:54 -05:00
|
|
|
tristate "IA32 a.out support"
|
2005-04-16 18:20:36 -04:00
|
|
|
depends on IA32_EMULATION
|
|
|
|
help
|
|
|
|
Support old a.out binaries in the 32bit emulation.
|
|
|
|
|
|
|
|
config COMPAT
|
|
|
|
bool
|
|
|
|
depends on IA32_EMULATION
|
|
|
|
default y
|
|
|
|
|
|
|
|
config SYSVIPC_COMPAT
|
|
|
|
bool
|
|
|
|
depends on COMPAT && SYSVIPC
|
|
|
|
default y
|
|
|
|
|
|
|
|
endmenu
|
|
|
|
|
2005-07-12 00:03:49 -04:00
|
|
|
source "net/Kconfig"
|
|
|
|
|
2005-04-16 18:20:36 -04:00
|
|
|
source drivers/Kconfig
|
|
|
|
|
|
|
|
source "drivers/firmware/Kconfig"
|
|
|
|
|
|
|
|
source fs/Kconfig
|
|
|
|
|
2005-11-07 03:59:14 -05:00
|
|
|
menu "Instrumentation Support"
|
|
|
|
depends on EXPERIMENTAL
|
|
|
|
|
2005-04-16 18:20:36 -04:00
|
|
|
source "arch/x86_64/oprofile/Kconfig"
|
|
|
|
|
2005-11-07 03:59:14 -05:00
|
|
|
config KPROBES
|
|
|
|
bool "Kprobes (EXPERIMENTAL)"
|
2006-10-02 05:17:30 -04:00
|
|
|
depends on KALLSYMS && EXPERIMENTAL && MODULES
|
2005-11-07 03:59:14 -05:00
|
|
|
help
|
|
|
|
Kprobes allows you to trap at almost any kernel address and
|
|
|
|
execute a callback function. register_kprobe() establishes
|
|
|
|
a probepoint and specifies the callback. Kprobes is useful
|
|
|
|
for kernel debugging, non-intrusive instrumentation and testing.
|
|
|
|
If in doubt, say "N".
|
|
|
|
endmenu
|
|
|
|
|
2005-04-16 18:20:36 -04:00
|
|
|
source "arch/x86_64/Kconfig.debug"
|
|
|
|
|
|
|
|
source "security/Kconfig"
|
|
|
|
|
|
|
|
source "crypto/Kconfig"
|
|
|
|
|
|
|
|
source "lib/Kconfig"
|