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