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