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