Root/
1 | # x86 configuration |
2 | mainmenu "Linux Kernel Configuration for x86" |
3 | |
4 | # Select 32 or 64 bit |
5 | config 64BIT |
6 | bool "64-bit kernel" if ARCH = "x86" |
7 | default ARCH = "x86_64" |
8 | ---help--- |
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 |
11 | |
12 | config X86_32 |
13 | def_bool !64BIT |
14 | |
15 | config X86_64 |
16 | def_bool 64BIT |
17 | |
18 | ### Arch settings |
19 | config X86 |
20 | def_bool y |
21 | select HAVE_AOUT if X86_32 |
22 | select HAVE_READQ |
23 | select HAVE_WRITEQ |
24 | select HAVE_UNSTABLE_SCHED_CLOCK |
25 | select HAVE_IDE |
26 | select HAVE_OPROFILE |
27 | select HAVE_PERF_EVENTS if (!M386 && !M486) |
28 | select HAVE_IOREMAP_PROT |
29 | select HAVE_KPROBES |
30 | select ARCH_WANT_OPTIONAL_GPIOLIB |
31 | select ARCH_WANT_FRAME_POINTERS |
32 | select HAVE_DMA_ATTRS |
33 | select HAVE_KRETPROBES |
34 | select HAVE_OPTPROBES |
35 | select HAVE_FTRACE_MCOUNT_RECORD |
36 | select HAVE_DYNAMIC_FTRACE |
37 | select HAVE_FUNCTION_TRACER |
38 | select HAVE_FUNCTION_GRAPH_TRACER |
39 | select HAVE_FUNCTION_GRAPH_FP_TEST |
40 | select HAVE_FUNCTION_TRACE_MCOUNT_TEST |
41 | select HAVE_FTRACE_NMI_ENTER if DYNAMIC_FTRACE |
42 | select HAVE_SYSCALL_TRACEPOINTS |
43 | select HAVE_KVM |
44 | select HAVE_ARCH_KGDB |
45 | select HAVE_ARCH_TRACEHOOK |
46 | select HAVE_GENERIC_DMA_COHERENT if X86_32 |
47 | select HAVE_EFFICIENT_UNALIGNED_ACCESS |
48 | select USER_STACKTRACE_SUPPORT |
49 | select HAVE_REGS_AND_STACK_ACCESS_API |
50 | select HAVE_DMA_API_DEBUG |
51 | select HAVE_KERNEL_GZIP |
52 | select HAVE_KERNEL_BZIP2 |
53 | select HAVE_KERNEL_LZMA |
54 | select HAVE_KERNEL_LZO |
55 | select HAVE_HW_BREAKPOINT |
56 | select HAVE_MIXED_BREAKPOINTS_REGS |
57 | select PERF_EVENTS |
58 | select HAVE_PERF_EVENTS_NMI |
59 | select ANON_INODES |
60 | select HAVE_ARCH_KMEMCHECK |
61 | select HAVE_USER_RETURN_NOTIFIER |
62 | |
63 | config INSTRUCTION_DECODER |
64 | def_bool (KPROBES || PERF_EVENTS) |
65 | |
66 | config OUTPUT_FORMAT |
67 | string |
68 | default "elf32-i386" if X86_32 |
69 | default "elf64-x86-64" if X86_64 |
70 | |
71 | config ARCH_DEFCONFIG |
72 | string |
73 | default "arch/x86/configs/i386_defconfig" if X86_32 |
74 | default "arch/x86/configs/x86_64_defconfig" if X86_64 |
75 | |
76 | config GENERIC_CMOS_UPDATE |
77 | def_bool y |
78 | |
79 | config CLOCKSOURCE_WATCHDOG |
80 | def_bool y |
81 | |
82 | config GENERIC_CLOCKEVENTS |
83 | def_bool y |
84 | |
85 | config GENERIC_CLOCKEVENTS_BROADCAST |
86 | def_bool y |
87 | depends on X86_64 || (X86_32 && X86_LOCAL_APIC) |
88 | |
89 | config LOCKDEP_SUPPORT |
90 | def_bool y |
91 | |
92 | config STACKTRACE_SUPPORT |
93 | def_bool y |
94 | |
95 | config HAVE_LATENCYTOP_SUPPORT |
96 | def_bool y |
97 | |
98 | config MMU |
99 | def_bool y |
100 | |
101 | config ZONE_DMA |
102 | def_bool y |
103 | |
104 | config SBUS |
105 | bool |
106 | |
107 | config NEED_DMA_MAP_STATE |
108 | def_bool (X86_64 || DMAR || DMA_API_DEBUG) |
109 | |
110 | config NEED_SG_DMA_LENGTH |
111 | def_bool y |
112 | |
113 | config GENERIC_ISA_DMA |
114 | def_bool y |
115 | |
116 | config GENERIC_IOMAP |
117 | def_bool y |
118 | |
119 | config GENERIC_BUG |
120 | def_bool y |
121 | depends on BUG |
122 | select GENERIC_BUG_RELATIVE_POINTERS if X86_64 |
123 | |
124 | config GENERIC_BUG_RELATIVE_POINTERS |
125 | bool |
126 | |
127 | config GENERIC_HWEIGHT |
128 | def_bool y |
129 | |
130 | config GENERIC_GPIO |
131 | bool |
132 | |
133 | config ARCH_MAY_HAVE_PC_FDC |
134 | def_bool y |
135 | |
136 | config RWSEM_GENERIC_SPINLOCK |
137 | def_bool !X86_XADD |
138 | |
139 | config RWSEM_XCHGADD_ALGORITHM |
140 | def_bool X86_XADD |
141 | |
142 | config ARCH_HAS_CPU_IDLE_WAIT |
143 | def_bool y |
144 | |
145 | config GENERIC_CALIBRATE_DELAY |
146 | def_bool y |
147 | |
148 | config GENERIC_TIME_VSYSCALL |
149 | bool |
150 | default X86_64 |
151 | |
152 | config ARCH_HAS_CPU_RELAX |
153 | def_bool y |
154 | |
155 | config ARCH_HAS_DEFAULT_IDLE |
156 | def_bool y |
157 | |
158 | config ARCH_HAS_CACHE_LINE_SIZE |
159 | def_bool y |
160 | |
161 | config HAVE_SETUP_PER_CPU_AREA |
162 | def_bool y |
163 | |
164 | config NEED_PER_CPU_EMBED_FIRST_CHUNK |
165 | def_bool y |
166 | |
167 | config NEED_PER_CPU_PAGE_FIRST_CHUNK |
168 | def_bool y |
169 | |
170 | config HAVE_CPUMASK_OF_CPU_MAP |
171 | def_bool X86_64_SMP |
172 | |
173 | config ARCH_HIBERNATION_POSSIBLE |
174 | def_bool y |
175 | |
176 | config ARCH_SUSPEND_POSSIBLE |
177 | def_bool y |
178 | |
179 | config ZONE_DMA32 |
180 | bool |
181 | default X86_64 |
182 | |
183 | config ARCH_POPULATES_NODE_MAP |
184 | def_bool y |
185 | |
186 | config AUDIT_ARCH |
187 | bool |
188 | default X86_64 |
189 | |
190 | config ARCH_SUPPORTS_OPTIMIZED_INLINING |
191 | def_bool y |
192 | |
193 | config ARCH_SUPPORTS_DEBUG_PAGEALLOC |
194 | def_bool y |
195 | |
196 | config HAVE_EARLY_RES |
197 | def_bool y |
198 | |
199 | config HAVE_INTEL_TXT |
200 | def_bool y |
201 | depends on EXPERIMENTAL && DMAR && ACPI |
202 | |
203 | # Use the generic interrupt handling code in kernel/irq/: |
204 | config GENERIC_HARDIRQS |
205 | def_bool y |
206 | |
207 | config GENERIC_HARDIRQS_NO__DO_IRQ |
208 | def_bool y |
209 | |
210 | config GENERIC_IRQ_PROBE |
211 | def_bool y |
212 | |
213 | config GENERIC_PENDING_IRQ |
214 | def_bool y |
215 | depends on GENERIC_HARDIRQS && SMP |
216 | |
217 | config USE_GENERIC_SMP_HELPERS |
218 | def_bool y |
219 | depends on SMP |
220 | |
221 | config X86_32_SMP |
222 | def_bool y |
223 | depends on X86_32 && SMP |
224 | |
225 | config X86_64_SMP |
226 | def_bool y |
227 | depends on X86_64 && SMP |
228 | |
229 | config X86_HT |
230 | def_bool y |
231 | depends on SMP |
232 | |
233 | config X86_TRAMPOLINE |
234 | def_bool y |
235 | depends on SMP || (64BIT && ACPI_SLEEP) |
236 | |
237 | config X86_32_LAZY_GS |
238 | def_bool y |
239 | depends on X86_32 && !CC_STACKPROTECTOR |
240 | |
241 | config ARCH_HWEIGHT_CFLAGS |
242 | string |
243 | default "-fcall-saved-ecx -fcall-saved-edx" if X86_32 |
244 | default "-fcall-saved-rdi -fcall-saved-rsi -fcall-saved-rdx -fcall-saved-rcx -fcall-saved-r8 -fcall-saved-r9 -fcall-saved-r10 -fcall-saved-r11" if X86_64 |
245 | |
246 | config KTIME_SCALAR |
247 | def_bool X86_32 |
248 | |
249 | config ARCH_CPU_PROBE_RELEASE |
250 | def_bool y |
251 | depends on HOTPLUG_CPU |
252 | |
253 | source "init/Kconfig" |
254 | source "kernel/Kconfig.freezer" |
255 | |
256 | menu "Processor type and features" |
257 | |
258 | source "kernel/time/Kconfig" |
259 | |
260 | config SMP |
261 | bool "Symmetric multi-processing support" |
262 | ---help--- |
263 | This enables support for systems with more than one CPU. If you have |
264 | a system with only one CPU, like most personal computers, say N. If |
265 | you have a system with more than one CPU, say Y. |
266 | |
267 | If you say N here, the kernel will run on single and multiprocessor |
268 | machines, but will use only one CPU of a multiprocessor machine. If |
269 | you say Y here, the kernel will run on many, but not all, |
270 | singleprocessor machines. On a singleprocessor machine, the kernel |
271 | will run faster if you say N here. |
272 | |
273 | Note that if you say Y here and choose architecture "586" or |
274 | "Pentium" under "Processor family", the kernel will not work on 486 |
275 | architectures. Similarly, multiprocessor kernels for the "PPro" |
276 | architecture may not work on all Pentium based boards. |
277 | |
278 | People using multiprocessor machines who say Y here should also say |
279 | Y to "Enhanced Real Time Clock Support", below. The "Advanced Power |
280 | Management" code will be disabled if you say Y here. |
281 | |
282 | See also <file:Documentation/i386/IO-APIC.txt>, |
283 | <file:Documentation/nmi_watchdog.txt> and the SMP-HOWTO available at |
284 | <http://www.tldp.org/docs.html#howto>. |
285 | |
286 | If you don't know what to do here, say N. |
287 | |
288 | config X86_X2APIC |
289 | bool "Support x2apic" |
290 | depends on X86_LOCAL_APIC && X86_64 && INTR_REMAP |
291 | ---help--- |
292 | This enables x2apic support on CPUs that have this feature. |
293 | |
294 | This allows 32-bit apic IDs (so it can support very large systems), |
295 | and accesses the local apic via MSRs not via mmio. |
296 | |
297 | If you don't know what to do here, say N. |
298 | |
299 | config SPARSE_IRQ |
300 | bool "Support sparse irq numbering" |
301 | depends on PCI_MSI || HT_IRQ |
302 | ---help--- |
303 | This enables support for sparse irqs. This is useful for distro |
304 | kernels that want to define a high CONFIG_NR_CPUS value but still |
305 | want to have low kernel memory footprint on smaller machines. |
306 | |
307 | ( Sparse IRQs can also be beneficial on NUMA boxes, as they spread |
308 | out the irq_desc[] array in a more NUMA-friendly way. ) |
309 | |
310 | If you don't know what to do here, say N. |
311 | |
312 | config NUMA_IRQ_DESC |
313 | def_bool y |
314 | depends on SPARSE_IRQ && NUMA |
315 | |
316 | config X86_MPPARSE |
317 | bool "Enable MPS table" if ACPI |
318 | default y |
319 | depends on X86_LOCAL_APIC |
320 | ---help--- |
321 | For old smp systems that do not have proper acpi support. Newer systems |
322 | (esp with 64bit cpus) with acpi support, MADT and DSDT will override it |
323 | |
324 | config X86_BIGSMP |
325 | bool "Support for big SMP systems with more than 8 CPUs" |
326 | depends on X86_32 && SMP |
327 | ---help--- |
328 | This option is needed for the systems that have more than 8 CPUs |
329 | |
330 | if X86_32 |
331 | config X86_EXTENDED_PLATFORM |
332 | bool "Support for extended (non-PC) x86 platforms" |
333 | default y |
334 | ---help--- |
335 | If you disable this option then the kernel will only support |
336 | standard PC platforms. (which covers the vast majority of |
337 | systems out there.) |
338 | |
339 | If you enable this option then you'll be able to select support |
340 | for the following (non-PC) 32 bit x86 platforms: |
341 | AMD Elan |
342 | NUMAQ (IBM/Sequent) |
343 | RDC R-321x SoC |
344 | SGI 320/540 (Visual Workstation) |
345 | Summit/EXA (IBM x440) |
346 | Unisys ES7000 IA32 series |
347 | Moorestown MID devices |
348 | |
349 | If you have one of these systems, or if you want to build a |
350 | generic distribution kernel, say Y here - otherwise say N. |
351 | endif |
352 | |
353 | if X86_64 |
354 | config X86_EXTENDED_PLATFORM |
355 | bool "Support for extended (non-PC) x86 platforms" |
356 | default y |
357 | ---help--- |
358 | If you disable this option then the kernel will only support |
359 | standard PC platforms. (which covers the vast majority of |
360 | systems out there.) |
361 | |
362 | If you enable this option then you'll be able to select support |
363 | for the following (non-PC) 64 bit x86 platforms: |
364 | ScaleMP vSMP |
365 | SGI Ultraviolet |
366 | |
367 | If you have one of these systems, or if you want to build a |
368 | generic distribution kernel, say Y here - otherwise say N. |
369 | endif |
370 | # This is an alphabetically sorted list of 64 bit extended platforms |
371 | # Please maintain the alphabetic order if and when there are additions |
372 | |
373 | config X86_VSMP |
374 | bool "ScaleMP vSMP" |
375 | select PARAVIRT |
376 | depends on X86_64 && PCI |
377 | depends on X86_EXTENDED_PLATFORM |
378 | ---help--- |
379 | Support for ScaleMP vSMP systems. Say 'Y' here if this kernel is |
380 | supposed to run on these EM64T-based machines. Only choose this option |
381 | if you have one of these machines. |
382 | |
383 | config X86_UV |
384 | bool "SGI Ultraviolet" |
385 | depends on X86_64 |
386 | depends on X86_EXTENDED_PLATFORM |
387 | depends on NUMA |
388 | depends on X86_X2APIC |
389 | ---help--- |
390 | This option is needed in order to support SGI Ultraviolet systems. |
391 | If you don't have one of these, you should say N here. |
392 | |
393 | # Following is an alphabetically sorted list of 32 bit extended platforms |
394 | # Please maintain the alphabetic order if and when there are additions |
395 | |
396 | config X86_ELAN |
397 | bool "AMD Elan" |
398 | depends on X86_32 |
399 | depends on X86_EXTENDED_PLATFORM |
400 | ---help--- |
401 | Select this for an AMD Elan processor. |
402 | |
403 | Do not use this option for K6/Athlon/Opteron processors! |
404 | |
405 | If unsure, choose "PC-compatible" instead. |
406 | |
407 | config X86_MRST |
408 | bool "Moorestown MID platform" |
409 | depends on PCI |
410 | depends on PCI_GOANY |
411 | depends on X86_32 |
412 | depends on X86_EXTENDED_PLATFORM |
413 | depends on X86_IO_APIC |
414 | select APB_TIMER |
415 | ---help--- |
416 | Moorestown is Intel's Low Power Intel Architecture (LPIA) based Moblin |
417 | Internet Device(MID) platform. Moorestown consists of two chips: |
418 | Lincroft (CPU core, graphics, and memory controller) and Langwell IOH. |
419 | Unlike standard x86 PCs, Moorestown does not have many legacy devices |
420 | nor standard legacy replacement devices/features. e.g. Moorestown does |
421 | not contain i8259, i8254, HPET, legacy BIOS, most of the io ports. |
422 | |
423 | config X86_RDC321X |
424 | bool "RDC R-321x SoC" |
425 | depends on X86_32 |
426 | depends on X86_EXTENDED_PLATFORM |
427 | select M486 |
428 | select X86_REBOOTFIXUPS |
429 | ---help--- |
430 | This option is needed for RDC R-321x system-on-chip, also known |
431 | as R-8610-(G). |
432 | If you don't have one of these chips, you should say N here. |
433 | |
434 | config X86_32_NON_STANDARD |
435 | bool "Support non-standard 32-bit SMP architectures" |
436 | depends on X86_32 && SMP |
437 | depends on X86_EXTENDED_PLATFORM |
438 | ---help--- |
439 | This option compiles in the NUMAQ, Summit, bigsmp, ES7000, default |
440 | subarchitectures. It is intended for a generic binary kernel. |
441 | if you select them all, kernel will probe it one by one. and will |
442 | fallback to default. |
443 | |
444 | # Alphabetically sorted list of Non standard 32 bit platforms |
445 | |
446 | config X86_NUMAQ |
447 | bool "NUMAQ (IBM/Sequent)" |
448 | depends on X86_32_NON_STANDARD |
449 | depends on PCI |
450 | select NUMA |
451 | select X86_MPPARSE |
452 | ---help--- |
453 | This option is used for getting Linux to run on a NUMAQ (IBM/Sequent) |
454 | NUMA multiquad box. This changes the way that processors are |
455 | bootstrapped, and uses Clustered Logical APIC addressing mode instead |
456 | of Flat Logical. You will need a new lynxer.elf file to flash your |
457 | firmware with - send email to <Martin.Bligh@us.ibm.com>. |
458 | |
459 | config X86_SUPPORTS_MEMORY_FAILURE |
460 | def_bool y |
461 | # MCE code calls memory_failure(): |
462 | depends on X86_MCE |
463 | # On 32-bit this adds too big of NODES_SHIFT and we run out of page flags: |
464 | depends on !X86_NUMAQ |
465 | # On 32-bit SPARSEMEM adds too big of SECTIONS_WIDTH: |
466 | depends on X86_64 || !SPARSEMEM |
467 | select ARCH_SUPPORTS_MEMORY_FAILURE |
468 | |
469 | config X86_VISWS |
470 | bool "SGI 320/540 (Visual Workstation)" |
471 | depends on X86_32 && PCI && X86_MPPARSE && PCI_GODIRECT |
472 | depends on X86_32_NON_STANDARD |
473 | ---help--- |
474 | The SGI Visual Workstation series is an IA32-based workstation |
475 | based on SGI systems chips with some legacy PC hardware attached. |
476 | |
477 | Say Y here to create a kernel to run on the SGI 320 or 540. |
478 | |
479 | A kernel compiled for the Visual Workstation will run on general |
480 | PCs as well. See <file:Documentation/sgi-visws.txt> for details. |
481 | |
482 | config X86_SUMMIT |
483 | bool "Summit/EXA (IBM x440)" |
484 | depends on X86_32_NON_STANDARD |
485 | ---help--- |
486 | This option is needed for IBM systems that use the Summit/EXA chipset. |
487 | In particular, it is needed for the x440. |
488 | |
489 | config X86_ES7000 |
490 | bool "Unisys ES7000 IA32 series" |
491 | depends on X86_32_NON_STANDARD && X86_BIGSMP |
492 | ---help--- |
493 | Support for Unisys ES7000 systems. Say 'Y' here if this kernel is |
494 | supposed to run on an IA32-based Unisys ES7000 system. |
495 | |
496 | config SCHED_OMIT_FRAME_POINTER |
497 | def_bool y |
498 | prompt "Single-depth WCHAN output" |
499 | depends on X86 |
500 | ---help--- |
501 | Calculate simpler /proc/<PID>/wchan values. If this option |
502 | is disabled then wchan values will recurse back to the |
503 | caller function. This provides more accurate wchan values, |
504 | at the expense of slightly more scheduling overhead. |
505 | |
506 | If in doubt, say "Y". |
507 | |
508 | menuconfig PARAVIRT_GUEST |
509 | bool "Paravirtualized guest support" |
510 | ---help--- |
511 | Say Y here to get to see options related to running Linux under |
512 | various hypervisors. This option alone does not add any kernel code. |
513 | |
514 | If you say N, all options in this submenu will be skipped and disabled. |
515 | |
516 | if PARAVIRT_GUEST |
517 | |
518 | source "arch/x86/xen/Kconfig" |
519 | |
520 | config VMI |
521 | bool "VMI Guest support (DEPRECATED)" |
522 | select PARAVIRT |
523 | depends on X86_32 |
524 | ---help--- |
525 | VMI provides a paravirtualized interface to the VMware ESX server |
526 | (it could be used by other hypervisors in theory too, but is not |
527 | at the moment), by linking the kernel to a GPL-ed ROM module |
528 | provided by the hypervisor. |
529 | |
530 | As of September 2009, VMware has started a phased retirement |
531 | of this feature from VMware's products. Please see |
532 | feature-removal-schedule.txt for details. If you are |
533 | planning to enable this option, please note that you cannot |
534 | live migrate a VMI enabled VM to a future VMware product, |
535 | which doesn't support VMI. So if you expect your kernel to |
536 | seamlessly migrate to newer VMware products, keep this |
537 | disabled. |
538 | |
539 | config KVM_CLOCK |
540 | bool "KVM paravirtualized clock" |
541 | select PARAVIRT |
542 | select PARAVIRT_CLOCK |
543 | ---help--- |
544 | Turning on this option will allow you to run a paravirtualized clock |
545 | when running over the KVM hypervisor. Instead of relying on a PIT |
546 | (or probably other) emulation by the underlying device model, the host |
547 | provides the guest with timing infrastructure such as time of day, and |
548 | system time |
549 | |
550 | config KVM_GUEST |
551 | bool "KVM Guest support" |
552 | select PARAVIRT |
553 | ---help--- |
554 | This option enables various optimizations for running under the KVM |
555 | hypervisor. |
556 | |
557 | source "arch/x86/lguest/Kconfig" |
558 | |
559 | config PARAVIRT |
560 | bool "Enable paravirtualization code" |
561 | ---help--- |
562 | This changes the kernel so it can modify itself when it is run |
563 | under a hypervisor, potentially improving performance significantly |
564 | over full virtualization. However, when run without a hypervisor |
565 | the kernel is theoretically slower and slightly larger. |
566 | |
567 | config PARAVIRT_SPINLOCKS |
568 | bool "Paravirtualization layer for spinlocks" |
569 | depends on PARAVIRT && SMP && EXPERIMENTAL |
570 | ---help--- |
571 | Paravirtualized spinlocks allow a pvops backend to replace the |
572 | spinlock implementation with something virtualization-friendly |
573 | (for example, block the virtual CPU rather than spinning). |
574 | |
575 | Unfortunately the downside is an up to 5% performance hit on |
576 | native kernels, with various workloads. |
577 | |
578 | If you are unsure how to answer this question, answer N. |
579 | |
580 | config PARAVIRT_CLOCK |
581 | bool |
582 | |
583 | endif |
584 | |
585 | config PARAVIRT_DEBUG |
586 | bool "paravirt-ops debugging" |
587 | depends on PARAVIRT && DEBUG_KERNEL |
588 | ---help--- |
589 | Enable to debug paravirt_ops internals. Specifically, BUG if |
590 | a paravirt_op is missing when it is called. |
591 | |
592 | config NO_BOOTMEM |
593 | default y |
594 | bool "Disable Bootmem code" |
595 | ---help--- |
596 | Use early_res directly instead of bootmem before slab is ready. |
597 | - allocator (buddy) [generic] |
598 | - early allocator (bootmem) [generic] |
599 | - very early allocator (reserve_early*()) [x86] |
600 | - very very early allocator (early brk model) [x86] |
601 | So reduce one layer between early allocator to final allocator |
602 | |
603 | |
604 | config MEMTEST |
605 | bool "Memtest" |
606 | ---help--- |
607 | This option adds a kernel parameter 'memtest', which allows memtest |
608 | to be set. |
609 | memtest=0, mean disabled; -- default |
610 | memtest=1, mean do 1 test pattern; |
611 | ... |
612 | memtest=4, mean do 4 test patterns. |
613 | If you are unsure how to answer this question, answer N. |
614 | |
615 | config X86_SUMMIT_NUMA |
616 | def_bool y |
617 | depends on X86_32 && NUMA && X86_32_NON_STANDARD |
618 | |
619 | config X86_CYCLONE_TIMER |
620 | def_bool y |
621 | depends on X86_32_NON_STANDARD |
622 | |
623 | source "arch/x86/Kconfig.cpu" |
624 | |
625 | config HPET_TIMER |
626 | def_bool X86_64 |
627 | prompt "HPET Timer Support" if X86_32 |
628 | ---help--- |
629 | Use the IA-PC HPET (High Precision Event Timer) to manage |
630 | time in preference to the PIT and RTC, if a HPET is |
631 | present. |
632 | HPET is the next generation timer replacing legacy 8254s. |
633 | The HPET provides a stable time base on SMP |
634 | systems, unlike the TSC, but it is more expensive to access, |
635 | as it is off-chip. You can find the HPET spec at |
636 | <http://www.intel.com/hardwaredesign/hpetspec_1.pdf>. |
637 | |
638 | You can safely choose Y here. However, HPET will only be |
639 | activated if the platform and the BIOS support this feature. |
640 | Otherwise the 8254 will be used for timing services. |
641 | |
642 | Choose N to continue using the legacy 8254 timer. |
643 | |
644 | config HPET_EMULATE_RTC |
645 | def_bool y |
646 | depends on HPET_TIMER && (RTC=y || RTC=m || RTC_DRV_CMOS=m || RTC_DRV_CMOS=y) |
647 | |
648 | config APB_TIMER |
649 | def_bool y if MRST |
650 | prompt "Langwell APB Timer Support" if X86_MRST |
651 | help |
652 | APB timer is the replacement for 8254, HPET on X86 MID platforms. |
653 | The APBT provides a stable time base on SMP |
654 | systems, unlike the TSC, but it is more expensive to access, |
655 | as it is off-chip. APB timers are always running regardless of CPU |
656 | C states, they are used as per CPU clockevent device when possible. |
657 | |
658 | # Mark as embedded because too many people got it wrong. |
659 | # The code disables itself when not needed. |
660 | config DMI |
661 | default y |
662 | bool "Enable DMI scanning" if EMBEDDED |
663 | ---help--- |
664 | Enabled scanning of DMI to identify machine quirks. Say Y |
665 | here unless you have verified that your setup is not |
666 | affected by entries in the DMI blacklist. Required by PNP |
667 | BIOS code. |
668 | |
669 | config GART_IOMMU |
670 | bool "GART IOMMU support" if EMBEDDED |
671 | default y |
672 | select SWIOTLB |
673 | depends on X86_64 && PCI && K8_NB |
674 | ---help--- |
675 | Support for full DMA access of devices with 32bit memory access only |
676 | on systems with more than 3GB. This is usually needed for USB, |
677 | sound, many IDE/SATA chipsets and some other devices. |
678 | Provides a driver for the AMD Athlon64/Opteron/Turion/Sempron GART |
679 | based hardware IOMMU and a software bounce buffer based IOMMU used |
680 | on Intel systems and as fallback. |
681 | The code is only active when needed (enough memory and limited |
682 | device) unless CONFIG_IOMMU_DEBUG or iommu=force is specified |
683 | too. |
684 | |
685 | config CALGARY_IOMMU |
686 | bool "IBM Calgary IOMMU support" |
687 | select SWIOTLB |
688 | depends on X86_64 && PCI && EXPERIMENTAL |
689 | ---help--- |
690 | Support for hardware IOMMUs in IBM's xSeries x366 and x460 |
691 | systems. Needed to run systems with more than 3GB of memory |
692 | properly with 32-bit PCI devices that do not support DAC |
693 | (Double Address Cycle). Calgary also supports bus level |
694 | isolation, where all DMAs pass through the IOMMU. This |
695 | prevents them from going anywhere except their intended |
696 | destination. This catches hard-to-find kernel bugs and |
697 | mis-behaving drivers and devices that do not use the DMA-API |
698 | properly to set up their DMA buffers. The IOMMU can be |
699 | turned off at boot time with the iommu=off parameter. |
700 | Normally the kernel will make the right choice by itself. |
701 | If unsure, say Y. |
702 | |
703 | config CALGARY_IOMMU_ENABLED_BY_DEFAULT |
704 | def_bool y |
705 | prompt "Should Calgary be enabled by default?" |
706 | depends on CALGARY_IOMMU |
707 | ---help--- |
708 | Should Calgary be enabled by default? if you choose 'y', Calgary |
709 | will be used (if it exists). If you choose 'n', Calgary will not be |
710 | used even if it exists. If you choose 'n' and would like to use |
711 | Calgary anyway, pass 'iommu=calgary' on the kernel command line. |
712 | If unsure, say Y. |
713 | |
714 | config AMD_IOMMU |
715 | bool "AMD IOMMU support" |
716 | select SWIOTLB |
717 | select PCI_MSI |
718 | depends on X86_64 && PCI && ACPI |
719 | ---help--- |
720 | With this option you can enable support for AMD IOMMU hardware in |
721 | your system. An IOMMU is a hardware component which provides |
722 | remapping of DMA memory accesses from devices. With an AMD IOMMU you |
723 | can isolate the the DMA memory of different devices and protect the |
724 | system from misbehaving device drivers or hardware. |
725 | |
726 | You can find out if your system has an AMD IOMMU if you look into |
727 | your BIOS for an option to enable it or if you have an IVRS ACPI |
728 | table. |
729 | |
730 | config AMD_IOMMU_STATS |
731 | bool "Export AMD IOMMU statistics to debugfs" |
732 | depends on AMD_IOMMU |
733 | select DEBUG_FS |
734 | ---help--- |
735 | This option enables code in the AMD IOMMU driver to collect various |
736 | statistics about whats happening in the driver and exports that |
737 | information to userspace via debugfs. |
738 | If unsure, say N. |
739 | |
740 | # need this always selected by IOMMU for the VIA workaround |
741 | config SWIOTLB |
742 | def_bool y if X86_64 |
743 | ---help--- |
744 | Support for software bounce buffers used on x86-64 systems |
745 | which don't have a hardware IOMMU (e.g. the current generation |
746 | of Intel's x86-64 CPUs). Using this PCI devices which can only |
747 | access 32-bits of memory can be used on systems with more than |
748 | 3 GB of memory. If unsure, say Y. |
749 | |
750 | config IOMMU_HELPER |
751 | def_bool (CALGARY_IOMMU || GART_IOMMU || SWIOTLB || AMD_IOMMU) |
752 | |
753 | config IOMMU_API |
754 | def_bool (AMD_IOMMU || DMAR) |
755 | |
756 | config MAXSMP |
757 | bool "Enable Maximum number of SMP Processors and NUMA Nodes" |
758 | depends on X86_64 && SMP && DEBUG_KERNEL && EXPERIMENTAL |
759 | select CPUMASK_OFFSTACK |
760 | ---help--- |
761 | Enable maximum number of CPUS and NUMA Nodes for this architecture. |
762 | If unsure, say N. |
763 | |
764 | config NR_CPUS |
765 | int "Maximum number of CPUs" if SMP && !MAXSMP |
766 | range 2 8 if SMP && X86_32 && !X86_BIGSMP |
767 | range 2 512 if SMP && !MAXSMP |
768 | default "1" if !SMP |
769 | default "4096" if MAXSMP |
770 | default "32" if SMP && (X86_NUMAQ || X86_SUMMIT || X86_BIGSMP || X86_ES7000) |
771 | default "8" if SMP |
772 | ---help--- |
773 | This allows you to specify the maximum number of CPUs which this |
774 | kernel will support. The maximum supported value is 512 and the |
775 | minimum value which makes sense is 2. |
776 | |
777 | This is purely to save memory - each supported CPU adds |
778 | approximately eight kilobytes to the kernel image. |
779 | |
780 | config SCHED_SMT |
781 | bool "SMT (Hyperthreading) scheduler support" |
782 | depends on X86_HT |
783 | ---help--- |
784 | SMT scheduler support improves the CPU scheduler's decision making |
785 | when dealing with Intel Pentium 4 chips with HyperThreading at a |
786 | cost of slightly increased overhead in some places. If unsure say |
787 | N here. |
788 | |
789 | config SCHED_MC |
790 | def_bool y |
791 | prompt "Multi-core scheduler support" |
792 | depends on X86_HT |
793 | ---help--- |
794 | Multi-core scheduler support improves the CPU scheduler's decision |
795 | making when dealing with multi-core CPU chips at a cost of slightly |
796 | increased overhead in some places. If unsure say N here. |
797 | |
798 | source "kernel/Kconfig.preempt" |
799 | |
800 | config X86_UP_APIC |
801 | bool "Local APIC support on uniprocessors" |
802 | depends on X86_32 && !SMP && !X86_32_NON_STANDARD |
803 | ---help--- |
804 | A local APIC (Advanced Programmable Interrupt Controller) is an |
805 | integrated interrupt controller in the CPU. If you have a single-CPU |
806 | system which has a processor with a local APIC, you can say Y here to |
807 | enable and use it. If you say Y here even though your machine doesn't |
808 | have a local APIC, then the kernel will still run with no slowdown at |
809 | all. The local APIC supports CPU-generated self-interrupts (timer, |
810 | performance counters), and the NMI watchdog which detects hard |
811 | lockups. |
812 | |
813 | config X86_UP_IOAPIC |
814 | bool "IO-APIC support on uniprocessors" |
815 | depends on X86_UP_APIC |
816 | ---help--- |
817 | An IO-APIC (I/O Advanced Programmable Interrupt Controller) is an |
818 | SMP-capable replacement for PC-style interrupt controllers. Most |
819 | SMP systems and many recent uniprocessor systems have one. |
820 | |
821 | If you have a single-CPU system with an IO-APIC, you can say Y here |
822 | to use it. If you say Y here even though your machine doesn't have |
823 | an IO-APIC, then the kernel will still run with no slowdown at all. |
824 | |
825 | config X86_LOCAL_APIC |
826 | def_bool y |
827 | depends on X86_64 || SMP || X86_32_NON_STANDARD || X86_UP_APIC |
828 | |
829 | config X86_IO_APIC |
830 | def_bool y |
831 | depends on X86_64 || SMP || X86_32_NON_STANDARD || X86_UP_APIC |
832 | |
833 | config X86_VISWS_APIC |
834 | def_bool y |
835 | depends on X86_32 && X86_VISWS |
836 | |
837 | config X86_REROUTE_FOR_BROKEN_BOOT_IRQS |
838 | bool "Reroute for broken boot IRQs" |
839 | depends on X86_IO_APIC |
840 | ---help--- |
841 | This option enables a workaround that fixes a source of |
842 | spurious interrupts. This is recommended when threaded |
843 | interrupt handling is used on systems where the generation of |
844 | superfluous "boot interrupts" cannot be disabled. |
845 | |
846 | Some chipsets generate a legacy INTx "boot IRQ" when the IRQ |
847 | entry in the chipset's IO-APIC is masked (as, e.g. the RT |
848 | kernel does during interrupt handling). On chipsets where this |
849 | boot IRQ generation cannot be disabled, this workaround keeps |
850 | the original IRQ line masked so that only the equivalent "boot |
851 | IRQ" is delivered to the CPUs. The workaround also tells the |
852 | kernel to set up the IRQ handler on the boot IRQ line. In this |
853 | way only one interrupt is delivered to the kernel. Otherwise |
854 | the spurious second interrupt may cause the kernel to bring |
855 | down (vital) interrupt lines. |
856 | |
857 | Only affects "broken" chipsets. Interrupt sharing may be |
858 | increased on these systems. |
859 | |
860 | config X86_MCE |
861 | bool "Machine Check / overheating reporting" |
862 | ---help--- |
863 | Machine Check support allows the processor to notify the |
864 | kernel if it detects a problem (e.g. overheating, data corruption). |
865 | The action the kernel takes depends on the severity of the problem, |
866 | ranging from warning messages to halting the machine. |
867 | |
868 | config X86_MCE_INTEL |
869 | def_bool y |
870 | prompt "Intel MCE features" |
871 | depends on X86_MCE && X86_LOCAL_APIC |
872 | ---help--- |
873 | Additional support for intel specific MCE features such as |
874 | the thermal monitor. |
875 | |
876 | config X86_MCE_AMD |
877 | def_bool y |
878 | prompt "AMD MCE features" |
879 | depends on X86_MCE && X86_LOCAL_APIC |
880 | ---help--- |
881 | Additional support for AMD specific MCE features such as |
882 | the DRAM Error Threshold. |
883 | |
884 | config X86_ANCIENT_MCE |
885 | bool "Support for old Pentium 5 / WinChip machine checks" |
886 | depends on X86_32 && X86_MCE |
887 | ---help--- |
888 | Include support for machine check handling on old Pentium 5 or WinChip |
889 | systems. These typically need to be enabled explicitely on the command |
890 | line. |
891 | |
892 | config X86_MCE_THRESHOLD |
893 | depends on X86_MCE_AMD || X86_MCE_INTEL |
894 | def_bool y |
895 | |
896 | config X86_MCE_INJECT |
897 | depends on X86_MCE |
898 | tristate "Machine check injector support" |
899 | ---help--- |
900 | Provide support for injecting machine checks for testing purposes. |
901 | If you don't know what a machine check is and you don't do kernel |
902 | QA it is safe to say n. |
903 | |
904 | config X86_THERMAL_VECTOR |
905 | def_bool y |
906 | depends on X86_MCE_INTEL |
907 | |
908 | config VM86 |
909 | bool "Enable VM86 support" if EMBEDDED |
910 | default y |
911 | depends on X86_32 |
912 | ---help--- |
913 | This option is required by programs like DOSEMU to run 16-bit legacy |
914 | code on X86 processors. It also may be needed by software like |
915 | XFree86 to initialize some video cards via BIOS. Disabling this |
916 | option saves about 6k. |
917 | |
918 | config TOSHIBA |
919 | tristate "Toshiba Laptop support" |
920 | depends on X86_32 |
921 | ---help--- |
922 | This adds a driver to safely access the System Management Mode of |
923 | the CPU on Toshiba portables with a genuine Toshiba BIOS. It does |
924 | not work on models with a Phoenix BIOS. The System Management Mode |
925 | is used to set the BIOS and power saving options on Toshiba portables. |
926 | |
927 | For information on utilities to make use of this driver see the |
928 | Toshiba Linux utilities web site at: |
929 | <http://www.buzzard.org.uk/toshiba/>. |
930 | |
931 | Say Y if you intend to run this kernel on a Toshiba portable. |
932 | Say N otherwise. |
933 | |
934 | config I8K |
935 | tristate "Dell laptop support" |
936 | ---help--- |
937 | This adds a driver to safely access the System Management Mode |
938 | of the CPU on the Dell Inspiron 8000. The System Management Mode |
939 | is used to read cpu temperature and cooling fan status and to |
940 | control the fans on the I8K portables. |
941 | |
942 | This driver has been tested only on the Inspiron 8000 but it may |
943 | also work with other Dell laptops. You can force loading on other |
944 | models by passing the parameter `force=1' to the module. Use at |
945 | your own risk. |
946 | |
947 | For information on utilities to make use of this driver see the |
948 | I8K Linux utilities web site at: |
949 | <http://people.debian.org/~dz/i8k/> |
950 | |
951 | Say Y if you intend to run this kernel on a Dell Inspiron 8000. |
952 | Say N otherwise. |
953 | |
954 | config X86_REBOOTFIXUPS |
955 | bool "Enable X86 board specific fixups for reboot" |
956 | depends on X86_32 |
957 | ---help--- |
958 | This enables chipset and/or board specific fixups to be done |
959 | in order to get reboot to work correctly. This is only needed on |
960 | some combinations of hardware and BIOS. The symptom, for which |
961 | this config is intended, is when reboot ends with a stalled/hung |
962 | system. |
963 | |
964 | Currently, the only fixup is for the Geode machines using |
965 | CS5530A and CS5536 chipsets and the RDC R-321x SoC. |
966 | |
967 | Say Y if you want to enable the fixup. Currently, it's safe to |
968 | enable this option even if you don't need it. |
969 | Say N otherwise. |
970 | |
971 | config MICROCODE |
972 | tristate "/dev/cpu/microcode - microcode support" |
973 | select FW_LOADER |
974 | ---help--- |
975 | If you say Y here, you will be able to update the microcode on |
976 | certain Intel and AMD processors. The Intel support is for the |
977 | IA32 family, e.g. Pentium Pro, Pentium II, Pentium III, |
978 | Pentium 4, Xeon etc. The AMD support is for family 0x10 and |
979 | 0x11 processors, e.g. Opteron, Phenom and Turion 64 Ultra. |
980 | You will obviously need the actual microcode binary data itself |
981 | which is not shipped with the Linux kernel. |
982 | |
983 | This option selects the general module only, you need to select |
984 | at least one vendor specific module as well. |
985 | |
986 | To compile this driver as a module, choose M here: the |
987 | module will be called microcode. |
988 | |
989 | config MICROCODE_INTEL |
990 | bool "Intel microcode patch loading support" |
991 | depends on MICROCODE |
992 | default MICROCODE |
993 | select FW_LOADER |
994 | ---help--- |
995 | This options enables microcode patch loading support for Intel |
996 | processors. |
997 | |
998 | For latest news and information on obtaining all the required |
999 | Intel ingredients for this driver, check: |
1000 | <http://www.urbanmyth.org/microcode/>. |
1001 | |
1002 | config MICROCODE_AMD |
1003 | bool "AMD microcode patch loading support" |
1004 | depends on MICROCODE |
1005 | select FW_LOADER |
1006 | ---help--- |
1007 | If you select this option, microcode patch loading support for AMD |
1008 | processors will be enabled. |
1009 | |
1010 | config MICROCODE_OLD_INTERFACE |
1011 | def_bool y |
1012 | depends on MICROCODE |
1013 | |
1014 | config X86_MSR |
1015 | tristate "/dev/cpu/*/msr - Model-specific register support" |
1016 | ---help--- |
1017 | This device gives privileged processes access to the x86 |
1018 | Model-Specific Registers (MSRs). It is a character device with |
1019 | major 202 and minors 0 to 31 for /dev/cpu/0/msr to /dev/cpu/31/msr. |
1020 | MSR accesses are directed to a specific CPU on multi-processor |
1021 | systems. |
1022 | |
1023 | config X86_CPUID |
1024 | tristate "/dev/cpu/*/cpuid - CPU information support" |
1025 | ---help--- |
1026 | This device gives processes access to the x86 CPUID instruction to |
1027 | be executed on a specific processor. It is a character device |
1028 | with major 203 and minors 0 to 31 for /dev/cpu/0/cpuid to |
1029 | /dev/cpu/31/cpuid. |
1030 | |
1031 | choice |
1032 | prompt "High Memory Support" |
1033 | default HIGHMEM64G if X86_NUMAQ |
1034 | default HIGHMEM4G |
1035 | depends on X86_32 |
1036 | |
1037 | config NOHIGHMEM |
1038 | bool "off" |
1039 | depends on !X86_NUMAQ |
1040 | ---help--- |
1041 | Linux can use up to 64 Gigabytes of physical memory on x86 systems. |
1042 | However, the address space of 32-bit x86 processors is only 4 |
1043 | Gigabytes large. That means that, if you have a large amount of |
1044 | physical memory, not all of it can be "permanently mapped" by the |
1045 | kernel. The physical memory that's not permanently mapped is called |
1046 | "high memory". |
1047 | |
1048 | If you are compiling a kernel which will never run on a machine with |
1049 | more than 1 Gigabyte total physical RAM, answer "off" here (default |
1050 | choice and suitable for most users). This will result in a "3GB/1GB" |
1051 | split: 3GB are mapped so that each process sees a 3GB virtual memory |
1052 | space and the remaining part of the 4GB virtual memory space is used |
1053 | by the kernel to permanently map as much physical memory as |
1054 | possible. |
1055 | |
1056 | If the machine has between 1 and 4 Gigabytes physical RAM, then |
1057 | answer "4GB" here. |
1058 | |
1059 | If more than 4 Gigabytes is used then answer "64GB" here. This |
1060 | selection turns Intel PAE (Physical Address Extension) mode on. |
1061 | PAE implements 3-level paging on IA32 processors. PAE is fully |
1062 | supported by Linux, PAE mode is implemented on all recent Intel |
1063 | processors (Pentium Pro and better). NOTE: If you say "64GB" here, |
1064 | then the kernel will not boot on CPUs that don't support PAE! |
1065 | |
1066 | The actual amount of total physical memory will either be |
1067 | auto detected or can be forced by using a kernel command line option |
1068 | such as "mem=256M". (Try "man bootparam" or see the documentation of |
1069 | your boot loader (lilo or loadlin) about how to pass options to the |
1070 | kernel at boot time.) |
1071 | |
1072 | If unsure, say "off". |
1073 | |
1074 | config HIGHMEM4G |
1075 | bool "4GB" |
1076 | depends on !X86_NUMAQ |
1077 | ---help--- |
1078 | Select this if you have a 32-bit processor and between 1 and 4 |
1079 | gigabytes of physical RAM. |
1080 | |
1081 | config HIGHMEM64G |
1082 | bool "64GB" |
1083 | depends on !M386 && !M486 |
1084 | select X86_PAE |
1085 | ---help--- |
1086 | Select this if you have a 32-bit processor and more than 4 |
1087 | gigabytes of physical RAM. |
1088 | |
1089 | endchoice |
1090 | |
1091 | choice |
1092 | depends on EXPERIMENTAL |
1093 | prompt "Memory split" if EMBEDDED |
1094 | default VMSPLIT_3G |
1095 | depends on X86_32 |
1096 | ---help--- |
1097 | Select the desired split between kernel and user memory. |
1098 | |
1099 | If the address range available to the kernel is less than the |
1100 | physical memory installed, the remaining memory will be available |
1101 | as "high memory". Accessing high memory is a little more costly |
1102 | than low memory, as it needs to be mapped into the kernel first. |
1103 | Note that increasing the kernel address space limits the range |
1104 | available to user programs, making the address space there |
1105 | tighter. Selecting anything other than the default 3G/1G split |
1106 | will also likely make your kernel incompatible with binary-only |
1107 | kernel modules. |
1108 | |
1109 | If you are not absolutely sure what you are doing, leave this |
1110 | option alone! |
1111 | |
1112 | config VMSPLIT_3G |
1113 | bool "3G/1G user/kernel split" |
1114 | config VMSPLIT_3G_OPT |
1115 | depends on !X86_PAE |
1116 | bool "3G/1G user/kernel split (for full 1G low memory)" |
1117 | config VMSPLIT_2G |
1118 | bool "2G/2G user/kernel split" |
1119 | config VMSPLIT_2G_OPT |
1120 | depends on !X86_PAE |
1121 | bool "2G/2G user/kernel split (for full 2G low memory)" |
1122 | config VMSPLIT_1G |
1123 | bool "1G/3G user/kernel split" |
1124 | endchoice |
1125 | |
1126 | config PAGE_OFFSET |
1127 | hex |
1128 | default 0xB0000000 if VMSPLIT_3G_OPT |
1129 | default 0x80000000 if VMSPLIT_2G |
1130 | default 0x78000000 if VMSPLIT_2G_OPT |
1131 | default 0x40000000 if VMSPLIT_1G |
1132 | default 0xC0000000 |
1133 | depends on X86_32 |
1134 | |
1135 | config HIGHMEM |
1136 | def_bool y |
1137 | depends on X86_32 && (HIGHMEM64G || HIGHMEM4G) |
1138 | |
1139 | config X86_PAE |
1140 | bool "PAE (Physical Address Extension) Support" |
1141 | depends on X86_32 && !HIGHMEM4G |
1142 | ---help--- |
1143 | PAE is required for NX support, and furthermore enables |
1144 | larger swapspace support for non-overcommit purposes. It |
1145 | has the cost of more pagetable lookup overhead, and also |
1146 | consumes more pagetable space per process. |
1147 | |
1148 | config ARCH_PHYS_ADDR_T_64BIT |
1149 | def_bool X86_64 || X86_PAE |
1150 | |
1151 | config DIRECT_GBPAGES |
1152 | bool "Enable 1GB pages for kernel pagetables" if EMBEDDED |
1153 | default y |
1154 | depends on X86_64 |
1155 | ---help--- |
1156 | Allow the kernel linear mapping to use 1GB pages on CPUs that |
1157 | support it. This can improve the kernel's performance a tiny bit by |
1158 | reducing TLB pressure. If in doubt, say "Y". |
1159 | |
1160 | # Common NUMA Features |
1161 | config NUMA |
1162 | bool "Numa Memory Allocation and Scheduler Support" |
1163 | depends on SMP |
1164 | depends on X86_64 || (X86_32 && HIGHMEM64G && (X86_NUMAQ || X86_BIGSMP || X86_SUMMIT && ACPI) && EXPERIMENTAL) |
1165 | default y if (X86_NUMAQ || X86_SUMMIT || X86_BIGSMP) |
1166 | ---help--- |
1167 | Enable NUMA (Non Uniform Memory Access) support. |
1168 | |
1169 | The kernel will try to allocate memory used by a CPU on the |
1170 | local memory controller of the CPU and add some more |
1171 | NUMA awareness to the kernel. |
1172 | |
1173 | For 64-bit this is recommended if the system is Intel Core i7 |
1174 | (or later), AMD Opteron, or EM64T NUMA. |
1175 | |
1176 | For 32-bit this is only needed on (rare) 32-bit-only platforms |
1177 | that support NUMA topologies, such as NUMAQ / Summit, or if you |
1178 | boot a 32-bit kernel on a 64-bit NUMA platform. |
1179 | |
1180 | Otherwise, you should say N. |
1181 | |
1182 | comment "NUMA (Summit) requires SMP, 64GB highmem support, ACPI" |
1183 | depends on X86_32 && X86_SUMMIT && (!HIGHMEM64G || !ACPI) |
1184 | |
1185 | config K8_NUMA |
1186 | def_bool y |
1187 | prompt "Old style AMD Opteron NUMA detection" |
1188 | depends on X86_64 && NUMA && PCI |
1189 | ---help--- |
1190 | Enable K8 NUMA node topology detection. You should say Y here if |
1191 | you have a multi processor AMD K8 system. This uses an old |
1192 | method to read the NUMA configuration directly from the builtin |
1193 | Northbridge of Opteron. It is recommended to use X86_64_ACPI_NUMA |
1194 | instead, which also takes priority if both are compiled in. |
1195 | |
1196 | config X86_64_ACPI_NUMA |
1197 | def_bool y |
1198 | prompt "ACPI NUMA detection" |
1199 | depends on X86_64 && NUMA && ACPI && PCI |
1200 | select ACPI_NUMA |
1201 | ---help--- |
1202 | Enable ACPI SRAT based node topology detection. |
1203 | |
1204 | # Some NUMA nodes have memory ranges that span |
1205 | # other nodes. Even though a pfn is valid and |
1206 | # between a node's start and end pfns, it may not |
1207 | # reside on that node. See memmap_init_zone() |
1208 | # for details. |
1209 | config NODES_SPAN_OTHER_NODES |
1210 | def_bool y |
1211 | depends on X86_64_ACPI_NUMA |
1212 | |
1213 | config NUMA_EMU |
1214 | bool "NUMA emulation" |
1215 | depends on X86_64 && NUMA |
1216 | ---help--- |
1217 | Enable NUMA emulation. A flat machine will be split |
1218 | into virtual nodes when booted with "numa=fake=N", where N is the |
1219 | number of nodes. This is only useful for debugging. |
1220 | |
1221 | config NODES_SHIFT |
1222 | int "Maximum NUMA Nodes (as a power of 2)" if !MAXSMP |
1223 | range 1 10 |
1224 | default "10" if MAXSMP |
1225 | default "6" if X86_64 |
1226 | default "4" if X86_NUMAQ |
1227 | default "3" |
1228 | depends on NEED_MULTIPLE_NODES |
1229 | ---help--- |
1230 | Specify the maximum number of NUMA Nodes available on the target |
1231 | system. Increases memory reserved to accommodate various tables. |
1232 | |
1233 | config HAVE_ARCH_BOOTMEM |
1234 | def_bool y |
1235 | depends on X86_32 && NUMA |
1236 | |
1237 | config ARCH_HAVE_MEMORY_PRESENT |
1238 | def_bool y |
1239 | depends on X86_32 && DISCONTIGMEM |
1240 | |
1241 | config NEED_NODE_MEMMAP_SIZE |
1242 | def_bool y |
1243 | depends on X86_32 && (DISCONTIGMEM || SPARSEMEM) |
1244 | |
1245 | config HAVE_ARCH_ALLOC_REMAP |
1246 | def_bool y |
1247 | depends on X86_32 && NUMA |
1248 | |
1249 | config ARCH_FLATMEM_ENABLE |
1250 | def_bool y |
1251 | depends on X86_32 && ARCH_SELECT_MEMORY_MODEL && !NUMA |
1252 | |
1253 | config ARCH_DISCONTIGMEM_ENABLE |
1254 | def_bool y |
1255 | depends on NUMA && X86_32 |
1256 | |
1257 | config ARCH_DISCONTIGMEM_DEFAULT |
1258 | def_bool y |
1259 | depends on NUMA && X86_32 |
1260 | |
1261 | config ARCH_PROC_KCORE_TEXT |
1262 | def_bool y |
1263 | depends on X86_64 && PROC_KCORE |
1264 | |
1265 | config ARCH_SPARSEMEM_DEFAULT |
1266 | def_bool y |
1267 | depends on X86_64 |
1268 | |
1269 | config ARCH_SPARSEMEM_ENABLE |
1270 | def_bool y |
1271 | depends on X86_64 || NUMA || (EXPERIMENTAL && X86_32) || X86_32_NON_STANDARD |
1272 | select SPARSEMEM_STATIC if X86_32 |
1273 | select SPARSEMEM_VMEMMAP_ENABLE if X86_64 |
1274 | |
1275 | config ARCH_SELECT_MEMORY_MODEL |
1276 | def_bool y |
1277 | depends on ARCH_SPARSEMEM_ENABLE |
1278 | |
1279 | config ARCH_MEMORY_PROBE |
1280 | def_bool X86_64 |
1281 | depends on MEMORY_HOTPLUG |
1282 | |
1283 | config ILLEGAL_POINTER_VALUE |
1284 | hex |
1285 | default 0 if X86_32 |
1286 | default 0xdead000000000000 if X86_64 |
1287 | |
1288 | source "mm/Kconfig" |
1289 | |
1290 | config HIGHPTE |
1291 | bool "Allocate 3rd-level pagetables from highmem" |
1292 | depends on HIGHMEM |
1293 | ---help--- |
1294 | The VM uses one page table entry for each page of physical memory. |
1295 | For systems with a lot of RAM, this can be wasteful of precious |
1296 | low memory. Setting this option will put user-space page table |
1297 | entries in high memory. |
1298 | |
1299 | config X86_CHECK_BIOS_CORRUPTION |
1300 | bool "Check for low memory corruption" |
1301 | ---help--- |
1302 | Periodically check for memory corruption in low memory, which |
1303 | is suspected to be caused by BIOS. Even when enabled in the |
1304 | configuration, it is disabled at runtime. Enable it by |
1305 | setting "memory_corruption_check=1" on the kernel command |
1306 | line. By default it scans the low 64k of memory every 60 |
1307 | seconds; see the memory_corruption_check_size and |
1308 | memory_corruption_check_period parameters in |
1309 | Documentation/kernel-parameters.txt to adjust this. |
1310 | |
1311 | When enabled with the default parameters, this option has |
1312 | almost no overhead, as it reserves a relatively small amount |
1313 | of memory and scans it infrequently. It both detects corruption |
1314 | and prevents it from affecting the running system. |
1315 | |
1316 | It is, however, intended as a diagnostic tool; if repeatable |
1317 | BIOS-originated corruption always affects the same memory, |
1318 | you can use memmap= to prevent the kernel from using that |
1319 | memory. |
1320 | |
1321 | config X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK |
1322 | bool "Set the default setting of memory_corruption_check" |
1323 | depends on X86_CHECK_BIOS_CORRUPTION |
1324 | default y |
1325 | ---help--- |
1326 | Set whether the default state of memory_corruption_check is |
1327 | on or off. |
1328 | |
1329 | config X86_RESERVE_LOW_64K |
1330 | bool "Reserve low 64K of RAM on AMI/Phoenix BIOSen" |
1331 | default y |
1332 | ---help--- |
1333 | Reserve the first 64K of physical RAM on BIOSes that are known |
1334 | to potentially corrupt that memory range. A numbers of BIOSes are |
1335 | known to utilize this area during suspend/resume, so it must not |
1336 | be used by the kernel. |
1337 | |
1338 | Set this to N if you are absolutely sure that you trust the BIOS |
1339 | to get all its memory reservations and usages right. |
1340 | |
1341 | If you have doubts about the BIOS (e.g. suspend/resume does not |
1342 | work or there's kernel crashes after certain hardware hotplug |
1343 | events) and it's not AMI or Phoenix, then you might want to enable |
1344 | X86_CHECK_BIOS_CORRUPTION=y to allow the kernel to check typical |
1345 | corruption patterns. |
1346 | |
1347 | Say Y if unsure. |
1348 | |
1349 | config MATH_EMULATION |
1350 | bool |
1351 | prompt "Math emulation" if X86_32 |
1352 | ---help--- |
1353 | Linux can emulate a math coprocessor (used for floating point |
1354 | operations) if you don't have one. 486DX and Pentium processors have |
1355 | a math coprocessor built in, 486SX and 386 do not, unless you added |
1356 | a 487DX or 387, respectively. (The messages during boot time can |
1357 | give you some hints here ["man dmesg"].) Everyone needs either a |
1358 | coprocessor or this emulation. |
1359 | |
1360 | If you don't have a math coprocessor, you need to say Y here; if you |
1361 | say Y here even though you have a coprocessor, the coprocessor will |
1362 | be used nevertheless. (This behavior can be changed with the kernel |
1363 | command line option "no387", which comes handy if your coprocessor |
1364 | is broken. Try "man bootparam" or see the documentation of your boot |
1365 | loader (lilo or loadlin) about how to pass options to the kernel at |
1366 | boot time.) This means that it is a good idea to say Y here if you |
1367 | intend to use this kernel on different machines. |
1368 | |
1369 | More information about the internals of the Linux math coprocessor |
1370 | emulation can be found in <file:arch/x86/math-emu/README>. |
1371 | |
1372 | If you are not sure, say Y; apart from resulting in a 66 KB bigger |
1373 | kernel, it won't hurt. |
1374 | |
1375 | config MTRR |
1376 | def_bool y |
1377 | prompt "MTRR (Memory Type Range Register) support" if EMBEDDED |
1378 | ---help--- |
1379 | On Intel P6 family processors (Pentium Pro, Pentium II and later) |
1380 | the Memory Type Range Registers (MTRRs) may be used to control |
1381 | processor access to memory ranges. This is most useful if you have |
1382 | a video (VGA) card on a PCI or AGP bus. Enabling write-combining |
1383 | allows bus write transfers to be combined into a larger transfer |
1384 | before bursting over the PCI/AGP bus. This can increase performance |
1385 | of image write operations 2.5 times or more. Saying Y here creates a |
1386 | /proc/mtrr file which may be used to manipulate your processor's |
1387 | MTRRs. Typically the X server should use this. |
1388 | |
1389 | This code has a reasonably generic interface so that similar |
1390 | control registers on other processors can be easily supported |
1391 | as well: |
1392 | |
1393 | The Cyrix 6x86, 6x86MX and M II processors have Address Range |
1394 | Registers (ARRs) which provide a similar functionality to MTRRs. For |
1395 | these, the ARRs are used to emulate the MTRRs. |
1396 | The AMD K6-2 (stepping 8 and above) and K6-3 processors have two |
1397 | MTRRs. The Centaur C6 (WinChip) has 8 MCRs, allowing |
1398 | write-combining. All of these processors are supported by this code |
1399 | and it makes sense to say Y here if you have one of them. |
1400 | |
1401 | Saying Y here also fixes a problem with buggy SMP BIOSes which only |
1402 | set the MTRRs for the boot CPU and not for the secondary CPUs. This |
1403 | can lead to all sorts of problems, so it's good to say Y here. |
1404 | |
1405 | You can safely say Y even if your machine doesn't have MTRRs, you'll |
1406 | just add about 9 KB to your kernel. |
1407 | |
1408 | See <file:Documentation/x86/mtrr.txt> for more information. |
1409 | |
1410 | config MTRR_SANITIZER |
1411 | def_bool y |
1412 | prompt "MTRR cleanup support" |
1413 | depends on MTRR |
1414 | ---help--- |
1415 | Convert MTRR layout from continuous to discrete, so X drivers can |
1416 | add writeback entries. |
1417 | |
1418 | Can be disabled with disable_mtrr_cleanup on the kernel command line. |
1419 | The largest mtrr entry size for a continuous block can be set with |
1420 | mtrr_chunk_size. |
1421 | |
1422 | If unsure, say Y. |
1423 | |
1424 | config MTRR_SANITIZER_ENABLE_DEFAULT |
1425 | int "MTRR cleanup enable value (0-1)" |
1426 | range 0 1 |
1427 | default "0" |
1428 | depends on MTRR_SANITIZER |
1429 | ---help--- |
1430 | Enable mtrr cleanup default value |
1431 | |
1432 | config MTRR_SANITIZER_SPARE_REG_NR_DEFAULT |
1433 | int "MTRR cleanup spare reg num (0-7)" |
1434 | range 0 7 |
1435 | default "1" |
1436 | depends on MTRR_SANITIZER |
1437 | ---help--- |
1438 | mtrr cleanup spare entries default, it can be changed via |
1439 | mtrr_spare_reg_nr=N on the kernel command line. |
1440 | |
1441 | config X86_PAT |
1442 | def_bool y |
1443 | prompt "x86 PAT support" if EMBEDDED |
1444 | depends on MTRR |
1445 | ---help--- |
1446 | Use PAT attributes to setup page level cache control. |
1447 | |
1448 | PATs are the modern equivalents of MTRRs and are much more |
1449 | flexible than MTRRs. |
1450 | |
1451 | Say N here if you see bootup problems (boot crash, boot hang, |
1452 | spontaneous reboots) or a non-working video driver. |
1453 | |
1454 | If unsure, say Y. |
1455 | |
1456 | config ARCH_USES_PG_UNCACHED |
1457 | def_bool y |
1458 | depends on X86_PAT |
1459 | |
1460 | config EFI |
1461 | bool "EFI runtime service support" |
1462 | depends on ACPI |
1463 | ---help--- |
1464 | This enables the kernel to use EFI runtime services that are |
1465 | available (such as the EFI variable services). |
1466 | |
1467 | This option is only useful on systems that have EFI firmware. |
1468 | In addition, you should use the latest ELILO loader available |
1469 | at <http://elilo.sourceforge.net> in order to take advantage |
1470 | of EFI runtime services. However, even with this option, the |
1471 | resultant kernel should continue to boot on existing non-EFI |
1472 | platforms. |
1473 | |
1474 | config SECCOMP |
1475 | def_bool y |
1476 | prompt "Enable seccomp to safely compute untrusted bytecode" |
1477 | ---help--- |
1478 | This kernel feature is useful for number crunching applications |
1479 | that may need to compute untrusted bytecode during their |
1480 | execution. By using pipes or other transports made available to |
1481 | the process as file descriptors supporting the read/write |
1482 | syscalls, it's possible to isolate those applications in |
1483 | their own address space using seccomp. Once seccomp is |
1484 | enabled via prctl(PR_SET_SECCOMP), it cannot be disabled |
1485 | and the task is only allowed to execute a few safe syscalls |
1486 | defined by each seccomp mode. |
1487 | |
1488 | If unsure, say Y. Only embedded should say N here. |
1489 | |
1490 | config CC_STACKPROTECTOR |
1491 | bool "Enable -fstack-protector buffer overflow detection (EXPERIMENTAL)" |
1492 | ---help--- |
1493 | This option turns on the -fstack-protector GCC feature. This |
1494 | feature puts, at the beginning of functions, a canary value on |
1495 | the stack just before the return address, and validates |
1496 | the value just before actually returning. Stack based buffer |
1497 | overflows (that need to overwrite this return address) now also |
1498 | overwrite the canary, which gets detected and the attack is then |
1499 | neutralized via a kernel panic. |
1500 | |
1501 | This feature requires gcc version 4.2 or above, or a distribution |
1502 | gcc with the feature backported. Older versions are automatically |
1503 | detected and for those versions, this configuration option is |
1504 | ignored. (and a warning is printed during bootup) |
1505 | |
1506 | source kernel/Kconfig.hz |
1507 | |
1508 | config KEXEC |
1509 | bool "kexec system call" |
1510 | ---help--- |
1511 | kexec is a system call that implements the ability to shutdown your |
1512 | current kernel, and to start another kernel. It is like a reboot |
1513 | but it is independent of the system firmware. And like a reboot |
1514 | you can start any kernel with it, not just Linux. |
1515 | |
1516 | The name comes from the similarity to the exec system call. |
1517 | |
1518 | It is an ongoing process to be certain the hardware in a machine |
1519 | is properly shutdown, so do not be surprised if this code does not |
1520 | initially work for you. It may help to enable device hotplugging |
1521 | support. As of this writing the exact hardware interface is |
1522 | strongly in flux, so no good recommendation can be made. |
1523 | |
1524 | config CRASH_DUMP |
1525 | bool "kernel crash dumps" |
1526 | depends on X86_64 || (X86_32 && HIGHMEM) |
1527 | ---help--- |
1528 | Generate crash dump after being started by kexec. |
1529 | This should be normally only set in special crash dump kernels |
1530 | which are loaded in the main kernel with kexec-tools into |
1531 | a specially reserved region and then later executed after |
1532 | a crash by kdump/kexec. The crash dump kernel must be compiled |
1533 | to a memory address not used by the main kernel or BIOS using |
1534 | PHYSICAL_START, or it must be built as a relocatable image |
1535 | (CONFIG_RELOCATABLE=y). |
1536 | For more details see Documentation/kdump/kdump.txt |
1537 | |
1538 | config KEXEC_JUMP |
1539 | bool "kexec jump (EXPERIMENTAL)" |
1540 | depends on EXPERIMENTAL |
1541 | depends on KEXEC && HIBERNATION |
1542 | ---help--- |
1543 | Jump between original kernel and kexeced kernel and invoke |
1544 | code in physical address mode via KEXEC |
1545 | |
1546 | config PHYSICAL_START |
1547 | hex "Physical address where the kernel is loaded" if (EMBEDDED || CRASH_DUMP) |
1548 | default "0x1000000" |
1549 | ---help--- |
1550 | This gives the physical address where the kernel is loaded. |
1551 | |
1552 | If kernel is a not relocatable (CONFIG_RELOCATABLE=n) then |
1553 | bzImage will decompress itself to above physical address and |
1554 | run from there. Otherwise, bzImage will run from the address where |
1555 | it has been loaded by the boot loader and will ignore above physical |
1556 | address. |
1557 | |
1558 | In normal kdump cases one does not have to set/change this option |
1559 | as now bzImage can be compiled as a completely relocatable image |
1560 | (CONFIG_RELOCATABLE=y) and be used to load and run from a different |
1561 | address. This option is mainly useful for the folks who don't want |
1562 | to use a bzImage for capturing the crash dump and want to use a |
1563 | vmlinux instead. vmlinux is not relocatable hence a kernel needs |
1564 | to be specifically compiled to run from a specific memory area |
1565 | (normally a reserved region) and this option comes handy. |
1566 | |
1567 | So if you are using bzImage for capturing the crash dump, |
1568 | leave the value here unchanged to 0x1000000 and set |
1569 | CONFIG_RELOCATABLE=y. Otherwise if you plan to use vmlinux |
1570 | for capturing the crash dump change this value to start of |
1571 | the reserved region. In other words, it can be set based on |
1572 | the "X" value as specified in the "crashkernel=YM@XM" |
1573 | command line boot parameter passed to the panic-ed |
1574 | kernel. Please take a look at Documentation/kdump/kdump.txt |
1575 | for more details about crash dumps. |
1576 | |
1577 | Usage of bzImage for capturing the crash dump is recommended as |
1578 | one does not have to build two kernels. Same kernel can be used |
1579 | as production kernel and capture kernel. Above option should have |
1580 | gone away after relocatable bzImage support is introduced. But it |
1581 | is present because there are users out there who continue to use |
1582 | vmlinux for dump capture. This option should go away down the |
1583 | line. |
1584 | |
1585 | Don't change this unless you know what you are doing. |
1586 | |
1587 | config RELOCATABLE |
1588 | bool "Build a relocatable kernel" |
1589 | default y |
1590 | ---help--- |
1591 | This builds a kernel image that retains relocation information |
1592 | so it can be loaded someplace besides the default 1MB. |
1593 | The relocations tend to make the kernel binary about 10% larger, |
1594 | but are discarded at runtime. |
1595 | |
1596 | One use is for the kexec on panic case where the recovery kernel |
1597 | must live at a different physical address than the primary |
1598 | kernel. |
1599 | |
1600 | Note: If CONFIG_RELOCATABLE=y, then the kernel runs from the address |
1601 | it has been loaded at and the compile time physical address |
1602 | (CONFIG_PHYSICAL_START) is ignored. |
1603 | |
1604 | # Relocation on x86-32 needs some additional build support |
1605 | config X86_NEED_RELOCS |
1606 | def_bool y |
1607 | depends on X86_32 && RELOCATABLE |
1608 | |
1609 | config PHYSICAL_ALIGN |
1610 | hex "Alignment value to which kernel should be aligned" if X86_32 |
1611 | default "0x1000000" |
1612 | range 0x2000 0x1000000 |
1613 | ---help--- |
1614 | This value puts the alignment restrictions on physical address |
1615 | where kernel is loaded and run from. Kernel is compiled for an |
1616 | address which meets above alignment restriction. |
1617 | |
1618 | If bootloader loads the kernel at a non-aligned address and |
1619 | CONFIG_RELOCATABLE is set, kernel will move itself to nearest |
1620 | address aligned to above value and run from there. |
1621 | |
1622 | If bootloader loads the kernel at a non-aligned address and |
1623 | CONFIG_RELOCATABLE is not set, kernel will ignore the run time |
1624 | load address and decompress itself to the address it has been |
1625 | compiled for and run from there. The address for which kernel is |
1626 | compiled already meets above alignment restrictions. Hence the |
1627 | end result is that kernel runs from a physical address meeting |
1628 | above alignment restrictions. |
1629 | |
1630 | Don't change this unless you know what you are doing. |
1631 | |
1632 | config HOTPLUG_CPU |
1633 | bool "Support for hot-pluggable CPUs" |
1634 | depends on SMP && HOTPLUG |
1635 | ---help--- |
1636 | Say Y here to allow turning CPUs off and on. CPUs can be |
1637 | controlled through /sys/devices/system/cpu. |
1638 | ( Note: power management support will enable this option |
1639 | automatically on SMP systems. ) |
1640 | Say N if you want to disable CPU hotplug. |
1641 | |
1642 | config COMPAT_VDSO |
1643 | def_bool y |
1644 | prompt "Compat VDSO support" |
1645 | depends on X86_32 || IA32_EMULATION |
1646 | ---help--- |
1647 | Map the 32-bit VDSO to the predictable old-style address too. |
1648 | |
1649 | Say N here if you are running a sufficiently recent glibc |
1650 | version (2.3.3 or later), to remove the high-mapped |
1651 | VDSO mapping and to exclusively use the randomized VDSO. |
1652 | |
1653 | If unsure, say Y. |
1654 | |
1655 | config CMDLINE_BOOL |
1656 | bool "Built-in kernel command line" |
1657 | ---help--- |
1658 | Allow for specifying boot arguments to the kernel at |
1659 | build time. On some systems (e.g. embedded ones), it is |
1660 | necessary or convenient to provide some or all of the |
1661 | kernel boot arguments with the kernel itself (that is, |
1662 | to not rely on the boot loader to provide them.) |
1663 | |
1664 | To compile command line arguments into the kernel, |
1665 | set this option to 'Y', then fill in the |
1666 | the boot arguments in CONFIG_CMDLINE. |
1667 | |
1668 | Systems with fully functional boot loaders (i.e. non-embedded) |
1669 | should leave this option set to 'N'. |
1670 | |
1671 | config CMDLINE |
1672 | string "Built-in kernel command string" |
1673 | depends on CMDLINE_BOOL |
1674 | default "" |
1675 | ---help--- |
1676 | Enter arguments here that should be compiled into the kernel |
1677 | image and used at boot time. If the boot loader provides a |
1678 | command line at boot time, it is appended to this string to |
1679 | form the full kernel command line, when the system boots. |
1680 | |
1681 | However, you can use the CONFIG_CMDLINE_OVERRIDE option to |
1682 | change this behavior. |
1683 | |
1684 | In most cases, the command line (whether built-in or provided |
1685 | by the boot loader) should specify the device for the root |
1686 | file system. |
1687 | |
1688 | config CMDLINE_OVERRIDE |
1689 | bool "Built-in command line overrides boot loader arguments" |
1690 | depends on CMDLINE_BOOL |
1691 | ---help--- |
1692 | Set this option to 'Y' to have the kernel ignore the boot loader |
1693 | command line, and use ONLY the built-in command line. |
1694 | |
1695 | This is used to work around broken boot loaders. This should |
1696 | be set to 'N' under normal conditions. |
1697 | |
1698 | endmenu |
1699 | |
1700 | config ARCH_ENABLE_MEMORY_HOTPLUG |
1701 | def_bool y |
1702 | depends on X86_64 || (X86_32 && HIGHMEM) |
1703 | |
1704 | config ARCH_ENABLE_MEMORY_HOTREMOVE |
1705 | def_bool y |
1706 | depends on MEMORY_HOTPLUG |
1707 | |
1708 | config HAVE_ARCH_EARLY_PFN_TO_NID |
1709 | def_bool X86_64 |
1710 | depends on NUMA |
1711 | |
1712 | config USE_PERCPU_NUMA_NODE_ID |
1713 | def_bool X86_64 |
1714 | depends on NUMA |
1715 | |
1716 | menu "Power management and ACPI options" |
1717 | |
1718 | config ARCH_HIBERNATION_HEADER |
1719 | def_bool y |
1720 | depends on X86_64 && HIBERNATION |
1721 | |
1722 | source "kernel/power/Kconfig" |
1723 | |
1724 | source "drivers/acpi/Kconfig" |
1725 | |
1726 | source "drivers/sfi/Kconfig" |
1727 | |
1728 | config X86_APM_BOOT |
1729 | def_bool y |
1730 | depends on APM || APM_MODULE |
1731 | |
1732 | menuconfig APM |
1733 | tristate "APM (Advanced Power Management) BIOS support" |
1734 | depends on X86_32 && PM_SLEEP |
1735 | ---help--- |
1736 | APM is a BIOS specification for saving power using several different |
1737 | techniques. This is mostly useful for battery powered laptops with |
1738 | APM compliant BIOSes. If you say Y here, the system time will be |
1739 | reset after a RESUME operation, the /proc/apm device will provide |
1740 | battery status information, and user-space programs will receive |
1741 | notification of APM "events" (e.g. battery status change). |
1742 | |
1743 | If you select "Y" here, you can disable actual use of the APM |
1744 | BIOS by passing the "apm=off" option to the kernel at boot time. |
1745 | |
1746 | Note that the APM support is almost completely disabled for |
1747 | machines with more than one CPU. |
1748 | |
1749 | In order to use APM, you will need supporting software. For location |
1750 | and more information, read <file:Documentation/power/pm.txt> and the |
1751 | Battery Powered Linux mini-HOWTO, available from |
1752 | <http://www.tldp.org/docs.html#howto>. |
1753 | |
1754 | This driver does not spin down disk drives (see the hdparm(8) |
1755 | manpage ("man 8 hdparm") for that), and it doesn't turn off |
1756 | VESA-compliant "green" monitors. |
1757 | |
1758 | This driver does not support the TI 4000M TravelMate and the ACER |
1759 | 486/DX4/75 because they don't have compliant BIOSes. Many "green" |
1760 | desktop machines also don't have compliant BIOSes, and this driver |
1761 | may cause those machines to panic during the boot phase. |
1762 | |
1763 | Generally, if you don't have a battery in your machine, there isn't |
1764 | much point in using this driver and you should say N. If you get |
1765 | random kernel OOPSes or reboots that don't seem to be related to |
1766 | anything, try disabling/enabling this option (or disabling/enabling |
1767 | APM in your BIOS). |
1768 | |
1769 | Some other things you should try when experiencing seemingly random, |
1770 | "weird" problems: |
1771 | |
1772 | 1) make sure that you have enough swap space and that it is |
1773 | enabled. |
1774 | 2) pass the "no-hlt" option to the kernel |
1775 | 3) switch on floating point emulation in the kernel and pass |
1776 | the "no387" option to the kernel |
1777 | 4) pass the "floppy=nodma" option to the kernel |
1778 | 5) pass the "mem=4M" option to the kernel (thereby disabling |
1779 | all but the first 4 MB of RAM) |
1780 | 6) make sure that the CPU is not over clocked. |
1781 | 7) read the sig11 FAQ at <http://www.bitwizard.nl/sig11/> |
1782 | 8) disable the cache from your BIOS settings |
1783 | 9) install a fan for the video card or exchange video RAM |
1784 | 10) install a better fan for the CPU |
1785 | 11) exchange RAM chips |
1786 | 12) exchange the motherboard. |
1787 | |
1788 | To compile this driver as a module, choose M here: the |
1789 | module will be called apm. |
1790 | |
1791 | if APM |
1792 | |
1793 | config APM_IGNORE_USER_SUSPEND |
1794 | bool "Ignore USER SUSPEND" |
1795 | ---help--- |
1796 | This option will ignore USER SUSPEND requests. On machines with a |
1797 | compliant APM BIOS, you want to say N. However, on the NEC Versa M |
1798 | series notebooks, it is necessary to say Y because of a BIOS bug. |
1799 | |
1800 | config APM_DO_ENABLE |
1801 | bool "Enable PM at boot time" |
1802 | ---help--- |
1803 | Enable APM features at boot time. From page 36 of the APM BIOS |
1804 | specification: "When disabled, the APM BIOS does not automatically |
1805 | power manage devices, enter the Standby State, enter the Suspend |
1806 | State, or take power saving steps in response to CPU Idle calls." |
1807 | This driver will make CPU Idle calls when Linux is idle (unless this |
1808 | feature is turned off -- see "Do CPU IDLE calls", below). This |
1809 | should always save battery power, but more complicated APM features |
1810 | will be dependent on your BIOS implementation. You may need to turn |
1811 | this option off if your computer hangs at boot time when using APM |
1812 | support, or if it beeps continuously instead of suspending. Turn |
1813 | this off if you have a NEC UltraLite Versa 33/C or a Toshiba |
1814 | T400CDT. This is off by default since most machines do fine without |
1815 | this feature. |
1816 | |
1817 | config APM_CPU_IDLE |
1818 | bool "Make CPU Idle calls when idle" |
1819 | ---help--- |
1820 | Enable calls to APM CPU Idle/CPU Busy inside the kernel's idle loop. |
1821 | On some machines, this can activate improved power savings, such as |
1822 | a slowed CPU clock rate, when the machine is idle. These idle calls |
1823 | are made after the idle loop has run for some length of time (e.g., |
1824 | 333 mS). On some machines, this will cause a hang at boot time or |
1825 | whenever the CPU becomes idle. (On machines with more than one CPU, |
1826 | this option does nothing.) |
1827 | |
1828 | config APM_DISPLAY_BLANK |
1829 | bool "Enable console blanking using APM" |
1830 | ---help--- |
1831 | Enable console blanking using the APM. Some laptops can use this to |
1832 | turn off the LCD backlight when the screen blanker of the Linux |
1833 | virtual console blanks the screen. Note that this is only used by |
1834 | the virtual console screen blanker, and won't turn off the backlight |
1835 | when using the X Window system. This also doesn't have anything to |
1836 | do with your VESA-compliant power-saving monitor. Further, this |
1837 | option doesn't work for all laptops -- it might not turn off your |
1838 | backlight at all, or it might print a lot of errors to the console, |
1839 | especially if you are using gpm. |
1840 | |
1841 | config APM_ALLOW_INTS |
1842 | bool "Allow interrupts during APM BIOS calls" |
1843 | ---help--- |
1844 | Normally we disable external interrupts while we are making calls to |
1845 | the APM BIOS as a measure to lessen the effects of a badly behaving |
1846 | BIOS implementation. The BIOS should reenable interrupts if it |
1847 | needs to. Unfortunately, some BIOSes do not -- especially those in |
1848 | many of the newer IBM Thinkpads. If you experience hangs when you |
1849 | suspend, try setting this to Y. Otherwise, say N. |
1850 | |
1851 | endif # APM |
1852 | |
1853 | source "arch/x86/kernel/cpu/cpufreq/Kconfig" |
1854 | |
1855 | source "drivers/cpuidle/Kconfig" |
1856 | |
1857 | source "drivers/idle/Kconfig" |
1858 | |
1859 | endmenu |
1860 | |
1861 | |
1862 | menu "Bus options (PCI etc.)" |
1863 | |
1864 | config PCI |
1865 | bool "PCI support" |
1866 | default y |
1867 | select ARCH_SUPPORTS_MSI if (X86_LOCAL_APIC && X86_IO_APIC) |
1868 | ---help--- |
1869 | Find out whether you have a PCI motherboard. PCI is the name of a |
1870 | bus system, i.e. the way the CPU talks to the other stuff inside |
1871 | your box. Other bus systems are ISA, EISA, MicroChannel (MCA) or |
1872 | VESA. If you have PCI, say Y, otherwise N. |
1873 | |
1874 | choice |
1875 | prompt "PCI access mode" |
1876 | depends on X86_32 && PCI |
1877 | default PCI_GOANY |
1878 | ---help--- |
1879 | On PCI systems, the BIOS can be used to detect the PCI devices and |
1880 | determine their configuration. However, some old PCI motherboards |
1881 | have BIOS bugs and may crash if this is done. Also, some embedded |
1882 | PCI-based systems don't have any BIOS at all. Linux can also try to |
1883 | detect the PCI hardware directly without using the BIOS. |
1884 | |
1885 | With this option, you can specify how Linux should detect the |
1886 | PCI devices. If you choose "BIOS", the BIOS will be used, |
1887 | if you choose "Direct", the BIOS won't be used, and if you |
1888 | choose "MMConfig", then PCI Express MMCONFIG will be used. |
1889 | If you choose "Any", the kernel will try MMCONFIG, then the |
1890 | direct access method and falls back to the BIOS if that doesn't |
1891 | work. If unsure, go with the default, which is "Any". |
1892 | |
1893 | config PCI_GOBIOS |
1894 | bool "BIOS" |
1895 | |
1896 | config PCI_GOMMCONFIG |
1897 | bool "MMConfig" |
1898 | |
1899 | config PCI_GODIRECT |
1900 | bool "Direct" |
1901 | |
1902 | config PCI_GOOLPC |
1903 | bool "OLPC" |
1904 | depends on OLPC |
1905 | |
1906 | config PCI_GOANY |
1907 | bool "Any" |
1908 | |
1909 | endchoice |
1910 | |
1911 | config PCI_BIOS |
1912 | def_bool y |
1913 | depends on X86_32 && PCI && (PCI_GOBIOS || PCI_GOANY) |
1914 | |
1915 | # x86-64 doesn't support PCI BIOS access from long mode so always go direct. |
1916 | config PCI_DIRECT |
1917 | def_bool y |
1918 | depends on PCI && (X86_64 || (PCI_GODIRECT || PCI_GOANY || PCI_GOOLPC)) |
1919 | |
1920 | config PCI_MMCONFIG |
1921 | def_bool y |
1922 | depends on X86_32 && PCI && (ACPI || SFI) && (PCI_GOMMCONFIG || PCI_GOANY) |
1923 | |
1924 | config PCI_OLPC |
1925 | def_bool y |
1926 | depends on PCI && OLPC && (PCI_GOOLPC || PCI_GOANY) |
1927 | |
1928 | config PCI_DOMAINS |
1929 | def_bool y |
1930 | depends on PCI |
1931 | |
1932 | config PCI_MMCONFIG |
1933 | bool "Support mmconfig PCI config space access" |
1934 | depends on X86_64 && PCI && ACPI |
1935 | |
1936 | config PCI_CNB20LE_QUIRK |
1937 | bool "Read CNB20LE Host Bridge Windows" |
1938 | depends on PCI |
1939 | help |
1940 | Read the PCI windows out of the CNB20LE host bridge. This allows |
1941 | PCI hotplug to work on systems with the CNB20LE chipset which do |
1942 | not have ACPI. |
1943 | |
1944 | config DMAR |
1945 | bool "Support for DMA Remapping Devices (EXPERIMENTAL)" |
1946 | depends on PCI_MSI && ACPI && EXPERIMENTAL |
1947 | help |
1948 | DMA remapping (DMAR) devices support enables independent address |
1949 | translations for Direct Memory Access (DMA) from devices. |
1950 | These DMA remapping devices are reported via ACPI tables |
1951 | and include PCI device scope covered by these DMA |
1952 | remapping devices. |
1953 | |
1954 | config DMAR_DEFAULT_ON |
1955 | def_bool y |
1956 | prompt "Enable DMA Remapping Devices by default" |
1957 | depends on DMAR |
1958 | help |
1959 | Selecting this option will enable a DMAR device at boot time if |
1960 | one is found. If this option is not selected, DMAR support can |
1961 | be enabled by passing intel_iommu=on to the kernel. It is |
1962 | recommended you say N here while the DMAR code remains |
1963 | experimental. |
1964 | |
1965 | config DMAR_BROKEN_GFX_WA |
1966 | bool "Workaround broken graphics drivers (going away soon)" |
1967 | depends on DMAR && BROKEN |
1968 | ---help--- |
1969 | Current Graphics drivers tend to use physical address |
1970 | for DMA and avoid using DMA APIs. Setting this config |
1971 | option permits the IOMMU driver to set a unity map for |
1972 | all the OS-visible memory. Hence the driver can continue |
1973 | to use physical addresses for DMA, at least until this |
1974 | option is removed in the 2.6.32 kernel. |
1975 | |
1976 | config DMAR_FLOPPY_WA |
1977 | def_bool y |
1978 | depends on DMAR |
1979 | ---help--- |
1980 | Floppy disk drivers are known to bypass DMA API calls |
1981 | thereby failing to work when IOMMU is enabled. This |
1982 | workaround will setup a 1:1 mapping for the first |
1983 | 16MiB to make floppy (an ISA device) work. |
1984 | |
1985 | config INTR_REMAP |
1986 | bool "Support for Interrupt Remapping (EXPERIMENTAL)" |
1987 | depends on X86_64 && X86_IO_APIC && PCI_MSI && ACPI && EXPERIMENTAL |
1988 | ---help--- |
1989 | Supports Interrupt remapping for IO-APIC and MSI devices. |
1990 | To use x2apic mode in the CPU's which support x2APIC enhancements or |
1991 | to support platforms with CPU's having > 8 bit APIC ID, say Y. |
1992 | |
1993 | source "drivers/pci/pcie/Kconfig" |
1994 | |
1995 | source "drivers/pci/Kconfig" |
1996 | |
1997 | # x86_64 have no ISA slots, but do have ISA-style DMA. |
1998 | config ISA_DMA_API |
1999 | def_bool y |
2000 | |
2001 | if X86_32 |
2002 | |
2003 | config ISA |
2004 | bool "ISA support" |
2005 | ---help--- |
2006 | Find out whether you have ISA slots on your motherboard. ISA is the |
2007 | name of a bus system, i.e. the way the CPU talks to the other stuff |
2008 | inside your box. Other bus systems are PCI, EISA, MicroChannel |
2009 | (MCA) or VESA. ISA is an older system, now being displaced by PCI; |
2010 | newer boards don't support it. If you have ISA, say Y, otherwise N. |
2011 | |
2012 | config EISA |
2013 | bool "EISA support" |
2014 | depends on ISA |
2015 | ---help--- |
2016 | The Extended Industry Standard Architecture (EISA) bus was |
2017 | developed as an open alternative to the IBM MicroChannel bus. |
2018 | |
2019 | The EISA bus provided some of the features of the IBM MicroChannel |
2020 | bus while maintaining backward compatibility with cards made for |
2021 | the older ISA bus. The EISA bus saw limited use between 1988 and |
2022 | 1995 when it was made obsolete by the PCI bus. |
2023 | |
2024 | Say Y here if you are building a kernel for an EISA-based machine. |
2025 | |
2026 | Otherwise, say N. |
2027 | |
2028 | source "drivers/eisa/Kconfig" |
2029 | |
2030 | config MCA |
2031 | bool "MCA support" |
2032 | ---help--- |
2033 | MicroChannel Architecture is found in some IBM PS/2 machines and |
2034 | laptops. It is a bus system similar to PCI or ISA. See |
2035 | <file:Documentation/mca.txt> (and especially the web page given |
2036 | there) before attempting to build an MCA bus kernel. |
2037 | |
2038 | source "drivers/mca/Kconfig" |
2039 | |
2040 | config SCx200 |
2041 | tristate "NatSemi SCx200 support" |
2042 | ---help--- |
2043 | This provides basic support for National Semiconductor's |
2044 | (now AMD's) Geode processors. The driver probes for the |
2045 | PCI-IDs of several on-chip devices, so its a good dependency |
2046 | for other scx200_* drivers. |
2047 | |
2048 | If compiled as a module, the driver is named scx200. |
2049 | |
2050 | config SCx200HR_TIMER |
2051 | tristate "NatSemi SCx200 27MHz High-Resolution Timer Support" |
2052 | depends on SCx200 |
2053 | default y |
2054 | ---help--- |
2055 | This driver provides a clocksource built upon the on-chip |
2056 | 27MHz high-resolution timer. Its also a workaround for |
2057 | NSC Geode SC-1100's buggy TSC, which loses time when the |
2058 | processor goes idle (as is done by the scheduler). The |
2059 | other workaround is idle=poll boot option. |
2060 | |
2061 | config OLPC |
2062 | bool "One Laptop Per Child support" |
2063 | select GPIOLIB |
2064 | ---help--- |
2065 | Add support for detecting the unique features of the OLPC |
2066 | XO hardware. |
2067 | |
2068 | config OLPC_OPENFIRMWARE |
2069 | bool "Support for OLPC's Open Firmware" |
2070 | depends on !X86_64 && !X86_PAE |
2071 | default y if OLPC |
2072 | help |
2073 | This option adds support for the implementation of Open Firmware |
2074 | that is used on the OLPC XO-1 Children's Machine. |
2075 | If unsure, say N here. |
2076 | |
2077 | endif # X86_32 |
2078 | |
2079 | config K8_NB |
2080 | def_bool y |
2081 | depends on CPU_SUP_AMD && PCI |
2082 | |
2083 | source "drivers/pcmcia/Kconfig" |
2084 | |
2085 | source "drivers/pci/hotplug/Kconfig" |
2086 | |
2087 | endmenu |
2088 | |
2089 | |
2090 | menu "Executable file formats / Emulations" |
2091 | |
2092 | source "fs/Kconfig.binfmt" |
2093 | |
2094 | config IA32_EMULATION |
2095 | bool "IA32 Emulation" |
2096 | depends on X86_64 |
2097 | select COMPAT_BINFMT_ELF |
2098 | ---help--- |
2099 | Include code to run 32-bit programs under a 64-bit kernel. You should |
2100 | likely turn this on, unless you're 100% sure that you don't have any |
2101 | 32-bit programs left. |
2102 | |
2103 | config IA32_AOUT |
2104 | tristate "IA32 a.out support" |
2105 | depends on IA32_EMULATION |
2106 | ---help--- |
2107 | Support old a.out binaries in the 32bit emulation. |
2108 | |
2109 | config COMPAT |
2110 | def_bool y |
2111 | depends on IA32_EMULATION |
2112 | |
2113 | config COMPAT_FOR_U64_ALIGNMENT |
2114 | def_bool COMPAT |
2115 | depends on X86_64 |
2116 | |
2117 | config SYSVIPC_COMPAT |
2118 | def_bool y |
2119 | depends on COMPAT && SYSVIPC |
2120 | |
2121 | endmenu |
2122 | |
2123 | |
2124 | config HAVE_ATOMIC_IOMAP |
2125 | def_bool y |
2126 | depends on X86_32 |
2127 | |
2128 | source "net/Kconfig" |
2129 | |
2130 | source "drivers/Kconfig" |
2131 | |
2132 | source "drivers/firmware/Kconfig" |
2133 | |
2134 | source "fs/Kconfig" |
2135 | |
2136 | source "arch/x86/Kconfig.debug" |
2137 | |
2138 | source "security/Kconfig" |
2139 | |
2140 | source "crypto/Kconfig" |
2141 | |
2142 | source "arch/x86/kvm/Kconfig" |
2143 | |
2144 | source "lib/Kconfig" |
2145 |
Branches:
ben-wpan
ben-wpan-stefan
javiroman/ks7010
jz-2.6.34
jz-2.6.34-rc5
jz-2.6.34-rc6
jz-2.6.34-rc7
jz-2.6.35
jz-2.6.36
jz-2.6.37
jz-2.6.38
jz-2.6.39
jz-3.0
jz-3.1
jz-3.11
jz-3.12
jz-3.13
jz-3.15
jz-3.16
jz-3.18-dt
jz-3.2
jz-3.3
jz-3.4
jz-3.5
jz-3.6
jz-3.6-rc2-pwm
jz-3.9
jz-3.9-clk
jz-3.9-rc8
jz47xx
jz47xx-2.6.38
master
Tags:
od-2011-09-04
od-2011-09-18
v2.6.34-rc5
v2.6.34-rc6
v2.6.34-rc7
v3.9