patch-2_6_7-vs1_9_1_12
[linux-2.6.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
18           <http://www.x86-64.org/>.
19
20 config 64BIT
21         def_bool y
22
23 config X86
24         bool
25         default y
26
27 config MMU
28         bool
29         default y
30
31 config ISA
32         bool
33
34 config SBUS
35         bool
36
37 config RWSEM_GENERIC_SPINLOCK
38         bool
39         default y
40
41 config RWSEM_XCHGADD_ALGORITHM
42         bool
43
44 config X86_CMPXCHG
45         bool
46         default y
47
48 config EARLY_PRINTK
49         bool
50         default y
51         help
52           Write kernel log output directly into the VGA buffer or to a serial
53           port.
54
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.
60           
61 config HPET_TIMER
62         bool
63         default y
64         help
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>.
71
72           If unsure, say Y.
73
74 config HPET_EMULATE_RTC
75         def_bool HPET_TIMER && RTC=y
76
77 config GENERIC_ISA_DMA
78         bool
79         default y
80
81 source "init/Kconfig"
82
83
84 menu "Processor type and features"
85
86 choice
87         prompt "Processor family"
88         default MK8
89
90 config MK8
91         bool "AMD-Opteron/Athlon64"
92         help
93           Optimize for AMD Opteron/Athlon64/Hammer/K8 CPUs. 
94
95 config MPSC
96        bool "Intel x86-64" 
97        help
98           Optimize for Intel IA32 with 64bit extension CPUs
99           (Prescott/Nocona/Potomac)
100        
101 config GENERIC_CPU
102         bool "Generic-x86-64"
103         help
104           Generic x86-64 CPU.
105
106 endchoice
107
108 #
109 # Define implied options from the CPU selection here
110 #
111 config X86_L1_CACHE_BYTES
112         int
113         default "128" if GENERIC_CPU || MPSC
114         default "64" if MK8
115
116 config X86_L1_CACHE_SHIFT
117         int
118         default "7" if GENERIC_CPU || MPSC
119         default "6" if MK8
120
121 config X86_TSC
122         bool
123         default y
124
125 config X86_GOOD_APIC
126         bool
127         default y
128
129 config MICROCODE
130         tristate "/dev/cpu/microcode - Intel CPU microcode support"
131         ---help---
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.
136
137           For latest news and information on obtaining all the required
138           ingredients for this driver, check:
139           <http://www.urbanmyth.org/microcode/>.
140
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.
145
146 config X86_MSR
147         tristate "/dev/cpu/*/msr - Model-specific register support"
148         help
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
153           systems.
154
155 config X86_CPUID
156         tristate "/dev/cpu/*/cpuid - CPU information support"
157         help
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
161           /dev/cpu/31/cpuid.
162
163 # disable it for opteron optimized builds because it pulls in ACPI_BOOT
164 config X86_HT
165         bool
166         depends on SMP && !MK8
167         default y
168        
169 config MATH_EMULATION
170         bool
171
172 config MCA
173         bool
174
175 config EISA
176         bool
177
178 config X86_IO_APIC
179         bool
180         default y
181
182 config X86_LOCAL_APIC
183         bool
184         default y
185
186 config MTRR
187         bool "MTRR (Memory Type Range Register) support"
188         ---help---
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.
198
199           This code has a reasonably generic interface so that similar
200           control registers on other processors can be easily supported
201           as well.
202
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.
206
207           Just say Y here, all x86-64 machines support MTRRs.
208
209           See <file:Documentation/mtrr.txt> for more information.
210
211 config SMP
212         bool "Symmetric multi-processing support"
213         ---help---
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.
217
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.
223
224           If you don't know what to do here, say N.
225
226 config PREEMPT
227         bool "Preemptible Kernel"
228         ---help---
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.
238
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. 
241
242 config SCHED_SMT
243         bool "SMT (Hyperthreading) scheduler support"
244         depends on SMP
245         default off
246         help
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
250           N here.
251
252 config K8_NUMA
253        bool "K8 NUMA support"
254        depends on SMP
255        help
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.
262
263 config DISCONTIGMEM
264        bool
265        depends on K8_NUMA
266        default y
267
268 config NUMA
269        bool
270        depends on K8_NUMA
271        default y
272
273 config HAVE_DEC_LOCK
274         bool
275         depends on SMP
276         default y
277
278 # actually 64 maximum, but you need to fix the APIC code first
279 # to use clustered mode or whatever your big iron needs
280 config NR_CPUS
281         int "Maximum number of CPUs (2-8)"
282         range 2 8
283         depends on SMP
284         default "8"
285         help
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.
289
290           This is purely to save memory - each supported CPU requires
291           memory in the static kernel configuration.
292
293 config GART_IOMMU
294         bool "IOMMU support"
295         help
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.
300           If unsure say Y 
301
302 # need this always enabled with GART_IOMMU for the VIA workaround
303 config SWIOTLB
304        bool
305        depends on GART_IOMMU
306        default y
307
308 config DUMMY_IOMMU
309         bool
310         depends on !GART_IOMMU && !SWIOTLB
311         default y
312         help
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
315           are doing.
316
317 config X86_MCE
318         bool
319         default y
320
321 endmenu
322
323
324 menu "Power management options"
325
326 source kernel/power/Kconfig
327
328 source "drivers/acpi/Kconfig"
329
330 source "arch/x86_64/kernel/cpufreq/Kconfig"
331
332 endmenu
333
334 menu "Bus options (PCI etc.)"
335
336 config PCI
337         bool "PCI support"
338
339 # x86-64 doesn't support PCI BIOS access from long mode so always go direct. 
340 config PCI_DIRECT
341         bool
342         depends on PCI
343         default y
344
345 config PCI_MMCONFIG 
346         bool "Support mmconfig PCI config space access" 
347         depends on PCI
348         select ACPI_BOOT
349
350 source "drivers/pci/Kconfig"
351
352 source "drivers/pcmcia/Kconfig"
353
354 source "drivers/pci/hotplug/Kconfig"
355
356 endmenu
357
358
359 menu "Executable file formats / Emulations"
360
361 source "fs/Kconfig.binfmt"
362
363 config IA32_EMULATION
364         bool "IA32 Emulation"
365         help
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
368           left.
369
370 config IA32_AOUT
371        bool "IA32 a.out support"
372        depends on IA32_EMULATION
373        help
374          Support old a.out binaries in the 32bit emulation.
375
376 config COMPAT
377         bool
378         depends on IA32_EMULATION
379         default y
380
381 config SYSVIPC_COMPAT
382         bool
383         depends on COMPAT && SYSVIPC
384         default y
385
386 config UID16
387         bool
388         depends on IA32_EMULATION
389         default y
390
391 endmenu
392
393 source drivers/Kconfig
394
395 source "drivers/firmware/Kconfig"
396
397 source fs/Kconfig
398
399 source "arch/x86_64/oprofile/Kconfig"
400
401 menu "Kernel hacking"
402
403 config DEBUG_KERNEL
404         bool "Kernel debugging"
405         help
406           Say Y here if you are developing drivers or trying to debug and
407           identify kernel problems.
408
409 config DEBUG_SLAB
410         bool "Debug memory allocations"
411         depends on DEBUG_KERNEL
412         help
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
415           memory.
416
417 config MAGIC_SYSRQ
418         bool "Magic SysRq key"
419         help
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.
429
430 config DEBUG_SPINLOCK
431         bool "Spinlock debugging"
432         depends on DEBUG_KERNEL
433         help
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.
438
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.
441 config CHECKING
442         bool "Additional run-time checks"
443         depends on DEBUG_KERNEL && !SMP
444         help
445           Enables some internal consistency checks for kernel debugging.
446           You should normally say N.
447
448 config INIT_DEBUG
449         bool "Debug __init statements"
450         depends on DEBUG_KERNEL
451         help
452           Fill __init and __initdata at the end of boot. This helps debugging
453           illegal uses of __init and __initdata after initialization.     
454
455 config DEBUG_INFO
456         bool "Compile the kernel with debug info"
457         depends on DEBUG_KERNEL
458         help
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.
464           
465 config FRAME_POINTER
466        bool "Compile the kernel with frame pointers"
467        help
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.
473
474 config IOMMU_DEBUG
475        depends on GART_IOMMU && DEBUG_KERNEL
476        bool "Enable IOMMU debugging"
477        help
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
487          details.
488
489 config IOMMU_LEAK
490        bool "IOMMU leak tracing"
491        depends on DEBUG_KERNEL
492        depends on IOMMU_DEBUG
493        help
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.
496        
497 #config X86_REMOTE_DEBUG
498 #       bool "kgdb debugging stub"
499
500 endmenu
501
502 source "kernel/vserver/Kconfig"
503
504 source "security/Kconfig"
505
506 source "crypto/Kconfig"
507
508 source "lib/Kconfig"
509