2 # For a description of the syntax of this configuration file,
3 # see Documentation/kbuild/kconfig-language.txt.
5 # Note: ISA is disabled and will hopefully never be enabled.
6 # If you managed to buy an ISA x86-64 box you'll have to fix all the
7 # ISA drivers you need yourself.
10 mainmenu "Linux Kernel Configuration"
16 Port to the x86-64 architecture. x86-64 is a 64-bit extension to the
17 classical 32-bit x86 architecture. For details see
18 <http://www.x86-64.org/>.
37 config RWSEM_GENERIC_SPINLOCK
41 config RWSEM_XCHGADD_ALGORITHM
52 Write kernel log output directly into the VGA buffer or to a serial
55 This is useful for kernel debugging when your machine crashes very
56 early before the console code is initialized. For normal operation
57 it is not recommended because it looks ugly and doesn't cooperate
58 with klogd/syslogd or the X server. You should normally N here,
59 unless you want to debug such a crash.
65 Use the IA-PC HPET (High Precision Event Timer) to manage
66 time in preference to the PIT and RTC, if a HPET is
67 present. The HPET provides a stable time base on SMP
68 systems, unlike the RTC, but it is more expensive to access,
69 as it is off-chip. You can find the HPET spec at
70 <http://www.intel.com/labs/platcomp/hpet/hpetspec.htm>.
74 config HPET_EMULATE_RTC
75 def_bool HPET_TIMER && RTC=y
77 config GENERIC_ISA_DMA
84 menu "Processor type and features"
87 prompt "Processor family"
91 bool "AMD-Opteron/Athlon64"
93 Optimize for AMD Opteron/Athlon64/Hammer/K8 CPUs.
98 Optimize for Intel IA32 with 64bit extension CPUs
99 (Prescott/Nocona/Potomac)
102 bool "Generic-x86-64"
109 # Define implied options from the CPU selection here
111 config X86_L1_CACHE_BYTES
113 default "128" if GENERIC_CPU || MPSC
116 config X86_L1_CACHE_SHIFT
118 default "7" if GENERIC_CPU || MPSC
130 tristate "/dev/cpu/microcode - Intel CPU microcode support"
132 If you say Y here the 'File systems' section, you will be
133 able to update the microcode on Intel processors. You will
134 obviously need the actual microcode binary data itself which is
135 not shipped with the Linux kernel.
137 For latest news and information on obtaining all the required
138 ingredients for this driver, check:
139 <http://www.urbanmyth.org/microcode/>.
141 To compile this driver as a module, choose M here: the
142 module will be called microcode.
143 If you use modprobe or kmod you may also want to add the line
144 'alias char-major-10-184 microcode' to your /etc/modules.conf file.
147 tristate "/dev/cpu/*/msr - Model-specific register support"
149 This device gives privileged processes access to the x86
150 Model-Specific Registers (MSRs). It is a character device with
151 major 202 and minors 0 to 31 for /dev/cpu/0/msr to /dev/cpu/31/msr.
152 MSR accesses are directed to a specific CPU on multi-processor
156 tristate "/dev/cpu/*/cpuid - CPU information support"
158 This device gives processes access to the x86 CPUID instruction to
159 be executed on a specific processor. It is a character device
160 with major 203 and minors 0 to 31 for /dev/cpu/0/cpuid to
163 # disable it for opteron optimized builds because it pulls in ACPI_BOOT
166 depends on SMP && !MK8
169 config MATH_EMULATION
182 config X86_LOCAL_APIC
187 bool "MTRR (Memory Type Range Register) support"
189 On Intel P6 family processors (Pentium Pro, Pentium II and later)
190 the Memory Type Range Registers (MTRRs) may be used to control
191 processor access to memory ranges. This is most useful if you have
192 a video (VGA) card on a PCI or AGP bus. Enabling write-combining
193 allows bus write transfers to be combined into a larger transfer
194 before bursting over the PCI/AGP bus. This can increase performance
195 of image write operations 2.5 times or more. Saying Y here creates a
196 /proc/mtrr file which may be used to manipulate your processor's
197 MTRRs. Typically the X server should use this.
199 This code has a reasonably generic interface so that similar
200 control registers on other processors can be easily supported
203 Saying Y here also fixes a problem with buggy SMP BIOSes which only
204 set the MTRRs for the boot CPU and not for the secondary CPUs. This
205 can lead to all sorts of problems, so it's good to say Y here.
207 Just say Y here, all x86-64 machines support MTRRs.
209 See <file:Documentation/mtrr.txt> for more information.
212 bool "Symmetric multi-processing support"
214 This enables support for systems with more than one CPU. If you have
215 a system with only one CPU, like most personal computers, say N. If
216 you have a system with more than one CPU, say Y.
218 If you say N here, the kernel will run on single and multiprocessor
219 machines, but will use only one CPU of a multiprocessor machine. If
220 you say Y here, the kernel will run on many, but not all,
221 singleprocessor machines. On a singleprocessor machine, the kernel
222 will run faster if you say N here.
224 If you don't know what to do here, say N.
227 bool "Preemptible Kernel"
229 This option reduces the latency of the kernel when reacting to
230 real-time or interactive events by allowing a low priority process to
231 be preempted even if it is in kernel mode executing a system call.
232 This allows applications to run more reliably even when the system is
233 under load. On contrary it may also break your drivers and add
234 priority inheritance problems to your system. Don't select it if
235 you rely on a stable system or have slightly obscure hardware.
236 It's also not very well tested on x86-64 currently.
237 You have been warned.
239 Say Y here if you are feeling brave and building a kernel for a
240 desktop, embedded or real-time system. Say N if you are unsure.
243 bool "SMT (Hyperthreading) scheduler support"
247 SMT scheduler support improves the CPU scheduler's decision making
248 when dealing with Intel Pentium 4 chips with HyperThreading at a
249 cost of slightly increased overhead in some places. If unsure say
253 bool "K8 NUMA support"
256 Enable NUMA (Non Unified Memory Architecture) support for
257 AMD Opteron Multiprocessor systems. The kernel will try to allocate
258 memory used by a CPU on the local memory controller of the CPU
259 and add some more NUMA awareness to the kernel.
260 This code is recommended on all multiprocessor Opteron systems
261 and normally doesn't hurt on others.
278 # actually 64 maximum, but you need to fix the APIC code first
279 # to use clustered mode or whatever your big iron needs
281 int "Maximum number of CPUs (2-8)"
286 This allows you to specify the maximum number of CPUs which this
287 kernel will support. The maximum supported value is 32 and the
288 minimum value which makes sense is 2.
290 This is purely to save memory - each supported CPU requires
291 memory in the static kernel configuration.
296 Support the K8 IOMMU. Needed to run systems with more than 4GB of memory
297 properly with 32-bit PCI devices that do not support DAC (Double Address
298 Cycle). The IOMMU can be turned off at runtime with the iommu=off parameter.
299 Normally the kernel will take the right choice by itself.
302 # need this always enabled with GART_IOMMU for the VIA workaround
305 depends on GART_IOMMU
310 depends on !GART_IOMMU && !SWIOTLB
313 Don't use IOMMU code. This will cause problems when you have more than 4GB
314 of memory and any 32-bit devices. Don't turn on unless you know what you
324 menu "Power management options"
326 source kernel/power/Kconfig
328 source "drivers/acpi/Kconfig"
330 source "arch/x86_64/kernel/cpufreq/Kconfig"
334 menu "Bus options (PCI etc.)"
339 # x86-64 doesn't support PCI BIOS access from long mode so always go direct.
346 bool "Support mmconfig PCI config space access"
350 source "drivers/pci/Kconfig"
352 source "drivers/pcmcia/Kconfig"
354 source "drivers/pci/hotplug/Kconfig"
359 menu "Executable file formats / Emulations"
361 source "fs/Kconfig.binfmt"
363 config IA32_EMULATION
364 bool "IA32 Emulation"
366 Include code to run 32-bit programs under a 64-bit kernel. You should likely
367 turn this on, unless you're 100% sure that you don't have any 32-bit programs
371 bool "IA32 a.out support"
372 depends on IA32_EMULATION
374 Support old a.out binaries in the 32bit emulation.
378 depends on IA32_EMULATION
381 config SYSVIPC_COMPAT
383 depends on COMPAT && SYSVIPC
388 depends on IA32_EMULATION
393 source drivers/Kconfig
395 source "drivers/firmware/Kconfig"
399 source "arch/x86_64/oprofile/Kconfig"
401 menu "Kernel hacking"
404 bool "Kernel debugging"
406 Say Y here if you are developing drivers or trying to debug and
407 identify kernel problems.
410 bool "Debug memory allocations"
411 depends on DEBUG_KERNEL
413 Say Y here to have the kernel do limited verification on memory
414 allocation as well as poisoning memory on free to catch use of freed
418 bool "Magic SysRq key"
420 If you say Y here, you will have some control over the system even
421 if the system crashes for example during kernel debugging (e.g., you
422 will be able to flush the buffer cache to disk, reboot the system
423 immediately or dump some status information). This is accomplished
424 by pressing various keys while holding SysRq (Alt+PrintScreen). It
425 also works on a serial console (on PC hardware at least), if you
426 send a BREAK and then within 5 seconds a command keypress. The
427 keys are documented in <file:Documentation/sysrq.txt>. Don't say Y
428 unless you really know what this hack does.
430 config DEBUG_SPINLOCK
431 bool "Spinlock debugging"
432 depends on DEBUG_KERNEL
434 Say Y here and build SMP to catch missing spinlock initialization
435 and certain other kinds of spinlock errors commonly made. This is
436 best used in conjunction with the NMI watchdog so that spinlock
437 deadlocks are also debuggable.
439 # !SMP for now because the context switch early causes GPF in segment reloading
440 # and the GS base checking does the wrong thing then, causing a hang.
442 bool "Additional run-time checks"
443 depends on DEBUG_KERNEL && !SMP
445 Enables some internal consistency checks for kernel debugging.
446 You should normally say N.
449 bool "Debug __init statements"
450 depends on DEBUG_KERNEL
452 Fill __init and __initdata at the end of boot. This helps debugging
453 illegal uses of __init and __initdata after initialization.
456 bool "Compile the kernel with debug info"
457 depends on DEBUG_KERNEL
459 If you say Y here the resulting kernel image will include
460 debugging info resulting in a larger kernel image.
461 Say Y here only if you plan to use gdb to debug the kernel.
462 Please note that this option requires new binutils.
463 If you don't debug the kernel, you can say N.
466 bool "Compile the kernel with frame pointers"
468 Compile the kernel with frame pointers. This may help for some
469 debugging with external debuggers. Note the standard oops backtracer
470 doesn't make use of this and the x86-64 kernel doesn't ensure an consistent
471 frame pointer through inline assembly (semaphores etc.)
472 Normally you should say N.
475 depends on GART_IOMMU && DEBUG_KERNEL
476 bool "Enable IOMMU debugging"
478 Force the IOMMU to on even when you have less than 4GB of
479 memory and add debugging code. On overflow always panic. And
480 allow to enable IOMMU leak tracing. Can be disabled at boot
481 time with iommu=noforce. This will also enable scatter gather
482 list merging. Currently not recommended for production
483 code. When you use it make sure you have a big enough
484 IOMMU/AGP aperture. Most of the options enabled by this can
485 be set more finegrained using the iommu= command line
486 options. See Documentation/x86_64/boot-options.txt for more
490 bool "IOMMU leak tracing"
491 depends on DEBUG_KERNEL
492 depends on IOMMU_DEBUG
494 Add a simple leak tracer to the IOMMU code. This is useful when you
495 are debugging a buggy device driver that leaks IOMMU mappings.
497 #config X86_REMOTE_DEBUG
498 # bool "kgdb debugging stub"
502 source "kernel/vserver/Kconfig"
504 source "security/Kconfig"
506 source "crypto/Kconfig"