source: mainline/HelenOS.config@ 69b6dd1f

lfn serial ticket/834-toolchain-update topic/msim-upgrade topic/simplify-dev-export
Last change on this file since 69b6dd1f was 84176f3, checked in by Jakub Jermář <jakub@…>, 6 years ago

arm64: Add support for the architecture

This changeset adds basic support to run HelenOS on AArch64, targeting
the QEMU virt platform.

Boot:

  • Boot relies on the EDK II firmware, GRUB2 for EFI and the HelenOS bootloader (UEFI application). EDK II loads GRUB2 from a CD, GRUB2 loads the HelenOS bootloader (via UEFI) which loads OS components.
  • UEFI applications use the PE/COFF format and must be relocatable. The first problem is solved by manually having the PE/COFF headers and tables written in assembler. The relocatable requirement is addressed by compiling the code with -fpic and having the bootloader relocate itself at its startup.

Kernel:

  • Kernel code for AArch64 consists mostly of stubbing out various architecture-specific hooks: virtual memory management, interrupt and exception handling, context switching (including FPU lazy switching), support for virtual timer, atomic sequences and barriers, cache and TLB maintenance, thread and process initialization.
  • The patch adds a kernel driver for GICv2 (interrupt controller).
  • The PL011 kernel driver is extended to allow userspace to take ownership of the console.
  • The current code is not able to dynamically obtain information about available devices on the underlying machine. The port instead implements a machine-func interface similar to the one implemented by arm32. It defines a machine for the QEMU AArch64 virt platform. The configuration (device addresses and IRQ numbers) is then baked into the machine definition.

User space:

  • Uspace code for AArch64 similarly mostly implements architecture-specific hooks: context saving/restoring, syscall support, TLS support.

The patchset allows to boot the system but user interaction with the OS
is not yet possible.

  • Property mode set to 100644
