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