Commit 73531905ed53576d9e8707659a761e7046a60497

Authored by Sam Ravnborg
1 parent 9723c046bd

Kconfig: introduce ARCH_DEFCONFIG to DEFCONFIG_LIST

init/Kconfig contains a list of configs that are searched
for if 'make *config' are used with no .config present.
Extend this list to look at the config identified by
ARCH_DEFCONFIG.

With this change we now try the defconfig targets last.

This fixes a regression reported
by: Linus Torvalds <torvalds@linux-foundation.org>

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: "H. Peter Anvin" <hpa@zytor.com>

Showing 2 changed files with 4 additions and 10 deletions Inline Diff

1 # x86 configuration 1 # x86 configuration
2 mainmenu "Linux Kernel Configuration for x86" 2 mainmenu "Linux Kernel Configuration for x86"
3 3
4 # Select 32 or 64 bit 4 # Select 32 or 64 bit
5 config 64BIT 5 config 64BIT
6 bool "64-bit kernel" if ARCH = "x86" 6 bool "64-bit kernel" if ARCH = "x86"
7 default ARCH = "x86_64" 7 default ARCH = "x86_64"
8 help 8 help
9 Say yes to build a 64-bit kernel - formerly known as x86_64 9 Say yes to build a 64-bit kernel - formerly known as x86_64
10 Say no to build a 32-bit kernel - formerly known as i386 10 Say no to build a 32-bit kernel - formerly known as i386
11 11
12 config X86_32 12 config X86_32
13 def_bool !64BIT 13 def_bool !64BIT
14 14
15 config X86_64 15 config X86_64
16 def_bool 64BIT 16 def_bool 64BIT
17 17
18 ### Arch settings 18 ### Arch settings
19 config X86 19 config X86
20 def_bool y 20 def_bool y
21 select HAVE_UNSTABLE_SCHED_CLOCK 21 select HAVE_UNSTABLE_SCHED_CLOCK
22 select HAVE_IDE 22 select HAVE_IDE
23 select HAVE_OPROFILE 23 select HAVE_OPROFILE
24 select HAVE_KPROBES 24 select HAVE_KPROBES
25 select HAVE_KRETPROBES 25 select HAVE_KRETPROBES
26 select HAVE_KVM if ((X86_32 && !X86_VOYAGER && !X86_VISWS && !X86_NUMAQ) || X86_64) 26 select HAVE_KVM if ((X86_32 && !X86_VOYAGER && !X86_VISWS && !X86_NUMAQ) || X86_64)
27 select HAVE_ARCH_KGDB if !X86_VOYAGER 27 select HAVE_ARCH_KGDB if !X86_VOYAGER
28 28
29 config DEFCONFIG_LIST 29 config ARCH_DEFCONFIG
30 string 30 string
31 depends on X86_32 31 default "arch/x86/configs/i386_defconfig" if X86_32
32 option defconfig_list 32 default "arch/x86/configs/x86_64_defconfig" if X86_64
33 default "arch/x86/configs/i386_defconfig"
34
35 config DEFCONFIG_LIST
36 string
37 depends on X86_64
38 option defconfig_list
39 default "arch/x86/configs/x86_64_defconfig"
40 33
41 34
42 config GENERIC_LOCKBREAK 35 config GENERIC_LOCKBREAK
43 def_bool n 36 def_bool n
44 37
45 config GENERIC_TIME 38 config GENERIC_TIME
46 def_bool y 39 def_bool y
47 40
48 config GENERIC_CMOS_UPDATE 41 config GENERIC_CMOS_UPDATE
49 def_bool y 42 def_bool y
50 43
51 config CLOCKSOURCE_WATCHDOG 44 config CLOCKSOURCE_WATCHDOG
52 def_bool y 45 def_bool y
53 46
54 config GENERIC_CLOCKEVENTS 47 config GENERIC_CLOCKEVENTS
55 def_bool y 48 def_bool y
56 49
57 config GENERIC_CLOCKEVENTS_BROADCAST 50 config GENERIC_CLOCKEVENTS_BROADCAST
58 def_bool y 51 def_bool y
59 depends on X86_64 || (X86_32 && X86_LOCAL_APIC) 52 depends on X86_64 || (X86_32 && X86_LOCAL_APIC)
60 53
61 config LOCKDEP_SUPPORT 54 config LOCKDEP_SUPPORT
62 def_bool y 55 def_bool y
63 56
64 config STACKTRACE_SUPPORT 57 config STACKTRACE_SUPPORT
65 def_bool y 58 def_bool y
66 59
67 config HAVE_LATENCYTOP_SUPPORT 60 config HAVE_LATENCYTOP_SUPPORT
68 def_bool y 61 def_bool y
69 62
70 config FAST_CMPXCHG_LOCAL 63 config FAST_CMPXCHG_LOCAL
71 bool 64 bool
72 default y 65 default y
73 66
74 config MMU 67 config MMU
75 def_bool y 68 def_bool y
76 69
77 config ZONE_DMA 70 config ZONE_DMA
78 def_bool y 71 def_bool y
79 72
80 config SBUS 73 config SBUS
81 bool 74 bool
82 75
83 config GENERIC_ISA_DMA 76 config GENERIC_ISA_DMA
84 def_bool y 77 def_bool y
85 78
86 config GENERIC_IOMAP 79 config GENERIC_IOMAP
87 def_bool y 80 def_bool y
88 81
89 config GENERIC_BUG 82 config GENERIC_BUG
90 def_bool y 83 def_bool y
91 depends on BUG 84 depends on BUG
92 85
93 config GENERIC_HWEIGHT 86 config GENERIC_HWEIGHT
94 def_bool y 87 def_bool y
95 88
96 config GENERIC_GPIO 89 config GENERIC_GPIO
97 def_bool n 90 def_bool n
98 91
99 config ARCH_MAY_HAVE_PC_FDC 92 config ARCH_MAY_HAVE_PC_FDC
100 def_bool y 93 def_bool y
101 94
102 config RWSEM_GENERIC_SPINLOCK 95 config RWSEM_GENERIC_SPINLOCK
103 def_bool !X86_XADD 96 def_bool !X86_XADD
104 97
105 config RWSEM_XCHGADD_ALGORITHM 98 config RWSEM_XCHGADD_ALGORITHM
106 def_bool X86_XADD 99 def_bool X86_XADD
107 100
108 config ARCH_HAS_ILOG2_U32 101 config ARCH_HAS_ILOG2_U32
109 def_bool n 102 def_bool n
110 103
111 config ARCH_HAS_ILOG2_U64 104 config ARCH_HAS_ILOG2_U64
112 def_bool n 105 def_bool n
113 106
114 config ARCH_HAS_CPU_IDLE_WAIT 107 config ARCH_HAS_CPU_IDLE_WAIT
115 def_bool y 108 def_bool y
116 109
117 config GENERIC_CALIBRATE_DELAY 110 config GENERIC_CALIBRATE_DELAY
118 def_bool y 111 def_bool y
119 112
120 config GENERIC_TIME_VSYSCALL 113 config GENERIC_TIME_VSYSCALL
121 bool 114 bool
122 default X86_64 115 default X86_64
123 116
124 config ARCH_HAS_CPU_RELAX 117 config ARCH_HAS_CPU_RELAX
125 def_bool y 118 def_bool y
126 119
127 config ARCH_HAS_CACHE_LINE_SIZE 120 config ARCH_HAS_CACHE_LINE_SIZE
128 def_bool y 121 def_bool y
129 122
130 config HAVE_SETUP_PER_CPU_AREA 123 config HAVE_SETUP_PER_CPU_AREA
131 def_bool X86_64 || (X86_SMP && !X86_VOYAGER) 124 def_bool X86_64 || (X86_SMP && !X86_VOYAGER)
132 125
133 config HAVE_CPUMASK_OF_CPU_MAP 126 config HAVE_CPUMASK_OF_CPU_MAP
134 def_bool X86_64_SMP 127 def_bool X86_64_SMP
135 128
136 config ARCH_HIBERNATION_POSSIBLE 129 config ARCH_HIBERNATION_POSSIBLE
137 def_bool y 130 def_bool y
138 depends on !SMP || !X86_VOYAGER 131 depends on !SMP || !X86_VOYAGER
139 132
140 config ARCH_SUSPEND_POSSIBLE 133 config ARCH_SUSPEND_POSSIBLE
141 def_bool y 134 def_bool y
142 depends on !X86_VOYAGER 135 depends on !X86_VOYAGER
143 136
144 config ZONE_DMA32 137 config ZONE_DMA32
145 bool 138 bool
146 default X86_64 139 default X86_64
147 140
148 config ARCH_POPULATES_NODE_MAP 141 config ARCH_POPULATES_NODE_MAP
149 def_bool y 142 def_bool y
150 143
151 config AUDIT_ARCH 144 config AUDIT_ARCH
152 bool 145 bool
153 default X86_64 146 default X86_64
154 147
155 config ARCH_SUPPORTS_AOUT 148 config ARCH_SUPPORTS_AOUT
156 def_bool y 149 def_bool y
157 150
158 config ARCH_SUPPORTS_OPTIMIZED_INLINING 151 config ARCH_SUPPORTS_OPTIMIZED_INLINING
159 def_bool y 152 def_bool y
160 153
161 # Use the generic interrupt handling code in kernel/irq/: 154 # Use the generic interrupt handling code in kernel/irq/:
162 config GENERIC_HARDIRQS 155 config GENERIC_HARDIRQS
163 bool 156 bool
164 default y 157 default y
165 158
166 config GENERIC_IRQ_PROBE 159 config GENERIC_IRQ_PROBE
167 bool 160 bool
168 default y 161 default y
169 162
170 config GENERIC_PENDING_IRQ 163 config GENERIC_PENDING_IRQ
171 bool 164 bool
172 depends on GENERIC_HARDIRQS && SMP 165 depends on GENERIC_HARDIRQS && SMP
173 default y 166 default y
174 167
175 config X86_SMP 168 config X86_SMP
176 bool 169 bool
177 depends on SMP && ((X86_32 && !X86_VOYAGER) || X86_64) 170 depends on SMP && ((X86_32 && !X86_VOYAGER) || X86_64)
178 default y 171 default y
179 172
180 config X86_32_SMP 173 config X86_32_SMP
181 def_bool y 174 def_bool y
182 depends on X86_32 && SMP 175 depends on X86_32 && SMP
183 176
184 config X86_64_SMP 177 config X86_64_SMP
185 def_bool y 178 def_bool y
186 depends on X86_64 && SMP 179 depends on X86_64 && SMP
187 180
188 config X86_HT 181 config X86_HT
189 bool 182 bool
190 depends on SMP 183 depends on SMP
191 depends on (X86_32 && !(X86_VISWS || X86_VOYAGER)) || X86_64 184 depends on (X86_32 && !(X86_VISWS || X86_VOYAGER)) || X86_64
192 default y 185 default y
193 186
194 config X86_BIOS_REBOOT 187 config X86_BIOS_REBOOT
195 bool 188 bool
196 depends on !X86_VISWS && !X86_VOYAGER 189 depends on !X86_VISWS && !X86_VOYAGER
197 default y 190 default y
198 191
199 config X86_TRAMPOLINE 192 config X86_TRAMPOLINE
200 bool 193 bool
201 depends on X86_SMP || (X86_VOYAGER && SMP) || (64BIT && ACPI_SLEEP) 194 depends on X86_SMP || (X86_VOYAGER && SMP) || (64BIT && ACPI_SLEEP)
202 default y 195 default y
203 196
204 config KTIME_SCALAR 197 config KTIME_SCALAR
205 def_bool X86_32 198 def_bool X86_32
206 source "init/Kconfig" 199 source "init/Kconfig"
207 200
208 menu "Processor type and features" 201 menu "Processor type and features"
209 202
210 source "kernel/time/Kconfig" 203 source "kernel/time/Kconfig"
211 204
212 config SMP 205 config SMP
213 bool "Symmetric multi-processing support" 206 bool "Symmetric multi-processing support"
214 ---help--- 207 ---help---
215 This enables support for systems with more than one CPU. If you have 208 This enables support for systems with more than one CPU. If you have
216 a system with only one CPU, like most personal computers, say N. If 209 a system with only one CPU, like most personal computers, say N. If
217 you have a system with more than one CPU, say Y. 210 you have a system with more than one CPU, say Y.
218 211
219 If you say N here, the kernel will run on single and multiprocessor 212 If you say N here, the kernel will run on single and multiprocessor
220 machines, but will use only one CPU of a multiprocessor machine. If 213 machines, but will use only one CPU of a multiprocessor machine. If
221 you say Y here, the kernel will run on many, but not all, 214 you say Y here, the kernel will run on many, but not all,
222 singleprocessor machines. On a singleprocessor machine, the kernel 215 singleprocessor machines. On a singleprocessor machine, the kernel
223 will run faster if you say N here. 216 will run faster if you say N here.
224 217
225 Note that if you say Y here and choose architecture "586" or 218 Note that if you say Y here and choose architecture "586" or
226 "Pentium" under "Processor family", the kernel will not work on 486 219 "Pentium" under "Processor family", the kernel will not work on 486
227 architectures. Similarly, multiprocessor kernels for the "PPro" 220 architectures. Similarly, multiprocessor kernels for the "PPro"
228 architecture may not work on all Pentium based boards. 221 architecture may not work on all Pentium based boards.
229 222
230 People using multiprocessor machines who say Y here should also say 223 People using multiprocessor machines who say Y here should also say
231 Y to "Enhanced Real Time Clock Support", below. The "Advanced Power 224 Y to "Enhanced Real Time Clock Support", below. The "Advanced Power
232 Management" code will be disabled if you say Y here. 225 Management" code will be disabled if you say Y here.
233 226
234 See also <file:Documentation/i386/IO-APIC.txt>, 227 See also <file:Documentation/i386/IO-APIC.txt>,
235 <file:Documentation/nmi_watchdog.txt> and the SMP-HOWTO available at 228 <file:Documentation/nmi_watchdog.txt> and the SMP-HOWTO available at
236 <http://www.tldp.org/docs.html#howto>. 229 <http://www.tldp.org/docs.html#howto>.
237 230
238 If you don't know what to do here, say N. 231 If you don't know what to do here, say N.
239 232
240 choice 233 choice
241 prompt "Subarchitecture Type" 234 prompt "Subarchitecture Type"
242 default X86_PC 235 default X86_PC
243 236
244 config X86_PC 237 config X86_PC
245 bool "PC-compatible" 238 bool "PC-compatible"
246 help 239 help
247 Choose this option if your computer is a standard PC or compatible. 240 Choose this option if your computer is a standard PC or compatible.
248 241
249 config X86_ELAN 242 config X86_ELAN
250 bool "AMD Elan" 243 bool "AMD Elan"
251 depends on X86_32 244 depends on X86_32
252 help 245 help
253 Select this for an AMD Elan processor. 246 Select this for an AMD Elan processor.
254 247
255 Do not use this option for K6/Athlon/Opteron processors! 248 Do not use this option for K6/Athlon/Opteron processors!
256 249
257 If unsure, choose "PC-compatible" instead. 250 If unsure, choose "PC-compatible" instead.
258 251
259 config X86_VOYAGER 252 config X86_VOYAGER
260 bool "Voyager (NCR)" 253 bool "Voyager (NCR)"
261 depends on X86_32 && (SMP || BROKEN) 254 depends on X86_32 && (SMP || BROKEN)
262 help 255 help
263 Voyager is an MCA-based 32-way capable SMP architecture proprietary 256 Voyager is an MCA-based 32-way capable SMP architecture proprietary
264 to NCR Corp. Machine classes 345x/35xx/4100/51xx are Voyager-based. 257 to NCR Corp. Machine classes 345x/35xx/4100/51xx are Voyager-based.
265 258
266 *** WARNING *** 259 *** WARNING ***
267 260
268 If you do not specifically know you have a Voyager based machine, 261 If you do not specifically know you have a Voyager based machine,
269 say N here, otherwise the kernel you build will not be bootable. 262 say N here, otherwise the kernel you build will not be bootable.
270 263
271 config X86_NUMAQ 264 config X86_NUMAQ
272 bool "NUMAQ (IBM/Sequent)" 265 bool "NUMAQ (IBM/Sequent)"
273 depends on SMP && X86_32 266 depends on SMP && X86_32
274 select NUMA 267 select NUMA
275 help 268 help
276 This option is used for getting Linux to run on a (IBM/Sequent) NUMA 269 This option is used for getting Linux to run on a (IBM/Sequent) NUMA
277 multiquad box. This changes the way that processors are bootstrapped, 270 multiquad box. This changes the way that processors are bootstrapped,
278 and uses Clustered Logical APIC addressing mode instead of Flat Logical. 271 and uses Clustered Logical APIC addressing mode instead of Flat Logical.
279 You will need a new lynxer.elf file to flash your firmware with - send 272 You will need a new lynxer.elf file to flash your firmware with - send
280 email to <Martin.Bligh@us.ibm.com>. 273 email to <Martin.Bligh@us.ibm.com>.
281 274
282 config X86_SUMMIT 275 config X86_SUMMIT
283 bool "Summit/EXA (IBM x440)" 276 bool "Summit/EXA (IBM x440)"
284 depends on X86_32 && SMP 277 depends on X86_32 && SMP
285 help 278 help
286 This option is needed for IBM systems that use the Summit/EXA chipset. 279 This option is needed for IBM systems that use the Summit/EXA chipset.
287 In particular, it is needed for the x440. 280 In particular, it is needed for the x440.
288 281
289 If you don't have one of these computers, you should say N here. 282 If you don't have one of these computers, you should say N here.
290 If you want to build a NUMA kernel, you must select ACPI. 283 If you want to build a NUMA kernel, you must select ACPI.
291 284
292 config X86_BIGSMP 285 config X86_BIGSMP
293 bool "Support for other sub-arch SMP systems with more than 8 CPUs" 286 bool "Support for other sub-arch SMP systems with more than 8 CPUs"
294 depends on X86_32 && SMP 287 depends on X86_32 && SMP
295 help 288 help
296 This option is needed for the systems that have more than 8 CPUs 289 This option is needed for the systems that have more than 8 CPUs
297 and if the system is not of any sub-arch type above. 290 and if the system is not of any sub-arch type above.
298 291
299 If you don't have such a system, you should say N here. 292 If you don't have such a system, you should say N here.
300 293
301 config X86_VISWS 294 config X86_VISWS
302 bool "SGI 320/540 (Visual Workstation)" 295 bool "SGI 320/540 (Visual Workstation)"
303 depends on X86_32 296 depends on X86_32
304 help 297 help
305 The SGI Visual Workstation series is an IA32-based workstation 298 The SGI Visual Workstation series is an IA32-based workstation
306 based on SGI systems chips with some legacy PC hardware attached. 299 based on SGI systems chips with some legacy PC hardware attached.
307 300
308 Say Y here to create a kernel to run on the SGI 320 or 540. 301 Say Y here to create a kernel to run on the SGI 320 or 540.
309 302
310 A kernel compiled for the Visual Workstation will not run on PCs 303 A kernel compiled for the Visual Workstation will not run on PCs
311 and vice versa. See <file:Documentation/sgi-visws.txt> for details. 304 and vice versa. See <file:Documentation/sgi-visws.txt> for details.
312 305
313 config X86_GENERICARCH 306 config X86_GENERICARCH
314 bool "Generic architecture (Summit, bigsmp, ES7000, default)" 307 bool "Generic architecture (Summit, bigsmp, ES7000, default)"
315 depends on X86_32 308 depends on X86_32
316 help 309 help
317 This option compiles in the Summit, bigsmp, ES7000, default subarchitectures. 310 This option compiles in the Summit, bigsmp, ES7000, default subarchitectures.
318 It is intended for a generic binary kernel. 311 It is intended for a generic binary kernel.
319 If you want a NUMA kernel, select ACPI. We need SRAT for NUMA. 312 If you want a NUMA kernel, select ACPI. We need SRAT for NUMA.
320 313
321 config X86_ES7000 314 config X86_ES7000
322 bool "Support for Unisys ES7000 IA32 series" 315 bool "Support for Unisys ES7000 IA32 series"
323 depends on X86_32 && SMP 316 depends on X86_32 && SMP
324 help 317 help
325 Support for Unisys ES7000 systems. Say 'Y' here if this kernel is 318 Support for Unisys ES7000 systems. Say 'Y' here if this kernel is
326 supposed to run on an IA32-based Unisys ES7000 system. 319 supposed to run on an IA32-based Unisys ES7000 system.
327 Only choose this option if you have such a system, otherwise you 320 Only choose this option if you have such a system, otherwise you
328 should say N here. 321 should say N here.
329 322
330 config X86_RDC321X 323 config X86_RDC321X
331 bool "RDC R-321x SoC" 324 bool "RDC R-321x SoC"
332 depends on X86_32 325 depends on X86_32
333 select M486 326 select M486
334 select X86_REBOOTFIXUPS 327 select X86_REBOOTFIXUPS
335 select GENERIC_GPIO 328 select GENERIC_GPIO
336 select LEDS_CLASS 329 select LEDS_CLASS
337 select LEDS_GPIO 330 select LEDS_GPIO
338 select NEW_LEDS 331 select NEW_LEDS
339 help 332 help
340 This option is needed for RDC R-321x system-on-chip, also known 333 This option is needed for RDC R-321x system-on-chip, also known
341 as R-8610-(G). 334 as R-8610-(G).
342 If you don't have one of these chips, you should say N here. 335 If you don't have one of these chips, you should say N here.
343 336
344 config X86_VSMP 337 config X86_VSMP
345 bool "Support for ScaleMP vSMP" 338 bool "Support for ScaleMP vSMP"
346 select PARAVIRT 339 select PARAVIRT
347 depends on X86_64 340 depends on X86_64
348 help 341 help
349 Support for ScaleMP vSMP systems. Say 'Y' here if this kernel is 342 Support for ScaleMP vSMP systems. Say 'Y' here if this kernel is
350 supposed to run on these EM64T-based machines. Only choose this option 343 supposed to run on these EM64T-based machines. Only choose this option
351 if you have one of these machines. 344 if you have one of these machines.
352 345
353 endchoice 346 endchoice
354 347
355 config SCHED_NO_NO_OMIT_FRAME_POINTER 348 config SCHED_NO_NO_OMIT_FRAME_POINTER
356 def_bool y 349 def_bool y
357 prompt "Single-depth WCHAN output" 350 prompt "Single-depth WCHAN output"
358 depends on X86_32 351 depends on X86_32
359 help 352 help
360 Calculate simpler /proc/<PID>/wchan values. If this option 353 Calculate simpler /proc/<PID>/wchan values. If this option
361 is disabled then wchan values will recurse back to the 354 is disabled then wchan values will recurse back to the
362 caller function. This provides more accurate wchan values, 355 caller function. This provides more accurate wchan values,
363 at the expense of slightly more scheduling overhead. 356 at the expense of slightly more scheduling overhead.
364 357
365 If in doubt, say "Y". 358 If in doubt, say "Y".
366 359
367 menuconfig PARAVIRT_GUEST 360 menuconfig PARAVIRT_GUEST
368 bool "Paravirtualized guest support" 361 bool "Paravirtualized guest support"
369 help 362 help
370 Say Y here to get to see options related to running Linux under 363 Say Y here to get to see options related to running Linux under
371 various hypervisors. This option alone does not add any kernel code. 364 various hypervisors. This option alone does not add any kernel code.
372 365
373 If you say N, all options in this submenu will be skipped and disabled. 366 If you say N, all options in this submenu will be skipped and disabled.
374 367
375 if PARAVIRT_GUEST 368 if PARAVIRT_GUEST
376 369
377 source "arch/x86/xen/Kconfig" 370 source "arch/x86/xen/Kconfig"
378 371
379 config VMI 372 config VMI
380 bool "VMI Guest support" 373 bool "VMI Guest support"
381 select PARAVIRT 374 select PARAVIRT
382 depends on X86_32 375 depends on X86_32
383 depends on !(X86_VISWS || X86_VOYAGER) 376 depends on !(X86_VISWS || X86_VOYAGER)
384 help 377 help
385 VMI provides a paravirtualized interface to the VMware ESX server 378 VMI provides a paravirtualized interface to the VMware ESX server
386 (it could be used by other hypervisors in theory too, but is not 379 (it could be used by other hypervisors in theory too, but is not
387 at the moment), by linking the kernel to a GPL-ed ROM module 380 at the moment), by linking the kernel to a GPL-ed ROM module
388 provided by the hypervisor. 381 provided by the hypervisor.
389 382
390 config KVM_CLOCK 383 config KVM_CLOCK
391 bool "KVM paravirtualized clock" 384 bool "KVM paravirtualized clock"
392 select PARAVIRT 385 select PARAVIRT
393 depends on !(X86_VISWS || X86_VOYAGER) 386 depends on !(X86_VISWS || X86_VOYAGER)
394 help 387 help
395 Turning on this option will allow you to run a paravirtualized clock 388 Turning on this option will allow you to run a paravirtualized clock
396 when running over the KVM hypervisor. Instead of relying on a PIT 389 when running over the KVM hypervisor. Instead of relying on a PIT
397 (or probably other) emulation by the underlying device model, the host 390 (or probably other) emulation by the underlying device model, the host
398 provides the guest with timing infrastructure such as time of day, and 391 provides the guest with timing infrastructure such as time of day, and
399 system time 392 system time
400 393
401 config KVM_GUEST 394 config KVM_GUEST
402 bool "KVM Guest support" 395 bool "KVM Guest support"
403 select PARAVIRT 396 select PARAVIRT
404 depends on !(X86_VISWS || X86_VOYAGER) 397 depends on !(X86_VISWS || X86_VOYAGER)
405 help 398 help
406 This option enables various optimizations for running under the KVM 399 This option enables various optimizations for running under the KVM
407 hypervisor. 400 hypervisor.
408 401
409 source "arch/x86/lguest/Kconfig" 402 source "arch/x86/lguest/Kconfig"
410 403
411 config PARAVIRT 404 config PARAVIRT
412 bool "Enable paravirtualization code" 405 bool "Enable paravirtualization code"
413 depends on !(X86_VISWS || X86_VOYAGER) 406 depends on !(X86_VISWS || X86_VOYAGER)
414 help 407 help
415 This changes the kernel so it can modify itself when it is run 408 This changes the kernel so it can modify itself when it is run
416 under a hypervisor, potentially improving performance significantly 409 under a hypervisor, potentially improving performance significantly
417 over full virtualization. However, when run without a hypervisor 410 over full virtualization. However, when run without a hypervisor
418 the kernel is theoretically slower and slightly larger. 411 the kernel is theoretically slower and slightly larger.
419 412
420 endif 413 endif
421 414
422 config MEMTEST_BOOTPARAM 415 config MEMTEST_BOOTPARAM
423 bool "Memtest boot parameter" 416 bool "Memtest boot parameter"
424 depends on X86_64 417 depends on X86_64
425 default y 418 default y
426 help 419 help
427 This option adds a kernel parameter 'memtest', which allows memtest 420 This option adds a kernel parameter 'memtest', which allows memtest
428 to be disabled at boot. If this option is selected, memtest 421 to be disabled at boot. If this option is selected, memtest
429 functionality can be disabled with memtest=0 on the kernel 422 functionality can be disabled with memtest=0 on the kernel
430 command line. The purpose of this option is to allow a single 423 command line. The purpose of this option is to allow a single
431 kernel image to be distributed with memtest built in, but not 424 kernel image to be distributed with memtest built in, but not
432 necessarily enabled. 425 necessarily enabled.
433 426
434 If you are unsure how to answer this question, answer Y. 427 If you are unsure how to answer this question, answer Y.
435 428
436 config MEMTEST_BOOTPARAM_VALUE 429 config MEMTEST_BOOTPARAM_VALUE
437 int "Memtest boot parameter default value (0-4)" 430 int "Memtest boot parameter default value (0-4)"
438 depends on MEMTEST_BOOTPARAM 431 depends on MEMTEST_BOOTPARAM
439 range 0 4 432 range 0 4
440 default 0 433 default 0
441 help 434 help
442 This option sets the default value for the kernel parameter 435 This option sets the default value for the kernel parameter
443 'memtest', which allows memtest to be disabled at boot. If this 436 'memtest', which allows memtest to be disabled at boot. If this
444 option is set to 0 (zero), the memtest kernel parameter will 437 option is set to 0 (zero), the memtest kernel parameter will
445 default to 0, disabling memtest at bootup. If this option is 438 default to 0, disabling memtest at bootup. If this option is
446 set to 4, the memtest kernel parameter will default to 4, 439 set to 4, the memtest kernel parameter will default to 4,
447 enabling memtest at bootup, and use that as pattern number. 440 enabling memtest at bootup, and use that as pattern number.
448 441
449 If you are unsure how to answer this question, answer 0. 442 If you are unsure how to answer this question, answer 0.
450 443
451 config ACPI_SRAT 444 config ACPI_SRAT
452 def_bool y 445 def_bool y
453 depends on X86_32 && ACPI && NUMA && (X86_SUMMIT || X86_GENERICARCH) 446 depends on X86_32 && ACPI && NUMA && (X86_SUMMIT || X86_GENERICARCH)
454 select ACPI_NUMA 447 select ACPI_NUMA
455 448
456 config HAVE_ARCH_PARSE_SRAT 449 config HAVE_ARCH_PARSE_SRAT
457 def_bool y 450 def_bool y
458 depends on ACPI_SRAT 451 depends on ACPI_SRAT
459 452
460 config X86_SUMMIT_NUMA 453 config X86_SUMMIT_NUMA
461 def_bool y 454 def_bool y
462 depends on X86_32 && NUMA && (X86_SUMMIT || X86_GENERICARCH) 455 depends on X86_32 && NUMA && (X86_SUMMIT || X86_GENERICARCH)
463 456
464 config X86_CYCLONE_TIMER 457 config X86_CYCLONE_TIMER
465 def_bool y 458 def_bool y
466 depends on X86_32 && X86_SUMMIT || X86_GENERICARCH 459 depends on X86_32 && X86_SUMMIT || X86_GENERICARCH
467 460
468 config ES7000_CLUSTERED_APIC 461 config ES7000_CLUSTERED_APIC
469 def_bool y 462 def_bool y
470 depends on SMP && X86_ES7000 && MPENTIUMIII 463 depends on SMP && X86_ES7000 && MPENTIUMIII
471 464
472 source "arch/x86/Kconfig.cpu" 465 source "arch/x86/Kconfig.cpu"
473 466
474 config HPET_TIMER 467 config HPET_TIMER
475 def_bool X86_64 468 def_bool X86_64
476 prompt "HPET Timer Support" if X86_32 469 prompt "HPET Timer Support" if X86_32
477 help 470 help
478 Use the IA-PC HPET (High Precision Event Timer) to manage 471 Use the IA-PC HPET (High Precision Event Timer) to manage
479 time in preference to the PIT and RTC, if a HPET is 472 time in preference to the PIT and RTC, if a HPET is
480 present. 473 present.
481 HPET is the next generation timer replacing legacy 8254s. 474 HPET is the next generation timer replacing legacy 8254s.
482 The HPET provides a stable time base on SMP 475 The HPET provides a stable time base on SMP
483 systems, unlike the TSC, but it is more expensive to access, 476 systems, unlike the TSC, but it is more expensive to access,
484 as it is off-chip. You can find the HPET spec at 477 as it is off-chip. You can find the HPET spec at
485 <http://www.intel.com/hardwaredesign/hpetspec.htm>. 478 <http://www.intel.com/hardwaredesign/hpetspec.htm>.
486 479
487 You can safely choose Y here. However, HPET will only be 480 You can safely choose Y here. However, HPET will only be
488 activated if the platform and the BIOS support this feature. 481 activated if the platform and the BIOS support this feature.
489 Otherwise the 8254 will be used for timing services. 482 Otherwise the 8254 will be used for timing services.
490 483
491 Choose N to continue using the legacy 8254 timer. 484 Choose N to continue using the legacy 8254 timer.
492 485
493 config HPET_EMULATE_RTC 486 config HPET_EMULATE_RTC
494 def_bool y 487 def_bool y
495 depends on HPET_TIMER && (RTC=y || RTC=m || RTC_DRV_CMOS=m || RTC_DRV_CMOS=y) 488 depends on HPET_TIMER && (RTC=y || RTC=m || RTC_DRV_CMOS=m || RTC_DRV_CMOS=y)
496 489
497 # Mark as embedded because too many people got it wrong. 490 # Mark as embedded because too many people got it wrong.
498 # The code disables itself when not needed. 491 # The code disables itself when not needed.
499 config DMI 492 config DMI
500 default y 493 default y
501 bool "Enable DMI scanning" if EMBEDDED 494 bool "Enable DMI scanning" if EMBEDDED
502 help 495 help
503 Enabled scanning of DMI to identify machine quirks. Say Y 496 Enabled scanning of DMI to identify machine quirks. Say Y
504 here unless you have verified that your setup is not 497 here unless you have verified that your setup is not
505 affected by entries in the DMI blacklist. Required by PNP 498 affected by entries in the DMI blacklist. Required by PNP
506 BIOS code. 499 BIOS code.
507 500
508 config GART_IOMMU 501 config GART_IOMMU
509 bool "GART IOMMU support" if EMBEDDED 502 bool "GART IOMMU support" if EMBEDDED
510 default y 503 default y
511 select SWIOTLB 504 select SWIOTLB
512 select AGP 505 select AGP
513 depends on X86_64 && PCI 506 depends on X86_64 && PCI
514 help 507 help
515 Support for full DMA access of devices with 32bit memory access only 508 Support for full DMA access of devices with 32bit memory access only
516 on systems with more than 3GB. This is usually needed for USB, 509 on systems with more than 3GB. This is usually needed for USB,
517 sound, many IDE/SATA chipsets and some other devices. 510 sound, many IDE/SATA chipsets and some other devices.
518 Provides a driver for the AMD Athlon64/Opteron/Turion/Sempron GART 511 Provides a driver for the AMD Athlon64/Opteron/Turion/Sempron GART
519 based hardware IOMMU and a software bounce buffer based IOMMU used 512 based hardware IOMMU and a software bounce buffer based IOMMU used
520 on Intel systems and as fallback. 513 on Intel systems and as fallback.
521 The code is only active when needed (enough memory and limited 514 The code is only active when needed (enough memory and limited
522 device) unless CONFIG_IOMMU_DEBUG or iommu=force is specified 515 device) unless CONFIG_IOMMU_DEBUG or iommu=force is specified
523 too. 516 too.
524 517
525 config CALGARY_IOMMU 518 config CALGARY_IOMMU
526 bool "IBM Calgary IOMMU support" 519 bool "IBM Calgary IOMMU support"
527 select SWIOTLB 520 select SWIOTLB
528 depends on X86_64 && PCI && EXPERIMENTAL 521 depends on X86_64 && PCI && EXPERIMENTAL
529 help 522 help
530 Support for hardware IOMMUs in IBM's xSeries x366 and x460 523 Support for hardware IOMMUs in IBM's xSeries x366 and x460
531 systems. Needed to run systems with more than 3GB of memory 524 systems. Needed to run systems with more than 3GB of memory
532 properly with 32-bit PCI devices that do not support DAC 525 properly with 32-bit PCI devices that do not support DAC
533 (Double Address Cycle). Calgary also supports bus level 526 (Double Address Cycle). Calgary also supports bus level
534 isolation, where all DMAs pass through the IOMMU. This 527 isolation, where all DMAs pass through the IOMMU. This
535 prevents them from going anywhere except their intended 528 prevents them from going anywhere except their intended
536 destination. This catches hard-to-find kernel bugs and 529 destination. This catches hard-to-find kernel bugs and
537 mis-behaving drivers and devices that do not use the DMA-API 530 mis-behaving drivers and devices that do not use the DMA-API
538 properly to set up their DMA buffers. The IOMMU can be 531 properly to set up their DMA buffers. The IOMMU can be
539 turned off at boot time with the iommu=off parameter. 532 turned off at boot time with the iommu=off parameter.
540 Normally the kernel will make the right choice by itself. 533 Normally the kernel will make the right choice by itself.
541 If unsure, say Y. 534 If unsure, say Y.
542 535
543 config CALGARY_IOMMU_ENABLED_BY_DEFAULT 536 config CALGARY_IOMMU_ENABLED_BY_DEFAULT
544 def_bool y 537 def_bool y
545 prompt "Should Calgary be enabled by default?" 538 prompt "Should Calgary be enabled by default?"
546 depends on CALGARY_IOMMU 539 depends on CALGARY_IOMMU
547 help 540 help
548 Should Calgary be enabled by default? if you choose 'y', Calgary 541 Should Calgary be enabled by default? if you choose 'y', Calgary
549 will be used (if it exists). If you choose 'n', Calgary will not be 542 will be used (if it exists). If you choose 'n', Calgary will not be
550 used even if it exists. If you choose 'n' and would like to use 543 used even if it exists. If you choose 'n' and would like to use
551 Calgary anyway, pass 'iommu=calgary' on the kernel command line. 544 Calgary anyway, pass 'iommu=calgary' on the kernel command line.
552 If unsure, say Y. 545 If unsure, say Y.
553 546
554 # need this always selected by IOMMU for the VIA workaround 547 # need this always selected by IOMMU for the VIA workaround
555 config SWIOTLB 548 config SWIOTLB
556 bool 549 bool
557 help 550 help
558 Support for software bounce buffers used on x86-64 systems 551 Support for software bounce buffers used on x86-64 systems
559 which don't have a hardware IOMMU (e.g. the current generation 552 which don't have a hardware IOMMU (e.g. the current generation
560 of Intel's x86-64 CPUs). Using this PCI devices which can only 553 of Intel's x86-64 CPUs). Using this PCI devices which can only
561 access 32-bits of memory can be used on systems with more than 554 access 32-bits of memory can be used on systems with more than
562 3 GB of memory. If unsure, say Y. 555 3 GB of memory. If unsure, say Y.
563 556
564 config IOMMU_HELPER 557 config IOMMU_HELPER
565 def_bool (CALGARY_IOMMU || GART_IOMMU || SWIOTLB) 558 def_bool (CALGARY_IOMMU || GART_IOMMU || SWIOTLB)
566 559
567 config NR_CPUS 560 config NR_CPUS
568 int "Maximum number of CPUs (2-255)" 561 int "Maximum number of CPUs (2-255)"
569 range 2 255 562 range 2 255
570 depends on SMP 563 depends on SMP
571 default "32" if X86_NUMAQ || X86_SUMMIT || X86_BIGSMP || X86_ES7000 564 default "32" if X86_NUMAQ || X86_SUMMIT || X86_BIGSMP || X86_ES7000
572 default "8" 565 default "8"
573 help 566 help
574 This allows you to specify the maximum number of CPUs which this 567 This allows you to specify the maximum number of CPUs which this
575 kernel will support. The maximum supported value is 255 and the 568 kernel will support. The maximum supported value is 255 and the
576 minimum value which makes sense is 2. 569 minimum value which makes sense is 2.
577 570
578 This is purely to save memory - each supported CPU adds 571 This is purely to save memory - each supported CPU adds
579 approximately eight kilobytes to the kernel image. 572 approximately eight kilobytes to the kernel image.
580 573
581 config SCHED_SMT 574 config SCHED_SMT
582 bool "SMT (Hyperthreading) scheduler support" 575 bool "SMT (Hyperthreading) scheduler support"
583 depends on X86_HT 576 depends on X86_HT
584 help 577 help
585 SMT scheduler support improves the CPU scheduler's decision making 578 SMT scheduler support improves the CPU scheduler's decision making
586 when dealing with Intel Pentium 4 chips with HyperThreading at a 579 when dealing with Intel Pentium 4 chips with HyperThreading at a
587 cost of slightly increased overhead in some places. If unsure say 580 cost of slightly increased overhead in some places. If unsure say
588 N here. 581 N here.
589 582
590 config SCHED_MC 583 config SCHED_MC
591 def_bool y 584 def_bool y
592 prompt "Multi-core scheduler support" 585 prompt "Multi-core scheduler support"
593 depends on X86_HT 586 depends on X86_HT
594 help 587 help
595 Multi-core scheduler support improves the CPU scheduler's decision 588 Multi-core scheduler support improves the CPU scheduler's decision
596 making when dealing with multi-core CPU chips at a cost of slightly 589 making when dealing with multi-core CPU chips at a cost of slightly
597 increased overhead in some places. If unsure say N here. 590 increased overhead in some places. If unsure say N here.
598 591
599 source "kernel/Kconfig.preempt" 592 source "kernel/Kconfig.preempt"
600 593
601 config X86_UP_APIC 594 config X86_UP_APIC
602 bool "Local APIC support on uniprocessors" 595 bool "Local APIC support on uniprocessors"
603 depends on X86_32 && !SMP && !(X86_VISWS || X86_VOYAGER || X86_GENERICARCH) 596 depends on X86_32 && !SMP && !(X86_VISWS || X86_VOYAGER || X86_GENERICARCH)
604 help 597 help
605 A local APIC (Advanced Programmable Interrupt Controller) is an 598 A local APIC (Advanced Programmable Interrupt Controller) is an
606 integrated interrupt controller in the CPU. If you have a single-CPU 599 integrated interrupt controller in the CPU. If you have a single-CPU
607 system which has a processor with a local APIC, you can say Y here to 600 system which has a processor with a local APIC, you can say Y here to
608 enable and use it. If you say Y here even though your machine doesn't 601 enable and use it. If you say Y here even though your machine doesn't
609 have a local APIC, then the kernel will still run with no slowdown at 602 have a local APIC, then the kernel will still run with no slowdown at
610 all. The local APIC supports CPU-generated self-interrupts (timer, 603 all. The local APIC supports CPU-generated self-interrupts (timer,
611 performance counters), and the NMI watchdog which detects hard 604 performance counters), and the NMI watchdog which detects hard
612 lockups. 605 lockups.
613 606
614 config X86_UP_IOAPIC 607 config X86_UP_IOAPIC
615 bool "IO-APIC support on uniprocessors" 608 bool "IO-APIC support on uniprocessors"
616 depends on X86_UP_APIC 609 depends on X86_UP_APIC
617 help 610 help
618 An IO-APIC (I/O Advanced Programmable Interrupt Controller) is an 611 An IO-APIC (I/O Advanced Programmable Interrupt Controller) is an
619 SMP-capable replacement for PC-style interrupt controllers. Most 612 SMP-capable replacement for PC-style interrupt controllers. Most
620 SMP systems and many recent uniprocessor systems have one. 613 SMP systems and many recent uniprocessor systems have one.
621 614
622 If you have a single-CPU system with an IO-APIC, you can say Y here 615 If you have a single-CPU system with an IO-APIC, you can say Y here
623 to use it. If you say Y here even though your machine doesn't have 616 to use it. If you say Y here even though your machine doesn't have
624 an IO-APIC, then the kernel will still run with no slowdown at all. 617 an IO-APIC, then the kernel will still run with no slowdown at all.
625 618
626 config X86_LOCAL_APIC 619 config X86_LOCAL_APIC
627 def_bool y 620 def_bool y
628 depends on X86_64 || (X86_32 && (X86_UP_APIC || ((X86_VISWS || SMP) && !X86_VOYAGER) || X86_GENERICARCH)) 621 depends on X86_64 || (X86_32 && (X86_UP_APIC || ((X86_VISWS || SMP) && !X86_VOYAGER) || X86_GENERICARCH))
629 622
630 config X86_IO_APIC 623 config X86_IO_APIC
631 def_bool y 624 def_bool y
632 depends on X86_64 || (X86_32 && (X86_UP_IOAPIC || (SMP && !(X86_VISWS || X86_VOYAGER)) || X86_GENERICARCH)) 625 depends on X86_64 || (X86_32 && (X86_UP_IOAPIC || (SMP && !(X86_VISWS || X86_VOYAGER)) || X86_GENERICARCH))
633 626
634 config X86_VISWS_APIC 627 config X86_VISWS_APIC
635 def_bool y 628 def_bool y
636 depends on X86_32 && X86_VISWS 629 depends on X86_32 && X86_VISWS
637 630
638 config X86_MCE 631 config X86_MCE
639 bool "Machine Check Exception" 632 bool "Machine Check Exception"
640 depends on !X86_VOYAGER 633 depends on !X86_VOYAGER
641 ---help--- 634 ---help---
642 Machine Check Exception support allows the processor to notify the 635 Machine Check Exception support allows the processor to notify the
643 kernel if it detects a problem (e.g. overheating, component failure). 636 kernel if it detects a problem (e.g. overheating, component failure).
644 The action the kernel takes depends on the severity of the problem, 637 The action the kernel takes depends on the severity of the problem,
645 ranging from a warning message on the console, to halting the machine. 638 ranging from a warning message on the console, to halting the machine.
646 Your processor must be a Pentium or newer to support this - check the 639 Your processor must be a Pentium or newer to support this - check the
647 flags in /proc/cpuinfo for mce. Note that some older Pentium systems 640 flags in /proc/cpuinfo for mce. Note that some older Pentium systems
648 have a design flaw which leads to false MCE events - hence MCE is 641 have a design flaw which leads to false MCE events - hence MCE is
649 disabled on all P5 processors, unless explicitly enabled with "mce" 642 disabled on all P5 processors, unless explicitly enabled with "mce"
650 as a boot argument. Similarly, if MCE is built in and creates a 643 as a boot argument. Similarly, if MCE is built in and creates a
651 problem on some new non-standard machine, you can boot with "nomce" 644 problem on some new non-standard machine, you can boot with "nomce"
652 to disable it. MCE support simply ignores non-MCE processors like 645 to disable it. MCE support simply ignores non-MCE processors like
653 the 386 and 486, so nearly everyone can say Y here. 646 the 386 and 486, so nearly everyone can say Y here.
654 647
655 config X86_MCE_INTEL 648 config X86_MCE_INTEL
656 def_bool y 649 def_bool y
657 prompt "Intel MCE features" 650 prompt "Intel MCE features"
658 depends on X86_64 && X86_MCE && X86_LOCAL_APIC 651 depends on X86_64 && X86_MCE && X86_LOCAL_APIC
659 help 652 help
660 Additional support for intel specific MCE features such as 653 Additional support for intel specific MCE features such as
661 the thermal monitor. 654 the thermal monitor.
662 655
663 config X86_MCE_AMD 656 config X86_MCE_AMD
664 def_bool y 657 def_bool y
665 prompt "AMD MCE features" 658 prompt "AMD MCE features"
666 depends on X86_64 && X86_MCE && X86_LOCAL_APIC 659 depends on X86_64 && X86_MCE && X86_LOCAL_APIC
667 help 660 help
668 Additional support for AMD specific MCE features such as 661 Additional support for AMD specific MCE features such as
669 the DRAM Error Threshold. 662 the DRAM Error Threshold.
670 663
671 config X86_MCE_NONFATAL 664 config X86_MCE_NONFATAL
672 tristate "Check for non-fatal errors on AMD Athlon/Duron / Intel Pentium 4" 665 tristate "Check for non-fatal errors on AMD Athlon/Duron / Intel Pentium 4"
673 depends on X86_32 && X86_MCE 666 depends on X86_32 && X86_MCE
674 help 667 help
675 Enabling this feature starts a timer that triggers every 5 seconds which 668 Enabling this feature starts a timer that triggers every 5 seconds which
676 will look at the machine check registers to see if anything happened. 669 will look at the machine check registers to see if anything happened.
677 Non-fatal problems automatically get corrected (but still logged). 670 Non-fatal problems automatically get corrected (but still logged).
678 Disable this if you don't want to see these messages. 671 Disable this if you don't want to see these messages.
679 Seeing the messages this option prints out may be indicative of dying 672 Seeing the messages this option prints out may be indicative of dying
680 or out-of-spec (ie, overclocked) hardware. 673 or out-of-spec (ie, overclocked) hardware.
681 This option only does something on certain CPUs. 674 This option only does something on certain CPUs.
682 (AMD Athlon/Duron and Intel Pentium 4) 675 (AMD Athlon/Duron and Intel Pentium 4)
683 676
684 config X86_MCE_P4THERMAL 677 config X86_MCE_P4THERMAL
685 bool "check for P4 thermal throttling interrupt." 678 bool "check for P4 thermal throttling interrupt."
686 depends on X86_32 && X86_MCE && (X86_UP_APIC || SMP) && !X86_VISWS 679 depends on X86_32 && X86_MCE && (X86_UP_APIC || SMP) && !X86_VISWS
687 help 680 help
688 Enabling this feature will cause a message to be printed when the P4 681 Enabling this feature will cause a message to be printed when the P4
689 enters thermal throttling. 682 enters thermal throttling.
690 683
691 config VM86 684 config VM86
692 bool "Enable VM86 support" if EMBEDDED 685 bool "Enable VM86 support" if EMBEDDED
693 default y 686 default y
694 depends on X86_32 687 depends on X86_32
695 help 688 help
696 This option is required by programs like DOSEMU to run 16-bit legacy 689 This option is required by programs like DOSEMU to run 16-bit legacy
697 code on X86 processors. It also may be needed by software like 690 code on X86 processors. It also may be needed by software like
698 XFree86 to initialize some video cards via BIOS. Disabling this 691 XFree86 to initialize some video cards via BIOS. Disabling this
699 option saves about 6k. 692 option saves about 6k.
700 693
701 config TOSHIBA 694 config TOSHIBA
702 tristate "Toshiba Laptop support" 695 tristate "Toshiba Laptop support"
703 depends on X86_32 696 depends on X86_32
704 ---help--- 697 ---help---
705 This adds a driver to safely access the System Management Mode of 698 This adds a driver to safely access the System Management Mode of
706 the CPU on Toshiba portables with a genuine Toshiba BIOS. It does 699 the CPU on Toshiba portables with a genuine Toshiba BIOS. It does
707 not work on models with a Phoenix BIOS. The System Management Mode 700 not work on models with a Phoenix BIOS. The System Management Mode
708 is used to set the BIOS and power saving options on Toshiba portables. 701 is used to set the BIOS and power saving options on Toshiba portables.
709 702
710 For information on utilities to make use of this driver see the 703 For information on utilities to make use of this driver see the
711 Toshiba Linux utilities web site at: 704 Toshiba Linux utilities web site at:
712 <http://www.buzzard.org.uk/toshiba/>. 705 <http://www.buzzard.org.uk/toshiba/>.
713 706
714 Say Y if you intend to run this kernel on a Toshiba portable. 707 Say Y if you intend to run this kernel on a Toshiba portable.
715 Say N otherwise. 708 Say N otherwise.
716 709
717 config I8K 710 config I8K
718 tristate "Dell laptop support" 711 tristate "Dell laptop support"
719 ---help--- 712 ---help---
720 This adds a driver to safely access the System Management Mode 713 This adds a driver to safely access the System Management Mode
721 of the CPU on the Dell Inspiron 8000. The System Management Mode 714 of the CPU on the Dell Inspiron 8000. The System Management Mode
722 is used to read cpu temperature and cooling fan status and to 715 is used to read cpu temperature and cooling fan status and to
723 control the fans on the I8K portables. 716 control the fans on the I8K portables.
724 717
725 This driver has been tested only on the Inspiron 8000 but it may 718 This driver has been tested only on the Inspiron 8000 but it may
726 also work with other Dell laptops. You can force loading on other 719 also work with other Dell laptops. You can force loading on other
727 models by passing the parameter `force=1' to the module. Use at 720 models by passing the parameter `force=1' to the module. Use at
728 your own risk. 721 your own risk.
729 722
730 For information on utilities to make use of this driver see the 723 For information on utilities to make use of this driver see the
731 I8K Linux utilities web site at: 724 I8K Linux utilities web site at:
732 <http://people.debian.org/~dz/i8k/> 725 <http://people.debian.org/~dz/i8k/>
733 726
734 Say Y if you intend to run this kernel on a Dell Inspiron 8000. 727 Say Y if you intend to run this kernel on a Dell Inspiron 8000.
735 Say N otherwise. 728 Say N otherwise.
736 729
737 config X86_REBOOTFIXUPS 730 config X86_REBOOTFIXUPS
738 def_bool n 731 def_bool n
739 prompt "Enable X86 board specific fixups for reboot" 732 prompt "Enable X86 board specific fixups for reboot"
740 depends on X86_32 && X86 733 depends on X86_32 && X86
741 ---help--- 734 ---help---
742 This enables chipset and/or board specific fixups to be done 735 This enables chipset and/or board specific fixups to be done
743 in order to get reboot to work correctly. This is only needed on 736 in order to get reboot to work correctly. This is only needed on
744 some combinations of hardware and BIOS. The symptom, for which 737 some combinations of hardware and BIOS. The symptom, for which
745 this config is intended, is when reboot ends with a stalled/hung 738 this config is intended, is when reboot ends with a stalled/hung
746 system. 739 system.
747 740
748 Currently, the only fixup is for the Geode machines using 741 Currently, the only fixup is for the Geode machines using
749 CS5530A and CS5536 chipsets and the RDC R-321x SoC. 742 CS5530A and CS5536 chipsets and the RDC R-321x SoC.
750 743
751 Say Y if you want to enable the fixup. Currently, it's safe to 744 Say Y if you want to enable the fixup. Currently, it's safe to
752 enable this option even if you don't need it. 745 enable this option even if you don't need it.
753 Say N otherwise. 746 Say N otherwise.
754 747
755 config MICROCODE 748 config MICROCODE
756 tristate "/dev/cpu/microcode - Intel IA32 CPU microcode support" 749 tristate "/dev/cpu/microcode - Intel IA32 CPU microcode support"
757 select FW_LOADER 750 select FW_LOADER
758 ---help--- 751 ---help---
759 If you say Y here, you will be able to update the microcode on 752 If you say Y here, you will be able to update the microcode on
760 Intel processors in the IA32 family, e.g. Pentium Pro, Pentium II, 753 Intel processors in the IA32 family, e.g. Pentium Pro, Pentium II,
761 Pentium III, Pentium 4, Xeon etc. You will obviously need the 754 Pentium III, Pentium 4, Xeon etc. You will obviously need the
762 actual microcode binary data itself which is not shipped with the 755 actual microcode binary data itself which is not shipped with the
763 Linux kernel. 756 Linux kernel.
764 757
765 For latest news and information on obtaining all the required 758 For latest news and information on obtaining all the required
766 ingredients for this driver, check: 759 ingredients for this driver, check:
767 <http://www.urbanmyth.org/microcode/>. 760 <http://www.urbanmyth.org/microcode/>.
768 761
769 To compile this driver as a module, choose M here: the 762 To compile this driver as a module, choose M here: the
770 module will be called microcode. 763 module will be called microcode.
771 764
772 config MICROCODE_OLD_INTERFACE 765 config MICROCODE_OLD_INTERFACE
773 def_bool y 766 def_bool y
774 depends on MICROCODE 767 depends on MICROCODE
775 768
776 config X86_MSR 769 config X86_MSR
777 tristate "/dev/cpu/*/msr - Model-specific register support" 770 tristate "/dev/cpu/*/msr - Model-specific register support"
778 help 771 help
779 This device gives privileged processes access to the x86 772 This device gives privileged processes access to the x86
780 Model-Specific Registers (MSRs). It is a character device with 773 Model-Specific Registers (MSRs). It is a character device with
781 major 202 and minors 0 to 31 for /dev/cpu/0/msr to /dev/cpu/31/msr. 774 major 202 and minors 0 to 31 for /dev/cpu/0/msr to /dev/cpu/31/msr.
782 MSR accesses are directed to a specific CPU on multi-processor 775 MSR accesses are directed to a specific CPU on multi-processor
783 systems. 776 systems.
784 777
785 config X86_CPUID 778 config X86_CPUID
786 tristate "/dev/cpu/*/cpuid - CPU information support" 779 tristate "/dev/cpu/*/cpuid - CPU information support"
787 help 780 help
788 This device gives processes access to the x86 CPUID instruction to 781 This device gives processes access to the x86 CPUID instruction to
789 be executed on a specific processor. It is a character device 782 be executed on a specific processor. It is a character device
790 with major 203 and minors 0 to 31 for /dev/cpu/0/cpuid to 783 with major 203 and minors 0 to 31 for /dev/cpu/0/cpuid to
791 /dev/cpu/31/cpuid. 784 /dev/cpu/31/cpuid.
792 785
793 choice 786 choice
794 prompt "High Memory Support" 787 prompt "High Memory Support"
795 default HIGHMEM4G if !X86_NUMAQ 788 default HIGHMEM4G if !X86_NUMAQ
796 default HIGHMEM64G if X86_NUMAQ 789 default HIGHMEM64G if X86_NUMAQ
797 depends on X86_32 790 depends on X86_32
798 791
799 config NOHIGHMEM 792 config NOHIGHMEM
800 bool "off" 793 bool "off"
801 depends on !X86_NUMAQ 794 depends on !X86_NUMAQ
802 ---help--- 795 ---help---
803 Linux can use up to 64 Gigabytes of physical memory on x86 systems. 796 Linux can use up to 64 Gigabytes of physical memory on x86 systems.
804 However, the address space of 32-bit x86 processors is only 4 797 However, the address space of 32-bit x86 processors is only 4
805 Gigabytes large. That means that, if you have a large amount of 798 Gigabytes large. That means that, if you have a large amount of
806 physical memory, not all of it can be "permanently mapped" by the 799 physical memory, not all of it can be "permanently mapped" by the
807 kernel. The physical memory that's not permanently mapped is called 800 kernel. The physical memory that's not permanently mapped is called
808 "high memory". 801 "high memory".
809 802
810 If you are compiling a kernel which will never run on a machine with 803 If you are compiling a kernel which will never run on a machine with
811 more than 1 Gigabyte total physical RAM, answer "off" here (default 804 more than 1 Gigabyte total physical RAM, answer "off" here (default
812 choice and suitable for most users). This will result in a "3GB/1GB" 805 choice and suitable for most users). This will result in a "3GB/1GB"
813 split: 3GB are mapped so that each process sees a 3GB virtual memory 806 split: 3GB are mapped so that each process sees a 3GB virtual memory
814 space and the remaining part of the 4GB virtual memory space is used 807 space and the remaining part of the 4GB virtual memory space is used
815 by the kernel to permanently map as much physical memory as 808 by the kernel to permanently map as much physical memory as
816 possible. 809 possible.
817 810
818 If the machine has between 1 and 4 Gigabytes physical RAM, then 811 If the machine has between 1 and 4 Gigabytes physical RAM, then
819 answer "4GB" here. 812 answer "4GB" here.
820 813
821 If more than 4 Gigabytes is used then answer "64GB" here. This 814 If more than 4 Gigabytes is used then answer "64GB" here. This
822 selection turns Intel PAE (Physical Address Extension) mode on. 815 selection turns Intel PAE (Physical Address Extension) mode on.
823 PAE implements 3-level paging on IA32 processors. PAE is fully 816 PAE implements 3-level paging on IA32 processors. PAE is fully
824 supported by Linux, PAE mode is implemented on all recent Intel 817 supported by Linux, PAE mode is implemented on all recent Intel
825 processors (Pentium Pro and better). NOTE: If you say "64GB" here, 818 processors (Pentium Pro and better). NOTE: If you say "64GB" here,
826 then the kernel will not boot on CPUs that don't support PAE! 819 then the kernel will not boot on CPUs that don't support PAE!
827 820
828 The actual amount of total physical memory will either be 821 The actual amount of total physical memory will either be
829 auto detected or can be forced by using a kernel command line option 822 auto detected or can be forced by using a kernel command line option
830 such as "mem=256M". (Try "man bootparam" or see the documentation of 823 such as "mem=256M". (Try "man bootparam" or see the documentation of
831 your boot loader (lilo or loadlin) about how to pass options to the 824 your boot loader (lilo or loadlin) about how to pass options to the
832 kernel at boot time.) 825 kernel at boot time.)
833 826
834 If unsure, say "off". 827 If unsure, say "off".
835 828
836 config HIGHMEM4G 829 config HIGHMEM4G
837 bool "4GB" 830 bool "4GB"
838 depends on !X86_NUMAQ 831 depends on !X86_NUMAQ
839 help 832 help
840 Select this if you have a 32-bit processor and between 1 and 4 833 Select this if you have a 32-bit processor and between 1 and 4
841 gigabytes of physical RAM. 834 gigabytes of physical RAM.
842 835
843 config HIGHMEM64G 836 config HIGHMEM64G
844 bool "64GB" 837 bool "64GB"
845 depends on !M386 && !M486 838 depends on !M386 && !M486
846 select X86_PAE 839 select X86_PAE
847 help 840 help
848 Select this if you have a 32-bit processor and more than 4 841 Select this if you have a 32-bit processor and more than 4
849 gigabytes of physical RAM. 842 gigabytes of physical RAM.
850 843
851 endchoice 844 endchoice
852 845
853 choice 846 choice
854 depends on EXPERIMENTAL 847 depends on EXPERIMENTAL
855 prompt "Memory split" if EMBEDDED 848 prompt "Memory split" if EMBEDDED
856 default VMSPLIT_3G 849 default VMSPLIT_3G
857 depends on X86_32 850 depends on X86_32
858 help 851 help
859 Select the desired split between kernel and user memory. 852 Select the desired split between kernel and user memory.
860 853
861 If the address range available to the kernel is less than the 854 If the address range available to the kernel is less than the
862 physical memory installed, the remaining memory will be available 855 physical memory installed, the remaining memory will be available
863 as "high memory". Accessing high memory is a little more costly 856 as "high memory". Accessing high memory is a little more costly
864 than low memory, as it needs to be mapped into the kernel first. 857 than low memory, as it needs to be mapped into the kernel first.
865 Note that increasing the kernel address space limits the range 858 Note that increasing the kernel address space limits the range
866 available to user programs, making the address space there 859 available to user programs, making the address space there
867 tighter. Selecting anything other than the default 3G/1G split 860 tighter. Selecting anything other than the default 3G/1G split
868 will also likely make your kernel incompatible with binary-only 861 will also likely make your kernel incompatible with binary-only
869 kernel modules. 862 kernel modules.
870 863
871 If you are not absolutely sure what you are doing, leave this 864 If you are not absolutely sure what you are doing, leave this
872 option alone! 865 option alone!
873 866
874 config VMSPLIT_3G 867 config VMSPLIT_3G
875 bool "3G/1G user/kernel split" 868 bool "3G/1G user/kernel split"
876 config VMSPLIT_3G_OPT 869 config VMSPLIT_3G_OPT
877 depends on !X86_PAE 870 depends on !X86_PAE
878 bool "3G/1G user/kernel split (for full 1G low memory)" 871 bool "3G/1G user/kernel split (for full 1G low memory)"
879 config VMSPLIT_2G 872 config VMSPLIT_2G
880 bool "2G/2G user/kernel split" 873 bool "2G/2G user/kernel split"
881 config VMSPLIT_2G_OPT 874 config VMSPLIT_2G_OPT
882 depends on !X86_PAE 875 depends on !X86_PAE
883 bool "2G/2G user/kernel split (for full 2G low memory)" 876 bool "2G/2G user/kernel split (for full 2G low memory)"
884 config VMSPLIT_1G 877 config VMSPLIT_1G
885 bool "1G/3G user/kernel split" 878 bool "1G/3G user/kernel split"
886 endchoice 879 endchoice
887 880
888 config PAGE_OFFSET 881 config PAGE_OFFSET
889 hex 882 hex
890 default 0xB0000000 if VMSPLIT_3G_OPT 883 default 0xB0000000 if VMSPLIT_3G_OPT
891 default 0x80000000 if VMSPLIT_2G 884 default 0x80000000 if VMSPLIT_2G
892 default 0x78000000 if VMSPLIT_2G_OPT 885 default 0x78000000 if VMSPLIT_2G_OPT
893 default 0x40000000 if VMSPLIT_1G 886 default 0x40000000 if VMSPLIT_1G
894 default 0xC0000000 887 default 0xC0000000
895 depends on X86_32 888 depends on X86_32
896 889
897 config HIGHMEM 890 config HIGHMEM
898 def_bool y 891 def_bool y
899 depends on X86_32 && (HIGHMEM64G || HIGHMEM4G) 892 depends on X86_32 && (HIGHMEM64G || HIGHMEM4G)
900 893
901 config X86_PAE 894 config X86_PAE
902 def_bool n 895 def_bool n
903 prompt "PAE (Physical Address Extension) Support" 896 prompt "PAE (Physical Address Extension) Support"
904 depends on X86_32 && !HIGHMEM4G 897 depends on X86_32 && !HIGHMEM4G
905 select RESOURCES_64BIT 898 select RESOURCES_64BIT
906 help 899 help
907 PAE is required for NX support, and furthermore enables 900 PAE is required for NX support, and furthermore enables
908 larger swapspace support for non-overcommit purposes. It 901 larger swapspace support for non-overcommit purposes. It
909 has the cost of more pagetable lookup overhead, and also 902 has the cost of more pagetable lookup overhead, and also
910 consumes more pagetable space per process. 903 consumes more pagetable space per process.
911 904
912 # Common NUMA Features 905 # Common NUMA Features
913 config NUMA 906 config NUMA
914 bool "Numa Memory Allocation and Scheduler Support (EXPERIMENTAL)" 907 bool "Numa Memory Allocation and Scheduler Support (EXPERIMENTAL)"
915 depends on SMP 908 depends on SMP
916 depends on X86_64 || (X86_32 && HIGHMEM64G && (X86_NUMAQ || (X86_SUMMIT || X86_GENERICARCH) && ACPI) && EXPERIMENTAL) 909 depends on X86_64 || (X86_32 && HIGHMEM64G && (X86_NUMAQ || (X86_SUMMIT || X86_GENERICARCH) && ACPI) && EXPERIMENTAL)
917 default n if X86_PC 910 default n if X86_PC
918 default y if (X86_NUMAQ || X86_SUMMIT) 911 default y if (X86_NUMAQ || X86_SUMMIT)
919 help 912 help
920 Enable NUMA (Non Uniform Memory Access) support. 913 Enable NUMA (Non Uniform Memory Access) support.
921 The kernel will try to allocate memory used by a CPU on the 914 The kernel will try to allocate memory used by a CPU on the
922 local memory controller of the CPU and add some more 915 local memory controller of the CPU and add some more
923 NUMA awareness to the kernel. 916 NUMA awareness to the kernel.
924 917
925 For i386 this is currently highly experimental and should be only 918 For i386 this is currently highly experimental and should be only
926 used for kernel development. It might also cause boot failures. 919 used for kernel development. It might also cause boot failures.
927 For x86_64 this is recommended on all multiprocessor Opteron systems. 920 For x86_64 this is recommended on all multiprocessor Opteron systems.
928 If the system is EM64T, you should say N unless your system is 921 If the system is EM64T, you should say N unless your system is
929 EM64T NUMA. 922 EM64T NUMA.
930 923
931 comment "NUMA (Summit) requires SMP, 64GB highmem support, ACPI" 924 comment "NUMA (Summit) requires SMP, 64GB highmem support, ACPI"
932 depends on X86_32 && X86_SUMMIT && (!HIGHMEM64G || !ACPI) 925 depends on X86_32 && X86_SUMMIT && (!HIGHMEM64G || !ACPI)
933 926
934 config K8_NUMA 927 config K8_NUMA
935 def_bool y 928 def_bool y
936 prompt "Old style AMD Opteron NUMA detection" 929 prompt "Old style AMD Opteron NUMA detection"
937 depends on X86_64 && NUMA && PCI 930 depends on X86_64 && NUMA && PCI
938 help 931 help
939 Enable K8 NUMA node topology detection. You should say Y here if 932 Enable K8 NUMA node topology detection. You should say Y here if
940 you have a multi processor AMD K8 system. This uses an old 933 you have a multi processor AMD K8 system. This uses an old
941 method to read the NUMA configuration directly from the builtin 934 method to read the NUMA configuration directly from the builtin
942 Northbridge of Opteron. It is recommended to use X86_64_ACPI_NUMA 935 Northbridge of Opteron. It is recommended to use X86_64_ACPI_NUMA
943 instead, which also takes priority if both are compiled in. 936 instead, which also takes priority if both are compiled in.
944 937
945 config X86_64_ACPI_NUMA 938 config X86_64_ACPI_NUMA
946 def_bool y 939 def_bool y
947 prompt "ACPI NUMA detection" 940 prompt "ACPI NUMA detection"
948 depends on X86_64 && NUMA && ACPI && PCI 941 depends on X86_64 && NUMA && ACPI && PCI
949 select ACPI_NUMA 942 select ACPI_NUMA
950 help 943 help
951 Enable ACPI SRAT based node topology detection. 944 Enable ACPI SRAT based node topology detection.
952 945
953 # Some NUMA nodes have memory ranges that span 946 # Some NUMA nodes have memory ranges that span
954 # other nodes. Even though a pfn is valid and 947 # other nodes. Even though a pfn is valid and
955 # between a node's start and end pfns, it may not 948 # between a node's start and end pfns, it may not
956 # reside on that node. See memmap_init_zone() 949 # reside on that node. See memmap_init_zone()
957 # for details. 950 # for details.
958 config NODES_SPAN_OTHER_NODES 951 config NODES_SPAN_OTHER_NODES
959 def_bool y 952 def_bool y
960 depends on X86_64_ACPI_NUMA 953 depends on X86_64_ACPI_NUMA
961 954
962 config NUMA_EMU 955 config NUMA_EMU
963 bool "NUMA emulation" 956 bool "NUMA emulation"
964 depends on X86_64 && NUMA 957 depends on X86_64 && NUMA
965 help 958 help
966 Enable NUMA emulation. A flat machine will be split 959 Enable NUMA emulation. A flat machine will be split
967 into virtual nodes when booted with "numa=fake=N", where N is the 960 into virtual nodes when booted with "numa=fake=N", where N is the
968 number of nodes. This is only useful for debugging. 961 number of nodes. This is only useful for debugging.
969 962
970 config NODES_SHIFT 963 config NODES_SHIFT
971 int "Max num nodes shift(1-15)" 964 int "Max num nodes shift(1-15)"
972 range 1 15 if X86_64 965 range 1 15 if X86_64
973 default "6" if X86_64 966 default "6" if X86_64
974 default "4" if X86_NUMAQ 967 default "4" if X86_NUMAQ
975 default "3" 968 default "3"
976 depends on NEED_MULTIPLE_NODES 969 depends on NEED_MULTIPLE_NODES
977 970
978 config HAVE_ARCH_BOOTMEM_NODE 971 config HAVE_ARCH_BOOTMEM_NODE
979 def_bool y 972 def_bool y
980 depends on X86_32 && NUMA 973 depends on X86_32 && NUMA
981 974
982 config ARCH_HAVE_MEMORY_PRESENT 975 config ARCH_HAVE_MEMORY_PRESENT
983 def_bool y 976 def_bool y
984 depends on X86_32 && DISCONTIGMEM 977 depends on X86_32 && DISCONTIGMEM
985 978
986 config NEED_NODE_MEMMAP_SIZE 979 config NEED_NODE_MEMMAP_SIZE
987 def_bool y 980 def_bool y
988 depends on X86_32 && (DISCONTIGMEM || SPARSEMEM) 981 depends on X86_32 && (DISCONTIGMEM || SPARSEMEM)
989 982
990 config HAVE_ARCH_ALLOC_REMAP 983 config HAVE_ARCH_ALLOC_REMAP
991 def_bool y 984 def_bool y
992 depends on X86_32 && NUMA 985 depends on X86_32 && NUMA
993 986
994 config ARCH_FLATMEM_ENABLE 987 config ARCH_FLATMEM_ENABLE
995 def_bool y 988 def_bool y
996 depends on X86_32 && ARCH_SELECT_MEMORY_MODEL && X86_PC && !NUMA 989 depends on X86_32 && ARCH_SELECT_MEMORY_MODEL && X86_PC && !NUMA
997 990
998 config ARCH_DISCONTIGMEM_ENABLE 991 config ARCH_DISCONTIGMEM_ENABLE
999 def_bool y 992 def_bool y
1000 depends on NUMA && X86_32 993 depends on NUMA && X86_32
1001 994
1002 config ARCH_DISCONTIGMEM_DEFAULT 995 config ARCH_DISCONTIGMEM_DEFAULT
1003 def_bool y 996 def_bool y
1004 depends on NUMA && X86_32 997 depends on NUMA && X86_32
1005 998
1006 config ARCH_SPARSEMEM_DEFAULT 999 config ARCH_SPARSEMEM_DEFAULT
1007 def_bool y 1000 def_bool y
1008 depends on X86_64 1001 depends on X86_64
1009 1002
1010 config ARCH_SPARSEMEM_ENABLE 1003 config ARCH_SPARSEMEM_ENABLE
1011 def_bool y 1004 def_bool y
1012 depends on X86_64 || NUMA || (EXPERIMENTAL && X86_PC) 1005 depends on X86_64 || NUMA || (EXPERIMENTAL && X86_PC)
1013 select SPARSEMEM_STATIC if X86_32 1006 select SPARSEMEM_STATIC if X86_32
1014 select SPARSEMEM_VMEMMAP_ENABLE if X86_64 1007 select SPARSEMEM_VMEMMAP_ENABLE if X86_64
1015 1008
1016 config ARCH_SELECT_MEMORY_MODEL 1009 config ARCH_SELECT_MEMORY_MODEL
1017 def_bool y 1010 def_bool y
1018 depends on ARCH_SPARSEMEM_ENABLE 1011 depends on ARCH_SPARSEMEM_ENABLE
1019 1012
1020 config ARCH_MEMORY_PROBE 1013 config ARCH_MEMORY_PROBE
1021 def_bool X86_64 1014 def_bool X86_64
1022 depends on MEMORY_HOTPLUG 1015 depends on MEMORY_HOTPLUG
1023 1016
1024 source "mm/Kconfig" 1017 source "mm/Kconfig"
1025 1018
1026 config HIGHPTE 1019 config HIGHPTE
1027 bool "Allocate 3rd-level pagetables from highmem" 1020 bool "Allocate 3rd-level pagetables from highmem"
1028 depends on X86_32 && (HIGHMEM4G || HIGHMEM64G) 1021 depends on X86_32 && (HIGHMEM4G || HIGHMEM64G)
1029 help 1022 help
1030 The VM uses one page table entry for each page of physical memory. 1023 The VM uses one page table entry for each page of physical memory.
1031 For systems with a lot of RAM, this can be wasteful of precious 1024 For systems with a lot of RAM, this can be wasteful of precious
1032 low memory. Setting this option will put user-space page table 1025 low memory. Setting this option will put user-space page table
1033 entries in high memory. 1026 entries in high memory.
1034 1027
1035 config MATH_EMULATION 1028 config MATH_EMULATION
1036 bool 1029 bool
1037 prompt "Math emulation" if X86_32 1030 prompt "Math emulation" if X86_32
1038 ---help--- 1031 ---help---
1039 Linux can emulate a math coprocessor (used for floating point 1032 Linux can emulate a math coprocessor (used for floating point
1040 operations) if you don't have one. 486DX and Pentium processors have 1033 operations) if you don't have one. 486DX and Pentium processors have
1041 a math coprocessor built in, 486SX and 386 do not, unless you added 1034 a math coprocessor built in, 486SX and 386 do not, unless you added
1042 a 487DX or 387, respectively. (The messages during boot time can 1035 a 487DX or 387, respectively. (The messages during boot time can
1043 give you some hints here ["man dmesg"].) Everyone needs either a 1036 give you some hints here ["man dmesg"].) Everyone needs either a
1044 coprocessor or this emulation. 1037 coprocessor or this emulation.
1045 1038
1046 If you don't have a math coprocessor, you need to say Y here; if you 1039 If you don't have a math coprocessor, you need to say Y here; if you
1047 say Y here even though you have a coprocessor, the coprocessor will 1040 say Y here even though you have a coprocessor, the coprocessor will
1048 be used nevertheless. (This behavior can be changed with the kernel 1041 be used nevertheless. (This behavior can be changed with the kernel
1049 command line option "no387", which comes handy if your coprocessor 1042 command line option "no387", which comes handy if your coprocessor
1050 is broken. Try "man bootparam" or see the documentation of your boot 1043 is broken. Try "man bootparam" or see the documentation of your boot
1051 loader (lilo or loadlin) about how to pass options to the kernel at 1044 loader (lilo or loadlin) about how to pass options to the kernel at
1052 boot time.) This means that it is a good idea to say Y here if you 1045 boot time.) This means that it is a good idea to say Y here if you
1053 intend to use this kernel on different machines. 1046 intend to use this kernel on different machines.
1054 1047
1055 More information about the internals of the Linux math coprocessor 1048 More information about the internals of the Linux math coprocessor
1056 emulation can be found in <file:arch/x86/math-emu/README>. 1049 emulation can be found in <file:arch/x86/math-emu/README>.
1057 1050
1058 If you are not sure, say Y; apart from resulting in a 66 KB bigger 1051 If you are not sure, say Y; apart from resulting in a 66 KB bigger
1059 kernel, it won't hurt. 1052 kernel, it won't hurt.
1060 1053
1061 config MTRR 1054 config MTRR
1062 bool "MTRR (Memory Type Range Register) support" 1055 bool "MTRR (Memory Type Range Register) support"
1063 ---help--- 1056 ---help---
1064 On Intel P6 family processors (Pentium Pro, Pentium II and later) 1057 On Intel P6 family processors (Pentium Pro, Pentium II and later)
1065 the Memory Type Range Registers (MTRRs) may be used to control 1058 the Memory Type Range Registers (MTRRs) may be used to control
1066 processor access to memory ranges. This is most useful if you have 1059 processor access to memory ranges. This is most useful if you have
1067 a video (VGA) card on a PCI or AGP bus. Enabling write-combining 1060 a video (VGA) card on a PCI or AGP bus. Enabling write-combining
1068 allows bus write transfers to be combined into a larger transfer 1061 allows bus write transfers to be combined into a larger transfer
1069 before bursting over the PCI/AGP bus. This can increase performance 1062 before bursting over the PCI/AGP bus. This can increase performance
1070 of image write operations 2.5 times or more. Saying Y here creates a 1063 of image write operations 2.5 times or more. Saying Y here creates a
1071 /proc/mtrr file which may be used to manipulate your processor's 1064 /proc/mtrr file which may be used to manipulate your processor's
1072 MTRRs. Typically the X server should use this. 1065 MTRRs. Typically the X server should use this.
1073 1066
1074 This code has a reasonably generic interface so that similar 1067 This code has a reasonably generic interface so that similar
1075 control registers on other processors can be easily supported 1068 control registers on other processors can be easily supported
1076 as well: 1069 as well:
1077 1070
1078 The Cyrix 6x86, 6x86MX and M II processors have Address Range 1071 The Cyrix 6x86, 6x86MX and M II processors have Address Range
1079 Registers (ARRs) which provide a similar functionality to MTRRs. For 1072 Registers (ARRs) which provide a similar functionality to MTRRs. For
1080 these, the ARRs are used to emulate the MTRRs. 1073 these, the ARRs are used to emulate the MTRRs.
1081 The AMD K6-2 (stepping 8 and above) and K6-3 processors have two 1074 The AMD K6-2 (stepping 8 and above) and K6-3 processors have two
1082 MTRRs. The Centaur C6 (WinChip) has 8 MCRs, allowing 1075 MTRRs. The Centaur C6 (WinChip) has 8 MCRs, allowing
1083 write-combining. All of these processors are supported by this code 1076 write-combining. All of these processors are supported by this code
1084 and it makes sense to say Y here if you have one of them. 1077 and it makes sense to say Y here if you have one of them.
1085 1078
1086 Saying Y here also fixes a problem with buggy SMP BIOSes which only 1079 Saying Y here also fixes a problem with buggy SMP BIOSes which only
1087 set the MTRRs for the boot CPU and not for the secondary CPUs. This 1080 set the MTRRs for the boot CPU and not for the secondary CPUs. This
1088 can lead to all sorts of problems, so it's good to say Y here. 1081 can lead to all sorts of problems, so it's good to say Y here.
1089 1082
1090 You can safely say Y even if your machine doesn't have MTRRs, you'll 1083 You can safely say Y even if your machine doesn't have MTRRs, you'll
1091 just add about 9 KB to your kernel. 1084 just add about 9 KB to your kernel.
1092 1085
1093 See <file:Documentation/mtrr.txt> for more information. 1086 See <file:Documentation/mtrr.txt> for more information.
1094 1087
1095 config X86_PAT 1088 config X86_PAT
1096 bool 1089 bool
1097 prompt "x86 PAT support" 1090 prompt "x86 PAT support"
1098 depends on MTRR 1091 depends on MTRR
1099 help 1092 help
1100 Use PAT attributes to setup page level cache control. 1093 Use PAT attributes to setup page level cache control.
1101 1094
1102 PATs are the modern equivalents of MTRRs and are much more 1095 PATs are the modern equivalents of MTRRs and are much more
1103 flexible than MTRRs. 1096 flexible than MTRRs.
1104 1097
1105 Say N here if you see bootup problems (boot crash, boot hang, 1098 Say N here if you see bootup problems (boot crash, boot hang,
1106 spontaneous reboots) or a non-working video driver. 1099 spontaneous reboots) or a non-working video driver.
1107 1100
1108 If unsure, say Y. 1101 If unsure, say Y.
1109 1102
1110 config EFI 1103 config EFI
1111 def_bool n 1104 def_bool n
1112 prompt "EFI runtime service support" 1105 prompt "EFI runtime service support"
1113 depends on ACPI 1106 depends on ACPI
1114 ---help--- 1107 ---help---
1115 This enables the kernel to use EFI runtime services that are 1108 This enables the kernel to use EFI runtime services that are
1116 available (such as the EFI variable services). 1109 available (such as the EFI variable services).
1117 1110
1118 This option is only useful on systems that have EFI firmware. 1111 This option is only useful on systems that have EFI firmware.
1119 In addition, you should use the latest ELILO loader available 1112 In addition, you should use the latest ELILO loader available
1120 at <http://elilo.sourceforge.net> in order to take advantage 1113 at <http://elilo.sourceforge.net> in order to take advantage
1121 of EFI runtime services. However, even with this option, the 1114 of EFI runtime services. However, even with this option, the
1122 resultant kernel should continue to boot on existing non-EFI 1115 resultant kernel should continue to boot on existing non-EFI
1123 platforms. 1116 platforms.
1124 1117
1125 config IRQBALANCE 1118 config IRQBALANCE
1126 def_bool y 1119 def_bool y
1127 prompt "Enable kernel irq balancing" 1120 prompt "Enable kernel irq balancing"
1128 depends on X86_32 && SMP && X86_IO_APIC 1121 depends on X86_32 && SMP && X86_IO_APIC
1129 help 1122 help
1130 The default yes will allow the kernel to do irq load balancing. 1123 The default yes will allow the kernel to do irq load balancing.
1131 Saying no will keep the kernel from doing irq load balancing. 1124 Saying no will keep the kernel from doing irq load balancing.
1132 1125
1133 config SECCOMP 1126 config SECCOMP
1134 def_bool y 1127 def_bool y
1135 prompt "Enable seccomp to safely compute untrusted bytecode" 1128 prompt "Enable seccomp to safely compute untrusted bytecode"
1136 depends on PROC_FS 1129 depends on PROC_FS
1137 help 1130 help
1138 This kernel feature is useful for number crunching applications 1131 This kernel feature is useful for number crunching applications
1139 that may need to compute untrusted bytecode during their 1132 that may need to compute untrusted bytecode during their
1140 execution. By using pipes or other transports made available to 1133 execution. By using pipes or other transports made available to
1141 the process as file descriptors supporting the read/write 1134 the process as file descriptors supporting the read/write
1142 syscalls, it's possible to isolate those applications in 1135 syscalls, it's possible to isolate those applications in
1143 their own address space using seccomp. Once seccomp is 1136 their own address space using seccomp. Once seccomp is
1144 enabled via /proc/<pid>/seccomp, it cannot be disabled 1137 enabled via /proc/<pid>/seccomp, it cannot be disabled
1145 and the task is only allowed to execute a few safe syscalls 1138 and the task is only allowed to execute a few safe syscalls
1146 defined by each seccomp mode. 1139 defined by each seccomp mode.
1147 1140
1148 If unsure, say Y. Only embedded should say N here. 1141 If unsure, say Y. Only embedded should say N here.
1149 1142
1150 config CC_STACKPROTECTOR 1143 config CC_STACKPROTECTOR
1151 bool "Enable -fstack-protector buffer overflow detection (EXPERIMENTAL)" 1144 bool "Enable -fstack-protector buffer overflow detection (EXPERIMENTAL)"
1152 depends on X86_64 && EXPERIMENTAL && BROKEN 1145 depends on X86_64 && EXPERIMENTAL && BROKEN
1153 help 1146 help
1154 This option turns on the -fstack-protector GCC feature. This 1147 This option turns on the -fstack-protector GCC feature. This
1155 feature puts, at the beginning of critical functions, a canary 1148 feature puts, at the beginning of critical functions, a canary
1156 value on the stack just before the return address, and validates 1149 value on the stack just before the return address, and validates
1157 the value just before actually returning. Stack based buffer 1150 the value just before actually returning. Stack based buffer
1158 overflows (that need to overwrite this return address) now also 1151 overflows (that need to overwrite this return address) now also
1159 overwrite the canary, which gets detected and the attack is then 1152 overwrite the canary, which gets detected and the attack is then
1160 neutralized via a kernel panic. 1153 neutralized via a kernel panic.
1161 1154
1162 This feature requires gcc version 4.2 or above, or a distribution 1155 This feature requires gcc version 4.2 or above, or a distribution
1163 gcc with the feature backported. Older versions are automatically 1156 gcc with the feature backported. Older versions are automatically
1164 detected and for those versions, this configuration option is ignored. 1157 detected and for those versions, this configuration option is ignored.
1165 1158
1166 config CC_STACKPROTECTOR_ALL 1159 config CC_STACKPROTECTOR_ALL
1167 bool "Use stack-protector for all functions" 1160 bool "Use stack-protector for all functions"
1168 depends on CC_STACKPROTECTOR 1161 depends on CC_STACKPROTECTOR
1169 help 1162 help
1170 Normally, GCC only inserts the canary value protection for 1163 Normally, GCC only inserts the canary value protection for
1171 functions that use large-ish on-stack buffers. By enabling 1164 functions that use large-ish on-stack buffers. By enabling
1172 this option, GCC will be asked to do this for ALL functions. 1165 this option, GCC will be asked to do this for ALL functions.
1173 1166
1174 source kernel/Kconfig.hz 1167 source kernel/Kconfig.hz
1175 1168
1176 config KEXEC 1169 config KEXEC
1177 bool "kexec system call" 1170 bool "kexec system call"
1178 depends on X86_BIOS_REBOOT 1171 depends on X86_BIOS_REBOOT
1179 help 1172 help
1180 kexec is a system call that implements the ability to shutdown your 1173 kexec is a system call that implements the ability to shutdown your
1181 current kernel, and to start another kernel. It is like a reboot 1174 current kernel, and to start another kernel. It is like a reboot
1182 but it is independent of the system firmware. And like a reboot 1175 but it is independent of the system firmware. And like a reboot
1183 you can start any kernel with it, not just Linux. 1176 you can start any kernel with it, not just Linux.
1184 1177
1185 The name comes from the similarity to the exec system call. 1178 The name comes from the similarity to the exec system call.
1186 1179
1187 It is an ongoing process to be certain the hardware in a machine 1180 It is an ongoing process to be certain the hardware in a machine
1188 is properly shutdown, so do not be surprised if this code does not 1181 is properly shutdown, so do not be surprised if this code does not
1189 initially work for you. It may help to enable device hotplugging 1182 initially work for you. It may help to enable device hotplugging
1190 support. As of this writing the exact hardware interface is 1183 support. As of this writing the exact hardware interface is
1191 strongly in flux, so no good recommendation can be made. 1184 strongly in flux, so no good recommendation can be made.
1192 1185
1193 config CRASH_DUMP 1186 config CRASH_DUMP
1194 bool "kernel crash dumps (EXPERIMENTAL)" 1187 bool "kernel crash dumps (EXPERIMENTAL)"
1195 depends on EXPERIMENTAL 1188 depends on EXPERIMENTAL
1196 depends on X86_64 || (X86_32 && HIGHMEM) 1189 depends on X86_64 || (X86_32 && HIGHMEM)
1197 help 1190 help
1198 Generate crash dump after being started by kexec. 1191 Generate crash dump after being started by kexec.
1199 This should be normally only set in special crash dump kernels 1192 This should be normally only set in special crash dump kernels
1200 which are loaded in the main kernel with kexec-tools into 1193 which are loaded in the main kernel with kexec-tools into
1201 a specially reserved region and then later executed after 1194 a specially reserved region and then later executed after
1202 a crash by kdump/kexec. The crash dump kernel must be compiled 1195 a crash by kdump/kexec. The crash dump kernel must be compiled
1203 to a memory address not used by the main kernel or BIOS using 1196 to a memory address not used by the main kernel or BIOS using
1204 PHYSICAL_START, or it must be built as a relocatable image 1197 PHYSICAL_START, or it must be built as a relocatable image
1205 (CONFIG_RELOCATABLE=y). 1198 (CONFIG_RELOCATABLE=y).
1206 For more details see Documentation/kdump/kdump.txt 1199 For more details see Documentation/kdump/kdump.txt
1207 1200
1208 config PHYSICAL_START 1201 config PHYSICAL_START
1209 hex "Physical address where the kernel is loaded" if (EMBEDDED || CRASH_DUMP) 1202 hex "Physical address where the kernel is loaded" if (EMBEDDED || CRASH_DUMP)
1210 default "0x1000000" if X86_NUMAQ 1203 default "0x1000000" if X86_NUMAQ
1211 default "0x200000" if X86_64 1204 default "0x200000" if X86_64
1212 default "0x100000" 1205 default "0x100000"
1213 help 1206 help
1214 This gives the physical address where the kernel is loaded. 1207 This gives the physical address where the kernel is loaded.
1215 1208
1216 If kernel is a not relocatable (CONFIG_RELOCATABLE=n) then 1209 If kernel is a not relocatable (CONFIG_RELOCATABLE=n) then
1217 bzImage will decompress itself to above physical address and 1210 bzImage will decompress itself to above physical address and
1218 run from there. Otherwise, bzImage will run from the address where 1211 run from there. Otherwise, bzImage will run from the address where
1219 it has been loaded by the boot loader and will ignore above physical 1212 it has been loaded by the boot loader and will ignore above physical
1220 address. 1213 address.
1221 1214
1222 In normal kdump cases one does not have to set/change this option 1215 In normal kdump cases one does not have to set/change this option
1223 as now bzImage can be compiled as a completely relocatable image 1216 as now bzImage can be compiled as a completely relocatable image
1224 (CONFIG_RELOCATABLE=y) and be used to load and run from a different 1217 (CONFIG_RELOCATABLE=y) and be used to load and run from a different
1225 address. This option is mainly useful for the folks who don't want 1218 address. This option is mainly useful for the folks who don't want
1226 to use a bzImage for capturing the crash dump and want to use a 1219 to use a bzImage for capturing the crash dump and want to use a
1227 vmlinux instead. vmlinux is not relocatable hence a kernel needs 1220 vmlinux instead. vmlinux is not relocatable hence a kernel needs
1228 to be specifically compiled to run from a specific memory area 1221 to be specifically compiled to run from a specific memory area
1229 (normally a reserved region) and this option comes handy. 1222 (normally a reserved region) and this option comes handy.
1230 1223
1231 So if you are using bzImage for capturing the crash dump, leave 1224 So if you are using bzImage for capturing the crash dump, leave
1232 the value here unchanged to 0x100000 and set CONFIG_RELOCATABLE=y. 1225 the value here unchanged to 0x100000 and set CONFIG_RELOCATABLE=y.
1233 Otherwise if you plan to use vmlinux for capturing the crash dump 1226 Otherwise if you plan to use vmlinux for capturing the crash dump
1234 change this value to start of the reserved region (Typically 16MB 1227 change this value to start of the reserved region (Typically 16MB
1235 0x1000000). In other words, it can be set based on the "X" value as 1228 0x1000000). In other words, it can be set based on the "X" value as
1236 specified in the "crashkernel=YM@XM" command line boot parameter 1229 specified in the "crashkernel=YM@XM" command line boot parameter
1237 passed to the panic-ed kernel. Typically this parameter is set as 1230 passed to the panic-ed kernel. Typically this parameter is set as
1238 crashkernel=64M@16M. Please take a look at 1231 crashkernel=64M@16M. Please take a look at
1239 Documentation/kdump/kdump.txt for more details about crash dumps. 1232 Documentation/kdump/kdump.txt for more details about crash dumps.
1240 1233
1241 Usage of bzImage for capturing the crash dump is recommended as 1234 Usage of bzImage for capturing the crash dump is recommended as
1242 one does not have to build two kernels. Same kernel can be used 1235 one does not have to build two kernels. Same kernel can be used
1243 as production kernel and capture kernel. Above option should have 1236 as production kernel and capture kernel. Above option should have
1244 gone away after relocatable bzImage support is introduced. But it 1237 gone away after relocatable bzImage support is introduced. But it
1245 is present because there are users out there who continue to use 1238 is present because there are users out there who continue to use
1246 vmlinux for dump capture. This option should go away down the 1239 vmlinux for dump capture. This option should go away down the
1247 line. 1240 line.
1248 1241
1249 Don't change this unless you know what you are doing. 1242 Don't change this unless you know what you are doing.
1250 1243
1251 config RELOCATABLE 1244 config RELOCATABLE
1252 bool "Build a relocatable kernel (EXPERIMENTAL)" 1245 bool "Build a relocatable kernel (EXPERIMENTAL)"
1253 depends on EXPERIMENTAL 1246 depends on EXPERIMENTAL
1254 help 1247 help
1255 This builds a kernel image that retains relocation information 1248 This builds a kernel image that retains relocation information
1256 so it can be loaded someplace besides the default 1MB. 1249 so it can be loaded someplace besides the default 1MB.
1257 The relocations tend to make the kernel binary about 10% larger, 1250 The relocations tend to make the kernel binary about 10% larger,
1258 but are discarded at runtime. 1251 but are discarded at runtime.
1259 1252
1260 One use is for the kexec on panic case where the recovery kernel 1253 One use is for the kexec on panic case where the recovery kernel
1261 must live at a different physical address than the primary 1254 must live at a different physical address than the primary
1262 kernel. 1255 kernel.
1263 1256
1264 Note: If CONFIG_RELOCATABLE=y, then the kernel runs from the address 1257 Note: If CONFIG_RELOCATABLE=y, then the kernel runs from the address
1265 it has been loaded at and the compile time physical address 1258 it has been loaded at and the compile time physical address
1266 (CONFIG_PHYSICAL_START) is ignored. 1259 (CONFIG_PHYSICAL_START) is ignored.
1267 1260
1268 config PHYSICAL_ALIGN 1261 config PHYSICAL_ALIGN
1269 hex 1262 hex
1270 prompt "Alignment value to which kernel should be aligned" if X86_32 1263 prompt "Alignment value to which kernel should be aligned" if X86_32
1271 default "0x100000" if X86_32 1264 default "0x100000" if X86_32
1272 default "0x200000" if X86_64 1265 default "0x200000" if X86_64
1273 range 0x2000 0x400000 1266 range 0x2000 0x400000
1274 help 1267 help
1275 This value puts the alignment restrictions on physical address 1268 This value puts the alignment restrictions on physical address
1276 where kernel is loaded and run from. Kernel is compiled for an 1269 where kernel is loaded and run from. Kernel is compiled for an
1277 address which meets above alignment restriction. 1270 address which meets above alignment restriction.
1278 1271
1279 If bootloader loads the kernel at a non-aligned address and 1272 If bootloader loads the kernel at a non-aligned address and
1280 CONFIG_RELOCATABLE is set, kernel will move itself to nearest 1273 CONFIG_RELOCATABLE is set, kernel will move itself to nearest
1281 address aligned to above value and run from there. 1274 address aligned to above value and run from there.
1282 1275
1283 If bootloader loads the kernel at a non-aligned address and 1276 If bootloader loads the kernel at a non-aligned address and
1284 CONFIG_RELOCATABLE is not set, kernel will ignore the run time 1277 CONFIG_RELOCATABLE is not set, kernel will ignore the run time
1285 load address and decompress itself to the address it has been 1278 load address and decompress itself to the address it has been
1286 compiled for and run from there. The address for which kernel is 1279 compiled for and run from there. The address for which kernel is
1287 compiled already meets above alignment restrictions. Hence the 1280 compiled already meets above alignment restrictions. Hence the
1288 end result is that kernel runs from a physical address meeting 1281 end result is that kernel runs from a physical address meeting
1289 above alignment restrictions. 1282 above alignment restrictions.
1290 1283
1291 Don't change this unless you know what you are doing. 1284 Don't change this unless you know what you are doing.
1292 1285
1293 config HOTPLUG_CPU 1286 config HOTPLUG_CPU
1294 bool "Support for suspend on SMP and hot-pluggable CPUs (EXPERIMENTAL)" 1287 bool "Support for suspend on SMP and hot-pluggable CPUs (EXPERIMENTAL)"
1295 depends on SMP && HOTPLUG && EXPERIMENTAL && !X86_VOYAGER 1288 depends on SMP && HOTPLUG && EXPERIMENTAL && !X86_VOYAGER
1296 ---help--- 1289 ---help---
1297 Say Y here to experiment with turning CPUs off and on, and to 1290 Say Y here to experiment with turning CPUs off and on, and to
1298 enable suspend on SMP systems. CPUs can be controlled through 1291 enable suspend on SMP systems. CPUs can be controlled through
1299 /sys/devices/system/cpu. 1292 /sys/devices/system/cpu.
1300 Say N if you want to disable CPU hotplug and don't need to 1293 Say N if you want to disable CPU hotplug and don't need to
1301 suspend. 1294 suspend.
1302 1295
1303 config COMPAT_VDSO 1296 config COMPAT_VDSO
1304 def_bool y 1297 def_bool y
1305 prompt "Compat VDSO support" 1298 prompt "Compat VDSO support"
1306 depends on X86_32 || IA32_EMULATION 1299 depends on X86_32 || IA32_EMULATION
1307 help 1300 help
1308 Map the 32-bit VDSO to the predictable old-style address too. 1301 Map the 32-bit VDSO to the predictable old-style address too.
1309 ---help--- 1302 ---help---
1310 Say N here if you are running a sufficiently recent glibc 1303 Say N here if you are running a sufficiently recent glibc
1311 version (2.3.3 or later), to remove the high-mapped 1304 version (2.3.3 or later), to remove the high-mapped
1312 VDSO mapping and to exclusively use the randomized VDSO. 1305 VDSO mapping and to exclusively use the randomized VDSO.
1313 1306
1314 If unsure, say Y. 1307 If unsure, say Y.
1315 1308
1316 endmenu 1309 endmenu
1317 1310
1318 config ARCH_ENABLE_MEMORY_HOTPLUG 1311 config ARCH_ENABLE_MEMORY_HOTPLUG
1319 def_bool y 1312 def_bool y
1320 depends on X86_64 || (X86_32 && HIGHMEM) 1313 depends on X86_64 || (X86_32 && HIGHMEM)
1321 1314
1322 config HAVE_ARCH_EARLY_PFN_TO_NID 1315 config HAVE_ARCH_EARLY_PFN_TO_NID
1323 def_bool X86_64 1316 def_bool X86_64
1324 depends on NUMA 1317 depends on NUMA
1325 1318
1326 menu "Power management options" 1319 menu "Power management options"
1327 depends on !X86_VOYAGER 1320 depends on !X86_VOYAGER
1328 1321
1329 config ARCH_HIBERNATION_HEADER 1322 config ARCH_HIBERNATION_HEADER
1330 def_bool y 1323 def_bool y
1331 depends on X86_64 && HIBERNATION 1324 depends on X86_64 && HIBERNATION
1332 1325
1333 source "kernel/power/Kconfig" 1326 source "kernel/power/Kconfig"
1334 1327
1335 source "drivers/acpi/Kconfig" 1328 source "drivers/acpi/Kconfig"
1336 1329
1337 config X86_APM_BOOT 1330 config X86_APM_BOOT
1338 bool 1331 bool
1339 default y 1332 default y
1340 depends on APM || APM_MODULE 1333 depends on APM || APM_MODULE
1341 1334
1342 menuconfig APM 1335 menuconfig APM
1343 tristate "APM (Advanced Power Management) BIOS support" 1336 tristate "APM (Advanced Power Management) BIOS support"
1344 depends on X86_32 && PM_SLEEP && !X86_VISWS 1337 depends on X86_32 && PM_SLEEP && !X86_VISWS
1345 ---help--- 1338 ---help---
1346 APM is a BIOS specification for saving power using several different 1339 APM is a BIOS specification for saving power using several different
1347 techniques. This is mostly useful for battery powered laptops with 1340 techniques. This is mostly useful for battery powered laptops with
1348 APM compliant BIOSes. If you say Y here, the system time will be 1341 APM compliant BIOSes. If you say Y here, the system time will be
1349 reset after a RESUME operation, the /proc/apm device will provide 1342 reset after a RESUME operation, the /proc/apm device will provide
1350 battery status information, and user-space programs will receive 1343 battery status information, and user-space programs will receive
1351 notification of APM "events" (e.g. battery status change). 1344 notification of APM "events" (e.g. battery status change).
1352 1345
1353 If you select "Y" here, you can disable actual use of the APM 1346 If you select "Y" here, you can disable actual use of the APM
1354 BIOS by passing the "apm=off" option to the kernel at boot time. 1347 BIOS by passing the "apm=off" option to the kernel at boot time.
1355 1348
1356 Note that the APM support is almost completely disabled for 1349 Note that the APM support is almost completely disabled for
1357 machines with more than one CPU. 1350 machines with more than one CPU.
1358 1351
1359 In order to use APM, you will need supporting software. For location 1352 In order to use APM, you will need supporting software. For location
1360 and more information, read <file:Documentation/power/pm.txt> and the 1353 and more information, read <file:Documentation/power/pm.txt> and the
1361 Battery Powered Linux mini-HOWTO, available from 1354 Battery Powered Linux mini-HOWTO, available from
1362 <http://www.tldp.org/docs.html#howto>. 1355 <http://www.tldp.org/docs.html#howto>.
1363 1356
1364 This driver does not spin down disk drives (see the hdparm(8) 1357 This driver does not spin down disk drives (see the hdparm(8)
1365 manpage ("man 8 hdparm") for that), and it doesn't turn off 1358 manpage ("man 8 hdparm") for that), and it doesn't turn off
1366 VESA-compliant "green" monitors. 1359 VESA-compliant "green" monitors.
1367 1360
1368 This driver does not support the TI 4000M TravelMate and the ACER 1361 This driver does not support the TI 4000M TravelMate and the ACER
1369 486/DX4/75 because they don't have compliant BIOSes. Many "green" 1362 486/DX4/75 because they don't have compliant BIOSes. Many "green"
1370 desktop machines also don't have compliant BIOSes, and this driver 1363 desktop machines also don't have compliant BIOSes, and this driver
1371 may cause those machines to panic during the boot phase. 1364 may cause those machines to panic during the boot phase.
1372 1365
1373 Generally, if you don't have a battery in your machine, there isn't 1366 Generally, if you don't have a battery in your machine, there isn't
1374 much point in using this driver and you should say N. If you get 1367 much point in using this driver and you should say N. If you get
1375 random kernel OOPSes or reboots that don't seem to be related to 1368 random kernel OOPSes or reboots that don't seem to be related to
1376 anything, try disabling/enabling this option (or disabling/enabling 1369 anything, try disabling/enabling this option (or disabling/enabling
1377 APM in your BIOS). 1370 APM in your BIOS).
1378 1371
1379 Some other things you should try when experiencing seemingly random, 1372 Some other things you should try when experiencing seemingly random,
1380 "weird" problems: 1373 "weird" problems:
1381 1374
1382 1) make sure that you have enough swap space and that it is 1375 1) make sure that you have enough swap space and that it is
1383 enabled. 1376 enabled.
1384 2) pass the "no-hlt" option to the kernel 1377 2) pass the "no-hlt" option to the kernel
1385 3) switch on floating point emulation in the kernel and pass 1378 3) switch on floating point emulation in the kernel and pass
1386 the "no387" option to the kernel 1379 the "no387" option to the kernel
1387 4) pass the "floppy=nodma" option to the kernel 1380 4) pass the "floppy=nodma" option to the kernel
1388 5) pass the "mem=4M" option to the kernel (thereby disabling 1381 5) pass the "mem=4M" option to the kernel (thereby disabling
1389 all but the first 4 MB of RAM) 1382 all but the first 4 MB of RAM)
1390 6) make sure that the CPU is not over clocked. 1383 6) make sure that the CPU is not over clocked.
1391 7) read the sig11 FAQ at <http://www.bitwizard.nl/sig11/> 1384 7) read the sig11 FAQ at <http://www.bitwizard.nl/sig11/>
1392 8) disable the cache from your BIOS settings 1385 8) disable the cache from your BIOS settings
1393 9) install a fan for the video card or exchange video RAM 1386 9) install a fan for the video card or exchange video RAM
1394 10) install a better fan for the CPU 1387 10) install a better fan for the CPU
1395 11) exchange RAM chips 1388 11) exchange RAM chips
1396 12) exchange the motherboard. 1389 12) exchange the motherboard.
1397 1390
1398 To compile this driver as a module, choose M here: the 1391 To compile this driver as a module, choose M here: the
1399 module will be called apm. 1392 module will be called apm.
1400 1393
1401 if APM 1394 if APM
1402 1395
1403 config APM_IGNORE_USER_SUSPEND 1396 config APM_IGNORE_USER_SUSPEND
1404 bool "Ignore USER SUSPEND" 1397 bool "Ignore USER SUSPEND"
1405 help 1398 help
1406 This option will ignore USER SUSPEND requests. On machines with a 1399 This option will ignore USER SUSPEND requests. On machines with a
1407 compliant APM BIOS, you want to say N. However, on the NEC Versa M 1400 compliant APM BIOS, you want to say N. However, on the NEC Versa M
1408 series notebooks, it is necessary to say Y because of a BIOS bug. 1401 series notebooks, it is necessary to say Y because of a BIOS bug.
1409 1402
1410 config APM_DO_ENABLE 1403 config APM_DO_ENABLE
1411 bool "Enable PM at boot time" 1404 bool "Enable PM at boot time"
1412 ---help--- 1405 ---help---
1413 Enable APM features at boot time. From page 36 of the APM BIOS 1406 Enable APM features at boot time. From page 36 of the APM BIOS
1414 specification: "When disabled, the APM BIOS does not automatically 1407 specification: "When disabled, the APM BIOS does not automatically
1415 power manage devices, enter the Standby State, enter the Suspend 1408 power manage devices, enter the Standby State, enter the Suspend
1416 State, or take power saving steps in response to CPU Idle calls." 1409 State, or take power saving steps in response to CPU Idle calls."
1417 This driver will make CPU Idle calls when Linux is idle (unless this 1410 This driver will make CPU Idle calls when Linux is idle (unless this
1418 feature is turned off -- see "Do CPU IDLE calls", below). This 1411 feature is turned off -- see "Do CPU IDLE calls", below). This
1419 should always save battery power, but more complicated APM features 1412 should always save battery power, but more complicated APM features
1420 will be dependent on your BIOS implementation. You may need to turn 1413 will be dependent on your BIOS implementation. You may need to turn
1421 this option off if your computer hangs at boot time when using APM 1414 this option off if your computer hangs at boot time when using APM
1422 support, or if it beeps continuously instead of suspending. Turn 1415 support, or if it beeps continuously instead of suspending. Turn
1423 this off if you have a NEC UltraLite Versa 33/C or a Toshiba 1416 this off if you have a NEC UltraLite Versa 33/C or a Toshiba
1424 T400CDT. This is off by default since most machines do fine without 1417 T400CDT. This is off by default since most machines do fine without
1425 this feature. 1418 this feature.
1426 1419
1427 config APM_CPU_IDLE 1420 config APM_CPU_IDLE
1428 bool "Make CPU Idle calls when idle" 1421 bool "Make CPU Idle calls when idle"
1429 help 1422 help
1430 Enable calls to APM CPU Idle/CPU Busy inside the kernel's idle loop. 1423 Enable calls to APM CPU Idle/CPU Busy inside the kernel's idle loop.
1431 On some machines, this can activate improved power savings, such as 1424 On some machines, this can activate improved power savings, such as
1432 a slowed CPU clock rate, when the machine is idle. These idle calls 1425 a slowed CPU clock rate, when the machine is idle. These idle calls
1433 are made after the idle loop has run for some length of time (e.g., 1426 are made after the idle loop has run for some length of time (e.g.,
1434 333 mS). On some machines, this will cause a hang at boot time or 1427 333 mS). On some machines, this will cause a hang at boot time or
1435 whenever the CPU becomes idle. (On machines with more than one CPU, 1428 whenever the CPU becomes idle. (On machines with more than one CPU,
1436 this option does nothing.) 1429 this option does nothing.)
1437 1430
1438 config APM_DISPLAY_BLANK 1431 config APM_DISPLAY_BLANK
1439 bool "Enable console blanking using APM" 1432 bool "Enable console blanking using APM"
1440 help 1433 help
1441 Enable console blanking using the APM. Some laptops can use this to 1434 Enable console blanking using the APM. Some laptops can use this to
1442 turn off the LCD backlight when the screen blanker of the Linux 1435 turn off the LCD backlight when the screen blanker of the Linux
1443 virtual console blanks the screen. Note that this is only used by 1436 virtual console blanks the screen. Note that this is only used by
1444 the virtual console screen blanker, and won't turn off the backlight 1437 the virtual console screen blanker, and won't turn off the backlight
1445 when using the X Window system. This also doesn't have anything to 1438 when using the X Window system. This also doesn't have anything to
1446 do with your VESA-compliant power-saving monitor. Further, this 1439 do with your VESA-compliant power-saving monitor. Further, this
1447 option doesn't work for all laptops -- it might not turn off your 1440 option doesn't work for all laptops -- it might not turn off your
1448 backlight at all, or it might print a lot of errors to the console, 1441 backlight at all, or it might print a lot of errors to the console,
1449 especially if you are using gpm. 1442 especially if you are using gpm.
1450 1443
1451 config APM_ALLOW_INTS 1444 config APM_ALLOW_INTS
1452 bool "Allow interrupts during APM BIOS calls" 1445 bool "Allow interrupts during APM BIOS calls"
1453 help 1446 help
1454 Normally we disable external interrupts while we are making calls to 1447 Normally we disable external interrupts while we are making calls to
1455 the APM BIOS as a measure to lessen the effects of a badly behaving 1448 the APM BIOS as a measure to lessen the effects of a badly behaving
1456 BIOS implementation. The BIOS should reenable interrupts if it 1449 BIOS implementation. The BIOS should reenable interrupts if it
1457 needs to. Unfortunately, some BIOSes do not -- especially those in 1450 needs to. Unfortunately, some BIOSes do not -- especially those in
1458 many of the newer IBM Thinkpads. If you experience hangs when you 1451 many of the newer IBM Thinkpads. If you experience hangs when you
1459 suspend, try setting this to Y. Otherwise, say N. 1452 suspend, try setting this to Y. Otherwise, say N.
1460 1453
1461 config APM_REAL_MODE_POWER_OFF 1454 config APM_REAL_MODE_POWER_OFF
1462 bool "Use real mode APM BIOS call to power off" 1455 bool "Use real mode APM BIOS call to power off"
1463 help 1456 help
1464 Use real mode APM BIOS calls to switch off the computer. This is 1457 Use real mode APM BIOS calls to switch off the computer. This is
1465 a work-around for a number of buggy BIOSes. Switch this option on if 1458 a work-around for a number of buggy BIOSes. Switch this option on if
1466 your computer crashes instead of powering off properly. 1459 your computer crashes instead of powering off properly.
1467 1460
1468 endif # APM 1461 endif # APM
1469 1462
1470 source "arch/x86/kernel/cpu/cpufreq/Kconfig" 1463 source "arch/x86/kernel/cpu/cpufreq/Kconfig"
1471 1464
1472 source "drivers/cpuidle/Kconfig" 1465 source "drivers/cpuidle/Kconfig"
1473 1466
1474 endmenu 1467 endmenu
1475 1468
1476 1469
1477 menu "Bus options (PCI etc.)" 1470 menu "Bus options (PCI etc.)"
1478 1471
1479 config PCI 1472 config PCI
1480 bool "PCI support" if !X86_VISWS && !X86_VSMP 1473 bool "PCI support" if !X86_VISWS && !X86_VSMP
1481 depends on !X86_VOYAGER 1474 depends on !X86_VOYAGER
1482 default y 1475 default y
1483 select ARCH_SUPPORTS_MSI if (X86_LOCAL_APIC && X86_IO_APIC) 1476 select ARCH_SUPPORTS_MSI if (X86_LOCAL_APIC && X86_IO_APIC)
1484 help 1477 help
1485 Find out whether you have a PCI motherboard. PCI is the name of a 1478 Find out whether you have a PCI motherboard. PCI is the name of a
1486 bus system, i.e. the way the CPU talks to the other stuff inside 1479 bus system, i.e. the way the CPU talks to the other stuff inside
1487 your box. Other bus systems are ISA, EISA, MicroChannel (MCA) or 1480 your box. Other bus systems are ISA, EISA, MicroChannel (MCA) or
1488 VESA. If you have PCI, say Y, otherwise N. 1481 VESA. If you have PCI, say Y, otherwise N.
1489 1482
1490 choice 1483 choice
1491 prompt "PCI access mode" 1484 prompt "PCI access mode"
1492 depends on X86_32 && PCI && !X86_VISWS 1485 depends on X86_32 && PCI && !X86_VISWS
1493 default PCI_GOANY 1486 default PCI_GOANY
1494 ---help--- 1487 ---help---
1495 On PCI systems, the BIOS can be used to detect the PCI devices and 1488 On PCI systems, the BIOS can be used to detect the PCI devices and
1496 determine their configuration. However, some old PCI motherboards 1489 determine their configuration. However, some old PCI motherboards
1497 have BIOS bugs and may crash if this is done. Also, some embedded 1490 have BIOS bugs and may crash if this is done. Also, some embedded
1498 PCI-based systems don't have any BIOS at all. Linux can also try to 1491 PCI-based systems don't have any BIOS at all. Linux can also try to
1499 detect the PCI hardware directly without using the BIOS. 1492 detect the PCI hardware directly without using the BIOS.
1500 1493
1501 With this option, you can specify how Linux should detect the 1494 With this option, you can specify how Linux should detect the
1502 PCI devices. If you choose "BIOS", the BIOS will be used, 1495 PCI devices. If you choose "BIOS", the BIOS will be used,
1503 if you choose "Direct", the BIOS won't be used, and if you 1496 if you choose "Direct", the BIOS won't be used, and if you
1504 choose "MMConfig", then PCI Express MMCONFIG will be used. 1497 choose "MMConfig", then PCI Express MMCONFIG will be used.
1505 If you choose "Any", the kernel will try MMCONFIG, then the 1498 If you choose "Any", the kernel will try MMCONFIG, then the
1506 direct access method and falls back to the BIOS if that doesn't 1499 direct access method and falls back to the BIOS if that doesn't
1507 work. If unsure, go with the default, which is "Any". 1500 work. If unsure, go with the default, which is "Any".
1508 1501
1509 config PCI_GOBIOS 1502 config PCI_GOBIOS
1510 bool "BIOS" 1503 bool "BIOS"
1511 1504
1512 config PCI_GOMMCONFIG 1505 config PCI_GOMMCONFIG
1513 bool "MMConfig" 1506 bool "MMConfig"
1514 1507
1515 config PCI_GODIRECT 1508 config PCI_GODIRECT
1516 bool "Direct" 1509 bool "Direct"
1517 1510
1518 config PCI_GOANY 1511 config PCI_GOANY
1519 bool "Any" 1512 bool "Any"
1520 1513
1521 config PCI_GOOLPC 1514 config PCI_GOOLPC
1522 bool "OLPC" 1515 bool "OLPC"
1523 depends on OLPC 1516 depends on OLPC
1524 1517
1525 endchoice 1518 endchoice
1526 1519
1527 config PCI_BIOS 1520 config PCI_BIOS
1528 def_bool y 1521 def_bool y
1529 depends on X86_32 && !X86_VISWS && PCI && (PCI_GOBIOS || PCI_GOANY) 1522 depends on X86_32 && !X86_VISWS && PCI && (PCI_GOBIOS || PCI_GOANY)
1530 1523
1531 # x86-64 doesn't support PCI BIOS access from long mode so always go direct. 1524 # x86-64 doesn't support PCI BIOS access from long mode so always go direct.
1532 config PCI_DIRECT 1525 config PCI_DIRECT
1533 def_bool y 1526 def_bool y
1534 depends on PCI && (X86_64 || (PCI_GODIRECT || PCI_GOANY || PCI_GOOLPC) || X86_VISWS) 1527 depends on PCI && (X86_64 || (PCI_GODIRECT || PCI_GOANY || PCI_GOOLPC) || X86_VISWS)
1535 1528
1536 config PCI_MMCONFIG 1529 config PCI_MMCONFIG
1537 def_bool y 1530 def_bool y
1538 depends on X86_32 && PCI && ACPI && (PCI_GOMMCONFIG || PCI_GOANY) 1531 depends on X86_32 && PCI && ACPI && (PCI_GOMMCONFIG || PCI_GOANY)
1539 1532
1540 config PCI_OLPC 1533 config PCI_OLPC
1541 bool 1534 bool
1542 depends on PCI && PCI_GOOLPC 1535 depends on PCI && PCI_GOOLPC
1543 default y 1536 default y
1544 1537
1545 config PCI_DOMAINS 1538 config PCI_DOMAINS
1546 def_bool y 1539 def_bool y
1547 depends on PCI 1540 depends on PCI
1548 1541
1549 config PCI_MMCONFIG 1542 config PCI_MMCONFIG
1550 bool "Support mmconfig PCI config space access" 1543 bool "Support mmconfig PCI config space access"
1551 depends on X86_64 && PCI && ACPI 1544 depends on X86_64 && PCI && ACPI
1552 1545
1553 config DMAR 1546 config DMAR
1554 bool "Support for DMA Remapping Devices (EXPERIMENTAL)" 1547 bool "Support for DMA Remapping Devices (EXPERIMENTAL)"
1555 depends on X86_64 && PCI_MSI && ACPI && EXPERIMENTAL 1548 depends on X86_64 && PCI_MSI && ACPI && EXPERIMENTAL
1556 help 1549 help
1557 DMA remapping (DMAR) devices support enables independent address 1550 DMA remapping (DMAR) devices support enables independent address
1558 translations for Direct Memory Access (DMA) from devices. 1551 translations for Direct Memory Access (DMA) from devices.
1559 These DMA remapping devices are reported via ACPI tables 1552 These DMA remapping devices are reported via ACPI tables
1560 and include PCI device scope covered by these DMA 1553 and include PCI device scope covered by these DMA
1561 remapping devices. 1554 remapping devices.
1562 1555
1563 config DMAR_GFX_WA 1556 config DMAR_GFX_WA
1564 def_bool y 1557 def_bool y
1565 prompt "Support for Graphics workaround" 1558 prompt "Support for Graphics workaround"
1566 depends on DMAR 1559 depends on DMAR
1567 help 1560 help
1568 Current Graphics drivers tend to use physical address 1561 Current Graphics drivers tend to use physical address
1569 for DMA and avoid using DMA APIs. Setting this config 1562 for DMA and avoid using DMA APIs. Setting this config
1570 option permits the IOMMU driver to set a unity map for 1563 option permits the IOMMU driver to set a unity map for
1571 all the OS-visible memory. Hence the driver can continue 1564 all the OS-visible memory. Hence the driver can continue
1572 to use physical addresses for DMA. 1565 to use physical addresses for DMA.
1573 1566
1574 config DMAR_FLOPPY_WA 1567 config DMAR_FLOPPY_WA
1575 def_bool y 1568 def_bool y
1576 depends on DMAR 1569 depends on DMAR
1577 help 1570 help
1578 Floppy disk drivers are know to bypass DMA API calls 1571 Floppy disk drivers are know to bypass DMA API calls
1579 thereby failing to work when IOMMU is enabled. This 1572 thereby failing to work when IOMMU is enabled. This
1580 workaround will setup a 1:1 mapping for the first 1573 workaround will setup a 1:1 mapping for the first
1581 16M to make floppy (an ISA device) work. 1574 16M to make floppy (an ISA device) work.
1582 1575
1583 source "drivers/pci/pcie/Kconfig" 1576 source "drivers/pci/pcie/Kconfig"
1584 1577
1585 source "drivers/pci/Kconfig" 1578 source "drivers/pci/Kconfig"
1586 1579
1587 # x86_64 have no ISA slots, but do have ISA-style DMA. 1580 # x86_64 have no ISA slots, but do have ISA-style DMA.
1588 config ISA_DMA_API 1581 config ISA_DMA_API
1589 def_bool y 1582 def_bool y
1590 1583
1591 if X86_32 1584 if X86_32
1592 1585
1593 config ISA 1586 config ISA
1594 bool "ISA support" 1587 bool "ISA support"
1595 depends on !(X86_VOYAGER || X86_VISWS) 1588 depends on !(X86_VOYAGER || X86_VISWS)
1596 help 1589 help
1597 Find out whether you have ISA slots on your motherboard. ISA is the 1590 Find out whether you have ISA slots on your motherboard. ISA is the
1598 name of a bus system, i.e. the way the CPU talks to the other stuff 1591 name of a bus system, i.e. the way the CPU talks to the other stuff
1599 inside your box. Other bus systems are PCI, EISA, MicroChannel 1592 inside your box. Other bus systems are PCI, EISA, MicroChannel
1600 (MCA) or VESA. ISA is an older system, now being displaced by PCI; 1593 (MCA) or VESA. ISA is an older system, now being displaced by PCI;
1601 newer boards don't support it. If you have ISA, say Y, otherwise N. 1594 newer boards don't support it. If you have ISA, say Y, otherwise N.
1602 1595
1603 config EISA 1596 config EISA
1604 bool "EISA support" 1597 bool "EISA support"
1605 depends on ISA 1598 depends on ISA
1606 ---help--- 1599 ---help---
1607 The Extended Industry Standard Architecture (EISA) bus was 1600 The Extended Industry Standard Architecture (EISA) bus was
1608 developed as an open alternative to the IBM MicroChannel bus. 1601 developed as an open alternative to the IBM MicroChannel bus.
1609 1602
1610 The EISA bus provided some of the features of the IBM MicroChannel 1603 The EISA bus provided some of the features of the IBM MicroChannel
1611 bus while maintaining backward compatibility with cards made for 1604 bus while maintaining backward compatibility with cards made for
1612 the older ISA bus. The EISA bus saw limited use between 1988 and 1605 the older ISA bus. The EISA bus saw limited use between 1988 and
1613 1995 when it was made obsolete by the PCI bus. 1606 1995 when it was made obsolete by the PCI bus.
1614 1607
1615 Say Y here if you are building a kernel for an EISA-based machine. 1608 Say Y here if you are building a kernel for an EISA-based machine.
1616 1609
1617 Otherwise, say N. 1610 Otherwise, say N.
1618 1611
1619 source "drivers/eisa/Kconfig" 1612 source "drivers/eisa/Kconfig"
1620 1613
1621 config MCA 1614 config MCA
1622 bool "MCA support" if !(X86_VISWS || X86_VOYAGER) 1615 bool "MCA support" if !(X86_VISWS || X86_VOYAGER)
1623 default y if X86_VOYAGER 1616 default y if X86_VOYAGER
1624 help 1617 help
1625 MicroChannel Architecture is found in some IBM PS/2 machines and 1618 MicroChannel Architecture is found in some IBM PS/2 machines and
1626 laptops. It is a bus system similar to PCI or ISA. See 1619 laptops. It is a bus system similar to PCI or ISA. See
1627 <file:Documentation/mca.txt> (and especially the web page given 1620 <file:Documentation/mca.txt> (and especially the web page given
1628 there) before attempting to build an MCA bus kernel. 1621 there) before attempting to build an MCA bus kernel.
1629 1622
1630 source "drivers/mca/Kconfig" 1623 source "drivers/mca/Kconfig"
1631 1624
1632 config SCx200 1625 config SCx200
1633 tristate "NatSemi SCx200 support" 1626 tristate "NatSemi SCx200 support"
1634 depends on !X86_VOYAGER 1627 depends on !X86_VOYAGER
1635 help 1628 help
1636 This provides basic support for National Semiconductor's 1629 This provides basic support for National Semiconductor's
1637 (now AMD's) Geode processors. The driver probes for the 1630 (now AMD's) Geode processors. The driver probes for the
1638 PCI-IDs of several on-chip devices, so its a good dependency 1631 PCI-IDs of several on-chip devices, so its a good dependency
1639 for other scx200_* drivers. 1632 for other scx200_* drivers.
1640 1633
1641 If compiled as a module, the driver is named scx200. 1634 If compiled as a module, the driver is named scx200.
1642 1635
1643 config SCx200HR_TIMER 1636 config SCx200HR_TIMER
1644 tristate "NatSemi SCx200 27MHz High-Resolution Timer Support" 1637 tristate "NatSemi SCx200 27MHz High-Resolution Timer Support"
1645 depends on SCx200 && GENERIC_TIME 1638 depends on SCx200 && GENERIC_TIME
1646 default y 1639 default y
1647 help 1640 help
1648 This driver provides a clocksource built upon the on-chip 1641 This driver provides a clocksource built upon the on-chip
1649 27MHz high-resolution timer. Its also a workaround for 1642 27MHz high-resolution timer. Its also a workaround for
1650 NSC Geode SC-1100's buggy TSC, which loses time when the 1643 NSC Geode SC-1100's buggy TSC, which loses time when the
1651 processor goes idle (as is done by the scheduler). The 1644 processor goes idle (as is done by the scheduler). The
1652 other workaround is idle=poll boot option. 1645 other workaround is idle=poll boot option.
1653 1646
1654 config GEODE_MFGPT_TIMER 1647 config GEODE_MFGPT_TIMER
1655 def_bool y 1648 def_bool y
1656 prompt "Geode Multi-Function General Purpose Timer (MFGPT) events" 1649 prompt "Geode Multi-Function General Purpose Timer (MFGPT) events"
1657 depends on MGEODE_LX && GENERIC_TIME && GENERIC_CLOCKEVENTS 1650 depends on MGEODE_LX && GENERIC_TIME && GENERIC_CLOCKEVENTS
1658 help 1651 help
1659 This driver provides a clock event source based on the MFGPT 1652 This driver provides a clock event source based on the MFGPT
1660 timer(s) in the CS5535 and CS5536 companion chip for the geode. 1653 timer(s) in the CS5535 and CS5536 companion chip for the geode.
1661 MFGPTs have a better resolution and max interval than the 1654 MFGPTs have a better resolution and max interval than the
1662 generic PIT, and are suitable for use as high-res timers. 1655 generic PIT, and are suitable for use as high-res timers.
1663 1656
1664 config OLPC 1657 config OLPC
1665 bool "One Laptop Per Child support" 1658 bool "One Laptop Per Child support"
1666 default n 1659 default n
1667 help 1660 help
1668 Add support for detecting the unique features of the OLPC 1661 Add support for detecting the unique features of the OLPC
1669 XO hardware. 1662 XO hardware.
1670 1663
1671 endif # X86_32 1664 endif # X86_32
1672 1665
1673 config K8_NB 1666 config K8_NB
1674 def_bool y 1667 def_bool y
1675 depends on AGP_AMD64 || (X86_64 && (GART_IOMMU || (PCI && NUMA))) 1668 depends on AGP_AMD64 || (X86_64 && (GART_IOMMU || (PCI && NUMA)))
1676 1669
1677 source "drivers/pcmcia/Kconfig" 1670 source "drivers/pcmcia/Kconfig"
1678 1671
1679 source "drivers/pci/hotplug/Kconfig" 1672 source "drivers/pci/hotplug/Kconfig"
1680 1673
1681 endmenu 1674 endmenu
1682 1675
1683 1676
1684 menu "Executable file formats / Emulations" 1677 menu "Executable file formats / Emulations"
1685 1678
1686 source "fs/Kconfig.binfmt" 1679 source "fs/Kconfig.binfmt"
1687 1680
1688 config IA32_EMULATION 1681 config IA32_EMULATION
1689 bool "IA32 Emulation" 1682 bool "IA32 Emulation"
1690 depends on X86_64 1683 depends on X86_64
1691 select COMPAT_BINFMT_ELF 1684 select COMPAT_BINFMT_ELF
1692 help 1685 help
1693 Include code to run 32-bit programs under a 64-bit kernel. You should 1686 Include code to run 32-bit programs under a 64-bit kernel. You should
1694 likely turn this on, unless you're 100% sure that you don't have any 1687 likely turn this on, unless you're 100% sure that you don't have any
1695 32-bit programs left. 1688 32-bit programs left.
1696 1689
1697 config IA32_AOUT 1690 config IA32_AOUT
1698 tristate "IA32 a.out support" 1691 tristate "IA32 a.out support"
1699 depends on IA32_EMULATION && ARCH_SUPPORTS_AOUT 1692 depends on IA32_EMULATION && ARCH_SUPPORTS_AOUT
1700 help 1693 help
1701 Support old a.out binaries in the 32bit emulation. 1694 Support old a.out binaries in the 32bit emulation.
1702 1695
1703 config COMPAT 1696 config COMPAT
1704 def_bool y 1697 def_bool y
1705 depends on IA32_EMULATION 1698 depends on IA32_EMULATION
1706 1699
1707 config COMPAT_FOR_U64_ALIGNMENT 1700 config COMPAT_FOR_U64_ALIGNMENT
1708 def_bool COMPAT 1701 def_bool COMPAT
1709 depends on X86_64 1702 depends on X86_64
1710 1703
1711 config SYSVIPC_COMPAT 1704 config SYSVIPC_COMPAT
1712 def_bool y 1705 def_bool y
1713 depends on X86_64 && COMPAT && SYSVIPC 1706 depends on X86_64 && COMPAT && SYSVIPC
1714 1707
1715 endmenu 1708 endmenu
1716 1709
1717 1710
1718 source "net/Kconfig" 1711 source "net/Kconfig"
1719 1712
1720 source "drivers/Kconfig" 1713 source "drivers/Kconfig"
1721 1714
1722 source "drivers/firmware/Kconfig" 1715 source "drivers/firmware/Kconfig"
1723 1716
1724 source "fs/Kconfig" 1717 source "fs/Kconfig"
1725 1718
1726 source "arch/x86/Kconfig.debug" 1719 source "arch/x86/Kconfig.debug"
1727 1720
1728 source "security/Kconfig" 1721 source "security/Kconfig"
1729 1722
1730 source "crypto/Kconfig" 1723 source "crypto/Kconfig"
1731 1724
1732 source "arch/x86/kvm/Kconfig" 1725 source "arch/x86/kvm/Kconfig"
1733 1726
1734 source "lib/Kconfig" 1727 source "lib/Kconfig"
1735 1728
1 config ARCH 1 config ARCH
2 string 2 string
3 option env="ARCH" 3 option env="ARCH"
4 4
5 config KERNELVERSION 5 config KERNELVERSION
6 string 6 string
7 option env="KERNELVERSION" 7 option env="KERNELVERSION"
8 8
9 config DEFCONFIG_LIST 9 config DEFCONFIG_LIST
10 string 10 string
11 depends on !UML 11 depends on !UML
12 option defconfig_list 12 option defconfig_list
13 default "/lib/modules/$UNAME_RELEASE/.config" 13 default "/lib/modules/$UNAME_RELEASE/.config"
14 default "/etc/kernel-config" 14 default "/etc/kernel-config"
15 default "/boot/config-$UNAME_RELEASE" 15 default "/boot/config-$UNAME_RELEASE"
16 default "$ARCH_DEFCONFIG"
16 default "arch/$ARCH/defconfig" 17 default "arch/$ARCH/defconfig"
17 18
18 menu "General setup" 19 menu "General setup"
19 20
20 config EXPERIMENTAL 21 config EXPERIMENTAL
21 bool "Prompt for development and/or incomplete code/drivers" 22 bool "Prompt for development and/or incomplete code/drivers"
22 ---help--- 23 ---help---
23 Some of the various things that Linux supports (such as network 24 Some of the various things that Linux supports (such as network
24 drivers, file systems, network protocols, etc.) can be in a state 25 drivers, file systems, network protocols, etc.) can be in a state
25 of development where the functionality, stability, or the level of 26 of development where the functionality, stability, or the level of
26 testing is not yet high enough for general use. This is usually 27 testing is not yet high enough for general use. This is usually
27 known as the "alpha-test" phase among developers. If a feature is 28 known as the "alpha-test" phase among developers. If a feature is
28 currently in alpha-test, then the developers usually discourage 29 currently in alpha-test, then the developers usually discourage
29 uninformed widespread use of this feature by the general public to 30 uninformed widespread use of this feature by the general public to
30 avoid "Why doesn't this work?" type mail messages. However, active 31 avoid "Why doesn't this work?" type mail messages. However, active
31 testing and use of these systems is welcomed. Just be aware that it 32 testing and use of these systems is welcomed. Just be aware that it
32 may not meet the normal level of reliability or it may fail to work 33 may not meet the normal level of reliability or it may fail to work
33 in some special cases. Detailed bug reports from people familiar 34 in some special cases. Detailed bug reports from people familiar
34 with the kernel internals are usually welcomed by the developers 35 with the kernel internals are usually welcomed by the developers
35 (before submitting bug reports, please read the documents 36 (before submitting bug reports, please read the documents
36 <file:README>, <file:MAINTAINERS>, <file:REPORTING-BUGS>, 37 <file:README>, <file:MAINTAINERS>, <file:REPORTING-BUGS>,
37 <file:Documentation/BUG-HUNTING>, and 38 <file:Documentation/BUG-HUNTING>, and
38 <file:Documentation/oops-tracing.txt> in the kernel source). 39 <file:Documentation/oops-tracing.txt> in the kernel source).
39 40
40 This option will also make obsoleted drivers available. These are 41 This option will also make obsoleted drivers available. These are
41 drivers that have been replaced by something else, and/or are 42 drivers that have been replaced by something else, and/or are
42 scheduled to be removed in a future kernel release. 43 scheduled to be removed in a future kernel release.
43 44
44 Unless you intend to help test and develop a feature or driver that 45 Unless you intend to help test and develop a feature or driver that
45 falls into this category, or you have a situation that requires 46 falls into this category, or you have a situation that requires
46 using these features, you should probably say N here, which will 47 using these features, you should probably say N here, which will
47 cause the configurator to present you with fewer choices. If 48 cause the configurator to present you with fewer choices. If
48 you say Y here, you will be offered the choice of using features or 49 you say Y here, you will be offered the choice of using features or
49 drivers that are currently considered to be in the alpha-test phase. 50 drivers that are currently considered to be in the alpha-test phase.
50 51
51 config BROKEN 52 config BROKEN
52 bool 53 bool
53 54
54 config BROKEN_ON_SMP 55 config BROKEN_ON_SMP
55 bool 56 bool
56 depends on BROKEN || !SMP 57 depends on BROKEN || !SMP
57 default y 58 default y
58 59
59 config LOCK_KERNEL 60 config LOCK_KERNEL
60 bool 61 bool
61 depends on SMP || PREEMPT 62 depends on SMP || PREEMPT
62 default y 63 default y
63 64
64 config INIT_ENV_ARG_LIMIT 65 config INIT_ENV_ARG_LIMIT
65 int 66 int
66 default 32 if !UML 67 default 32 if !UML
67 default 128 if UML 68 default 128 if UML
68 help 69 help
69 Maximum of each of the number of arguments and environment 70 Maximum of each of the number of arguments and environment
70 variables passed to init from the kernel command line. 71 variables passed to init from the kernel command line.
71 72
72 73
73 config LOCALVERSION 74 config LOCALVERSION
74 string "Local version - append to kernel release" 75 string "Local version - append to kernel release"
75 help 76 help
76 Append an extra string to the end of your kernel version. 77 Append an extra string to the end of your kernel version.
77 This will show up when you type uname, for example. 78 This will show up when you type uname, for example.
78 The string you set here will be appended after the contents of 79 The string you set here will be appended after the contents of
79 any files with a filename matching localversion* in your 80 any files with a filename matching localversion* in your
80 object and source tree, in that order. Your total string can 81 object and source tree, in that order. Your total string can
81 be a maximum of 64 characters. 82 be a maximum of 64 characters.
82 83
83 config LOCALVERSION_AUTO 84 config LOCALVERSION_AUTO
84 bool "Automatically append version information to the version string" 85 bool "Automatically append version information to the version string"
85 default y 86 default y
86 help 87 help
87 This will try to automatically determine if the current tree is a 88 This will try to automatically determine if the current tree is a
88 release tree by looking for git tags that belong to the current 89 release tree by looking for git tags that belong to the current
89 top of tree revision. 90 top of tree revision.
90 91
91 A string of the format -gxxxxxxxx will be added to the localversion 92 A string of the format -gxxxxxxxx will be added to the localversion
92 if a git-based tree is found. The string generated by this will be 93 if a git-based tree is found. The string generated by this will be
93 appended after any matching localversion* files, and after the value 94 appended after any matching localversion* files, and after the value
94 set in CONFIG_LOCALVERSION. 95 set in CONFIG_LOCALVERSION.
95 96
96 (The actual string used here is the first eight characters produced 97 (The actual string used here is the first eight characters produced
97 by running the command: 98 by running the command:
98 99
99 $ git rev-parse --verify HEAD 100 $ git rev-parse --verify HEAD
100 101
101 which is done within the script "scripts/setlocalversion".) 102 which is done within the script "scripts/setlocalversion".)
102 103
103 config SWAP 104 config SWAP
104 bool "Support for paging of anonymous memory (swap)" 105 bool "Support for paging of anonymous memory (swap)"
105 depends on MMU && BLOCK 106 depends on MMU && BLOCK
106 default y 107 default y
107 help 108 help
108 This option allows you to choose whether you want to have support 109 This option allows you to choose whether you want to have support
109 for so called swap devices or swap files in your kernel that are 110 for so called swap devices or swap files in your kernel that are
110 used to provide more virtual memory than the actual RAM present 111 used to provide more virtual memory than the actual RAM present
111 in your computer. If unsure say Y. 112 in your computer. If unsure say Y.
112 113
113 config SYSVIPC 114 config SYSVIPC
114 bool "System V IPC" 115 bool "System V IPC"
115 ---help--- 116 ---help---
116 Inter Process Communication is a suite of library functions and 117 Inter Process Communication is a suite of library functions and
117 system calls which let processes (running programs) synchronize and 118 system calls which let processes (running programs) synchronize and
118 exchange information. It is generally considered to be a good thing, 119 exchange information. It is generally considered to be a good thing,
119 and some programs won't run unless you say Y here. In particular, if 120 and some programs won't run unless you say Y here. In particular, if
120 you want to run the DOS emulator dosemu under Linux (read the 121 you want to run the DOS emulator dosemu under Linux (read the
121 DOSEMU-HOWTO, available from <http://www.tldp.org/docs.html#howto>), 122 DOSEMU-HOWTO, available from <http://www.tldp.org/docs.html#howto>),
122 you'll need to say Y here. 123 you'll need to say Y here.
123 124
124 You can find documentation about IPC with "info ipc" and also in 125 You can find documentation about IPC with "info ipc" and also in
125 section 6.4 of the Linux Programmer's Guide, available from 126 section 6.4 of the Linux Programmer's Guide, available from
126 <http://www.tldp.org/guides.html>. 127 <http://www.tldp.org/guides.html>.
127 128
128 config SYSVIPC_SYSCTL 129 config SYSVIPC_SYSCTL
129 bool 130 bool
130 depends on SYSVIPC 131 depends on SYSVIPC
131 depends on SYSCTL 132 depends on SYSCTL
132 default y 133 default y
133 134
134 config POSIX_MQUEUE 135 config POSIX_MQUEUE
135 bool "POSIX Message Queues" 136 bool "POSIX Message Queues"
136 depends on NET && EXPERIMENTAL 137 depends on NET && EXPERIMENTAL
137 ---help--- 138 ---help---
138 POSIX variant of message queues is a part of IPC. In POSIX message 139 POSIX variant of message queues is a part of IPC. In POSIX message
139 queues every message has a priority which decides about succession 140 queues every message has a priority which decides about succession
140 of receiving it by a process. If you want to compile and run 141 of receiving it by a process. If you want to compile and run
141 programs written e.g. for Solaris with use of its POSIX message 142 programs written e.g. for Solaris with use of its POSIX message
142 queues (functions mq_*) say Y here. 143 queues (functions mq_*) say Y here.
143 144
144 POSIX message queues are visible as a filesystem called 'mqueue' 145 POSIX message queues are visible as a filesystem called 'mqueue'
145 and can be mounted somewhere if you want to do filesystem 146 and can be mounted somewhere if you want to do filesystem
146 operations on message queues. 147 operations on message queues.
147 148
148 If unsure, say Y. 149 If unsure, say Y.
149 150
150 config BSD_PROCESS_ACCT 151 config BSD_PROCESS_ACCT
151 bool "BSD Process Accounting" 152 bool "BSD Process Accounting"
152 help 153 help
153 If you say Y here, a user level program will be able to instruct the 154 If you say Y here, a user level program will be able to instruct the
154 kernel (via a special system call) to write process accounting 155 kernel (via a special system call) to write process accounting
155 information to a file: whenever a process exits, information about 156 information to a file: whenever a process exits, information about
156 that process will be appended to the file by the kernel. The 157 that process will be appended to the file by the kernel. The
157 information includes things such as creation time, owning user, 158 information includes things such as creation time, owning user,
158 command name, memory usage, controlling terminal etc. (the complete 159 command name, memory usage, controlling terminal etc. (the complete
159 list is in the struct acct in <file:include/linux/acct.h>). It is 160 list is in the struct acct in <file:include/linux/acct.h>). It is
160 up to the user level program to do useful things with this 161 up to the user level program to do useful things with this
161 information. This is generally a good idea, so say Y. 162 information. This is generally a good idea, so say Y.
162 163
163 config BSD_PROCESS_ACCT_V3 164 config BSD_PROCESS_ACCT_V3
164 bool "BSD Process Accounting version 3 file format" 165 bool "BSD Process Accounting version 3 file format"
165 depends on BSD_PROCESS_ACCT 166 depends on BSD_PROCESS_ACCT
166 default n 167 default n
167 help 168 help
168 If you say Y here, the process accounting information is written 169 If you say Y here, the process accounting information is written
169 in a new file format that also logs the process IDs of each 170 in a new file format that also logs the process IDs of each
170 process and it's parent. Note that this file format is incompatible 171 process and it's parent. Note that this file format is incompatible
171 with previous v0/v1/v2 file formats, so you will need updated tools 172 with previous v0/v1/v2 file formats, so you will need updated tools
172 for processing it. A preliminary version of these tools is available 173 for processing it. A preliminary version of these tools is available
173 at <http://www.physik3.uni-rostock.de/tim/kernel/utils/acct/>. 174 at <http://www.physik3.uni-rostock.de/tim/kernel/utils/acct/>.
174 175
175 config TASKSTATS 176 config TASKSTATS
176 bool "Export task/process statistics through netlink (EXPERIMENTAL)" 177 bool "Export task/process statistics through netlink (EXPERIMENTAL)"
177 depends on NET 178 depends on NET
178 default n 179 default n
179 help 180 help
180 Export selected statistics for tasks/processes through the 181 Export selected statistics for tasks/processes through the
181 generic netlink interface. Unlike BSD process accounting, the 182 generic netlink interface. Unlike BSD process accounting, the
182 statistics are available during the lifetime of tasks/processes as 183 statistics are available during the lifetime of tasks/processes as
183 responses to commands. Like BSD accounting, they are sent to user 184 responses to commands. Like BSD accounting, they are sent to user
184 space on task exit. 185 space on task exit.
185 186
186 Say N if unsure. 187 Say N if unsure.
187 188
188 config TASK_DELAY_ACCT 189 config TASK_DELAY_ACCT
189 bool "Enable per-task delay accounting (EXPERIMENTAL)" 190 bool "Enable per-task delay accounting (EXPERIMENTAL)"
190 depends on TASKSTATS 191 depends on TASKSTATS
191 help 192 help
192 Collect information on time spent by a task waiting for system 193 Collect information on time spent by a task waiting for system
193 resources like cpu, synchronous block I/O completion and swapping 194 resources like cpu, synchronous block I/O completion and swapping
194 in pages. Such statistics can help in setting a task's priorities 195 in pages. Such statistics can help in setting a task's priorities
195 relative to other tasks for cpu, io, rss limits etc. 196 relative to other tasks for cpu, io, rss limits etc.
196 197
197 Say N if unsure. 198 Say N if unsure.
198 199
199 config TASK_XACCT 200 config TASK_XACCT
200 bool "Enable extended accounting over taskstats (EXPERIMENTAL)" 201 bool "Enable extended accounting over taskstats (EXPERIMENTAL)"
201 depends on TASKSTATS 202 depends on TASKSTATS
202 help 203 help
203 Collect extended task accounting data and send the data 204 Collect extended task accounting data and send the data
204 to userland for processing over the taskstats interface. 205 to userland for processing over the taskstats interface.
205 206
206 Say N if unsure. 207 Say N if unsure.
207 208
208 config TASK_IO_ACCOUNTING 209 config TASK_IO_ACCOUNTING
209 bool "Enable per-task storage I/O accounting (EXPERIMENTAL)" 210 bool "Enable per-task storage I/O accounting (EXPERIMENTAL)"
210 depends on TASK_XACCT 211 depends on TASK_XACCT
211 help 212 help
212 Collect information on the number of bytes of storage I/O which this 213 Collect information on the number of bytes of storage I/O which this
213 task has caused. 214 task has caused.
214 215
215 Say N if unsure. 216 Say N if unsure.
216 217
217 config AUDIT 218 config AUDIT
218 bool "Auditing support" 219 bool "Auditing support"
219 depends on NET 220 depends on NET
220 help 221 help
221 Enable auditing infrastructure that can be used with another 222 Enable auditing infrastructure that can be used with another
222 kernel subsystem, such as SELinux (which requires this for 223 kernel subsystem, such as SELinux (which requires this for
223 logging of avc messages output). Does not do system-call 224 logging of avc messages output). Does not do system-call
224 auditing without CONFIG_AUDITSYSCALL. 225 auditing without CONFIG_AUDITSYSCALL.
225 226
226 config AUDITSYSCALL 227 config AUDITSYSCALL
227 bool "Enable system-call auditing support" 228 bool "Enable system-call auditing support"
228 depends on AUDIT && (X86 || PPC || PPC64 || S390 || IA64 || UML || SPARC64|| SUPERH) 229 depends on AUDIT && (X86 || PPC || PPC64 || S390 || IA64 || UML || SPARC64|| SUPERH)
229 default y if SECURITY_SELINUX 230 default y if SECURITY_SELINUX
230 help 231 help
231 Enable low-overhead system-call auditing infrastructure that 232 Enable low-overhead system-call auditing infrastructure that
232 can be used independently or with another kernel subsystem, 233 can be used independently or with another kernel subsystem,
233 such as SELinux. To use audit's filesystem watch feature, please 234 such as SELinux. To use audit's filesystem watch feature, please
234 ensure that INOTIFY is configured. 235 ensure that INOTIFY is configured.
235 236
236 config AUDIT_TREE 237 config AUDIT_TREE
237 def_bool y 238 def_bool y
238 depends on AUDITSYSCALL && INOTIFY 239 depends on AUDITSYSCALL && INOTIFY
239 240
240 config IKCONFIG 241 config IKCONFIG
241 tristate "Kernel .config support" 242 tristate "Kernel .config support"
242 ---help--- 243 ---help---
243 This option enables the complete Linux kernel ".config" file 244 This option enables the complete Linux kernel ".config" file
244 contents to be saved in the kernel. It provides documentation 245 contents to be saved in the kernel. It provides documentation
245 of which kernel options are used in a running kernel or in an 246 of which kernel options are used in a running kernel or in an
246 on-disk kernel. This information can be extracted from the kernel 247 on-disk kernel. This information can be extracted from the kernel
247 image file with the script scripts/extract-ikconfig and used as 248 image file with the script scripts/extract-ikconfig and used as
248 input to rebuild the current kernel or to build another kernel. 249 input to rebuild the current kernel or to build another kernel.
249 It can also be extracted from a running kernel by reading 250 It can also be extracted from a running kernel by reading
250 /proc/config.gz if enabled (below). 251 /proc/config.gz if enabled (below).
251 252
252 config IKCONFIG_PROC 253 config IKCONFIG_PROC
253 bool "Enable access to .config through /proc/config.gz" 254 bool "Enable access to .config through /proc/config.gz"
254 depends on IKCONFIG && PROC_FS 255 depends on IKCONFIG && PROC_FS
255 ---help--- 256 ---help---
256 This option enables access to the kernel configuration file 257 This option enables access to the kernel configuration file
257 through /proc/config.gz. 258 through /proc/config.gz.
258 259
259 config LOG_BUF_SHIFT 260 config LOG_BUF_SHIFT
260 int "Kernel log buffer size (16 => 64KB, 17 => 128KB)" 261 int "Kernel log buffer size (16 => 64KB, 17 => 128KB)"
261 range 12 21 262 range 12 21
262 default 17 263 default 17
263 help 264 help
264 Select kernel log buffer size as a power of 2. 265 Select kernel log buffer size as a power of 2.
265 Examples: 266 Examples:
266 17 => 128 KB 267 17 => 128 KB
267 16 => 64 KB 268 16 => 64 KB
268 15 => 32 KB 269 15 => 32 KB
269 14 => 16 KB 270 14 => 16 KB
270 13 => 8 KB 271 13 => 8 KB
271 12 => 4 KB 272 12 => 4 KB
272 273
273 config CGROUPS 274 config CGROUPS
274 bool "Control Group support" 275 bool "Control Group support"
275 help 276 help
276 This option will let you use process cgroup subsystems 277 This option will let you use process cgroup subsystems
277 such as Cpusets 278 such as Cpusets
278 279
279 Say N if unsure. 280 Say N if unsure.
280 281
281 config CGROUP_DEBUG 282 config CGROUP_DEBUG
282 bool "Example debug cgroup subsystem" 283 bool "Example debug cgroup subsystem"
283 depends on CGROUPS 284 depends on CGROUPS
284 default n 285 default n
285 help 286 help
286 This option enables a simple cgroup subsystem that 287 This option enables a simple cgroup subsystem that
287 exports useful debugging information about the cgroups 288 exports useful debugging information about the cgroups
288 framework 289 framework
289 290
290 Say N if unsure 291 Say N if unsure
291 292
292 config CGROUP_NS 293 config CGROUP_NS
293 bool "Namespace cgroup subsystem" 294 bool "Namespace cgroup subsystem"
294 depends on CGROUPS 295 depends on CGROUPS
295 help 296 help
296 Provides a simple namespace cgroup subsystem to 297 Provides a simple namespace cgroup subsystem to
297 provide hierarchical naming of sets of namespaces, 298 provide hierarchical naming of sets of namespaces,
298 for instance virtual servers and checkpoint/restart 299 for instance virtual servers and checkpoint/restart
299 jobs. 300 jobs.
300 301
301 config CGROUP_DEVICE 302 config CGROUP_DEVICE
302 bool "Device controller for cgroups" 303 bool "Device controller for cgroups"
303 depends on CGROUPS && EXPERIMENTAL 304 depends on CGROUPS && EXPERIMENTAL
304 help 305 help
305 Provides a cgroup implementing whitelists for devices which 306 Provides a cgroup implementing whitelists for devices which
306 a process in the cgroup can mknod or open. 307 a process in the cgroup can mknod or open.
307 308
308 config CPUSETS 309 config CPUSETS
309 bool "Cpuset support" 310 bool "Cpuset support"
310 depends on SMP && CGROUPS 311 depends on SMP && CGROUPS
311 help 312 help
312 This option will let you create and manage CPUSETs which 313 This option will let you create and manage CPUSETs which
313 allow dynamically partitioning a system into sets of CPUs and 314 allow dynamically partitioning a system into sets of CPUs and
314 Memory Nodes and assigning tasks to run only within those sets. 315 Memory Nodes and assigning tasks to run only within those sets.
315 This is primarily useful on large SMP or NUMA systems. 316 This is primarily useful on large SMP or NUMA systems.
316 317
317 Say N if unsure. 318 Say N if unsure.
318 319
319 # 320 #
320 # Architectures with an unreliable sched_clock() should select this: 321 # Architectures with an unreliable sched_clock() should select this:
321 # 322 #
322 config HAVE_UNSTABLE_SCHED_CLOCK 323 config HAVE_UNSTABLE_SCHED_CLOCK
323 bool 324 bool
324 325
325 config GROUP_SCHED 326 config GROUP_SCHED
326 bool "Group CPU scheduler" 327 bool "Group CPU scheduler"
327 depends on EXPERIMENTAL 328 depends on EXPERIMENTAL
328 default n 329 default n
329 help 330 help
330 This feature lets CPU scheduler recognize task groups and control CPU 331 This feature lets CPU scheduler recognize task groups and control CPU
331 bandwidth allocation to such task groups. 332 bandwidth allocation to such task groups.
332 333
333 config FAIR_GROUP_SCHED 334 config FAIR_GROUP_SCHED
334 bool "Group scheduling for SCHED_OTHER" 335 bool "Group scheduling for SCHED_OTHER"
335 depends on GROUP_SCHED 336 depends on GROUP_SCHED
336 default GROUP_SCHED 337 default GROUP_SCHED
337 338
338 config RT_GROUP_SCHED 339 config RT_GROUP_SCHED
339 bool "Group scheduling for SCHED_RR/FIFO" 340 bool "Group scheduling for SCHED_RR/FIFO"
340 depends on EXPERIMENTAL 341 depends on EXPERIMENTAL
341 depends on GROUP_SCHED 342 depends on GROUP_SCHED
342 default n 343 default n
343 help 344 help
344 This feature lets you explicitly allocate real CPU bandwidth 345 This feature lets you explicitly allocate real CPU bandwidth
345 to users or control groups (depending on the "Basis for grouping tasks" 346 to users or control groups (depending on the "Basis for grouping tasks"
346 setting below. If enabled, it will also make it impossible to 347 setting below. If enabled, it will also make it impossible to
347 schedule realtime tasks for non-root users until you allocate 348 schedule realtime tasks for non-root users until you allocate
348 realtime bandwidth for them. 349 realtime bandwidth for them.
349 See Documentation/sched-rt-group.txt for more information. 350 See Documentation/sched-rt-group.txt for more information.
350 351
351 choice 352 choice
352 depends on GROUP_SCHED 353 depends on GROUP_SCHED
353 prompt "Basis for grouping tasks" 354 prompt "Basis for grouping tasks"
354 default USER_SCHED 355 default USER_SCHED
355 356
356 config USER_SCHED 357 config USER_SCHED
357 bool "user id" 358 bool "user id"
358 help 359 help
359 This option will choose userid as the basis for grouping 360 This option will choose userid as the basis for grouping
360 tasks, thus providing equal CPU bandwidth to each user. 361 tasks, thus providing equal CPU bandwidth to each user.
361 362
362 config CGROUP_SCHED 363 config CGROUP_SCHED
363 bool "Control groups" 364 bool "Control groups"
364 depends on CGROUPS 365 depends on CGROUPS
365 help 366 help
366 This option allows you to create arbitrary task groups 367 This option allows you to create arbitrary task groups
367 using the "cgroup" pseudo filesystem and control 368 using the "cgroup" pseudo filesystem and control
368 the cpu bandwidth allocated to each such task group. 369 the cpu bandwidth allocated to each such task group.
369 Refer to Documentation/cgroups.txt for more information 370 Refer to Documentation/cgroups.txt for more information
370 on "cgroup" pseudo filesystem. 371 on "cgroup" pseudo filesystem.
371 372
372 endchoice 373 endchoice
373 374
374 config CGROUP_CPUACCT 375 config CGROUP_CPUACCT
375 bool "Simple CPU accounting cgroup subsystem" 376 bool "Simple CPU accounting cgroup subsystem"
376 depends on CGROUPS 377 depends on CGROUPS
377 help 378 help
378 Provides a simple Resource Controller for monitoring the 379 Provides a simple Resource Controller for monitoring the
379 total CPU consumed by the tasks in a cgroup 380 total CPU consumed by the tasks in a cgroup
380 381
381 config RESOURCE_COUNTERS 382 config RESOURCE_COUNTERS
382 bool "Resource counters" 383 bool "Resource counters"
383 help 384 help
384 This option enables controller independent resource accounting 385 This option enables controller independent resource accounting
385 infrastructure that works with cgroups 386 infrastructure that works with cgroups
386 depends on CGROUPS 387 depends on CGROUPS
387 388
388 config MM_OWNER 389 config MM_OWNER
389 bool 390 bool
390 391
391 config CGROUP_MEM_RES_CTLR 392 config CGROUP_MEM_RES_CTLR
392 bool "Memory Resource Controller for Control Groups" 393 bool "Memory Resource Controller for Control Groups"
393 depends on CGROUPS && RESOURCE_COUNTERS 394 depends on CGROUPS && RESOURCE_COUNTERS
394 select MM_OWNER 395 select MM_OWNER
395 help 396 help
396 Provides a memory resource controller that manages both page cache and 397 Provides a memory resource controller that manages both page cache and
397 RSS memory. 398 RSS memory.
398 399
399 Note that setting this option increases fixed memory overhead 400 Note that setting this option increases fixed memory overhead
400 associated with each page of memory in the system by 4/8 bytes 401 associated with each page of memory in the system by 4/8 bytes
401 and also increases cache misses because struct page on many 64bit 402 and also increases cache misses because struct page on many 64bit
402 systems will not fit into a single cache line anymore. 403 systems will not fit into a single cache line anymore.
403 404
404 Only enable when you're ok with these trade offs and really 405 Only enable when you're ok with these trade offs and really
405 sure you need the memory resource controller. 406 sure you need the memory resource controller.
406 407
407 This config option also selects MM_OWNER config option, which 408 This config option also selects MM_OWNER config option, which
408 could in turn add some fork/exit overhead. 409 could in turn add some fork/exit overhead.
409 410
410 config SYSFS_DEPRECATED 411 config SYSFS_DEPRECATED
411 bool 412 bool
412 413
413 config SYSFS_DEPRECATED_V2 414 config SYSFS_DEPRECATED_V2
414 bool "Create deprecated sysfs files" 415 bool "Create deprecated sysfs files"
415 depends on SYSFS 416 depends on SYSFS
416 default y 417 default y
417 select SYSFS_DEPRECATED 418 select SYSFS_DEPRECATED
418 help 419 help
419 This option creates deprecated symlinks such as the 420 This option creates deprecated symlinks such as the
420 "device"-link, the <subsystem>:<name>-link, and the 421 "device"-link, the <subsystem>:<name>-link, and the
421 "bus"-link. It may also add deprecated key in the 422 "bus"-link. It may also add deprecated key in the
422 uevent environment. 423 uevent environment.
423 None of these features or values should be used today, as 424 None of these features or values should be used today, as
424 they export driver core implementation details to userspace 425 they export driver core implementation details to userspace
425 or export properties which can't be kept stable across kernel 426 or export properties which can't be kept stable across kernel
426 releases. 427 releases.
427 428
428 If enabled, this option will also move any device structures 429 If enabled, this option will also move any device structures
429 that belong to a class, back into the /sys/class hierarchy, in 430 that belong to a class, back into the /sys/class hierarchy, in
430 order to support older versions of udev and some userspace 431 order to support older versions of udev and some userspace
431 programs. 432 programs.
432 433
433 If you are using a distro with the most recent userspace 434 If you are using a distro with the most recent userspace
434 packages, it should be safe to say N here. 435 packages, it should be safe to say N here.
435 436
436 config PROC_PID_CPUSET 437 config PROC_PID_CPUSET
437 bool "Include legacy /proc/<pid>/cpuset file" 438 bool "Include legacy /proc/<pid>/cpuset file"
438 depends on CPUSETS 439 depends on CPUSETS
439 default y 440 default y
440 441
441 config RELAY 442 config RELAY
442 bool "Kernel->user space relay support (formerly relayfs)" 443 bool "Kernel->user space relay support (formerly relayfs)"
443 help 444 help
444 This option enables support for relay interface support in 445 This option enables support for relay interface support in
445 certain file systems (such as debugfs). 446 certain file systems (such as debugfs).
446 It is designed to provide an efficient mechanism for tools and 447 It is designed to provide an efficient mechanism for tools and
447 facilities to relay large amounts of data from kernel space to 448 facilities to relay large amounts of data from kernel space to
448 user space. 449 user space.
449 450
450 If unsure, say N. 451 If unsure, say N.
451 452
452 config NAMESPACES 453 config NAMESPACES
453 bool "Namespaces support" if EMBEDDED 454 bool "Namespaces support" if EMBEDDED
454 default !EMBEDDED 455 default !EMBEDDED
455 help 456 help
456 Provides the way to make tasks work with different objects using 457 Provides the way to make tasks work with different objects using
457 the same id. For example same IPC id may refer to different objects 458 the same id. For example same IPC id may refer to different objects
458 or same user id or pid may refer to different tasks when used in 459 or same user id or pid may refer to different tasks when used in
459 different namespaces. 460 different namespaces.
460 461
461 config UTS_NS 462 config UTS_NS
462 bool "UTS namespace" 463 bool "UTS namespace"
463 depends on NAMESPACES 464 depends on NAMESPACES
464 help 465 help
465 In this namespace tasks see different info provided with the 466 In this namespace tasks see different info provided with the
466 uname() system call 467 uname() system call
467 468
468 config IPC_NS 469 config IPC_NS
469 bool "IPC namespace" 470 bool "IPC namespace"
470 depends on NAMESPACES && SYSVIPC 471 depends on NAMESPACES && SYSVIPC
471 help 472 help
472 In this namespace tasks work with IPC ids which correspond to 473 In this namespace tasks work with IPC ids which correspond to
473 different IPC objects in different namespaces 474 different IPC objects in different namespaces
474 475
475 config USER_NS 476 config USER_NS
476 bool "User namespace (EXPERIMENTAL)" 477 bool "User namespace (EXPERIMENTAL)"
477 depends on NAMESPACES && EXPERIMENTAL 478 depends on NAMESPACES && EXPERIMENTAL
478 help 479 help
479 This allows containers, i.e. vservers, to use user namespaces 480 This allows containers, i.e. vservers, to use user namespaces
480 to provide different user info for different servers. 481 to provide different user info for different servers.
481 If unsure, say N. 482 If unsure, say N.
482 483
483 config PID_NS 484 config PID_NS
484 bool "PID Namespaces (EXPERIMENTAL)" 485 bool "PID Namespaces (EXPERIMENTAL)"
485 default n 486 default n
486 depends on NAMESPACES && EXPERIMENTAL 487 depends on NAMESPACES && EXPERIMENTAL
487 help 488 help
488 Suport process id namespaces. This allows having multiple 489 Suport process id namespaces. This allows having multiple
489 process with the same pid as long as they are in different 490 process with the same pid as long as they are in different
490 pid namespaces. This is a building block of containers. 491 pid namespaces. This is a building block of containers.
491 492
492 Unless you want to work with an experimental feature 493 Unless you want to work with an experimental feature
493 say N here. 494 say N here.
494 495
495 config BLK_DEV_INITRD 496 config BLK_DEV_INITRD
496 bool "Initial RAM filesystem and RAM disk (initramfs/initrd) support" 497 bool "Initial RAM filesystem and RAM disk (initramfs/initrd) support"
497 depends on BROKEN || !FRV 498 depends on BROKEN || !FRV
498 help 499 help
499 The initial RAM filesystem is a ramfs which is loaded by the 500 The initial RAM filesystem is a ramfs which is loaded by the
500 boot loader (loadlin or lilo) and that is mounted as root 501 boot loader (loadlin or lilo) and that is mounted as root
501 before the normal boot procedure. It is typically used to 502 before the normal boot procedure. It is typically used to
502 load modules needed to mount the "real" root file system, 503 load modules needed to mount the "real" root file system,
503 etc. See <file:Documentation/initrd.txt> for details. 504 etc. See <file:Documentation/initrd.txt> for details.
504 505
505 If RAM disk support (BLK_DEV_RAM) is also included, this 506 If RAM disk support (BLK_DEV_RAM) is also included, this
506 also enables initial RAM disk (initrd) support and adds 507 also enables initial RAM disk (initrd) support and adds
507 15 Kbytes (more on some other architectures) to the kernel size. 508 15 Kbytes (more on some other architectures) to the kernel size.
508 509
509 If unsure say Y. 510 If unsure say Y.
510 511
511 if BLK_DEV_INITRD 512 if BLK_DEV_INITRD
512 513
513 source "usr/Kconfig" 514 source "usr/Kconfig"
514 515
515 endif 516 endif
516 517
517 config CC_OPTIMIZE_FOR_SIZE 518 config CC_OPTIMIZE_FOR_SIZE
518 bool "Optimize for size" 519 bool "Optimize for size"
519 default y 520 default y
520 help 521 help
521 Enabling this option will pass "-Os" instead of "-O2" to gcc 522 Enabling this option will pass "-Os" instead of "-O2" to gcc
522 resulting in a smaller kernel. 523 resulting in a smaller kernel.
523 524
524 If unsure, say N. 525 If unsure, say N.
525 526
526 config SYSCTL 527 config SYSCTL
527 bool 528 bool
528 529
529 menuconfig EMBEDDED 530 menuconfig EMBEDDED
530 bool "Configure standard kernel features (for small systems)" 531 bool "Configure standard kernel features (for small systems)"
531 help 532 help
532 This option allows certain base kernel options and settings 533 This option allows certain base kernel options and settings
533 to be disabled or tweaked. This is for specialized 534 to be disabled or tweaked. This is for specialized
534 environments which can tolerate a "non-standard" kernel. 535 environments which can tolerate a "non-standard" kernel.
535 Only use this if you really know what you are doing. 536 Only use this if you really know what you are doing.
536 537
537 config UID16 538 config UID16
538 bool "Enable 16-bit UID system calls" if EMBEDDED 539 bool "Enable 16-bit UID system calls" if EMBEDDED
539 depends on ARM || BLACKFIN || CRIS || FRV || H8300 || X86_32 || M68K || (S390 && !64BIT) || SUPERH || SPARC32 || (SPARC64 && COMPAT) || UML || (X86_64 && IA32_EMULATION) 540 depends on ARM || BLACKFIN || CRIS || FRV || H8300 || X86_32 || M68K || (S390 && !64BIT) || SUPERH || SPARC32 || (SPARC64 && COMPAT) || UML || (X86_64 && IA32_EMULATION)
540 default y 541 default y
541 help 542 help
542 This enables the legacy 16-bit UID syscall wrappers. 543 This enables the legacy 16-bit UID syscall wrappers.
543 544
544 config SYSCTL_SYSCALL 545 config SYSCTL_SYSCALL
545 bool "Sysctl syscall support" if EMBEDDED 546 bool "Sysctl syscall support" if EMBEDDED
546 default y 547 default y
547 select SYSCTL 548 select SYSCTL
548 ---help--- 549 ---help---
549 sys_sysctl uses binary paths that have been found challenging 550 sys_sysctl uses binary paths that have been found challenging
550 to properly maintain and use. The interface in /proc/sys 551 to properly maintain and use. The interface in /proc/sys
551 using paths with ascii names is now the primary path to this 552 using paths with ascii names is now the primary path to this
552 information. 553 information.
553 554
554 Almost nothing using the binary sysctl interface so if you are 555 Almost nothing using the binary sysctl interface so if you are
555 trying to save some space it is probably safe to disable this, 556 trying to save some space it is probably safe to disable this,
556 making your kernel marginally smaller. 557 making your kernel marginally smaller.
557 558
558 If unsure say Y here. 559 If unsure say Y here.
559 560
560 config SYSCTL_SYSCALL_CHECK 561 config SYSCTL_SYSCALL_CHECK
561 bool "Sysctl checks" if EMBEDDED 562 bool "Sysctl checks" if EMBEDDED
562 depends on SYSCTL_SYSCALL 563 depends on SYSCTL_SYSCALL
563 default y 564 default y
564 ---help--- 565 ---help---
565 sys_sysctl uses binary paths that have been found challenging 566 sys_sysctl uses binary paths that have been found challenging
566 to properly maintain and use. This enables checks that help 567 to properly maintain and use. This enables checks that help
567 you to keep things correct. 568 you to keep things correct.
568 569
569 If unsure say Y here. 570 If unsure say Y here.
570 571
571 config KALLSYMS 572 config KALLSYMS
572 bool "Load all symbols for debugging/ksymoops" if EMBEDDED 573 bool "Load all symbols for debugging/ksymoops" if EMBEDDED
573 default y 574 default y
574 help 575 help
575 Say Y here to let the kernel print out symbolic crash information and 576 Say Y here to let the kernel print out symbolic crash information and
576 symbolic stack backtraces. This increases the size of the kernel 577 symbolic stack backtraces. This increases the size of the kernel
577 somewhat, as all symbols have to be loaded into the kernel image. 578 somewhat, as all symbols have to be loaded into the kernel image.
578 579
579 config KALLSYMS_ALL 580 config KALLSYMS_ALL
580 bool "Include all symbols in kallsyms" 581 bool "Include all symbols in kallsyms"
581 depends on DEBUG_KERNEL && KALLSYMS 582 depends on DEBUG_KERNEL && KALLSYMS
582 help 583 help
583 Normally kallsyms only contains the symbols of functions, for nicer 584 Normally kallsyms only contains the symbols of functions, for nicer
584 OOPS messages. Some debuggers can use kallsyms for other 585 OOPS messages. Some debuggers can use kallsyms for other
585 symbols too: say Y here to include all symbols, if you need them 586 symbols too: say Y here to include all symbols, if you need them
586 and you don't care about adding 300k to the size of your kernel. 587 and you don't care about adding 300k to the size of your kernel.
587 588
588 Say N. 589 Say N.
589 590
590 config KALLSYMS_EXTRA_PASS 591 config KALLSYMS_EXTRA_PASS
591 bool "Do an extra kallsyms pass" 592 bool "Do an extra kallsyms pass"
592 depends on KALLSYMS 593 depends on KALLSYMS
593 help 594 help
594 If kallsyms is not working correctly, the build will fail with 595 If kallsyms is not working correctly, the build will fail with
595 inconsistent kallsyms data. If that occurs, log a bug report and 596 inconsistent kallsyms data. If that occurs, log a bug report and
596 turn on KALLSYMS_EXTRA_PASS which should result in a stable build. 597 turn on KALLSYMS_EXTRA_PASS which should result in a stable build.
597 Always say N here unless you find a bug in kallsyms, which must be 598 Always say N here unless you find a bug in kallsyms, which must be
598 reported. KALLSYMS_EXTRA_PASS is only a temporary workaround while 599 reported. KALLSYMS_EXTRA_PASS is only a temporary workaround while
599 you wait for kallsyms to be fixed. 600 you wait for kallsyms to be fixed.
600 601
601 602
602 config HOTPLUG 603 config HOTPLUG
603 bool "Support for hot-pluggable devices" if EMBEDDED 604 bool "Support for hot-pluggable devices" if EMBEDDED
604 default y 605 default y
605 help 606 help
606 This option is provided for the case where no hotplug or uevent 607 This option is provided for the case where no hotplug or uevent
607 capabilities is wanted by the kernel. You should only consider 608 capabilities is wanted by the kernel. You should only consider
608 disabling this option for embedded systems that do not use modules, a 609 disabling this option for embedded systems that do not use modules, a
609 dynamic /dev tree, or dynamic device discovery. Just say Y. 610 dynamic /dev tree, or dynamic device discovery. Just say Y.
610 611
611 config PRINTK 612 config PRINTK
612 default y 613 default y
613 bool "Enable support for printk" if EMBEDDED 614 bool "Enable support for printk" if EMBEDDED
614 help 615 help
615 This option enables normal printk support. Removing it 616 This option enables normal printk support. Removing it
616 eliminates most of the message strings from the kernel image 617 eliminates most of the message strings from the kernel image
617 and makes the kernel more or less silent. As this makes it 618 and makes the kernel more or less silent. As this makes it
618 very difficult to diagnose system problems, saying N here is 619 very difficult to diagnose system problems, saying N here is
619 strongly discouraged. 620 strongly discouraged.
620 621
621 config BUG 622 config BUG
622 bool "BUG() support" if EMBEDDED 623 bool "BUG() support" if EMBEDDED
623 default y 624 default y
624 help 625 help
625 Disabling this option eliminates support for BUG and WARN, reducing 626 Disabling this option eliminates support for BUG and WARN, reducing
626 the size of your kernel image and potentially quietly ignoring 627 the size of your kernel image and potentially quietly ignoring
627 numerous fatal conditions. You should only consider disabling this 628 numerous fatal conditions. You should only consider disabling this
628 option for embedded systems with no facilities for reporting errors. 629 option for embedded systems with no facilities for reporting errors.
629 Just say Y. 630 Just say Y.
630 631
631 config ELF_CORE 632 config ELF_CORE
632 default y 633 default y
633 bool "Enable ELF core dumps" if EMBEDDED 634 bool "Enable ELF core dumps" if EMBEDDED
634 help 635 help
635 Enable support for generating core dumps. Disabling saves about 4k. 636 Enable support for generating core dumps. Disabling saves about 4k.
636 637
637 config PCSPKR_PLATFORM 638 config PCSPKR_PLATFORM
638 bool "Enable PC-Speaker support" if EMBEDDED 639 bool "Enable PC-Speaker support" if EMBEDDED
639 depends on ALPHA || X86 || MIPS || PPC_PREP || PPC_CHRP || PPC_PSERIES 640 depends on ALPHA || X86 || MIPS || PPC_PREP || PPC_CHRP || PPC_PSERIES
640 default y 641 default y
641 help 642 help
642 This option allows to disable the internal PC-Speaker 643 This option allows to disable the internal PC-Speaker
643 support, saving some memory. 644 support, saving some memory.
644 645
645 config COMPAT_BRK 646 config COMPAT_BRK
646 bool "Disable heap randomization" 647 bool "Disable heap randomization"
647 default y 648 default y
648 help 649 help
649 Randomizing heap placement makes heap exploits harder, but it 650 Randomizing heap placement makes heap exploits harder, but it
650 also breaks ancient binaries (including anything libc5 based). 651 also breaks ancient binaries (including anything libc5 based).
651 This option changes the bootup default to heap randomization 652 This option changes the bootup default to heap randomization
652 disabled, and can be overriden runtime by setting 653 disabled, and can be overriden runtime by setting
653 /proc/sys/kernel/randomize_va_space to 2. 654 /proc/sys/kernel/randomize_va_space to 2.
654 655
655 On non-ancient distros (post-2000 ones) N is usually a safe choice. 656 On non-ancient distros (post-2000 ones) N is usually a safe choice.
656 657
657 config BASE_FULL 658 config BASE_FULL
658 default y 659 default y
659 bool "Enable full-sized data structures for core" if EMBEDDED 660 bool "Enable full-sized data structures for core" if EMBEDDED
660 help 661 help
661 Disabling this option reduces the size of miscellaneous core 662 Disabling this option reduces the size of miscellaneous core
662 kernel data structures. This saves memory on small machines, 663 kernel data structures. This saves memory on small machines,
663 but may reduce performance. 664 but may reduce performance.
664 665
665 config FUTEX 666 config FUTEX
666 bool "Enable futex support" if EMBEDDED 667 bool "Enable futex support" if EMBEDDED
667 default y 668 default y
668 select RT_MUTEXES 669 select RT_MUTEXES
669 help 670 help
670 Disabling this option will cause the kernel to be built without 671 Disabling this option will cause the kernel to be built without
671 support for "fast userspace mutexes". The resulting kernel may not 672 support for "fast userspace mutexes". The resulting kernel may not
672 run glibc-based applications correctly. 673 run glibc-based applications correctly.
673 674
674 config ANON_INODES 675 config ANON_INODES
675 bool 676 bool
676 677
677 config EPOLL 678 config EPOLL
678 bool "Enable eventpoll support" if EMBEDDED 679 bool "Enable eventpoll support" if EMBEDDED
679 default y 680 default y
680 select ANON_INODES 681 select ANON_INODES
681 help 682 help
682 Disabling this option will cause the kernel to be built without 683 Disabling this option will cause the kernel to be built without
683 support for epoll family of system calls. 684 support for epoll family of system calls.
684 685
685 config SIGNALFD 686 config SIGNALFD
686 bool "Enable signalfd() system call" if EMBEDDED 687 bool "Enable signalfd() system call" if EMBEDDED
687 select ANON_INODES 688 select ANON_INODES
688 default y 689 default y
689 help 690 help
690 Enable the signalfd() system call that allows to receive signals 691 Enable the signalfd() system call that allows to receive signals
691 on a file descriptor. 692 on a file descriptor.
692 693
693 If unsure, say Y. 694 If unsure, say Y.
694 695
695 config TIMERFD 696 config TIMERFD
696 bool "Enable timerfd() system call" if EMBEDDED 697 bool "Enable timerfd() system call" if EMBEDDED
697 select ANON_INODES 698 select ANON_INODES
698 default y 699 default y
699 help 700 help
700 Enable the timerfd() system call that allows to receive timer 701 Enable the timerfd() system call that allows to receive timer
701 events on a file descriptor. 702 events on a file descriptor.
702 703
703 If unsure, say Y. 704 If unsure, say Y.
704 705
705 config EVENTFD 706 config EVENTFD
706 bool "Enable eventfd() system call" if EMBEDDED 707 bool "Enable eventfd() system call" if EMBEDDED
707 select ANON_INODES 708 select ANON_INODES
708 default y 709 default y
709 help 710 help
710 Enable the eventfd() system call that allows to receive both 711 Enable the eventfd() system call that allows to receive both
711 kernel notification (ie. KAIO) or userspace notifications. 712 kernel notification (ie. KAIO) or userspace notifications.
712 713
713 If unsure, say Y. 714 If unsure, say Y.
714 715
715 config SHMEM 716 config SHMEM
716 bool "Use full shmem filesystem" if EMBEDDED 717 bool "Use full shmem filesystem" if EMBEDDED
717 default y 718 default y
718 depends on MMU 719 depends on MMU
719 help 720 help
720 The shmem is an internal filesystem used to manage shared memory. 721 The shmem is an internal filesystem used to manage shared memory.
721 It is backed by swap and manages resource limits. It is also exported 722 It is backed by swap and manages resource limits. It is also exported
722 to userspace as tmpfs if TMPFS is enabled. Disabling this 723 to userspace as tmpfs if TMPFS is enabled. Disabling this
723 option replaces shmem and tmpfs with the much simpler ramfs code, 724 option replaces shmem and tmpfs with the much simpler ramfs code,
724 which may be appropriate on small systems without swap. 725 which may be appropriate on small systems without swap.
725 726
726 config VM_EVENT_COUNTERS 727 config VM_EVENT_COUNTERS
727 default y 728 default y
728 bool "Enable VM event counters for /proc/vmstat" if EMBEDDED 729 bool "Enable VM event counters for /proc/vmstat" if EMBEDDED
729 help 730 help
730 VM event counters are needed for event counts to be shown. 731 VM event counters are needed for event counts to be shown.
731 This option allows the disabling of the VM event counters 732 This option allows the disabling of the VM event counters
732 on EMBEDDED systems. /proc/vmstat will only show page counts 733 on EMBEDDED systems. /proc/vmstat will only show page counts
733 if VM event counters are disabled. 734 if VM event counters are disabled.
734 735
735 config SLUB_DEBUG 736 config SLUB_DEBUG
736 default y 737 default y
737 bool "Enable SLUB debugging support" if EMBEDDED 738 bool "Enable SLUB debugging support" if EMBEDDED
738 depends on SLUB && SYSFS 739 depends on SLUB && SYSFS
739 help 740 help
740 SLUB has extensive debug support features. Disabling these can 741 SLUB has extensive debug support features. Disabling these can
741 result in significant savings in code size. This also disables 742 result in significant savings in code size. This also disables
742 SLUB sysfs support. /sys/slab will not exist and there will be 743 SLUB sysfs support. /sys/slab will not exist and there will be
743 no support for cache validation etc. 744 no support for cache validation etc.
744 745
745 choice 746 choice
746 prompt "Choose SLAB allocator" 747 prompt "Choose SLAB allocator"
747 default SLUB 748 default SLUB
748 help 749 help
749 This option allows to select a slab allocator. 750 This option allows to select a slab allocator.
750 751
751 config SLAB 752 config SLAB
752 bool "SLAB" 753 bool "SLAB"
753 help 754 help
754 The regular slab allocator that is established and known to work 755 The regular slab allocator that is established and known to work
755 well in all environments. It organizes cache hot objects in 756 well in all environments. It organizes cache hot objects in
756 per cpu and per node queues. SLAB is the default choice for 757 per cpu and per node queues. SLAB is the default choice for
757 a slab allocator. 758 a slab allocator.
758 759
759 config SLUB 760 config SLUB
760 bool "SLUB (Unqueued Allocator)" 761 bool "SLUB (Unqueued Allocator)"
761 help 762 help
762 SLUB is a slab allocator that minimizes cache line usage 763 SLUB is a slab allocator that minimizes cache line usage
763 instead of managing queues of cached objects (SLAB approach). 764 instead of managing queues of cached objects (SLAB approach).
764 Per cpu caching is realized using slabs of objects instead 765 Per cpu caching is realized using slabs of objects instead
765 of queues of objects. SLUB can use memory efficiently 766 of queues of objects. SLUB can use memory efficiently
766 and has enhanced diagnostics. 767 and has enhanced diagnostics.
767 768
768 config SLOB 769 config SLOB
769 depends on EMBEDDED 770 depends on EMBEDDED
770 bool "SLOB (Simple Allocator)" 771 bool "SLOB (Simple Allocator)"
771 help 772 help
772 SLOB replaces the stock allocator with a drastically simpler 773 SLOB replaces the stock allocator with a drastically simpler
773 allocator. SLOB is generally more space efficient but 774 allocator. SLOB is generally more space efficient but
774 does not perform as well on large systems. 775 does not perform as well on large systems.
775 776
776 endchoice 777 endchoice
777 778
778 config PROFILING 779 config PROFILING
779 bool "Profiling support (EXPERIMENTAL)" 780 bool "Profiling support (EXPERIMENTAL)"
780 help 781 help
781 Say Y here to enable the extended profiling support mechanisms used 782 Say Y here to enable the extended profiling support mechanisms used
782 by profilers such as OProfile. 783 by profilers such as OProfile.
783 784
784 config MARKERS 785 config MARKERS
785 bool "Activate markers" 786 bool "Activate markers"
786 help 787 help
787 Place an empty function call at each marker site. Can be 788 Place an empty function call at each marker site. Can be
788 dynamically changed for a probe function. 789 dynamically changed for a probe function.
789 790
790 source "arch/Kconfig" 791 source "arch/Kconfig"
791 792
792 config PROC_PAGE_MONITOR 793 config PROC_PAGE_MONITOR
793 default y 794 default y
794 depends on PROC_FS && MMU 795 depends on PROC_FS && MMU
795 bool "Enable /proc page monitoring" if EMBEDDED 796 bool "Enable /proc page monitoring" if EMBEDDED
796 help 797 help
797 Various /proc files exist to monitor process memory utilization: 798 Various /proc files exist to monitor process memory utilization:
798 /proc/pid/smaps, /proc/pid/clear_refs, /proc/pid/pagemap, 799 /proc/pid/smaps, /proc/pid/clear_refs, /proc/pid/pagemap,
799 /proc/kpagecount, and /proc/kpageflags. Disabling these 800 /proc/kpagecount, and /proc/kpageflags. Disabling these
800 interfaces will reduce the size of the kernel by approximately 4kb. 801 interfaces will reduce the size of the kernel by approximately 4kb.
801 802
802 endmenu # General setup 803 endmenu # General setup
803 804
804 config SLABINFO 805 config SLABINFO
805 bool 806 bool
806 depends on PROC_FS 807 depends on PROC_FS
807 depends on SLAB || SLUB_DEBUG 808 depends on SLAB || SLUB_DEBUG
808 default y 809 default y
809 810
810 config RT_MUTEXES 811 config RT_MUTEXES
811 boolean 812 boolean
812 select PLIST 813 select PLIST
813 814
814 config TINY_SHMEM 815 config TINY_SHMEM
815 default !SHMEM 816 default !SHMEM
816 bool 817 bool
817 818
818 config BASE_SMALL 819 config BASE_SMALL
819 int 820 int
820 default 0 if BASE_FULL 821 default 0 if BASE_FULL
821 default 1 if !BASE_FULL 822 default 1 if !BASE_FULL
822 823
823 menuconfig MODULES 824 menuconfig MODULES
824 bool "Enable loadable module support" 825 bool "Enable loadable module support"
825 help 826 help
826 Kernel modules are small pieces of compiled code which can 827 Kernel modules are small pieces of compiled code which can
827 be inserted in the running kernel, rather than being 828 be inserted in the running kernel, rather than being
828 permanently built into the kernel. You use the "modprobe" 829 permanently built into the kernel. You use the "modprobe"
829 tool to add (and sometimes remove) them. If you say Y here, 830 tool to add (and sometimes remove) them. If you say Y here,
830 many parts of the kernel can be built as modules (by 831 many parts of the kernel can be built as modules (by
831 answering M instead of Y where indicated): this is most 832 answering M instead of Y where indicated): this is most
832 useful for infrequently used options which are not required 833 useful for infrequently used options which are not required
833 for booting. For more information, see the man pages for 834 for booting. For more information, see the man pages for
834 modprobe, lsmod, modinfo, insmod and rmmod. 835 modprobe, lsmod, modinfo, insmod and rmmod.
835 836
836 If you say Y here, you will need to run "make 837 If you say Y here, you will need to run "make
837 modules_install" to put the modules under /lib/modules/ 838 modules_install" to put the modules under /lib/modules/
838 where modprobe can find them (you may need to be root to do 839 where modprobe can find them (you may need to be root to do
839 this). 840 this).
840 841
841 If unsure, say Y. 842 If unsure, say Y.
842 843
843 config MODULE_FORCE_LOAD 844 config MODULE_FORCE_LOAD
844 bool "Forced module loading" 845 bool "Forced module loading"
845 depends on MODULES 846 depends on MODULES
846 default n 847 default n
847 help 848 help
848 Allow loading of modules without version information (ie. modprobe 849 Allow loading of modules without version information (ie. modprobe
849 --force). Forced module loading sets the 'F' (forced) taint flag and 850 --force). Forced module loading sets the 'F' (forced) taint flag and
850 is usually a really bad idea. 851 is usually a really bad idea.
851 852
852 config MODULE_UNLOAD 853 config MODULE_UNLOAD
853 bool "Module unloading" 854 bool "Module unloading"
854 depends on MODULES 855 depends on MODULES
855 help 856 help
856 Without this option you will not be able to unload any 857 Without this option you will not be able to unload any
857 modules (note that some modules may not be unloadable 858 modules (note that some modules may not be unloadable
858 anyway), which makes your kernel slightly smaller and 859 anyway), which makes your kernel slightly smaller and
859 simpler. If unsure, say Y. 860 simpler. If unsure, say Y.
860 861
861 config MODULE_FORCE_UNLOAD 862 config MODULE_FORCE_UNLOAD
862 bool "Forced module unloading" 863 bool "Forced module unloading"
863 depends on MODULE_UNLOAD && EXPERIMENTAL 864 depends on MODULE_UNLOAD && EXPERIMENTAL
864 help 865 help
865 This option allows you to force a module to unload, even if the 866 This option allows you to force a module to unload, even if the
866 kernel believes it is unsafe: the kernel will remove the module 867 kernel believes it is unsafe: the kernel will remove the module
867 without waiting for anyone to stop using it (using the -f option to 868 without waiting for anyone to stop using it (using the -f option to
868 rmmod). This is mainly for kernel developers and desperate users. 869 rmmod). This is mainly for kernel developers and desperate users.
869 If unsure, say N. 870 If unsure, say N.
870 871
871 config MODVERSIONS 872 config MODVERSIONS
872 bool "Module versioning support" 873 bool "Module versioning support"
873 depends on MODULES 874 depends on MODULES
874 help 875 help
875 Usually, you have to use modules compiled with your kernel. 876 Usually, you have to use modules compiled with your kernel.
876 Saying Y here makes it sometimes possible to use modules 877 Saying Y here makes it sometimes possible to use modules
877 compiled for different kernels, by adding enough information 878 compiled for different kernels, by adding enough information
878 to the modules to (hopefully) spot any changes which would 879 to the modules to (hopefully) spot any changes which would
879 make them incompatible with the kernel you are running. If 880 make them incompatible with the kernel you are running. If
880 unsure, say N. 881 unsure, say N.
881 882
882 config MODULE_SRCVERSION_ALL 883 config MODULE_SRCVERSION_ALL
883 bool "Source checksum for all modules" 884 bool "Source checksum for all modules"
884 depends on MODULES 885 depends on MODULES
885 help 886 help
886 Modules which contain a MODULE_VERSION get an extra "srcversion" 887 Modules which contain a MODULE_VERSION get an extra "srcversion"
887 field inserted into their modinfo section, which contains a 888 field inserted into their modinfo section, which contains a
888 sum of the source files which made it. This helps maintainers 889 sum of the source files which made it. This helps maintainers
889 see exactly which source was used to build a module (since 890 see exactly which source was used to build a module (since
890 others sometimes change the module source without updating 891 others sometimes change the module source without updating
891 the version). With this option, such a "srcversion" field 892 the version). With this option, such a "srcversion" field
892 will be created for all modules. If unsure, say N. 893 will be created for all modules. If unsure, say N.
893 894
894 config KMOD 895 config KMOD
895 bool "Automatic kernel module loading" 896 bool "Automatic kernel module loading"
896 depends on MODULES 897 depends on MODULES
897 help 898 help
898 Normally when you have selected some parts of the kernel to 899 Normally when you have selected some parts of the kernel to
899 be created as kernel modules, you must load them (using the 900 be created as kernel modules, you must load them (using the
900 "modprobe" command) before you can use them. If you say Y 901 "modprobe" command) before you can use them. If you say Y
901 here, some parts of the kernel will be able to load modules 902 here, some parts of the kernel will be able to load modules
902 automatically: when a part of the kernel needs a module, it 903 automatically: when a part of the kernel needs a module, it
903 runs modprobe with the appropriate arguments, thereby 904 runs modprobe with the appropriate arguments, thereby
904 loading the module if it is available. If unsure, say Y. 905 loading the module if it is available. If unsure, say Y.
905 906
906 config STOP_MACHINE 907 config STOP_MACHINE
907 bool 908 bool
908 default y 909 default y
909 depends on (SMP && MODULE_UNLOAD) || HOTPLUG_CPU 910 depends on (SMP && MODULE_UNLOAD) || HOTPLUG_CPU
910 help 911 help
911 Need stop_machine() primitive. 912 Need stop_machine() primitive.
912 913
913 source "block/Kconfig" 914 source "block/Kconfig"
914 915
915 config PREEMPT_NOTIFIERS 916 config PREEMPT_NOTIFIERS
916 bool 917 bool
917 918
918 config CLASSIC_RCU 919 config CLASSIC_RCU
919 def_bool !PREEMPT_RCU 920 def_bool !PREEMPT_RCU
920 help 921 help
921 This option selects the classic RCU implementation that is 922 This option selects the classic RCU implementation that is
922 designed for best read-side performance on non-realtime 923 designed for best read-side performance on non-realtime
923 systems. Classic RCU is the default. Note that the 924 systems. Classic RCU is the default. Note that the
924 PREEMPT_RCU symbol is used to select/deselect this option. 925 PREEMPT_RCU symbol is used to select/deselect this option.
925 926