Merge branch 'for-linus' of git://one.firstfloor.org/home/andi/git/linux-2.6
[linux-2.6] / arch / ia64 / Kconfig
1 #
2 # For a description of the syntax of this configuration file,
3 # see Documentation/kbuild/kconfig-language.txt.
4 #
5
6 mainmenu "IA-64 Linux Kernel Configuration"
7
8 source "init/Kconfig"
9
10 menu "Processor type and features"
11
12 config IA64
13         bool
14         select PCI if (!IA64_HP_SIM)
15         select ACPI if (!IA64_HP_SIM)
16         default y
17         help
18           The Itanium Processor Family is Intel's 64-bit successor to
19           the 32-bit X86 line.  The IA-64 Linux project has a home
20           page at <http://www.linuxia64.org/> and a mailing list at
21           <linux-ia64@vger.kernel.org>.
22
23 config 64BIT
24         bool
25         default y
26
27 config ZONE_DMA
28         def_bool y
29         depends on !IA64_SGI_SN2
30
31 config MMU
32         bool
33         default y
34
35 config SWIOTLB
36        bool
37
38 config RWSEM_XCHGADD_ALGORITHM
39         bool
40         default y
41
42 config ARCH_HAS_ILOG2_U32
43         bool
44         default n
45
46 config ARCH_HAS_ILOG2_U64
47         bool
48         default n
49
50 config GENERIC_FIND_NEXT_BIT
51         bool
52         default y
53
54 config GENERIC_CALIBRATE_DELAY
55         bool
56         default y
57
58 config TIME_INTERPOLATION
59         bool
60         default y
61
62 config DMI
63         bool
64         default y
65
66 config EFI
67         bool
68         default y
69
70 config GENERIC_IOMAP
71         bool
72         default y
73
74 config SCHED_NO_NO_OMIT_FRAME_POINTER
75         bool
76         default y
77
78 config IA64_UNCACHED_ALLOCATOR
79         bool
80         select GENERIC_ALLOCATOR
81
82 config AUDIT_ARCH
83         bool
84         default y
85
86 choice
87         prompt "System type"
88         default IA64_GENERIC
89
90 config IA64_GENERIC
91         bool "generic"
92         select NUMA
93         select ACPI_NUMA
94         select SWIOTLB
95         help
96           This selects the system type of your hardware.  A "generic" kernel
97           will run on any supported IA-64 system.  However, if you configure
98           a kernel for your specific system, it will be faster and smaller.
99
100           generic               For any supported IA-64 system
101           DIG-compliant         For DIG ("Developer's Interface Guide") compliant systems
102           HP-zx1/sx1000         For HP systems
103           HP-zx1/sx1000+swiotlb For HP systems with (broken) DMA-constrained devices.
104           SGI-SN2               For SGI Altix systems
105           Ski-simulator         For the HP simulator <http://www.hpl.hp.com/research/linux/ski/>
106
107           If you don't know what to do, choose "generic".
108
109 config IA64_DIG
110         bool "DIG-compliant"
111         select SWIOTLB
112
113 config IA64_HP_ZX1
114         bool "HP-zx1/sx1000"
115         help
116           Build a kernel that runs on HP zx1 and sx1000 systems.  This adds
117           support for the HP I/O MMU.
118
119 config IA64_HP_ZX1_SWIOTLB
120         bool "HP-zx1/sx1000 with software I/O TLB"
121         select SWIOTLB
122         help
123           Build a kernel that runs on HP zx1 and sx1000 systems even when they
124           have broken PCI devices which cannot DMA to full 32 bits.  Apart
125           from support for the HP I/O MMU, this includes support for the software
126           I/O TLB, which allows supporting the broken devices at the expense of
127           wasting some kernel memory (about 2MB by default).
128
129 config IA64_SGI_SN2
130         bool "SGI-SN2"
131         help
132           Selecting this option will optimize the kernel for use on sn2 based
133           systems, but the resulting kernel binary will not run on other
134           types of ia64 systems.  If you have an SGI Altix system, it's safe
135           to select this option.  If in doubt, select ia64 generic support
136           instead.
137
138 config IA64_HP_SIM
139         bool "Ski-simulator"
140         select SWIOTLB
141
142 endchoice
143
144 choice
145         prompt "Processor type"
146         default ITANIUM
147
148 config ITANIUM
149         bool "Itanium"
150         help
151           Select your IA-64 processor type.  The default is Itanium.
152           This choice is safe for all IA-64 systems, but may not perform
153           optimally on systems with, say, Itanium 2 or newer processors.
154
155 config MCKINLEY
156         bool "Itanium 2"
157         help
158           Select this to configure for an Itanium 2 (McKinley) processor.
159
160 endchoice
161
162 choice
163         prompt "Kernel page size"
164         default IA64_PAGE_SIZE_16KB
165
166 config IA64_PAGE_SIZE_4KB
167         bool "4KB"
168         help
169           This lets you select the page size of the kernel.  For best IA-64
170           performance, a page size of 8KB or 16KB is recommended.  For best
171           IA-32 compatibility, a page size of 4KB should be selected (the vast
172           majority of IA-32 binaries work perfectly fine with a larger page
173           size).  For Itanium 2 or newer systems, a page size of 64KB can also
174           be selected.
175
176           4KB                For best IA-32 compatibility
177           8KB                For best IA-64 performance
178           16KB               For best IA-64 performance
179           64KB               Requires Itanium 2 or newer processor.
180
181           If you don't know what to do, choose 16KB.
182
183 config IA64_PAGE_SIZE_8KB
184         bool "8KB"
185
186 config IA64_PAGE_SIZE_16KB
187         bool "16KB"
188
189 config IA64_PAGE_SIZE_64KB
190         depends on !ITANIUM
191         bool "64KB"
192
193 endchoice
194
195 choice
196         prompt "Page Table Levels"
197         default PGTABLE_3
198
199 config PGTABLE_3
200         bool "3 Levels"
201
202 config PGTABLE_4
203         depends on !IA64_PAGE_SIZE_64KB
204         bool "4 Levels"
205
206 endchoice
207
208 source kernel/Kconfig.hz
209
210 config IA64_BRL_EMU
211         bool
212         depends on ITANIUM
213         default y
214
215 # align cache-sensitive data to 128 bytes
216 config IA64_L1_CACHE_SHIFT
217         int
218         default "7" if MCKINLEY
219         default "6" if ITANIUM
220
221 config IA64_CYCLONE
222         bool "Cyclone (EXA) Time Source support"
223         help
224           Say Y here to enable support for IBM EXA Cyclone time source.
225           If you're unsure, answer N.
226
227 config IOSAPIC
228         bool
229         depends on !IA64_HP_SIM
230         default y
231
232 config IA64_SGI_SN_XP
233         tristate "Support communication between SGI SSIs"
234         depends on IA64_GENERIC || IA64_SGI_SN2
235         select IA64_UNCACHED_ALLOCATOR
236         help
237           An SGI machine can be divided into multiple Single System
238           Images which act independently of each other and have
239           hardware based memory protection from the others.  Enabling
240           this feature will allow for direct communication between SSIs
241           based on a network adapter and DMA messaging.
242
243 config FORCE_MAX_ZONEORDER
244         int "MAX_ORDER (11 - 17)"  if !HUGETLB_PAGE
245         range 11 17  if !HUGETLB_PAGE
246         default "17" if HUGETLB_PAGE
247         default "11"
248
249 config SMP
250         bool "Symmetric multi-processing support"
251         help
252           This enables support for systems with more than one CPU. If you have
253           a system with only one CPU, say N.  If you have a system with more
254           than one CPU, say Y.
255
256           If you say N here, the kernel will run on single and multiprocessor
257           systems, but will use only one CPU of a multiprocessor system.  If
258           you say Y here, the kernel will run on many, but not all,
259           single processor systems.  On a single processor system, the kernel
260           will run faster if you say N here.
261
262           See also the <file:Documentation/smp.txt> and the SMP-HOWTO
263           available at <http://www.tldp.org/docs.html#howto>.
264
265           If you don't know what to do here, say N.
266
267 config NR_CPUS
268         int "Maximum number of CPUs (2-1024)"
269         range 2 1024
270         depends on SMP
271         default "1024"
272         help
273           You should set this to the number of CPUs in your system, but
274           keep in mind that a kernel compiled for, e.g., 2 CPUs will boot but
275           only use 2 CPUs on a >2 CPU system.  Setting this to a value larger
276           than 64 will cause the use of a CPU mask array, causing a small
277           performance hit.
278
279 config HOTPLUG_CPU
280         bool "Support for hot-pluggable CPUs (EXPERIMENTAL)"
281         depends on SMP && EXPERIMENTAL
282         select HOTPLUG
283         default n
284         ---help---
285           Say Y here to experiment with turning CPUs off and on.  CPUs
286           can be controlled through /sys/devices/system/cpu/cpu#.
287           Say N if you want to disable CPU hotplug.
288
289 config ARCH_ENABLE_MEMORY_HOTPLUG
290         def_bool y
291
292 config SCHED_SMT
293         bool "SMT scheduler support"
294         depends on SMP
295         help
296           Improves the CPU scheduler's decision making when dealing with
297           Intel IA64 chips with MultiThreading at a cost of slightly increased
298           overhead in some places. If unsure say N here.
299
300 config PERMIT_BSP_REMOVE
301         bool "Support removal of Bootstrap Processor"
302         depends on HOTPLUG_CPU
303         default n
304         ---help---
305         Say Y here if your platform SAL will support removal of BSP with HOTPLUG_CPU
306         support. 
307
308 config FORCE_CPEI_RETARGET
309         bool "Force assumption that CPEI can be re-targetted"
310         depends on PERMIT_BSP_REMOVE
311         default n
312         ---help---
313         Say Y if you need to force the assumption that CPEI can be re-targetted to
314         any cpu in the system. This hint is available via ACPI 3.0 specifications.
315         Tiger4 systems are capable of re-directing CPEI to any CPU other than BSP.
316         This option it useful to enable this feature on older BIOS's as well.
317         You can also enable this by using boot command line option force_cpei=1.
318
319 config PREEMPT
320         bool "Preemptible Kernel"
321         help
322           This option reduces the latency of the kernel when reacting to
323           real-time or interactive events by allowing a low priority process to
324           be preempted even if it is in kernel mode executing a system call.
325           This allows applications to run more reliably even when the system is
326           under load.
327
328           Say Y here if you are building a kernel for a desktop, embedded
329           or real-time system.  Say N if you are unsure.
330
331 source "mm/Kconfig"
332
333 config ARCH_SELECT_MEMORY_MODEL
334         def_bool y
335
336 config ARCH_DISCONTIGMEM_ENABLE
337         def_bool y
338         help
339           Say Y to support efficient handling of discontiguous physical memory,
340           for architectures which are either NUMA (Non-Uniform Memory Access)
341           or have huge holes in the physical address space for other reasons.
342           See <file:Documentation/vm/numa> for more.
343
344 config ARCH_FLATMEM_ENABLE
345         def_bool y
346
347 config ARCH_SPARSEMEM_ENABLE
348         def_bool y
349         depends on ARCH_DISCONTIGMEM_ENABLE
350
351 config ARCH_DISCONTIGMEM_DEFAULT
352         def_bool y if (IA64_SGI_SN2 || IA64_GENERIC || IA64_HP_ZX1 || IA64_HP_ZX1_SWIOTLB)
353         depends on ARCH_DISCONTIGMEM_ENABLE
354
355 config NUMA
356         bool "NUMA support"
357         depends on !IA64_HP_SIM && !FLATMEM
358         default y if IA64_SGI_SN2
359         select ACPI_NUMA if ACPI
360         help
361           Say Y to compile the kernel to support NUMA (Non-Uniform Memory
362           Access).  This option is for configuring high-end multiprocessor
363           server systems.  If in doubt, say N.
364
365 config NODES_SHIFT
366         int "Max num nodes shift(3-10)"
367         range 3 10
368         default "10"
369         depends on NEED_MULTIPLE_NODES
370         help
371           This option specifies the maximum number of nodes in your SSI system.
372           MAX_NUMNODES will be 2^(This value).
373           If in doubt, use the default.
374
375 config ARCH_POPULATES_NODE_MAP
376         def_bool y
377
378 # VIRTUAL_MEM_MAP and FLAT_NODE_MEM_MAP are functionally equivalent.
379 # VIRTUAL_MEM_MAP has been retained for historical reasons.
380 config VIRTUAL_MEM_MAP
381         bool "Virtual mem map"
382         depends on !SPARSEMEM
383         default y if !IA64_HP_SIM
384         help
385           Say Y to compile the kernel with support for a virtual mem map.
386           This code also only takes effect if a memory hole of greater than
387           1 Gb is found during boot.  You must turn this option on if you
388           require the DISCONTIGMEM option for your machine. If you are
389           unsure, say Y.
390
391 config HOLES_IN_ZONE
392         bool
393         default y if VIRTUAL_MEM_MAP
394
395 config HAVE_ARCH_EARLY_PFN_TO_NID
396         def_bool y
397         depends on NEED_MULTIPLE_NODES
398
399 config HAVE_ARCH_NODEDATA_EXTENSION
400         def_bool y
401         depends on NUMA
402
403 config IA32_SUPPORT
404         bool "Support for Linux/x86 binaries"
405         help
406           IA-64 processors can execute IA-32 (X86) instructions.  By
407           saying Y here, the kernel will include IA-32 system call
408           emulation support which makes it possible to transparently
409           run IA-32 Linux binaries on an IA-64 Linux system.
410           If in doubt, say Y.
411
412 config COMPAT
413         bool
414         depends on IA32_SUPPORT
415         default y
416
417 config IA64_MCA_RECOVERY
418         tristate "MCA recovery from errors other than TLB."
419
420 config PERFMON
421         bool "Performance monitor support"
422         help
423           Selects whether support for the IA-64 performance monitor hardware
424           is included in the kernel.  This makes some kernel data-structures a
425           little bigger and slows down execution a bit, but it is generally
426           a good idea to turn this on.  If you're unsure, say Y.
427
428 config IA64_PALINFO
429         tristate "/proc/pal support"
430         help
431           If you say Y here, you are able to get PAL (Processor Abstraction
432           Layer) information in /proc/pal.  This contains useful information
433           about the processors in your systems, such as cache and TLB sizes
434           and the PAL firmware version in use.
435
436           To use this option, you have to ensure that the "/proc file system
437           support" (CONFIG_PROC_FS) is enabled, too.
438
439 config SGI_SN
440         def_bool y if (IA64_SGI_SN2 || IA64_GENERIC)
441
442 config IA64_ESI
443         bool "ESI (Extensible SAL Interface) support"
444         help
445           If you say Y here, support is built into the kernel to
446           make ESI calls.  ESI calls are used to support vendor-specific
447           firmware extensions, such as the ability to inject memory-errors
448           for test-purposes.  If you're unsure, say N.
449
450 source "drivers/sn/Kconfig"
451
452 config KEXEC
453         bool "kexec system call (EXPERIMENTAL)"
454         depends on EXPERIMENTAL && !IA64_HP_SIM && (!SMP || HOTPLUG_CPU)
455         help
456           kexec is a system call that implements the ability to shutdown your
457           current kernel, and to start another kernel.  It is like a reboot
458           but it is indepedent of the system firmware.   And like a reboot
459           you can start any kernel with it, not just Linux.
460
461           The name comes from the similiarity to the exec system call.
462
463           It is an ongoing process to be certain the hardware in a machine
464           is properly shutdown, so do not be surprised if this code does not
465           initially work for you.  It may help to enable device hotplugging
466           support.  As of this writing the exact hardware interface is
467           strongly in flux, so no good recommendation can be made.
468
469 config CRASH_DUMP
470           bool "kernel crash dumps (EXPERIMENTAL)"
471           depends on EXPERIMENTAL && IA64_MCA_RECOVERY && !IA64_HP_SIM && (!SMP || HOTPLUG_CPU)
472           help
473             Generate crash dump after being started by kexec.
474
475 source "drivers/firmware/Kconfig"
476
477 source "fs/Kconfig.binfmt"
478
479 endmenu
480
481 menu "Power management and ACPI"
482
483 source "kernel/power/Kconfig"
484
485 source "drivers/acpi/Kconfig"
486
487 if PM
488
489 source "arch/ia64/kernel/cpufreq/Kconfig"
490
491 endif
492
493 endmenu
494
495 if !IA64_HP_SIM
496
497 menu "Bus options (PCI, PCMCIA)"
498
499 config PCI
500         bool "PCI support"
501         help
502           Real IA-64 machines all have PCI/PCI-X/PCI Express busses.  Say Y
503           here unless you are using a simulator without PCI support.
504
505 config PCI_DOMAINS
506         bool
507         default PCI
508
509 source "drivers/pci/pcie/Kconfig"
510
511 source "drivers/pci/Kconfig"
512
513 source "drivers/pci/hotplug/Kconfig"
514
515 source "drivers/pcmcia/Kconfig"
516
517 endmenu
518
519 endif
520
521 source "net/Kconfig"
522
523 source "drivers/Kconfig"
524
525 config MSPEC
526         tristate "Memory special operations driver"
527         depends on IA64
528         select IA64_UNCACHED_ALLOCATOR
529         help
530           If you have an ia64 and you want to enable memory special
531           operations support (formerly known as fetchop), say Y here,
532           otherwise say N.
533
534 source "fs/Kconfig"
535
536 source "lib/Kconfig"
537
538 #
539 # Use the generic interrupt handling code in kernel/irq/:
540 #
541 config GENERIC_HARDIRQS
542         bool
543         default y
544
545 config GENERIC_IRQ_PROBE
546         bool
547         default y
548
549 config GENERIC_PENDING_IRQ
550         bool
551         depends on GENERIC_HARDIRQS && SMP
552         default y
553
554 config IRQ_PER_CPU
555         bool
556         default y
557
558 source "arch/ia64/hp/sim/Kconfig"
559
560 menu "Instrumentation Support"
561         depends on EXPERIMENTAL
562
563 source "arch/ia64/oprofile/Kconfig"
564
565 config KPROBES
566         bool "Kprobes (EXPERIMENTAL)"
567         depends on KALLSYMS && EXPERIMENTAL && MODULES
568         help
569           Kprobes allows you to trap at almost any kernel address and
570           execute a callback function.  register_kprobe() establishes
571           a probepoint and specifies the callback.  Kprobes is useful
572           for kernel debugging, non-intrusive instrumentation and testing.
573           If in doubt, say "N".
574 endmenu
575
576 source "arch/ia64/Kconfig.debug"
577
578 source "security/Kconfig"
579
580 source "crypto/Kconfig"