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