ed25d66c8d50b2951eb3e1610a24f735c3e73957
[linux-2.6.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 RWSEM_XCHGADD_ALGORITHM
30         bool
31         default y
32
33 config GENERIC_CALIBRATE_DELAY
34         bool
35         default y
36
37 config TIME_INTERPOLATION
38         bool
39         default y
40
41 config EFI
42         bool
43         default y
44
45 config GENERIC_IOMAP
46         bool
47         default y
48
49 config SCHED_NO_NO_OMIT_FRAME_POINTER
50         bool
51         default y
52
53 config IA64_UNCACHED_ALLOCATOR
54         bool
55         select GENERIC_ALLOCATOR
56
57 choice
58         prompt "System type"
59         default IA64_GENERIC
60
61 config IA64_GENERIC
62         bool "generic"
63         select ACPI
64         select NUMA
65         select ACPI_NUMA
66         select VIRTUAL_MEM_MAP
67         select DISCONTIGMEM
68         help
69           This selects the system type of your hardware.  A "generic" kernel
70           will run on any supported IA-64 system.  However, if you configure
71           a kernel for your specific system, it will be faster and smaller.
72
73           generic               For any supported IA-64 system
74           DIG-compliant         For DIG ("Developer's Interface Guide") compliant systems
75           HP-zx1/sx1000         For HP systems
76           HP-zx1/sx1000+swiotlb For HP systems with (broken) DMA-constrained devices.
77           SGI-SN2               For SGI Altix systems
78           Ski-simulator         For the HP simulator <http://www.hpl.hp.com/research/linux/ski/>
79
80           If you don't know what to do, choose "generic".
81
82 config IA64_DIG
83         bool "DIG-compliant"
84
85 config IA64_HP_ZX1
86         bool "HP-zx1/sx1000"
87         help
88           Build a kernel that runs on HP zx1 and sx1000 systems.  This adds
89           support for the HP I/O MMU.
90
91 config IA64_HP_ZX1_SWIOTLB
92         bool "HP-zx1/sx1000 with software I/O TLB"
93         help
94           Build a kernel that runs on HP zx1 and sx1000 systems even when they
95           have broken PCI devices which cannot DMA to full 32 bits.  Apart
96           from support for the HP I/O MMU, this includes support for the software
97           I/O TLB, which allows supporting the broken devices at the expense of
98           wasting some kernel memory (about 2MB by default).
99
100 config IA64_SGI_SN2
101         bool "SGI-SN2"
102         help
103           Selecting this option will optimize the kernel for use on sn2 based
104           systems, but the resulting kernel binary will not run on other
105           types of ia64 systems.  If you have an SGI Altix system, it's safe
106           to select this option.  If in doubt, select ia64 generic support
107           instead.
108
109 config IA64_HP_SIM
110         bool "Ski-simulator"
111
112 endchoice
113
114 choice
115         prompt "Processor type"
116         default ITANIUM
117
118 config ITANIUM
119         bool "Itanium"
120         help
121           Select your IA-64 processor type.  The default is Itanium.
122           This choice is safe for all IA-64 systems, but may not perform
123           optimally on systems with, say, Itanium 2 or newer processors.
124
125 config MCKINLEY
126         bool "Itanium 2"
127         help
128           Select this to configure for an Itanium 2 (McKinley) processor.
129
130 endchoice
131
132 choice
133         prompt "Kernel page size"
134         default IA64_PAGE_SIZE_16KB
135
136 config IA64_PAGE_SIZE_4KB
137         bool "4KB"
138         help
139           This lets you select the page size of the kernel.  For best IA-64
140           performance, a page size of 8KB or 16KB is recommended.  For best
141           IA-32 compatibility, a page size of 4KB should be selected (the vast
142           majority of IA-32 binaries work perfectly fine with a larger page
143           size).  For Itanium 2 or newer systems, a page size of 64KB can also
144           be selected.
145
146           4KB                For best IA-32 compatibility
147           8KB                For best IA-64 performance
148           16KB               For best IA-64 performance
149           64KB               Requires Itanium 2 or newer processor.
150
151           If you don't know what to do, choose 16KB.
152
153 config IA64_PAGE_SIZE_8KB
154         bool "8KB"
155
156 config IA64_PAGE_SIZE_16KB
157         bool "16KB"
158
159 config IA64_PAGE_SIZE_64KB
160         depends on !ITANIUM
161         bool "64KB"
162
163 endchoice
164
165 source kernel/Kconfig.hz
166
167 config IA64_BRL_EMU
168         bool
169         depends on ITANIUM
170         default y
171
172 # align cache-sensitive data to 128 bytes
173 config IA64_L1_CACHE_SHIFT
174         int
175         default "7" if MCKINLEY
176         default "6" if ITANIUM
177
178 # align cache-sensitive data to 64 bytes
179 config NUMA
180         bool "NUMA support"
181         depends on !IA64_HP_SIM
182         default y if IA64_SGI_SN2
183         select ACPI_NUMA
184         help
185           Say Y to compile the kernel to support NUMA (Non-Uniform Memory
186           Access).  This option is for configuring high-end multiprocessor
187           server systems.  If in doubt, say N.
188
189 config VIRTUAL_MEM_MAP
190         bool "Virtual mem map"
191         default y if !IA64_HP_SIM
192         help
193           Say Y to compile the kernel with support for a virtual mem map.
194           This code also only takes effect if a memory hole of greater than
195           1 Gb is found during boot.  You must turn this option on if you
196           require the DISCONTIGMEM option for your machine. If you are
197           unsure, say Y.
198
199 config HOLES_IN_ZONE
200         bool
201         default y if VIRTUAL_MEM_MAP
202
203 config ARCH_DISCONTIGMEM_ENABLE
204         bool "Discontiguous memory support"
205         depends on (IA64_DIG || IA64_SGI_SN2 || IA64_GENERIC || IA64_HP_ZX1 || IA64_HP_ZX1_SWIOTLB) && NUMA && VIRTUAL_MEM_MAP
206         default y if (IA64_SGI_SN2 || IA64_GENERIC) && NUMA
207         help
208           Say Y to support efficient handling of discontiguous physical memory,
209           for architectures which are either NUMA (Non-Uniform Memory Access)
210           or have huge holes in the physical address space for other reasons.
211           See <file:Documentation/vm/numa> for more.
212
213 config IA64_CYCLONE
214         bool "Cyclone (EXA) Time Source support"
215         help
216           Say Y here to enable support for IBM EXA Cyclone time source.
217           If you're unsure, answer N.
218
219 config IOSAPIC
220         bool
221         depends on !IA64_HP_SIM
222         default y
223
224 config IA64_SGI_SN_XP
225         tristate "Support communication between SGI SSIs"
226         select IA64_UNCACHED_ALLOCATOR
227         help
228           An SGI machine can be divided into multiple Single System
229           Images which act independently of each other and have
230           hardware based memory protection from the others.  Enabling
231           this feature will allow for direct communication between SSIs
232           based on a network adapter and DMA messaging.
233
234 config FORCE_MAX_ZONEORDER
235         int
236         default "18"
237
238 config SMP
239         bool "Symmetric multi-processing support"
240         help
241           This enables support for systems with more than one CPU. If you have
242           a system with only one CPU, say N.  If you have a system with more
243           than one CPU, say Y.
244
245           If you say N here, the kernel will run on single and multiprocessor
246           systems, but will use only one CPU of a multiprocessor system.  If
247           you say Y here, the kernel will run on many, but not all,
248           single processor systems.  On a single processor system, the kernel
249           will run faster if you say N here.
250
251           See also the <file:Documentation/smp.txt> and the SMP-HOWTO
252           available at <http://www.tldp.org/docs.html#howto>.
253
254           If you don't know what to do here, say N.
255
256 config NR_CPUS
257         int "Maximum number of CPUs (2-512)"
258         range 2 512
259         depends on SMP
260         default "64"
261         help
262           You should set this to the number of CPUs in your system, but
263           keep in mind that a kernel compiled for, e.g., 2 CPUs will boot but
264           only use 2 CPUs on a >2 CPU system.  Setting this to a value larger
265           than 64 will cause the use of a CPU mask array, causing a small
266           performance hit.
267
268 config HOTPLUG_CPU
269         bool "Support for hot-pluggable CPUs (EXPERIMENTAL)"
270         depends on SMP && EXPERIMENTAL
271         select HOTPLUG
272         default n
273         ---help---
274           Say Y here to experiment with turning CPUs off and on.  CPUs
275           can be controlled through /sys/devices/system/cpu/cpu#.
276           Say N if you want to disable CPU hotplug.
277
278 config SCHED_SMT
279         bool "SMT scheduler support"
280         depends on SMP
281         default off
282         help
283           Improves the CPU scheduler's decision making when dealing with
284           Intel IA64 chips with MultiThreading at a cost of slightly increased
285           overhead in some places. If unsure say N here.
286
287 config PREEMPT
288         bool "Preemptible Kernel"
289         help
290           This option reduces the latency of the kernel when reacting to
291           real-time or interactive events by allowing a low priority process to
292           be preempted even if it is in kernel mode executing a system call.
293           This allows applications to run more reliably even when the system is
294           under load.
295
296           Say Y here if you are building a kernel for a desktop, embedded
297           or real-time system.  Say N if you are unsure.
298
299 source "mm/Kconfig"
300
301 config HAVE_DEC_LOCK
302         bool
303         depends on (SMP || PREEMPT)
304         default y
305
306 config IA32_SUPPORT
307         bool "Support for Linux/x86 binaries"
308         help
309           IA-64 processors can execute IA-32 (X86) instructions.  By
310           saying Y here, the kernel will include IA-32 system call
311           emulation support which makes it possible to transparently
312           run IA-32 Linux binaries on an IA-64 Linux system.
313           If in doubt, say Y.
314
315 config COMPAT
316         bool
317         depends on IA32_SUPPORT
318         default y
319
320 config IA64_MCA_RECOVERY
321         tristate "MCA recovery from errors other than TLB."
322
323 config PERFMON
324         bool "Performance monitor support"
325         help
326           Selects whether support for the IA-64 performance monitor hardware
327           is included in the kernel.  This makes some kernel data-structures a
328           little bigger and slows down execution a bit, but it is generally
329           a good idea to turn this on.  If you're unsure, say Y.
330
331 config IA64_PALINFO
332         tristate "/proc/pal support"
333         help
334           If you say Y here, you are able to get PAL (Processor Abstraction
335           Layer) information in /proc/pal.  This contains useful information
336           about the processors in your systems, such as cache and TLB sizes
337           and the PAL firmware version in use.
338
339           To use this option, you have to ensure that the "/proc file system
340           support" (CONFIG_PROC_FS) is enabled, too.
341
342 source "drivers/firmware/Kconfig"
343
344 source "fs/Kconfig.binfmt"
345
346 endmenu
347
348 menu "Power management and ACPI"
349
350 source "kernel/power/Kconfig"
351
352 source "drivers/acpi/Kconfig"
353
354 if PM
355
356 source "arch/ia64/kernel/cpufreq/Kconfig"
357
358 endif
359
360 endmenu
361
362 if !IA64_HP_SIM
363
364 menu "Bus options (PCI, PCMCIA)"
365
366 config PCI
367         bool "PCI support"
368         help
369           Real IA-64 machines all have PCI/PCI-X/PCI Express busses.  Say Y
370           here unless you are using a simulator without PCI support.
371
372 config PCI_DOMAINS
373         bool
374         default PCI
375
376 source "drivers/pci/Kconfig"
377
378 source "drivers/pci/hotplug/Kconfig"
379
380 source "drivers/pcmcia/Kconfig"
381
382 endmenu
383
384 endif
385
386 source "net/Kconfig"
387
388 source "drivers/Kconfig"
389
390 source "fs/Kconfig"
391
392 source "lib/Kconfig"
393
394 #
395 # Use the generic interrupt handling code in kernel/irq/:
396 #
397 config GENERIC_HARDIRQS
398         bool
399         default y
400
401 config GENERIC_IRQ_PROBE
402         bool
403         default y
404
405 config GENERIC_PENDING_IRQ
406         bool
407         depends on GENERIC_HARDIRQS && SMP
408         default y
409
410 source "arch/ia64/hp/sim/Kconfig"
411
412 source "arch/ia64/oprofile/Kconfig"
413
414 source "arch/ia64/Kconfig.debug"
415
416 source "security/Kconfig"
417
418 source "crypto/Kconfig"