xref: /openbmc/linux/arch/ia64/Kconfig (revision e553d2a5)
1# SPDX-License-Identifier: GPL-2.0
2config PGTABLE_LEVELS
3	int "Page Table Levels" if !IA64_PAGE_SIZE_64KB
4	range 3 4 if !IA64_PAGE_SIZE_64KB
5	default 3
6
7menu "Processor type and features"
8
9config IA64
10	bool
11	select ARCH_MIGHT_HAVE_PC_PARPORT
12	select ARCH_MIGHT_HAVE_PC_SERIO
13	select ACPI
14	select ACPI_NUMA if NUMA
15	select ARCH_SUPPORTS_ACPI
16	select ACPI_SYSTEM_POWER_STATES_SUPPORT if ACPI
17	select ARCH_MIGHT_HAVE_ACPI_PDC if ACPI
18	select FORCE_PCI
19	select PCI_DOMAINS if PCI
20	select PCI_MSI
21	select PCI_SYSCALL if PCI
22	select HAVE_ASM_MODVERSIONS
23	select HAVE_UNSTABLE_SCHED_CLOCK
24	select HAVE_EXIT_THREAD
25	select HAVE_IDE
26	select HAVE_OPROFILE
27	select HAVE_KPROBES
28	select HAVE_KRETPROBES
29	select HAVE_FTRACE_MCOUNT_RECORD
30	select HAVE_DYNAMIC_FTRACE if (!ITANIUM)
31	select HAVE_FUNCTION_TRACER
32	select TTY
33	select HAVE_ARCH_TRACEHOOK
34	select HAVE_MEMBLOCK_NODE_MAP
35	select HAVE_VIRT_CPU_ACCOUNTING
36	select ARCH_HAS_DMA_COHERENT_TO_PFN
37	select ARCH_HAS_SYNC_DMA_FOR_CPU
38	select VIRT_TO_BUS
39	select GENERIC_IRQ_PROBE
40	select GENERIC_PENDING_IRQ if SMP
41	select GENERIC_IRQ_SHOW
42	select GENERIC_IRQ_LEGACY
43	select ARCH_HAVE_NMI_SAFE_CMPXCHG
44	select GENERIC_IOMAP
45	select GENERIC_SMP_IDLE_THREAD
46	select ARCH_TASK_STRUCT_ON_STACK
47	select ARCH_TASK_STRUCT_ALLOCATOR
48	select ARCH_THREAD_STACK_ALLOCATOR
49	select ARCH_CLOCKSOURCE_DATA
50	select GENERIC_TIME_VSYSCALL
51	select SWIOTLB
52	select SYSCTL_ARCH_UNALIGN_NO_WARN
53	select HAVE_MOD_ARCH_SPECIFIC
54	select MODULES_USE_ELF_RELA
55	select ARCH_USE_CMPXCHG_LOCKREF
56	select HAVE_ARCH_AUDITSYSCALL
57	select NEED_DMA_MAP_STATE
58	select NEED_SG_DMA_LENGTH
59	select NUMA if !FLATMEM
60	default y
61	help
62	  The Itanium Processor Family is Intel's 64-bit successor to
63	  the 32-bit X86 line.  The IA-64 Linux project has a home
64	  page at <http://www.linuxia64.org/> and a mailing list at
65	  <linux-ia64@vger.kernel.org>.
66
67config 64BIT
68	bool
69	select ATA_NONSTANDARD if ATA
70	default y
71
72config ZONE_DMA32
73	def_bool y
74
75config QUICKLIST
76	bool
77	default y
78
79config MMU
80	bool
81	default y
82
83config STACKTRACE_SUPPORT
84	def_bool y
85
86config GENERIC_LOCKBREAK
87	def_bool n
88
89config HUGETLB_PAGE_SIZE_VARIABLE
90	bool
91	depends on HUGETLB_PAGE
92	default y
93
94config GENERIC_CALIBRATE_DELAY
95	bool
96	default y
97
98config HAVE_SETUP_PER_CPU_AREA
99	def_bool y
100
101config DMI
102	bool
103	default y
104	select DMI_SCAN_MACHINE_NON_EFI_FALLBACK
105
106config EFI
107	bool
108	select UCS2_STRING
109	default y
110
111config SCHED_OMIT_FRAME_POINTER
112	bool
113	default y
114
115config IA64_UNCACHED_ALLOCATOR
116	bool
117	select GENERIC_ALLOCATOR
118
119config ARCH_USES_PG_UNCACHED
120	def_bool y
121	depends on IA64_UNCACHED_ALLOCATOR
122
123config AUDIT_ARCH
124	bool
125	default y
126
127choice
128	prompt "Processor type"
129	default ITANIUM
130
131config ITANIUM
132	bool "Itanium"
133	help
134	  Select your IA-64 processor type.  The default is Itanium.
135	  This choice is safe for all IA-64 systems, but may not perform
136	  optimally on systems with, say, Itanium 2 or newer processors.
137
138config MCKINLEY
139	bool "Itanium 2"
140	help
141	  Select this to configure for an Itanium 2 (McKinley) processor.
142
143endchoice
144
145choice
146	prompt "Kernel page size"
147	default IA64_PAGE_SIZE_16KB
148
149config IA64_PAGE_SIZE_4KB
150	bool "4KB"
151	help
152	  This lets you select the page size of the kernel.  For best IA-64
153	  performance, a page size of 8KB or 16KB is recommended.  For best
154	  IA-32 compatibility, a page size of 4KB should be selected (the vast
155	  majority of IA-32 binaries work perfectly fine with a larger page
156	  size).  For Itanium 2 or newer systems, a page size of 64KB can also
157	  be selected.
158
159	  4KB                For best IA-32 compatibility
160	  8KB                For best IA-64 performance
161	  16KB               For best IA-64 performance
162	  64KB               Requires Itanium 2 or newer processor.
163
164	  If you don't know what to do, choose 16KB.
165
166config IA64_PAGE_SIZE_8KB
167	bool "8KB"
168
169config IA64_PAGE_SIZE_16KB
170	bool "16KB"
171
172config IA64_PAGE_SIZE_64KB
173	depends on !ITANIUM
174	bool "64KB"
175
176endchoice
177
178source "kernel/Kconfig.hz"
179
180config IA64_BRL_EMU
181	bool
182	depends on ITANIUM
183	default y
184
185# align cache-sensitive data to 128 bytes
186config IA64_L1_CACHE_SHIFT
187	int
188	default "7" if MCKINLEY
189	default "6" if ITANIUM
190
191config IA64_SGI_UV
192	bool "SGI-UV support"
193	help
194	  Selecting this option will add specific support for running on SGI
195	  UV based systems.  If you have an SGI UV system or are building a
196	  distro kernel, select this option.
197
198config IA64_HP_SBA_IOMMU
199	bool "HP SBA IOMMU support"
200	default y
201	help
202	  Say Y here to add support for the SBA IOMMU found on HP zx1 and
203	  sx1000 systems.  If you're unsure, answer Y.
204
205config IA64_CYCLONE
206	bool "Cyclone (EXA) Time Source support"
207	help
208	  Say Y here to enable support for IBM EXA Cyclone time source.
209	  If you're unsure, answer N.
210
211config FORCE_MAX_ZONEORDER
212	int "MAX_ORDER (11 - 17)"  if !HUGETLB_PAGE
213	range 11 17  if !HUGETLB_PAGE
214	default "17" if HUGETLB_PAGE
215	default "11"
216
217config SMP
218	bool "Symmetric multi-processing support"
219	help
220	  This enables support for systems with more than one CPU. If you have
221	  a system with only one CPU, say N.  If you have a system with more
222	  than one CPU, say Y.
223
224	  If you say N here, the kernel will run on single and multiprocessor
225	  systems, but will use only one CPU of a multiprocessor system.  If
226	  you say Y here, the kernel will run on many, but not all,
227	  single processor systems.  On a single processor system, the kernel
228	  will run faster if you say N here.
229
230	  See also the SMP-HOWTO available at
231	  <http://www.tldp.org/docs.html#howto>.
232
233	  If you don't know what to do here, say N.
234
235config NR_CPUS
236	int "Maximum number of CPUs (2-4096)"
237	range 2 4096
238	depends on SMP
239	default "4096"
240	help
241	  You should set this to the number of CPUs in your system, but
242	  keep in mind that a kernel compiled for, e.g., 2 CPUs will boot but
243	  only use 2 CPUs on a >2 CPU system.  Setting this to a value larger
244	  than 64 will cause the use of a CPU mask array, causing a small
245	  performance hit.
246
247config HOTPLUG_CPU
248	bool "Support for hot-pluggable CPUs"
249	depends on SMP
250	default n
251	---help---
252	  Say Y here to experiment with turning CPUs off and on.  CPUs
253	  can be controlled through /sys/devices/system/cpu/cpu#.
254	  Say N if you want to disable CPU hotplug.
255
256config ARCH_ENABLE_MEMORY_HOTPLUG
257	def_bool y
258
259config ARCH_ENABLE_MEMORY_HOTREMOVE
260	def_bool y
261
262config SCHED_SMT
263	bool "SMT scheduler support"
264	depends on SMP
265	help
266	  Improves the CPU scheduler's decision making when dealing with
267	  Intel IA64 chips with MultiThreading at a cost of slightly increased
268	  overhead in some places. If unsure say N here.
269
270config PERMIT_BSP_REMOVE
271	bool "Support removal of Bootstrap Processor"
272	depends on HOTPLUG_CPU
273	default n
274	---help---
275	Say Y here if your platform SAL will support removal of BSP with HOTPLUG_CPU
276	support.
277
278config FORCE_CPEI_RETARGET
279	bool "Force assumption that CPEI can be re-targeted"
280	depends on PERMIT_BSP_REMOVE
281	default n
282	---help---
283	Say Y if you need to force the assumption that CPEI can be re-targeted to
284	any cpu in the system. This hint is available via ACPI 3.0 specifications.
285	Tiger4 systems are capable of re-directing CPEI to any CPU other than BSP.
286	This option it useful to enable this feature on older BIOS's as well.
287	You can also enable this by using boot command line option force_cpei=1.
288
289config ARCH_SELECT_MEMORY_MODEL
290	def_bool y
291
292config ARCH_DISCONTIGMEM_ENABLE
293	def_bool y
294	help
295	  Say Y to support efficient handling of discontiguous physical memory,
296	  for architectures which are either NUMA (Non-Uniform Memory Access)
297	  or have huge holes in the physical address space for other reasons.
298	  See <file:Documentation/vm/numa.rst> for more.
299
300config ARCH_FLATMEM_ENABLE
301	def_bool y
302
303config ARCH_SPARSEMEM_ENABLE
304	def_bool y
305	depends on ARCH_DISCONTIGMEM_ENABLE
306	select SPARSEMEM_VMEMMAP_ENABLE
307
308config ARCH_DISCONTIGMEM_DEFAULT
309	def_bool y
310	depends on ARCH_DISCONTIGMEM_ENABLE
311
312config NUMA
313	bool "NUMA support"
314	depends on !FLATMEM
315	select SMP
316	help
317	  Say Y to compile the kernel to support NUMA (Non-Uniform Memory
318	  Access).  This option is for configuring high-end multiprocessor
319	  server systems.  If in doubt, say N.
320
321config NODES_SHIFT
322	int "Max num nodes shift(3-10)"
323	range 3 10
324	default "10"
325	depends on NEED_MULTIPLE_NODES
326	help
327	  This option specifies the maximum number of nodes in your SSI system.
328	  MAX_NUMNODES will be 2^(This value).
329	  If in doubt, use the default.
330
331# VIRTUAL_MEM_MAP and FLAT_NODE_MEM_MAP are functionally equivalent.
332# VIRTUAL_MEM_MAP has been retained for historical reasons.
333config VIRTUAL_MEM_MAP
334	bool "Virtual mem map"
335	depends on !SPARSEMEM
336	default y
337	help
338	  Say Y to compile the kernel with support for a virtual mem map.
339	  This code also only takes effect if a memory hole of greater than
340	  1 Gb is found during boot.  You must turn this option on if you
341	  require the DISCONTIGMEM option for your machine. If you are
342	  unsure, say Y.
343
344config HOLES_IN_ZONE
345	bool
346	default y if VIRTUAL_MEM_MAP
347
348config HAVE_ARCH_EARLY_PFN_TO_NID
349	def_bool NUMA && SPARSEMEM
350
351config HAVE_ARCH_NODEDATA_EXTENSION
352	def_bool y
353	depends on NUMA
354
355config USE_PERCPU_NUMA_NODE_ID
356	def_bool y
357	depends on NUMA
358
359config HAVE_MEMORYLESS_NODES
360	def_bool NUMA
361
362config ARCH_PROC_KCORE_TEXT
363	def_bool y
364	depends on PROC_KCORE
365
366config IA64_MCA_RECOVERY
367	tristate "MCA recovery from errors other than TLB."
368
369config PERFMON
370	bool "Performance monitor support"
371	depends on BROKEN
372	help
373	  Selects whether support for the IA-64 performance monitor hardware
374	  is included in the kernel.  This makes some kernel data-structures a
375	  little bigger and slows down execution a bit, but it is generally
376	  a good idea to turn this on.  If you're unsure, say Y.
377
378config IA64_PALINFO
379	tristate "/proc/pal support"
380	help
381	  If you say Y here, you are able to get PAL (Processor Abstraction
382	  Layer) information in /proc/pal.  This contains useful information
383	  about the processors in your systems, such as cache and TLB sizes
384	  and the PAL firmware version in use.
385
386	  To use this option, you have to ensure that the "/proc file system
387	  support" (CONFIG_PROC_FS) is enabled, too.
388
389config IA64_MC_ERR_INJECT
390	tristate "MC error injection support"
391	help
392	  Adds support for MC error injection. If enabled, the kernel
393	  will provide a sysfs interface for user applications to
394	  call MC error injection PAL procedures to inject various errors.
395	  This is a useful tool for MCA testing.
396
397	  If you're unsure, do not select this option.
398
399config IA64_ESI
400	bool "ESI (Extensible SAL Interface) support"
401	help
402	  If you say Y here, support is built into the kernel to
403	  make ESI calls.  ESI calls are used to support vendor-specific
404	  firmware extensions, such as the ability to inject memory-errors
405	  for test-purposes.  If you're unsure, say N.
406
407config IA64_HP_AML_NFW
408	bool "Support ACPI AML calls to native firmware"
409	help
410	  This driver installs a global ACPI Operation Region handler for
411	  region 0xA1.  AML methods can use this OpRegion to call arbitrary
412	  native firmware functions.  The driver installs the OpRegion
413	  handler if there is an HPQ5001 device or if the user supplies
414	  the "force" module parameter, e.g., with the "aml_nfw.force"
415	  kernel command line option.
416
417config KEXEC
418	bool "kexec system call"
419	depends on !SMP || HOTPLUG_CPU
420	select KEXEC_CORE
421	help
422	  kexec is a system call that implements the ability to shutdown your
423	  current kernel, and to start another kernel.  It is like a reboot
424	  but it is independent of the system firmware.   And like a reboot
425	  you can start any kernel with it, not just Linux.
426
427	  The name comes from the similarity to the exec system call.
428
429	  It is an ongoing process to be certain the hardware in a machine
430	  is properly shutdown, so do not be surprised if this code does not
431	  initially work for you.  As of this writing the exact hardware
432	  interface is strongly in flux, so no good recommendation can be
433	  made.
434
435config CRASH_DUMP
436	  bool "kernel crash dumps"
437	  depends on IA64_MCA_RECOVERY && (!SMP || HOTPLUG_CPU)
438	  help
439	    Generate crash dump after being started by kexec.
440
441source "drivers/firmware/Kconfig"
442
443endmenu
444
445menu "Power management and ACPI options"
446
447source "kernel/power/Kconfig"
448
449source "drivers/acpi/Kconfig"
450
451if PM
452menu "CPU Frequency scaling"
453source "drivers/cpufreq/Kconfig"
454endmenu
455endif
456
457endmenu
458
459config MSPEC
460	tristate "Memory special operations driver"
461	depends on IA64
462	select IA64_UNCACHED_ALLOCATOR
463	help
464	  If you have an ia64 and you want to enable memory special
465	  operations support (formerly known as fetchop), say Y here,
466	  otherwise say N.
467