powerpc/nvdimm: Pick nearby online node if the device node is not online
[linux-2.6-block.git] / arch / ia64 / Kconfig
CommitLineData
b2441318 1# SPDX-License-Identifier: GPL-2.0
4d66bcc7
KS
2config PGTABLE_LEVELS
3 int "Page Table Levels" if !IA64_PAGE_SIZE_64KB
4 range 3 4 if !IA64_PAGE_SIZE_64KB
5 default 3
6
1da177e4
LT
7menu "Processor type and features"
8
9config IA64
10 bool
468bcf08 11 select ARCH_MIGHT_HAVE_PC_PARPORT
bbc4e596 12 select ARCH_MIGHT_HAVE_PC_SERIO
06f87adf 13 select ACPI if (!IA64_HP_SIM)
2c870e61 14 select ARCH_SUPPORTS_ACPI if (!IA64_HP_SIM)
6e0a0ea1 15 select ACPI_SYSTEM_POWER_STATES_SUPPORT if ACPI
46ba51ea 16 select ARCH_MIGHT_HAVE_ACPI_PDC if ACPI
eb01d42a 17 select FORCE_PCI if (!IA64_HP_SIM)
2eac9c2d 18 select PCI_DOMAINS if PCI
20f1b79d 19 select PCI_SYSCALL if PCI
0773a6cf 20 select HAVE_UNSTABLE_SCHED_CLOCK
5f56a5df 21 select HAVE_EXIT_THREAD
ec7748b5 22 select HAVE_IDE
42d4b839 23 select HAVE_OPROFILE
3f550096 24 select HAVE_KPROBES
9edddaa2 25 select HAVE_KRETPROBES
a14a07b8
SL
26 select HAVE_FTRACE_MCOUNT_RECORD
27 select HAVE_DYNAMIC_FTRACE if (!ITANIUM)
d3e75ff1 28 select HAVE_FUNCTION_TRACER
6035d9db 29 select TTY
9690ad03 30 select HAVE_ARCH_TRACEHOOK
98e4ae8a 31 select HAVE_MEMBLOCK_NODE_MAP
b952741c 32 select HAVE_VIRT_CPU_ACCOUNTING
8ee94e3f 33 select ARCH_HAS_DMA_COHERENT_TO_PFN if SWIOTLB
3fed6ae4 34 select ARCH_HAS_SYNC_DMA_FOR_CPU if SWIOTLB
4febd95a 35 select VIRT_TO_BUS
c5e66129
TG
36 select GENERIC_IRQ_PROBE
37 select GENERIC_PENDING_IRQ if SMP
e3d78122 38 select GENERIC_IRQ_SHOW
4debd723 39 select GENERIC_IRQ_LEGACY
df013ffb 40 select ARCH_HAVE_NMI_SAFE_CMPXCHG
4673ca8e 41 select GENERIC_IOMAP
13583bf1 42 select GENERIC_SMP_IDLE_THREAD
0500871f 43 select ARCH_TASK_STRUCT_ON_STACK
f5e10287 44 select ARCH_TASK_STRUCT_ALLOCATOR
b235beea 45 select ARCH_THREAD_STACK_ALLOCATOR
21b19710 46 select ARCH_CLOCKSOURCE_DATA
d4d1fc61 47 select GENERIC_TIME_VSYSCALL
b6fca725 48 select SYSCTL_ARCH_UNALIGN_NO_WARN
786d35d4
DH
49 select HAVE_MOD_ARCH_SPECIFIC
50 select MODULES_USE_ELF_RELA
71c7356f 51 select ARCH_USE_CMPXCHG_LOCKREF
7a017721 52 select HAVE_ARCH_AUDITSYSCALL
f616ab59 53 select NEED_DMA_MAP_STATE
86596f0a 54 select NEED_SG_DMA_LENGTH
1da177e4
LT
55 default y
56 help
57 The Itanium Processor Family is Intel's 64-bit successor to
58 the 32-bit X86 line. The IA-64 Linux project has a home
59 page at <http://www.linuxia64.org/> and a mailing list at
60 <linux-ia64@vger.kernel.org>.
61
62config 64BIT
63 bool
9f271d57 64 select ATA_NONSTANDARD if ATA
1da177e4
LT
65 default y
66
d5c23ebf 67config ZONE_DMA32
09ae1f58
CL
68 def_bool y
69 depends on !IA64_SGI_SN2
66701b14 70
2bd62a40
CL
71config QUICKLIST
72 bool
73 default y
74
1da177e4
LT
75config MMU
76 bool
77 default y
78
85718fae
TL
79config STACKTRACE_SUPPORT
80 def_bool y
81
95c354fe 82config GENERIC_LOCKBREAK
2c86963b 83 def_bool n
95c354fe 84
d9c23400
MG
85config HUGETLB_PAGE_SIZE_VARIABLE
86 bool
87 depends on HUGETLB_PAGE
88 default y
89
1da177e4
LT
90config GENERIC_CALIBRATE_DELAY
91 bool
92 default y
93
988c388a 94config HAVE_SETUP_PER_CPU_AREA
b32ef636 95 def_bool y
96
3ed3bce8
MD
97config DMI
98 bool
99 default y
cf074402 100 select DMI_SCAN_MACHINE_NON_EFI_FALLBACK
3ed3bce8 101
1da177e4
LT
102config EFI
103 bool
a614e192 104 select UCS2_STRING
1da177e4
LT
105 default y
106
ae1e9130 107config SCHED_OMIT_FRAME_POINTER
7d12e522
AB
108 bool
109 default y
110
f14f75b8
JS
111config IA64_UNCACHED_ALLOCATOR
112 bool
113 select GENERIC_ALLOCATOR
114
46cf98cd
VP
115config ARCH_USES_PG_UNCACHED
116 def_bool y
117 depends on IA64_UNCACHED_ALLOCATOR
118
e65e1fc2
AV
119config AUDIT_ARCH
120 bool
121 default y
122
1da177e4
LT
123choice
124 prompt "System type"
125 default IA64_GENERIC
126
127config IA64_GENERIC
128 bool "generic"
129 select NUMA
130 select ACPI_NUMA
d1598e05 131 select SWIOTLB
62fdd767 132 select PCI_MSI
1da177e4
LT
133 help
134 This selects the system type of your hardware. A "generic" kernel
135 will run on any supported IA-64 system. However, if you configure
136 a kernel for your specific system, it will be faster and smaller.
137
138 generic For any supported IA-64 system
139 DIG-compliant For DIG ("Developer's Interface Guide") compliant systems
62fdd767 140 DIG+Intel+IOMMU For DIG systems with Intel IOMMU
1da177e4
LT
141 HP-zx1/sx1000 For HP systems
142 HP-zx1/sx1000+swiotlb For HP systems with (broken) DMA-constrained devices.
143 SGI-SN2 For SGI Altix systems
22246614 144 SGI-UV For SGI UV systems
1da177e4
LT
145 Ski-simulator For the HP simulator <http://www.hpl.hp.com/research/linux/ski/>
146
147 If you don't know what to do, choose "generic".
148
149config IA64_DIG
150 bool "DIG-compliant"
d1598e05 151 select SWIOTLB
1da177e4 152
62fdd767
FY
153config IA64_DIG_VTD
154 bool "DIG+Intel+IOMMU"
96edc754 155 select INTEL_IOMMU
62fdd767
FY
156 select PCI_MSI
157
1da177e4
LT
158config IA64_HP_ZX1
159 bool "HP-zx1/sx1000"
160 help
161 Build a kernel that runs on HP zx1 and sx1000 systems. This adds
162 support for the HP I/O MMU.
163
164config IA64_HP_ZX1_SWIOTLB
165 bool "HP-zx1/sx1000 with software I/O TLB"
d1598e05 166 select SWIOTLB
1da177e4
LT
167 help
168 Build a kernel that runs on HP zx1 and sx1000 systems even when they
169 have broken PCI devices which cannot DMA to full 32 bits. Apart
170 from support for the HP I/O MMU, this includes support for the software
171 I/O TLB, which allows supporting the broken devices at the expense of
172 wasting some kernel memory (about 2MB by default).
173
174config IA64_SGI_SN2
175 bool "SGI-SN2"
bd3be240
JS
176 select NUMA
177 select ACPI_NUMA
1da177e4
LT
178 help
179 Selecting this option will optimize the kernel for use on sn2 based
180 systems, but the resulting kernel binary will not run on other
181 types of ia64 systems. If you have an SGI Altix system, it's safe
182 to select this option. If in doubt, select ia64 generic support
183 instead.
184
3351ab9b
JS
185config IA64_SGI_UV
186 bool "SGI-UV"
22246614
JS
187 select NUMA
188 select ACPI_NUMA
189 select SWIOTLB
190 help
191 Selecting this option will optimize the kernel for use on UV based
192 systems, but the resulting kernel binary will not run on other
193 types of ia64 systems. If you have an SGI UV system, it's safe
194 to select this option. If in doubt, select ia64 generic support
195 instead.
196
1da177e4
LT
197config IA64_HP_SIM
198 bool "Ski-simulator"
d1598e05 199 select SWIOTLB
1b3e3aa6 200 depends on !PM
1da177e4
LT
201
202endchoice
203
204choice
205 prompt "Processor type"
206 default ITANIUM
207
208config ITANIUM
209 bool "Itanium"
210 help
211 Select your IA-64 processor type. The default is Itanium.
212 This choice is safe for all IA-64 systems, but may not perform
213 optimally on systems with, say, Itanium 2 or newer processors.
214
215config MCKINLEY
216 bool "Itanium 2"
217 help
218 Select this to configure for an Itanium 2 (McKinley) processor.
219
220endchoice
221
222choice
223 prompt "Kernel page size"
224 default IA64_PAGE_SIZE_16KB
225
226config IA64_PAGE_SIZE_4KB
227 bool "4KB"
228 help
229 This lets you select the page size of the kernel. For best IA-64
230 performance, a page size of 8KB or 16KB is recommended. For best
231 IA-32 compatibility, a page size of 4KB should be selected (the vast
232 majority of IA-32 binaries work perfectly fine with a larger page
233 size). For Itanium 2 or newer systems, a page size of 64KB can also
234 be selected.
235
236 4KB For best IA-32 compatibility
237 8KB For best IA-64 performance
238 16KB For best IA-64 performance
239 64KB Requires Itanium 2 or newer processor.
240
241 If you don't know what to do, choose 16KB.
242
243config IA64_PAGE_SIZE_8KB
244 bool "8KB"
245
246config IA64_PAGE_SIZE_16KB
247 bool "16KB"
248
249config IA64_PAGE_SIZE_64KB
250 depends on !ITANIUM
251 bool "64KB"
252
253endchoice
254
10d0aa3c
TL
255if IA64_HP_SIM
256config HZ
257 default 32
258endif
259
260if !IA64_HP_SIM
8636a1f9 261source "kernel/Kconfig.hz"
10d0aa3c 262endif
b5d23e5b 263
1da177e4
LT
264config IA64_BRL_EMU
265 bool
266 depends on ITANIUM
267 default y
268
269# align cache-sensitive data to 128 bytes
270config IA64_L1_CACHE_SHIFT
271 int
272 default "7" if MCKINLEY
273 default "6" if ITANIUM
274
1da177e4
LT
275config IA64_CYCLONE
276 bool "Cyclone (EXA) Time Source support"
277 help
278 Say Y here to enable support for IBM EXA Cyclone time source.
279 If you're unsure, answer N.
280
281config IOSAPIC
282 bool
283 depends on !IA64_HP_SIM
284 default y
285
1da177e4 286config FORCE_MAX_ZONEORDER
da9577c5
BP
287 int "MAX_ORDER (11 - 17)" if !HUGETLB_PAGE
288 range 11 17 if !HUGETLB_PAGE
289 default "17" if HUGETLB_PAGE
290 default "11"
1da177e4
LT
291
292config SMP
293 bool "Symmetric multi-processing support"
294 help
295 This enables support for systems with more than one CPU. If you have
296 a system with only one CPU, say N. If you have a system with more
297 than one CPU, say Y.
298
299 If you say N here, the kernel will run on single and multiprocessor
300 systems, but will use only one CPU of a multiprocessor system. If
301 you say Y here, the kernel will run on many, but not all,
302 single processor systems. On a single processor system, the kernel
303 will run faster if you say N here.
304
03502faa
AB
305 See also the SMP-HOWTO available at
306 <http://www.tldp.org/docs.html#howto>.
1da177e4
LT
307
308 If you don't know what to do here, say N.
309
310config NR_CPUS
d1339df1
RH
311 int "Maximum number of CPUs (2-4096)"
312 range 2 4096
1da177e4 313 depends on SMP
d1339df1 314 default "4096"
1da177e4
LT
315 help
316 You should set this to the number of CPUs in your system, but
317 keep in mind that a kernel compiled for, e.g., 2 CPUs will boot but
318 only use 2 CPUs on a >2 CPU system. Setting this to a value larger
319 than 64 will cause the use of a CPU mask array, causing a small
320 performance hit.
321
322config HOTPLUG_CPU
48a9240c
KC
323 bool "Support for hot-pluggable CPUs"
324 depends on SMP
1da177e4
LT
325 default n
326 ---help---
327 Say Y here to experiment with turning CPUs off and on. CPUs
328 can be controlled through /sys/devices/system/cpu/cpu#.
329 Say N if you want to disable CPU hotplug.
330
cc57637b
YG
331config ARCH_ENABLE_MEMORY_HOTPLUG
332 def_bool y
333
0c0e6195
KH
334config ARCH_ENABLE_MEMORY_HOTREMOVE
335 def_bool y
336
7a9bdd88
SS
337config SCHED_SMT
338 bool "SMT scheduler support"
339 depends on SMP
7a9bdd88
SS
340 help
341 Improves the CPU scheduler's decision making when dealing with
342 Intel IA64 chips with MultiThreading at a cost of slightly increased
343 overhead in some places. If unsure say N here.
344
ff741906
AR
345config PERMIT_BSP_REMOVE
346 bool "Support removal of Bootstrap Processor"
347 depends on HOTPLUG_CPU
348 default n
349 ---help---
350 Say Y here if your platform SAL will support removal of BSP with HOTPLUG_CPU
351 support.
352
353config FORCE_CPEI_RETARGET
25985edc 354 bool "Force assumption that CPEI can be re-targeted"
ff741906
AR
355 depends on PERMIT_BSP_REMOVE
356 default n
357 ---help---
25985edc 358 Say Y if you need to force the assumption that CPEI can be re-targeted to
ff741906
AR
359 any cpu in the system. This hint is available via ACPI 3.0 specifications.
360 Tiger4 systems are capable of re-directing CPEI to any CPU other than BSP.
361 This option it useful to enable this feature on older BIOS's as well.
362 You can also enable this by using boot command line option force_cpei=1.
363
da9577c5
BP
364config ARCH_SELECT_MEMORY_MODEL
365 def_bool y
366
367config ARCH_DISCONTIGMEM_ENABLE
368 def_bool y
369 help
370 Say Y to support efficient handling of discontiguous physical memory,
371 for architectures which are either NUMA (Non-Uniform Memory Access)
372 or have huge holes in the physical address space for other reasons.
ad56b738 373 See <file:Documentation/vm/numa.rst> for more.
da9577c5
BP
374
375config ARCH_FLATMEM_ENABLE
376 def_bool y
377
378config ARCH_SPARSEMEM_ENABLE
379 def_bool y
380 depends on ARCH_DISCONTIGMEM_ENABLE
ef229c5a 381 select SPARSEMEM_VMEMMAP_ENABLE
da9577c5
BP
382
383config ARCH_DISCONTIGMEM_DEFAULT
384 def_bool y if (IA64_SGI_SN2 || IA64_GENERIC || IA64_HP_ZX1 || IA64_HP_ZX1_SWIOTLB)
385 depends on ARCH_DISCONTIGMEM_ENABLE
386
387config NUMA
388 bool "NUMA support"
389 depends on !IA64_HP_SIM && !FLATMEM
390 default y if IA64_SGI_SN2
6c33eb39 391 select ACPI_NUMA if ACPI
da9577c5
BP
392 help
393 Say Y to compile the kernel to support NUMA (Non-Uniform Memory
394 Access). This option is for configuring high-end multiprocessor
395 server systems. If in doubt, say N.
396
c80d79d7
YG
397config NODES_SHIFT
398 int "Max num nodes shift(3-10)"
399 range 3 10
c57d68ca 400 default "10"
c80d79d7
YG
401 depends on NEED_MULTIPLE_NODES
402 help
403 This option specifies the maximum number of nodes in your SSI system.
404 MAX_NUMNODES will be 2^(This value).
405 If in doubt, use the default.
406
da9577c5
BP
407# VIRTUAL_MEM_MAP and FLAT_NODE_MEM_MAP are functionally equivalent.
408# VIRTUAL_MEM_MAP has been retained for historical reasons.
409config VIRTUAL_MEM_MAP
410 bool "Virtual mem map"
411 depends on !SPARSEMEM
412 default y if !IA64_HP_SIM
413 help
414 Say Y to compile the kernel with support for a virtual mem map.
415 This code also only takes effect if a memory hole of greater than
416 1 Gb is found during boot. You must turn this option on if you
417 require the DISCONTIGMEM option for your machine. If you are
418 unsure, say Y.
419
420config HOLES_IN_ZONE
421 bool
422 default y if VIRTUAL_MEM_MAP
423
424config HAVE_ARCH_EARLY_PFN_TO_NID
334f85b6 425 def_bool NUMA && SPARSEMEM
da9577c5 426
10ad400b
YG
427config HAVE_ARCH_NODEDATA_EXTENSION
428 def_bool y
429 depends on NUMA
430
3bccd996
LS
431config USE_PERCPU_NUMA_NODE_ID
432 def_bool y
433 depends on NUMA
434
fd1197f1 435config HAVE_MEMORYLESS_NODES
25106000 436 def_bool NUMA
fd1197f1 437
9492587c
KH
438config ARCH_PROC_KCORE_TEXT
439 def_bool y
440 depends on PROC_KCORE
441
1da177e4
LT
442config IA64_MCA_RECOVERY
443 tristate "MCA recovery from errors other than TLB."
444
445config PERFMON
446 bool "Performance monitor support"
d2b2250c 447 depends on BROKEN
1da177e4
LT
448 help
449 Selects whether support for the IA-64 performance monitor hardware
450 is included in the kernel. This makes some kernel data-structures a
451 little bigger and slows down execution a bit, but it is generally
452 a good idea to turn this on. If you're unsure, say Y.
453
454config IA64_PALINFO
455 tristate "/proc/pal support"
456 help
457 If you say Y here, you are able to get PAL (Processor Abstraction
458 Layer) information in /proc/pal. This contains useful information
459 about the processors in your systems, such as cache and TLB sizes
460 and the PAL firmware version in use.
461
462 To use this option, you have to ensure that the "/proc file system
463 support" (CONFIG_PROC_FS) is enabled, too.
464
e9ef08bd
FY
465config IA64_MC_ERR_INJECT
466 tristate "MC error injection support"
467 help
01dd2fbf
ML
468 Adds support for MC error injection. If enabled, the kernel
469 will provide a sysfs interface for user applications to
470 call MC error injection PAL procedures to inject various errors.
e9ef08bd
FY
471 This is a useful tool for MCA testing.
472
473 If you're unsure, do not select this option.
474
466575f4
JS
475config SGI_SN
476 def_bool y if (IA64_SGI_SN2 || IA64_GENERIC)
477
2ab561a1
DMT
478config IA64_ESI
479 bool "ESI (Extensible SAL Interface) support"
480 help
481 If you say Y here, support is built into the kernel to
482 make ESI calls. ESI calls are used to support vendor-specific
483 firmware extensions, such as the ability to inject memory-errors
484 for test-purposes. If you're unsure, say N.
485
28eda5b8
BH
486config IA64_HP_AML_NFW
487 bool "Support ACPI AML calls to native firmware"
488 help
489 This driver installs a global ACPI Operation Region handler for
490 region 0xA1. AML methods can use this OpRegion to call arbitrary
491 native firmware functions. The driver installs the OpRegion
492 handler if there is an HPQ5001 device or if the user supplies
493 the "force" module parameter, e.g., with the "aml_nfw.force"
494 kernel command line option.
495
c1311af1
BC
496source "drivers/sn/Kconfig"
497
a7956113 498config KEXEC
48a9240c
KC
499 bool "kexec system call"
500 depends on !IA64_HP_SIM && (!SMP || HOTPLUG_CPU)
2965faa5 501 select KEXEC_CORE
a7956113
ZN
502 help
503 kexec is a system call that implements the ability to shutdown your
504 current kernel, and to start another kernel. It is like a reboot
3dde6ad8 505 but it is independent of the system firmware. And like a reboot
a7956113
ZN
506 you can start any kernel with it, not just Linux.
507
01dd2fbf 508 The name comes from the similarity to the exec system call.
a7956113
ZN
509
510 It is an ongoing process to be certain the hardware in a machine
511 is properly shutdown, so do not be surprised if this code does not
bf220695
GU
512 initially work for you. As of this writing the exact hardware
513 interface is strongly in flux, so no good recommendation can be
514 made.
a7956113
ZN
515
516config CRASH_DUMP
fb86611f
BW
517 bool "kernel crash dumps"
518 depends on IA64_MCA_RECOVERY && !IA64_HP_SIM && (!SMP || HOTPLUG_CPU)
a7956113
ZN
519 help
520 Generate crash dump after being started by kexec.
521
1da177e4
LT
522source "drivers/firmware/Kconfig"
523
1da177e4
LT
524endmenu
525
1547a012 526menu "Power management and ACPI options"
1da177e4 527
eb7b6b32 528source "kernel/power/Kconfig"
1da177e4
LT
529
530source "drivers/acpi/Kconfig"
531
4db8699b 532if PM
ab423e43
VK
533menu "CPU Frequency scaling"
534source "drivers/cpufreq/Kconfig"
535endmenu
4db8699b
VP
536endif
537
1da177e4
LT
538endmenu
539
1547a012
BH
540source "arch/ia64/hp/sim/Kconfig"
541
1a4b0fc5
JS
542config MSPEC
543 tristate "Memory special operations driver"
544 depends on IA64
545 select IA64_UNCACHED_ALLOCATOR
546 help
547 If you have an ia64 and you want to enable memory special
548 operations support (formerly known as fetchop), say Y here,
549 otherwise say N.