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