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