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