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