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