xref: /openbmc/linux/arch/ia64/Kconfig (revision e8e0929d)
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 SWIOTLB
57       bool
58
59config IOMMU_HELPER
60       bool
61
62config GENERIC_LOCKBREAK
63	def_bool n
64
65config RWSEM_XCHGADD_ALGORITHM
66	bool
67	default y
68
69config HUGETLB_PAGE_SIZE_VARIABLE
70	bool
71	depends on HUGETLB_PAGE
72	default y
73
74config GENERIC_FIND_NEXT_BIT
75	bool
76	default y
77
78config GENERIC_CALIBRATE_DELAY
79	bool
80	default y
81
82config GENERIC_TIME
83	bool
84	default y
85
86config GENERIC_TIME_VSYSCALL
87	bool
88	default y
89
90config HAVE_LEGACY_PER_CPU_AREA
91	def_bool 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 IA32_SUPPORT
506	bool "Support for Linux/x86 binaries"
507	help
508	  IA-64 processors can execute IA-32 (X86) instructions.  By
509	  saying Y here, the kernel will include IA-32 system call
510	  emulation support which makes it possible to transparently
511	  run IA-32 Linux binaries on an IA-64 Linux system.
512	  If in doubt, say Y.
513
514config COMPAT
515	bool
516	depends on IA32_SUPPORT
517	default y
518
519config COMPAT_FOR_U64_ALIGNMENT
520	def_bool COMPAT
521
522config IA64_MCA_RECOVERY
523	tristate "MCA recovery from errors other than TLB."
524
525config PERFMON
526	bool "Performance monitor support"
527	help
528	  Selects whether support for the IA-64 performance monitor hardware
529	  is included in the kernel.  This makes some kernel data-structures a
530	  little bigger and slows down execution a bit, but it is generally
531	  a good idea to turn this on.  If you're unsure, say Y.
532
533config IA64_PALINFO
534	tristate "/proc/pal support"
535	help
536	  If you say Y here, you are able to get PAL (Processor Abstraction
537	  Layer) information in /proc/pal.  This contains useful information
538	  about the processors in your systems, such as cache and TLB sizes
539	  and the PAL firmware version in use.
540
541	  To use this option, you have to ensure that the "/proc file system
542	  support" (CONFIG_PROC_FS) is enabled, too.
543
544config IA64_MC_ERR_INJECT
545	tristate "MC error injection support"
546	help
547	  Adds support for MC error injection. If enabled, the kernel
548	  will provide a sysfs interface for user applications to
549	  call MC error injection PAL procedures to inject various errors.
550	  This is a useful tool for MCA testing.
551
552	  If you're unsure, do not select this option.
553
554config SGI_SN
555	def_bool y if (IA64_SGI_SN2 || IA64_GENERIC)
556
557config IA64_ESI
558	bool "ESI (Extensible SAL Interface) support"
559	help
560	  If you say Y here, support is built into the kernel to
561	  make ESI calls.  ESI calls are used to support vendor-specific
562	  firmware extensions, such as the ability to inject memory-errors
563	  for test-purposes.  If you're unsure, say N.
564
565config IA64_HP_AML_NFW
566	bool "Support ACPI AML calls to native firmware"
567	help
568	  This driver installs a global ACPI Operation Region handler for
569	  region 0xA1.  AML methods can use this OpRegion to call arbitrary
570	  native firmware functions.  The driver installs the OpRegion
571	  handler if there is an HPQ5001 device or if the user supplies
572	  the "force" module parameter, e.g., with the "aml_nfw.force"
573	  kernel command line option.
574
575source "drivers/sn/Kconfig"
576
577config KEXEC
578	bool "kexec system call (EXPERIMENTAL)"
579	depends on EXPERIMENTAL && !IA64_HP_SIM && (!SMP || HOTPLUG_CPU)
580	help
581	  kexec is a system call that implements the ability to shutdown your
582	  current kernel, and to start another kernel.  It is like a reboot
583	  but it is independent of the system firmware.   And like a reboot
584	  you can start any kernel with it, not just Linux.
585
586	  The name comes from the similarity to the exec system call.
587
588	  It is an ongoing process to be certain the hardware in a machine
589	  is properly shutdown, so do not be surprised if this code does not
590	  initially work for you.  It may help to enable device hotplugging
591	  support.  As of this writing the exact hardware interface is
592	  strongly in flux, so no good recommendation can be made.
593
594config CRASH_DUMP
595	  bool "kernel crash dumps"
596	  depends on IA64_MCA_RECOVERY && !IA64_HP_SIM && (!SMP || HOTPLUG_CPU)
597	  help
598	    Generate crash dump after being started by kexec.
599
600source "drivers/firmware/Kconfig"
601
602source "fs/Kconfig.binfmt"
603
604endmenu
605
606menu "Power management and ACPI options"
607
608source "kernel/power/Kconfig"
609
610source "drivers/acpi/Kconfig"
611
612if PM
613
614source "arch/ia64/kernel/cpufreq/Kconfig"
615
616endif
617
618endmenu
619
620if !IA64_HP_SIM
621
622menu "Bus options (PCI, PCMCIA)"
623
624config PCI
625	bool "PCI support"
626	help
627	  Real IA-64 machines all have PCI/PCI-X/PCI Express busses.  Say Y
628	  here unless you are using a simulator without PCI support.
629
630config PCI_DOMAINS
631	def_bool PCI
632
633config PCI_SYSCALL
634	def_bool PCI
635
636source "drivers/pci/pcie/Kconfig"
637
638source "drivers/pci/Kconfig"
639
640source "drivers/pci/hotplug/Kconfig"
641
642source "drivers/pcmcia/Kconfig"
643
644config DMAR
645        bool "Support for DMA Remapping Devices (EXPERIMENTAL)"
646        depends on IA64_GENERIC && ACPI && EXPERIMENTAL
647	help
648	  DMA remapping (DMAR) devices support enables independent address
649	  translations for Direct Memory Access (DMA) from devices.
650	  These DMA remapping devices are reported via ACPI tables
651	  and include PCI device scope covered by these DMA
652	  remapping devices.
653
654config DMAR_DEFAULT_ON
655	def_bool y
656	prompt "Enable DMA Remapping Devices by default"
657	depends on DMAR
658	help
659	  Selecting this option will enable a DMAR device at boot time if
660	  one is found. If this option is not selected, DMAR support can
661	  be enabled by passing intel_iommu=on to the kernel. It is
662	  recommended you say N here while the DMAR code remains
663	  experimental.
664
665endmenu
666
667endif
668
669source "net/Kconfig"
670
671source "drivers/Kconfig"
672
673source "arch/ia64/hp/sim/Kconfig"
674
675config MSPEC
676	tristate "Memory special operations driver"
677	depends on IA64
678	select IA64_UNCACHED_ALLOCATOR
679	help
680	  If you have an ia64 and you want to enable memory special
681	  operations support (formerly known as fetchop), say Y here,
682	  otherwise say N.
683
684source "fs/Kconfig"
685
686source "arch/ia64/Kconfig.debug"
687
688source "security/Kconfig"
689
690source "crypto/Kconfig"
691
692source "arch/ia64/kvm/Kconfig"
693
694source "lib/Kconfig"
695
696#
697# Use the generic interrupt handling code in kernel/irq/:
698#
699config GENERIC_HARDIRQS
700	bool
701	default y
702
703config GENERIC_IRQ_PROBE
704	bool
705	default y
706
707config GENERIC_PENDING_IRQ
708	bool
709	depends on GENERIC_HARDIRQS && SMP
710	default y
711
712config IRQ_PER_CPU
713	bool
714	default y
715
716config IOMMU_HELPER
717	def_bool (IA64_HP_ZX1 || IA64_HP_ZX1_SWIOTLB || IA64_GENERIC || SWIOTLB)
718
719config IOMMU_API
720	def_bool (DMAR)
721