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