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.
242 # someone write a better help text please.
244 bool "K8 NUMA support"
247 Enable NUMA (Non Unified Memory Architecture) support for
248 AMD Opteron Multiprocessor systems. The kernel will try to allocate
249 memory used by a CPU on the local memory controller of the CPU
250 and in the future do more optimizations. This may improve performance
251 or it may not. Code is still experimental.
269 # actually 64 maximum, but you need to fix the APIC code first
270 # to use clustered mode or whatever your big iron needs
272 int "Maximum number of CPUs (2-8)"
277 This allows you to specify the maximum number of CPUs which this
278 kernel will support. The maximum supported value is 32 and the
279 minimum value which makes sense is 2.
281 This is purely to save memory - each supported CPU requires
282 memory in the static kernel configuration.
287 Support the K8 IOMMU. Needed to run systems with more than 4GB of memory
288 properly with 32-bit PCI devices that do not support DAC (Double Address
289 Cycle). The IOMMU can be turned off at runtime with the iommu=off parameter.
290 Normally the kernel will take the right choice by itself.
293 # need this always enabled with GART_IOMMU for the VIA workaround
296 depends on GART_IOMMU
301 depends on !GART_IOMMU && !SWIOTLB
304 Don't use IOMMU code. This will cause problems when you have more than 4GB
305 of memory and any 32-bit devices. Don't turn on unless you know what you
315 menu "Power management options"
317 source kernel/power/Kconfig
319 source "drivers/acpi/Kconfig"
321 source "arch/x86_64/kernel/cpufreq/Kconfig"
325 menu "Bus options (PCI etc.)"
330 # x86-64 doesn't support PCI BIOS access from long mode so always go direct.
337 bool "Support mmconfig PCI config space access"
341 source "drivers/pci/Kconfig"
343 source "drivers/pcmcia/Kconfig"
345 source "drivers/pci/hotplug/Kconfig"
350 menu "Executable file formats / Emulations"
352 source "fs/Kconfig.binfmt"
354 config IA32_EMULATION
355 bool "IA32 Emulation"
357 Include code to run 32-bit programs under a 64-bit kernel. You should likely
358 turn this on, unless you're 100% sure that you don't have any 32-bit programs
362 bool "IA32 a.out support"
363 depends on IA32_EMULATION
365 Support old a.out binaries in the 32bit emulation.
369 depends on IA32_EMULATION
372 config SYSVIPC_COMPAT
374 depends on COMPAT && SYSVIPC
379 depends on IA32_EMULATION
384 source drivers/Kconfig
386 source "drivers/firmware/Kconfig"
390 source "arch/x86_64/oprofile/Kconfig"
392 menu "Kernel hacking"
395 bool "Kernel debugging"
397 Say Y here if you are developing drivers or trying to debug and
398 identify kernel problems.
401 bool "Debug memory allocations"
402 depends on DEBUG_KERNEL
404 Say Y here to have the kernel do limited verification on memory
405 allocation as well as poisoning memory on free to catch use of freed
409 bool "Magic SysRq key"
411 If you say Y here, you will have some control over the system even
412 if the system crashes for example during kernel debugging (e.g., you
413 will be able to flush the buffer cache to disk, reboot the system
414 immediately or dump some status information). This is accomplished
415 by pressing various keys while holding SysRq (Alt+PrintScreen). It
416 also works on a serial console (on PC hardware at least), if you
417 send a BREAK and then within 5 seconds a command keypress. The
418 keys are documented in <file:Documentation/sysrq.txt>. Don't say Y
419 unless you really know what this hack does.
421 config DEBUG_SPINLOCK
422 bool "Spinlock debugging"
423 depends on DEBUG_KERNEL
425 Say Y here and build SMP to catch missing spinlock initialization
426 and certain other kinds of spinlock errors commonly made. This is
427 best used in conjunction with the NMI watchdog so that spinlock
428 deadlocks are also debuggable.
430 # !SMP for now because the context switch early causes GPF in segment reloading
431 # and the GS base checking does the wrong thing then, causing a hang.
433 bool "Additional run-time checks"
434 depends on DEBUG_KERNEL && !SMP
436 Enables some internal consistency checks for kernel debugging.
437 You should normally say N.
440 bool "Debug __init statements"
441 depends on DEBUG_KERNEL
443 Fill __init and __initdata at the end of boot. This helps debugging
444 illegal uses of __init and __initdata after initialization.
447 bool "Compile the kernel with debug info"
448 depends on DEBUG_KERNEL
450 If you say Y here the resulting kernel image will include
451 debugging info resulting in a larger kernel image.
452 Say Y here only if you plan to use gdb to debug the kernel.
453 Please note that this option requires new binutils.
454 If you don't debug the kernel, you can say N.
457 bool "Compile the kernel with frame pointers"
459 Compile the kernel with frame pointers. This may help for some
460 debugging with external debuggers. Note the standard oops backtracer
461 doesn't make use of this and the x86-64 kernel doesn't ensure an consistent
462 frame pointer through inline assembly (semaphores etc.)
463 Normally you should say N.
466 depends on GART_IOMMU && DEBUG_KERNEL
467 bool "Enable IOMMU debugging"
469 Force the IOMMU to on even when you have less than 4GB of
470 memory and add debugging code. On overflow always panic. And
471 allow to enable IOMMU leak tracing. Can be disabled at boot
472 time with iommu=noforce. This will also enable scatter gather
473 list merging. Currently not recommended for production
474 code. When you use it make sure you have a big enough
475 IOMMU/AGP aperture. Most of the options enabled by this can
476 be set more finegrained using the iommu= command line
477 options. See Documentation/x86_64/boot-options.txt for more
481 bool "IOMMU leak tracing"
482 depends on DEBUG_KERNEL
483 depends on IOMMU_DEBUG
485 Add a simple leak tracer to the IOMMU code. This is useful when you
486 are debugging a buggy device driver that leaks IOMMU mappings.
488 #config X86_REMOTE_DEBUG
489 # bool "kgdb debugging stub"
493 source "kernel/vserver/Kconfig"
495 source "security/Kconfig"
497 source "crypto/Kconfig"