xref: /openbmc/linux/arch/ia64/Kconfig (revision 838a2e55e6a4e9e8a10451ed2ef0f7a08dabdb04)
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	default y
26	help
27	  The Itanium Processor Family is Intel's 64-bit successor to
28	  the 32-bit X86 line.  The IA-64 Linux project has a home
29	  page at <http://www.linuxia64.org/> and a mailing list at
30	  <linux-ia64@vger.kernel.org>.
31
32config 64BIT
33	bool
34	select ATA_NONSTANDARD if ATA
35	default y
36
37config ZONE_DMA
38	def_bool y
39	depends on !IA64_SGI_SN2
40
41config QUICKLIST
42	bool
43	default y
44
45config MMU
46	bool
47	default y
48
49config NEED_DMA_MAP_STATE
50	def_bool y
51
52config NEED_SG_DMA_LENGTH
53	def_bool y
54
55config SWIOTLB
56       bool
57
58config GENERIC_LOCKBREAK
59	def_bool n
60
61config RWSEM_XCHGADD_ALGORITHM
62	bool
63	default y
64
65config HUGETLB_PAGE_SIZE_VARIABLE
66	bool
67	depends on HUGETLB_PAGE
68	default y
69
70config GENERIC_FIND_NEXT_BIT
71	bool
72	default y
73
74config GENERIC_CALIBRATE_DELAY
75	bool
76	default y
77
78config GENERIC_TIME
79	bool
80	default y
81
82config GENERIC_TIME_VSYSCALL
83	bool
84	default y
85
86config HAVE_SETUP_PER_CPU_AREA
87	def_bool y
88
89config DMI
90	bool
91	default y
92
93config EFI
94	bool
95	default y
96
97config GENERIC_IOMAP
98	bool
99	default y
100
101config SCHED_OMIT_FRAME_POINTER
102	bool
103	default y
104
105config IA64_UNCACHED_ALLOCATOR
106	bool
107	select GENERIC_ALLOCATOR
108
109config ARCH_USES_PG_UNCACHED
110	def_bool y
111	depends on IA64_UNCACHED_ALLOCATOR
112
113config AUDIT_ARCH
114	bool
115	default y
116
117menuconfig PARAVIRT_GUEST
118	bool "Paravirtualized guest support"
119	help
120	  Say Y here to get to see options related to running Linux under
121	  various hypervisors.  This option alone does not add any kernel code.
122
123	  If you say N, all options in this submenu will be skipped and disabled.
124
125if PARAVIRT_GUEST
126
127config PARAVIRT
128	bool "Enable paravirtualization code"
129	depends on PARAVIRT_GUEST
130	default y
131	bool
132	default y
133	help
134	  This changes the kernel so it can modify itself when it is run
135	  under a hypervisor, potentially improving performance significantly
136	  over full virtualization.  However, when run without a hypervisor
137	  the kernel is theoretically slower and slightly larger.
138
139
140source "arch/ia64/xen/Kconfig"
141
142endif
143
144choice
145	prompt "System type"
146	default IA64_GENERIC
147
148config IA64_GENERIC
149	bool "generic"
150	select NUMA
151	select ACPI_NUMA
152	select SWIOTLB
153	select PCI_MSI
154	select DMAR
155	help
156	  This selects the system type of your hardware.  A "generic" kernel
157	  will run on any supported IA-64 system.  However, if you configure
158	  a kernel for your specific system, it will be faster and smaller.
159
160	  generic		For any supported IA-64 system
161	  DIG-compliant		For DIG ("Developer's Interface Guide") compliant systems
162	  DIG+Intel+IOMMU	For DIG systems with Intel IOMMU
163	  HP-zx1/sx1000		For HP systems
164	  HP-zx1/sx1000+swiotlb	For HP systems with (broken) DMA-constrained devices.
165	  SGI-SN2		For SGI Altix systems
166	  SGI-UV		For SGI UV systems
167	  Ski-simulator		For the HP simulator <http://www.hpl.hp.com/research/linux/ski/>
168	  Xen-domU		For xen domU system
169
170	  If you don't know what to do, choose "generic".
171
172config IA64_DIG
173	bool "DIG-compliant"
174	select SWIOTLB
175
176config IA64_DIG_VTD
177	bool "DIG+Intel+IOMMU"
178	select DMAR
179	select PCI_MSI
180
181config IA64_HP_ZX1
182	bool "HP-zx1/sx1000"
183	help
184	  Build a kernel that runs on HP zx1 and sx1000 systems.  This adds
185	  support for the HP I/O MMU.
186
187config IA64_HP_ZX1_SWIOTLB
188	bool "HP-zx1/sx1000 with software I/O TLB"
189	select SWIOTLB
190	help
191	  Build a kernel that runs on HP zx1 and sx1000 systems even when they
192	  have broken PCI devices which cannot DMA to full 32 bits.  Apart
193	  from support for the HP I/O MMU, this includes support for the software
194	  I/O TLB, which allows supporting the broken devices at the expense of
195	  wasting some kernel memory (about 2MB by default).
196
197config IA64_SGI_SN2
198	bool "SGI-SN2"
199	select NUMA
200	select ACPI_NUMA
201	help
202	  Selecting this option will optimize the kernel for use on sn2 based
203	  systems, but the resulting kernel binary will not run on other
204	  types of ia64 systems.  If you have an SGI Altix system, it's safe
205	  to select this option.  If in doubt, select ia64 generic support
206	  instead.
207
208config IA64_SGI_UV
209	bool "SGI-UV"
210	select NUMA
211	select ACPI_NUMA
212	select SWIOTLB
213	help
214	  Selecting this option will optimize the kernel for use on UV based
215	  systems, but the resulting kernel binary will not run on other
216	  types of ia64 systems.  If you have an SGI UV system, it's safe
217	  to select this option.  If in doubt, select ia64 generic support
218	  instead.
219
220config IA64_HP_SIM
221	bool "Ski-simulator"
222	select SWIOTLB
223
224config IA64_XEN_GUEST
225	bool "Xen guest"
226	select SWIOTLB
227	depends on XEN
228	help
229	  Build a kernel that runs on Xen guest domain. At this moment only
230	  16KB page size in supported.
231
232endchoice
233
234choice
235	prompt "Processor type"
236	default ITANIUM
237
238config ITANIUM
239	bool "Itanium"
240	help
241	  Select your IA-64 processor type.  The default is Itanium.
242	  This choice is safe for all IA-64 systems, but may not perform
243	  optimally on systems with, say, Itanium 2 or newer processors.
244
245config MCKINLEY
246	bool "Itanium 2"
247	help
248	  Select this to configure for an Itanium 2 (McKinley) processor.
249
250endchoice
251
252choice
253	prompt "Kernel page size"
254	default IA64_PAGE_SIZE_16KB
255
256config IA64_PAGE_SIZE_4KB
257	bool "4KB"
258	help
259	  This lets you select the page size of the kernel.  For best IA-64
260	  performance, a page size of 8KB or 16KB is recommended.  For best
261	  IA-32 compatibility, a page size of 4KB should be selected (the vast
262	  majority of IA-32 binaries work perfectly fine with a larger page
263	  size).  For Itanium 2 or newer systems, a page size of 64KB can also
264	  be selected.
265
266	  4KB                For best IA-32 compatibility
267	  8KB                For best IA-64 performance
268	  16KB               For best IA-64 performance
269	  64KB               Requires Itanium 2 or newer processor.
270
271	  If you don't know what to do, choose 16KB.
272
273config IA64_PAGE_SIZE_8KB
274	bool "8KB"
275
276config IA64_PAGE_SIZE_16KB
277	bool "16KB"
278
279config IA64_PAGE_SIZE_64KB
280	depends on !ITANIUM
281	bool "64KB"
282
283endchoice
284
285choice
286	prompt "Page Table Levels"
287	default PGTABLE_3
288
289config PGTABLE_3
290	bool "3 Levels"
291
292config PGTABLE_4
293	depends on !IA64_PAGE_SIZE_64KB
294	bool "4 Levels"
295
296endchoice
297
298if IA64_HP_SIM
299config HZ
300	default 32
301endif
302
303if !IA64_HP_SIM
304source kernel/Kconfig.hz
305endif
306
307config IA64_BRL_EMU
308	bool
309	depends on ITANIUM
310	default y
311
312# align cache-sensitive data to 128 bytes
313config IA64_L1_CACHE_SHIFT
314	int
315	default "7" if MCKINLEY
316	default "6" if ITANIUM
317
318config IA64_CYCLONE
319	bool "Cyclone (EXA) Time Source support"
320	help
321	  Say Y here to enable support for IBM EXA Cyclone time source.
322	  If you're unsure, answer N.
323
324config IOSAPIC
325	bool
326	depends on !IA64_HP_SIM
327	default y
328
329config FORCE_MAX_ZONEORDER
330	int "MAX_ORDER (11 - 17)"  if !HUGETLB_PAGE
331	range 11 17  if !HUGETLB_PAGE
332	default "17" if HUGETLB_PAGE
333	default "11"
334
335config VIRT_CPU_ACCOUNTING
336	bool "Deterministic task and CPU time accounting"
337	default n
338	help
339	  Select this option to enable more accurate task and CPU time
340	  accounting.  This is done by reading a CPU counter on each
341	  kernel entry and exit and on transitions within the kernel
342	  between system, softirq and hardirq state, so there is a
343	  small performance impact.
344	  If in doubt, say N here.
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-targetted"
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-targetted 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
467config ARCH_POPULATES_NODE_MAP
468	def_bool y
469
470# VIRTUAL_MEM_MAP and FLAT_NODE_MEM_MAP are functionally equivalent.
471# VIRTUAL_MEM_MAP has been retained for historical reasons.
472config VIRTUAL_MEM_MAP
473	bool "Virtual mem map"
474	depends on !SPARSEMEM
475	default y if !IA64_HP_SIM
476	help
477	  Say Y to compile the kernel with support for a virtual mem map.
478	  This code also only takes effect if a memory hole of greater than
479	  1 Gb is found during boot.  You must turn this option on if you
480	  require the DISCONTIGMEM option for your machine. If you are
481	  unsure, say Y.
482
483config HOLES_IN_ZONE
484	bool
485	default y if VIRTUAL_MEM_MAP
486
487config HAVE_ARCH_EARLY_PFN_TO_NID
488	def_bool NUMA && SPARSEMEM
489
490config HAVE_ARCH_NODEDATA_EXTENSION
491	def_bool y
492	depends on NUMA
493
494config USE_PERCPU_NUMA_NODE_ID
495	def_bool y
496	depends on NUMA
497
498config HAVE_MEMORYLESS_NODES
499	def_bool y
500	depends on NUMA
501
502config ARCH_PROC_KCORE_TEXT
503	def_bool y
504	depends on PROC_KCORE
505
506config IA64_MCA_RECOVERY
507	tristate "MCA recovery from errors other than TLB."
508
509config PERFMON
510	bool "Performance monitor support"
511	help
512	  Selects whether support for the IA-64 performance monitor hardware
513	  is included in the kernel.  This makes some kernel data-structures a
514	  little bigger and slows down execution a bit, but it is generally
515	  a good idea to turn this on.  If you're unsure, say Y.
516
517config IA64_PALINFO
518	tristate "/proc/pal support"
519	help
520	  If you say Y here, you are able to get PAL (Processor Abstraction
521	  Layer) information in /proc/pal.  This contains useful information
522	  about the processors in your systems, such as cache and TLB sizes
523	  and the PAL firmware version in use.
524
525	  To use this option, you have to ensure that the "/proc file system
526	  support" (CONFIG_PROC_FS) is enabled, too.
527
528config IA64_MC_ERR_INJECT
529	tristate "MC error injection support"
530	help
531	  Adds support for MC error injection. If enabled, the kernel
532	  will provide a sysfs interface for user applications to
533	  call MC error injection PAL procedures to inject various errors.
534	  This is a useful tool for MCA testing.
535
536	  If you're unsure, do not select this option.
537
538config SGI_SN
539	def_bool y if (IA64_SGI_SN2 || IA64_GENERIC)
540
541config IA64_ESI
542	bool "ESI (Extensible SAL Interface) support"
543	help
544	  If you say Y here, support is built into the kernel to
545	  make ESI calls.  ESI calls are used to support vendor-specific
546	  firmware extensions, such as the ability to inject memory-errors
547	  for test-purposes.  If you're unsure, say N.
548
549config IA64_HP_AML_NFW
550	bool "Support ACPI AML calls to native firmware"
551	help
552	  This driver installs a global ACPI Operation Region handler for
553	  region 0xA1.  AML methods can use this OpRegion to call arbitrary
554	  native firmware functions.  The driver installs the OpRegion
555	  handler if there is an HPQ5001 device or if the user supplies
556	  the "force" module parameter, e.g., with the "aml_nfw.force"
557	  kernel command line option.
558
559source "drivers/sn/Kconfig"
560
561config KEXEC
562	bool "kexec system call (EXPERIMENTAL)"
563	depends on EXPERIMENTAL && !IA64_HP_SIM && (!SMP || HOTPLUG_CPU)
564	help
565	  kexec is a system call that implements the ability to shutdown your
566	  current kernel, and to start another kernel.  It is like a reboot
567	  but it is independent of the system firmware.   And like a reboot
568	  you can start any kernel with it, not just Linux.
569
570	  The name comes from the similarity to the exec system call.
571
572	  It is an ongoing process to be certain the hardware in a machine
573	  is properly shutdown, so do not be surprised if this code does not
574	  initially work for you.  It may help to enable device hotplugging
575	  support.  As of this writing the exact hardware interface is
576	  strongly in flux, so no good recommendation can be made.
577
578config CRASH_DUMP
579	  bool "kernel crash dumps"
580	  depends on IA64_MCA_RECOVERY && !IA64_HP_SIM && (!SMP || HOTPLUG_CPU)
581	  help
582	    Generate crash dump after being started by kexec.
583
584source "drivers/firmware/Kconfig"
585
586source "fs/Kconfig.binfmt"
587
588endmenu
589
590menu "Power management and ACPI options"
591
592source "kernel/power/Kconfig"
593
594source "drivers/acpi/Kconfig"
595
596if PM
597
598source "arch/ia64/kernel/cpufreq/Kconfig"
599
600endif
601
602endmenu
603
604if !IA64_HP_SIM
605
606menu "Bus options (PCI, PCMCIA)"
607
608config PCI
609	bool "PCI support"
610	help
611	  Real IA-64 machines all have PCI/PCI-X/PCI Express busses.  Say Y
612	  here unless you are using a simulator without PCI support.
613
614config PCI_DOMAINS
615	def_bool PCI
616
617config PCI_SYSCALL
618	def_bool PCI
619
620source "drivers/pci/pcie/Kconfig"
621
622source "drivers/pci/Kconfig"
623
624source "drivers/pci/hotplug/Kconfig"
625
626source "drivers/pcmcia/Kconfig"
627
628config DMAR
629        bool "Support for DMA Remapping Devices (EXPERIMENTAL)"
630        depends on IA64_GENERIC && ACPI && EXPERIMENTAL
631	help
632	  DMA remapping (DMAR) devices support enables independent address
633	  translations for Direct Memory Access (DMA) from devices.
634	  These DMA remapping devices are reported via ACPI tables
635	  and include PCI device scope covered by these DMA
636	  remapping devices.
637
638config DMAR_DEFAULT_ON
639	def_bool y
640	prompt "Enable DMA Remapping Devices by default"
641	depends on DMAR
642	help
643	  Selecting this option will enable a DMAR device at boot time if
644	  one is found. If this option is not selected, DMAR support can
645	  be enabled by passing intel_iommu=on to the kernel. It is
646	  recommended you say N here while the DMAR code remains
647	  experimental.
648
649endmenu
650
651endif
652
653source "net/Kconfig"
654
655source "drivers/Kconfig"
656
657source "arch/ia64/hp/sim/Kconfig"
658
659config MSPEC
660	tristate "Memory special operations driver"
661	depends on IA64
662	select IA64_UNCACHED_ALLOCATOR
663	help
664	  If you have an ia64 and you want to enable memory special
665	  operations support (formerly known as fetchop), say Y here,
666	  otherwise say N.
667
668source "fs/Kconfig"
669
670source "arch/ia64/Kconfig.debug"
671
672source "security/Kconfig"
673
674source "crypto/Kconfig"
675
676source "arch/ia64/kvm/Kconfig"
677
678source "lib/Kconfig"
679
680#
681# Use the generic interrupt handling code in kernel/irq/:
682#
683config GENERIC_HARDIRQS
684	bool
685	default y
686
687config GENERIC_IRQ_PROBE
688	bool
689	default y
690
691config GENERIC_PENDING_IRQ
692	bool
693	depends on GENERIC_HARDIRQS && SMP
694	default y
695
696config IRQ_PER_CPU
697	bool
698	default y
699
700config IOMMU_HELPER
701	def_bool (IA64_HP_ZX1 || IA64_HP_ZX1_SWIOTLB || IA64_GENERIC || SWIOTLB)
702
703config IOMMU_API
704	def_bool (DMAR)
705