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