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