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 bool "Provide RTC interrupt"
76 depends on HPET_TIMER && RTC=y
78 config GENERIC_ISA_DMA
89 menu "Processor type and features"
92 prompt "Processor family"
96 bool "AMD-Opteron/Athlon64"
98 Optimize for AMD Opteron/Athlon64/Hammer/K8 CPUs.
103 Optimize for Intel IA32 with 64bit extension CPUs
104 (Prescott/Nocona/Potomac)
107 bool "Generic-x86-64"
114 # Define implied options from the CPU selection here
116 config X86_L1_CACHE_BYTES
118 default "128" if GENERIC_CPU || MPSC
121 config X86_L1_CACHE_SHIFT
123 default "7" if GENERIC_CPU || MPSC
135 tristate "/dev/cpu/microcode - Intel CPU microcode support"
137 If you say Y here the 'File systems' section, you will be
138 able to update the microcode on Intel processors. You will
139 obviously need the actual microcode binary data itself which is
140 not shipped with the Linux kernel.
142 For latest news and information on obtaining all the required
143 ingredients for this driver, check:
144 <http://www.urbanmyth.org/microcode/>.
146 To compile this driver as a module, choose M here: the
147 module will be called microcode.
148 If you use modprobe or kmod you may also want to add the line
149 'alias char-major-10-184 microcode' to your /etc/modules.conf file.
152 tristate "/dev/cpu/*/msr - Model-specific register support"
154 This device gives privileged processes access to the x86
155 Model-Specific Registers (MSRs). It is a character device with
156 major 202 and minors 0 to 31 for /dev/cpu/0/msr to /dev/cpu/31/msr.
157 MSR accesses are directed to a specific CPU on multi-processor
161 tristate "/dev/cpu/*/cpuid - CPU information support"
163 This device gives processes access to the x86 CPUID instruction to
164 be executed on a specific processor. It is a character device
165 with major 203 and minors 0 to 31 for /dev/cpu/0/cpuid to
168 # disable it for opteron optimized builds because it pulls in ACPI_BOOT
171 depends on SMP && !MK8
174 config MATH_EMULATION
187 config X86_LOCAL_APIC
192 bool "MTRR (Memory Type Range Register) support"
194 On Intel P6 family processors (Pentium Pro, Pentium II and later)
195 the Memory Type Range Registers (MTRRs) may be used to control
196 processor access to memory ranges. This is most useful if you have
197 a video (VGA) card on a PCI or AGP bus. Enabling write-combining
198 allows bus write transfers to be combined into a larger transfer
199 before bursting over the PCI/AGP bus. This can increase performance
200 of image write operations 2.5 times or more. Saying Y here creates a
201 /proc/mtrr file which may be used to manipulate your processor's
202 MTRRs. Typically the X server should use this.
204 This code has a reasonably generic interface so that similar
205 control registers on other processors can be easily supported
208 Saying Y here also fixes a problem with buggy SMP BIOSes which only
209 set the MTRRs for the boot CPU and not for the secondary CPUs. This
210 can lead to all sorts of problems, so it's good to say Y here.
212 Just say Y here, all x86-64 machines support MTRRs.
214 See <file:Documentation/mtrr.txt> for more information.
217 bool "Symmetric multi-processing support"
219 This enables support for systems with more than one CPU. If you have
220 a system with only one CPU, like most personal computers, say N. If
221 you have a system with more than one CPU, say Y.
223 If you say N here, the kernel will run on single and multiprocessor
224 machines, but will use only one CPU of a multiprocessor machine. If
225 you say Y here, the kernel will run on many, but not all,
226 singleprocessor machines. On a singleprocessor machine, the kernel
227 will run faster if you say N here.
229 If you don't know what to do here, say N.
232 bool "Preemptible Kernel"
234 This option reduces the latency of the kernel when reacting to
235 real-time or interactive events by allowing a low priority process to
236 be preempted even if it is in kernel mode executing a system call.
237 This allows applications to run more reliably even when the system is
238 under load. On contrary it may also break your drivers and add
239 priority inheritance problems to your system. Don't select it if
240 you rely on a stable system or have slightly obscure hardware.
241 It's also not very well tested on x86-64 currently.
242 You have been warned.
244 Say Y here if you are feeling brave and building a kernel for a
245 desktop, embedded or real-time system. Say N if you are unsure.
248 bool "SMT (Hyperthreading) scheduler support"
252 SMT scheduler support improves the CPU scheduler's decision making
253 when dealing with Intel Pentium 4 chips with HyperThreading at a
254 cost of slightly increased overhead in some places. If unsure say
258 bool "K8 NUMA support"
262 Enable NUMA (Non Unified Memory Architecture) support for
263 AMD Opteron Multiprocessor systems. The kernel will try to allocate
264 memory used by a CPU on the local memory controller of the CPU
265 and add some more NUMA awareness to the kernel.
266 This code is recommended on all multiprocessor Opteron systems
267 and normally doesn't hurt on others.
270 bool "NUMA emulation support"
274 Enable NUMA emulation. A flat machine will be split
275 into virtual nodes when booted with "numa=fake=N", where N is the
276 number of nodes. This is only useful for debugging.
292 # actually 64 maximum, but you need to fix the APIC code first
293 # to use clustered mode or whatever your big iron needs
295 int "Maximum number of CPUs (2-8)"
300 This allows you to specify the maximum number of CPUs which this
301 kernel will support. The maximum supported value is 32 and the
302 minimum value which makes sense is 2.
304 This is purely to save memory - each supported CPU requires
305 memory in the static kernel configuration.
311 Support the K8 IOMMU. Needed to run systems with more than 4GB of memory
312 properly with 32-bit PCI devices that do not support DAC (Double Address
313 Cycle). The IOMMU can be turned off at runtime with the iommu=off parameter.
314 Normally the kernel will take the right choice by itself.
317 # need this always enabled with GART_IOMMU for the VIA workaround
320 depends on GART_IOMMU
325 depends on !GART_IOMMU && !SWIOTLB
328 Don't use IOMMU code. This will cause problems when you have more than 4GB
329 of memory and any 32-bit devices. Don't turn on unless you know what you
333 bool "Machine check support" if EMBEDDED
336 Include a machine check error handler to report hardware errors.
337 This version will require the mcelog utility to decode some
338 machine check error logs. See
339 ftp://ftp.x86-64.org/pub/linux/tools/mcelog
344 # Use the generic interrupt handling code in kernel/irq/:
346 config GENERIC_HARDIRQS
350 config GENERIC_IRQ_PROBE
354 menu "Power management options"
356 source kernel/power/Kconfig
358 source "drivers/acpi/Kconfig"
360 source "arch/x86_64/kernel/cpufreq/Kconfig"
364 menu "Bus options (PCI etc.)"
369 # x86-64 doesn't support PCI BIOS access from long mode so always go direct.
376 bool "Support mmconfig PCI config space access"
381 bool "Unordered IO mapping access"
382 depends on EXPERIMENTAL
384 Use unordered stores to access IO memory mappings in device drivers.
385 Still very experimental. When a driver works on IA64/ppc64/pa-risc it should
386 work with this option, but it makes the drivers behave differently
387 from i386. Requires that the driver writer used memory barriers
390 source "drivers/pci/Kconfig"
392 source "drivers/pcmcia/Kconfig"
394 source "drivers/pci/hotplug/Kconfig"
399 menu "Executable file formats / Emulations"
401 source "fs/Kconfig.binfmt"
403 config IA32_EMULATION
404 bool "IA32 Emulation"
406 Include code to run 32-bit programs under a 64-bit kernel. You should likely
407 turn this on, unless you're 100% sure that you don't have any 32-bit programs
411 bool "IA32 a.out support"
412 depends on IA32_EMULATION
414 Support old a.out binaries in the 32bit emulation.
418 depends on IA32_EMULATION
421 config SYSVIPC_COMPAT
423 depends on COMPAT && SYSVIPC
428 depends on IA32_EMULATION
433 source drivers/Kconfig
435 source "drivers/firmware/Kconfig"
439 source "arch/x86_64/oprofile/Kconfig"
441 source "arch/x86_64/Kconfig.debug"
443 source "kernel/vserver/Kconfig"
445 source "security/Kconfig"
447 source "crypto/Kconfig"