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