aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/Kconfig.x86_64
diff options
context:
space:
mode:
Diffstat (limited to 'arch/x86/Kconfig.x86_64')
-rw-r--r--arch/x86/Kconfig.x86_64490
1 files changed, 0 insertions, 490 deletions
diff --git a/arch/x86/Kconfig.x86_64 b/arch/x86/Kconfig.x86_64
index e441062472a8..b262aaec67cc 100644
--- a/arch/x86/Kconfig.x86_64
+++ b/arch/x86/Kconfig.x86_64
@@ -17,494 +17,4 @@ config X86_64
17 classical 32-bit x86 architecture. For details see 17 classical 32-bit x86 architecture. For details see
18 <http://www.x86-64.org/>. 18 <http://www.x86-64.org/>.
19 19
20source "init/Kconfig"
21
22
23menu "Processor type and features"
24
25source "kernel/time/Kconfig"
26
27choice
28 prompt "Subarchitecture Type"
29 default X86_PC
30
31config X86_PC
32 bool "PC-compatible"
33 help
34 Choose this option if your computer is a standard PC or compatible.
35
36config X86_VSMP
37 bool "Support for ScaleMP vSMP"
38 depends on X86_64 && PCI
39 help
40 Support for ScaleMP vSMP systems. Say 'Y' here if this kernel is
41 supposed to run on these EM64T-based machines. Only choose this option
42 if you have one of these machines.
43
44endchoice
45
46source "arch/x86/Kconfig.cpu"
47
48config MICROCODE
49 tristate "/dev/cpu/microcode - Intel CPU microcode support"
50 select FW_LOADER
51 ---help---
52 If you say Y here the 'File systems' section, you will be
53 able to update the microcode on Intel processors. You will
54 obviously need the actual microcode binary data itself which is
55 not shipped with the Linux kernel.
56
57 For latest news and information on obtaining all the required
58 ingredients for this driver, check:
59 <http://www.urbanmyth.org/microcode/>.
60
61 To compile this driver as a module, choose M here: the
62 module will be called microcode.
63 If you use modprobe or kmod you may also want to add the line
64 'alias char-major-10-184 microcode' to your /etc/modules.conf file.
65
66config MICROCODE_OLD_INTERFACE
67 bool
68 depends on MICROCODE
69 default y
70
71config X86_MSR
72 tristate "/dev/cpu/*/msr - Model-specific register support"
73 help
74 This device gives privileged processes access to the x86
75 Model-Specific Registers (MSRs). It is a character device with
76 major 202 and minors 0 to 31 for /dev/cpu/0/msr to /dev/cpu/31/msr.
77 MSR accesses are directed to a specific CPU on multi-processor
78 systems.
79
80config X86_CPUID
81 tristate "/dev/cpu/*/cpuid - CPU information support"
82 help
83 This device gives processes access to the x86 CPUID instruction to
84 be executed on a specific processor. It is a character device
85 with major 203 and minors 0 to 31 for /dev/cpu/0/cpuid to
86 /dev/cpu/31/cpuid.
87
88config MATH_EMULATION
89 bool
90
91config MCA
92 bool
93
94config EISA
95 bool
96
97config X86_IO_APIC
98 bool
99 default y
100
101config X86_LOCAL_APIC
102 bool
103 default y
104
105config MTRR
106 bool "MTRR (Memory Type Range Register) support"
107 ---help---
108 On Intel P6 family processors (Pentium Pro, Pentium II and later)
109 the Memory Type Range Registers (MTRRs) may be used to control
110 processor access to memory ranges. This is most useful if you have
111 a video (VGA) card on a PCI or AGP bus. Enabling write-combining
112 allows bus write transfers to be combined into a larger transfer
113 before bursting over the PCI/AGP bus. This can increase performance
114 of image write operations 2.5 times or more. Saying Y here creates a
115 /proc/mtrr file which may be used to manipulate your processor's
116 MTRRs. Typically the X server should use this.
117
118 This code has a reasonably generic interface so that similar
119 control registers on other processors can be easily supported
120 as well.
121
122 Saying Y here also fixes a problem with buggy SMP BIOSes which only
123 set the MTRRs for the boot CPU and not for the secondary CPUs. This
124 can lead to all sorts of problems, so it's good to say Y here.
125
126 Just say Y here, all x86-64 machines support MTRRs.
127
128 See <file:Documentation/mtrr.txt> for more information.
129
130config SMP
131 bool "Symmetric multi-processing support"
132 ---help---
133 This enables support for systems with more than one CPU. If you have
134 a system with only one CPU, like most personal computers, say N. If
135 you have a system with more than one CPU, say Y.
136
137 If you say N here, the kernel will run on single and multiprocessor
138 machines, but will use only one CPU of a multiprocessor machine. If
139 you say Y here, the kernel will run on many, but not all,
140 singleprocessor machines. On a singleprocessor machine, the kernel
141 will run faster if you say N here.
142
143 If you don't know what to do here, say N.
144
145config SCHED_SMT
146 bool "SMT (Hyperthreading) scheduler support"
147 depends on SMP
148 default n
149 help
150 SMT scheduler support improves the CPU scheduler's decision making
151 when dealing with Intel Pentium 4 chips with HyperThreading at a
152 cost of slightly increased overhead in some places. If unsure say
153 N here.
154
155config SCHED_MC
156 bool "Multi-core scheduler support"
157 depends on SMP
158 default y
159 help
160 Multi-core scheduler support improves the CPU scheduler's decision
161 making when dealing with multi-core CPU chips at a cost of slightly
162 increased overhead in some places. If unsure say N here.
163
164source "kernel/Kconfig.preempt"
165
166config NUMA
167 bool "Non Uniform Memory Access (NUMA) Support"
168 depends on SMP
169 help
170 Enable NUMA (Non Uniform Memory Access) support. The kernel
171 will try to allocate memory used by a CPU on the local memory
172 controller of the CPU and add some more NUMA awareness to the kernel.
173 This code is recommended on all multiprocessor Opteron systems.
174 If the system is EM64T, you should say N unless your system is EM64T
175 NUMA.
176
177config K8_NUMA
178 bool "Old style AMD Opteron NUMA detection"
179 depends on X86_64 && NUMA && PCI
180 default y
181 help
182 Enable K8 NUMA node topology detection. You should say Y here if
183 you have a multi processor AMD K8 system. This uses an old
184 method to read the NUMA configuration directly from the builtin
185 Northbridge of Opteron. It is recommended to use X86_64_ACPI_NUMA
186 instead, which also takes priority if both are compiled in.
187
188config NODES_SHIFT
189 int
190 default "6" if X86_64
191 depends on NEED_MULTIPLE_NODES
192
193# Dummy CONFIG option to select ACPI_NUMA from drivers/acpi/Kconfig.
194
195config X86_64_ACPI_NUMA
196 bool "ACPI NUMA detection"
197 depends on X86_64 && NUMA
198 select ACPI
199 select PCI
200 select ACPI_NUMA
201 default y
202 help
203 Enable ACPI SRAT based node topology detection.
204
205config NUMA_EMU
206 bool "NUMA emulation"
207 depends on X86_64 && NUMA
208 help
209 Enable NUMA emulation. A flat machine will be split
210 into virtual nodes when booted with "numa=fake=N", where N is the
211 number of nodes. This is only useful for debugging.
212
213config ARCH_DISCONTIGMEM_ENABLE
214 bool
215 depends on NUMA
216 default y
217
218config ARCH_DISCONTIGMEM_DEFAULT
219 def_bool y
220 depends on NUMA
221
222config ARCH_SPARSEMEM_ENABLE
223 def_bool y
224 depends on (NUMA || EXPERIMENTAL)
225 select SPARSEMEM_VMEMMAP_ENABLE
226
227config ARCH_MEMORY_PROBE
228 def_bool X86_64
229 depends on MEMORY_HOTPLUG
230
231config ARCH_FLATMEM_ENABLE
232 def_bool y
233 depends on !NUMA
234
235source "mm/Kconfig"
236
237config MEMORY_HOTPLUG_RESERVE
238 def_bool X86_64
239 depends on (MEMORY_HOTPLUG && DISCONTIGMEM)
240
241config HAVE_ARCH_EARLY_PFN_TO_NID
242 def_bool X86_64
243 depends on NUMA
244
245config OUT_OF_LINE_PFN_TO_PAGE
246 def_bool X86_64
247 depends on DISCONTIGMEM
248
249config NR_CPUS
250 int "Maximum number of CPUs (2-255)"
251 range 2 255
252 depends on SMP
253 default "8"
254 help
255 This allows you to specify the maximum number of CPUs which this
256 kernel will support. Current maximum is 255 CPUs due to
257 APIC addressing limits. Less depending on the hardware.
258
259 This is purely to save memory - each supported CPU requires
260 memory in the static kernel configuration.
261
262config PHYSICAL_ALIGN
263 hex
264 default "0x200000" if X86_64
265
266config HOTPLUG_CPU
267 bool "Support for suspend on SMP and hot-pluggable CPUs (EXPERIMENTAL)"
268 depends on SMP && HOTPLUG && EXPERIMENTAL
269 help
270 Say Y here to experiment with turning CPUs off and on. CPUs
271 can be controlled through /sys/devices/system/cpu/cpu#.
272 This is also required for suspend/hibernation on SMP systems.
273
274 Say N if you want to disable CPU hotplug and don't need to
275 suspend.
276
277config ARCH_ENABLE_MEMORY_HOTPLUG
278 def_bool y
279
280config HPET_TIMER
281 bool
282 default y
283 help
284 Use the IA-PC HPET (High Precision Event Timer) to manage
285 time in preference to the PIT and RTC, if a HPET is
286 present. The HPET provides a stable time base on SMP
287 systems, unlike the TSC, but it is more expensive to access,
288 as it is off-chip. You can find the HPET spec at
289 <http://www.intel.com/hardwaredesign/hpetspec.htm>.
290
291config HPET_EMULATE_RTC
292 bool
293 depends on HPET_TIMER && RTC=y
294 default y
295
296# Mark as embedded because too many people got it wrong.
297# The code disables itself when not needed.
298config GART_IOMMU
299 bool "GART IOMMU support" if EMBEDDED
300 default y
301 select SWIOTLB
302 select AGP
303 depends on X86_64 && PCI
304 help
305 Support for full DMA access of devices with 32bit memory access only
306 on systems with more than 3GB. This is usually needed for USB,
307 sound, many IDE/SATA chipsets and some other devices.
308 Provides a driver for the AMD Athlon64/Opteron/Turion/Sempron GART
309 based hardware IOMMU and a software bounce buffer based IOMMU used
310 on Intel systems and as fallback.
311 The code is only active when needed (enough memory and limited
312 device) unless CONFIG_IOMMU_DEBUG or iommu=force is specified
313 too.
314
315config CALGARY_IOMMU
316 bool "IBM Calgary IOMMU support"
317 select SWIOTLB
318 depends on X86_64 && PCI && EXPERIMENTAL
319 help
320 Support for hardware IOMMUs in IBM's xSeries x366 and x460
321 systems. Needed to run systems with more than 3GB of memory
322 properly with 32-bit PCI devices that do not support DAC
323 (Double Address Cycle). Calgary also supports bus level
324 isolation, where all DMAs pass through the IOMMU. This
325 prevents them from going anywhere except their intended
326 destination. This catches hard-to-find kernel bugs and
327 mis-behaving drivers and devices that do not use the DMA-API
328 properly to set up their DMA buffers. The IOMMU can be
329 turned off at boot time with the iommu=off parameter.
330 Normally the kernel will make the right choice by itself.
331 If unsure, say Y.
332
333config CALGARY_IOMMU_ENABLED_BY_DEFAULT
334 bool "Should Calgary be enabled by default?"
335 default y
336 depends on CALGARY_IOMMU
337 help
338 Should Calgary be enabled by default? if you choose 'y', Calgary
339 will be used (if it exists). If you choose 'n', Calgary will not be
340 used even if it exists. If you choose 'n' and would like to use
341 Calgary anyway, pass 'iommu=calgary' on the kernel command line.
342 If unsure, say Y.
343
344# need this always selected by IOMMU for the VIA workaround
345config SWIOTLB
346 bool
347 help
348 Support for software bounce buffers used on x86-64 systems
349 which don't have a hardware IOMMU (e.g. the current generation
350 of Intel's x86-64 CPUs). Using this PCI devices which can only
351 access 32-bits of memory can be used on systems with more than
352 3 GB of memory. If unsure, say Y.
353
354config X86_MCE
355 bool "Machine check support" if EMBEDDED
356 default y
357 help
358 Include a machine check error handler to report hardware errors.
359 This version will require the mcelog utility to decode some
360 machine check error logs. See
361 ftp://ftp.x86-64.org/pub/linux/tools/mcelog
362
363config X86_MCE_INTEL
364 bool "Intel MCE features"
365 depends on X86_64 && X86_MCE && X86_LOCAL_APIC
366 default y
367 help
368 Additional support for intel specific MCE features such as
369 the thermal monitor.
370
371config X86_MCE_AMD
372 bool "AMD MCE features"
373 depends on X86_64 && X86_MCE && X86_LOCAL_APIC
374 default y
375 help
376 Additional support for AMD specific MCE features such as
377 the DRAM Error Threshold.
378
379config KEXEC
380 bool "kexec system call"
381 help
382 kexec is a system call that implements the ability to shutdown your
383 current kernel, and to start another kernel. It is like a reboot
384 but it is independent of the system firmware. And like a reboot
385 you can start any kernel with it, not just Linux.
386
387 The name comes from the similarity to the exec system call.
388
389 It is an ongoing process to be certain the hardware in a machine
390 is properly shutdown, so do not be surprised if this code does not
391 initially work for you. It may help to enable device hotplugging
392 support. As of this writing the exact hardware interface is
393 strongly in flux, so no good recommendation can be made.
394
395config CRASH_DUMP
396 bool "kernel crash dumps (EXPERIMENTAL)"
397 depends on EXPERIMENTAL
398 help
399 Generate crash dump after being started by kexec.
400 This should be normally only set in special crash dump kernels
401 which are loaded in the main kernel with kexec-tools into
402 a specially reserved region and then later executed after
403 a crash by kdump/kexec. The crash dump kernel must be compiled
404 to a memory address not used by the main kernel or BIOS using
405 PHYSICAL_START, or it must be built as a relocatable image
406 (CONFIG_RELOCATABLE=y).
407 For more details see Documentation/kdump/kdump.txt
408
409config RELOCATABLE
410 bool "Build a relocatable kernel (EXPERIMENTAL)"
411 depends on EXPERIMENTAL
412 help
413 Builds a relocatable kernel. This enables loading and running
414 a kernel binary from a different physical address than it has
415 been compiled for.
416
417 One use is for the kexec on panic case where the recovery kernel
418 must live at a different physical address than the primary
419 kernel.
420
421 Note: If CONFIG_RELOCATABLE=y, then the kernel runs from the address
422 it has been loaded at and the compile time physical address
423 (CONFIG_PHYSICAL_START) is ignored.
424
425config PHYSICAL_START
426 hex "Physical address where the kernel is loaded" if (EMBEDDED || CRASH_DUMP)
427 default "0x200000"
428 help
429 This gives the physical address where the kernel is loaded. It
430 should be aligned to 2MB boundary.
431
432 If kernel is a not relocatable (CONFIG_RELOCATABLE=n) then
433 bzImage will decompress itself to above physical address and
434 run from there. Otherwise, bzImage will run from the address where
435 it has been loaded by the boot loader and will ignore above physical
436 address.
437
438 In normal kdump cases one does not have to set/change this option
439 as now bzImage can be compiled as a completely relocatable image
440 (CONFIG_RELOCATABLE=y) and be used to load and run from a different
441 address. This option is mainly useful for the folks who don't want
442 to use a bzImage for capturing the crash dump and want to use a
443 vmlinux instead.
444
445 So if you are using bzImage for capturing the crash dump, leave
446 the value here unchanged to 0x200000 and set CONFIG_RELOCATABLE=y.
447 Otherwise if you plan to use vmlinux for capturing the crash dump
448 change this value to start of the reserved region (Typically 16MB
449 0x1000000). In other words, it can be set based on the "X" value as
450 specified in the "crashkernel=YM@XM" command line boot parameter
451 passed to the panic-ed kernel. Typically this parameter is set as
452 crashkernel=64M@16M. Please take a look at
453 Documentation/kdump/kdump.txt for more details about crash dumps.
454
455 Usage of bzImage for capturing the crash dump is advantageous as
456 one does not have to build two kernels. Same kernel can be used
457 as production kernel and capture kernel.
458
459 Don't change this unless you know what you are doing.
460
461config SECCOMP
462 bool "Enable seccomp to safely compute untrusted bytecode"
463 depends on PROC_FS
464 default y
465 help
466 This kernel feature is useful for number crunching applications
467 that may need to compute untrusted bytecode during their
468 execution. By using pipes or other transports made available to
469 the process as file descriptors supporting the read/write
470 syscalls, it's possible to isolate those applications in
471 their own address space using seccomp. Once seccomp is
472 enabled via /proc/<pid>/seccomp, it cannot be disabled
473 and the task is only allowed to execute a few safe syscalls
474 defined by each seccomp mode.
475
476 If unsure, say Y. Only embedded should say N here.
477
478config CC_STACKPROTECTOR
479 bool "Enable -fstack-protector buffer overflow detection (EXPERIMENTAL)"
480 depends on X86_64 && EXPERIMENTAL
481 help
482 This option turns on the -fstack-protector GCC feature. This
483 feature puts, at the beginning of critical functions, a canary
484 value on the stack just before the return address, and validates
485 the value just before actually returning. Stack based buffer
486 overflows (that need to overwrite this return address) now also
487 overwrite the canary, which gets detected and the attack is then
488 neutralized via a kernel panic.
489
490 This feature requires gcc version 4.2 or above, or a distribution
491 gcc with the feature backported. Older versions are automatically
492 detected and for those versions, this configuration option is ignored.
493
494config CC_STACKPROTECTOR_ALL
495 bool "Use stack-protector for all functions"
496 depends on CC_STACKPROTECTOR
497 help
498 Normally, GCC only inserts the canary value protection for
499 functions that use large-ish on-stack buffers. By enabling
500 this option, GCC will be asked to do this for ALL functions.
501
502source kernel/Kconfig.hz
503
504config K8_NB
505 def_bool X86_64
506 depends on AGP_AMD64 || GART_IOMMU || (PCI && NUMA)
507
508endmenu
509
510source "arch/x86/Kconfig" 20source "arch/x86/Kconfig"