xref: /openbmc/linux/arch/ia64/Kconfig (revision 4f3865fb)
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
10menu "Processor type and features"
11
12config IA64
13	bool
14	default y
15	help
16	  The Itanium Processor Family is Intel's 64-bit successor to
17	  the 32-bit X86 line.  The IA-64 Linux project has a home
18	  page at <http://www.linuxia64.org/> and a mailing list at
19	  <linux-ia64@vger.kernel.org>.
20
21config 64BIT
22	bool
23	default y
24
25config MMU
26	bool
27	default y
28
29config SWIOTLB
30       bool
31       default y
32
33config RWSEM_XCHGADD_ALGORITHM
34	bool
35	default y
36
37config GENERIC_FIND_NEXT_BIT
38	bool
39	default y
40
41config GENERIC_CALIBRATE_DELAY
42	bool
43	default y
44
45config TIME_INTERPOLATION
46	bool
47	default y
48
49config DMI
50	bool
51	default y
52
53config EFI
54	bool
55	default y
56
57config GENERIC_IOMAP
58	bool
59	default y
60
61config SCHED_NO_NO_OMIT_FRAME_POINTER
62	bool
63	default y
64
65config IA64_UNCACHED_ALLOCATOR
66	bool
67	select GENERIC_ALLOCATOR
68
69config DMA_IS_DMA32
70	bool
71	default y
72
73choice
74	prompt "System type"
75	default IA64_GENERIC
76
77config IA64_GENERIC
78	bool "generic"
79	select ACPI
80	select NUMA
81	select ACPI_NUMA
82	help
83	  This selects the system type of your hardware.  A "generic" kernel
84	  will run on any supported IA-64 system.  However, if you configure
85	  a kernel for your specific system, it will be faster and smaller.
86
87	  generic		For any supported IA-64 system
88	  DIG-compliant		For DIG ("Developer's Interface Guide") compliant systems
89	  HP-zx1/sx1000		For HP systems
90	  HP-zx1/sx1000+swiotlb	For HP systems with (broken) DMA-constrained devices.
91	  SGI-SN2		For SGI Altix systems
92	  Ski-simulator		For the HP simulator <http://www.hpl.hp.com/research/linux/ski/>
93
94	  If you don't know what to do, choose "generic".
95
96config IA64_DIG
97	bool "DIG-compliant"
98
99config IA64_HP_ZX1
100	bool "HP-zx1/sx1000"
101	help
102	  Build a kernel that runs on HP zx1 and sx1000 systems.  This adds
103	  support for the HP I/O MMU.
104
105config IA64_HP_ZX1_SWIOTLB
106	bool "HP-zx1/sx1000 with software I/O TLB"
107	help
108	  Build a kernel that runs on HP zx1 and sx1000 systems even when they
109	  have broken PCI devices which cannot DMA to full 32 bits.  Apart
110	  from support for the HP I/O MMU, this includes support for the software
111	  I/O TLB, which allows supporting the broken devices at the expense of
112	  wasting some kernel memory (about 2MB by default).
113
114config IA64_SGI_SN2
115	bool "SGI-SN2"
116	help
117	  Selecting this option will optimize the kernel for use on sn2 based
118	  systems, but the resulting kernel binary will not run on other
119	  types of ia64 systems.  If you have an SGI Altix system, it's safe
120	  to select this option.  If in doubt, select ia64 generic support
121	  instead.
122
123config IA64_HP_SIM
124	bool "Ski-simulator"
125
126endchoice
127
128choice
129	prompt "Processor type"
130	default ITANIUM
131
132config ITANIUM
133	bool "Itanium"
134	help
135	  Select your IA-64 processor type.  The default is Itanium.
136	  This choice is safe for all IA-64 systems, but may not perform
137	  optimally on systems with, say, Itanium 2 or newer processors.
138
139config MCKINLEY
140	bool "Itanium 2"
141	help
142	  Select this to configure for an Itanium 2 (McKinley) processor.
143
144endchoice
145
146choice
147	prompt "Kernel page size"
148	default IA64_PAGE_SIZE_16KB
149
150config IA64_PAGE_SIZE_4KB
151	bool "4KB"
152	help
153	  This lets you select the page size of the kernel.  For best IA-64
154	  performance, a page size of 8KB or 16KB is recommended.  For best
155	  IA-32 compatibility, a page size of 4KB should be selected (the vast
156	  majority of IA-32 binaries work perfectly fine with a larger page
157	  size).  For Itanium 2 or newer systems, a page size of 64KB can also
158	  be selected.
159
160	  4KB                For best IA-32 compatibility
161	  8KB                For best IA-64 performance
162	  16KB               For best IA-64 performance
163	  64KB               Requires Itanium 2 or newer processor.
164
165	  If you don't know what to do, choose 16KB.
166
167config IA64_PAGE_SIZE_8KB
168	bool "8KB"
169
170config IA64_PAGE_SIZE_16KB
171	bool "16KB"
172
173config IA64_PAGE_SIZE_64KB
174	depends on !ITANIUM
175	bool "64KB"
176
177endchoice
178
179choice
180	prompt "Page Table Levels"
181	default PGTABLE_3
182
183config PGTABLE_3
184	bool "3 Levels"
185
186config PGTABLE_4
187	depends on !IA64_PAGE_SIZE_64KB
188	bool "4 Levels"
189
190endchoice
191
192source kernel/Kconfig.hz
193
194config IA64_BRL_EMU
195	bool
196	depends on ITANIUM
197	default y
198
199# align cache-sensitive data to 128 bytes
200config IA64_L1_CACHE_SHIFT
201	int
202	default "7" if MCKINLEY
203	default "6" if ITANIUM
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 IOSAPIC
212	bool
213	depends on !IA64_HP_SIM
214	default y
215
216config IA64_SGI_SN_XP
217	tristate "Support communication between SGI SSIs"
218	depends on IA64_GENERIC || IA64_SGI_SN2
219	select IA64_UNCACHED_ALLOCATOR
220	help
221	  An SGI machine can be divided into multiple Single System
222	  Images which act independently of each other and have
223	  hardware based memory protection from the others.  Enabling
224	  this feature will allow for direct communication between SSIs
225	  based on a network adapter and DMA messaging.
226
227config FORCE_MAX_ZONEORDER
228	int "MAX_ORDER (11 - 17)"  if !HUGETLB_PAGE
229	range 11 17  if !HUGETLB_PAGE
230	default "17" if HUGETLB_PAGE
231	default "11"
232
233config SMP
234	bool "Symmetric multi-processing support"
235	help
236	  This enables support for systems with more than one CPU. If you have
237	  a system with only one CPU, say N.  If you have a system with more
238	  than one CPU, say Y.
239
240	  If you say N here, the kernel will run on single and multiprocessor
241	  systems, but will use only one CPU of a multiprocessor system.  If
242	  you say Y here, the kernel will run on many, but not all,
243	  single processor systems.  On a single processor system, the kernel
244	  will run faster if you say N here.
245
246	  See also the <file:Documentation/smp.txt> and the SMP-HOWTO
247	  available at <http://www.tldp.org/docs.html#howto>.
248
249	  If you don't know what to do here, say N.
250
251config NR_CPUS
252	int "Maximum number of CPUs (2-1024)"
253	range 2 1024
254	depends on SMP
255	default "64"
256	help
257	  You should set this to the number of CPUs in your system, but
258	  keep in mind that a kernel compiled for, e.g., 2 CPUs will boot but
259	  only use 2 CPUs on a >2 CPU system.  Setting this to a value larger
260	  than 64 will cause the use of a CPU mask array, causing a small
261	  performance hit.
262
263config HOTPLUG_CPU
264	bool "Support for hot-pluggable CPUs (EXPERIMENTAL)"
265	depends on SMP && EXPERIMENTAL
266	select HOTPLUG
267	default n
268	---help---
269	  Say Y here to experiment with turning CPUs off and on.  CPUs
270	  can be controlled through /sys/devices/system/cpu/cpu#.
271	  Say N if you want to disable CPU hotplug.
272
273config SCHED_SMT
274	bool "SMT scheduler support"
275	depends on SMP
276	default off
277	help
278	  Improves the CPU scheduler's decision making when dealing with
279	  Intel IA64 chips with MultiThreading at a cost of slightly increased
280	  overhead in some places. If unsure say N here.
281
282config PERMIT_BSP_REMOVE
283	bool "Support removal of Bootstrap Processor"
284	depends on HOTPLUG_CPU
285	default n
286	---help---
287	Say Y here if your platform SAL will support removal of BSP with HOTPLUG_CPU
288	support.
289
290config FORCE_CPEI_RETARGET
291	bool "Force assumption that CPEI can be re-targetted"
292	depends on PERMIT_BSP_REMOVE
293	default n
294	---help---
295	Say Y if you need to force the assumption that CPEI can be re-targetted to
296	any cpu in the system. This hint is available via ACPI 3.0 specifications.
297	Tiger4 systems are capable of re-directing CPEI to any CPU other than BSP.
298	This option it useful to enable this feature on older BIOS's as well.
299	You can also enable this by using boot command line option force_cpei=1.
300
301config PREEMPT
302	bool "Preemptible Kernel"
303        help
304          This option reduces the latency of the kernel when reacting to
305          real-time or interactive events by allowing a low priority process to
306          be preempted even if it is in kernel mode executing a system call.
307          This allows applications to run more reliably even when the system is
308          under load.
309
310          Say Y here if you are building a kernel for a desktop, embedded
311          or real-time system.  Say N if you are unsure.
312
313source "mm/Kconfig"
314
315config ARCH_SELECT_MEMORY_MODEL
316	def_bool y
317
318config ARCH_DISCONTIGMEM_ENABLE
319	def_bool y
320	help
321	  Say Y to support efficient handling of discontiguous physical memory,
322	  for architectures which are either NUMA (Non-Uniform Memory Access)
323	  or have huge holes in the physical address space for other reasons.
324 	  See <file:Documentation/vm/numa> for more.
325
326config ARCH_FLATMEM_ENABLE
327	def_bool y
328
329config ARCH_SPARSEMEM_ENABLE
330	def_bool y
331	depends on ARCH_DISCONTIGMEM_ENABLE
332
333config ARCH_DISCONTIGMEM_DEFAULT
334	def_bool y if (IA64_SGI_SN2 || IA64_GENERIC || IA64_HP_ZX1 || IA64_HP_ZX1_SWIOTLB)
335	depends on ARCH_DISCONTIGMEM_ENABLE
336
337config NUMA
338	bool "NUMA support"
339	depends on !IA64_HP_SIM && !FLATMEM
340	default y if IA64_SGI_SN2
341	help
342	  Say Y to compile the kernel to support NUMA (Non-Uniform Memory
343	  Access).  This option is for configuring high-end multiprocessor
344	  server systems.  If in doubt, say N.
345
346config NODES_SHIFT
347	int "Max num nodes shift(3-10)"
348	range 3 10
349	default "8"
350	depends on NEED_MULTIPLE_NODES
351	help
352	  This option specifies the maximum number of nodes in your SSI system.
353	  MAX_NUMNODES will be 2^(This value).
354	  If in doubt, use the default.
355
356# VIRTUAL_MEM_MAP and FLAT_NODE_MEM_MAP are functionally equivalent.
357# VIRTUAL_MEM_MAP has been retained for historical reasons.
358config VIRTUAL_MEM_MAP
359	bool "Virtual mem map"
360	depends on !SPARSEMEM
361	default y if !IA64_HP_SIM
362	help
363	  Say Y to compile the kernel with support for a virtual mem map.
364	  This code also only takes effect if a memory hole of greater than
365	  1 Gb is found during boot.  You must turn this option on if you
366	  require the DISCONTIGMEM option for your machine. If you are
367	  unsure, say Y.
368
369config HOLES_IN_ZONE
370	bool
371	default y if VIRTUAL_MEM_MAP
372
373config HAVE_ARCH_EARLY_PFN_TO_NID
374	def_bool y
375	depends on NEED_MULTIPLE_NODES
376
377config IA32_SUPPORT
378	bool "Support for Linux/x86 binaries"
379	help
380	  IA-64 processors can execute IA-32 (X86) instructions.  By
381	  saying Y here, the kernel will include IA-32 system call
382	  emulation support which makes it possible to transparently
383	  run IA-32 Linux binaries on an IA-64 Linux system.
384	  If in doubt, say Y.
385
386config COMPAT
387	bool
388	depends on IA32_SUPPORT
389	default y
390
391config IA64_MCA_RECOVERY
392	tristate "MCA recovery from errors other than TLB."
393
394config PERFMON
395	bool "Performance monitor support"
396	help
397	  Selects whether support for the IA-64 performance monitor hardware
398	  is included in the kernel.  This makes some kernel data-structures a
399	  little bigger and slows down execution a bit, but it is generally
400	  a good idea to turn this on.  If you're unsure, say Y.
401
402config IA64_PALINFO
403	tristate "/proc/pal support"
404	help
405	  If you say Y here, you are able to get PAL (Processor Abstraction
406	  Layer) information in /proc/pal.  This contains useful information
407	  about the processors in your systems, such as cache and TLB sizes
408	  and the PAL firmware version in use.
409
410	  To use this option, you have to ensure that the "/proc file system
411	  support" (CONFIG_PROC_FS) is enabled, too.
412
413config SGI_SN
414	def_bool y if (IA64_SGI_SN2 || IA64_GENERIC)
415
416source "drivers/sn/Kconfig"
417
418source "drivers/firmware/Kconfig"
419
420source "fs/Kconfig.binfmt"
421
422endmenu
423
424menu "Power management and ACPI"
425
426source "kernel/power/Kconfig"
427
428source "drivers/acpi/Kconfig"
429
430if PM
431
432source "arch/ia64/kernel/cpufreq/Kconfig"
433
434endif
435
436endmenu
437
438if !IA64_HP_SIM
439
440menu "Bus options (PCI, PCMCIA)"
441
442config PCI
443	bool "PCI support"
444	help
445	  Real IA-64 machines all have PCI/PCI-X/PCI Express busses.  Say Y
446	  here unless you are using a simulator without PCI support.
447
448config PCI_DOMAINS
449	bool
450	default PCI
451
452source "drivers/pci/Kconfig"
453
454source "drivers/pci/hotplug/Kconfig"
455
456source "drivers/pcmcia/Kconfig"
457
458endmenu
459
460endif
461
462source "net/Kconfig"
463
464source "drivers/Kconfig"
465
466source "fs/Kconfig"
467
468source "lib/Kconfig"
469
470#
471# Use the generic interrupt handling code in kernel/irq/:
472#
473config GENERIC_HARDIRQS
474	bool
475	default y
476
477config GENERIC_IRQ_PROBE
478	bool
479	default y
480
481config GENERIC_PENDING_IRQ
482	bool
483	depends on GENERIC_HARDIRQS && SMP
484	default y
485
486source "arch/ia64/hp/sim/Kconfig"
487
488menu "Instrumentation Support"
489        depends on EXPERIMENTAL
490
491source "arch/ia64/oprofile/Kconfig"
492
493config KPROBES
494	bool "Kprobes (EXPERIMENTAL)"
495	depends on EXPERIMENTAL && MODULES
496	help
497	  Kprobes allows you to trap at almost any kernel address and
498	  execute a callback function.  register_kprobe() establishes
499	  a probepoint and specifies the callback.  Kprobes is useful
500	  for kernel debugging, non-intrusive instrumentation and testing.
501	  If in doubt, say "N".
502endmenu
503
504source "arch/ia64/Kconfig.debug"
505
506source "security/Kconfig"
507
508source "crypto/Kconfig"
509