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