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