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 @ "bmalta" MIPS Malta Development Board big endian
47 @ "lmalta" MIPS Malta Development Board 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 @ "integratorcp" Integratorcp
66 @ "beagleboardxm" BeagleBoard-xM
67 @ "beaglebone" BeagleBone
68 ! [PLATFORM=arm32] MACHINE (choice)
71 @ "pentium4" Pentium 4
72 @ "pentium3" Pentium 3
73 @ "core" Core Solo/Duo
74 @ "athlon_xp" Athlon XP
75 @ "athlon_mp" Athlon MP
77 ! [PLATFORM=ia32] PROCESSOR (choice)
81 ! [PLATFORM=amd64] PROCESSOR (choice)
84 @ "us" UltraSPARC I-II subarchitecture
85 @ "us3" UltraSPARC III-IV subarchitecture
86 @ "sun4v" Niagara (sun4v)
87 ! [PLATFORM=sparc64&MACHINE=generic] PROCESSOR (choice)
90 @ "cortex_a8" ARM Cortex A-8
91 ! [PLATFORM=arm32&(MACHINE=beagleboardxm|MACHINE=beaglebone)] PROCESSOR (choice)
95 ! [PLATFORM=arm32&MACHINE=gta02] PROCESSOR (choice)
98 @ "arm926ej_s" ARM926EJ-S
99 ! [PLATFORM=arm32&MACHINE=integratorcp] PROCESSOR (choice)
102 # Add more ARMv4 CPUs
105 ! [PLATFORM=arm32&(PROCESSOR=arm920t)] PROCESSOR_ARCH (choice)
107 # Add more ARMv5 CPUs
110 ! [PLATFORM=arm32&(PROCESSOR=arm926ej_s)] PROCESSOR_ARCH (choice)
112 # Add more ARMv7-A CPUs
115 ! [PLATFORM=arm32&(PROCESSOR=cortex_a8)] PROCESSOR_ARCH (choice)
119 ! [PLATFORM=mips32&MACHINE=msim] PROCESSOR (choice)
123 ! [PLATFORM=mips32&(MACHINE=bmalta|MACHINE=lmalta)] PROCESSOR (choice)
126 @ "tmpfs" TMPFS image
128 @ "ext4fs" ext4 image
132 ## Mapping between platform and kernel architecture
134 % Kernel architecture
136 ! [PLATFORM=abs32le] KARCH (choice)
138 % Kernel architecture
140 ! [PLATFORM=amd64] KARCH (choice)
142 % Kernel architecture
144 ! [PLATFORM=arm32] KARCH (choice)
146 % Kernel architecture
148 ! [PLATFORM=ia32] KARCH (choice)
150 % Kernel architecture
152 ! [PLATFORM=ia32xen] KARCH (choice)
154 % Kernel architecture
156 ! [PLATFORM=ia64] KARCH (choice)
158 % Kernel architecture
160 ! [PLATFORM=mips32] KARCH (choice)
162 % Kernel architecture
164 ! [PLATFORM=mips64] KARCH (choice)
166 % Kernel architecture
168 ! [PLATFORM=ppc32] KARCH (choice)
170 % Kernel architecture
172 ! [PLATFORM=ppc64] KARCH (choice)
174 % Kernel architecture
176 ! [PLATFORM=sparc64] KARCH (choice)
179 ## Mapping between platform and user space architecture
181 % User space architecture
183 ! [PLATFORM=abs32le] UARCH (choice)
185 % User space architecture
187 ! [PLATFORM=amd64] UARCH (choice)
189 % User space architecture
191 ! [PLATFORM=arm32] UARCH (choice)
193 % User space architecture
195 ! [PLATFORM=ia32|PLATFORM=ia32xen] UARCH (choice)
197 % User space architecture
199 ! [PLATFORM=ia64] UARCH (choice)
201 % User space architecture
203 ! [PLATFORM=mips32&(MACHINE=msim|MACHINE=lmalta)] UARCH (choice)
205 % User space architecture
207 ! [PLATFORM=mips32&MACHINE=bmalta] UARCH (choice)
209 % User space architecture
211 ! [PLATFORM=mips64] UARCH (choice)
213 % User space architecture
215 ! [PLATFORM=ppc32] UARCH (choice)
217 % User space architecture
219 ! [PLATFORM=ppc64] UARCH (choice)
221 % User space architecture
223 ! [PLATFORM=sparc64] UARCH (choice)
226 ## Mapping between platform and boot architecture
230 ! [PLATFORM=abs32le] BARCH (choice)
234 ! [PLATFORM=amd64] BARCH (choice)
238 ! [PLATFORM=arm32] BARCH (choice)
242 ! [PLATFORM=ia32] BARCH (choice)
246 ! [PLATFORM=ia32xen] BARCH (choice)
250 ! [PLATFORM=ia64] BARCH (choice)
254 ! [PLATFORM=mips32] BARCH (choice)
258 ! [PLATFORM=mips64] BARCH (choice)
262 ! [PLATFORM=ppc32] BARCH (choice)
266 ! [PLATFORM=ppc64] BARCH (choice)
270 ! [PLATFORM=sparc64] BARCH (choice)
273 ## Mapping between platform and image format
277 ! [PLATFORM=mips32&MACHINE=msim] IMAGE (choice)
281 ! [PLATFORM=mips32&(MACHINE=bmalta|MACHINE=lmalta)] IMAGE (choice)
285 ! [PLATFORM=mips64] IMAGE (choice)
291 @ "gcc_cross" GNU C Compiler (cross-compiler)
292 @ "gcc_native" GNU C Compiler (native)
293 @ "icc" Intel C Compiler
295 ! [PLATFORM=amd64|PLATFORM=ia32] COMPILER (choice)
298 @ "gcc_cross" GNU C Compiler (cross-compiler)
299 @ "gcc_native" GNU C Compiler (native)
300 @ "icc" Intel C Compiler
301 ! [PLATFORM=ia64] COMPILER (choice)
304 @ "gcc_cross" GNU C Compiler (cross-compiler)
305 @ "gcc_native" GNU C Compiler (native)
306 ! [PLATFORM=mips32|PLATFORM=mips64|PLATFORM=ppc32] COMPILER (choice)
309 @ "gcc_cross" GNU C Compiler (cross-compiler)
310 @ "gcc_native" GNU C Compiler (native)
312 ! [PLATFORM=abs32le|PLATFORM=arm32|PLATFORM=sparc64] COMPILER (choice)
315 ## Cross-compiler target for abstract architecture
317 % Cross-compiler target
320 @ "mips32" MIPS 32-bit
321 ! [PLATFORM=abs32le&COMPILER=gcc_cross] CROSS_TARGET (choice)
324 ## Kernel configuration
327 ! [PLATFORM=ia32&(PROCESSOR=athlon_xp|PROCESSOR=athlon_mp|PROCESSOR=pentium3)] CONFIG_FENCES_P3 (y)
330 ! [PLATFORM=ia32&(PROCESSOR=pentium4|PROCESSOR=core)] CONFIG_FENCES_P4 (y)
333 ! [PLATFORM=amd64] CONFIG_FENCES_P4 (y)
336 ! [PLATFORM=ia32|PLATFORM=amd64] CONFIG_ACPI (y)
338 % Hierarchical page tables support
339 ! [PLATFORM=abs32le|PLATFORM=ia32|PLATFORM=amd64|PLATFORM=arm32|PLATFORM=mips32|PLATFORM=ppc32] CONFIG_PAGE_PT (y)
341 % Page hash table support
342 ! [PLATFORM=ia64|PLATFORM=mips64|PLATFORM=sparc64] CONFIG_PAGE_HT (y)
344 % Software integer division support
345 ! [PLATFORM=abs32le|PLATFORM=ia32|PLATFORM=arm32|PLATFORM=ia64|PLATFORM=mips32|PLATFORM=mips64|PLATFORM=ppc32] CONFIG_SOFTINT (y)
348 ! [PLATFORM=ia64|PLATFORM=mips32|PLATFORM=mips64|PLATFORM=ppc32|PLATFORM=sparc64] CONFIG_ASID (y)
351 ! [PLATFORM=ia64|PLATFORM=mips32|PLATFORM=mips64|PLATFORM=ppc32|PLATFORM=sparc64] CONFIG_ASID_FIFO (y)
353 % OpenFirmware tree support
354 ! [PLATFORM=ppc32|PLATFORM=sparc64] CONFIG_OFW_TREE (y)
356 % OpenFirmware PCI bus support
357 ! [PLATFORM=sparc64] CONFIG_OFW_PCI (y)
359 % Multiboot standard support
360 ! [PLATFORM=ia32|PLATFORM=amd64] CONFIG_MULTIBOOT (y)
363 ! [PLATFORM=ia32|PLATFORM=amd64|PLATFORM=ia64|PLATFORM=sparc64] CONFIG_FPU (y)
365 ## armv7 made fpu hardware compulsory
367 ! [PLATFORM=arm32&PROCESSOR_ARCH=armv7_a] CONFIG_FPU (y)
370 ! [PLATFORM=arm32&MACHINE=integratorcp] CONFIG_FPU (y)
373 ## Kernel features options
376 ! [(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)
381 % Deadlock detection support for spinlocks
382 ! [CONFIG_DEBUG=y&CONFIG_SMP=y] CONFIG_DEBUG_SPINLOCK (y/n)
384 % Lazy FPU context switching
385 ! [CONFIG_FPU=y] CONFIG_FPU_LAZY (y/n)
388 ! [PLATFORM=ia64] CONFIG_VHPT (n/y)
391 ! [PLATFORM=sparc64] CONFIG_TSB (y/n)
393 % IO SAPIC on default address support
394 ! [PLATFORM=ia64&MACHINE!=ski] CONFIG_IOSAPIC (y/n)
396 % Virtually indexed D-cache support
397 ! [PLATFORM=sparc64] CONFIG_VIRT_IDX_DCACHE (y/n)
400 ! [PROCESSOR=sun4v&CONFIG_SMP=y] CONFIG_SIMICS_SMP_HACK (n/y)
402 % Support for userspace debuggers
403 ! CONFIG_UDEBUG (y/n)
405 % Kernel console support
406 ! CONFIG_KCONSOLE (y/n)
408 % Kernel symbol information
409 ! CONFIG_SYMTAB (y/n)
411 % Detailed kernel logging
414 % Kernel function tracing
417 % Compile kernel tests
420 % Use link-time optimization
421 ! [COMPILER=gcc_cross|COMPILER=gcc_native] CONFIG_LTO (n/y)
427 @ "generic" Keyboard or serial line
428 ! [PLATFORM=arm32&MACHINE=integratorcp] CONFIG_HID_IN (choice)
431 @ "generic" Keyboard or serial line
432 @ "none" No input device
433 ! [PLATFORM=ia32|PLATFORM=amd64|PLATFORM=mips32|PLATFORM=mips64|PLATFORM=ppc32|PLATFORM=sparc64] CONFIG_HID_IN (choice)
436 @ "generic" Keyboard or serial line
437 @ "keyboard" Keyboard
438 @ "serial" Serial line
439 @ "none" No input device
440 ! [PLATFORM=ia64&MACHINE=i460GX] CONFIG_HID_IN (choice)
442 % Output device class
443 @ "generic" Monitor or serial line
444 ! [PLATFORM=arm32&(MACHINE=gta02|MACHINE=integratorcp|MACHINE=beagleboardxm|MACHINE=beaglebone)] CONFIG_HID_OUT (choice)
446 % Output device class
447 @ "generic" Monitor or serial line
448 @ "none" No output device
449 ! [PLATFORM=ia32|PLATFORM=amd64|PLATFORM=sparc64|PLATFORM=ppc32|(PLATFORM=ia64&MACHINE=i460GX)|(PLATFORM=mips32&(MACHINE=msim|MACHINE=bmalta|MACHINE=lmalta))|(PLATFORM=mips64&MACHINE=msim)] CONFIG_HID_OUT (choice)
451 % PC keyboard support
452 ! [CONFIG_HID_IN=generic&(PLATFORM=ia32|PLATFORM=amd64)] CONFIG_PC_KBD (y/n)
454 % PC keyboard support
455 ! [(CONFIG_HID_IN=generic|CONFIG_HID_IN=keyboard)&PLATFORM=ia64&MACHINE=i460GX] CONFIG_PC_KBD (y/n)
457 % PC keyboard support
458 ! [(CONFIG_HID_IN=generic|CONFIG_HID_IN=keyboard)&PLATFORM=arm32&MACHINE=integratorcp] CONFIG_PC_KBD (y/n)
460 % Support for msim keyboard
461 ! [CONFIG_HID_IN=generic&MACHINE=msim] CONFIG_MSIM_KBD (y/n)
463 % Support for msim printer
464 ! [(CONFIG_HID_OUT=generic|CONFIG_HID_OUT=serial)&MACHINE=msim] CONFIG_MSIM_PRN (y/n)
466 % Support for VIA CUDA controller
467 ! [CONFIG_HID_IN=generic&PLATFORM=ppc32] CONFIG_VIA_CUDA (y/n)
469 % Support for NS16550 controller
470 ! [(CONFIG_HID_IN=generic|CONFIG_HID_IN=keyboard)&PLATFORM=sparc64&MACHINE=generic] CONFIG_NS16550 (y/n)
472 % Support for NS16550 controller
473 ! [(CONFIG_HID_IN=generic|CONFIG_HID_IN=serial)&PLATFORM=ia64&MACHINE=i460GX] CONFIG_NS16550 (y/n)
475 % Support for ARM926 on-chip UART
476 ! [(CONFIG_HID_OUT=generic|CONFIG_HID_OUT=serial)&PLATFORM=arm32&MACHINE=integratorcp] CONFIG_ARM926_UART (y/n)
478 % Support for Samsung S3C24XX on-chip UART
479 ! [(CONFIG_HID_OUT=generic|CONFIG_HID_OUT=serial)&PLATFORM=arm32&MACHINE=gta02] CONFIG_S3C24XX_UART (y/n)
481 % Support for Samsung S3C24XX on-chip interrupt controller
482 ! [PLATFORM=arm32&MACHINE=gta02] CONFIG_S3C24XX_IRQC (y)
484 % Support for TI AM335x timers support
485 ! [PLATFORM=arm32&MACHINE=beaglebone] CONFIG_AM335X_TIMERS (y)
487 % Support for OMAP on-chip UART
488 ! [(CONFIG_HID_OUT=generic|CONFIG_HID_OUT=serial)&PLATFORM=arm32&(MACHINE=beagleboardxm|MACHINE=beaglebone)] CONFIG_OMAP_UART (y/n)
490 % Support for i8042 controller
491 ! [CONFIG_PC_KBD=y] CONFIG_I8042 (y)
493 % Support for pl050 controller
494 ! [CONFIG_HID_IN=generic&PLATFORM=arm32&MACHINE=integratorcp] CONFIG_PL050 (y)
496 % Sun keyboard support
497 ! [(CONFIG_HID_IN=generic|CONFIG_HID_IN=keyboard)&PLATFORM=sparc64&MACHINE=generic&CONFIG_NS16550=y] CONFIG_SUN_KBD (y)
499 % Macintosh ADB keyboard support
500 ! [(CONFIG_HID_IN=generic|CONFIG_HID_IN=keyboard)&PLATFORM=ppc32&(CONFIG_VIA_CUDA=y)] CONFIG_MAC_KBD (y)
502 % Dummy serial line input
503 ! [CONFIG_MSIM_KBD=y|CONFIG_ARM_KBD=y] CONFIG_DSRLNIN (y)
505 % Dummy serial line output
506 ! [CONFIG_MSIM_PRN=y|CONFIG_ARM_PRN=y] CONFIG_DSRLNOUT (y)
508 % Serial line input module
509 ! [CONFIG_DSRLNIN=y|(PLATFORM=arm32&MACHINE=gta02)|(PLATFORM=arm32&MACHINE=integratorcp&CONFIG_ARM926_UART=y)|(PLATFORM=arm32&MACHINE=beaglebone&CONFIG_OMAP_UART=y)|(PLATFORM=arm32&MACHINE=beagleboardxm&CONFIG_OMAP_UART=y)|(PLATFORM=ia64&MACHINE=i460GX&CONFIG_NS16550=y)|(PLATFORM=ia64&MACHINE=ski)|(PLATFORM=sparc64&PROCESSOR=sun4v)] CONFIG_SRLN (y)
512 ! [CONFIG_HID_OUT=generic&(PLATFORM=ia32|PLATFORM=amd64)] CONFIG_EGA (y/n)
515 ! [CONFIG_HID_OUT=generic&PLATFORM=ia64&MACHINE=i460GX] CONFIG_EGA (y/n)
517 % Framebuffer support
518 ! [CONFIG_HID_OUT=generic&(PLATFORM=ia32|PLATFORM=amd64|PLATFORM=ppc32)] CONFIG_FB (y/n)
520 % Framebuffer support
521 ! [(CONFIG_HID_OUT=generic|CONFIG_HID_OUT=monitor)&PLATFORM=arm32] CONFIG_FB (y/n)
523 % Framebuffer support
524 ! [(CONFIG_HID_OUT=generic|CONFIG_HID_OUT=monitor)&PLATFORM=sparc64&MACHINE=generic] CONFIG_FB (y/n)
526 % Default framebuffer mode
542 ! [(PLATFORM=ia32|PLATFORM=amd64|MACHINE=beagleboardxm)&CONFIG_HID_OUT!=none&CONFIG_FB=y] CONFIG_BFB_MODE (choice)
544 % Default framebuffer depth
548 ! [(PLATFORM=ia32|PLATFORM=amd64|MACHINE=beagleboardxm)&CONFIG_HID_OUT!=none&CONFIG_FB=y] CONFIG_BFB_BPP (choice)
550 % Start AP processors by the loader
551 ! [PLATFORM=sparc64&CONFIG_SMP=y] CONFIG_AP (y/n)
553 % Dynamic linking support
554 ! [PLATFORM=ia32] CONFIG_RTLD (n/y)
555 ! [PLATFORM=abs32le|PLATFORM=amd64|PLATFORM=arm32|PLATFORM=ia64|PLATFORM=mips32|PLATFORM=ppc32|PLATFORM=sparc64] CONFIG_RTLD (n)
557 % Build shared libraries
558 ! [CONFIG_RTLD=y] CONFIG_BUILD_SHARED_LIBS (n/y)
559 ! [CONFIG_RTLD=n] CONFIG_BUILD_SHARED_LIBS (n)
561 % Link against shared libraries
562 ! [CONFIG_BUILD_SHARED_LIBS=y] CONFIG_USE_SHARED_LIBS (n/y)
563 ! [CONFIG_BUILD_SHARED_LIBS=n] CONFIG_USE_SHARED_LIBS (n)
565 % Launch (devman) test drivers
566 ! [CONFIG_DEBUG=y] CONFIG_TEST_DRIVERS (n/y)
568 % Load disk drivers on startup
569 ! CONFIG_START_BD (n/y)
571 % Mount /data on startup
572 ! [CONFIG_START_BD=y] CONFIG_MOUNT_DATA (n/y)
575 ! CONFIG_WRITE_CORE_FILES (n/y)
577 % Include development files (headers, libraries)
578 ! CONFIG_DEVEL_FILES (n/y)
581 ! CONFIG_STRIP_BINARIES (n/y)
584 ! CONFIG_OPTIMIZE_FOR_SIZE (n/y)
586 % Barebone build with essential binaries only
587 ! CONFIG_BAREBONE (n/y)
592 % Build binutils binaries
593 ! CONFIG_BINUTILS (n/y)
598 % Line debugging information
599 ! [CONFIG_STRIP_BINARIES!=y] CONFIG_LINE_DEBUG (n/y)
603 % Start virtual USB host controller
604 ! CONFIG_RUN_VIRTUAL_USB_HC (n/y)
606 % OHCI root hub port power switching
607 @ "no" All root hub ports are always powered.
608 @ "ganged" Root hub ports are all powered or all off.
609 @ "per_port" Powered status of every root hub port is independent.
610 ! [PLATFORM=ia32|PLATFORM=amd64|PLATFORM=ppc32] OHCI_POWER_SWITCH (choice)
612 % GRUB boot loader architecture
614 @ "efi" GRUB for UEFI
615 ! [PLATFORM=ia32|PLATFORM=amd64] GRUB_ARCH (choice)
618 @ "2" NetBSD stage 2 boot loader
619 ! [PLATFORM=arm32&(MACHINE=beagleboardxm|MACHINE=beaglebone)] UIMAGE_OS (choice)
623 ! [PLATFORM=arm32&MACHINE!=beagleboardxm&MACHINE!=beaglebone] UIMAGE_OS (choice)