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