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