vserver 1.9.3
[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 config GENERIC_IOMAP
82         bool
83         default y
84
85 source "init/Kconfig"
86
87
88 menu "Processor type and features"
89
90 choice
91         prompt "Processor family"
92         default MK8
93
94 config MK8
95         bool "AMD-Opteron/Athlon64"
96         help
97           Optimize for AMD Opteron/Athlon64/Hammer/K8 CPUs.
98
99 config MPSC
100        bool "Intel x86-64"
101        help
102           Optimize for Intel IA32 with 64bit extension CPUs
103           (Prescott/Nocona/Potomac)
104
105 config GENERIC_CPU
106         bool "Generic-x86-64"
107         help
108           Generic x86-64 CPU.
109
110 endchoice
111
112 #
113 # Define implied options from the CPU selection here
114 #
115 config X86_L1_CACHE_BYTES
116         int
117         default "128" if GENERIC_CPU || MPSC
118         default "64" if MK8
119
120 config X86_L1_CACHE_SHIFT
121         int
122         default "7" if GENERIC_CPU || MPSC
123         default "6" if MK8
124
125 config X86_TSC
126         bool
127         default y
128
129 config X86_GOOD_APIC
130         bool
131         default y
132
133 config MICROCODE
134         tristate "/dev/cpu/microcode - Intel CPU microcode support"
135         ---help---
136           If you say Y here the 'File systems' section, you will be
137           able to update the microcode on Intel processors. You will
138           obviously need the actual microcode binary data itself which is
139           not shipped with the Linux kernel.
140
141           For latest news and information on obtaining all the required
142           ingredients for this driver, check:
143           <http://www.urbanmyth.org/microcode/>.
144
145           To compile this driver as a module, choose M here: the
146           module will be called microcode.
147           If you use modprobe or kmod you may also want to add the line
148           'alias char-major-10-184 microcode' to your /etc/modules.conf file.
149
150 config X86_MSR
151         tristate "/dev/cpu/*/msr - Model-specific register support"
152         help
153           This device gives privileged processes access to the x86
154           Model-Specific Registers (MSRs).  It is a character device with
155           major 202 and minors 0 to 31 for /dev/cpu/0/msr to /dev/cpu/31/msr.
156           MSR accesses are directed to a specific CPU on multi-processor
157           systems.
158
159 config X86_CPUID
160         tristate "/dev/cpu/*/cpuid - CPU information support"
161         help
162           This device gives processes access to the x86 CPUID instruction to
163           be executed on a specific processor.  It is a character device
164           with major 203 and minors 0 to 31 for /dev/cpu/0/cpuid to
165           /dev/cpu/31/cpuid.
166
167 # disable it for opteron optimized builds because it pulls in ACPI_BOOT
168 config X86_HT
169         bool
170         depends on SMP && !MK8
171         default y
172
173 config MATH_EMULATION
174         bool
175
176 config MCA
177         bool
178
179 config EISA
180         bool
181
182 config X86_IO_APIC
183         bool
184         default y
185
186 config X86_LOCAL_APIC
187         bool
188         default y
189
190 config MTRR
191         bool "MTRR (Memory Type Range Register) support"
192         ---help---
193           On Intel P6 family processors (Pentium Pro, Pentium II and later)
194           the Memory Type Range Registers (MTRRs) may be used to control
195           processor access to memory ranges. This is most useful if you have
196           a video (VGA) card on a PCI or AGP bus. Enabling write-combining
197           allows bus write transfers to be combined into a larger transfer
198           before bursting over the PCI/AGP bus. This can increase performance
199           of image write operations 2.5 times or more. Saying Y here creates a
200           /proc/mtrr file which may be used to manipulate your processor's
201           MTRRs. Typically the X server should use this.
202
203           This code has a reasonably generic interface so that similar
204           control registers on other processors can be easily supported
205           as well.
206
207           Saying Y here also fixes a problem with buggy SMP BIOSes which only
208           set the MTRRs for the boot CPU and not for the secondary CPUs. This
209           can lead to all sorts of problems, so it's good to say Y here.
210
211           Just say Y here, all x86-64 machines support MTRRs.
212
213           See <file:Documentation/mtrr.txt> for more information.
214
215 config SMP
216         bool "Symmetric multi-processing support"
217         ---help---
218           This enables support for systems with more than one CPU. If you have
219           a system with only one CPU, like most personal computers, say N. If
220           you have a system with more than one CPU, say Y.
221
222           If you say N here, the kernel will run on single and multiprocessor
223           machines, but will use only one CPU of a multiprocessor machine. If
224           you say Y here, the kernel will run on many, but not all,
225           singleprocessor machines. On a singleprocessor machine, the kernel
226           will run faster if you say N here.
227
228           If you don't know what to do here, say N.
229
230 config PREEMPT
231         bool "Preemptible Kernel"
232         ---help---
233           This option reduces the latency of the kernel when reacting to
234           real-time or interactive events by allowing a low priority process to
235           be preempted even if it is in kernel mode executing a system call.
236           This allows applications to run more reliably even when the system is
237           under load. On contrary it may also break your drivers and add
238           priority inheritance problems to your system. Don't select it if
239           you rely on a stable system or have slightly obscure hardware.
240           It's also not very well tested on x86-64 currently.
241           You have been warned.
242
243           Say Y here if you are feeling brave and building a kernel for a
244           desktop, embedded or real-time system.  Say N if you are unsure.
245
246 config SCHED_SMT
247         bool "SMT (Hyperthreading) scheduler support"
248         depends on SMP
249         default off
250         help
251           SMT scheduler support improves the CPU scheduler's decision making
252           when dealing with Intel Pentium 4 chips with HyperThreading at a
253           cost of slightly increased overhead in some places. If unsure say
254           N here.
255
256 config K8_NUMA
257        bool "K8 NUMA support"
258        depends on SMP
259        help
260           Enable NUMA (Non Unified Memory Architecture) support for
261           AMD Opteron Multiprocessor systems. The kernel will try to allocate
262           memory used by a CPU on the local memory controller of the CPU
263           and add some more NUMA awareness to the kernel.
264           This code is recommended on all multiprocessor Opteron systems
265           and normally doesn't hurt on others.
266
267 config DISCONTIGMEM
268        bool
269        depends on K8_NUMA
270        default y
271
272 config NUMA
273        bool
274        depends on K8_NUMA
275        default y
276
277 config HAVE_DEC_LOCK
278         bool
279         depends on SMP
280         default y
281
282 # actually 64 maximum, but you need to fix the APIC code first
283 # to use clustered mode or whatever your big iron needs
284 config NR_CPUS
285         int "Maximum number of CPUs (2-8)"
286         range 2 8
287         depends on SMP
288         default "8"
289         help
290           This allows you to specify the maximum number of CPUs which this
291           kernel will support.  The maximum supported value is 32 and the
292           minimum value which makes sense is 2.
293
294           This is purely to save memory - each supported CPU requires
295           memory in the static kernel configuration.
296
297 config GART_IOMMU
298         bool "IOMMU support"
299         help
300           Support the K8 IOMMU. Needed to run systems with more than 4GB of memory
301           properly with 32-bit PCI devices that do not support DAC (Double Address
302           Cycle). The IOMMU can be turned off at runtime with the iommu=off parameter.
303           Normally the kernel will take the right choice by itself.
304           If unsure, say Y.
305
306 # need this always enabled with GART_IOMMU for the VIA workaround
307 config SWIOTLB
308        bool
309        depends on GART_IOMMU
310        default y
311
312 config DUMMY_IOMMU
313         bool
314         depends on !GART_IOMMU && !SWIOTLB
315         default y
316         help
317           Don't use IOMMU code. This will cause problems when you have more than 4GB
318           of memory and any 32-bit devices. Don't turn on unless you know what you
319           are doing.
320
321 config X86_MCE
322         bool "Machine check support" if EMBEDDED
323         default y
324         help
325            Include a machine check error handler to report hardware errors.
326            This version will require the mcelog utility to decode some
327            machine check error logs. See
328            ftp://ftp.x86-64.org/pub/linux/tools/mcelog
329
330 endmenu
331
332
333 menu "Power management options"
334
335 source kernel/power/Kconfig
336
337 source "drivers/acpi/Kconfig"
338
339 source "arch/x86_64/kernel/cpufreq/Kconfig"
340
341 endmenu
342
343 menu "Bus options (PCI etc.)"
344
345 config PCI
346         bool "PCI support"
347
348 # x86-64 doesn't support PCI BIOS access from long mode so always go direct.
349 config PCI_DIRECT
350         bool
351         depends on PCI
352         default y
353
354 config PCI_MMCONFIG
355         bool "Support mmconfig PCI config space access"
356         depends on PCI
357         select ACPI_BOOT
358
359 config UNORDERED_IO
360        bool "Unordered IO mapping access"
361        depends on EXPERIMENTAL
362        help
363          Use unordered stores to access IO memory mappings in device drivers.
364          Still very experimental. When a driver works on IA64/ppc64/pa-risc it should
365          work with this option, but it makes the drivers behave differently
366          from i386. Requires that the driver writer used memory barriers
367          properly.
368
369 source "drivers/pci/Kconfig"
370
371 source "drivers/pcmcia/Kconfig"
372
373 source "drivers/pci/hotplug/Kconfig"
374
375 endmenu
376
377
378 menu "Executable file formats / Emulations"
379
380 source "fs/Kconfig.binfmt"
381
382 config IA32_EMULATION
383         bool "IA32 Emulation"
384         help
385           Include code to run 32-bit programs under a 64-bit kernel. You should likely
386           turn this on, unless you're 100% sure that you don't have any 32-bit programs
387           left.
388
389 config IA32_AOUT
390        bool "IA32 a.out support"
391        depends on IA32_EMULATION
392        help
393          Support old a.out binaries in the 32bit emulation.
394
395 config COMPAT
396         bool
397         depends on IA32_EMULATION
398         default y
399
400 config SYSVIPC_COMPAT
401         bool
402         depends on COMPAT && SYSVIPC
403         default y
404
405 config UID16
406         bool
407         depends on IA32_EMULATION
408         default y
409
410 endmenu
411
412 source drivers/Kconfig
413
414 source "drivers/firmware/Kconfig"
415
416 source fs/Kconfig
417
418 source "arch/x86_64/oprofile/Kconfig"
419
420 source "arch/x86_64/Kconfig.debug"
421
422 source "kernel/vserver/Kconfig"
423
424 source "security/Kconfig"
425
426 source "crypto/Kconfig"
427
428 source "lib/Kconfig"