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