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