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
44 config GENERIC_CALIBRATE_DELAY
60 Use the IA-PC HPET (High Precision Event Timer) to manage
61 time in preference to the PIT and RTC, if a HPET is
62 present. The HPET provides a stable time base on SMP
63 systems, unlike the RTC, but it is more expensive to access,
64 as it is off-chip. You can find the HPET spec at
65 <http://www.intel.com/labs/platcomp/hpet/hpetspec.htm>.
69 config HPET_EMULATE_RTC
70 bool "Provide RTC interrupt"
71 depends on HPET_TIMER && RTC=y
73 config GENERIC_ISA_DMA
84 menu "Processor type and features"
87 prompt "Processor family"
91 bool "AMD-Opteron/Athlon64"
93 Optimize for AMD Opteron/Athlon64/Hammer/K8 CPUs.
98 Optimize for Intel Pentium 4 and Xeon CPUs with Intel
99 Extended Memory 64 Technology(EM64T). For details see
100 <http://www.intel.com/technology/64bitextensions/>.
103 bool "Generic-x86-64"
110 # Define implied options from the CPU selection here
112 config X86_L1_CACHE_BYTES
114 default "128" if GENERIC_CPU || MPSC
117 config X86_L1_CACHE_SHIFT
119 default "7" if GENERIC_CPU || MPSC
131 tristate "/dev/cpu/microcode - Intel CPU microcode support"
133 If you say Y here the 'File systems' section, you will be
134 able to update the microcode on Intel processors. You will
135 obviously need the actual microcode binary data itself which is
136 not shipped with the Linux kernel.
138 For latest news and information on obtaining all the required
139 ingredients for this driver, check:
140 <http://www.urbanmyth.org/microcode/>.
142 To compile this driver as a module, choose M here: the
143 module will be called microcode.
144 If you use modprobe or kmod you may also want to add the line
145 'alias char-major-10-184 microcode' to your /etc/modules.conf file.
148 tristate "/dev/cpu/*/msr - Model-specific register support"
150 This device gives privileged processes access to the x86
151 Model-Specific Registers (MSRs). It is a character device with
152 major 202 and minors 0 to 31 for /dev/cpu/0/msr to /dev/cpu/31/msr.
153 MSR accesses are directed to a specific CPU on multi-processor
157 tristate "/dev/cpu/*/cpuid - CPU information support"
159 This device gives processes access to the x86 CPUID instruction to
160 be executed on a specific processor. It is a character device
161 with major 203 and minors 0 to 31 for /dev/cpu/0/cpuid to
164 # disable it for opteron optimized builds because it pulls in ACPI_BOOT
167 depends on SMP && !MK8
170 config MATH_EMULATION
183 config X86_LOCAL_APIC
188 bool "MTRR (Memory Type Range Register) support"
190 On Intel P6 family processors (Pentium Pro, Pentium II and later)
191 the Memory Type Range Registers (MTRRs) may be used to control
192 processor access to memory ranges. This is most useful if you have
193 a video (VGA) card on a PCI or AGP bus. Enabling write-combining
194 allows bus write transfers to be combined into a larger transfer
195 before bursting over the PCI/AGP bus. This can increase performance
196 of image write operations 2.5 times or more. Saying Y here creates a
197 /proc/mtrr file which may be used to manipulate your processor's
198 MTRRs. Typically the X server should use this.
200 This code has a reasonably generic interface so that similar
201 control registers on other processors can be easily supported
204 Saying Y here also fixes a problem with buggy SMP BIOSes which only
205 set the MTRRs for the boot CPU and not for the secondary CPUs. This
206 can lead to all sorts of problems, so it's good to say Y here.
208 Just say Y here, all x86-64 machines support MTRRs.
210 See <file:Documentation/mtrr.txt> for more information.
213 bool "Symmetric multi-processing support"
215 This enables support for systems with more than one CPU. If you have
216 a system with only one CPU, like most personal computers, say N. If
217 you have a system with more than one CPU, say Y.
219 If you say N here, the kernel will run on single and multiprocessor
220 machines, but will use only one CPU of a multiprocessor machine. If
221 you say Y here, the kernel will run on many, but not all,
222 singleprocessor machines. On a singleprocessor machine, the kernel
223 will run faster if you say N here.
225 If you don't know what to do here, say N.
228 bool "Preemptible Kernel"
230 This option reduces the latency of the kernel when reacting to
231 real-time or interactive events by allowing a low priority process to
232 be preempted even if it is in kernel mode executing a system call.
233 This allows applications to run more reliably even when the system is
234 under load. On contrary it may also break your drivers and add
235 priority inheritance problems to your system. Don't select it if
236 you rely on a stable system or have slightly obscure hardware.
237 It's also not very well tested on x86-64 currently.
238 You have been warned.
240 Say Y here if you are feeling brave and building a kernel for a
241 desktop, embedded or real-time system. Say N if you are unsure.
244 bool "Preempt The Big Kernel Lock"
248 This option reduces the latency of the kernel by making the
249 big kernel lock preemptible.
251 Say Y here if you are building a kernel for a desktop system.
252 Say N if you are unsure.
255 bool "SMT (Hyperthreading) scheduler support"
259 SMT scheduler support improves the CPU scheduler's decision making
260 when dealing with Intel Pentium 4 chips with HyperThreading at a
261 cost of slightly increased overhead in some places. If unsure say
265 bool "K8 NUMA support"
269 Enable NUMA (Non Unified Memory Architecture) support for
270 AMD Opteron Multiprocessor systems. The kernel will try to allocate
271 memory used by a CPU on the local memory controller of the CPU
272 and add some more NUMA awareness to the kernel.
273 This code is recommended on all multiprocessor Opteron systems
274 and normally doesn't hurt on others.
277 bool "NUMA emulation support"
281 Enable NUMA emulation. A flat machine will be split
282 into virtual nodes when booted with "numa=fake=N", where N is the
283 number of nodes. This is only useful for debugging.
300 int "Maximum number of CPUs (2-256)"
305 This allows you to specify the maximum number of CPUs which this
306 kernel will support. Current maximum is 256 CPUs due to
307 APIC addressing limits. Less depending on the hardware.
309 This is purely to save memory - each supported CPU requires
310 memory in the static kernel configuration.
316 Support the K8 IOMMU. Needed to run systems with more than 4GB of memory
317 properly with 32-bit PCI devices that do not support DAC (Double Address
318 Cycle). The IOMMU can be turned off at runtime with the iommu=off parameter.
319 Normally the kernel will take the right choice by itself.
322 # need this always enabled with GART_IOMMU for the VIA workaround
325 depends on GART_IOMMU
330 depends on !GART_IOMMU && !SWIOTLB
333 Don't use IOMMU code. This will cause problems when you have more than 4GB
334 of memory and any 32-bit devices. Don't turn on unless you know what you
338 bool "Machine check support" if EMBEDDED
341 Include a machine check error handler to report hardware errors.
342 This version will require the mcelog utility to decode some
343 machine check error logs. See
344 ftp://ftp.x86-64.org/pub/linux/tools/mcelog
347 bool "Intel MCE features"
348 depends on X86_MCE && X86_LOCAL_APIC
351 Additional support for intel specific MCE features such as
356 # Use the generic interrupt handling code in kernel/irq/:
358 config GENERIC_HARDIRQS
362 config GENERIC_IRQ_PROBE
366 menu "Power management options"
368 source kernel/power/Kconfig
370 source "drivers/acpi/Kconfig"
372 source "arch/x86_64/kernel/cpufreq/Kconfig"
376 menu "Bus options (PCI etc.)"
381 # x86-64 doesn't support PCI BIOS access from long mode so always go direct.
388 bool "Support mmconfig PCI config space access"
393 bool "Unordered IO mapping access"
394 depends on EXPERIMENTAL
396 Use unordered stores to access IO memory mappings in device drivers.
397 Still very experimental. When a driver works on IA64/ppc64/pa-risc it should
398 work with this option, but it makes the drivers behave differently
399 from i386. Requires that the driver writer used memory barriers
402 source "drivers/pci/Kconfig"
404 source "drivers/pcmcia/Kconfig"
406 source "drivers/pci/hotplug/Kconfig"
411 menu "Executable file formats / Emulations"
413 source "fs/Kconfig.binfmt"
415 config IA32_EMULATION
416 bool "IA32 Emulation"
418 Include code to run 32-bit programs under a 64-bit kernel. You should likely
419 turn this on, unless you're 100% sure that you don't have any 32-bit programs
423 bool "IA32 a.out support"
424 depends on IA32_EMULATION
426 Support old a.out binaries in the 32bit emulation.
430 depends on IA32_EMULATION
433 config SYSVIPC_COMPAT
435 depends on COMPAT && SYSVIPC
440 depends on IA32_EMULATION
445 source drivers/Kconfig
447 source "drivers/firmware/Kconfig"
451 source "arch/x86_64/oprofile/Kconfig"
453 source "arch/x86_64/Kconfig.debug"
455 source "kernel/vserver/Kconfig"
457 source "security/Kconfig"
459 source "crypto/Kconfig"