File size: 18.9 KB
Line 
1#
2# Copyright (c) 2006 Ondrej Palkovsky
3# Copyright (c) 2009 Martin Decky
4# All rights reserved.
5#
6# Redistribution and use in source and binary forms, with or without
7# modification, are permitted provided that the following conditions
8# are met:
9#
10# - Redistributions of source code must retain the above copyright
11# notice, this list of conditions and the following disclaimer.
12# - Redistributions in binary form must reproduce the above copyright
13# notice, this list of conditions and the following disclaimer in the
14# documentation and/or other materials provided with the distribution.
15# - The name of the author may not be used to endorse or promote products
16# derived from this software without specific prior written permission.
17#
18# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
19# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
20# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
21# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
22# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
23# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
24# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
25# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
26# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
27# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28#
29
30## General platform options
31
32% Platform
33@ "abs32le" abstract 32-bit little endian
34@ "amd64" AMD64/EM64T 64-bit (PC)
35@ "arm32" ARM 32-bit
36@ "arm64" ARM 64-bit (AArch64)
37@ "ia32" IA-32 32-bit (PC)
38@ "ia64" IA-64 64-bit
39@ "mips32" MIPS 32-bit
40@ "ppc32" PowerPC 32-bit
41@ "riscv64" RISC-V 64-bit
42@ "sparc64" SPARCv9 64-bit
43! PLATFORM (choice)
44
45% Machine type
46@ "msim" MSIM
47@ "bmalta" MIPS Malta Development Board big endian
48@ "lmalta" MIPS Malta Development Board little endian
49! [PLATFORM=mips32] MACHINE (choice)
50
51% Machine type
52@ "i460GX" i460GX chipset machine
53@ "ski" Ski ia64 simulator
54! [PLATFORM=ia64] MACHINE (choice)
55
56% Machine type
57@ "generic" Generic Sun workstation or server
58! [PLATFORM=sparc64] MACHINE (choice)
59
60% Machine type
61@ "gta02" GTA02 / Neo FreeRunner
62@ "integratorcp" Integratorcp
63@ "beagleboardxm" BeagleBoard-xM
64@ "beaglebone" BeagleBone
65@ "raspberrypi" Raspberry Pi
66! [PLATFORM=arm32] MACHINE (choice)
67
68% Machine type
69@ "virt" QEMU virt
70! [PLATFORM=arm64] MACHINE (choice)
71
72% CPU type
73@ "pentium4" Pentium 4
74@ "pentium3" Pentium 3
75@ "core" Core Solo/Duo
76@ "athlon_xp" Athlon XP
77@ "athlon_mp" Athlon MP
78@ "i486" i486
79! [PLATFORM=ia32] PROCESSOR (choice)
80
81% CPU type
82@ "opteron" Opteron
83! [PLATFORM=amd64] PROCESSOR (choice)
84
85% CPU type
86@ "us" UltraSPARC I-II subarchitecture
87@ "us3" UltraSPARC III-IV subarchitecture
88@ "sun4v" Niagara (sun4v)
89! [PLATFORM=sparc64&MACHINE=generic] PROCESSOR (choice)
90
91% Quad float type
92@ "hard" Hardware
93@ "soft" Software
94! [PLATFORM=sparc64] QUADFLOAT (choice)
95
96% CPU type
97@ "cortex_a8" ARM Cortex A-8
98! [PLATFORM=arm32&(MACHINE=beagleboardxm|MACHINE=beaglebone)] PROCESSOR (choice)
99
100% CPU type
101@ "arm920t" ARM920T
102! [PLATFORM=arm32&MACHINE=gta02] PROCESSOR (choice)
103
104% CPU type
105@ "arm926ej_s" ARM926EJ-S
106! [PLATFORM=arm32&MACHINE=integratorcp] PROCESSOR (choice)
107
108% CPU type
109@ "arm1176jzf_s" ARM1176JZF-S
110! [PLATFORM=arm32&MACHINE=raspberrypi] PROCESSOR (choice)
111
112# Add more ARMv4 CPUs
113% CPU arch
114@ "armv4" ARMv4
115! [PLATFORM=arm32&(PROCESSOR=arm920t)] PROCESSOR_ARCH (choice)
116
117# Add more ARMv5 CPUs
118% CPU arch
119@ "armv5" ARMv5
120! [PLATFORM=arm32&(PROCESSOR=arm926ej_s)] PROCESSOR_ARCH (choice)
121
122# Add more ARMv6 CPUs
123% CPU arch
124@ "armv6" ARMv6
125! [PLATFORM=arm32&(PROCESSOR=arm1176jzf_s)] PROCESSOR_ARCH (choice)
126
127# Add more ARMv7-A CPUs
128% CPU arch
129@ "armv7_a" ARMv7-A
130! [PLATFORM=arm32&(PROCESSOR=cortex_a8)] PROCESSOR_ARCH (choice)
131
132% CPU type
133@ "R4000" MIPS R4000
134! [PLATFORM=mips32&MACHINE=msim] PROCESSOR (choice)
135
136% CPU type
137@ "4Kc" MIPS 4Kc
138! [PLATFORM=mips32&(MACHINE=bmalta|MACHINE=lmalta)] PROCESSOR (choice)
139
140% Kernel memory model
141@ "kernel" Kernel
142@ "large" Large
143! [PLATFORM=amd64] MEMORY_MODEL (choice)
144
145% RAM disk format
146@ "tmpfs" TMPFS image
147@ "fat" FAT16 image
148@ "ext4fs" ext4 image
149! RDFMT (choice)
150
151
152## Mapping between platform and kernel architecture
153
154% Kernel architecture
155@ "abs32le"
156! [PLATFORM=abs32le] KARCH (choice)
157
158% Kernel architecture
159@ "amd64"
160! [PLATFORM=amd64] KARCH (choice)
161
162% Kernel architecture
163@ "arm32"
164! [PLATFORM=arm32] KARCH (choice)
165
166% Kernel architecture
167@ "arm64"
168! [PLATFORM=arm64] KARCH (choice)
169
170% Kernel architecture
171@ "ia32"
172! [PLATFORM=ia32] KARCH (choice)
173
174% Kernel architecture
175@ "ia32xen"
176! [PLATFORM=ia32xen] KARCH (choice)
177
178% Kernel architecture
179@ "ia64"
180! [PLATFORM=ia64] KARCH (choice)
181
182% Kernel architecture
183@ "mips32"
184! [PLATFORM=mips32] KARCH (choice)
185
186% Kernel architecture
187@ "ppc32"
188! [PLATFORM=ppc32] KARCH (choice)
189
190% Kernel architecture
191@ "ppc64"
192! [PLATFORM=ppc64] KARCH (choice)
193
194% Kernel architecture
195@ "riscv64"
196! [PLATFORM=riscv64] KARCH (choice)
197
198% Kernel architecture
199@ "sparc64"
200! [PLATFORM=sparc64] KARCH (choice)
201
202
203## Mapping between platform and user space architecture
204
205% User space architecture
206@ "abs32le"
207! [PLATFORM=abs32le] UARCH (choice)
208
209% User space architecture
210@ "amd64"
211! [PLATFORM=amd64] UARCH (choice)
212
213% User space architecture
214@ "arm32"
215! [PLATFORM=arm32] UARCH (choice)
216
217% User space architecture
218@ "arm64"
219! [PLATFORM=arm64] UARCH (choice)
220
221% User space architecture
222@ "ia32"
223! [PLATFORM=ia32|PLATFORM=ia32xen] UARCH (choice)
224
225% User space architecture
226@ "ia64"
227! [PLATFORM=ia64] UARCH (choice)
228
229% User space architecture
230@ "mips32"
231! [PLATFORM=mips32&(MACHINE=msim|MACHINE=lmalta)] UARCH (choice)
232
233% User space architecture
234@ "mips32eb"
235! [PLATFORM=mips32&MACHINE=bmalta] UARCH (choice)
236
237% User space architecture
238@ "ppc32"
239! [PLATFORM=ppc32] UARCH (choice)
240
241% User space architecture
242@ "ppc64"
243! [PLATFORM=ppc64] UARCH (choice)
244
245% User space architecture
246@ "riscv64"
247! [PLATFORM=riscv64] UARCH (choice)
248
249% User space architecture
250@ "sparc64"
251! [PLATFORM=sparc64] UARCH (choice)
252
253
254## Mapping between platform and boot architecture
255
256% Boot architecture
257@ "abs32le"
258! [PLATFORM=abs32le] BARCH (choice)
259
260% Boot architecture
261@ "amd64"
262! [PLATFORM=amd64] BARCH (choice)
263
264% Boot architecture
265@ "arm32"
266! [PLATFORM=arm32] BARCH (choice)
267
268% Boot architecture
269@ "arm64"
270! [PLATFORM=arm64] BARCH (choice)
271
272% Boot architecture
273@ "ia32"
274! [PLATFORM=ia32] BARCH (choice)
275
276% Boot architecture
277@ "ia32xen"
278! [PLATFORM=ia32xen] BARCH (choice)
279
280% Boot architecture
281@ "ia64"
282! [PLATFORM=ia64] BARCH (choice)
283
284% Boot architecture
285@ "mips32"
286! [PLATFORM=mips32] BARCH (choice)
287
288% Boot architecture
289@ "ppc32"
290! [PLATFORM=ppc32] BARCH (choice)
291
292% Boot architecture
293@ "ppc64"
294! [PLATFORM=ppc64] BARCH (choice)
295
296% Boot architecture
297@ "riscv64"
298! [PLATFORM=riscv64] BARCH (choice)
299
300% Boot architecture
301@ "sparc64"
302! [PLATFORM=sparc64] BARCH (choice)
303
304
305## Mapping between platform and image format
306
307% Image format
308@ "binary"
309! [PLATFORM=mips32&MACHINE=msim] IMAGE (choice)
310
311% Image format
312@ "elf"
313! [PLATFORM=mips32&(MACHINE=bmalta|MACHINE=lmalta)] IMAGE (choice)
314
315
316## Compiler options
317
318% Compiler
319@ "gcc_cross" GNU C Compiler (HelenOS-specific cross-compiler)
320@ "clang" Clang
321! COMPILER (choice)
322
323% Clang Integrated Assembler
324@ "default" Use architecture default.
325@ "yes" Use integrated assembler.
326@ "no" Use GNU Assembler.
327! [COMPILER=clang] INTEGRATED_AS (choice)
328
329## Cross-compiler target for abstract architecture
330
331% Cross-compiler target
332@ "arm32" ARM 32-bit
333@ "ia32" Intel IA-32
334@ "mips32" MIPS 32-bit
335! [PLATFORM=abs32le&COMPILER=gcc_cross] CROSS_TARGET (choice)
336
337
338## Kernel configuration
339
340% Fences
341! [PLATFORM=ia32&(PROCESSOR=athlon_xp|PROCESSOR=athlon_mp|PROCESSOR=pentium3)] CONFIG_FENCES_P3 (y)
342
343% Fences
344! [PLATFORM=ia32&(PROCESSOR=pentium4|PROCESSOR=core)] CONFIG_FENCES_P4 (y)
345
346% Fences
347! [PLATFORM=amd64] CONFIG_FENCES_P4 (y)
348
349% IOMAP bitmap support
350! [PLATFORM=ia32|PLATFORM=amd64] CONFIG_IOMAP_BITMAP (y)
351
352% IOMAP dummy support
353! [PLATFORM=abs32le|PLATFORM=arm32|PLATFORM=arm64|PLATFORM=mips32|PLATFORM=ppc32|PLATFORM=riscv64|PLATFORM=sparc64] CONFIG_IOMAP_DUMMY (y)
354
355% ACPI support
356! [PLATFORM=ia32|PLATFORM=amd64] CONFIG_ACPI (y)
357
358% Hierarchical page tables support
359! [PLATFORM=abs32le|PLATFORM=ia32|PLATFORM=amd64|PLATFORM=arm32|PLATFORM=arm64|PLATFORM=mips32|PLATFORM=ppc32|PLATFORM=riscv64] CONFIG_PAGE_PT (y)
360
361% Page hash table support
362! [PLATFORM=ia64|PLATFORM=sparc64] CONFIG_PAGE_HT (y)
363
364% Software integer division support
365! [PLATFORM=abs32le|PLATFORM=ia32|PLATFORM=arm32|PLATFORM=ia64|PLATFORM=mips32|PLATFORM=ppc32] CONFIG_SOFTINT (y)
366
367% ASID support
368! [PLATFORM=arm64|PLATFORM=ia64|PLATFORM=mips32|PLATFORM=ppc32|PLATFORM=sparc64] CONFIG_ASID (y)
369
370% ASID FIFO support
371! [PLATFORM=arm64|PLATFORM=ia64|PLATFORM=mips32|PLATFORM=ppc32|PLATFORM=sparc64] CONFIG_ASID_FIFO (y)
372
373% OpenFirmware tree support
374! [PLATFORM=ppc32|PLATFORM=sparc64] CONFIG_OFW_TREE (y)
375
376% OpenFirmware PCI bus support
377! [PLATFORM=sparc64] CONFIG_OFW_PCI (y)
378
379% Multiboot standard support
380! [PLATFORM=ia32|PLATFORM=amd64] CONFIG_MULTIBOOT (y)
381
382% FPU support
383! [PLATFORM=ia32|PLATFORM=amd64|PLATFORM=arm64|PLATFORM=ia64|PLATFORM=ppc32|PLATFORM=sparc64] CONFIG_FPU (y)
384
385## ARMv7 made FPU hardware compulsory
386% FPU support
387! [PLATFORM=arm32&PROCESSOR_ARCH=armv7_a] CONFIG_FPU (y)
388
389% FPU support
390! [PLATFORM=arm32&MACHINE=integratorcp] CONFIG_FPU (y)
391
392
393## Kernel features options
394
395% Support for SMP
396! [(PLATFORM=ia32&PROCESSOR!=athlon_xp)|PLATFORM=amd64|PLATFORM=arm64|PLATFORM=sparc64|PLATFORM=ia64|(PLATFORM=mips32&MACHINE=msim)|PLATFORM=abs32le] CONFIG_SMP (y/n)
397
398% Debug build
399! CONFIG_DEBUG (y/n)
400
401% Sanitize undefined behavior (userspace)
402! CONFIG_UBSAN (n/y)
403
404% Sanitize undefined behavior (kernel)
405! CONFIG_UBSAN_KERNEL (n/y)
406
407% Track owner for futexes in userspace.
408! CONFIG_DEBUG_FUTEX (y/n)
409
410% Deadlock detection support for spinlocks
411! [CONFIG_DEBUG=y&CONFIG_SMP=y] CONFIG_DEBUG_SPINLOCK (y/n)
412
413% Lazy FPU context switching
414! [CONFIG_FPU=y] CONFIG_FPU_LAZY (y/n)
415
416% Use VHPT
417! [PLATFORM=ia64] CONFIG_VHPT (n/y)
418
419% Use TSB
420! [PLATFORM=sparc64] CONFIG_TSB (y/n)
421
422% IO SAPIC on default address support
423! [PLATFORM=ia64&MACHINE!=ski] CONFIG_IOSAPIC (y/n)
424
425% Support for Intel i8259 PIC
426! [PLATFORM=ia32|PLATFORM=amd64|(PLATFORM=mips32&MACHINE=bmalta)|(PLATFORM=mips32&MACHINE=lmalta)] CONFIG_I8259 (y)
427
428% Virtually indexed D-cache support
429! [PLATFORM=sparc64] CONFIG_VIRT_IDX_DCACHE (y/n)
430
431% Support for userspace debuggers
432! CONFIG_UDEBUG (y/n)
433
434% Kernel console support
435! CONFIG_KCONSOLE (y/n)
436
437% Kernel symbol information
438! CONFIG_SYMTAB (y/n)
439
440% Detailed kernel logging
441! CONFIG_LOG (n/y)
442
443% Kernel function tracing
444! CONFIG_TRACE (n/y)
445
446% Compile kernel tests
447! CONFIG_TEST (y/n)
448
449% Use link-time optimization
450! [COMPILER=gcc_cross] CONFIG_LTO (n/y)
451
452% Compress init data
453! CONFIG_COMPRESSED_INIT (y/n)
454
455## User space features options
456
457## Hardware support
458
459% Input device class
460@ "generic" Keyboard or serial line
461! [(PLATFORM=arm32&MACHINE=integratorcp)|PLATFORM=arm64] CONFIG_HID_IN (choice)
462
463% Input device class
464@ "generic" Keyboard or serial line
465@ "none" No input device
466! [PLATFORM=ia32|PLATFORM=amd64|PLATFORM=mips32|PLATFORM=ppc32|PLATFORM=riscv64|PLATFORM=sparc64] CONFIG_HID_IN (choice)
467
468% Input device class
469@ "generic" Keyboard or serial line
470@ "keyboard" Keyboard
471@ "serial" Serial line
472@ "none" No input device
473! [PLATFORM=ia64&MACHINE=i460GX] CONFIG_HID_IN (choice)
474
475% Output device class
476@ "generic" Monitor or serial line
477! [(PLATFORM=arm32&(MACHINE=gta02|MACHINE=integratorcp|MACHINE=beagleboardxm|MACHINE=beaglebone|MACHINE=raspberrypi))|PLATFORM=arm64] CONFIG_HID_OUT (choice)
478
479% Output device class
480@ "generic" Monitor or serial line
481@ "none" No output device
482! [PLATFORM=ia32|PLATFORM=amd64|PLATFORM=sparc64|PLATFORM=ppc32|(PLATFORM=ia64&MACHINE=i460GX)|(PLATFORM=mips32&(MACHINE=msim|MACHINE=bmalta|MACHINE=lmalta))|PLATFORM=riscv64] CONFIG_HID_OUT (choice)
483
484% PC keyboard support
485! [(CONFIG_HID_IN=generic|CONFIG_HID_IN=keyboard)&(PLATFORM=ia32|PLATFORM=amd64)] CONFIG_PC_KBD (y/n)
486
487% PC keyboard support
488! [(CONFIG_HID_IN=generic|CONFIG_HID_IN=keyboard)&PLATFORM=ia64&MACHINE=i460GX] CONFIG_PC_KBD (y/n)
489
490% PC keyboard support
491! [(CONFIG_HID_IN=generic|CONFIG_HID_IN=keyboard)&PLATFORM=arm32&MACHINE=integratorcp] CONFIG_AT_KBD (y/n)
492
493% Support for msim keyboard
494! [CONFIG_HID_IN=generic&MACHINE=msim] CONFIG_MSIM_KBD (y/n)
495
496% Support for msim printer
497! [(CONFIG_HID_OUT=generic|CONFIG_HID_OUT=serial)&MACHINE=msim] CONFIG_MSIM_PRN (y/n)
498
499% Support for VIA CUDA controller
500! [CONFIG_HID_IN=generic&PLATFORM=ppc32] CONFIG_VIA_CUDA (y/n)
501
502% Support for NS16550 controller
503! [(CONFIG_HID_IN=generic|CONFIG_HID_IN=keyboard)&PLATFORM=sparc64&MACHINE=generic] CONFIG_NS16550 (y/n)
504
505% Support for NS16550 controller
506! [(CONFIG_HID_IN=generic|CONFIG_HID_IN=serial)&PLATFORM=ia64&MACHINE=i460GX] CONFIG_NS16550 (y/n)
507
508% Support for NS16550 controller
509! [CONFIG_HID_IN=generic&PLATFORM=mips32&(MACHINE=lmalta|MACHINE=bmalta)] CONFIG_NS16550 (y)
510
511% Support for PL011 UART
512! [(CONFIG_HID_OUT=generic|CONFIG_HID_OUT=serial)&(PLATFORM=arm32&(MACHINE=integratorcp|MACHINE=raspberrypi))] CONFIG_PL011_UART (y/n)
513
514% Support for PL011 UART
515! [CONFIG_HID_OUT=generic|(PLATFORM=arm64&MACHINE=virt)] CONFIG_PL011_UART (y)
516
517% Support for NS16550 controller (kernel console)
518! [(CONFIG_HID_IN=generic|CONFIG_HID_IN=serial|CONFIG_HID_OUT=generic|CONFIG_HID_OUT=serial)&(PLATFORM=ia32|PLATFORM=amd64)] CONFIG_NS16550_KCON (y/n)
519
520% Use NS16550 controller as serial input (kernel console)
521! [(CONFIG_HID_IN=generic|CONFIG_HID_IN=serial)&(PLATFORM=ia32|PLATFORM=amd64)&CONFIG_NS16550_KCON=y] CONFIG_NS16550 (y)
522
523% Use NS16550 controller as dummy serial output (kernel console)
524! [(CONFIG_HID_OUT=generic|CONFIG_HID_OUT=serial)&(PLATFORM=ia32|PLATFORM=amd64)&CONFIG_NS16550_KCON=y] CONFIG_NS16550_OUT (y)
525
526% Use NS16550 controller as dummy serial output (kernel console)
527! [CONFIG_HID_OUT=generic&PLATFORM=mips32&(MACHINE=lmalta|MACHINE=bmalta)] CONFIG_NS16550_OUT (y)
528
529% Support for Samsung S3C24XX on-chip UART
530! [(CONFIG_HID_OUT=generic|CONFIG_HID_OUT=serial)&PLATFORM=arm32&MACHINE=gta02] CONFIG_S3C24XX_UART (y/n)
531
532% Support for Samsung S3C24XX on-chip interrupt controller
533! [PLATFORM=arm32&MACHINE=gta02] CONFIG_S3C24XX_IRQC (y)
534
535% Support for TI AM335x timers support
536! [PLATFORM=arm32&MACHINE=beaglebone] CONFIG_AM335X_TIMERS (y)
537
538% Support for OMAP on-chip UART
539! [(CONFIG_HID_OUT=generic|CONFIG_HID_OUT=serial)&PLATFORM=arm32&(MACHINE=beagleboardxm|MACHINE=beaglebone)] CONFIG_OMAP_UART (y/n)
540
541% Support for BCM2835 mailbox
542! [PLATFORM=arm32&MACHINE=raspberrypi] CONFIG_BCM2835_MAILBOX (y/n)
543
544% Support for ARM GICv2
545! [PLATFORM=arm64&MACHINE=virt] CONFIG_GICV2 (y)
546
547% Support for i8042 controller
548! [CONFIG_PC_KBD=y] CONFIG_I8042 (y)
549
550% Support for pl050 controller
551! [CONFIG_HID_IN=generic&PLATFORM=arm32&MACHINE=integratorcp] CONFIG_PL050 (y)
552
553% Sun keyboard support
554! [(CONFIG_HID_IN=generic|CONFIG_HID_IN=keyboard)&PLATFORM=sparc64&MACHINE=generic&CONFIG_NS16550=y] CONFIG_SUN_KBD (y)
555
556% Macintosh ADB keyboard support
557! [(CONFIG_HID_IN=generic|CONFIG_HID_IN=keyboard)&PLATFORM=ppc32&(CONFIG_VIA_CUDA=y)] CONFIG_MAC_KBD (y)
558
559% Dummy serial line input
560! [CONFIG_MSIM_KBD=y|CONFIG_ARM_KBD=y] CONFIG_DSRLNIN (y)
561
562% Dummy serial line output
563! [CONFIG_MSIM_PRN=y|CONFIG_ARM_PRN=y] CONFIG_DSRLNOUT (y)
564
565% Serial line input module
566! [CONFIG_DSRLNIN=y|(PLATFORM=arm32&MACHINE=gta02)|(PLATFORM=arm32&MACHINE=integratorcp&CONFIG_PL011_UART=y)|(PLATFORM=arm32&MACHINE=beaglebone&CONFIG_OMAP_UART=y)|(PLATFORM=arm32&MACHINE=beagleboardxm&CONFIG_OMAP_UART=y)|(PLATFORM=arm64&CONFIG_PL011_UART=y)|(PLATFORM=ia64&MACHINE=i460GX&CONFIG_NS16550=y)|(PLATFORM=ia64&MACHINE=ski)|(PLATFORM=sparc64&PROCESSOR=sun4v)|(PLATFORM=arm32&MACHINE=raspberrypi&CONFIG_PL011_UART=y)|(PLATFORM=ia32&CONFIG_NS16550=y)|(PLATFORM=amd64&CONFIG_NS16550=y)|(PLATFORM=mips32&CONFIG_NS16550=y)] CONFIG_SRLN (y)
567
568% EGA support
569! [CONFIG_HID_OUT=generic&(PLATFORM=ia32|PLATFORM=amd64)] CONFIG_EGA (y/n)
570
571% EGA support
572! [CONFIG_HID_OUT=generic&PLATFORM=ia64&MACHINE=i460GX] CONFIG_EGA (y/n)
573
574% Framebuffer support
575! [CONFIG_HID_OUT=generic&(PLATFORM=ia32|PLATFORM=amd64|PLATFORM=ppc32)] CONFIG_FB (y/n)
576
577% Framebuffer support
578! [(CONFIG_HID_OUT=generic|CONFIG_HID_OUT=monitor)&PLATFORM=arm32] CONFIG_FB (y/n)
579
580% Framebuffer support
581! [(CONFIG_HID_OUT=generic|CONFIG_HID_OUT=monitor)&PLATFORM=sparc64&MACHINE=generic] CONFIG_FB (y/n)
582
583% Default framebuffer mode
584@ "640x480"
585@ "800x600"
586@ "1024x768"
587@ "1152x720"
588@ "1152x864"
589@ "1280x720"
590@ "1280x800"
591@ "1280x960"
592@ "1280x1024"
593@ "1400x1050"
594@ "1440x900"
595@ "1440x1050"
596@ "1600x1200"
597@ "1920x1080"
598@ "1920x1200"
599! [(PLATFORM=ia32|PLATFORM=amd64|MACHINE=beagleboardxm)&CONFIG_HID_OUT!=none&CONFIG_FB=y] CONFIG_BFB_MODE (choice)
600
601% Default framebuffer depth
602@ "8"
603@ "16"
604@ "24"
605@ "32"
606! [(PLATFORM=ia32|PLATFORM=amd64|MACHINE=beagleboardxm)&CONFIG_HID_OUT!=none&CONFIG_FB=y] CONFIG_BFB_BPP (choice)
607
608% Start AP processors by the loader
609! [PLATFORM=sparc64&CONFIG_SMP=y] CONFIG_AP (y/n)
610
611% Dynamic linking support
612! [PLATFORM=amd64|PLATFORM=arm32|PLATFORM=ia32|PLATFORM=ppc32|PLATFORM=sparc64] CONFIG_RTLD (y/n)
613! [PLATFORM=abs32le|PLATFORM=arm64|PLATFORM=ia64|PLATFORM=mips32|PLATFORM=riscv64] CONFIG_RTLD (n)
614
615% Build shared libraries
616! [CONFIG_RTLD=y] CONFIG_BUILD_SHARED_LIBS (n/y)
617! [CONFIG_RTLD=n] CONFIG_BUILD_SHARED_LIBS (n)
618
619% Link against shared libraries
620! [CONFIG_BUILD_SHARED_LIBS=y] CONFIG_USE_SHARED_LIBS (n/y)
621! [CONFIG_BUILD_SHARED_LIBS=n] CONFIG_USE_SHARED_LIBS (n)
622
623% Launch (devman) test drivers
624! [CONFIG_DEBUG=y] CONFIG_TEST_DRIVERS (n/y)
625
626% Write core files
627! CONFIG_WRITE_CORE_FILES (n/y)
628
629% Include userspace unit tests (PCUT)
630! CONFIG_PCUT_TESTS (n/y)
631
632% Include PCUT self-tests
633! CONFIG_PCUT_SELF_TESTS (n/y)
634
635% Include development files (headers, libraries)
636! CONFIG_DEVEL_FILES (n/y)
637
638% Strip binaries
639! CONFIG_STRIP_BINARIES (n/y)
640
641% Strip revision information (helpful when comparing outputs)
642! CONFIG_STRIP_REVISION_INFO (n/y)
643
644% Optimization level
645@ "3" Level 3 (recommended).
646@ "2" Level 2.
647@ "1" Level 1.
648@ "0" Disable optimizations.
649@ "s" Optimize for size.
650@ "g" Enable only optimizations that don't harm debugging.
651@ "fast" Level 3 + aggressive optimizations that can affect adherence to standards.
652! OPTIMIZATION (choice)
653
654% Barebone build with essential binaries only
655! CONFIG_BAREBONE (n/y)
656
657% Line debugging information
658! [CONFIG_STRIP_BINARIES!=y] CONFIG_LINE_DEBUG (n/y)
659
660# USB settings
661
662% Start virtual USB host controller
663! CONFIG_RUN_VIRTUAL_USB_HC (n/y)
664
665% OHCI root hub port power switching
666@ "no" All root hub ports are always powered.
667@ "ganged" Root hub ports are all powered or all off.
668@ "per_port" Powered status of every root hub port is independent.
669! [PLATFORM=ia32|PLATFORM=amd64|PLATFORM=ppc32] OHCI_POWER_SWITCH (choice)
670
671% GRUB boot loader architecture
672@ "pc" GRUB for PC
673@ "efi" GRUB for UEFI
674! [PLATFORM=ia32|PLATFORM=amd64] GRUB_ARCH (choice)
675
676% GRUB boot loader architecture
677@ "efi" GRUB for UEFI
678! [PLATFORM=arm64&MACHINE=virt] GRUB_ARCH (choice)
679
680% uImage OS type
681@ "2" NetBSD stage 2 boot loader
682! [PLATFORM=arm32&(MACHINE=beagleboardxm|MACHINE=beaglebone)] UIMAGE_OS (choice)
683
684% uImage OS type
685@ "5" Linux kernel
686! [PLATFORM=arm32&MACHINE!=beagleboardxm&MACHINE!=beaglebone] UIMAGE_OS (choice)
Note: See TracBrowser for help on using the repository browser.