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