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 http://www.x86-64.org
33 config RWSEM_GENERIC_SPINLOCK
37 config RWSEM_XCHGADD_ALGORITHM
48 Write kernel log output directly into the VGA buffer. This is useful
49 for kernel debugging when your machine crashes very early before
50 the console code is initialized. For normal operation it is not
51 recommended because it looks ugly and doesn't cooperate with
52 klogd/syslogd or the X server. You should normally N here, unless
53 you want to debug such a crash.
59 Use the IA-PC HPET (High Precision Event Timer) to manage
60 time in preference to the PIT and RTC, if a HPET is
61 present. The HPET provides a stable time base on SMP
62 systems, unlike the RTC, but it is more expensive to access,
63 as it is off-chip. You can find the HPET spec at
64 <http://www.intel.com/labs/platcomp/hpet/hpetspec.htm>.
68 config GENERIC_ISA_DMA
75 menu "Processor type and features"
78 prompt "Processor family"
82 bool "AMD-Opteron/Athlon64"
84 Optimize for AMD Opteron/Athlon64/Hammer/K8 CPUs.
94 # Define implied options from the CPU selection here
96 config X86_L1_CACHE_BYTES
100 config X86_L1_CACHE_SHIFT
113 tristate "/dev/cpu/*/msr - Model-specific register support"
115 This device gives privileged processes access to the x86
116 Model-Specific Registers (MSRs). It is a character device with
117 major 202 and minors 0 to 31 for /dev/cpu/0/msr to /dev/cpu/31/msr.
118 MSR accesses are directed to a specific CPU on multi-processor
122 tristate "/dev/cpu/*/cpuid - CPU information support"
124 This device gives processes access to the x86 CPUID instruction to
125 be executed on a specific processor. It is a character device
126 with major 203 and minors 0 to 31 for /dev/cpu/0/cpuid to
129 config MATH_EMULATION
142 config X86_LOCAL_APIC
147 bool "MTRR (Memory Type Range Register) support"
149 On Intel P6 family processors (Pentium Pro, Pentium II and later)
150 the Memory Type Range Registers (MTRRs) may be used to control
151 processor access to memory ranges. This is most useful if you have
152 a video (VGA) card on a PCI or AGP bus. Enabling write-combining
153 allows bus write transfers to be combined into a larger transfer
154 before bursting over the PCI/AGP bus. This can increase performance
155 of image write operations 2.5 times or more. Saying Y here creates a
156 /proc/mtrr file which may be used to manipulate your processor's
157 MTRRs. Typically the X server should use this.
159 This code has a reasonably generic interface so that similar
160 control registers on other processors can be easily supported
163 Saying Y here also fixes a problem with buggy SMP BIOSes which only
164 set the MTRRs for the boot CPU and not for the secondary CPUs. This
165 can lead to all sorts of problems, so it's good to say Y here.
167 Just say Y here, all x86-64 machines support MTRRs.
169 See <file:Documentation/mtrr.txt> for more information.
172 bool "Huge TLB Page Support"
174 This enables support for huge pages. User space applications
175 can make use of this support with the hugetlbfs file system
176 To actually use it you need to pass an hugepages= argument
177 to the kernel at boot time.
180 bool "Symmetric multi-processing support"
182 This enables support for systems with more than one CPU. If you have
183 a system with only one CPU, like most personal computers, say N. If
184 you have a system with more than one CPU, say Y.
186 If you say N here, the kernel will run on single and multiprocessor
187 machines, but will use only one CPU of a multiprocessor machine. If
188 you say Y here, the kernel will run on many, but not all,
189 singleprocessor machines. On a singleprocessor machine, the kernel
190 will run faster if you say N here.
192 If you don't know what to do here, say N.
195 bool "Preemptible Kernel"
197 This option reduces the latency of the kernel when reacting to
198 real-time or interactive events by allowing a low priority process to
199 be preempted even if it is in kernel mode executing a system call.
200 This allows applications to run more reliably even when the system is
201 under load. On contrary it may also break your drivers and add
202 priority inheritance problems to your system. Don't select it if
203 you rely on a stable system or have slightly obscure hardware.
204 It's also not very well tested on x86-64 currently.
205 You have been warned.
207 Say Y here if you are feeling brave and building a kernel for a
208 desktop, embedded or real-time system. Say N if you are unsure.
210 # someone write a better help text please.
212 bool "K8 NUMA support"
215 Enable NUMA (Non Unified Memory Architecture) support for
216 AMD Opteron Multiprocessor systems. The kernel will try to allocate
217 memory used by a CPU on the local memory controller of the CPU
218 and in the future do more optimizations. This may improve performance
219 or it may not. Code is still experimental.
237 # actually 64 maximum, but you need to fix the APIC code first
238 # to use clustered mode or whatever your big iron needs
240 int "Maximum number of CPUs (2-8)"
244 This allows you to specify the maximum number of CPUs which this
245 kernel will support. The maximum supported value is 32 and the
246 minimum value which makes sense is 2.
248 This is purely to save memory - each supported CPU requires
249 memory in the static kernel configuration.
254 Support the K8 IOMMU. Needed to run systems with more than 4GB of memory
255 properly with 32-bit PCI devices that do not support DAC (Double Address
256 Cycle). The IOMMU can be turned off at runtime with the iommu=off parameter.
257 Normally the kernel will take the right choice by itself.
262 depends on !GART_IOMMU
265 Don't use IOMMU code. This will cause problems when you have more than 4GB
266 of memory and any 32-bit devices. Don't turn on unless you know what you
276 menu "Power management options"
279 bool "Power Management support"
281 "Power Management" means that parts of your computer are shut
282 off or put into a power conserving "sleep" mode if they are not
283 being used. There are two competing standards for doing this: APM
284 and ACPI. If you want to use either one, say Y here and then also
285 to the requisite support below.
287 Power Management is most important for battery powered laptop
288 computers; if you have a laptop, check out the Linux Laptop home
290 <http://www.cs.utexas.edu/users/kharker/linux-laptop/> and the
291 Battery Powered Linux mini-HOWTO, available from
292 <http://www.tldp.org/docs.html#howto>.
294 Note that, even if you say N here, Linux on the x86 architecture
295 will issue the hlt instruction if nothing is to be done, thereby
296 sending the processor to limited sleep and saving power. However
297 using ACPI will likely save more power.
299 config SOFTWARE_SUSPEND
300 bool "Software Suspend (EXPERIMENTAL)"
301 depends on EXPERIMENTAL && PM && SWAP
303 Enable the possibilty of suspending the machine. It doesn't need APM.
304 You may suspend your machine by 'swsusp' or 'shutdown -z <time>'
305 (patch for sysvinit needed).
307 It creates an image which is saved in your active swaps. On the next
308 boot, pass the 'resume=/path/to/your/swap/file' option and the kernel
309 will detect the saved image, restore the memory from
310 it, and then continue to run as before you suspended.
311 If you don't want the previous state to continue, use the 'noresume'
312 kernel option. However, note that your partitions will be fsck'd and
313 you must re-mkswap your swap partitions/files.
315 Right now you may boot without resuming and then later resume but
316 in the meantime you cannot use those swap partitions/files which were
317 involved in suspending. Also in this case there is a risk that buffers
318 on disk won't match with saved ones.
320 SMP is supported ``as-is''. There's code for it but doesn't work.
321 There have been problems reported relating to SCSI.
323 This option is close to getting stable. However there is still some
326 For more information take a look at Documentation/swsusp.txt.
328 source "drivers/acpi/Kconfig"
333 menu "Bus options (PCI etc.)"
338 # x86-64 doesn't support PCI BIOS access from long mode so always go direct.
344 source "drivers/pci/Kconfig"
347 bool "Support for hot-pluggable devices"
349 Say Y here if you want to plug devices into your computer while
350 the system is running, and be able to use them quickly. In many
351 cases, the devices can likewise be unplugged at any time too.
353 One well-known example of this is PCMCIA- or PC-cards, credit-card
354 size devices such as network cards, modems, or hard drives which are
355 plugged into slots found on all modern laptop computers. Another
356 example, used on modern desktops as well as laptops, is USB.
358 Enable HOTPLUG and KMOD, and build a modular kernel. Get agent
359 software (at <http://linux-hotplug.sourceforge.net/>) and install it.
360 Then your kernel will automatically call out to a user mode "policy
361 agent" (/sbin/hotplug) to load modules and set up software needed
362 to use devices as you hotplug them.
364 source "drivers/pcmcia/Kconfig"
366 source "drivers/pci/hotplug/Kconfig"
371 menu "Executable file formats / Emulations"
378 source "fs/Kconfig.binfmt"
380 config IA32_EMULATION
381 bool "IA32 Emulation"
383 Include code to run 32-bit programs under a 64-bit kernel. You should likely
384 turn this on, unless you're 100% sure that you don't have any 32-bit programs
389 depends on IA32_EMULATION
395 depends on IA32_EMULATION
400 source "drivers/base/Kconfig"
402 source "drivers/mtd/Kconfig"
404 source "drivers/parport/Kconfig"
406 source "drivers/block/Kconfig"
408 source "drivers/ide/Kconfig"
410 source "drivers/scsi/Kconfig"
412 source "drivers/md/Kconfig"
414 source "drivers/telephony/Kconfig"
416 source "drivers/message/fusion/Kconfig"
418 source "drivers/ieee1394/Kconfig"
420 #Currently not 64-bit safe
421 #source drivers/message/i2o/Config.in
424 source "net/ax25/Kconfig"
426 source "net/irda/Kconfig"
428 source "drivers/isdn/Kconfig"
430 # no support for non IDE/SCSI cdroms as they were all ISA only
432 # input before char - char/joystick depends on it. As does USB.
434 source "drivers/input/Kconfig"
436 source "drivers/char/Kconfig"
438 source "drivers/misc/Kconfig"
440 source "drivers/media/Kconfig"
444 source "drivers/video/Kconfig"
446 source "sound/Kconfig"
448 source "drivers/usb/Kconfig"
450 source "net/bluetooth/Kconfig"
452 source "arch/x86_64/oprofile/Kconfig"
454 menu "Kernel hacking"
457 bool "Kernel debugging"
459 Say Y here if you are developing drivers or trying to debug and
460 identify kernel problems.
463 bool "Debug memory allocations"
464 depends on DEBUG_KERNEL
466 Say Y here to have the kernel do limited verification on memory
467 allocation as well as poisoning memory on free to catch use of freed
471 bool "Magic SysRq key"
473 If you say Y here, you will have some control over the system even
474 if the system crashes for example during kernel debugging (e.g., you
475 will be able to flush the buffer cache to disk, reboot the system
476 immediately or dump some status information). This is accomplished
477 by pressing various keys while holding SysRq (Alt+PrintScreen). It
478 also works on a serial console (on PC hardware at least), if you
479 send a BREAK and then within 5 seconds a command keypress. The
480 keys are documented in <file:Documentation/sysrq.txt>. Don't say Y
481 unless you really know what this hack does.
483 config DEBUG_SPINLOCK
484 bool "Spinlock debugging"
485 depends on DEBUG_KERNEL
487 Say Y here and build SMP to catch missing spinlock initialization
488 and certain other kinds of spinlock errors commonly made. This is
489 best used in conjunction with the NMI watchdog so that spinlock
490 deadlocks are also debuggable.
492 # !SMP for now because the context switch early causes GPF in segment reloading
493 # and the GS base checking does the wrong thing then, causing a hang.
495 bool "Additional run-time checks"
496 depends on DEBUG_KERNEL && !SMP
498 Enables some internal consistency checks for kernel debugging.
499 You should normally say N.
502 bool "Debug __init statements"
503 depends on DEBUG_KERNEL
505 Fill __init and __initdata at the end of boot. This helps debugging
506 illegal uses of __init and __initdata after initialization.
509 bool "Compile the kernel with debug info"
510 depends on DEBUG_KERNEL
512 If you say Y here the resulting kernel image will include
513 debugging info resulting in a larger kernel image.
514 Say Y here only if you plan to use gdb to debug the kernel.
515 If you don't debug the kernel, you can say N.
518 bool "Compile the kernel with frame pointers"
520 Compile the kernel with frame pointers. This may help for some
521 debugging with external debuggers. Note the standard oops backtracer
522 doesn't make use of this and the x86-64 kernel doesn't ensure an consistent
523 frame pointer through inline assembly (semaphores etc.)
524 Normally you should say N.
527 bool "Force IOMMU to on"
529 Force the IOMMU to on even when you have less than 4GB of memory and add
531 Can be disabled at boot time with iommu=noforce.
534 bool "IOMMU leak tracing"
535 depends on DEBUG_KERNEL
536 depends on IOMMU_DEBUG
538 Add a simple leak tracer to the IOMMU code. This is useful when you
539 are debugging a buggy device driver that leaks IOMMU mappings.
542 bool "K8 Machine check debugging mode"
545 Turn on all Machine Check debugging for device driver problems.
546 This can cause panics, but is useful to find device driver problems.
548 #config X86_REMOTE_DEBUG
549 # bool "kgdb debugging stub"
553 source "security/Kconfig"
555 source "crypto/Kconfig"
559 source "rpmify/Kconfig"