patch-2.6.6-vs1.9.0
[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 # someone write a better help text please.
243 config K8_NUMA
244        bool "K8 NUMA support"
245        depends on SMP
246        help
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.
252           Say N if unsure.
253
254 config DISCONTIGMEM
255        bool
256        depends on K8_NUMA
257        default y
258
259 config NUMA
260        bool
261        depends on K8_NUMA
262        default y
263
264 config HAVE_DEC_LOCK
265         bool
266         depends on SMP
267         default y
268
269 # actually 64 maximum, but you need to fix the APIC code first
270 # to use clustered mode or whatever your big iron needs
271 config NR_CPUS
272         int "Maximum number of CPUs (2-8)"
273         range 2 8
274         depends on SMP
275         default "8"
276         help
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.
280
281           This is purely to save memory - each supported CPU requires
282           memory in the static kernel configuration.
283
284 config GART_IOMMU
285         bool "IOMMU support"
286         help
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.
291           If unsure say Y 
292
293 # need this always enabled with GART_IOMMU for the VIA workaround
294 config SWIOTLB
295        bool
296        depends on GART_IOMMU
297        default y
298
299 config DUMMY_IOMMU
300         bool
301         depends on !GART_IOMMU && !SWIOTLB
302         default y
303         help
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
306           are doing.
307
308 config X86_MCE
309         bool
310         default y
311
312 endmenu
313
314
315 menu "Power management options"
316
317 source kernel/power/Kconfig
318
319 source "drivers/acpi/Kconfig"
320
321 source "arch/x86_64/kernel/cpufreq/Kconfig"
322
323 endmenu
324
325 menu "Bus options (PCI etc.)"
326
327 config PCI
328         bool "PCI support"
329
330 # x86-64 doesn't support PCI BIOS access from long mode so always go direct. 
331 config PCI_DIRECT
332         bool
333         depends on PCI
334         default y
335
336 config PCI_MMCONFIG 
337         bool "Support mmconfig PCI config space access" 
338         depends on PCI
339         select ACPI_BOOT
340
341 source "drivers/pci/Kconfig"
342
343 source "drivers/pcmcia/Kconfig"
344
345 source "drivers/pci/hotplug/Kconfig"
346
347 endmenu
348
349
350 menu "Executable file formats / Emulations"
351
352 source "fs/Kconfig.binfmt"
353
354 config IA32_EMULATION
355         bool "IA32 Emulation"
356         help
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
359           left.
360
361 config IA32_AOUT
362        bool "IA32 a.out support"
363        depends on IA32_EMULATION
364        help
365          Support old a.out binaries in the 32bit emulation.
366
367 config COMPAT
368         bool
369         depends on IA32_EMULATION
370         default y
371
372 config SYSVIPC_COMPAT
373         bool
374         depends on COMPAT && SYSVIPC
375         default y
376
377 config UID16
378         bool
379         depends on IA32_EMULATION
380         default y
381
382 endmenu
383
384 source drivers/Kconfig
385
386 source "drivers/firmware/Kconfig"
387
388 source fs/Kconfig
389
390 source "arch/x86_64/oprofile/Kconfig"
391
392 menu "Kernel hacking"
393
394 config DEBUG_KERNEL
395         bool "Kernel debugging"
396         help
397           Say Y here if you are developing drivers or trying to debug and
398           identify kernel problems.
399
400 config DEBUG_SLAB
401         bool "Debug memory allocations"
402         depends on DEBUG_KERNEL
403         help
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
406           memory.
407
408 config MAGIC_SYSRQ
409         bool "Magic SysRq key"
410         help
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.
420
421 config DEBUG_SPINLOCK
422         bool "Spinlock debugging"
423         depends on DEBUG_KERNEL
424         help
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.
429
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.
432 config CHECKING
433         bool "Additional run-time checks"
434         depends on DEBUG_KERNEL && !SMP
435         help
436           Enables some internal consistency checks for kernel debugging.
437           You should normally say N.
438
439 config INIT_DEBUG
440         bool "Debug __init statements"
441         depends on DEBUG_KERNEL
442         help
443           Fill __init and __initdata at the end of boot. This helps debugging
444           illegal uses of __init and __initdata after initialization.     
445
446 config DEBUG_INFO
447         bool "Compile the kernel with debug info"
448         depends on DEBUG_KERNEL
449         help
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.
455           
456 config FRAME_POINTER
457        bool "Compile the kernel with frame pointers"
458        help
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.
464
465 config IOMMU_DEBUG
466        depends on GART_IOMMU && DEBUG_KERNEL
467        bool "Enable IOMMU debugging"
468        help
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
478          details.
479
480 config IOMMU_LEAK
481        bool "IOMMU leak tracing"
482        depends on DEBUG_KERNEL
483        depends on IOMMU_DEBUG
484        help
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.
487        
488 #config X86_REMOTE_DEBUG
489 #       bool "kgdb debugging stub"
490
491 endmenu
492
493 source "kernel/vserver/Kconfig"
494
495 source "security/Kconfig"
496
497 source "crypto/Kconfig"
498
499 source "lib/Kconfig"
500