blob: b4d9089a6a06736cf5c8b9fc2ac1955a8ad19360 [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
john stultz14899392007-02-16 01:28:20 -080027config GENERIC_TIME
28 bool
29 default y
30
john stultz7460ed22007-02-16 01:28:21 -080031config GENERIC_TIME_VSYSCALL
32 bool
33 default y
34
Thomas Gleixneraf74522ab72007-07-21 17:10:11 +020035config GENERIC_CMOS_UPDATE
36 bool
37 default y
38
Christoph Lameterfb0e7942006-09-25 23:31:13 -070039config ZONE_DMA32
40 bool
41 default y
42
Ingo Molnar1e950522006-07-03 00:25:01 -070043config LOCKDEP_SUPPORT
44 bool
45 default y
46
Ingo Molnar21b32bb2006-07-03 00:24:40 -070047config STACKTRACE_SUPPORT
48 bool
49 default y
50
Benjamin LaHaise52fdd082005-09-03 15:56:52 -070051config SEMAPHORE_SLEEPERS
52 bool
53 default y
54
Linus Torvalds1da177e2005-04-16 15:20:36 -070055config MMU
56 bool
57 default y
58
Christoph Lameter5ac6da62007-02-10 01:43:14 -080059config ZONE_DMA
60 bool
61 default y
62
Linus Torvalds1da177e2005-04-16 15:20:36 -070063config ISA
64 bool
65
66config SBUS
67 bool
68
69config RWSEM_GENERIC_SPINLOCK
70 bool
71 default y
72
73config RWSEM_XCHGADD_ALGORITHM
74 bool
75
Akinobu Mitaf33e2fb2006-03-26 01:39:42 -080076config GENERIC_HWEIGHT
77 bool
78 default y
79
Linus Torvalds1da177e2005-04-16 15:20:36 -070080config GENERIC_CALIBRATE_DELAY
81 bool
82 default y
83
84config X86_CMPXCHG
85 bool
86 default y
87
88config EARLY_PRINTK
89 bool
90 default y
91
92config GENERIC_ISA_DMA
93 bool
94 default y
95
96config GENERIC_IOMAP
97 bool
98 default y
99
viro@ZenIV.linux.org.uka08b6b72005-09-06 01:48:42 +0100100config ARCH_MAY_HAVE_PC_FDC
101 bool
102 default y
103
Mel Gorman5cb248a2006-09-27 01:49:52 -0700104config ARCH_POPULATES_NODE_MAP
105 def_bool y
106
Andi Kleene9928672006-01-11 22:43:33 +0100107config DMI
108 bool
109 default y
110
Al Viroe65e1fc2006-09-12 03:04:40 -0400111config AUDIT_ARCH
112 bool
113 default y
114
Jeremy Fitzhardingec31a0bf2006-12-08 02:36:22 -0800115config GENERIC_BUG
116 bool
117 default y
118 depends on BUG
119
David Howellsf0d1b0b2006-12-08 02:37:49 -0800120config ARCH_HAS_ILOG2_U32
121 bool
122 default n
123
124config ARCH_HAS_ILOG2_U64
125 bool
126 default n
127
Linus Torvalds1da177e2005-04-16 15:20:36 -0700128source "init/Kconfig"
129
130
131menu "Processor type and features"
132
133choice
Ravikiran G Thirumalai79f12612006-01-11 22:46:18 +0100134 prompt "Subarchitecture Type"
135 default X86_PC
136
137config X86_PC
138 bool "PC-compatible"
139 help
140 Choose this option if your computer is a standard PC or compatible.
141
142config X86_VSMP
143 bool "Support for ScaleMP vSMP"
Andi Kleenf157cbb2006-09-26 10:52:41 +0200144 depends on PCI
Ravikiran G Thirumalai79f12612006-01-11 22:46:18 +0100145 help
146 Support for ScaleMP vSMP systems. Say 'Y' here if this kernel is
147 supposed to run on these EM64T-based machines. Only choose this option
148 if you have one of these machines.
149
150endchoice
151
152choice
Linus Torvalds1da177e2005-04-16 15:20:36 -0700153 prompt "Processor family"
Andi Kleen71381992006-12-07 02:14:09 +0100154 default GENERIC_CPU
Linus Torvalds1da177e2005-04-16 15:20:36 -0700155
156config MK8
157 bool "AMD-Opteron/Athlon64"
158 help
159 Optimize for AMD Opteron/Athlon64/Hammer/K8 CPUs.
160
161config MPSC
Andi Kleen71381992006-12-07 02:14:09 +0100162 bool "Intel P4 / older Netburst based Xeon"
Linus Torvalds1da177e2005-04-16 15:20:36 -0700163 help
Andi Kleen71381992006-12-07 02:14:09 +0100164 Optimize for Intel Pentium 4 and older Nocona/Dempsey Xeon CPUs
165 with Intel Extended Memory 64 Technology(EM64T). For details see
Linus Torvalds1da177e2005-04-16 15:20:36 -0700166 <http://www.intel.com/technology/64bitextensions/>.
Nicolas Kaiseredf8dd32007-02-13 13:26:23 +0100167 Note that the latest Xeons (Xeon 51xx and 53xx) are not based on the
168 Netburst core and shouldn't use this option. You can distinguish them
Andi Kleen71381992006-12-07 02:14:09 +0100169 using the cpu family field
Nicolas Kaiseredf8dd32007-02-13 13:26:23 +0100170 in /proc/cpuinfo. Family 15 is an older Xeon, Family 6 a newer one
171 (this rule only applies to systems that support EM64T)
Andi Kleen71381992006-12-07 02:14:09 +0100172
173config MCORE2
174 bool "Intel Core2 / newer Xeon"
175 help
176 Optimize for Intel Core2 and newer Xeons (51xx)
Nicolas Kaiseredf8dd32007-02-13 13:26:23 +0100177 You can distinguish the newer Xeons from the older ones using
178 the cpu family field in /proc/cpuinfo. 15 is an older Xeon
Andi Kleen71381992006-12-07 02:14:09 +0100179 (use CONFIG_MPSC then), 6 is a newer one. This rule only
180 applies to CPUs that support EM64T.
Linus Torvalds1da177e2005-04-16 15:20:36 -0700181
182config GENERIC_CPU
183 bool "Generic-x86-64"
184 help
185 Generic x86-64 CPU.
Andi Kleen71381992006-12-07 02:14:09 +0100186 Run equally well on all x86-64 CPUs.
Linus Torvalds1da177e2005-04-16 15:20:36 -0700187
188endchoice
189
190#
191# Define implied options from the CPU selection here
192#
193config X86_L1_CACHE_BYTES
194 int
195 default "128" if GENERIC_CPU || MPSC
Andi Kleen71381992006-12-07 02:14:09 +0100196 default "64" if MK8 || MCORE2
Linus Torvalds1da177e2005-04-16 15:20:36 -0700197
198config X86_L1_CACHE_SHIFT
199 int
200 default "7" if GENERIC_CPU || MPSC
Andi Kleen71381992006-12-07 02:14:09 +0100201 default "6" if MK8 || MCORE2
Linus Torvalds1da177e2005-04-16 15:20:36 -0700202
Ravikiran G Thirumalaie405d062006-04-07 19:50:09 +0200203config X86_INTERNODE_CACHE_BYTES
204 int
205 default "4096" if X86_VSMP
206 default X86_L1_CACHE_BYTES if !X86_VSMP
207
Linus Torvalds1da177e2005-04-16 15:20:36 -0700208config X86_TSC
209 bool
210 default y
211
212config X86_GOOD_APIC
213 bool
214 default y
215
216config MICROCODE
217 tristate "/dev/cpu/microcode - Intel CPU microcode support"
Shaohua Li9a4b9ef2006-09-27 01:50:53 -0700218 select FW_LOADER
Linus Torvalds1da177e2005-04-16 15:20:36 -0700219 ---help---
220 If you say Y here the 'File systems' section, you will be
221 able to update the microcode on Intel processors. You will
222 obviously need the actual microcode binary data itself which is
223 not shipped with the Linux kernel.
224
225 For latest news and information on obtaining all the required
226 ingredients for this driver, check:
227 <http://www.urbanmyth.org/microcode/>.
228
229 To compile this driver as a module, choose M here: the
230 module will be called microcode.
231 If you use modprobe or kmod you may also want to add the line
232 'alias char-major-10-184 microcode' to your /etc/modules.conf file.
233
Shaohua Li9a3110b2006-09-27 01:50:51 -0700234config MICROCODE_OLD_INTERFACE
235 bool
236 depends on MICROCODE
237 default y
238
Linus Torvalds1da177e2005-04-16 15:20:36 -0700239config X86_MSR
240 tristate "/dev/cpu/*/msr - Model-specific register support"
241 help
242 This device gives privileged processes access to the x86
243 Model-Specific Registers (MSRs). It is a character device with
244 major 202 and minors 0 to 31 for /dev/cpu/0/msr to /dev/cpu/31/msr.
245 MSR accesses are directed to a specific CPU on multi-processor
246 systems.
247
248config X86_CPUID
249 tristate "/dev/cpu/*/cpuid - CPU information support"
250 help
251 This device gives processes access to the x86 CPUID instruction to
252 be executed on a specific processor. It is a character device
253 with major 203 and minors 0 to 31 for /dev/cpu/0/cpuid to
254 /dev/cpu/31/cpuid.
255
Linus Torvalds1da177e2005-04-16 15:20:36 -0700256config X86_HT
257 bool
258 depends on SMP && !MK8
259 default y
260
261config MATH_EMULATION
262 bool
263
264config MCA
265 bool
266
267config EISA
268 bool
269
270config X86_IO_APIC
271 bool
272 default y
273
274config X86_LOCAL_APIC
275 bool
276 default y
277
278config MTRR
279 bool "MTRR (Memory Type Range Register) support"
280 ---help---
281 On Intel P6 family processors (Pentium Pro, Pentium II and later)
282 the Memory Type Range Registers (MTRRs) may be used to control
283 processor access to memory ranges. This is most useful if you have
284 a video (VGA) card on a PCI or AGP bus. Enabling write-combining
285 allows bus write transfers to be combined into a larger transfer
286 before bursting over the PCI/AGP bus. This can increase performance
287 of image write operations 2.5 times or more. Saying Y here creates a
288 /proc/mtrr file which may be used to manipulate your processor's
289 MTRRs. Typically the X server should use this.
290
291 This code has a reasonably generic interface so that similar
292 control registers on other processors can be easily supported
293 as well.
294
295 Saying Y here also fixes a problem with buggy SMP BIOSes which only
296 set the MTRRs for the boot CPU and not for the secondary CPUs. This
297 can lead to all sorts of problems, so it's good to say Y here.
298
299 Just say Y here, all x86-64 machines support MTRRs.
300
301 See <file:Documentation/mtrr.txt> for more information.
302
303config SMP
304 bool "Symmetric multi-processing support"
305 ---help---
306 This enables support for systems with more than one CPU. If you have
307 a system with only one CPU, like most personal computers, say N. If
308 you have a system with more than one CPU, say Y.
309
310 If you say N here, the kernel will run on single and multiprocessor
311 machines, but will use only one CPU of a multiprocessor machine. If
312 you say Y here, the kernel will run on many, but not all,
313 singleprocessor machines. On a singleprocessor machine, the kernel
314 will run faster if you say N here.
315
316 If you don't know what to do here, say N.
317
Linus Torvalds1da177e2005-04-16 15:20:36 -0700318config SCHED_SMT
319 bool "SMT (Hyperthreading) scheduler support"
320 depends on SMP
321 default n
322 help
323 SMT scheduler support improves the CPU scheduler's decision making
324 when dealing with Intel Pentium 4 chips with HyperThreading at a
325 cost of slightly increased overhead in some places. If unsure say
326 N here.
327
Siddha, Suresh B1e9f28f2006-03-27 01:15:22 -0800328config SCHED_MC
329 bool "Multi-core scheduler support"
330 depends on SMP
331 default y
332 help
333 Multi-core scheduler support improves the CPU scheduler's decision
334 making when dealing with multi-core CPU chips at a cost of slightly
335 increased overhead in some places. If unsure say N here.
336
Ingo Molnarcc19ca82005-06-25 14:57:36 -0700337source "kernel/Kconfig.preempt"
338
Ravikiran G Thirumalaib0bd35e2005-11-05 17:25:54 +0100339config NUMA
340 bool "Non Uniform Memory Access (NUMA) Support"
Linus Torvalds1da177e2005-04-16 15:20:36 -0700341 depends on SMP
342 help
Ravikiran G Thirumalaib0bd35e2005-11-05 17:25:54 +0100343 Enable NUMA (Non Uniform Memory Access) support. The kernel
344 will try to allocate memory used by a CPU on the local memory
345 controller of the CPU and add some more NUMA awareness to the kernel.
346 This code is recommended on all multiprocessor Opteron systems.
347 If the system is EM64T, you should say N unless your system is EM64T
348 NUMA.
349
350config K8_NUMA
351 bool "Old style AMD Opteron NUMA detection"
Andi Kleenf157cbb2006-09-26 10:52:41 +0200352 depends on NUMA && PCI
Ravikiran G Thirumalaib0bd35e2005-11-05 17:25:54 +0100353 default y
354 help
355 Enable K8 NUMA node topology detection. You should say Y here if
356 you have a multi processor AMD K8 system. This uses an old
Matt LaPlante44c09202006-10-03 22:34:14 +0200357 method to read the NUMA configuration directly from the builtin
Ravikiran G Thirumalaib0bd35e2005-11-05 17:25:54 +0100358 Northbridge of Opteron. It is recommended to use X86_64_ACPI_NUMA
359 instead, which also takes priority if both are compiled in.
360
Yasunori Gotoc80d79d2006-04-10 22:53:53 -0700361config NODES_SHIFT
362 int
363 default "6"
364 depends on NEED_MULTIPLE_NODES
365
Ravikiran G Thirumalaib0bd35e2005-11-05 17:25:54 +0100366# Dummy CONFIG option to select ACPI_NUMA from drivers/acpi/Kconfig.
367
368config X86_64_ACPI_NUMA
369 bool "ACPI NUMA detection"
370 depends on NUMA
371 select ACPI
Adrian Bunk13001242006-03-28 17:04:00 -0500372 select PCI
Ravikiran G Thirumalaib0bd35e2005-11-05 17:25:54 +0100373 select ACPI_NUMA
374 default y
375 help
376 Enable ACPI SRAT based node topology detection.
Linus Torvalds1da177e2005-04-16 15:20:36 -0700377
378config NUMA_EMU
Ravikiran G Thirumalaib0bd35e2005-11-05 17:25:54 +0100379 bool "NUMA emulation"
380 depends on NUMA
Linus Torvalds1da177e2005-04-16 15:20:36 -0700381 help
382 Enable NUMA emulation. A flat machine will be split
383 into virtual nodes when booted with "numa=fake=N", where N is the
384 number of nodes. This is only useful for debugging.
385
Dave Hansen3f22ab22005-06-23 00:07:43 -0700386config ARCH_DISCONTIGMEM_ENABLE
Linus Torvalds1da177e2005-04-16 15:20:36 -0700387 bool
388 depends on NUMA
389 default y
390
Matt Tolentino1035faf2005-06-23 00:08:05 -0700391config ARCH_DISCONTIGMEM_DEFAULT
392 def_bool y
393 depends on NUMA
394
395config ARCH_SPARSEMEM_ENABLE
396 def_bool y
Matt Tolentino44df75e2006-01-17 07:03:41 +0100397 depends on (NUMA || EXPERIMENTAL)
398
399config ARCH_MEMORY_PROBE
400 def_bool y
401 depends on MEMORY_HOTPLUG
Matt Tolentino1035faf2005-06-23 00:08:05 -0700402
403config ARCH_FLATMEM_ENABLE
404 def_bool y
405 depends on !NUMA
406
Dave Hansen3f22ab22005-06-23 00:07:43 -0700407source "mm/Kconfig"
408
Keith Manntheyec69acb2006-09-30 23:27:05 -0700409config MEMORY_HOTPLUG_RESERVE
410 def_bool y
411 depends on (MEMORY_HOTPLUG && DISCONTIGMEM)
412
Matt Tolentino1035faf2005-06-23 00:08:05 -0700413config HAVE_ARCH_EARLY_PFN_TO_NID
414 def_bool y
Matt Tolentino44df75e2006-01-17 07:03:41 +0100415 depends on NUMA
Matt Tolentino1035faf2005-06-23 00:08:05 -0700416
KAMEZAWA Hiroyukidc8ecb42006-03-27 01:15:34 -0800417config OUT_OF_LINE_PFN_TO_PAGE
418 def_bool y
419 depends on DISCONTIGMEM
420
Linus Torvalds1da177e2005-04-16 15:20:36 -0700421config NR_CPUS
Andi Kleend9c93812007-05-02 19:27:05 +0200422 int "Maximum number of CPUs (2-255)"
Andi Kleen01d4bed2006-03-25 16:30:58 +0100423 range 2 255
Linus Torvalds1da177e2005-04-16 15:20:36 -0700424 depends on SMP
425 default "8"
426 help
427 This allows you to specify the maximum number of CPUs which this
Andi Kleend9c93812007-05-02 19:27:05 +0200428 kernel will support. Current maximum is 255 CPUs due to
Linus Torvalds1da177e2005-04-16 15:20:36 -0700429 APIC addressing limits. Less depending on the hardware.
430
431 This is purely to save memory - each supported CPU requires
432 memory in the static kernel configuration.
433
H. Peter Anvin77e1dd62007-07-11 12:18:36 -0700434config PHYSICAL_ALIGN
435 hex
436 default "0x200000"
437
Ashok Raj76e4f662005-06-25 14:55:00 -0700438config HOTPLUG_CPU
Stefan Richter1dbf37e2007-05-23 13:58:08 -0700439 bool "Support for suspend on SMP and hot-pluggable CPUs (EXPERIMENTAL)"
Ashok Raj76e4f662005-06-25 14:55:00 -0700440 depends on SMP && HOTPLUG && EXPERIMENTAL
441 help
442 Say Y here to experiment with turning CPUs off and on. CPUs
443 can be controlled through /sys/devices/system/cpu/cpu#.
Stefan Richter1dbf37e2007-05-23 13:58:08 -0700444 This is also required for suspend/hibernation on SMP systems.
445
446 Say N if you want to disable CPU hotplug and don't need to
447 suspend.
Ashok Raj76e4f662005-06-25 14:55:00 -0700448
Yasunori Gotocc576372006-06-29 02:24:27 -0700449config ARCH_ENABLE_MEMORY_HOTPLUG
450 def_bool y
Ashok Raj76e4f662005-06-25 14:55:00 -0700451
Linus Torvalds1da177e2005-04-16 15:20:36 -0700452config HPET_TIMER
453 bool
454 default y
455 help
456 Use the IA-PC HPET (High Precision Event Timer) to manage
457 time in preference to the PIT and RTC, if a HPET is
458 present. The HPET provides a stable time base on SMP
459 systems, unlike the TSC, but it is more expensive to access,
460 as it is off-chip. You can find the HPET spec at
Randy Dunlap89d7cbf2005-09-21 09:55:44 -0700461 <http://www.intel.com/hardwaredesign/hpetspec.htm>.
Linus Torvalds1da177e2005-04-16 15:20:36 -0700462
463config HPET_EMULATE_RTC
464 bool "Provide RTC interrupt"
465 depends on HPET_TIMER && RTC=y
466
Andi Kleena813ce42006-06-26 13:57:22 +0200467# Mark as embedded because too many people got it wrong.
468# The code disables itself when not needed.
469config IOMMU
470 bool "IOMMU support" if EMBEDDED
Andi Kleena54649b2005-07-28 21:15:32 -0700471 default y
Muli Ben-Yehuda17a941d2006-01-11 22:44:42 +0100472 select SWIOTLB
Roman Zippeldcc1a662006-06-22 14:47:35 -0700473 select AGP
Linus Torvalds1da177e2005-04-16 15:20:36 -0700474 depends on PCI
475 help
Andi Kleena813ce42006-06-26 13:57:22 +0200476 Support for full DMA access of devices with 32bit memory access only
477 on systems with more than 3GB. This is usually needed for USB,
478 sound, many IDE/SATA chipsets and some other devices.
479 Provides a driver for the AMD Athlon64/Opteron/Turion/Sempron GART
Karsten Weiss55588702007-02-13 13:26:21 +0100480 based hardware IOMMU and a software bounce buffer based IOMMU used
481 on Intel systems and as fallback.
Andi Kleena813ce42006-06-26 13:57:22 +0200482 The code is only active when needed (enough memory and limited
483 device) unless CONFIG_IOMMU_DEBUG or iommu=force is specified
484 too.
Linus Torvalds1da177e2005-04-16 15:20:36 -0700485
Jon Masone4650582006-06-26 13:58:14 +0200486config CALGARY_IOMMU
487 bool "IBM Calgary IOMMU support"
Jon Masone4650582006-06-26 13:58:14 +0200488 select SWIOTLB
489 depends on PCI && EXPERIMENTAL
490 help
491 Support for hardware IOMMUs in IBM's xSeries x366 and x460
492 systems. Needed to run systems with more than 3GB of memory
493 properly with 32-bit PCI devices that do not support DAC
494 (Double Address Cycle). Calgary also supports bus level
495 isolation, where all DMAs pass through the IOMMU. This
496 prevents them from going anywhere except their intended
497 destination. This catches hard-to-find kernel bugs and
498 mis-behaving drivers and devices that do not use the DMA-API
499 properly to set up their DMA buffers. The IOMMU can be
500 turned off at boot time with the iommu=off parameter.
501 Normally the kernel will make the right choice by itself.
502 If unsure, say Y.
503
Muli Ben-Yehudabff65472006-12-07 02:14:07 +0100504config CALGARY_IOMMU_ENABLED_BY_DEFAULT
505 bool "Should Calgary be enabled by default?"
Linus Torvalds36f696c2007-01-01 10:55:45 -0800506 default y
Muli Ben-Yehudabff65472006-12-07 02:14:07 +0100507 depends on CALGARY_IOMMU
508 help
Linus Torvalds36f696c2007-01-01 10:55:45 -0800509 Should Calgary be enabled by default? if you choose 'y', Calgary
Muli Ben-Yehudabff65472006-12-07 02:14:07 +0100510 will be used (if it exists). If you choose 'n', Calgary will not be
511 used even if it exists. If you choose 'n' and would like to use
512 Calgary anyway, pass 'iommu=calgary' on the kernel command line.
Linus Torvalds36f696c2007-01-01 10:55:45 -0800513 If unsure, say Y.
Muli Ben-Yehudabff65472006-12-07 02:14:07 +0100514
Andi Kleena813ce42006-06-26 13:57:22 +0200515# need this always selected by IOMMU for the VIA workaround
Linus Torvalds1da177e2005-04-16 15:20:36 -0700516config SWIOTLB
Linus Torvalds1da177e2005-04-16 15:20:36 -0700517 bool
Karsten Weiss55588702007-02-13 13:26:21 +0100518 help
519 Support for software bounce buffers used on x86-64 systems
520 which don't have a hardware IOMMU (e.g. the current generation
521 of Intel's x86-64 CPUs). Using this PCI devices which can only
522 access 32-bits of memory can be used on systems with more than
523 3 GB of memory. If unsure, say Y.
Linus Torvalds1da177e2005-04-16 15:20:36 -0700524
525config X86_MCE
526 bool "Machine check support" if EMBEDDED
527 default y
528 help
529 Include a machine check error handler to report hardware errors.
530 This version will require the mcelog utility to decode some
531 machine check error logs. See
532 ftp://ftp.x86-64.org/pub/linux/tools/mcelog
533
534config X86_MCE_INTEL
535 bool "Intel MCE features"
536 depends on X86_MCE && X86_LOCAL_APIC
537 default y
538 help
539 Additional support for intel specific MCE features such as
540 the thermal monitor.
541
Jacob Shin89b831e2005-11-05 17:25:53 +0100542config X86_MCE_AMD
543 bool "AMD MCE features"
544 depends on X86_MCE && X86_LOCAL_APIC
545 default y
546 help
547 Additional support for AMD specific MCE features such as
548 the DRAM Error Threshold.
549
Eric W. Biederman5234f5e2005-06-25 14:58:02 -0700550config KEXEC
Eric W. Biederman1c9c0a62006-09-26 10:52:40 +0200551 bool "kexec system call"
Eric W. Biederman5234f5e2005-06-25 14:58:02 -0700552 help
553 kexec is a system call that implements the ability to shutdown your
554 current kernel, and to start another kernel. It is like a reboot
Matt LaPlante1f1332f2006-06-29 01:32:47 -0400555 but it is independent of the system firmware. And like a reboot
Eric W. Biederman5234f5e2005-06-25 14:58:02 -0700556 you can start any kernel with it, not just Linux.
557
Matt LaPlante1f1332f2006-06-29 01:32:47 -0400558 The name comes from the similarity to the exec system call.
Eric W. Biederman5234f5e2005-06-25 14:58:02 -0700559
560 It is an ongoing process to be certain the hardware in a machine
561 is properly shutdown, so do not be surprised if this code does not
562 initially work for you. It may help to enable device hotplugging
563 support. As of this writing the exact hardware interface is
564 strongly in flux, so no good recommendation can be made.
565
Vivek Goyalec9ce0d2006-01-09 20:51:49 -0800566config CRASH_DUMP
567 bool "kernel crash dumps (EXPERIMENTAL)"
Vivek Goyalec9ce0d2006-01-09 20:51:49 -0800568 depends on EXPERIMENTAL
569 help
Andi Kleen1edf7772006-09-26 10:52:35 +0200570 Generate crash dump after being started by kexec.
571 This should be normally only set in special crash dump kernels
572 which are loaded in the main kernel with kexec-tools into
573 a specially reserved region and then later executed after
574 a crash by kdump/kexec. The crash dump kernel must be compiled
575 to a memory address not used by the main kernel or BIOS using
576 PHYSICAL_START.
577 For more details see Documentation/kdump/kdump.txt
Vivek Goyalec9ce0d2006-01-09 20:51:49 -0800578
Vivek Goyal1ab60e02007-05-02 19:27:07 +0200579config RELOCATABLE
580 bool "Build a relocatable kernel(EXPERIMENTAL)"
581 depends on EXPERIMENTAL
582 help
583 Builds a relocatable kernel. This enables loading and running
584 a kernel binary from a different physical address than it has
585 been compiled for.
586
587 One use is for the kexec on panic case where the recovery kernel
588 must live at a different physical address than the primary
589 kernel.
590
591 Note: If CONFIG_RELOCATABLE=y, then kernel run from the address
592 it has been loaded at and compile time physical address
593 (CONFIG_PHYSICAL_START) is ignored.
594
Maneesh Soni05970d42006-01-09 20:51:52 -0800595config PHYSICAL_START
596 hex "Physical address where the kernel is loaded" if (EMBEDDED || CRASH_DUMP)
Andi Kleen04103602006-03-25 16:30:13 +0100597 default "0x200000"
Maneesh Soni05970d42006-01-09 20:51:52 -0800598 help
Vivek Goyal1ab60e02007-05-02 19:27:07 +0200599 This gives the physical address where the kernel is loaded. It
600 should be aligned to 2MB boundary.
601
602 If kernel is a not relocatable (CONFIG_RELOCATABLE=n) then
603 bzImage will decompress itself to above physical address and
604 run from there. Otherwise, bzImage will run from the address where
605 it has been loaded by the boot loader and will ignore above physical
606 address.
607
608 In normal kdump cases one does not have to set/change this option
609 as now bzImage can be compiled as a completely relocatable image
610 (CONFIG_RELOCATABLE=y) and be used to load and run from a different
611 address. This option is mainly useful for the folks who don't want
612 to use a bzImage for capturing the crash dump and want to use a
613 vmlinux instead.
614
615 So if you are using bzImage for capturing the crash dump, leave
616 the value here unchanged to 0x200000 and set CONFIG_RELOCATABLE=y.
617 Otherwise if you plan to use vmlinux for capturing the crash dump
618 change this value to start of the reserved region (Typically 16MB
619 0x1000000). In other words, it can be set based on the "X" value as
Maneesh Soni05970d42006-01-09 20:51:52 -0800620 specified in the "crashkernel=YM@XM" command line boot parameter
621 passed to the panic-ed kernel. Typically this parameter is set as
622 crashkernel=64M@16M. Please take a look at
623 Documentation/kdump/kdump.txt for more details about crash dumps.
624
Vivek Goyal1ab60e02007-05-02 19:27:07 +0200625 Usage of bzImage for capturing the crash dump is advantageous as
626 one does not have to build two kernels. Same kernel can be used
627 as production kernel and capture kernel.
628
Maneesh Soni05970d42006-01-09 20:51:52 -0800629 Don't change this unless you know what you are doing.
630
Linus Torvalds1da177e2005-04-16 15:20:36 -0700631config SECCOMP
632 bool "Enable seccomp to safely compute untrusted bytecode"
633 depends on PROC_FS
634 default y
635 help
636 This kernel feature is useful for number crunching applications
637 that may need to compute untrusted bytecode during their
638 execution. By using pipes or other transports made available to
639 the process as file descriptors supporting the read/write
640 syscalls, it's possible to isolate those applications in
641 their own address space using seccomp. Once seccomp is
642 enabled via /proc/<pid>/seccomp, it cannot be disabled
643 and the task is only allowed to execute a few safe syscalls
644 defined by each seccomp mode.
645
646 If unsure, say Y. Only embedded should say N here.
647
Arjan van de Venb62a5c72006-09-26 10:52:38 +0200648config CC_STACKPROTECTOR
Brice Gogline45116b2006-12-11 20:14:15 +0100649 bool "Enable -fstack-protector buffer overflow detection (EXPERIMENTAL)"
Arjan van de Venb62a5c72006-09-26 10:52:38 +0200650 depends on EXPERIMENTAL
651 help
652 This option turns on the -fstack-protector GCC feature. This
653 feature puts, at the beginning of critical functions, a canary
654 value on the stack just before the return address, and validates
655 the value just before actually returning. Stack based buffer
656 overflows (that need to overwrite this return address) now also
657 overwrite the canary, which gets detected and the attack is then
658 neutralized via a kernel panic.
659
660 This feature requires gcc version 4.2 or above, or a distribution
661 gcc with the feature backported. Older versions are automatically
662 detected and for those versions, this configuration option is ignored.
663
664config CC_STACKPROTECTOR_ALL
665 bool "Use stack-protector for all functions"
666 depends on CC_STACKPROTECTOR
667 help
668 Normally, GCC only inserts the canary value protection for
669 functions that use large-ish on-stack buffers. By enabling
670 this option, GCC will be asked to do this for ALL functions.
671
Christoph Lameter59121002005-06-23 00:08:25 -0700672source kernel/Kconfig.hz
673
Andi Kleena32073b2006-06-26 13:56:40 +0200674config K8_NB
675 def_bool y
Andi Kleena813ce42006-06-26 13:57:22 +0200676 depends on AGP_AMD64 || IOMMU || (PCI && NUMA)
Andi Kleena32073b2006-06-26 13:56:40 +0200677
Linus Torvalds1da177e2005-04-16 15:20:36 -0700678endmenu
679
680#
681# Use the generic interrupt handling code in kernel/irq/:
682#
683config GENERIC_HARDIRQS
684 bool
685 default y
686
687config GENERIC_IRQ_PROBE
688 bool
689 default y
690
Al Viro5cae8412005-05-04 05:39:22 +0100691# we have no ISA slots, but we do have ISA-style DMA.
692config ISA_DMA_API
693 bool
694 default y
695
Ashok Raj54d5d422005-09-06 15:16:15 -0700696config GENERIC_PENDING_IRQ
697 bool
698 depends on GENERIC_HARDIRQS && SMP
699 default y
700
Linus Torvalds1da177e2005-04-16 15:20:36 -0700701menu "Power management options"
702
703source kernel/power/Kconfig
704
705source "drivers/acpi/Kconfig"
706
707source "arch/x86_64/kernel/cpufreq/Kconfig"
708
709endmenu
710
711menu "Bus options (PCI etc.)"
712
713config PCI
714 bool "PCI support"
Dan Williamsf282b972007-04-18 18:46:20 +1000715 select ARCH_SUPPORTS_MSI if (X86_LOCAL_APIC && X86_IO_APIC)
Linus Torvalds1da177e2005-04-16 15:20:36 -0700716
717# x86-64 doesn't support PCI BIOS access from long mode so always go direct.
718config PCI_DIRECT
719 bool
720 depends on PCI
721 default y
722
723config PCI_MMCONFIG
724 bool "Support mmconfig PCI config space access"
Alexander Nyberg8aadff72005-05-27 12:48:50 +0200725 depends on PCI && ACPI
Linus Torvalds1da177e2005-04-16 15:20:36 -0700726
Linus Torvalds1da177e2005-04-16 15:20:36 -0700727source "drivers/pci/pcie/Kconfig"
728
729source "drivers/pci/Kconfig"
730
731source "drivers/pcmcia/Kconfig"
732
733source "drivers/pci/hotplug/Kconfig"
734
735endmenu
736
737
738menu "Executable file formats / Emulations"
739
740source "fs/Kconfig.binfmt"
741
742config IA32_EMULATION
743 bool "IA32 Emulation"
744 help
745 Include code to run 32-bit programs under a 64-bit kernel. You should likely
746 turn this on, unless you're 100% sure that you don't have any 32-bit programs
747 left.
748
749config IA32_AOUT
Andi Kleenea0be472005-11-05 17:25:54 +0100750 tristate "IA32 a.out support"
Linus Torvalds1da177e2005-04-16 15:20:36 -0700751 depends on IA32_EMULATION
752 help
753 Support old a.out binaries in the 32bit emulation.
754
755config COMPAT
756 bool
757 depends on IA32_EMULATION
758 default y
759
Tony Luck7a6c8132007-07-27 15:35:43 -0700760config COMPAT_FOR_U64_ALIGNMENT
761 def_bool COMPAT
762
Linus Torvalds1da177e2005-04-16 15:20:36 -0700763config SYSVIPC_COMPAT
764 bool
765 depends on COMPAT && SYSVIPC
766 default y
767
Linus Torvalds1da177e2005-04-16 15:20:36 -0700768endmenu
769
Sam Ravnborgd5950b42005-07-11 21:03:49 -0700770source "net/Kconfig"
771
Linus Torvalds1da177e2005-04-16 15:20:36 -0700772source drivers/Kconfig
773
774source "drivers/firmware/Kconfig"
775
776source fs/Kconfig
777
Prasanna S Panchamukhicd6b0762005-11-07 00:59:14 -0800778menu "Instrumentation Support"
779 depends on EXPERIMENTAL
780
Linus Torvalds1da177e2005-04-16 15:20:36 -0700781source "arch/x86_64/oprofile/Kconfig"
782
Prasanna S Panchamukhicd6b0762005-11-07 00:59:14 -0800783config KPROBES
Ananth N Mavinakayanahalli87a7def2007-07-17 04:03:54 -0700784 bool "Kprobes"
785 depends on KALLSYMS && MODULES
Prasanna S Panchamukhicd6b0762005-11-07 00:59:14 -0800786 help
787 Kprobes allows you to trap at almost any kernel address and
788 execute a callback function. register_kprobe() establishes
789 a probepoint and specifies the callback. Kprobes is useful
790 for kernel debugging, non-intrusive instrumentation and testing.
791 If in doubt, say "N".
792endmenu
793
Linus Torvalds1da177e2005-04-16 15:20:36 -0700794source "arch/x86_64/Kconfig.debug"
795
796source "security/Kconfig"
797
798source "crypto/Kconfig"
799
800source "lib/Kconfig"