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