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 menu "X86_64 processor configuration"
20 Port to the x86-64 architecture. x86-64 is a 64-bit extension to the
21 classical 32-bit x86 architecture. For details see
22 <http://www.x86-64.org/>.
41 config RWSEM_GENERIC_SPINLOCK
45 config RWSEM_XCHGADD_ALGORITHM
48 config GENERIC_CALIBRATE_DELAY
60 Write kernel log output directly into the VGA buffer or to a serial
63 This is useful for kernel debugging when your machine crashes very
64 early before the console code is initialized. For normal operation
65 it is not recommended because it looks ugly and doesn't cooperate
66 with klogd/syslogd or the X server. You should normally N here,
67 unless you want to debug such a crash.
73 Use the IA-PC HPET (High Precision Event Timer) to manage
74 time in preference to the PIT and RTC, if a HPET is
75 present. The HPET provides a stable time base on SMP
76 systems, unlike the RTC, but it is more expensive to access,
77 as it is off-chip. You can find the HPET spec at
78 <http://www.intel.com/labs/platcomp/hpet/hpetspec.htm>.
82 config HPET_EMULATE_RTC
83 bool "Provide RTC interrupt"
84 depends on HPET_TIMER && RTC=y
86 config GENERIC_ISA_DMA
94 #source "init/Kconfig"
97 menu "Processor type and features"
100 prompt "Processor family"
104 # bool "AMD-Opteron/Athlon64"
106 # Optimize for AMD Opteron/Athlon64/Hammer/K8 CPUs.
111 Optimize for Intel IA32 with 64bit extension CPUs
112 (Prescott/Nocona/Potomac)
115 bool "Generic-x86-64"
122 # Define implied options from the CPU selection here
124 config X86_L1_CACHE_BYTES
126 default "128" if GENERIC_CPU || MPSC
129 config X86_L1_CACHE_SHIFT
131 default "7" if GENERIC_CPU || MPSC
143 tristate "/dev/cpu/microcode - Intel CPU microcode support"
145 If you say Y here the 'File systems' section, you will be
146 able to update the microcode on Intel processors. You will
147 obviously need the actual microcode binary data itself which is
148 not shipped with the Linux kernel.
150 For latest news and information on obtaining all the required
151 ingredients for this driver, check:
152 <http://www.urbanmyth.org/microcode/>.
154 To compile this driver as a module, choose M here: the
155 module will be called microcode.
156 If you use modprobe or kmod you may also want to add the line
157 'alias char-major-10-184 microcode' to your /etc/modules.conf file.
160 tristate "/dev/cpu/*/msr - Model-specific register support"
162 This device gives privileged processes access to the x86
163 Model-Specific Registers (MSRs). It is a character device with
164 major 202 and minors 0 to 31 for /dev/cpu/0/msr to /dev/cpu/31/msr.
165 MSR accesses are directed to a specific CPU on multi-processor
169 tristate "/dev/cpu/*/cpuid - CPU information support"
171 This device gives processes access to the x86 CPUID instruction to
172 be executed on a specific processor. It is a character device
173 with major 203 and minors 0 to 31 for /dev/cpu/0/cpuid to
176 # disable it for opteron optimized builds because it pulls in ACPI_BOOT
179 depends on SMP && !MK8
182 config MATH_EMULATION
195 #config X86_LOCAL_APIC
200 bool "MTRR (Memory Type Range Register) support"
202 On Intel P6 family processors (Pentium Pro, Pentium II and later)
203 the Memory Type Range Registers (MTRRs) may be used to control
204 processor access to memory ranges. This is most useful if you have
205 a video (VGA) card on a PCI or AGP bus. Enabling write-combining
206 allows bus write transfers to be combined into a larger transfer
207 before bursting over the PCI/AGP bus. This can increase performance
208 of image write operations 2.5 times or more. Saying Y here creates a
209 /proc/mtrr file which may be used to manipulate your processor's
210 MTRRs. Typically the X server should use this.
212 This code has a reasonably generic interface so that similar
213 control registers on other processors can be easily supported
216 Saying Y here also fixes a problem with buggy SMP BIOSes which only
217 set the MTRRs for the boot CPU and not for the secondary CPUs. This
218 can lead to all sorts of problems, so it's good to say Y here.
220 Just say Y here, all x86-64 machines support MTRRs.
222 See <file:Documentation/mtrr.txt> for more information.
225 bool "Symmetric multi-processing support"
227 This enables support for systems with more than one CPU. If you have
228 a system with only one CPU, like most personal computers, say N. If
229 you have a system with more than one CPU, say Y.
231 If you say N here, the kernel will run on single and multiprocessor
232 machines, but will use only one CPU of a multiprocessor machine. If
233 you say Y here, the kernel will run on many, but not all,
234 singleprocessor machines. On a singleprocessor machine, the kernel
235 will run faster if you say N here.
237 If you don't know what to do here, say N.
240 bool "Preemptible Kernel"
242 This option reduces the latency of the kernel when reacting to
243 real-time or interactive events by allowing a low priority process to
244 be preempted even if it is in kernel mode executing a system call.
245 This allows applications to run more reliably even when the system is
246 under load. On contrary it may also break your drivers and add
247 priority inheritance problems to your system. Don't select it if
248 you rely on a stable system or have slightly obscure hardware.
249 It's also not very well tested on x86-64 currently.
250 You have been warned.
252 Say Y here if you are feeling brave and building a kernel for a
253 desktop, embedded or real-time system. Say N if you are unsure.
256 bool "SMT (Hyperthreading) scheduler support"
260 SMT scheduler support improves the CPU scheduler's decision making
261 when dealing with Intel Pentium 4 chips with HyperThreading at a
262 cost of slightly increased overhead in some places. If unsure say
266 bool "K8 NUMA support"
270 Enable NUMA (Non Unified Memory Architecture) support for
271 AMD Opteron Multiprocessor systems. The kernel will try to allocate
272 memory used by a CPU on the local memory controller of the CPU
273 and add some more NUMA awareness to the kernel.
274 This code is recommended on all multiprocessor Opteron systems
275 and normally doesn't hurt on others.
278 bool "NUMA emulation support"
282 Enable NUMA emulation. A flat machine will be split
283 into virtual nodes when booted with "numa=fake=N", where N is the
284 number of nodes. This is only useful for debugging.
300 # actually 64 maximum, but you need to fix the APIC code first
301 # to use clustered mode or whatever your big iron needs
303 int "Maximum number of CPUs (2-8)"
308 This allows you to specify the maximum number of CPUs which this
309 kernel will support. The maximum supported value is 32 and the
310 minimum value which makes sense is 2.
312 This is purely to save memory - each supported CPU requires
313 memory in the static kernel configuration.
319 Support the K8 IOMMU. Needed to run systems with more than 4GB of memory
320 properly with 32-bit PCI devices that do not support DAC (Double Address
321 Cycle). The IOMMU can be turned off at runtime with the iommu=off parameter.
322 Normally the kernel will take the right choice by itself.
325 # need this always enabled with GART_IOMMU for the VIA workaround
328 depends on GART_IOMMU
333 depends on !GART_IOMMU && !SWIOTLB
336 Don't use IOMMU code. This will cause problems when you have more than 4GB
337 of memory and any 32-bit devices. Don't turn on unless you know what you
341 bool "Machine check support" if EMBEDDED
344 Include a machine check error handler to report hardware errors.
345 This version will require the mcelog utility to decode some
346 machine check error logs. See
347 ftp://ftp.x86-64.org/pub/linux/tools/mcelog
352 # Use the generic interrupt handling code in kernel/irq/:
354 config GENERIC_HARDIRQS
358 config GENERIC_IRQ_PROBE
362 menu "Power management options"
364 source kernel/power/Kconfig
366 source "drivers/acpi/Kconfig"
368 source "arch/x86_64/kernel/cpufreq/Kconfig"
372 menu "Bus options (PCI etc.)"
377 # x86-64 doesn't support PCI BIOS access from long mode so always go direct.
384 bool "Support mmconfig PCI config space access"
389 bool "Unordered IO mapping access"
390 depends on EXPERIMENTAL
392 Use unordered stores to access IO memory mappings in device drivers.
393 Still very experimental. When a driver works on IA64/ppc64/pa-risc it should
394 work with this option, but it makes the drivers behave differently
395 from i386. Requires that the driver writer used memory barriers
398 #source "drivers/pci/Kconfig"
400 #source "drivers/pcmcia/Kconfig"
402 #source "drivers/pci/hotplug/Kconfig"
407 menu "Executable file formats / Emulations"
409 # source "fs/Kconfig.binfmt"
411 config IA32_EMULATION
412 bool "IA32 Emulation"
414 Include code to run 32-bit programs under a 64-bit kernel. You should likely
415 turn this on, unless you're 100% sure that you don't have any 32-bit programs
419 bool "IA32 a.out support"
420 depends on IA32_EMULATION
422 Support old a.out binaries in the 32bit emulation.
426 depends on IA32_EMULATION
429 config SYSVIPC_COMPAT
431 depends on COMPAT && SYSVIPC
436 depends on IA32_EMULATION
441 # source drivers/Kconfig
443 # source "drivers/firmware/Kconfig"
447 #source "arch/x86_64/oprofile/Kconfig"
449 #source "arch/x86_64/Kconfig.debug"
451 # source "security/Kconfig"
453 # source "crypto/Kconfig"
455 # source "lib/Kconfig"