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