blob: d4275537b25b6e8bc814f19215278da2633420f3 [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
Christoph Lameterfb0e7942006-09-25 23:31:13 -070027config ZONE_DMA32
28 bool
29 default y
30
Ingo Molnar1e950522006-07-03 00:25:01 -070031config LOCKDEP_SUPPORT
32 bool
33 default y
34
Ingo Molnar21b32bb2006-07-03 00:24:40 -070035config STACKTRACE_SUPPORT
36 bool
37 default y
38
Benjamin LaHaise52fdd082005-09-03 15:56:52 -070039config SEMAPHORE_SLEEPERS
40 bool
41 default y
42
Linus Torvalds1da177e2005-04-16 15:20:36 -070043config MMU
44 bool
45 default y
46
47config ISA
48 bool
49
50config SBUS
51 bool
52
53config RWSEM_GENERIC_SPINLOCK
54 bool
55 default y
56
57config RWSEM_XCHGADD_ALGORITHM
58 bool
59
Akinobu Mitaf33e2fb2006-03-26 01:39:42 -080060config GENERIC_HWEIGHT
61 bool
62 default y
63
Linus Torvalds1da177e2005-04-16 15:20:36 -070064config GENERIC_CALIBRATE_DELAY
65 bool
66 default y
67
68config X86_CMPXCHG
69 bool
70 default y
71
72config EARLY_PRINTK
73 bool
74 default y
75
76config GENERIC_ISA_DMA
77 bool
78 default y
79
80config GENERIC_IOMAP
81 bool
82 default y
83
viro@ZenIV.linux.org.uka08b6b72005-09-06 01:48:42 +010084config ARCH_MAY_HAVE_PC_FDC
85 bool
86 default y
87
Mel Gorman5cb248a2006-09-27 01:49:52 -070088config ARCH_POPULATES_NODE_MAP
89 def_bool y
90
Andi Kleene9928672006-01-11 22:43:33 +010091config DMI
92 bool
93 default y
94
Al Viroe65e1fc2006-09-12 03:04:40 -040095config AUDIT_ARCH
96 bool
97 default y
98
Jeremy Fitzhardingec31a0bf2006-12-08 02:36:22 -080099config GENERIC_BUG
100 bool
101 default y
102 depends on BUG
103
David Howellsf0d1b0b2006-12-08 02:37:49 -0800104config ARCH_HAS_ILOG2_U32
105 bool
106 default n
107
108config ARCH_HAS_ILOG2_U64
109 bool
110 default n
111
Linus Torvalds1da177e2005-04-16 15:20:36 -0700112source "init/Kconfig"
113
114
115menu "Processor type and features"
116
117choice
Ravikiran G Thirumalai79f12612006-01-11 22:46:18 +0100118 prompt "Subarchitecture Type"
119 default X86_PC
120
121config X86_PC
122 bool "PC-compatible"
123 help
124 Choose this option if your computer is a standard PC or compatible.
125
126config X86_VSMP
127 bool "Support for ScaleMP vSMP"
Andi Kleenf157cbb2006-09-26 10:52:41 +0200128 depends on PCI
Ravikiran G Thirumalai79f12612006-01-11 22:46:18 +0100129 help
130 Support for ScaleMP vSMP systems. Say 'Y' here if this kernel is
131 supposed to run on these EM64T-based machines. Only choose this option
132 if you have one of these machines.
133
134endchoice
135
136choice
Linus Torvalds1da177e2005-04-16 15:20:36 -0700137 prompt "Processor family"
Andi Kleen71381992006-12-07 02:14:09 +0100138 default GENERIC_CPU
Linus Torvalds1da177e2005-04-16 15:20:36 -0700139
140config MK8
141 bool "AMD-Opteron/Athlon64"
142 help
143 Optimize for AMD Opteron/Athlon64/Hammer/K8 CPUs.
144
145config MPSC
Andi Kleen71381992006-12-07 02:14:09 +0100146 bool "Intel P4 / older Netburst based Xeon"
Linus Torvalds1da177e2005-04-16 15:20:36 -0700147 help
Andi Kleen71381992006-12-07 02:14:09 +0100148 Optimize for Intel Pentium 4 and older Nocona/Dempsey Xeon CPUs
149 with Intel Extended Memory 64 Technology(EM64T). For details see
Linus Torvalds1da177e2005-04-16 15:20:36 -0700150 <http://www.intel.com/technology/64bitextensions/>.
Andi Kleen71381992006-12-07 02:14:09 +0100151 Note the the latest Xeons (Xeon 51xx and 53xx) are not based on the
152 Netburst core and shouldn't use this option. You can distingush them
153 using the cpu family field
154 in /proc/cpuinfo. Family 15 is a older Xeon, Family 6 a newer one
155 (this rule only applies to system that support EM64T)
156
157config MCORE2
158 bool "Intel Core2 / newer Xeon"
159 help
160 Optimize for Intel Core2 and newer Xeons (51xx)
161 You can distingush the newer Xeons from the older ones using
162 the cpu family field in /proc/cpuinfo. 15 is a older Xeon
163 (use CONFIG_MPSC then), 6 is a newer one. This rule only
164 applies to CPUs that support EM64T.
Linus Torvalds1da177e2005-04-16 15:20:36 -0700165
166config GENERIC_CPU
167 bool "Generic-x86-64"
168 help
169 Generic x86-64 CPU.
Andi Kleen71381992006-12-07 02:14:09 +0100170 Run equally well on all x86-64 CPUs.
Linus Torvalds1da177e2005-04-16 15:20:36 -0700171
172endchoice
173
174#
175# Define implied options from the CPU selection here
176#
177config X86_L1_CACHE_BYTES
178 int
179 default "128" if GENERIC_CPU || MPSC
Andi Kleen71381992006-12-07 02:14:09 +0100180 default "64" if MK8 || MCORE2
Linus Torvalds1da177e2005-04-16 15:20:36 -0700181
182config X86_L1_CACHE_SHIFT
183 int
184 default "7" if GENERIC_CPU || MPSC
Andi Kleen71381992006-12-07 02:14:09 +0100185 default "6" if MK8 || MCORE2
Linus Torvalds1da177e2005-04-16 15:20:36 -0700186
Ravikiran G Thirumalaie405d062006-04-07 19:50:09 +0200187config X86_INTERNODE_CACHE_BYTES
188 int
189 default "4096" if X86_VSMP
190 default X86_L1_CACHE_BYTES if !X86_VSMP
191
Linus Torvalds1da177e2005-04-16 15:20:36 -0700192config X86_TSC
193 bool
194 default y
195
196config X86_GOOD_APIC
197 bool
198 default y
199
200config MICROCODE
201 tristate "/dev/cpu/microcode - Intel CPU microcode support"
Shaohua Li9a4b9ef2006-09-27 01:50:53 -0700202 select FW_LOADER
Linus Torvalds1da177e2005-04-16 15:20:36 -0700203 ---help---
204 If you say Y here the 'File systems' section, you will be
205 able to update the microcode on Intel processors. You will
206 obviously need the actual microcode binary data itself which is
207 not shipped with the Linux kernel.
208
209 For latest news and information on obtaining all the required
210 ingredients for this driver, check:
211 <http://www.urbanmyth.org/microcode/>.
212
213 To compile this driver as a module, choose M here: the
214 module will be called microcode.
215 If you use modprobe or kmod you may also want to add the line
216 'alias char-major-10-184 microcode' to your /etc/modules.conf file.
217
Shaohua Li9a3110b2006-09-27 01:50:51 -0700218config MICROCODE_OLD_INTERFACE
219 bool
220 depends on MICROCODE
221 default y
222
Linus Torvalds1da177e2005-04-16 15:20:36 -0700223config X86_MSR
224 tristate "/dev/cpu/*/msr - Model-specific register support"
225 help
226 This device gives privileged processes access to the x86
227 Model-Specific Registers (MSRs). It is a character device with
228 major 202 and minors 0 to 31 for /dev/cpu/0/msr to /dev/cpu/31/msr.
229 MSR accesses are directed to a specific CPU on multi-processor
230 systems.
231
232config X86_CPUID
233 tristate "/dev/cpu/*/cpuid - CPU information support"
234 help
235 This device gives processes access to the x86 CPUID instruction to
236 be executed on a specific processor. It is a character device
237 with major 203 and minors 0 to 31 for /dev/cpu/0/cpuid to
238 /dev/cpu/31/cpuid.
239
Linus Torvalds1da177e2005-04-16 15:20:36 -0700240config X86_HT
241 bool
242 depends on SMP && !MK8
243 default y
244
245config MATH_EMULATION
246 bool
247
248config MCA
249 bool
250
251config EISA
252 bool
253
254config X86_IO_APIC
255 bool
256 default y
257
258config X86_LOCAL_APIC
259 bool
260 default y
261
262config MTRR
263 bool "MTRR (Memory Type Range Register) support"
264 ---help---
265 On Intel P6 family processors (Pentium Pro, Pentium II and later)
266 the Memory Type Range Registers (MTRRs) may be used to control
267 processor access to memory ranges. This is most useful if you have
268 a video (VGA) card on a PCI or AGP bus. Enabling write-combining
269 allows bus write transfers to be combined into a larger transfer
270 before bursting over the PCI/AGP bus. This can increase performance
271 of image write operations 2.5 times or more. Saying Y here creates a
272 /proc/mtrr file which may be used to manipulate your processor's
273 MTRRs. Typically the X server should use this.
274
275 This code has a reasonably generic interface so that similar
276 control registers on other processors can be easily supported
277 as well.
278
279 Saying Y here also fixes a problem with buggy SMP BIOSes which only
280 set the MTRRs for the boot CPU and not for the secondary CPUs. This
281 can lead to all sorts of problems, so it's good to say Y here.
282
283 Just say Y here, all x86-64 machines support MTRRs.
284
285 See <file:Documentation/mtrr.txt> for more information.
286
287config SMP
288 bool "Symmetric multi-processing support"
289 ---help---
290 This enables support for systems with more than one CPU. If you have
291 a system with only one CPU, like most personal computers, say N. If
292 you have a system with more than one CPU, say Y.
293
294 If you say N here, the kernel will run on single and multiprocessor
295 machines, but will use only one CPU of a multiprocessor machine. If
296 you say Y here, the kernel will run on many, but not all,
297 singleprocessor machines. On a singleprocessor machine, the kernel
298 will run faster if you say N here.
299
300 If you don't know what to do here, say N.
301
Linus Torvalds1da177e2005-04-16 15:20:36 -0700302config SCHED_SMT
303 bool "SMT (Hyperthreading) scheduler support"
304 depends on SMP
305 default n
306 help
307 SMT scheduler support improves the CPU scheduler's decision making
308 when dealing with Intel Pentium 4 chips with HyperThreading at a
309 cost of slightly increased overhead in some places. If unsure say
310 N here.
311
Siddha, Suresh B1e9f28f2006-03-27 01:15:22 -0800312config SCHED_MC
313 bool "Multi-core scheduler support"
314 depends on SMP
315 default y
316 help
317 Multi-core scheduler support improves the CPU scheduler's decision
318 making when dealing with multi-core CPU chips at a cost of slightly
319 increased overhead in some places. If unsure say N here.
320
Ingo Molnarcc19ca82005-06-25 14:57:36 -0700321source "kernel/Kconfig.preempt"
322
Ravikiran G Thirumalaib0bd35e2005-11-05 17:25:54 +0100323config NUMA
324 bool "Non Uniform Memory Access (NUMA) Support"
Linus Torvalds1da177e2005-04-16 15:20:36 -0700325 depends on SMP
326 help
Ravikiran G Thirumalaib0bd35e2005-11-05 17:25:54 +0100327 Enable NUMA (Non Uniform Memory Access) support. The kernel
328 will try to allocate memory used by a CPU on the local memory
329 controller of the CPU and add some more NUMA awareness to the kernel.
330 This code is recommended on all multiprocessor Opteron systems.
331 If the system is EM64T, you should say N unless your system is EM64T
332 NUMA.
333
334config K8_NUMA
335 bool "Old style AMD Opteron NUMA detection"
Andi Kleenf157cbb2006-09-26 10:52:41 +0200336 depends on NUMA && PCI
Ravikiran G Thirumalaib0bd35e2005-11-05 17:25:54 +0100337 default y
338 help
339 Enable K8 NUMA node topology detection. You should say Y here if
340 you have a multi processor AMD K8 system. This uses an old
Matt LaPlante44c09202006-10-03 22:34:14 +0200341 method to read the NUMA configuration directly from the builtin
Ravikiran G Thirumalaib0bd35e2005-11-05 17:25:54 +0100342 Northbridge of Opteron. It is recommended to use X86_64_ACPI_NUMA
343 instead, which also takes priority if both are compiled in.
344
Yasunori Gotoc80d79d2006-04-10 22:53:53 -0700345config NODES_SHIFT
346 int
347 default "6"
348 depends on NEED_MULTIPLE_NODES
349
Ravikiran G Thirumalaib0bd35e2005-11-05 17:25:54 +0100350# Dummy CONFIG option to select ACPI_NUMA from drivers/acpi/Kconfig.
351
352config X86_64_ACPI_NUMA
353 bool "ACPI NUMA detection"
354 depends on NUMA
355 select ACPI
Adrian Bunk13001242006-03-28 17:04:00 -0500356 select PCI
Ravikiran G Thirumalaib0bd35e2005-11-05 17:25:54 +0100357 select ACPI_NUMA
358 default y
359 help
360 Enable ACPI SRAT based node topology detection.
Linus Torvalds1da177e2005-04-16 15:20:36 -0700361
362config NUMA_EMU
Ravikiran G Thirumalaib0bd35e2005-11-05 17:25:54 +0100363 bool "NUMA emulation"
364 depends on NUMA
Linus Torvalds1da177e2005-04-16 15:20:36 -0700365 help
366 Enable NUMA emulation. A flat machine will be split
367 into virtual nodes when booted with "numa=fake=N", where N is the
368 number of nodes. This is only useful for debugging.
369
Dave Hansen3f22ab22005-06-23 00:07:43 -0700370config ARCH_DISCONTIGMEM_ENABLE
Linus Torvalds1da177e2005-04-16 15:20:36 -0700371 bool
372 depends on NUMA
373 default y
374
Matt Tolentino1035faf2005-06-23 00:08:05 -0700375config ARCH_DISCONTIGMEM_DEFAULT
376 def_bool y
377 depends on NUMA
378
379config ARCH_SPARSEMEM_ENABLE
380 def_bool y
Matt Tolentino44df75e2006-01-17 07:03:41 +0100381 depends on (NUMA || EXPERIMENTAL)
382
383config ARCH_MEMORY_PROBE
384 def_bool y
385 depends on MEMORY_HOTPLUG
Matt Tolentino1035faf2005-06-23 00:08:05 -0700386
387config ARCH_FLATMEM_ENABLE
388 def_bool y
389 depends on !NUMA
390
Dave Hansen3f22ab22005-06-23 00:07:43 -0700391source "mm/Kconfig"
392
Keith Manntheyec69acb2006-09-30 23:27:05 -0700393config MEMORY_HOTPLUG_RESERVE
394 def_bool y
395 depends on (MEMORY_HOTPLUG && DISCONTIGMEM)
396
Matt Tolentino1035faf2005-06-23 00:08:05 -0700397config HAVE_ARCH_EARLY_PFN_TO_NID
398 def_bool y
Matt Tolentino44df75e2006-01-17 07:03:41 +0100399 depends on NUMA
Matt Tolentino1035faf2005-06-23 00:08:05 -0700400
KAMEZAWA Hiroyukidc8ecb42006-03-27 01:15:34 -0800401config OUT_OF_LINE_PFN_TO_PAGE
402 def_bool y
403 depends on DISCONTIGMEM
404
Linus Torvalds1da177e2005-04-16 15:20:36 -0700405config NR_CPUS
406 int "Maximum number of CPUs (2-256)"
Andi Kleen01d4bed2006-03-25 16:30:58 +0100407 range 2 255
Linus Torvalds1da177e2005-04-16 15:20:36 -0700408 depends on SMP
409 default "8"
410 help
411 This allows you to specify the maximum number of CPUs which this
412 kernel will support. Current maximum is 256 CPUs due to
413 APIC addressing limits. Less depending on the hardware.
414
415 This is purely to save memory - each supported CPU requires
416 memory in the static kernel configuration.
417
Ashok Raj76e4f662005-06-25 14:55:00 -0700418config HOTPLUG_CPU
419 bool "Support for hot-pluggable CPUs (EXPERIMENTAL)"
420 depends on SMP && HOTPLUG && EXPERIMENTAL
421 help
422 Say Y here to experiment with turning CPUs off and on. CPUs
423 can be controlled through /sys/devices/system/cpu/cpu#.
424 Say N if you want to disable CPU hotplug.
425
Yasunori Gotocc576372006-06-29 02:24:27 -0700426config ARCH_ENABLE_MEMORY_HOTPLUG
427 def_bool y
Ashok Raj76e4f662005-06-25 14:55:00 -0700428
Linus Torvalds1da177e2005-04-16 15:20:36 -0700429config HPET_TIMER
430 bool
431 default y
432 help
433 Use the IA-PC HPET (High Precision Event Timer) to manage
434 time in preference to the PIT and RTC, if a HPET is
435 present. The HPET provides a stable time base on SMP
436 systems, unlike the TSC, but it is more expensive to access,
437 as it is off-chip. You can find the HPET spec at
Randy Dunlap89d7cbf2005-09-21 09:55:44 -0700438 <http://www.intel.com/hardwaredesign/hpetspec.htm>.
Linus Torvalds1da177e2005-04-16 15:20:36 -0700439
440config HPET_EMULATE_RTC
441 bool "Provide RTC interrupt"
442 depends on HPET_TIMER && RTC=y
443
Andi Kleena813ce42006-06-26 13:57:22 +0200444# Mark as embedded because too many people got it wrong.
445# The code disables itself when not needed.
446config IOMMU
447 bool "IOMMU support" if EMBEDDED
Andi Kleena54649b2005-07-28 21:15:32 -0700448 default y
Muli Ben-Yehuda17a941d2006-01-11 22:44:42 +0100449 select SWIOTLB
Roman Zippeldcc1a662006-06-22 14:47:35 -0700450 select AGP
Linus Torvalds1da177e2005-04-16 15:20:36 -0700451 depends on PCI
452 help
Andi Kleena813ce42006-06-26 13:57:22 +0200453 Support for full DMA access of devices with 32bit memory access only
454 on systems with more than 3GB. This is usually needed for USB,
455 sound, many IDE/SATA chipsets and some other devices.
456 Provides a driver for the AMD Athlon64/Opteron/Turion/Sempron GART
457 based IOMMU and a software bounce buffer based IOMMU used on Intel
458 systems and as fallback.
459 The code is only active when needed (enough memory and limited
460 device) unless CONFIG_IOMMU_DEBUG or iommu=force is specified
461 too.
Linus Torvalds1da177e2005-04-16 15:20:36 -0700462
Jon Masone4650582006-06-26 13:58:14 +0200463config CALGARY_IOMMU
464 bool "IBM Calgary IOMMU support"
Jon Masone4650582006-06-26 13:58:14 +0200465 select SWIOTLB
466 depends on PCI && EXPERIMENTAL
467 help
468 Support for hardware IOMMUs in IBM's xSeries x366 and x460
469 systems. Needed to run systems with more than 3GB of memory
470 properly with 32-bit PCI devices that do not support DAC
471 (Double Address Cycle). Calgary also supports bus level
472 isolation, where all DMAs pass through the IOMMU. This
473 prevents them from going anywhere except their intended
474 destination. This catches hard-to-find kernel bugs and
475 mis-behaving drivers and devices that do not use the DMA-API
476 properly to set up their DMA buffers. The IOMMU can be
477 turned off at boot time with the iommu=off parameter.
478 Normally the kernel will make the right choice by itself.
479 If unsure, say Y.
480
Muli Ben-Yehudabff65472006-12-07 02:14:07 +0100481config CALGARY_IOMMU_ENABLED_BY_DEFAULT
482 bool "Should Calgary be enabled by default?"
Linus Torvalds36f696c2007-01-01 10:55:45 -0800483 default y
Muli Ben-Yehudabff65472006-12-07 02:14:07 +0100484 depends on CALGARY_IOMMU
485 help
Linus Torvalds36f696c2007-01-01 10:55:45 -0800486 Should Calgary be enabled by default? if you choose 'y', Calgary
Muli Ben-Yehudabff65472006-12-07 02:14:07 +0100487 will be used (if it exists). If you choose 'n', Calgary will not be
488 used even if it exists. If you choose 'n' and would like to use
489 Calgary anyway, pass 'iommu=calgary' on the kernel command line.
Linus Torvalds36f696c2007-01-01 10:55:45 -0800490 If unsure, say Y.
Muli Ben-Yehudabff65472006-12-07 02:14:07 +0100491
Andi Kleena813ce42006-06-26 13:57:22 +0200492# need this always selected by IOMMU for the VIA workaround
Linus Torvalds1da177e2005-04-16 15:20:36 -0700493config SWIOTLB
Linus Torvalds1da177e2005-04-16 15:20:36 -0700494 bool
Linus Torvalds1da177e2005-04-16 15:20:36 -0700495
496config X86_MCE
497 bool "Machine check support" if EMBEDDED
498 default y
499 help
500 Include a machine check error handler to report hardware errors.
501 This version will require the mcelog utility to decode some
502 machine check error logs. See
503 ftp://ftp.x86-64.org/pub/linux/tools/mcelog
504
505config X86_MCE_INTEL
506 bool "Intel MCE features"
507 depends on X86_MCE && X86_LOCAL_APIC
508 default y
509 help
510 Additional support for intel specific MCE features such as
511 the thermal monitor.
512
Jacob Shin89b831e2005-11-05 17:25:53 +0100513config X86_MCE_AMD
514 bool "AMD MCE features"
515 depends on X86_MCE && X86_LOCAL_APIC
516 default y
517 help
518 Additional support for AMD specific MCE features such as
519 the DRAM Error Threshold.
520
Eric W. Biederman5234f5e2005-06-25 14:58:02 -0700521config KEXEC
Eric W. Biederman1c9c0a62006-09-26 10:52:40 +0200522 bool "kexec system call"
Eric W. Biederman5234f5e2005-06-25 14:58:02 -0700523 help
524 kexec is a system call that implements the ability to shutdown your
525 current kernel, and to start another kernel. It is like a reboot
Matt LaPlante1f1332f2006-06-29 01:32:47 -0400526 but it is independent of the system firmware. And like a reboot
Eric W. Biederman5234f5e2005-06-25 14:58:02 -0700527 you can start any kernel with it, not just Linux.
528
Matt LaPlante1f1332f2006-06-29 01:32:47 -0400529 The name comes from the similarity to the exec system call.
Eric W. Biederman5234f5e2005-06-25 14:58:02 -0700530
531 It is an ongoing process to be certain the hardware in a machine
532 is properly shutdown, so do not be surprised if this code does not
533 initially work for you. It may help to enable device hotplugging
534 support. As of this writing the exact hardware interface is
535 strongly in flux, so no good recommendation can be made.
536
Vivek Goyalec9ce0d2006-01-09 20:51:49 -0800537config CRASH_DUMP
538 bool "kernel crash dumps (EXPERIMENTAL)"
Vivek Goyalec9ce0d2006-01-09 20:51:49 -0800539 depends on EXPERIMENTAL
540 help
Andi Kleen1edf7772006-09-26 10:52:35 +0200541 Generate crash dump after being started by kexec.
542 This should be normally only set in special crash dump kernels
543 which are loaded in the main kernel with kexec-tools into
544 a specially reserved region and then later executed after
545 a crash by kdump/kexec. The crash dump kernel must be compiled
546 to a memory address not used by the main kernel or BIOS using
547 PHYSICAL_START.
548 For more details see Documentation/kdump/kdump.txt
Vivek Goyalec9ce0d2006-01-09 20:51:49 -0800549
Maneesh Soni05970d42006-01-09 20:51:52 -0800550config PHYSICAL_START
551 hex "Physical address where the kernel is loaded" if (EMBEDDED || CRASH_DUMP)
552 default "0x1000000" if CRASH_DUMP
Andi Kleen04103602006-03-25 16:30:13 +0100553 default "0x200000"
Maneesh Soni05970d42006-01-09 20:51:52 -0800554 help
555 This gives the physical address where the kernel is loaded. Normally
Andi Kleen04103602006-03-25 16:30:13 +0100556 for regular kernels this value is 0x200000 (2MB). But in the case
Maneesh Soni05970d42006-01-09 20:51:52 -0800557 of kexec on panic the fail safe kernel needs to run at a different
558 address than the panic-ed kernel. This option is used to set the load
559 address for kernels used to capture crash dump on being kexec'ed
560 after panic. The default value for crash dump kernels is
561 0x1000000 (16MB). This can also be set based on the "X" value as
562 specified in the "crashkernel=YM@XM" command line boot parameter
563 passed to the panic-ed kernel. Typically this parameter is set as
564 crashkernel=64M@16M. Please take a look at
565 Documentation/kdump/kdump.txt for more details about crash dumps.
566
567 Don't change this unless you know what you are doing.
568
Linus Torvalds1da177e2005-04-16 15:20:36 -0700569config SECCOMP
570 bool "Enable seccomp to safely compute untrusted bytecode"
571 depends on PROC_FS
572 default y
573 help
574 This kernel feature is useful for number crunching applications
575 that may need to compute untrusted bytecode during their
576 execution. By using pipes or other transports made available to
577 the process as file descriptors supporting the read/write
578 syscalls, it's possible to isolate those applications in
579 their own address space using seccomp. Once seccomp is
580 enabled via /proc/<pid>/seccomp, it cannot be disabled
581 and the task is only allowed to execute a few safe syscalls
582 defined by each seccomp mode.
583
584 If unsure, say Y. Only embedded should say N here.
585
Arjan van de Venb62a5c72006-09-26 10:52:38 +0200586config CC_STACKPROTECTOR
Brice Gogline45116b2006-12-11 20:14:15 +0100587 bool "Enable -fstack-protector buffer overflow detection (EXPERIMENTAL)"
Arjan van de Venb62a5c72006-09-26 10:52:38 +0200588 depends on EXPERIMENTAL
589 help
590 This option turns on the -fstack-protector GCC feature. This
591 feature puts, at the beginning of critical functions, a canary
592 value on the stack just before the return address, and validates
593 the value just before actually returning. Stack based buffer
594 overflows (that need to overwrite this return address) now also
595 overwrite the canary, which gets detected and the attack is then
596 neutralized via a kernel panic.
597
598 This feature requires gcc version 4.2 or above, or a distribution
599 gcc with the feature backported. Older versions are automatically
600 detected and for those versions, this configuration option is ignored.
601
602config CC_STACKPROTECTOR_ALL
603 bool "Use stack-protector for all functions"
604 depends on CC_STACKPROTECTOR
605 help
606 Normally, GCC only inserts the canary value protection for
607 functions that use large-ish on-stack buffers. By enabling
608 this option, GCC will be asked to do this for ALL functions.
609
Christoph Lameter59121002005-06-23 00:08:25 -0700610source kernel/Kconfig.hz
611
Arjan van de Ven4bdc3b72006-03-25 16:30:49 +0100612config REORDER
613 bool "Function reordering"
614 default n
615 help
616 This option enables the toolchain to reorder functions for a more
617 optimal TLB usage. If you have pretty much any version of binutils,
618 this can increase your kernel build time by roughly one minute.
619
Andi Kleena32073b2006-06-26 13:56:40 +0200620config K8_NB
621 def_bool y
Andi Kleena813ce42006-06-26 13:57:22 +0200622 depends on AGP_AMD64 || IOMMU || (PCI && NUMA)
Andi Kleena32073b2006-06-26 13:56:40 +0200623
Linus Torvalds1da177e2005-04-16 15:20:36 -0700624endmenu
625
626#
627# Use the generic interrupt handling code in kernel/irq/:
628#
629config GENERIC_HARDIRQS
630 bool
631 default y
632
633config GENERIC_IRQ_PROBE
634 bool
635 default y
636
Al Viro5cae8412005-05-04 05:39:22 +0100637# we have no ISA slots, but we do have ISA-style DMA.
638config ISA_DMA_API
639 bool
640 default y
641
Ashok Raj54d5d422005-09-06 15:16:15 -0700642config GENERIC_PENDING_IRQ
643 bool
644 depends on GENERIC_HARDIRQS && SMP
645 default y
646
Linus Torvalds1da177e2005-04-16 15:20:36 -0700647menu "Power management options"
648
649source kernel/power/Kconfig
650
651source "drivers/acpi/Kconfig"
652
653source "arch/x86_64/kernel/cpufreq/Kconfig"
654
655endmenu
656
657menu "Bus options (PCI etc.)"
658
659config PCI
660 bool "PCI support"
661
662# x86-64 doesn't support PCI BIOS access from long mode so always go direct.
663config PCI_DIRECT
664 bool
665 depends on PCI
666 default y
667
668config PCI_MMCONFIG
669 bool "Support mmconfig PCI config space access"
Alexander Nyberg8aadff72005-05-27 12:48:50 +0200670 depends on PCI && ACPI
Linus Torvalds1da177e2005-04-16 15:20:36 -0700671
Linus Torvalds1da177e2005-04-16 15:20:36 -0700672source "drivers/pci/pcie/Kconfig"
673
674source "drivers/pci/Kconfig"
675
676source "drivers/pcmcia/Kconfig"
677
678source "drivers/pci/hotplug/Kconfig"
679
680endmenu
681
682
683menu "Executable file formats / Emulations"
684
685source "fs/Kconfig.binfmt"
686
687config IA32_EMULATION
688 bool "IA32 Emulation"
689 help
690 Include code to run 32-bit programs under a 64-bit kernel. You should likely
691 turn this on, unless you're 100% sure that you don't have any 32-bit programs
692 left.
693
694config IA32_AOUT
Andi Kleenea0be472005-11-05 17:25:54 +0100695 tristate "IA32 a.out support"
Linus Torvalds1da177e2005-04-16 15:20:36 -0700696 depends on IA32_EMULATION
697 help
698 Support old a.out binaries in the 32bit emulation.
699
700config COMPAT
701 bool
702 depends on IA32_EMULATION
703 default y
704
705config SYSVIPC_COMPAT
706 bool
707 depends on COMPAT && SYSVIPC
708 default y
709
Linus Torvalds1da177e2005-04-16 15:20:36 -0700710endmenu
711
Sam Ravnborgd5950b42005-07-11 21:03:49 -0700712source "net/Kconfig"
713
Linus Torvalds1da177e2005-04-16 15:20:36 -0700714source drivers/Kconfig
715
716source "drivers/firmware/Kconfig"
717
718source fs/Kconfig
719
Prasanna S Panchamukhicd6b0762005-11-07 00:59:14 -0800720menu "Instrumentation Support"
721 depends on EXPERIMENTAL
722
Linus Torvalds1da177e2005-04-16 15:20:36 -0700723source "arch/x86_64/oprofile/Kconfig"
724
Prasanna S Panchamukhicd6b0762005-11-07 00:59:14 -0800725config KPROBES
726 bool "Kprobes (EXPERIMENTAL)"
Ananth N Mavinakayanahalli3a872d82006-10-02 02:17:30 -0700727 depends on KALLSYMS && EXPERIMENTAL && MODULES
Prasanna S Panchamukhicd6b0762005-11-07 00:59:14 -0800728 help
729 Kprobes allows you to trap at almost any kernel address and
730 execute a callback function. register_kprobe() establishes
731 a probepoint and specifies the callback. Kprobes is useful
732 for kernel debugging, non-intrusive instrumentation and testing.
733 If in doubt, say "N".
734endmenu
735
Linus Torvalds1da177e2005-04-16 15:20:36 -0700736source "arch/x86_64/Kconfig.debug"
737
738source "security/Kconfig"
739
740source "crypto/Kconfig"
741
742source "lib/Kconfig"