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