]> err.no Git - linux-2.6/blob - arch/x86_64/Kconfig
Merge master.kernel.org:/pub/scm/linux/kernel/git/gregkh/i2c-2.6
[linux-2.6] / arch / x86_64 / Kconfig
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
10 mainmenu "Linux Kernel Configuration"
11
12 config 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
20 config 64BIT
21         def_bool y
22
23 config X86
24         bool
25         default y
26
27 config ZONE_DMA32
28         bool
29         default y
30
31 config LOCKDEP_SUPPORT
32         bool
33         default y
34
35 config STACKTRACE_SUPPORT
36         bool
37         default y
38
39 config SEMAPHORE_SLEEPERS
40         bool
41         default y
42
43 config MMU
44         bool
45         default y
46
47 config ISA
48         bool
49
50 config SBUS
51         bool
52
53 config RWSEM_GENERIC_SPINLOCK
54         bool
55         default y
56
57 config RWSEM_XCHGADD_ALGORITHM
58         bool
59
60 config GENERIC_HWEIGHT
61         bool
62         default y
63
64 config GENERIC_CALIBRATE_DELAY
65         bool
66         default y
67
68 config X86_CMPXCHG
69         bool
70         default y
71
72 config EARLY_PRINTK
73         bool
74         default y
75
76 config GENERIC_ISA_DMA
77         bool
78         default y
79
80 config GENERIC_IOMAP
81         bool
82         default y
83
84 config ARCH_MAY_HAVE_PC_FDC
85         bool
86         default y
87
88 config DMI
89         bool
90         default y
91
92 config AUDIT_ARCH
93         bool
94         default y
95
96 source "init/Kconfig"
97
98
99 menu "Processor type and features"
100
101 choice
102         prompt "Subarchitecture Type"
103         default X86_PC
104
105 config X86_PC
106         bool "PC-compatible"
107         help
108           Choose this option if your computer is a standard PC or compatible.
109
110 config X86_VSMP
111         bool "Support for ScaleMP vSMP"
112         depends on PCI
113          help
114           Support for ScaleMP vSMP systems.  Say 'Y' here if this kernel is
115           supposed to run on these EM64T-based machines.  Only choose this option
116           if you have one of these machines.
117
118 endchoice
119
120 choice
121         prompt "Processor family"
122         default MK8
123
124 config MK8
125         bool "AMD-Opteron/Athlon64"
126         help
127           Optimize for AMD Opteron/Athlon64/Hammer/K8 CPUs.
128
129 config MPSC
130        bool "Intel EM64T"
131        help
132           Optimize for Intel Pentium 4 and Xeon CPUs with Intel
133           Extended Memory 64 Technology(EM64T). For details see
134           <http://www.intel.com/technology/64bitextensions/>.
135
136 config GENERIC_CPU
137         bool "Generic-x86-64"
138         help
139           Generic x86-64 CPU.
140
141 endchoice
142
143 #
144 # Define implied options from the CPU selection here
145 #
146 config X86_L1_CACHE_BYTES
147         int
148         default "128" if GENERIC_CPU || MPSC
149         default "64" if MK8
150
151 config X86_L1_CACHE_SHIFT
152         int
153         default "7" if GENERIC_CPU || MPSC
154         default "6" if MK8
155
156 config X86_INTERNODE_CACHE_BYTES
157         int
158         default "4096" if X86_VSMP
159         default X86_L1_CACHE_BYTES if !X86_VSMP
160
161 config X86_TSC
162         bool
163         default y
164
165 config X86_GOOD_APIC
166         bool
167         default y
168
169 config MICROCODE
170         tristate "/dev/cpu/microcode - Intel CPU microcode support"
171         ---help---
172           If you say Y here the 'File systems' section, you will be
173           able to update the microcode on Intel processors. You will
174           obviously need the actual microcode binary data itself which is
175           not shipped with the Linux kernel.
176
177           For latest news and information on obtaining all the required
178           ingredients for this driver, check:
179           <http://www.urbanmyth.org/microcode/>.
180
181           To compile this driver as a module, choose M here: the
182           module will be called microcode.
183           If you use modprobe or kmod you may also want to add the line
184           'alias char-major-10-184 microcode' to your /etc/modules.conf file.
185
186 config X86_MSR
187         tristate "/dev/cpu/*/msr - Model-specific register support"
188         help
189           This device gives privileged processes access to the x86
190           Model-Specific Registers (MSRs).  It is a character device with
191           major 202 and minors 0 to 31 for /dev/cpu/0/msr to /dev/cpu/31/msr.
192           MSR accesses are directed to a specific CPU on multi-processor
193           systems.
194
195 config X86_CPUID
196         tristate "/dev/cpu/*/cpuid - CPU information support"
197         help
198           This device gives processes access to the x86 CPUID instruction to
199           be executed on a specific processor.  It is a character device
200           with major 203 and minors 0 to 31 for /dev/cpu/0/cpuid to
201           /dev/cpu/31/cpuid.
202
203 config X86_HT
204         bool
205         depends on SMP && !MK8
206         default y
207
208 config MATH_EMULATION
209         bool
210
211 config MCA
212         bool
213
214 config EISA
215         bool
216
217 config X86_IO_APIC
218         bool
219         default y
220
221 config X86_LOCAL_APIC
222         bool
223         default y
224
225 config MTRR
226         bool "MTRR (Memory Type Range Register) support"
227         ---help---
228           On Intel P6 family processors (Pentium Pro, Pentium II and later)
229           the Memory Type Range Registers (MTRRs) may be used to control
230           processor access to memory ranges. This is most useful if you have
231           a video (VGA) card on a PCI or AGP bus. Enabling write-combining
232           allows bus write transfers to be combined into a larger transfer
233           before bursting over the PCI/AGP bus. This can increase performance
234           of image write operations 2.5 times or more. Saying Y here creates a
235           /proc/mtrr file which may be used to manipulate your processor's
236           MTRRs. Typically the X server should use this.
237
238           This code has a reasonably generic interface so that similar
239           control registers on other processors can be easily supported
240           as well.
241
242           Saying Y here also fixes a problem with buggy SMP BIOSes which only
243           set the MTRRs for the boot CPU and not for the secondary CPUs. This
244           can lead to all sorts of problems, so it's good to say Y here.
245
246           Just say Y here, all x86-64 machines support MTRRs.
247
248           See <file:Documentation/mtrr.txt> for more information.
249
250 config SMP
251         bool "Symmetric multi-processing support"
252         ---help---
253           This enables support for systems with more than one CPU. If you have
254           a system with only one CPU, like most personal computers, say N. If
255           you have a system with more than one CPU, say Y.
256
257           If you say N here, the kernel will run on single and multiprocessor
258           machines, but will use only one CPU of a multiprocessor machine. If
259           you say Y here, the kernel will run on many, but not all,
260           singleprocessor machines. On a singleprocessor machine, the kernel
261           will run faster if you say N here.
262
263           If you don't know what to do here, say N.
264
265 config SCHED_SMT
266         bool "SMT (Hyperthreading) scheduler support"
267         depends on SMP
268         default n
269         help
270           SMT scheduler support improves the CPU scheduler's decision making
271           when dealing with Intel Pentium 4 chips with HyperThreading at a
272           cost of slightly increased overhead in some places. If unsure say
273           N here.
274
275 config SCHED_MC
276         bool "Multi-core scheduler support"
277         depends on SMP
278         default y
279         help
280           Multi-core scheduler support improves the CPU scheduler's decision
281           making when dealing with multi-core CPU chips at a cost of slightly
282           increased overhead in some places. If unsure say N here.
283
284 source "kernel/Kconfig.preempt"
285
286 config NUMA
287        bool "Non Uniform Memory Access (NUMA) Support"
288        depends on SMP
289        help
290          Enable NUMA (Non Uniform Memory Access) support. The kernel 
291          will try to allocate memory used by a CPU on the local memory 
292          controller of the CPU and add some more NUMA awareness to the kernel.
293          This code is recommended on all multiprocessor Opteron systems.
294          If the system is EM64T, you should say N unless your system is EM64T 
295          NUMA. 
296
297 config K8_NUMA
298        bool "Old style AMD Opteron NUMA detection"
299        depends on NUMA && PCI
300        default y
301        help
302          Enable K8 NUMA node topology detection.  You should say Y here if
303          you have a multi processor AMD K8 system. This uses an old
304          method to read the NUMA configurtion directly from the builtin
305          Northbridge of Opteron. It is recommended to use X86_64_ACPI_NUMA
306          instead, which also takes priority if both are compiled in.   
307
308 config NODES_SHIFT
309         int
310         default "6"
311         depends on NEED_MULTIPLE_NODES
312
313 # Dummy CONFIG option to select ACPI_NUMA from drivers/acpi/Kconfig.
314
315 config X86_64_ACPI_NUMA
316        bool "ACPI NUMA detection"
317        depends on NUMA
318        select ACPI 
319         select PCI
320        select ACPI_NUMA
321        default y
322        help
323          Enable ACPI SRAT based node topology detection.
324
325 config NUMA_EMU
326         bool "NUMA emulation"
327         depends on NUMA
328         help
329           Enable NUMA emulation. A flat machine will be split
330           into virtual nodes when booted with "numa=fake=N", where N is the
331           number of nodes. This is only useful for debugging.
332
333 config ARCH_DISCONTIGMEM_ENABLE
334        bool
335        depends on NUMA
336        default y
337
338
339 config ARCH_DISCONTIGMEM_ENABLE
340         def_bool y
341         depends on NUMA
342
343 config ARCH_DISCONTIGMEM_DEFAULT
344         def_bool y
345         depends on NUMA
346
347 config ARCH_SPARSEMEM_ENABLE
348         def_bool y
349         depends on (NUMA || EXPERIMENTAL)
350
351 config ARCH_MEMORY_PROBE
352         def_bool y
353         depends on MEMORY_HOTPLUG
354
355 config ARCH_FLATMEM_ENABLE
356         def_bool y
357         depends on !NUMA
358
359 source "mm/Kconfig"
360
361 config HAVE_ARCH_EARLY_PFN_TO_NID
362         def_bool y
363         depends on NUMA
364
365 config OUT_OF_LINE_PFN_TO_PAGE
366         def_bool y
367         depends on DISCONTIGMEM
368
369 config NR_CPUS
370         int "Maximum number of CPUs (2-256)"
371         range 2 255
372         depends on SMP
373         default "8"
374         help
375           This allows you to specify the maximum number of CPUs which this
376           kernel will support. Current maximum is 256 CPUs due to
377           APIC addressing limits. Less depending on the hardware.
378
379           This is purely to save memory - each supported CPU requires
380           memory in the static kernel configuration.
381
382 config HOTPLUG_CPU
383         bool "Support for hot-pluggable CPUs (EXPERIMENTAL)"
384         depends on SMP && HOTPLUG && EXPERIMENTAL
385         help
386                 Say Y here to experiment with turning CPUs off and on.  CPUs
387                 can be controlled through /sys/devices/system/cpu/cpu#.
388                 Say N if you want to disable CPU hotplug.
389
390 config ARCH_ENABLE_MEMORY_HOTPLUG
391         def_bool y
392
393 config HPET_TIMER
394         bool
395         default y
396         help
397           Use the IA-PC HPET (High Precision Event Timer) to manage
398           time in preference to the PIT and RTC, if a HPET is
399           present.  The HPET provides a stable time base on SMP
400           systems, unlike the TSC, but it is more expensive to access,
401           as it is off-chip.  You can find the HPET spec at
402           <http://www.intel.com/hardwaredesign/hpetspec.htm>.
403
404 config HPET_EMULATE_RTC
405         bool "Provide RTC interrupt"
406         depends on HPET_TIMER && RTC=y
407
408 # Mark as embedded because too many people got it wrong.
409 # The code disables itself when not needed.
410 config IOMMU
411         bool "IOMMU support" if EMBEDDED
412         default y
413         select SWIOTLB
414         select AGP
415         depends on PCI
416         help
417           Support for full DMA access of devices with 32bit memory access only
418           on systems with more than 3GB. This is usually needed for USB,
419           sound, many IDE/SATA chipsets and some other devices.
420           Provides a driver for the AMD Athlon64/Opteron/Turion/Sempron GART
421           based IOMMU and a software bounce buffer based IOMMU used on Intel
422           systems and as fallback.
423           The code is only active when needed (enough memory and limited
424           device) unless CONFIG_IOMMU_DEBUG or iommu=force is specified
425           too.
426
427 config CALGARY_IOMMU
428         bool "IBM Calgary IOMMU support"
429         select SWIOTLB
430         depends on PCI && EXPERIMENTAL
431         help
432           Support for hardware IOMMUs in IBM's xSeries x366 and x460
433           systems. Needed to run systems with more than 3GB of memory
434           properly with 32-bit PCI devices that do not support DAC
435           (Double Address Cycle). Calgary also supports bus level
436           isolation, where all DMAs pass through the IOMMU.  This
437           prevents them from going anywhere except their intended
438           destination. This catches hard-to-find kernel bugs and
439           mis-behaving drivers and devices that do not use the DMA-API
440           properly to set up their DMA buffers.  The IOMMU can be
441           turned off at boot time with the iommu=off parameter.
442           Normally the kernel will make the right choice by itself.
443           If unsure, say Y.
444
445 # need this always selected by IOMMU for the VIA workaround
446 config SWIOTLB
447         bool
448
449 config X86_MCE
450         bool "Machine check support" if EMBEDDED
451         default y
452         help
453            Include a machine check error handler to report hardware errors.
454            This version will require the mcelog utility to decode some
455            machine check error logs. See
456            ftp://ftp.x86-64.org/pub/linux/tools/mcelog
457
458 config X86_MCE_INTEL
459         bool "Intel MCE features"
460         depends on X86_MCE && X86_LOCAL_APIC
461         default y
462         help
463            Additional support for intel specific MCE features such as
464            the thermal monitor.
465
466 config X86_MCE_AMD
467         bool "AMD MCE features"
468         depends on X86_MCE && X86_LOCAL_APIC
469         default y
470         help
471            Additional support for AMD specific MCE features such as
472            the DRAM Error Threshold.
473
474 config KEXEC
475         bool "kexec system call"
476         help
477           kexec is a system call that implements the ability to shutdown your
478           current kernel, and to start another kernel.  It is like a reboot
479           but it is independent of the system firmware.   And like a reboot
480           you can start any kernel with it, not just Linux.
481
482           The name comes from the similarity to the exec system call.
483
484           It is an ongoing process to be certain the hardware in a machine
485           is properly shutdown, so do not be surprised if this code does not
486           initially work for you.  It may help to enable device hotplugging
487           support.  As of this writing the exact hardware interface is
488           strongly in flux, so no good recommendation can be made.
489
490 config CRASH_DUMP
491         bool "kernel crash dumps (EXPERIMENTAL)"
492         depends on EXPERIMENTAL
493         help
494           Generate crash dump after being started by kexec.
495           This should be normally only set in special crash dump kernels
496           which are loaded in the main kernel with kexec-tools into
497           a specially reserved region and then later executed after
498           a crash by kdump/kexec. The crash dump kernel must be compiled
499           to a memory address not used by the main kernel or BIOS using
500           PHYSICAL_START.
501           For more details see Documentation/kdump/kdump.txt
502
503 config PHYSICAL_START
504         hex "Physical address where the kernel is loaded" if (EMBEDDED || CRASH_DUMP)
505         default "0x1000000" if CRASH_DUMP
506         default "0x200000"
507         help
508           This gives the physical address where the kernel is loaded. Normally
509           for regular kernels this value is 0x200000 (2MB). But in the case
510           of kexec on panic the fail safe kernel needs to run at a different
511           address than the panic-ed kernel. This option is used to set the load
512           address for kernels used to capture crash dump on being kexec'ed
513           after panic. The default value for crash dump kernels is
514           0x1000000 (16MB). This can also be set based on the "X" value as
515           specified in the "crashkernel=YM@XM" command line boot parameter
516           passed to the panic-ed kernel. Typically this parameter is set as
517           crashkernel=64M@16M. Please take a look at
518           Documentation/kdump/kdump.txt for more details about crash dumps.
519
520           Don't change this unless you know what you are doing.
521
522 config SECCOMP
523         bool "Enable seccomp to safely compute untrusted bytecode"
524         depends on PROC_FS
525         default y
526         help
527           This kernel feature is useful for number crunching applications
528           that may need to compute untrusted bytecode during their
529           execution. By using pipes or other transports made available to
530           the process as file descriptors supporting the read/write
531           syscalls, it's possible to isolate those applications in
532           their own address space using seccomp. Once seccomp is
533           enabled via /proc/<pid>/seccomp, it cannot be disabled
534           and the task is only allowed to execute a few safe syscalls
535           defined by each seccomp mode.
536
537           If unsure, say Y. Only embedded should say N here.
538
539 config CC_STACKPROTECTOR
540         bool "Enable -fstack-protector buffer overflow detection (EXPRIMENTAL)"
541         depends on EXPERIMENTAL
542         help
543          This option turns on the -fstack-protector GCC feature. This
544           feature puts, at the beginning of critical functions, a canary
545           value on the stack just before the return address, and validates
546           the value just before actually returning.  Stack based buffer
547           overflows (that need to overwrite this return address) now also
548           overwrite the canary, which gets detected and the attack is then
549           neutralized via a kernel panic.
550
551           This feature requires gcc version 4.2 or above, or a distribution
552           gcc with the feature backported. Older versions are automatically
553           detected and for those versions, this configuration option is ignored.
554
555 config CC_STACKPROTECTOR_ALL
556         bool "Use stack-protector for all functions"
557         depends on CC_STACKPROTECTOR
558         help
559           Normally, GCC only inserts the canary value protection for
560           functions that use large-ish on-stack buffers. By enabling
561           this option, GCC will be asked to do this for ALL functions.
562
563 source kernel/Kconfig.hz
564
565 config REORDER
566         bool "Function reordering"
567         default n
568         help
569          This option enables the toolchain to reorder functions for a more 
570          optimal TLB usage. If you have pretty much any version of binutils, 
571          this can increase your kernel build time by roughly one minute.
572
573 config K8_NB
574         def_bool y
575         depends on AGP_AMD64 || IOMMU || (PCI && NUMA)
576
577 endmenu
578
579 #
580 # Use the generic interrupt handling code in kernel/irq/:
581 #
582 config GENERIC_HARDIRQS
583         bool
584         default y
585
586 config GENERIC_IRQ_PROBE
587         bool
588         default y
589
590 # we have no ISA slots, but we do have ISA-style DMA.
591 config ISA_DMA_API
592         bool
593         default y
594
595 config GENERIC_PENDING_IRQ
596         bool
597         depends on GENERIC_HARDIRQS && SMP
598         default y
599
600 menu "Power management options"
601
602 source kernel/power/Kconfig
603
604 source "drivers/acpi/Kconfig"
605
606 source "arch/x86_64/kernel/cpufreq/Kconfig"
607
608 endmenu
609
610 menu "Bus options (PCI etc.)"
611
612 config PCI
613         bool "PCI support"
614
615 # x86-64 doesn't support PCI BIOS access from long mode so always go direct.
616 config PCI_DIRECT
617         bool
618         depends on PCI
619         default y
620
621 config PCI_MMCONFIG
622         bool "Support mmconfig PCI config space access"
623         depends on PCI && ACPI
624
625 source "drivers/pci/pcie/Kconfig"
626
627 source "drivers/pci/Kconfig"
628
629 source "drivers/pcmcia/Kconfig"
630
631 source "drivers/pci/hotplug/Kconfig"
632
633 endmenu
634
635
636 menu "Executable file formats / Emulations"
637
638 source "fs/Kconfig.binfmt"
639
640 config IA32_EMULATION
641         bool "IA32 Emulation"
642         help
643           Include code to run 32-bit programs under a 64-bit kernel. You should likely
644           turn this on, unless you're 100% sure that you don't have any 32-bit programs
645           left.
646
647 config IA32_AOUT
648        tristate "IA32 a.out support"
649        depends on IA32_EMULATION
650        help
651          Support old a.out binaries in the 32bit emulation.
652
653 config COMPAT
654         bool
655         depends on IA32_EMULATION
656         default y
657
658 config SYSVIPC_COMPAT
659         bool
660         depends on COMPAT && SYSVIPC
661         default y
662
663 endmenu
664
665 source "net/Kconfig"
666
667 source drivers/Kconfig
668
669 source "drivers/firmware/Kconfig"
670
671 source fs/Kconfig
672
673 menu "Instrumentation Support"
674         depends on EXPERIMENTAL
675
676 source "arch/x86_64/oprofile/Kconfig"
677
678 config KPROBES
679         bool "Kprobes (EXPERIMENTAL)"
680         depends on EXPERIMENTAL && MODULES
681         help
682           Kprobes allows you to trap at almost any kernel address and
683           execute a callback function.  register_kprobe() establishes
684           a probepoint and specifies the callback.  Kprobes is useful
685           for kernel debugging, non-intrusive instrumentation and testing.
686           If in doubt, say "N".
687 endmenu
688
689 source "arch/x86_64/Kconfig.debug"
690
691 source "security/Kconfig"
692
693 source "crypto/Kconfig"
694
695 source "lib/Kconfig"