Merge linux-2.6 into linux-acpi-2.6 test
[linux-2.6] / 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 GENERIC_ISA_DMA
57         bool
58         default y
59
60 config GENERIC_IOMAP
61         bool
62         default y
63
64 source "init/Kconfig"
65
66
67 menu "Processor type and features"
68
69 choice
70         prompt "Processor family"
71         default MK8
72
73 config MK8
74         bool "AMD-Opteron/Athlon64"
75         help
76           Optimize for AMD Opteron/Athlon64/Hammer/K8 CPUs.
77
78 config MPSC
79        bool "Intel EM64T"
80        help
81           Optimize for Intel Pentium 4 and Xeon CPUs with Intel
82           Extended Memory 64 Technology(EM64T). For details see
83           <http://www.intel.com/technology/64bitextensions/>.
84
85 config GENERIC_CPU
86         bool "Generic-x86-64"
87         help
88           Generic x86-64 CPU.
89
90 endchoice
91
92 #
93 # Define implied options from the CPU selection here
94 #
95 config X86_L1_CACHE_BYTES
96         int
97         default "128" if GENERIC_CPU || MPSC
98         default "64" if MK8
99
100 config X86_L1_CACHE_SHIFT
101         int
102         default "7" if GENERIC_CPU || MPSC
103         default "6" if MK8
104
105 config X86_TSC
106         bool
107         default y
108
109 config X86_GOOD_APIC
110         bool
111         default y
112
113 config MICROCODE
114         tristate "/dev/cpu/microcode - Intel CPU microcode support"
115         ---help---
116           If you say Y here the 'File systems' section, you will be
117           able to update the microcode on Intel processors. You will
118           obviously need the actual microcode binary data itself which is
119           not shipped with the Linux kernel.
120
121           For latest news and information on obtaining all the required
122           ingredients for this driver, check:
123           <http://www.urbanmyth.org/microcode/>.
124
125           To compile this driver as a module, choose M here: the
126           module will be called microcode.
127           If you use modprobe or kmod you may also want to add the line
128           'alias char-major-10-184 microcode' to your /etc/modules.conf file.
129
130 config X86_MSR
131         tristate "/dev/cpu/*/msr - Model-specific register support"
132         help
133           This device gives privileged processes access to the x86
134           Model-Specific Registers (MSRs).  It is a character device with
135           major 202 and minors 0 to 31 for /dev/cpu/0/msr to /dev/cpu/31/msr.
136           MSR accesses are directed to a specific CPU on multi-processor
137           systems.
138
139 config X86_CPUID
140         tristate "/dev/cpu/*/cpuid - CPU information support"
141         help
142           This device gives processes access to the x86 CPUID instruction to
143           be executed on a specific processor.  It is a character device
144           with major 203 and minors 0 to 31 for /dev/cpu/0/cpuid to
145           /dev/cpu/31/cpuid.
146
147 config X86_HT
148         bool
149         depends on SMP && !MK8
150         default y
151
152 config MATH_EMULATION
153         bool
154
155 config MCA
156         bool
157
158 config EISA
159         bool
160
161 config X86_IO_APIC
162         bool
163         default y
164
165 config X86_LOCAL_APIC
166         bool
167         default y
168
169 config MTRR
170         bool "MTRR (Memory Type Range Register) support"
171         ---help---
172           On Intel P6 family processors (Pentium Pro, Pentium II and later)
173           the Memory Type Range Registers (MTRRs) may be used to control
174           processor access to memory ranges. This is most useful if you have
175           a video (VGA) card on a PCI or AGP bus. Enabling write-combining
176           allows bus write transfers to be combined into a larger transfer
177           before bursting over the PCI/AGP bus. This can increase performance
178           of image write operations 2.5 times or more. Saying Y here creates a
179           /proc/mtrr file which may be used to manipulate your processor's
180           MTRRs. Typically the X server should use this.
181
182           This code has a reasonably generic interface so that similar
183           control registers on other processors can be easily supported
184           as well.
185
186           Saying Y here also fixes a problem with buggy SMP BIOSes which only
187           set the MTRRs for the boot CPU and not for the secondary CPUs. This
188           can lead to all sorts of problems, so it's good to say Y here.
189
190           Just say Y here, all x86-64 machines support MTRRs.
191
192           See <file:Documentation/mtrr.txt> for more information.
193
194 config SMP
195         bool "Symmetric multi-processing support"
196         ---help---
197           This enables support for systems with more than one CPU. If you have
198           a system with only one CPU, like most personal computers, say N. If
199           you have a system with more than one CPU, say Y.
200
201           If you say N here, the kernel will run on single and multiprocessor
202           machines, but will use only one CPU of a multiprocessor machine. If
203           you say Y here, the kernel will run on many, but not all,
204           singleprocessor machines. On a singleprocessor machine, the kernel
205           will run faster if you say N here.
206
207           If you don't know what to do here, say N.
208
209 config SCHED_SMT
210         bool "SMT (Hyperthreading) scheduler support"
211         depends on SMP
212         default n
213         help
214           SMT scheduler support improves the CPU scheduler's decision making
215           when dealing with Intel Pentium 4 chips with HyperThreading at a
216           cost of slightly increased overhead in some places. If unsure say
217           N here.
218
219 source "kernel/Kconfig.preempt"
220
221 config K8_NUMA
222        bool "K8 NUMA support"
223        select NUMA
224        depends on SMP
225        help
226           Enable NUMA (Non Unified Memory Architecture) support for
227           AMD Opteron Multiprocessor systems. The kernel will try to allocate
228           memory used by a CPU on the local memory controller of the CPU
229           and add some more NUMA awareness to the kernel.
230           This code is recommended on all multiprocessor Opteron systems
231           and normally doesn't hurt on others.
232
233 config NUMA_EMU
234         bool "NUMA emulation support"
235         select NUMA
236         depends on SMP
237         help
238           Enable NUMA emulation. A flat machine will be split
239           into virtual nodes when booted with "numa=fake=N", where N is the
240           number of nodes. This is only useful for debugging.
241
242 config ARCH_DISCONTIGMEM_ENABLE
243        bool
244        depends on NUMA
245        default y
246
247 config NUMA
248        bool
249        default n
250
251 config ARCH_DISCONTIGMEM_ENABLE
252         def_bool y
253         depends on NUMA
254
255 config ARCH_DISCONTIGMEM_DEFAULT
256         def_bool y
257         depends on NUMA
258
259 config ARCH_SPARSEMEM_ENABLE
260         def_bool y
261         depends on NUMA
262
263 config ARCH_FLATMEM_ENABLE
264         def_bool y
265         depends on !NUMA
266
267 source "mm/Kconfig"
268
269 config HAVE_ARCH_EARLY_PFN_TO_NID
270         def_bool y
271
272 config HAVE_DEC_LOCK
273         bool
274         depends on SMP
275         default y
276
277 config NR_CPUS
278         int "Maximum number of CPUs (2-256)"
279         range 2 256
280         depends on SMP
281         default "8"
282         help
283           This allows you to specify the maximum number of CPUs which this
284           kernel will support. Current maximum is 256 CPUs due to
285           APIC addressing limits. Less depending on the hardware.
286
287           This is purely to save memory - each supported CPU requires
288           memory in the static kernel configuration.
289
290 config HOTPLUG_CPU
291         bool "Support for hot-pluggable CPUs (EXPERIMENTAL)"
292         depends on SMP && HOTPLUG && EXPERIMENTAL
293         help
294                 Say Y here to experiment with turning CPUs off and on.  CPUs
295                 can be controlled through /sys/devices/system/cpu/cpu#.
296                 Say N if you want to disable CPU hotplug.
297
298
299 config HPET_TIMER
300         bool
301         default y
302         help
303           Use the IA-PC HPET (High Precision Event Timer) to manage
304           time in preference to the PIT and RTC, if a HPET is
305           present.  The HPET provides a stable time base on SMP
306           systems, unlike the TSC, but it is more expensive to access,
307           as it is off-chip.  You can find the HPET spec at
308           <http://www.intel.com/labs/platcomp/hpet/hpetspec.htm>.
309
310 config X86_PM_TIMER
311         bool "PM timer"
312         depends on ACPI
313         default y
314         help
315           Support the ACPI PM timer for time keeping. This is slow,
316           but is useful on some chipsets without HPET on systems with more
317           than one CPU. On a single processor or single socket multi core
318           system it is normally not required.
319           When the PM timer is active 64bit vsyscalls are disabled
320           and should not be enabled (/proc/sys/kernel/vsyscall64 should
321           not be changed).
322           The kernel selects the PM timer only as a last resort, so it is
323           useful to enable just in case.
324
325 config HPET_EMULATE_RTC
326         bool "Provide RTC interrupt"
327         depends on HPET_TIMER && RTC=y
328
329 config GART_IOMMU
330         bool "IOMMU support"
331         default y
332         depends on PCI
333         help
334           Support the IOMMU. Needed to run systems with more than 3GB of memory
335           properly with 32-bit PCI devices that do not support DAC (Double Address
336           Cycle). The IOMMU can be turned off at runtime with the iommu=off parameter.
337           Normally the kernel will take the right choice by itself.
338           This option includes a driver for the AMD Opteron/Athlon64 IOMMU
339           and a software emulation used on some other systems.
340           If unsure, say Y.
341
342 # need this always enabled with GART_IOMMU for the VIA workaround
343 config SWIOTLB
344        bool
345        depends on GART_IOMMU
346        default y
347
348 config DUMMY_IOMMU
349         bool
350         depends on !GART_IOMMU && !SWIOTLB
351         default y
352         help
353           Don't use IOMMU code. This will cause problems when you have more than 4GB
354           of memory and any 32-bit devices. Don't turn on unless you know what you
355           are doing.
356
357 config X86_MCE
358         bool "Machine check support" if EMBEDDED
359         default y
360         help
361            Include a machine check error handler to report hardware errors.
362            This version will require the mcelog utility to decode some
363            machine check error logs. See
364            ftp://ftp.x86-64.org/pub/linux/tools/mcelog
365
366 config X86_MCE_INTEL
367         bool "Intel MCE features"
368         depends on X86_MCE && X86_LOCAL_APIC
369         default y
370         help
371            Additional support for intel specific MCE features such as
372            the thermal monitor.
373
374 config PHYSICAL_START
375         hex "Physical address where the kernel is loaded" if EMBEDDED
376         default "0x100000"
377         help
378           This gives the physical address where the kernel is loaded.
379           Primarily used in the case of kexec on panic where the
380           fail safe kernel needs to run at a different address than
381           the panic-ed kernel.
382
383           Don't change this unless you know what you are doing.
384
385 config KEXEC
386         bool "kexec system call (EXPERIMENTAL)"
387         depends on EXPERIMENTAL
388         help
389           kexec is a system call that implements the ability to shutdown your
390           current kernel, and to start another kernel.  It is like a reboot
391           but it is indepedent of the system firmware.   And like a reboot
392           you can start any kernel with it, not just Linux.
393
394           The name comes from the similiarity to the exec system call.
395
396           It is an ongoing process to be certain the hardware in a machine
397           is properly shutdown, so do not be surprised if this code does not
398           initially work for you.  It may help to enable device hotplugging
399           support.  As of this writing the exact hardware interface is
400           strongly in flux, so no good recommendation can be made.
401
402 config SECCOMP
403         bool "Enable seccomp to safely compute untrusted bytecode"
404         depends on PROC_FS
405         default y
406         help
407           This kernel feature is useful for number crunching applications
408           that may need to compute untrusted bytecode during their
409           execution. By using pipes or other transports made available to
410           the process as file descriptors supporting the read/write
411           syscalls, it's possible to isolate those applications in
412           their own address space using seccomp. Once seccomp is
413           enabled via /proc/<pid>/seccomp, it cannot be disabled
414           and the task is only allowed to execute a few safe syscalls
415           defined by each seccomp mode.
416
417           If unsure, say Y. Only embedded should say N here.
418
419 source kernel/Kconfig.hz
420
421 endmenu
422
423 #
424 # Use the generic interrupt handling code in kernel/irq/:
425 #
426 config GENERIC_HARDIRQS
427         bool
428         default y
429
430 config GENERIC_IRQ_PROBE
431         bool
432         default y
433
434 # we have no ISA slots, but we do have ISA-style DMA.
435 config ISA_DMA_API
436         bool
437         default y
438
439 menu "Power management options"
440
441 source kernel/power/Kconfig
442
443 source "drivers/acpi/Kconfig"
444
445 source "arch/x86_64/kernel/cpufreq/Kconfig"
446
447 endmenu
448
449 menu "Bus options (PCI etc.)"
450
451 config PCI
452         bool "PCI support"
453
454 # x86-64 doesn't support PCI BIOS access from long mode so always go direct.
455 config PCI_DIRECT
456         bool
457         depends on PCI
458         default y
459
460 config PCI_MMCONFIG
461         bool "Support mmconfig PCI config space access"
462         depends on PCI && ACPI
463
464 config UNORDERED_IO
465        bool "Unordered IO mapping access"
466        depends on EXPERIMENTAL
467        help
468          Use unordered stores to access IO memory mappings in device drivers.
469          Still very experimental. When a driver works on IA64/ppc64/pa-risc it should
470          work with this option, but it makes the drivers behave differently
471          from i386. Requires that the driver writer used memory barriers
472          properly.
473
474 source "drivers/pci/pcie/Kconfig"
475
476 source "drivers/pci/Kconfig"
477
478 source "drivers/pcmcia/Kconfig"
479
480 source "drivers/pci/hotplug/Kconfig"
481
482 endmenu
483
484
485 menu "Executable file formats / Emulations"
486
487 source "fs/Kconfig.binfmt"
488
489 config IA32_EMULATION
490         bool "IA32 Emulation"
491         help
492           Include code to run 32-bit programs under a 64-bit kernel. You should likely
493           turn this on, unless you're 100% sure that you don't have any 32-bit programs
494           left.
495
496 config IA32_AOUT
497        bool "IA32 a.out support"
498        depends on IA32_EMULATION
499        help
500          Support old a.out binaries in the 32bit emulation.
501
502 config COMPAT
503         bool
504         depends on IA32_EMULATION
505         default y
506
507 config SYSVIPC_COMPAT
508         bool
509         depends on COMPAT && SYSVIPC
510         default y
511
512 config UID16
513         bool
514         depends on IA32_EMULATION
515         default y
516
517 endmenu
518
519 source "net/Kconfig"
520
521 source drivers/Kconfig
522
523 source "drivers/firmware/Kconfig"
524
525 source fs/Kconfig
526
527 source "arch/x86_64/oprofile/Kconfig"
528
529 source "arch/x86_64/Kconfig.debug"
530
531 source "security/Kconfig"
532
533 source "crypto/Kconfig"
534
535 source "lib/Kconfig"