[PATCH] x86-64: Don't allocate aperture when swiotlb is enabled and no AGP found
[deliverable/linux.git] / arch / x86_64 / Kconfig
CommitLineData
1da177e4
LT
1#
2# For a description of the syntax of this configuration file,
3# see Documentation/kbuild/kconfig-language.txt.
4#
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.
8#
9
10mainmenu "Linux Kernel Configuration"
11
12config X86_64
13 bool
14 default y
15 help
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/>.
19
20config 64BIT
21 def_bool y
22
23config X86
24 bool
25 default y
26
52fdd089
BL
27config SEMAPHORE_SLEEPERS
28 bool
29 default y
30
1da177e4
LT
31config MMU
32 bool
33 default y
34
35config ISA
36 bool
37
38config SBUS
39 bool
40
41config RWSEM_GENERIC_SPINLOCK
42 bool
43 default y
44
45config RWSEM_XCHGADD_ALGORITHM
46 bool
47
48config GENERIC_CALIBRATE_DELAY
49 bool
50 default y
51
52config X86_CMPXCHG
53 bool
54 default y
55
56config EARLY_PRINTK
57 bool
58 default y
59
60config GENERIC_ISA_DMA
61 bool
62 default y
63
64config GENERIC_IOMAP
65 bool
66 default y
67
a08b6b79
Z
68config ARCH_MAY_HAVE_PC_FDC
69 bool
70 default y
71
1da177e4
LT
72source "init/Kconfig"
73
74
75menu "Processor type and features"
76
77choice
78 prompt "Processor family"
79 default MK8
80
81config MK8
82 bool "AMD-Opteron/Athlon64"
83 help
84 Optimize for AMD Opteron/Athlon64/Hammer/K8 CPUs.
85
86config MPSC
87 bool "Intel EM64T"
88 help
89 Optimize for Intel Pentium 4 and Xeon CPUs with Intel
90 Extended Memory 64 Technology(EM64T). For details see
91 <http://www.intel.com/technology/64bitextensions/>.
92
93config GENERIC_CPU
94 bool "Generic-x86-64"
95 help
96 Generic x86-64 CPU.
97
98endchoice
99
100#
101# Define implied options from the CPU selection here
102#
103config X86_L1_CACHE_BYTES
104 int
105 default "128" if GENERIC_CPU || MPSC
106 default "64" if MK8
107
108config X86_L1_CACHE_SHIFT
109 int
110 default "7" if GENERIC_CPU || MPSC
111 default "6" if MK8
112
113config X86_TSC
114 bool
115 default y
116
117config X86_GOOD_APIC
118 bool
119 default y
120
121config MICROCODE
122 tristate "/dev/cpu/microcode - Intel CPU microcode support"
123 ---help---
124 If you say Y here the 'File systems' section, you will be
125 able to update the microcode on Intel processors. You will
126 obviously need the actual microcode binary data itself which is
127 not shipped with the Linux kernel.
128
129 For latest news and information on obtaining all the required
130 ingredients for this driver, check:
131 <http://www.urbanmyth.org/microcode/>.
132
133 To compile this driver as a module, choose M here: the
134 module will be called microcode.
135 If you use modprobe or kmod you may also want to add the line
136 'alias char-major-10-184 microcode' to your /etc/modules.conf file.
137
138config X86_MSR
139 tristate "/dev/cpu/*/msr - Model-specific register support"
140 help
141 This device gives privileged processes access to the x86
142 Model-Specific Registers (MSRs). It is a character device with
143 major 202 and minors 0 to 31 for /dev/cpu/0/msr to /dev/cpu/31/msr.
144 MSR accesses are directed to a specific CPU on multi-processor
145 systems.
146
147config X86_CPUID
148 tristate "/dev/cpu/*/cpuid - CPU information support"
149 help
150 This device gives processes access to the x86 CPUID instruction to
151 be executed on a specific processor. It is a character device
152 with major 203 and minors 0 to 31 for /dev/cpu/0/cpuid to
153 /dev/cpu/31/cpuid.
154
1da177e4
LT
155config X86_HT
156 bool
157 depends on SMP && !MK8
158 default y
159
160config MATH_EMULATION
161 bool
162
163config MCA
164 bool
165
166config EISA
167 bool
168
169config X86_IO_APIC
170 bool
171 default y
172
173config X86_LOCAL_APIC
174 bool
175 default y
176
177config MTRR
178 bool "MTRR (Memory Type Range Register) support"
179 ---help---
180 On Intel P6 family processors (Pentium Pro, Pentium II and later)
181 the Memory Type Range Registers (MTRRs) may be used to control
182 processor access to memory ranges. This is most useful if you have
183 a video (VGA) card on a PCI or AGP bus. Enabling write-combining
184 allows bus write transfers to be combined into a larger transfer
185 before bursting over the PCI/AGP bus. This can increase performance
186 of image write operations 2.5 times or more. Saying Y here creates a
187 /proc/mtrr file which may be used to manipulate your processor's
188 MTRRs. Typically the X server should use this.
189
190 This code has a reasonably generic interface so that similar
191 control registers on other processors can be easily supported
192 as well.
193
194 Saying Y here also fixes a problem with buggy SMP BIOSes which only
195 set the MTRRs for the boot CPU and not for the secondary CPUs. This
196 can lead to all sorts of problems, so it's good to say Y here.
197
198 Just say Y here, all x86-64 machines support MTRRs.
199
200 See <file:Documentation/mtrr.txt> for more information.
201
202config SMP
203 bool "Symmetric multi-processing support"
204 ---help---
205 This enables support for systems with more than one CPU. If you have
206 a system with only one CPU, like most personal computers, say N. If
207 you have a system with more than one CPU, say Y.
208
209 If you say N here, the kernel will run on single and multiprocessor
210 machines, but will use only one CPU of a multiprocessor machine. If
211 you say Y here, the kernel will run on many, but not all,
212 singleprocessor machines. On a singleprocessor machine, the kernel
213 will run faster if you say N here.
214
215 If you don't know what to do here, say N.
216
1da177e4
LT
217config SCHED_SMT
218 bool "SMT (Hyperthreading) scheduler support"
219 depends on SMP
220 default n
221 help
222 SMT scheduler support improves the CPU scheduler's decision making
223 when dealing with Intel Pentium 4 chips with HyperThreading at a
224 cost of slightly increased overhead in some places. If unsure say
225 N here.
226
cc19ca86
IM
227source "kernel/Kconfig.preempt"
228
1da177e4
LT
229config K8_NUMA
230 bool "K8 NUMA support"
231 select NUMA
232 depends on SMP
233 help
234 Enable NUMA (Non Unified Memory Architecture) support for
235 AMD Opteron Multiprocessor systems. The kernel will try to allocate
236 memory used by a CPU on the local memory controller of the CPU
237 and add some more NUMA awareness to the kernel.
238 This code is recommended on all multiprocessor Opteron systems
239 and normally doesn't hurt on others.
240
241config NUMA_EMU
242 bool "NUMA emulation support"
243 select NUMA
244 depends on SMP
245 help
246 Enable NUMA emulation. A flat machine will be split
247 into virtual nodes when booted with "numa=fake=N", where N is the
248 number of nodes. This is only useful for debugging.
249
3f22ab27 250config ARCH_DISCONTIGMEM_ENABLE
1da177e4
LT
251 bool
252 depends on NUMA
253 default y
254
255config NUMA
256 bool
257 default n
258
1035faf1
MT
259config ARCH_DISCONTIGMEM_ENABLE
260 def_bool y
261 depends on NUMA
262
263config ARCH_DISCONTIGMEM_DEFAULT
264 def_bool y
265 depends on NUMA
266
267config ARCH_SPARSEMEM_ENABLE
268 def_bool y
269 depends on NUMA
270
271config ARCH_FLATMEM_ENABLE
272 def_bool y
273 depends on !NUMA
274
3f22ab27
DH
275source "mm/Kconfig"
276
1035faf1
MT
277config HAVE_ARCH_EARLY_PFN_TO_NID
278 def_bool y
279
1da177e4
LT
280config HAVE_DEC_LOCK
281 bool
282 depends on SMP
283 default y
284
285config NR_CPUS
286 int "Maximum number of CPUs (2-256)"
287 range 2 256
288 depends on SMP
289 default "8"
290 help
291 This allows you to specify the maximum number of CPUs which this
292 kernel will support. Current maximum is 256 CPUs due to
293 APIC addressing limits. Less depending on the hardware.
294
295 This is purely to save memory - each supported CPU requires
296 memory in the static kernel configuration.
297
76e4f660
AR
298config HOTPLUG_CPU
299 bool "Support for hot-pluggable CPUs (EXPERIMENTAL)"
300 depends on SMP && HOTPLUG && EXPERIMENTAL
301 help
302 Say Y here to experiment with turning CPUs off and on. CPUs
303 can be controlled through /sys/devices/system/cpu/cpu#.
304 Say N if you want to disable CPU hotplug.
305
306
1da177e4
LT
307config HPET_TIMER
308 bool
309 default y
310 help
311 Use the IA-PC HPET (High Precision Event Timer) to manage
312 time in preference to the PIT and RTC, if a HPET is
313 present. The HPET provides a stable time base on SMP
314 systems, unlike the TSC, but it is more expensive to access,
315 as it is off-chip. You can find the HPET spec at
316 <http://www.intel.com/labs/platcomp/hpet/hpetspec.htm>.
317
312df5f1
AK
318config X86_PM_TIMER
319 bool "PM timer"
9c2be6a0 320 depends on ACPI
312df5f1
AK
321 default y
322 help
323 Support the ACPI PM timer for time keeping. This is slow,
324 but is useful on some chipsets without HPET on systems with more
325 than one CPU. On a single processor or single socket multi core
326 system it is normally not required.
327 When the PM timer is active 64bit vsyscalls are disabled
328 and should not be enabled (/proc/sys/kernel/vsyscall64 should
329 not be changed).
330 The kernel selects the PM timer only as a last resort, so it is
331 useful to enable just in case.
332
1da177e4
LT
333config HPET_EMULATE_RTC
334 bool "Provide RTC interrupt"
335 depends on HPET_TIMER && RTC=y
336
337config GART_IOMMU
338 bool "IOMMU support"
a54649b8 339 default y
1da177e4
LT
340 depends on PCI
341 help
a54649b8 342 Support the IOMMU. Needed to run systems with more than 3GB of memory
1da177e4
LT
343 properly with 32-bit PCI devices that do not support DAC (Double Address
344 Cycle). The IOMMU can be turned off at runtime with the iommu=off parameter.
345 Normally the kernel will take the right choice by itself.
a54649b8
AK
346 This option includes a driver for the AMD Opteron/Athlon64 IOMMU
347 and a software emulation used on some other systems.
1da177e4
LT
348 If unsure, say Y.
349
350# need this always enabled with GART_IOMMU for the VIA workaround
351config SWIOTLB
352 bool
353 depends on GART_IOMMU
354 default y
355
356config DUMMY_IOMMU
357 bool
358 depends on !GART_IOMMU && !SWIOTLB
359 default y
360 help
361 Don't use IOMMU code. This will cause problems when you have more than 4GB
362 of memory and any 32-bit devices. Don't turn on unless you know what you
363 are doing.
364
365config X86_MCE
366 bool "Machine check support" if EMBEDDED
367 default y
368 help
369 Include a machine check error handler to report hardware errors.
370 This version will require the mcelog utility to decode some
371 machine check error logs. See
372 ftp://ftp.x86-64.org/pub/linux/tools/mcelog
373
374config X86_MCE_INTEL
375 bool "Intel MCE features"
376 depends on X86_MCE && X86_LOCAL_APIC
377 default y
378 help
379 Additional support for intel specific MCE features such as
380 the thermal monitor.
381
d0537508
EB
382config PHYSICAL_START
383 hex "Physical address where the kernel is loaded" if EMBEDDED
384 default "0x100000"
385 help
386 This gives the physical address where the kernel is loaded.
387 Primarily used in the case of kexec on panic where the
388 fail safe kernel needs to run at a different address than
389 the panic-ed kernel.
390
391 Don't change this unless you know what you are doing.
392
5234f5eb
EB
393config KEXEC
394 bool "kexec system call (EXPERIMENTAL)"
395 depends on EXPERIMENTAL
396 help
397 kexec is a system call that implements the ability to shutdown your
398 current kernel, and to start another kernel. It is like a reboot
399 but it is indepedent of the system firmware. And like a reboot
400 you can start any kernel with it, not just Linux.
401
402 The name comes from the similiarity to the exec system call.
403
404 It is an ongoing process to be certain the hardware in a machine
405 is properly shutdown, so do not be surprised if this code does not
406 initially work for you. It may help to enable device hotplugging
407 support. As of this writing the exact hardware interface is
408 strongly in flux, so no good recommendation can be made.
409
1da177e4
LT
410config SECCOMP
411 bool "Enable seccomp to safely compute untrusted bytecode"
412 depends on PROC_FS
413 default y
414 help
415 This kernel feature is useful for number crunching applications
416 that may need to compute untrusted bytecode during their
417 execution. By using pipes or other transports made available to
418 the process as file descriptors supporting the read/write
419 syscalls, it's possible to isolate those applications in
420 their own address space using seccomp. Once seccomp is
421 enabled via /proc/<pid>/seccomp, it cannot be disabled
422 and the task is only allowed to execute a few safe syscalls
423 defined by each seccomp mode.
424
425 If unsure, say Y. Only embedded should say N here.
426
59121003
CL
427source kernel/Kconfig.hz
428
1da177e4
LT
429endmenu
430
431#
432# Use the generic interrupt handling code in kernel/irq/:
433#
434config GENERIC_HARDIRQS
435 bool
436 default y
437
438config GENERIC_IRQ_PROBE
439 bool
440 default y
441
5cae841b
AV
442# we have no ISA slots, but we do have ISA-style DMA.
443config ISA_DMA_API
444 bool
445 default y
446
54d5d424
AR
447config GENERIC_PENDING_IRQ
448 bool
449 depends on GENERIC_HARDIRQS && SMP
450 default y
451
1da177e4
LT
452menu "Power management options"
453
454source kernel/power/Kconfig
455
456source "drivers/acpi/Kconfig"
457
458source "arch/x86_64/kernel/cpufreq/Kconfig"
459
460endmenu
461
462menu "Bus options (PCI etc.)"
463
464config PCI
465 bool "PCI support"
466
467# x86-64 doesn't support PCI BIOS access from long mode so always go direct.
468config PCI_DIRECT
469 bool
470 depends on PCI
471 default y
472
473config PCI_MMCONFIG
474 bool "Support mmconfig PCI config space access"
8aadff7d 475 depends on PCI && ACPI
1da177e4
LT
476
477config UNORDERED_IO
478 bool "Unordered IO mapping access"
479 depends on EXPERIMENTAL
480 help
481 Use unordered stores to access IO memory mappings in device drivers.
482 Still very experimental. When a driver works on IA64/ppc64/pa-risc it should
483 work with this option, but it makes the drivers behave differently
484 from i386. Requires that the driver writer used memory barriers
485 properly.
486
487source "drivers/pci/pcie/Kconfig"
488
489source "drivers/pci/Kconfig"
490
491source "drivers/pcmcia/Kconfig"
492
493source "drivers/pci/hotplug/Kconfig"
494
495endmenu
496
497
498menu "Executable file formats / Emulations"
499
500source "fs/Kconfig.binfmt"
501
502config IA32_EMULATION
503 bool "IA32 Emulation"
504 help
505 Include code to run 32-bit programs under a 64-bit kernel. You should likely
506 turn this on, unless you're 100% sure that you don't have any 32-bit programs
507 left.
508
509config IA32_AOUT
510 bool "IA32 a.out support"
511 depends on IA32_EMULATION
512 help
513 Support old a.out binaries in the 32bit emulation.
514
515config COMPAT
516 bool
517 depends on IA32_EMULATION
518 default y
519
520config SYSVIPC_COMPAT
521 bool
522 depends on COMPAT && SYSVIPC
523 default y
524
525config UID16
526 bool
527 depends on IA32_EMULATION
528 default y
529
530endmenu
531
d5950b43
SR
532source "net/Kconfig"
533
1da177e4
LT
534source drivers/Kconfig
535
536source "drivers/firmware/Kconfig"
537
538source fs/Kconfig
539
540source "arch/x86_64/oprofile/Kconfig"
541
542source "arch/x86_64/Kconfig.debug"
543
544source "security/Kconfig"
545
546source "crypto/Kconfig"
547
548source "lib/Kconfig"
This page took 0.088719 seconds and 5 git commands to generate.