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