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