projects/linux·blob master · refs

628 lines · 18.3 KiB

1# SPDX-License-Identifier: GPL-2.0
2config ALPHA
3 bool
4 default y
5 select GENERIC_ENTRY
6 select HAVE_SYSCALL_TRACEPOINTS
7 select ARCH_32BIT_USTAT_F_TINODE
8 select ARCH_HAS_CURRENT_STACK_POINTER
9 select ARCH_HAS_DEBUG_VM_PGTABLE
10 select ARCH_HAS_DMA_OPS if PCI
11 select ARCH_HAS_FAST_MULTIPLIER
12 select ARCH_HAS_GCOV_PROFILE_ALL
13 select ARCH_HAS_NON_OVERLAPPING_ADDRESS_SPACE
14 select ARCH_HAS_PTE_SPECIAL
15 select ARCH_HAS_UBSAN
16 select ARCH_MIGHT_HAVE_PC_PARPORT
17 select ARCH_MIGHT_HAVE_PC_SERIO
18 select ARCH_MODULE_NEEDS_WEAK_PER_CPU if SMP
19 select ARCH_NO_PREEMPT
20 select ARCH_NO_SG_CHAIN
21 select ARCH_SUPPORTS_ATOMIC_RMW
22 select ARCH_SUPPORTS_HUGETLBFS
23 select ARCH_SUPPORTS_INT128 if CC_HAS_INT128
24 select ARCH_SUPPORTS_PAGE_TABLE_CHECK
25 select ARCH_USE_CMPXCHG_LOCKREF
26 select ARCH_USE_MEMTEST
27 select FORCE_PCI
28 select PCI_DOMAINS if PCI
29 select PCI_SYSCALL if PCI
30 select HAVE_ARCH_COMPILER_H
31 select HAVE_ASM_MODVERSIONS
32 select HAVE_DEBUG_KMEMLEAK
33 select HAVE_GUP_FAST
34 select HAVE_KERNEL_BZIP2
35 select HAVE_KERNEL_GZIP
36 select HAVE_KERNEL_LZ4
37 select HAVE_KERNEL_LZMA
38 select HAVE_KERNEL_LZO
39 select HAVE_KERNEL_XZ
40 select HAVE_KERNEL_ZSTD
41 select HAVE_PAGE_SIZE_8KB
42 select HAVE_PCSPKR_PLATFORM
43 select HAVE_PERF_EVENTS
44 select HAVE_PERF_REGS
45 select HAVE_PERF_USER_STACK_DUMP
46 select NEED_DMA_MAP_STATE
47 select NEED_SG_DMA_LENGTH
48 select GENERIC_IRQ_PROBE
49 select GENERIC_PCI_IOMAP
50 select AUTO_IRQ_AFFINITY if SMP
51 select GENERIC_IRQ_SHOW
52 select ARCH_WANT_IRQS_OFF_ACTIVATE_MM
53 select ARCH_WANT_IPC_PARSE_VERSION
54 select ARCH_WANT_LD_ORPHAN_WARN
55 select ARCH_HAVE_NMI_SAFE_CMPXCHG
56 select AUDIT_ARCH
57 select EDAC_SUPPORT
58 select GENERIC_CPU_VULNERABILITIES
59 select GENERIC_SMP_IDLE_THREAD
60 select HAS_IOPORT
61 select HAVE_ARCH_AUDITSYSCALL
62 select HAVE_ARCH_SECCOMP
63 select HAVE_ARCH_SECCOMP_FILTER
64 select HAVE_ARCH_THREAD_STRUCT_WHITELIST
65 select HAVE_ARCH_TRACEHOOK
66 select HAVE_MOD_ARCH_SPECIFIC
67 select LOCK_MM_AND_FIND_VMA
68 select MODULES_USE_ELF_RELA
69 select ODD_RT_SIGACTION
70 select OLD_SIGSUSPEND
71 select ARCH_STACKWALK
72 select CPU_NO_EFFICIENT_FFS if !ALPHA_EV67
73 select MMU_GATHER_NO_RANGE
74 select MMU_GATHER_RCU_TABLE_FREE
75 select SPARSE_IRQ
76 select SPARSEMEM_EXTREME if SPARSEMEM
77 select SYSCTL_EXCEPTION_TRACE
78 select ZONE_DMA
79 select TRACE_IRQFLAGS_SUPPORT
80 select ARCH_WANT_FRAME_POINTERS
81 help
82 The Alpha is a 64-bit general-purpose processor designed and
83 marketed by the Digital Equipment Corporation of blessed memory,
84 now Hewlett-Packard. The Alpha Linux project has a home page at
85 <http://www.alphalinux.org/>.
86
87config 64BIT
88 def_bool y
89
90config MMU
91 bool
92 default y
93
94config ARCH_HAS_ILOG2_U32
95 bool
96 default n
97
98config ARCH_HAS_ILOG2_U64
99 bool
100 default n
101
102config GENERIC_CALIBRATE_DELAY
103 bool
104 default y
105
106config GENERIC_ISA_DMA
107 bool
108 default y
109
110config PGTABLE_LEVELS
111 int
112 default 3
113
114config AUDIT_ARCH
115 bool
116
117config STACKTRACE_SUPPORT
118 def_bool y
119
120config LOCKDEP_SUPPORT
121 def_bool y
122
123menu "System setup"
124
125choice
126 prompt "Alpha system type"
127 default ALPHA_GENERIC
128 help
129 This is the system type of your hardware. A "generic" kernel will
130 run on any supported Alpha system. However, if you configure a
131 kernel for your specific system, it will be faster and smaller.
132 Only EV56 (21164A) and later CPUs are supported.
133
134 To find out what type of Alpha system you have, see the system and
135 motherboard lists at
136 <https://alphalinux.org/wiki/hardware:systems> and
137 <https://alphalinux.org/wiki/hardware:motherboards>. In summary:
138
139 Alcor/Alpha-XLT AlphaStation 500, Alpha XL 366, 433
140 DP264 DP264, UP2000(+), DS10, DS10L, DS20, DS20E,
141 ES40, XP900, XP1000
142 Eiger Eiger (OEM)
143 LX164 AlphaPC164-LX
144 Marvel AlphaServer ES47, ES80, GS1280
145 Miata Personal Workstation 433/500/600 a/au
146 Mikasa AlphaServer 1000
147 Nautilus UP1000, UP1100, UP1500
148 Noritake AlphaServer 1000A, 800, AlphaStation 600A,
149 Digital Server 3300
150 PC164 AlphaPC164
151 Rawhide AlphaServer 1200, 4000, 4100,
152 Digital Server 5300, 7300
153 Ruffian RPX164-2, AlphaPC164-UX, AlphaPC164-BX
154 RX164 AlphaPC164-RX
155 SX164 AlphaPC164-SX
156 Sable AlphaServer 2000, 2100
157 Shark AlphaServer DS20L, API NetWorks CS20
158 Takara Takara (OEM)
159 Titan AlphaServer DS15, DS25, ES45, TS202c
160 Wildfire AlphaServer GS80, GS160, GS320
161
162 If you don't know what to do, choose "generic".
163
164config ALPHA_GENERIC
165 bool "Generic"
166 depends on TTY
167 select HAVE_EISA
168 help
169 A generic kernel will run on all supported Alpha hardware.
170
171config ALPHA_ALCOR
172 bool "Alcor/Alpha-XLT"
173 select HAVE_EISA
174 help
175 For systems using the Digital ALCOR chipset: 5 chips (4, 64-bit data
176 slices (Data Switch, DSW) - 208-pin PQFP and 1 control (Control, I/O
177 Address, CIA) - a 383 pin plastic PGA). It provides a DRAM
178 controller (256-bit memory bus) and a PCI interface. It also does
179 all the work required to support an external Bcache and to maintain
180 memory coherence when a PCI device DMAs into (or out of) memory.
181 It is used by the AlphaStation 500 and the Alpha XL 366 and 433.
182
183 See <https://alphalinux.org/wiki/hardware:systems:alcor>.
184
185config ALPHA_DP264
186 bool "DP264"
187 help
188 Various 21264 systems with the tsunami core logic chipset.
189 API NetWorks: 264DP, UP2000(+);
190 Compaq: DS10, DS10L, XP900, XP1000, DS20, DS20E, ES40.
191
192 See:
193 <https://alphalinux.org/wiki/hardware:systems:webbrick>
194 <https://alphalinux.org/wiki/hardware:systems:goldrush>
195 <https://alphalinux.org/wiki/hardware:systems:clipper>
196 <https://alphalinux.org/wiki/hardware:systems:monet>
197 <https://alphalinux.org/wiki/hardware:motherboards:pc264dp>
198 <https://alphalinux.org/wiki/hardware:motherboards:up2000>
199
200config ALPHA_EIGER
201 bool "Eiger"
202 help
203 Apparently an obscure OEM single-board computer based on the
204 Typhoon/Tsunami chipset family. Information on it is scanty.
205
206 See <https://alphalinux.org/wiki/hardware:motherboards:eiger>.
207
208config ALPHA_LX164
209 bool "LX164"
210 help
211 AlphaPC164-LX, a 21164A-based single-board computer using the
212 Pyxis chipset.
213
214 See <https://alphalinux.org/wiki/hardware:motherboards:pc164lx>.
215
216config ALPHA_MARVEL
217 bool "Marvel"
218 help
219 AlphaServer ES47 / ES80 / GS1280 based on EV7.
220
221 See <https://alphalinux.org/wiki/hardware:systems:marvel>.
222
223config ALPHA_MIATA
224 bool "Miata"
225 select HAVE_EISA
226 help
227 The Digital Personal Workstation (PWS 433a, 433au, 500a, 500au,
228 600a, or 600au).
229
230 See <https://alphalinux.org/wiki/hardware:systems:miata>.
231
232config ALPHA_MIKASA
233 bool "Mikasa"
234 help
235 AlphaServer 1000-based Alpha systems.
236
237 See <https://alphalinux.org/wiki/hardware:systems:mikasa>.
238
239config ALPHA_NAUTILUS
240 bool "Nautilus"
241 help
242 UP1000, UP1100 and UP1500 systems based on the AMD 751 or 761
243 chipset.
244
245 See:
246 <https://alphalinux.org/wiki/hardware:motherboards:up1000>
247 <https://alphalinux.org/wiki/hardware:motherboards:up1100>
248 <https://alphalinux.org/wiki/hardware:motherboards:up1500>
249
250config ALPHA_NORITAKE
251 bool "Noritake"
252 select HAVE_EISA
253 help
254 AlphaServer 1000A, AlphaServer 800, AlphaStation 600A and
255 Digital Server 3300 systems.
256
257 See <https://alphalinux.org/wiki/hardware:systems:noritake>.
258
259config ALPHA_PC164
260 bool "PC164"
261 help
262 AlphaPC164, a 21164A-based single-board computer using the CIA
263 chipset.
264
265 See <https://alphalinux.org/wiki/hardware:motherboards:pc164>.
266
267config ALPHA_RAWHIDE
268 bool "Rawhide"
269 select HAVE_EISA
270 help
271 AlphaServer 1200, 4000 and 4100 and Digital Server 5300 and 7300
272 machines.
273
274 See <https://alphalinux.org/wiki/hardware:systems:rawhide>.
275
276config ALPHA_RUFFIAN
277 bool "Ruffian"
278 help
279 DeskStation RPX164-2, AlphaPC164-UX and AlphaPC164-BX boards.
280 They have no SRM console and can only boot Linux through MILO.
281
282 See <https://alphalinux.org/wiki/hardware:motherboards:pc164ux>.
283
284config ALPHA_RX164
285 bool "RX164"
286 help
287 AlphaPC164-RX, a 21164PC-based single-board computer using the
288 Polaris chipset. It has no SRM console and can only boot Linux
289 through MILO.
290
291 See <https://alphalinux.org/wiki/hardware:motherboards:pc164rx>.
292
293config ALPHA_SX164
294 bool "SX164"
295 help
296 AlphaPC164-SX, a 21164PC-based single-board computer using the
297 Pyxis chipset.
298
299 See <https://alphalinux.org/wiki/hardware:motherboards:pc164sx>.
300
301config ALPHA_SABLE
302 bool "Sable"
303 select HAVE_EISA
304 help
305 Digital AlphaServer 2000 and 2100-based systems.
306
307 See <https://alphalinux.org/wiki/hardware:systems:sable>.
308
309config ALPHA_SHARK
310 bool "Shark"
311 help
312 AlphaServer DS20L and API NetWorks CS20 systems based on the
313 Tsunami chipset.
314
315 See <https://alphalinux.org/wiki/hardware:systems:shark>.
316
317config ALPHA_TAKARA
318 bool "Takara"
319 help
320 Alpha 21164-based OEM single-board computer.
321
322 See <https://alphalinux.org/wiki/hardware:motherboards:takara>.
323
324config ALPHA_TITAN
325 bool "Titan"
326 help
327 AlphaServer DS15, DS25, ES45 and TS202c based on EV68 and the
328 Titan chipset.
329
330 See <https://alphalinux.org/wiki/hardware:systems:titan>.
331
332config ALPHA_WILDFIRE
333 bool "Wildfire"
334 help
335 AlphaServer GS80, GS160 and GS320 SMP based on the EV67 or EV68
336 core.
337
338 See <https://alphalinux.org/wiki/hardware:systems:wildfire>.
339
340endchoice
341
342# clear all implied options (don't want default values for those):
343# Most of these machines have ISA slots; not exactly sure which don't,
344# and this doesn't activate hordes of code, so do it always.
345config ISA
346 bool
347 default y
348 help
349 Find out whether you have ISA slots on your motherboard. ISA is the
350 name of a bus system, i.e. the way the CPU talks to the other stuff
351 inside your box. Other bus systems are PCI, EISA, MicroChannel
352 (MCA) or VESA. ISA is an older system, now being displaced by PCI;
353 newer boards don't support it. If you have ISA, say Y, otherwise N.
354
355config ISA_DMA_API
356 bool
357 default y
358
359config ALPHA_CIA
360 bool
361 depends on ALPHA_MIATA || ALPHA_LX164 || ALPHA_SX164 || ALPHA_RUFFIAN || ALPHA_NORITAKE || ALPHA_MIKASA || ALPHA_PC164 || ALPHA_TAKARA || ALPHA_ALCOR
362 default y
363
364config ALPHA_EV56
365 bool
366 default y if ALPHA_ALCOR || ALPHA_RX164 || ALPHA_MIATA || ALPHA_LX164 || ALPHA_SX164 || ALPHA_RUFFIAN || ALPHA_PC164 || ALPHA_TAKARA || ALPHA_NORITAKE || ALPHA_MIKASA || ALPHA_RAWHIDE || ALPHA_SABLE
367
368config ALPHA_T2
369 bool
370 depends on ALPHA_SABLE
371 default y
372
373config ALPHA_PYXIS
374 bool
375 depends on ALPHA_MIATA || ALPHA_LX164 || ALPHA_SX164 || ALPHA_RUFFIAN
376 default y
377
378config ALPHA_EV6
379 bool
380 depends on ALPHA_NAUTILUS || ALPHA_WILDFIRE || ALPHA_TITAN || ALPHA_SHARK || ALPHA_DP264 || ALPHA_EIGER || ALPHA_MARVEL
381 default y
382
383config ALPHA_TSUNAMI
384 bool
385 depends on ALPHA_SHARK || ALPHA_DP264 || ALPHA_EIGER
386 default y
387
388config ALPHA_EV67
389 bool "EV67 (or later) CPU (speed > 600MHz)?" if ALPHA_DP264 || ALPHA_EIGER
390 default y if ALPHA_NAUTILUS || ALPHA_WILDFIRE || ALPHA_TITAN || ALPHA_SHARK || ALPHA_MARVEL
391 help
392 Is this a machine based on the EV67 core? If in doubt, select N here
393 and the machine will be treated as an EV6.
394
395config ALPHA_MCPCIA
396 bool
397 depends on ALPHA_RAWHIDE
398 default y
399
400config ALPHA_POLARIS
401 bool
402 depends on ALPHA_RX164
403 default y
404
405config ALPHA_IRONGATE
406 bool
407 depends on ALPHA_NAUTILUS
408 default y
409
410config GENERIC_HWEIGHT
411 bool
412 default y if !ALPHA_EV67
413
414config ALPHA_BROKEN_IRQ_MASK
415 bool
416 depends on ALPHA_GENERIC || ALPHA_PC164
417 default y
418
419config VGA_HOSE
420 bool
421 depends on VGA_CONSOLE && (ALPHA_GENERIC || ALPHA_TITAN || ALPHA_MARVEL || ALPHA_TSUNAMI)
422 default y
423 help
424 Support VGA on an arbitrary hose; needed for several platforms
425 which always have multiple hoses, and whose consoles support it.
426
427
428config ALPHA_QEMU
429 bool "Run under QEMU emulation"
430 depends on !ALPHA_GENERIC
431 help
432 Assume the presence of special features supported by QEMU PALcode
433 that reduce the overhead of system emulation.
434
435 Generic kernels will auto-detect QEMU. But when building a
436 system-specific kernel, the assumption is that we want to
437 eliminate as many runtime tests as possible.
438
439 If unsure, say N.
440
441
442config ALPHA_SRM
443 bool "Use SRM as bootloader" if ALPHA_PC164 || ALPHA_TAKARA || ALPHA_ALCOR || ALPHA_MIATA || ALPHA_LX164 || ALPHA_SX164 || ALPHA_NAUTILUS
444 depends on TTY
445 default y if ALPHA_MIKASA || ALPHA_SABLE || ALPHA_NORITAKE || ALPHA_DP264 || ALPHA_RAWHIDE || ALPHA_EIGER || ALPHA_WILDFIRE || ALPHA_TITAN || ALPHA_SHARK || ALPHA_MARVEL
446 help
447 There are two different types of booting firmware on Alphas: SRM,
448 which is command line driven, and ARC, which uses menus and arrow
449 keys.
450
451 The usual way to load Linux on an Alpha machine is to use MILO
452 (a bootloader that lets you pass command line parameters to the
453 kernel just like lilo does for the x86 architecture) which can be
454 loaded either from ARC or can be installed directly as a permanent
455 firmware replacement from floppy (which requires changing a certain
456 jumper on the motherboard). If you want to do either of these, say N
457 here. If MILO doesn't work on your system, you can bypass it
458 altogether and boot Linux directly from an SRM console; say Y here
459 in order to do that.
460
461 If unsure, say N.
462
463config ARCH_MAY_HAVE_PC_FDC
464 def_bool y
465
466config SMP
467 bool "Symmetric multi-processing support"
468 depends on ALPHA_SABLE || ALPHA_RAWHIDE || ALPHA_DP264 || ALPHA_WILDFIRE || ALPHA_TITAN || ALPHA_GENERIC || ALPHA_SHARK || ALPHA_MARVEL
469 help
470 This enables support for systems with more than one CPU. If you have
471 a system with only one CPU, say N. If you have a system with more
472 than one CPU, say Y.
473
474 If you say N here, the kernel will run on uni- and multiprocessor
475 machines, but will use only one CPU of a multiprocessor machine. If
476 you say Y here, the kernel will run on many, but not all,
477 uniprocessor machines. On a uniprocessor machine, the kernel
478 will run faster if you say N here.
479
480 See also the SMP-HOWTO available at
481 <https://www.tldp.org/docs.html#howto>.
482
483 If you don't know what to do here, say N.
484
485config NR_CPUS
486 int "Maximum number of CPUs (2-32)"
487 range 2 32
488 depends on SMP
489 default "32" if ALPHA_GENERIC || ALPHA_MARVEL || ALPHA_WILDFIRE
490 default "4"
491 help
492 The kernel supports at most 32 CPUs. Only Marvel and Wildfire
493 systems have more than 4.
494
495config ARCH_SPARSEMEM_ENABLE
496 bool "Sparse Memory Support"
497 help
498 Say Y to support efficient handling of discontiguous physical memory,
499 for systems that have huge holes in the physical address space.
500
501config ALPHA_WTINT
502 bool "Use WTINT" if ALPHA_SRM || ALPHA_GENERIC
503 default y if ALPHA_QEMU
504 default n if ALPHA_EV56
505 default n if !ALPHA_SRM && !ALPHA_GENERIC
506 default y if SMP
507 help
508 The Wait for Interrupt (WTINT) PALcall attempts to place the CPU
509 to sleep until the next interrupt. This may reduce the power
510 consumed, and the heat produced by the computer. However, it has
511 the side effect of making the cycle counter unreliable as a timing
512 device across the sleep.
513
514 For emulation under QEMU, definitely say Y here, as we have other
515 mechanisms for measuring time than the cycle counter.
516
517 For EV56 systems, or for systems running MILO, sleep mode is not
518 supported so you might as well say N here.
519
520 For SMP systems we cannot use the cycle counter for timing anyway,
521 so you might as well say Y here.
522
523 If unsure, say N.
524
525# LARGE_VMALLOC is racy, if you *really* need it then fix it first
526config ALPHA_LARGE_VMALLOC
527 bool
528 help
529 Process creation and other aspects of virtual memory management can
530 be streamlined if we restrict the kernel to one PGD for all vmalloc
531 allocations. This equates to about 8GB.
532
533 Under normal circumstances, this is so far and above what is needed
534 as to be laughable. However, there are certain applications (such
535 as benchmark-grade in-kernel web serving) that can make use of as
536 much vmalloc space as is available.
537
538 Say N unless you know you need gobs and gobs of vmalloc space.
539
540config VERBOSE_MCHECK
541 bool "Verbose Machine Checks"
542
543config VERBOSE_MCHECK_ON
544 int "Verbose Printing Mode (0=off, 1=on, 2=all)"
545 depends on VERBOSE_MCHECK
546 default 1
547 help
548 This option allows the default printing mode to be set, and then
549 possibly overridden by a boot command argument.
550
551 For example, if one wanted the option of printing verbose
552 machine checks, but wanted the default to be as if verbose
553 machine check printing was turned off, then one would choose
554 the printing mode to be 0. Then, upon reboot, one could add
555 the boot command line "verbose_mcheck=1" to get the normal
556 verbose machine check printing, or "verbose_mcheck=2" to get
557 the maximum information available.
558
559 Take the default (1) unless you want more control or more info.
560
561choice
562 prompt "Timer interrupt frequency (HZ)?"
563 default HZ_128 if ALPHA_QEMU
564 default HZ_1200 if ALPHA_RAWHIDE
565 default HZ_1024
566 help
567 The frequency at which timer interrupts occur. A high frequency
568 minimizes latency, whereas a low frequency minimizes overhead of
569 process accounting. The later effect is especially significant
570 when being run under QEMU.
571
572 Note that some Alpha hardware cannot change the interrupt frequency
573 of the timer. If unsure, say 1024 (or 1200 for Rawhide).
574
575 config HZ_32
576 bool "32 Hz"
577 config HZ_64
578 bool "64 Hz"
579 config HZ_128
580 bool "128 Hz"
581 config HZ_256
582 bool "256 Hz"
583 config HZ_1024
584 bool "1024 Hz"
585 config HZ_1200
586 bool "1200 Hz"
587endchoice
588
589config HZ
590 int
591 default 32 if HZ_32
592 default 64 if HZ_64
593 default 128 if HZ_128
594 default 256 if HZ_256
595 default 1200 if HZ_1200
596 default 1024
597
598config SRM_ENV
599 tristate "SRM environment through procfs"
600 depends on PROC_FS
601 help
602 If you enable this option, a subdirectory inside /proc called
603 /proc/srm_environment will give you access to the all important
604 SRM environment variables (those which have a name) and also
605 to all others (by their internal number).
606
607 SRM is something like a BIOS for Alpha machines. There are some
608 other such BIOSes, like AlphaBIOS, which this driver cannot
609 support (hey, that's not SRM!).
610
611 Despite the fact that this driver doesn't work on all Alphas (but
612 only on those which have SRM as their firmware), it's save to
613 build it even if your particular machine doesn't know about SRM
614 (or if you intend to compile a generic kernel). It will simply
615 not create those subdirectory in /proc (and give you some warning,
616 of course).
617
618 This driver is also available as a module and will be called
619 srm_env then.
620
621endmenu
622
623# DUMMY_CONSOLE may be defined in drivers/video/console/Kconfig
624# but we also need it if VGA_HOSE is set
625config DUMMY_CONSOLE
626 bool
627 depends on VGA_HOSE
628 default y