2 # For a description of the syntax of this configuration file,
3 # see Documentation/kbuild/kconfig-language.txt.
5 # Note: ISA is disabled and will hopefully never be enabled.
6 # If you managed to buy an ISA x86-64 box you'll have to fix all the
7 # ISA drivers you need yourself.
10 mainmenu "Linux Kernel Configuration"
16 Port to the x86-64 architecture. x86-64 is a 64-bit extension to the
17 classical 32-bit x86 architecture. For details see
18 <http://www.x86-64.org/>.
37 config RWSEM_GENERIC_SPINLOCK
41 config RWSEM_XCHGADD_ALGORITHM
52 Write kernel log output directly into the VGA buffer or to a serial
55 This is useful for kernel debugging when your machine crashes very
56 early before the console code is initialized. For normal operation
57 it is not recommended because it looks ugly and doesn't cooperate
58 with klogd/syslogd or the X server. You should normally N here,
59 unless you want to debug such a crash.
65 Use the IA-PC HPET (High Precision Event Timer) to manage
66 time in preference to the PIT and RTC, if a HPET is
67 present. The HPET provides a stable time base on SMP
68 systems, unlike the RTC, but it is more expensive to access,
69 as it is off-chip. You can find the HPET spec at
70 <http://www.intel.com/labs/platcomp/hpet/hpetspec.htm>.
74 config HPET_EMULATE_RTC
75 def_bool HPET_TIMER && RTC=y
77 config GENERIC_ISA_DMA
88 menu "Processor type and features"
91 prompt "Processor family"
95 bool "AMD-Opteron/Athlon64"
97 Optimize for AMD Opteron/Athlon64/Hammer/K8 CPUs.
102 Optimize for Intel IA32 with 64bit extension CPUs
103 (Prescott/Nocona/Potomac)
106 bool "Generic-x86-64"
113 # Define implied options from the CPU selection here
115 config X86_L1_CACHE_BYTES
117 default "128" if GENERIC_CPU || MPSC
120 config X86_L1_CACHE_SHIFT
122 default "7" if GENERIC_CPU || MPSC
134 tristate "/dev/cpu/microcode - Intel CPU microcode support"
136 If you say Y here the 'File systems' section, you will be
137 able to update the microcode on Intel processors. You will
138 obviously need the actual microcode binary data itself which is
139 not shipped with the Linux kernel.
141 For latest news and information on obtaining all the required
142 ingredients for this driver, check:
143 <http://www.urbanmyth.org/microcode/>.
145 To compile this driver as a module, choose M here: the
146 module will be called microcode.
147 If you use modprobe or kmod you may also want to add the line
148 'alias char-major-10-184 microcode' to your /etc/modules.conf file.
151 tristate "/dev/cpu/*/msr - Model-specific register support"
153 This device gives privileged processes access to the x86
154 Model-Specific Registers (MSRs). It is a character device with
155 major 202 and minors 0 to 31 for /dev/cpu/0/msr to /dev/cpu/31/msr.
156 MSR accesses are directed to a specific CPU on multi-processor
160 tristate "/dev/cpu/*/cpuid - CPU information support"
162 This device gives processes access to the x86 CPUID instruction to
163 be executed on a specific processor. It is a character device
164 with major 203 and minors 0 to 31 for /dev/cpu/0/cpuid to
167 # disable it for opteron optimized builds because it pulls in ACPI_BOOT
170 depends on SMP && !MK8
173 config MATH_EMULATION
186 config X86_LOCAL_APIC
191 bool "MTRR (Memory Type Range Register) support"
193 On Intel P6 family processors (Pentium Pro, Pentium II and later)
194 the Memory Type Range Registers (MTRRs) may be used to control
195 processor access to memory ranges. This is most useful if you have
196 a video (VGA) card on a PCI or AGP bus. Enabling write-combining
197 allows bus write transfers to be combined into a larger transfer
198 before bursting over the PCI/AGP bus. This can increase performance
199 of image write operations 2.5 times or more. Saying Y here creates a
200 /proc/mtrr file which may be used to manipulate your processor's
201 MTRRs. Typically the X server should use this.
203 This code has a reasonably generic interface so that similar
204 control registers on other processors can be easily supported
207 Saying Y here also fixes a problem with buggy SMP BIOSes which only
208 set the MTRRs for the boot CPU and not for the secondary CPUs. This
209 can lead to all sorts of problems, so it's good to say Y here.
211 Just say Y here, all x86-64 machines support MTRRs.
213 See <file:Documentation/mtrr.txt> for more information.
216 bool "Symmetric multi-processing support"
218 This enables support for systems with more than one CPU. If you have
219 a system with only one CPU, like most personal computers, say N. If
220 you have a system with more than one CPU, say Y.
222 If you say N here, the kernel will run on single and multiprocessor
223 machines, but will use only one CPU of a multiprocessor machine. If
224 you say Y here, the kernel will run on many, but not all,
225 singleprocessor machines. On a singleprocessor machine, the kernel
226 will run faster if you say N here.
228 If you don't know what to do here, say N.
231 bool "Preemptible Kernel"
233 This option reduces the latency of the kernel when reacting to
234 real-time or interactive events by allowing a low priority process to
235 be preempted even if it is in kernel mode executing a system call.
236 This allows applications to run more reliably even when the system is
237 under load. On contrary it may also break your drivers and add
238 priority inheritance problems to your system. Don't select it if
239 you rely on a stable system or have slightly obscure hardware.
240 It's also not very well tested on x86-64 currently.
241 You have been warned.
243 Say Y here if you are feeling brave and building a kernel for a
244 desktop, embedded or real-time system. Say N if you are unsure.
247 bool "SMT (Hyperthreading) scheduler support"
251 SMT scheduler support improves the CPU scheduler's decision making
252 when dealing with Intel Pentium 4 chips with HyperThreading at a
253 cost of slightly increased overhead in some places. If unsure say
257 bool "K8 NUMA support"
260 Enable NUMA (Non Unified Memory Architecture) support for
261 AMD Opteron Multiprocessor systems. The kernel will try to allocate
262 memory used by a CPU on the local memory controller of the CPU
263 and add some more NUMA awareness to the kernel.
264 This code is recommended on all multiprocessor Opteron systems
265 and normally doesn't hurt on others.
282 # actually 64 maximum, but you need to fix the APIC code first
283 # to use clustered mode or whatever your big iron needs
285 int "Maximum number of CPUs (2-8)"
290 This allows you to specify the maximum number of CPUs which this
291 kernel will support. The maximum supported value is 32 and the
292 minimum value which makes sense is 2.
294 This is purely to save memory - each supported CPU requires
295 memory in the static kernel configuration.
300 Support the K8 IOMMU. Needed to run systems with more than 4GB of memory
301 properly with 32-bit PCI devices that do not support DAC (Double Address
302 Cycle). The IOMMU can be turned off at runtime with the iommu=off parameter.
303 Normally the kernel will take the right choice by itself.
306 # need this always enabled with GART_IOMMU for the VIA workaround
309 depends on GART_IOMMU
314 depends on !GART_IOMMU && !SWIOTLB
317 Don't use IOMMU code. This will cause problems when you have more than 4GB
318 of memory and any 32-bit devices. Don't turn on unless you know what you
322 bool "Machine check support" if EMBEDDED
325 Include a machine check error handler to report hardware errors.
326 This version will require the mcelog utility to decode some
327 machine check error logs. See
328 ftp://ftp.x86-64.org/pub/linux/tools/mcelog
333 menu "Power management options"
335 source kernel/power/Kconfig
337 source "drivers/acpi/Kconfig"
339 source "arch/x86_64/kernel/cpufreq/Kconfig"
343 menu "Bus options (PCI etc.)"
348 # x86-64 doesn't support PCI BIOS access from long mode so always go direct.
355 bool "Support mmconfig PCI config space access"
360 bool "Unordered IO mapping access"
361 depends on EXPERIMENTAL
363 Use unordered stores to access IO memory mappings in device drivers.
364 Still very experimental. When a driver works on IA64/ppc64/pa-risc it should
365 work with this option, but it makes the drivers behave differently
366 from i386. Requires that the driver writer used memory barriers
369 source "drivers/pci/Kconfig"
371 source "drivers/pcmcia/Kconfig"
373 source "drivers/pci/hotplug/Kconfig"
378 menu "Executable file formats / Emulations"
380 source "fs/Kconfig.binfmt"
382 config IA32_EMULATION
383 bool "IA32 Emulation"
385 Include code to run 32-bit programs under a 64-bit kernel. You should likely
386 turn this on, unless you're 100% sure that you don't have any 32-bit programs
390 bool "IA32 a.out support"
391 depends on IA32_EMULATION
393 Support old a.out binaries in the 32bit emulation.
397 depends on IA32_EMULATION
400 config SYSVIPC_COMPAT
402 depends on COMPAT && SYSVIPC
407 depends on IA32_EMULATION
412 source drivers/Kconfig
414 source "drivers/firmware/Kconfig"
418 source "arch/x86_64/oprofile/Kconfig"
420 source "arch/x86_64/Kconfig.debug"
422 source "security/Kconfig"
424 source "crypto/Kconfig"