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