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