diff options
Diffstat (limited to 'arch/x86/Kconfig')
-rw-r--r-- | arch/x86/Kconfig | 242 |
1 files changed, 158 insertions, 84 deletions
diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig index bf07b6f50fa1..bb0c0d0f6db7 100644 --- a/arch/x86/Kconfig +++ b/arch/x86/Kconfig | |||
@@ -121,7 +121,7 @@ config ARCH_HAS_CACHE_LINE_SIZE | |||
121 | def_bool y | 121 | def_bool y |
122 | 122 | ||
123 | config HAVE_SETUP_PER_CPU_AREA | 123 | config HAVE_SETUP_PER_CPU_AREA |
124 | def_bool X86_64 || (X86_SMP && !X86_VOYAGER) | 124 | def_bool X86_64_SMP || (X86_SMP && !X86_VOYAGER) |
125 | 125 | ||
126 | config HAVE_CPUMASK_OF_CPU_MAP | 126 | config HAVE_CPUMASK_OF_CPU_MAP |
127 | def_bool X86_64_SMP | 127 | def_bool X86_64_SMP |
@@ -230,6 +230,26 @@ config SMP | |||
230 | 230 | ||
231 | If you don't know what to do here, say N. | 231 | If you don't know what to do here, say N. |
232 | 232 | ||
233 | config X86_FIND_SMP_CONFIG | ||
234 | def_bool y | ||
235 | depends on X86_MPPARSE || X86_VOYAGER || X86_VISWS | ||
236 | |||
237 | if ACPI | ||
238 | config X86_MPPARSE | ||
239 | def_bool y | ||
240 | bool "Enable MPS table" | ||
241 | depends on X86_LOCAL_APIC && !X86_VISWS | ||
242 | help | ||
243 | For old smp systems that do not have proper acpi support. Newer systems | ||
244 | (esp with 64bit cpus) with acpi support, MADT and DSDT will override it | ||
245 | endif | ||
246 | |||
247 | if !ACPI | ||
248 | config X86_MPPARSE | ||
249 | def_bool y | ||
250 | depends on X86_LOCAL_APIC && !X86_VISWS | ||
251 | endif | ||
252 | |||
233 | choice | 253 | choice |
234 | prompt "Subarchitecture Type" | 254 | prompt "Subarchitecture Type" |
235 | default X86_PC | 255 | default X86_PC |
@@ -251,7 +271,7 @@ config X86_ELAN | |||
251 | 271 | ||
252 | config X86_VOYAGER | 272 | config X86_VOYAGER |
253 | bool "Voyager (NCR)" | 273 | bool "Voyager (NCR)" |
254 | depends on X86_32 && (SMP || BROKEN) | 274 | depends on X86_32 && (SMP || BROKEN) && !PCI |
255 | help | 275 | help |
256 | Voyager is an MCA-based 32-way capable SMP architecture proprietary | 276 | Voyager is an MCA-based 32-way capable SMP architecture proprietary |
257 | to NCR Corp. Machine classes 345x/35xx/4100/51xx are Voyager-based. | 277 | to NCR Corp. Machine classes 345x/35xx/4100/51xx are Voyager-based. |
@@ -261,39 +281,9 @@ config X86_VOYAGER | |||
261 | If you do not specifically know you have a Voyager based machine, | 281 | If you do not specifically know you have a Voyager based machine, |
262 | say N here, otherwise the kernel you build will not be bootable. | 282 | say N here, otherwise the kernel you build will not be bootable. |
263 | 283 | ||
264 | config X86_NUMAQ | ||
265 | bool "NUMAQ (IBM/Sequent)" | ||
266 | depends on SMP && X86_32 | ||
267 | select NUMA | ||
268 | help | ||
269 | This option is used for getting Linux to run on a (IBM/Sequent) NUMA | ||
270 | multiquad box. This changes the way that processors are bootstrapped, | ||
271 | and uses Clustered Logical APIC addressing mode instead of Flat Logical. | ||
272 | You will need a new lynxer.elf file to flash your firmware with - send | ||
273 | email to <Martin.Bligh@us.ibm.com>. | ||
274 | |||
275 | config X86_SUMMIT | ||
276 | bool "Summit/EXA (IBM x440)" | ||
277 | depends on X86_32 && SMP | ||
278 | help | ||
279 | This option is needed for IBM systems that use the Summit/EXA chipset. | ||
280 | In particular, it is needed for the x440. | ||
281 | |||
282 | If you don't have one of these computers, you should say N here. | ||
283 | If you want to build a NUMA kernel, you must select ACPI. | ||
284 | |||
285 | config X86_BIGSMP | ||
286 | bool "Support for other sub-arch SMP systems with more than 8 CPUs" | ||
287 | depends on X86_32 && SMP | ||
288 | help | ||
289 | This option is needed for the systems that have more than 8 CPUs | ||
290 | and if the system is not of any sub-arch type above. | ||
291 | |||
292 | If you don't have such a system, you should say N here. | ||
293 | |||
294 | config X86_VISWS | 284 | config X86_VISWS |
295 | bool "SGI 320/540 (Visual Workstation)" | 285 | bool "SGI 320/540 (Visual Workstation)" |
296 | depends on X86_32 | 286 | depends on X86_32 && !PCI |
297 | help | 287 | help |
298 | The SGI Visual Workstation series is an IA32-based workstation | 288 | The SGI Visual Workstation series is an IA32-based workstation |
299 | based on SGI systems chips with some legacy PC hardware attached. | 289 | based on SGI systems chips with some legacy PC hardware attached. |
@@ -304,12 +294,33 @@ config X86_VISWS | |||
304 | and vice versa. See <file:Documentation/sgi-visws.txt> for details. | 294 | and vice versa. See <file:Documentation/sgi-visws.txt> for details. |
305 | 295 | ||
306 | config X86_GENERICARCH | 296 | config X86_GENERICARCH |
307 | bool "Generic architecture (Summit, bigsmp, ES7000, default)" | 297 | bool "Generic architecture" |
308 | depends on X86_32 | 298 | depends on X86_32 |
309 | help | 299 | help |
310 | This option compiles in the Summit, bigsmp, ES7000, default subarchitectures. | 300 | This option compiles in the NUMAQ, Summit, bigsmp, ES7000, default |
311 | It is intended for a generic binary kernel. | 301 | subarchitectures. It is intended for a generic binary kernel. |
312 | If you want a NUMA kernel, select ACPI. We need SRAT for NUMA. | 302 | if you select them all, kernel will probe it one by one. and will |
303 | fallback to default. | ||
304 | |||
305 | if X86_GENERICARCH | ||
306 | |||
307 | config X86_NUMAQ | ||
308 | bool "NUMAQ (IBM/Sequent)" | ||
309 | depends on SMP && X86_32 && PCI && X86_MPPARSE | ||
310 | select NUMA | ||
311 | help | ||
312 | This option is used for getting Linux to run on a NUMAQ (IBM/Sequent) | ||
313 | NUMA multiquad box. This changes the way that processors are | ||
314 | bootstrapped, and uses Clustered Logical APIC addressing mode instead | ||
315 | of Flat Logical. You will need a new lynxer.elf file to flash your | ||
316 | firmware with - send email to <Martin.Bligh@us.ibm.com>. | ||
317 | |||
318 | config X86_SUMMIT | ||
319 | bool "Summit/EXA (IBM x440)" | ||
320 | depends on X86_32 && SMP | ||
321 | help | ||
322 | This option is needed for IBM systems that use the Summit/EXA chipset. | ||
323 | In particular, it is needed for the x440. | ||
313 | 324 | ||
314 | config X86_ES7000 | 325 | config X86_ES7000 |
315 | bool "Support for Unisys ES7000 IA32 series" | 326 | bool "Support for Unisys ES7000 IA32 series" |
@@ -317,8 +328,15 @@ config X86_ES7000 | |||
317 | help | 328 | help |
318 | Support for Unisys ES7000 systems. Say 'Y' here if this kernel is | 329 | Support for Unisys ES7000 systems. Say 'Y' here if this kernel is |
319 | supposed to run on an IA32-based Unisys ES7000 system. | 330 | supposed to run on an IA32-based Unisys ES7000 system. |
320 | Only choose this option if you have such a system, otherwise you | 331 | |
321 | should say N here. | 332 | config X86_BIGSMP |
333 | bool "Support for big SMP systems with more than 8 CPUs" | ||
334 | depends on X86_32 && SMP | ||
335 | help | ||
336 | This option is needed for the systems that have more than 8 CPUs | ||
337 | and if the system is not of any sub-arch type above. | ||
338 | |||
339 | endif | ||
322 | 340 | ||
323 | config X86_RDC321X | 341 | config X86_RDC321X |
324 | bool "RDC R-321x SoC" | 342 | bool "RDC R-321x SoC" |
@@ -337,7 +355,7 @@ config X86_RDC321X | |||
337 | config X86_VSMP | 355 | config X86_VSMP |
338 | bool "Support for ScaleMP vSMP" | 356 | bool "Support for ScaleMP vSMP" |
339 | select PARAVIRT | 357 | select PARAVIRT |
340 | depends on X86_64 | 358 | depends on X86_64 && !PCI |
341 | help | 359 | help |
342 | Support for ScaleMP vSMP systems. Say 'Y' here if this kernel is | 360 | Support for ScaleMP vSMP systems. Say 'Y' here if this kernel is |
343 | supposed to run on these EM64T-based machines. Only choose this option | 361 | supposed to run on these EM64T-based machines. Only choose this option |
@@ -417,51 +435,33 @@ config PARAVIRT_CLOCK | |||
417 | 435 | ||
418 | endif | 436 | endif |
419 | 437 | ||
420 | config MEMTEST_BOOTPARAM | 438 | config PARAVIRT_DEBUG |
421 | bool "Memtest boot parameter" | 439 | bool "paravirt-ops debugging" |
440 | depends on PARAVIRT && DEBUG_KERNEL | ||
441 | help | ||
442 | Enable to debug paravirt_ops internals. Specifically, BUG if | ||
443 | a paravirt_op is missing when it is called. | ||
444 | |||
445 | config MEMTEST | ||
446 | bool "Memtest" | ||
422 | depends on X86_64 | 447 | depends on X86_64 |
423 | default y | 448 | default y |
424 | help | 449 | help |
425 | This option adds a kernel parameter 'memtest', which allows memtest | 450 | This option adds a kernel parameter 'memtest', which allows memtest |
426 | to be disabled at boot. If this option is selected, memtest | 451 | to be set. |
427 | functionality can be disabled with memtest=0 on the kernel | 452 | memtest=0, mean disabled; -- default |
428 | command line. The purpose of this option is to allow a single | 453 | memtest=1, mean do 1 test pattern; |
429 | kernel image to be distributed with memtest built in, but not | 454 | ... |
430 | necessarily enabled. | 455 | memtest=4, mean do 4 test patterns. |
431 | |||
432 | If you are unsure how to answer this question, answer Y. | 456 | If you are unsure how to answer this question, answer Y. |
433 | 457 | ||
434 | config MEMTEST_BOOTPARAM_VALUE | ||
435 | int "Memtest boot parameter default value (0-4)" | ||
436 | depends on MEMTEST_BOOTPARAM | ||
437 | range 0 4 | ||
438 | default 0 | ||
439 | help | ||
440 | This option sets the default value for the kernel parameter | ||
441 | 'memtest', which allows memtest to be disabled at boot. If this | ||
442 | option is set to 0 (zero), the memtest kernel parameter will | ||
443 | default to 0, disabling memtest at bootup. If this option is | ||
444 | set to 4, the memtest kernel parameter will default to 4, | ||
445 | enabling memtest at bootup, and use that as pattern number. | ||
446 | |||
447 | If you are unsure how to answer this question, answer 0. | ||
448 | |||
449 | config ACPI_SRAT | ||
450 | def_bool y | ||
451 | depends on X86_32 && ACPI && NUMA && (X86_SUMMIT || X86_GENERICARCH) | ||
452 | select ACPI_NUMA | ||
453 | |||
454 | config HAVE_ARCH_PARSE_SRAT | ||
455 | def_bool y | ||
456 | depends on ACPI_SRAT | ||
457 | |||
458 | config X86_SUMMIT_NUMA | 458 | config X86_SUMMIT_NUMA |
459 | def_bool y | 459 | def_bool y |
460 | depends on X86_32 && NUMA && (X86_SUMMIT || X86_GENERICARCH) | 460 | depends on X86_32 && NUMA && X86_GENERICARCH |
461 | 461 | ||
462 | config X86_CYCLONE_TIMER | 462 | config X86_CYCLONE_TIMER |
463 | def_bool y | 463 | def_bool y |
464 | depends on X86_32 && X86_SUMMIT || X86_GENERICARCH | 464 | depends on X86_GENERICARCH |
465 | 465 | ||
466 | config ES7000_CLUSTERED_APIC | 466 | config ES7000_CLUSTERED_APIC |
467 | def_bool y | 467 | def_bool y |
@@ -549,6 +549,21 @@ config CALGARY_IOMMU_ENABLED_BY_DEFAULT | |||
549 | Calgary anyway, pass 'iommu=calgary' on the kernel command line. | 549 | Calgary anyway, pass 'iommu=calgary' on the kernel command line. |
550 | If unsure, say Y. | 550 | If unsure, say Y. |
551 | 551 | ||
552 | config AMD_IOMMU | ||
553 | bool "AMD IOMMU support" | ||
554 | select SWIOTLB | ||
555 | depends on X86_64 && PCI && ACPI | ||
556 | help | ||
557 | With this option you can enable support for AMD IOMMU hardware in | ||
558 | your system. An IOMMU is a hardware component which provides | ||
559 | remapping of DMA memory accesses from devices. With an AMD IOMMU you | ||
560 | can isolate the the DMA memory of different devices and protect the | ||
561 | system from misbehaving device drivers or hardware. | ||
562 | |||
563 | You can find out if your system has an AMD IOMMU if you look into | ||
564 | your BIOS for an option to enable it or if you have an IVRS ACPI | ||
565 | table. | ||
566 | |||
552 | # need this always selected by IOMMU for the VIA workaround | 567 | # need this always selected by IOMMU for the VIA workaround |
553 | config SWIOTLB | 568 | config SWIOTLB |
554 | bool | 569 | bool |
@@ -561,20 +576,35 @@ config SWIOTLB | |||
561 | 576 | ||
562 | config IOMMU_HELPER | 577 | config IOMMU_HELPER |
563 | def_bool (CALGARY_IOMMU || GART_IOMMU || SWIOTLB) | 578 | def_bool (CALGARY_IOMMU || GART_IOMMU || SWIOTLB) |
579 | config MAXSMP | ||
580 | bool "Configure Maximum number of SMP Processors and NUMA Nodes" | ||
581 | depends on X86_64 && SMP | ||
582 | default n | ||
583 | help | ||
584 | Configure maximum number of CPUS and NUMA Nodes for this architecture. | ||
585 | If unsure, say N. | ||
586 | |||
587 | if MAXSMP | ||
588 | config NR_CPUS | ||
589 | int | ||
590 | default "4096" | ||
591 | endif | ||
564 | 592 | ||
593 | if !MAXSMP | ||
565 | config NR_CPUS | 594 | config NR_CPUS |
566 | int "Maximum number of CPUs (2-255)" | 595 | int "Maximum number of CPUs (2-4096)" |
567 | range 2 255 | 596 | range 2 4096 |
568 | depends on SMP | 597 | depends on SMP |
569 | default "32" if X86_NUMAQ || X86_SUMMIT || X86_BIGSMP || X86_ES7000 | 598 | default "32" if X86_NUMAQ || X86_SUMMIT || X86_BIGSMP || X86_ES7000 |
570 | default "8" | 599 | default "8" |
571 | help | 600 | help |
572 | This allows you to specify the maximum number of CPUs which this | 601 | This allows you to specify the maximum number of CPUs which this |
573 | kernel will support. The maximum supported value is 255 and the | 602 | kernel will support. The maximum supported value is 4096 and the |
574 | minimum value which makes sense is 2. | 603 | minimum value which makes sense is 2. |
575 | 604 | ||
576 | This is purely to save memory - each supported CPU adds | 605 | This is purely to save memory - each supported CPU adds |
577 | approximately eight kilobytes to the kernel image. | 606 | approximately eight kilobytes to the kernel image. |
607 | endif | ||
578 | 608 | ||
579 | config SCHED_SMT | 609 | config SCHED_SMT |
580 | bool "SMT (Hyperthreading) scheduler support" | 610 | bool "SMT (Hyperthreading) scheduler support" |
@@ -911,9 +941,9 @@ config X86_PAE | |||
911 | config NUMA | 941 | config NUMA |
912 | bool "Numa Memory Allocation and Scheduler Support (EXPERIMENTAL)" | 942 | bool "Numa Memory Allocation and Scheduler Support (EXPERIMENTAL)" |
913 | depends on SMP | 943 | depends on SMP |
914 | depends on X86_64 || (X86_32 && HIGHMEM64G && (X86_NUMAQ || (X86_SUMMIT || X86_GENERICARCH) && ACPI) && EXPERIMENTAL) | 944 | depends on X86_64 || (X86_32 && HIGHMEM64G && (X86_NUMAQ || X86_BIGSMP || X86_SUMMIT && ACPI) && EXPERIMENTAL) |
915 | default n if X86_PC | 945 | default n if X86_PC |
916 | default y if (X86_NUMAQ || X86_SUMMIT) | 946 | default y if (X86_NUMAQ || X86_SUMMIT || X86_BIGSMP) |
917 | help | 947 | help |
918 | Enable NUMA (Non Uniform Memory Access) support. | 948 | Enable NUMA (Non Uniform Memory Access) support. |
919 | The kernel will try to allocate memory used by a CPU on the | 949 | The kernel will try to allocate memory used by a CPU on the |
@@ -965,13 +995,25 @@ config NUMA_EMU | |||
965 | into virtual nodes when booted with "numa=fake=N", where N is the | 995 | into virtual nodes when booted with "numa=fake=N", where N is the |
966 | number of nodes. This is only useful for debugging. | 996 | number of nodes. This is only useful for debugging. |
967 | 997 | ||
998 | if MAXSMP | ||
999 | |||
1000 | config NODES_SHIFT | ||
1001 | int | ||
1002 | default "9" | ||
1003 | endif | ||
1004 | |||
1005 | if !MAXSMP | ||
968 | config NODES_SHIFT | 1006 | config NODES_SHIFT |
969 | int "Max num nodes shift(1-9)" | 1007 | int "Maximum NUMA Nodes (as a power of 2)" |
970 | range 1 9 if X86_64 | 1008 | range 1 9 if X86_64 |
971 | default "6" if X86_64 | 1009 | default "6" if X86_64 |
972 | default "4" if X86_NUMAQ | 1010 | default "4" if X86_NUMAQ |
973 | default "3" | 1011 | default "3" |
974 | depends on NEED_MULTIPLE_NODES | 1012 | depends on NEED_MULTIPLE_NODES |
1013 | help | ||
1014 | Specify the maximum number of NUMA Nodes available on the target | ||
1015 | system. Increases memory reserved to accomodate various tables. | ||
1016 | endif | ||
975 | 1017 | ||
976 | config HAVE_ARCH_BOOTMEM_NODE | 1018 | config HAVE_ARCH_BOOTMEM_NODE |
977 | def_bool y | 1019 | def_bool y |
@@ -1090,6 +1132,40 @@ config MTRR | |||
1090 | 1132 | ||
1091 | See <file:Documentation/mtrr.txt> for more information. | 1133 | See <file:Documentation/mtrr.txt> for more information. |
1092 | 1134 | ||
1135 | config MTRR_SANITIZER | ||
1136 | def_bool y | ||
1137 | prompt "MTRR cleanup support" | ||
1138 | depends on MTRR | ||
1139 | help | ||
1140 | Convert MTRR layout from continuous to discrete, so some X driver | ||
1141 | could add WB entries. | ||
1142 | |||
1143 | Say N here if you see bootup problems (boot crash, boot hang, | ||
1144 | spontaneous reboots). | ||
1145 | |||
1146 | Could be disabled with disable_mtrr_cleanup. Also mtrr_chunk_size | ||
1147 | could be used to send largest mtrr entry size for continuous block | ||
1148 | to hold holes (aka. UC entries) | ||
1149 | |||
1150 | If unsure, say Y. | ||
1151 | |||
1152 | config MTRR_SANITIZER_ENABLE_DEFAULT | ||
1153 | int "MTRR cleanup enable value (0-1)" | ||
1154 | range 0 1 | ||
1155 | default "0" | ||
1156 | depends on MTRR_SANITIZER | ||
1157 | help | ||
1158 | Enable mtrr cleanup default value | ||
1159 | |||
1160 | config MTRR_SANITIZER_SPARE_REG_NR_DEFAULT | ||
1161 | int "MTRR cleanup spare reg num (0-7)" | ||
1162 | range 0 7 | ||
1163 | default "1" | ||
1164 | depends on MTRR_SANITIZER | ||
1165 | help | ||
1166 | mtrr cleanup spare entries default, it can be changed via | ||
1167 | mtrr_spare_reg_nr= | ||
1168 | |||
1093 | config X86_PAT | 1169 | config X86_PAT |
1094 | bool | 1170 | bool |
1095 | prompt "x86 PAT support" | 1171 | prompt "x86 PAT support" |
@@ -1190,7 +1266,6 @@ config KEXEC | |||
1190 | 1266 | ||
1191 | config CRASH_DUMP | 1267 | config CRASH_DUMP |
1192 | bool "kernel crash dumps (EXPERIMENTAL)" | 1268 | bool "kernel crash dumps (EXPERIMENTAL)" |
1193 | depends on EXPERIMENTAL | ||
1194 | depends on X86_64 || (X86_32 && HIGHMEM) | 1269 | depends on X86_64 || (X86_32 && HIGHMEM) |
1195 | help | 1270 | help |
1196 | Generate crash dump after being started by kexec. | 1271 | Generate crash dump after being started by kexec. |
@@ -1475,8 +1550,7 @@ endmenu | |||
1475 | menu "Bus options (PCI etc.)" | 1550 | menu "Bus options (PCI etc.)" |
1476 | 1551 | ||
1477 | config PCI | 1552 | config PCI |
1478 | bool "PCI support" if !X86_VISWS && !X86_VSMP | 1553 | bool "PCI support" |
1479 | depends on !X86_VOYAGER | ||
1480 | default y | 1554 | default y |
1481 | select ARCH_SUPPORTS_MSI if (X86_LOCAL_APIC && X86_IO_APIC) | 1555 | select ARCH_SUPPORTS_MSI if (X86_LOCAL_APIC && X86_IO_APIC) |
1482 | help | 1556 | help |