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