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