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