2 # Copyright (c) 2006 Ondrej Palkovsky
3 # Copyright (c) 2009 Martin Decky
6 # Redistribution and use in source and binary forms, with or without
7 # modification, are permitted provided that the following conditions
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.
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.
30 ## General platform options
33 @ "abs32le" abstract 32-bit little endian
34 @ "amd64" AMD64/Intel EM64T (PC)
36 @ "ia32" Intel IA-32 (PC)
38 @ "mips32" MIPS 32-bit
39 @ "mips64" MIPS 64-bit
40 @ "ppc32" PowerPC 32-bit (iMac G4)
41 @ "sparc64" Sun UltraSPARC 64-bit
46 @ "bgxemul" GXEmul big endian
47 @ "lgxemul" GXEmul little endian
48 ! [PLATFORM=mips32] MACHINE (choice)
52 ! [PLATFORM=mips64] MACHINE (choice)
55 @ "i460GX" i460GX chipset machine
56 @ "ski" Ski ia64 simulator
57 ! [PLATFORM=ia64] MACHINE (choice)
60 @ "generic" Generic Sun workstation or server
61 ! [PLATFORM=sparc64] MACHINE (choice)
64 @ "gta02" GTA02 / Neo FreeRunner
65 @ "testarm" GXEmul Testarm
66 @ "integratorcp" Integratorcp
67 ! [PLATFORM=arm32] MACHINE (choice)
70 @ "pentium4" Pentium 4
71 @ "pentium3" Pentium 3
72 @ "core" Core Solo/Duo
73 @ "athlon_xp" Athlon XP
74 @ "athlon_mp" Athlon MP
76 ! [PLATFORM=ia32] PROCESSOR (choice)
80 ! [PLATFORM=amd64] PROCESSOR (choice)
83 @ "us" UltraSPARC I-II subarchitecture
84 @ "us3" UltraSPARC III-IV subarchitecture
85 @ "sun4v" Niagara (sun4v)
86 ! [PLATFORM=sparc64&MACHINE=generic] PROCESSOR (choice)
95 ## Mapping between platform and kernel architecture
99 ! [PLATFORM=abs32le] KARCH (choice)
101 % Kernel architecture
103 ! [PLATFORM=amd64] KARCH (choice)
105 % Kernel architecture
107 ! [PLATFORM=arm32] KARCH (choice)
109 % Kernel architecture
111 ! [PLATFORM=ia32] KARCH (choice)
113 % Kernel architecture
115 ! [PLATFORM=ia32xen] KARCH (choice)
117 % Kernel architecture
119 ! [PLATFORM=ia64] KARCH (choice)
121 % Kernel architecture
123 ! [PLATFORM=mips32] KARCH (choice)
125 % Kernel architecture
127 ! [PLATFORM=mips64] KARCH (choice)
129 % Kernel architecture
131 ! [PLATFORM=ppc32] KARCH (choice)
133 % Kernel architecture
135 ! [PLATFORM=ppc64] KARCH (choice)
137 % Kernel architecture
139 ! [PLATFORM=sparc64] KARCH (choice)
142 ## Mapping between platform and user space architecture
144 % User space architecture
146 ! [PLATFORM=abs32le] UARCH (choice)
148 % User space architecture
150 ! [PLATFORM=amd64] UARCH (choice)
152 % User space architecture
154 ! [PLATFORM=arm32] UARCH (choice)
156 % User space architecture
158 ! [PLATFORM=ia32|PLATFORM=ia32xen] UARCH (choice)
160 % User space architecture
162 ! [PLATFORM=ia64] UARCH (choice)
164 % User space architecture
166 ! [PLATFORM=mips32&(MACHINE=msim|MACHINE=lgxemul)] UARCH (choice)
168 % User space architecture
170 ! [PLATFORM=mips32&MACHINE=bgxemul] UARCH (choice)
172 % User space architecture
174 ! [PLATFORM=mips64] UARCH (choice)
176 % User space architecture
178 ! [PLATFORM=ppc32] UARCH (choice)
180 % User space architecture
182 ! [PLATFORM=ppc64] UARCH (choice)
184 % User space architecture
186 ! [PLATFORM=sparc64] UARCH (choice)
189 ## Mapping between platform and boot architecture
193 ! [PLATFORM=abs32le] BARCH (choice)
197 ! [PLATFORM=amd64] BARCH (choice)
201 ! [PLATFORM=arm32] BARCH (choice)
205 ! [PLATFORM=ia32] BARCH (choice)
209 ! [PLATFORM=ia32xen] BARCH (choice)
213 ! [PLATFORM=ia64] BARCH (choice)
217 ! [PLATFORM=mips32] BARCH (choice)
221 ! [PLATFORM=mips64] BARCH (choice)
225 ! [PLATFORM=ppc32] BARCH (choice)
229 ! [PLATFORM=ppc64] BARCH (choice)
233 ! [PLATFORM=sparc64] BARCH (choice)
236 ## Mapping between platform and image format
240 ! [PLATFORM=mips32&MACHINE=msim] IMAGE (choice)
244 ! [PLATFORM=mips32&(MACHINE=bgxemul|MACHINE=lgxemul)] IMAGE (choice)
248 ! [PLATFORM=mips64] IMAGE (choice)
254 @ "gcc_cross" GNU C Compiler (cross-compiler)
255 @ "gcc_native" GNU C Compiler (native)
256 @ "icc" Intel C Compiler
258 ! [PLATFORM=amd64|PLATFORM=ia32] COMPILER (choice)
261 @ "gcc_cross" GNU C Compiler (cross-compiler)
262 @ "gcc_native" GNU C Compiler (native)
263 @ "icc" Intel C Compiler
264 ! [PLATFORM=ia64] COMPILER (choice)
267 @ "gcc_cross" GNU C Compiler (cross-compiler)
268 @ "gcc_native" GNU C Compiler (native)
269 ! [PLATFORM=sparc64] COMPILER (choice)
272 @ "gcc_cross" GNU C Compiler (cross-compiler)
273 @ "gcc_native" GNU C Compiler (native)
274 ! [PLATFORM=arm32|PLATFORM=mips32|PLATFORM=mips64|PLATFORM=ppc32] COMPILER (choice)
277 @ "gcc_cross" GNU C Compiler (cross-compiler)
278 @ "gcc_native" GNU C Compiler (native)
280 ! [PLATFORM=abs32le] COMPILER (choice)
283 ## Cross-compiler target for abstract architecture
285 % Cross-compiler target
288 @ "mips32" MIPS 32-bit
289 ! [PLATFORM=abs32le&COMPILER=gcc_cross] CROSS_TARGET (choice)
292 ## Kernel configuration
295 ! [PLATFORM=ia32&(PROCESSOR=athlon_xp|PROCESSOR=athlon_mp|PROCESSOR=pentium3)] CONFIG_FENCES_P3 (y)
298 ! [PLATFORM=ia32&(PROCESSOR=pentium4|PROCESSOR=core)] CONFIG_FENCES_P4 (y)
301 ! [PLATFORM=amd64] CONFIG_FENCES_P4 (y)
304 ! [PLATFORM=ia32|PLATFORM=amd64] CONFIG_ACPI (y)
306 % Hierarchical page tables support
307 ! [PLATFORM=abs32le|PLATFORM=ia32|PLATFORM=amd64|PLATFORM=arm32|PLATFORM=mips32|PLATFORM=ppc32] CONFIG_PAGE_PT (y)
309 % Page hash table support
310 ! [PLATFORM=ia64|PLATFORM=mips64|PLATFORM=sparc64] CONFIG_PAGE_HT (y)
312 % Software integer division support
313 ! [PLATFORM=abs32le|PLATFORM=ia32|PLATFORM=arm32|PLATFORM=ia64|PLATFORM=mips32|PLATFORM=mips64|PLATFORM=ppc32] CONFIG_SOFTINT (y)
316 ! [PLATFORM=ia64|PLATFORM=mips32|PLATFORM=mips64|PLATFORM=ppc32|PLATFORM=sparc64] CONFIG_ASID (y)
319 ! [PLATFORM=ia64|PLATFORM=mips32|PLATFORM=mips64|PLATFORM=ppc32|PLATFORM=sparc64] CONFIG_ASID_FIFO (y)
321 % OpenFirmware tree support
322 ! [PLATFORM=ppc32|PLATFORM=sparc64] CONFIG_OFW_TREE (y)
324 % OpenFirmware PCI bus support
325 ! [PLATFORM=sparc64] CONFIG_OFW_PCI (y)
327 % Multiboot standard support
328 ! [PLATFORM=ia32|PLATFORM=amd64] CONFIG_MULTIBOOT (y)
331 ! [PLATFORM=ia32|PLATFORM=amd64|PLATFORM=ia64|PLATFORM=sparc64] CONFIG_FPU (y)
334 ! [PLATFORM=mips32&(MACHINE=lgxemul|MACHINE=bgxemul)] CONFIG_FPU (y)
337 ## Kernel features options
340 ! [(PLATFORM=ia32&PROCESSOR!=athlon_xp)|PLATFORM=amd64|PLATFORM=sparc64|PLATFORM=ia64|(PLATFORM=mips32&MACHINE=msim)|(PLATFORM=mips64&MACHINE=msim)|PLATFORM=abs32le] CONFIG_SMP (y/n)
345 % Deadlock detection support for spinlocks
346 ! [CONFIG_DEBUG=y&CONFIG_SMP=y] CONFIG_DEBUG_SPINLOCK (y/n)
348 % Lazy FPU context switching
349 ! [CONFIG_FPU=y] CONFIG_FPU_LAZY (y/n)
352 ! [PLATFORM=ia64] CONFIG_VHPT (n/y)
355 ! [PLATFORM=sparc64] CONFIG_TSB (y/n)
357 % IO SAPIC on default address support
358 ! [PLATFORM=ia64&MACHINE!=ski] CONFIG_IOSAPIC (y/n)
360 % Virtually indexed D-cache support
361 ! [PLATFORM=sparc64] CONFIG_VIRT_IDX_DCACHE (y/n)
364 ! [PROCESSOR=sun4v&CONFIG_SMP=y] CONFIG_SIMICS_SMP_HACK (n/y)
366 % Support for userspace debuggers
367 ! CONFIG_UDEBUG (y/n)
369 % Kernel console support
370 ! CONFIG_KCONSOLE (y/n)
372 % Kernel symbol information
373 ! CONFIG_SYMTAB (y/n)
375 % Detailed kernel logging
378 % Kernel function tracing
381 % Compile kernel tests
384 % Use link-time optimization
385 ! [COMPILER=gcc_cross|COMPILER=gcc_native] CONFIG_LTO (n/y)
391 @ "generic" Keyboard or serial line
392 ! [PLATFORM=arm32&MACHINE=integratorcp] CONFIG_HID_IN (choice)
395 @ "generic" Keyboard or serial line
396 @ "none" No input device
397 ! [PLATFORM=ia32|(PLATFORM=arm32&MACHINE=testarm)|PLATFORM=amd64|PLATFORM=mips32|PLATFORM=mips64|PLATFORM=ppc32|PLATFORM=sparc64] CONFIG_HID_IN (choice)
400 @ "generic" Keyboard or serial line
401 @ "keyboard" Keyboard
402 @ "serial" Serial line
403 @ "none" No input device
404 ! [PLATFORM=ia64&MACHINE=i460GX] CONFIG_HID_IN (choice)
406 % Output device class
407 @ "generic" Monitor or serial line
408 ! [PLATFORM=arm32&(MACHINE=gta02|MACHINE=integratorcp)] CONFIG_HID_OUT (choice)
410 % Output device class
411 @ "generic" Monitor or serial line
412 @ "none" No output device
413 ! [PLATFORM=ia32|PLATFORM=amd64|PLATFORM=sparc64|PLATFORM=ppc32|(PLATFORM=ia64&MACHINE=i460GX)|(PLATFORM=mips32&MACHINE=msim)|(PLATFORM=mips64&MACHINE=msim)] CONFIG_HID_OUT (choice)
415 % Output device class
416 @ "generic" Monitor or serial line
418 @ "serial" Serial line
419 @ "none" No output device
420 ! [PLATFORM=mips32&(MACHINE=bgxemul|MACHINE=lgxemul)] CONFIG_HID_OUT (choice)
422 % Output device class
423 @ "generic" Monitor or serial line
425 @ "serial" Serial line
426 @ "none" No output device
427 ! [PLATFORM=arm32&MACHINE=testarm] CONFIG_HID_OUT (choice)
429 % PC keyboard support
430 ! [CONFIG_HID_IN=generic&(PLATFORM=ia32|PLATFORM=amd64)] CONFIG_PC_KBD (y/n)
432 % PC keyboard support
433 ! [(CONFIG_HID_IN=generic|CONFIG_HID_IN=keyboard)&PLATFORM=ia64&MACHINE=i460GX] CONFIG_PC_KBD (y/n)
435 % PC keyboard support
436 ! [(CONFIG_HID_IN=generic|CONFIG_HID_IN=keyboard)&PLATFORM=arm32&MACHINE=integratorcp] CONFIG_PC_KBD (y/n)
438 % Support for msim/GXemul keyboard
439 ! [CONFIG_HID_IN=generic&(PLATFORM=mips32|PLATFORM=mips64)] CONFIG_MIPS_KBD (y/n)
441 % Support for msim/GXemul printer
442 ! [(CONFIG_HID_OUT=generic|CONFIG_HID_OUT=serial)&(PLATFORM=mips32|PLATFORM=mips64)] CONFIG_MIPS_PRN (y/n)
444 % Support for GXemul keyboard
445 ! [CONFIG_HID_IN=generic&PLATFORM=arm32&MACHINE=testarm] CONFIG_ARM_KBD (y/n)
447 % Support for GXemul printer
448 ! [(CONFIG_HID_OUT=generic|CONFIG_HID_OUT=serial)&PLATFORM=arm32&MACHINE=testarm] CONFIG_ARM_PRN (y/n)
450 % Support for VIA CUDA controller
451 ! [CONFIG_HID_IN=generic&PLATFORM=ppc32] CONFIG_VIA_CUDA (y/n)
453 % Support for NS16550 controller
454 ! [(CONFIG_HID_IN=generic|CONFIG_HID_IN=keyboard)&PLATFORM=sparc64&MACHINE=generic] CONFIG_NS16550 (y/n)
456 % Support for NS16550 controller
457 ! [(CONFIG_HID_IN=generic|CONFIG_HID_IN=serial)&PLATFORM=ia64&MACHINE=i460GX] CONFIG_NS16550 (y/n)
459 % Support for ARM926 on-chip UART
460 ! [(CONFIG_HID_OUT=generic|CONFIG_HID_OUT=serial)&PLATFORM=arm32&MACHINE=integratorcp] CONFIG_ARM926_UART (y/n)
462 % Support for Samsung S3C24XX on-chip UART
463 ! [(CONFIG_HID_OUT=generic|CONFIG_HID_OUT=serial)&PLATFORM=arm32&MACHINE=gta02] CONFIG_S3C24XX_UART (y/n)
465 % Support for Samsung S3C24XX on-chip interrupt controller
466 ! [PLATFORM=arm32&MACHINE=gta02] CONFIG_S3C24XX_IRQC (y)
468 % Support for i8042 controller
469 ! [CONFIG_PC_KBD=y] CONFIG_I8042 (y)
471 % Support for pl050 controller
472 ! [CONFIG_HID_IN=generic&PLATFORM=arm32&MACHINE=integratorcp] CONFIG_PL050 (y)
474 % Sun keyboard support
475 ! [(CONFIG_HID_IN=generic|CONFIG_HID_IN=keyboard)&PLATFORM=sparc64&MACHINE=generic&CONFIG_NS16550=y] CONFIG_SUN_KBD (y)
477 % Macintosh ADB keyboard support
478 ! [(CONFIG_HID_IN=generic|CONFIG_HID_IN=keyboard)&PLATFORM=ppc32&(CONFIG_VIA_CUDA=y)] CONFIG_MAC_KBD (y)
480 % Dummy serial line input
481 ! [CONFIG_MIPS_KBD=y|CONFIG_ARM_KBD=y] CONFIG_DSRLNIN (y)
483 % Dummy serial line output
484 ! [CONFIG_MIPS_PRN=y|CONFIG_ARM_PRN=y] CONFIG_DSRLNOUT (y)
486 % Serial line input module
487 ! [CONFIG_DSRLNIN=y|(PLATFORM=arm32&MACHINE=gta02)|(PLATFORM=arm32&MACHINE=integratorcp&CONFIG_ARM926_UART=y)|(PLATFORM=ia64&MACHINE=i460GX&CONFIG_NS16550=y)|(PLATFORM=ia64&MACHINE=ski)|(PLATFORM=sparc64&PROCESSOR=sun4v)] CONFIG_SRLN (y)
490 ! [CONFIG_HID_OUT=generic&(PLATFORM=ia32|PLATFORM=amd64)] CONFIG_EGA (y/n)
493 ! [CONFIG_HID_OUT=generic&PLATFORM=ia64&MACHINE=i460GX] CONFIG_EGA (y/n)
495 % Framebuffer support
496 ! [CONFIG_HID_OUT=generic&(PLATFORM=ia32|PLATFORM=amd64|PLATFORM=ppc32)] CONFIG_FB (y/n)
498 % Framebuffer support
499 ! [(CONFIG_HID_OUT=generic|CONFIG_HID_OUT=monitor)&PLATFORM=mips32&(MACHINE=lgxemul|MACHINE=bgxemul)] CONFIG_FB (y/n)
501 % Framebuffer support
502 ! [(CONFIG_HID_OUT=generic|CONFIG_HID_OUT=monitor)&PLATFORM=arm32] CONFIG_FB (y/n)
504 % Framebuffer support
505 ! [(CONFIG_HID_OUT=generic|CONFIG_HID_OUT=monitor)&PLATFORM=sparc64&MACHINE=generic] CONFIG_FB (y/n)
507 % Default framebuffer mode
523 ! [(PLATFORM=ia32|PLATFORM=amd64)&CONFIG_HID_OUT!=none&CONFIG_FB=y] CONFIG_BFB_MODE (choice)
525 % Default framebuffer depth
529 ! [(PLATFORM=ia32|PLATFORM=amd64)&CONFIG_HID_OUT!=none&CONFIG_FB=y] CONFIG_BFB_BPP (choice)
531 % Start AP processors by the loader
532 ! [PLATFORM=sparc64&CONFIG_SMP=y] CONFIG_AP (y/n)
534 % Dynamic linking support
535 ! [PLATFORM=ia32] CONFIG_RTLD (n/y)
536 ! [PLATFORM=abs32le|PLATFORM=amd64|PLATFORM=arm32|PLATFORM=ia64|PLATFORM=mips32|PLATFORM=ppc32|PLATFORM=sparc64] CONFIG_RTLD (n)
538 % Build shared libraries
539 ! [CONFIG_RTLD=y] CONFIG_BUILD_SHARED_LIBS (n/y)
540 ! [CONFIG_RTLD=n] CONFIG_BUILD_SHARED_LIBS (n)
542 % Link against shared libraries
543 ! [CONFIG_BUILD_SHARED_LIBS=y] CONFIG_USE_SHARED_LIBS (n/y)
544 ! [CONFIG_BUILD_SHARED_LIBS=n] CONFIG_USE_SHARED_LIBS (n)
546 % Launch (devman) test drivers
547 ! [CONFIG_DEBUG=y] CONFIG_TEST_DRIVERS (n/y)
549 % Load disk drivers on startup
550 ! CONFIG_START_BD (n/y)
552 % Mount /data on startup
553 ! [CONFIG_START_BD=y] CONFIG_MOUNT_DATA (n/y)
556 ! CONFIG_WRITE_CORE_FILES (n/y)
558 % Include development files (headers, libraries)
559 ! CONFIG_DEVEL_FILES (n/y)
562 ! CONFIG_STRIP_BINARIES (n/y)
565 ! CONFIG_OPTIMIZE_FOR_SIZE (n/y)
567 % Barebone build with essential binaries only
568 ! CONFIG_BAREBONE (n/y)
573 % Build binutils binaries
574 ! CONFIG_BINUTILS (n/y)
579 % Line debugging information
580 ! [CONFIG_STRIP_BINARIES!=y] CONFIG_LINE_DEBUG (n/y)
584 % Start virtual USB host controller
585 ! CONFIG_RUN_VIRTUAL_USB_HC (n/y)
587 % OHCI root hub port power switching
588 @ "no" All root hub ports are always powered.
589 @ "ganged" Root hub ports are all powered or all off.
590 @ "per_port" Powered status of every root hub port is independent.
591 ! [PLATFORM=ia32|PLATFORM=amd64|PLATFORM=ppc32] OHCI_POWER_SWITCH (choice)
593 % GRUB boot loader architecture
595 @ "efi" GRUB for UEFI
596 ! [PLATFORM=ia32|PLATFORM=amd64] GRUB_ARCH (choice)