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