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