aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/Kconfig
diff options
context:
space:
mode:
Diffstat (limited to 'arch/x86/Kconfig')
-rw-r--r--arch/x86/Kconfig242
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
123config HAVE_SETUP_PER_CPU_AREA 123config 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
126config HAVE_CPUMASK_OF_CPU_MAP 126config 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
233config X86_FIND_SMP_CONFIG
234 def_bool y
235 depends on X86_MPPARSE || X86_VOYAGER || X86_VISWS
236
237if ACPI
238config 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
245endif
246
247if !ACPI
248config X86_MPPARSE
249 def_bool y
250 depends on X86_LOCAL_APIC && !X86_VISWS
251endif
252
233choice 253choice
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
252config X86_VOYAGER 272config 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
264config 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
275config 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
285config 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
294config X86_VISWS 284config 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
306config X86_GENERICARCH 296config 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
305if X86_GENERICARCH
306
307config 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
318config 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
314config X86_ES7000 325config 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. 332config 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
339endif
322 340
323config X86_RDC321X 341config X86_RDC321X
324 bool "RDC R-321x SoC" 342 bool "RDC R-321x SoC"
@@ -337,7 +355,7 @@ config X86_RDC321X
337config X86_VSMP 355config 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
418endif 436endif
419 437
420config MEMTEST_BOOTPARAM 438config 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
445config 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
434config 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
449config ACPI_SRAT
450 def_bool y
451 depends on X86_32 && ACPI && NUMA && (X86_SUMMIT || X86_GENERICARCH)
452 select ACPI_NUMA
453
454config HAVE_ARCH_PARSE_SRAT
455 def_bool y
456 depends on ACPI_SRAT
457
458config X86_SUMMIT_NUMA 458config 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
462config X86_CYCLONE_TIMER 462config 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
466config ES7000_CLUSTERED_APIC 466config 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
552config 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
553config SWIOTLB 568config SWIOTLB
554 bool 569 bool
@@ -561,20 +576,35 @@ config SWIOTLB
561 576
562config IOMMU_HELPER 577config IOMMU_HELPER
563 def_bool (CALGARY_IOMMU || GART_IOMMU || SWIOTLB) 578 def_bool (CALGARY_IOMMU || GART_IOMMU || SWIOTLB)
579config 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
587if MAXSMP
588config NR_CPUS
589 int
590 default "4096"
591endif
564 592
593if !MAXSMP
565config NR_CPUS 594config 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.
607endif
578 608
579config SCHED_SMT 609config SCHED_SMT
580 bool "SMT (Hyperthreading) scheduler support" 610 bool "SMT (Hyperthreading) scheduler support"
@@ -911,9 +941,9 @@ config X86_PAE
911config NUMA 941config 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
998if MAXSMP
999
1000config NODES_SHIFT
1001 int
1002 default "9"
1003endif
1004
1005if !MAXSMP
968config NODES_SHIFT 1006config 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.
1016endif
975 1017
976config HAVE_ARCH_BOOTMEM_NODE 1018config 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
1135config 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
1152config 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
1160config 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
1093config X86_PAT 1169config X86_PAT
1094 bool 1170 bool
1095 prompt "x86 PAT support" 1171 prompt "x86 PAT support"
@@ -1190,7 +1266,6 @@ config KEXEC
1190 1266
1191config CRASH_DUMP 1267config 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
1475menu "Bus options (PCI etc.)" 1550menu "Bus options (PCI etc.)"
1476 1551
1477config PCI 1552config 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