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