commented early_printk patch because of rejects.
[linux-flexiantxendom0-3.2.10.git] / arch / x86_64 / Kconfig
1 #
2 # For a description of the syntax of this configuration file,
3 # see Documentation/kbuild/kconfig-language.txt.
4 #
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. 
8 #
9
10 mainmenu "Linux Kernel Configuration"
11
12 config X86_64
13         bool
14         default y
15         help
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
18
19 config X86
20         bool
21         default y
22
23 config MMU
24         bool
25         default y
26
27 config ISA
28         bool
29
30 config SBUS
31         bool
32
33 config RWSEM_GENERIC_SPINLOCK
34         bool
35         default y
36
37 config RWSEM_XCHGADD_ALGORITHM
38         bool
39
40 config X86_CMPXCHG
41         bool
42         default y
43
44 config EARLY_PRINTK
45         bool
46         default y
47         help
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.
54           
55 config HPET_TIMER
56         bool
57         default y
58         help
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>.
65
66           If unsure, say Y.
67
68 config GENERIC_ISA_DMA
69         bool
70         default y
71
72 source "init/Kconfig"
73
74
75 menu "Processor type and features"
76
77 choice
78         prompt "Processor family"
79         default MK8
80
81 config MK8
82         bool "AMD-Opteron/Athlon64"
83         help
84           Optimize for AMD Opteron/Athlon64/Hammer/K8 CPUs. 
85
86 config GENERIC_CPU
87         bool "Generic-x86-64"
88         help
89           Generic x86-64 CPU.
90
91 endchoice
92
93 #
94 # Define implied options from the CPU selection here
95 #
96 config X86_L1_CACHE_BYTES
97         int
98         default "64"
99
100 config X86_L1_CACHE_SHIFT
101         int
102         default "6"
103
104 config X86_TSC
105         bool
106         default y
107
108 config X86_GOOD_APIC
109         bool
110         default y
111
112 config X86_MSR
113         tristate "/dev/cpu/*/msr - Model-specific register support"
114         help
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
119           systems.
120
121 config X86_CPUID
122         tristate "/dev/cpu/*/cpuid - CPU information support"
123         help
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
127           /dev/cpu/31/cpuid.
128
129 config MATH_EMULATION
130         bool
131
132 config MCA
133         bool
134
135 config EISA
136         bool
137
138 config X86_IO_APIC
139         bool
140         default y
141
142 config X86_LOCAL_APIC
143         bool
144         default y
145
146 config MTRR
147         bool "MTRR (Memory Type Range Register) support"
148         ---help---
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.
158
159           This code has a reasonably generic interface so that similar
160           control registers on other processors can be easily supported
161           as well.
162
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.
166
167           Just say Y here, all x86-64 machines support MTRRs.
168
169           See <file:Documentation/mtrr.txt> for more information.
170
171 config HUGETLB_PAGE
172         bool "Huge TLB Page Support"
173         help
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.
178
179 config SMP
180         bool "Symmetric multi-processing support"
181         ---help---
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.
185
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.
191
192           If you don't know what to do here, say N.
193
194 config PREEMPT
195         bool "Preemptible Kernel"
196         ---help---
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.
206
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. 
209
210 # someone write a better help text please.
211 config K8_NUMA
212        bool "K8 NUMA support"
213        depends on SMP
214        help
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.
220           Say N if unsure.
221
222 config DISCONTIGMEM
223        bool
224        depends on K8_NUMA
225        default y
226
227 config NUMA
228        bool
229        depends on K8_NUMA
230        default y
231
232 config HAVE_DEC_LOCK
233         bool
234         depends on SMP
235         default y
236
237 # actually 64 maximum, but you need to fix the APIC code first
238 # to use clustered mode or whatever your big iron needs
239 config NR_CPUS
240         int "Maximum number of CPUs (2-8)"
241         depends on SMP
242         default "8"
243         help
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.
247
248           This is purely to save memory - each supported CPU requires
249           memory in the static kernel configuration.
250
251 config GART_IOMMU
252         bool "IOMMU support"
253         help
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.
258           If unsure say Y 
259
260 config DUMMY_IOMMU
261         bool
262         depends on !GART_IOMMU
263         default y
264         help
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
267           are doing.
268
269 config X86_MCE
270         bool
271         default y
272
273 endmenu
274
275
276 menu "Power management options"
277
278 config PM
279         bool "Power Management support"
280         ---help---
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.
286
287           Power Management is most important for battery powered laptop
288           computers; if you have a laptop, check out the Linux Laptop home
289           page on the WWW at
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>.
293
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.
298
299 config SOFTWARE_SUSPEND
300         bool "Software Suspend (EXPERIMENTAL)"
301         depends on EXPERIMENTAL && PM && SWAP
302         ---help---
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). 
306
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.
314
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.
319
320           SMP is supported ``as-is''. There's code for it but doesn't work.
321           There have been problems reported relating to SCSI.
322
323           This option is close to getting stable. However there is still some
324           absence of features.
325
326           For more information take a look at Documentation/swsusp.txt.
327
328 source "drivers/acpi/Kconfig"
329
330 endmenu
331
332
333 menu "Bus options (PCI etc.)"
334
335 config PCI
336         bool "PCI support"
337
338 # x86-64 doesn't support PCI BIOS access from long mode so always go direct. 
339 config PCI_DIRECT
340         bool
341         depends on PCI
342         default y
343
344 source "drivers/pci/Kconfig"
345
346 config HOTPLUG
347         bool "Support for hot-pluggable devices"
348         ---help---
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.
352
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.
357
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.
363
364 source "drivers/pcmcia/Kconfig"
365
366 source "drivers/pci/hotplug/Kconfig"
367
368 endmenu
369
370
371 menu "Executable file formats / Emulations"
372
373 config KCORE_ELF
374         bool
375         depends on PROC_FS
376         default y
377
378 source "fs/Kconfig.binfmt"
379
380 config IA32_EMULATION
381         bool "IA32 Emulation"
382         help
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
385           left.
386
387 config COMPAT
388         bool
389         depends on IA32_EMULATION
390         default y
391
392
393 config UID16
394         bool
395         depends on IA32_EMULATION
396         default y
397
398 endmenu
399
400 source "drivers/base/Kconfig"
401
402 source "drivers/mtd/Kconfig"
403
404 source "drivers/parport/Kconfig"
405
406 source "drivers/block/Kconfig"
407
408 source "drivers/ide/Kconfig"
409
410 source "drivers/scsi/Kconfig"
411
412 source "drivers/md/Kconfig"
413
414 source "drivers/telephony/Kconfig"
415
416 source "drivers/message/fusion/Kconfig"
417
418 source "drivers/ieee1394/Kconfig"
419
420 #Currently not 64-bit safe
421 #source drivers/message/i2o/Config.in
422 source "net/Kconfig"
423
424 source "net/ax25/Kconfig"
425
426 source "net/irda/Kconfig"
427
428 source "drivers/isdn/Kconfig"
429
430 # no support for non IDE/SCSI cdroms as they were all ISA only
431 #
432 # input before char - char/joystick depends on it. As does USB.
433 #
434 source "drivers/input/Kconfig"
435
436 source "drivers/char/Kconfig"
437
438 source "drivers/misc/Kconfig"
439
440 source "drivers/media/Kconfig"
441
442 source "fs/Kconfig"
443
444 source "drivers/video/Kconfig"
445
446 source "sound/Kconfig"
447
448 source "drivers/usb/Kconfig"
449
450 source "net/bluetooth/Kconfig"
451
452 source "arch/x86_64/oprofile/Kconfig"
453
454 menu "Kernel hacking"
455
456 config DEBUG_KERNEL
457         bool "Kernel debugging"
458         help
459           Say Y here if you are developing drivers or trying to debug and
460           identify kernel problems.
461
462 config DEBUG_SLAB
463         bool "Debug memory allocations"
464         depends on DEBUG_KERNEL
465         help
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
468           memory.
469
470 config MAGIC_SYSRQ
471         bool "Magic SysRq key"
472         help
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.
482
483 config DEBUG_SPINLOCK
484         bool "Spinlock debugging"
485         depends on DEBUG_KERNEL
486         help
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.
491
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.
494 config CHECKING
495         bool "Additional run-time checks"
496         depends on DEBUG_KERNEL && !SMP
497         help
498           Enables some internal consistency checks for kernel debugging.
499           You should normally say N.
500
501 config INIT_DEBUG
502         bool "Debug __init statements"
503         depends on DEBUG_KERNEL
504         help
505           Fill __init and __initdata at the end of boot. This helps debugging
506           illegal uses of __init and __initdata after initialization.     
507
508 config DEBUG_INFO
509         bool "Compile the kernel with debug info"
510         depends on DEBUG_KERNEL
511         help
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.
516           
517 config FRAME_POINTER
518        bool "Compile the kernel with frame pointers"
519        help
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.
525
526 config IOMMU_DEBUG
527        bool "Force IOMMU to on" 
528        help
529          Force the IOMMU to on even when you have less than 4GB of memory and add 
530          debugging code. 
531          Can be disabled at boot time with iommu=noforce.
532
533 config IOMMU_LEAK
534        bool "IOMMU leak tracing"
535        depends on DEBUG_KERNEL
536        depends on IOMMU_DEBUG
537        help
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.
540        
541 config MCE_DEBUG
542        bool "K8 Machine check debugging mode"
543        default y 
544        help
545          Turn on all Machine Check debugging for device driver problems.          
546          This can cause panics, but is useful to find device driver problems.
547
548 #config X86_REMOTE_DEBUG
549 #       bool "kgdb debugging stub"
550
551 endmenu
552
553 source "security/Kconfig"
554
555 source "crypto/Kconfig"
556
557 source "lib/Kconfig"
558
559 source "rpmify/Kconfig"
560