# # Copyright (c) 2006 Ondrej Palkovsky # Copyright (c) 2009 Martin Decky # All rights reserved. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions # are met: # # - Redistributions of source code must retain the above copyright # notice, this list of conditions and the following disclaimer. # - Redistributions in binary form must reproduce the above copyright # notice, this list of conditions and the following disclaimer in the # documentation and/or other materials provided with the distribution. # - The name of the author may not be used to endorse or promote products # derived from this software without specific prior written permission. # # THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR # IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES # OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. # IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, # INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT # NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF # THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. # ## General platform options % Platform @ "amd64" AMD64/Intel EM64T (PC) @ "arm32" ARM 32-bit @ "ia32" Intel IA-32 (PC) @ "ia64" Intel IA-64 @ "mips32" MIPS 32-bit @ "ppc32" PowerPC 32-bit (iMac G4) @ "sparc64" Sun UltraSPARC 64-bit ! PLATFORM (choice) % Machine type @ "msim" MSIM @ "simics" Simics @ "bgxemul" GXEmul big endian @ "lgxemul" GXEmul little endian ! [PLATFORM=mips32] MACHINE (choice) % Machine type @ "i460GX" i460GX chipset machine @ "ski" Ski ia64 simulator ! [PLATFORM=ia64] MACHINE (choice) % CPU type @ "pentium4" Pentium 4 @ "pentium3" Pentium 3 @ "core" Core Solo/Duo @ "athlon-xp" Athlon XP @ "athlon-mp" Athlon MP ! [PLATFORM=ia32] MACHINE (choice) % CPU type @ "opteron" Opteron ! [PLATFORM=amd64] MACHINE (choice) % CPU type @ "us" UltraSPARC I-II subarchitecture @ "us3" UltraSPARC III-IV subarchitecture ! [PLATFORM=sparc64] MACHINE (choice) % Ramdisk format @ "tmpfs" TMPFS image @ "fat" FAT16 image ! RDFMT (choice) ## Mapping between platform and kernel architecture % Kernel architecture @ "amd64" ! [PLATFORM=amd64] KARCH (choice) % Kernel architecture @ "arm32" ! [PLATFORM=arm32] KARCH (choice) % Kernel architecture @ "ia32" ! [PLATFORM=ia32] KARCH (choice) % Kernel architecture @ "ia32xen" ! [PLATFORM=ia32xen] KARCH (choice) % Kernel architecture @ "ia64" ! [PLATFORM=ia64] KARCH (choice) % Kernel architecture @ "mips32" ! [PLATFORM=mips32] KARCH (choice) % Kernel architecture @ "ppc32" ! [PLATFORM=ppc32] KARCH (choice) % Kernel architecture @ "ppc64" ! [PLATFORM=ppc64] KARCH (choice) % Kernel architecture @ "sparc64" ! [PLATFORM=sparc64] KARCH (choice) ## Mapping between platform and user space architecture % User space architecture @ "amd64" ! [PLATFORM=amd64] UARCH (choice) % User space architecture @ "arm32" ! [PLATFORM=arm32] UARCH (choice) % User space architecture @ "ia32" ! [PLATFORM=ia32|PLATFORM=ia32xen] UARCH (choice) % User space architecture @ "ia64" ! [PLATFORM=ia64] UARCH (choice) % User space architecture @ "mips32" ! [PLATFORM=mips32&(MACHINE=msim|MACHINE=simics|MACHINE=lgxemul)] UARCH (choice) % User space architecture @ "mips32eb" ! [PLATFORM=mips32&(MACHINE=bgxemul)] UARCH (choice) % User space architecture @ "ppc32" ! [PLATFORM=ppc32] UARCH (choice) % User space architecture @ "ppc64" ! [PLATFORM=ppc64] UARCH (choice) % User space architecture @ "sparc64" ! [PLATFORM=sparc64] UARCH (choice) ## Mapping between platform and boot architecture % Boot architecture @ "amd64" ! [PLATFORM=amd64] BARCH (choice) % Boot architecture @ "arm32" ! [PLATFORM=arm32] BARCH (choice) % Boot architecture @ "ia32" ! [PLATFORM=ia32] BARCH (choice) % Boot architecture @ "ia32xen" ! [PLATFORM=ia32xen] BARCH (choice) % Boot architecture @ "ia64" ! [PLATFORM=ia64] BARCH (choice) % Boot architecture @ "mips32" ! [PLATFORM=mips32] BARCH (choice) % Boot architecture @ "ppc32" ! [PLATFORM=ppc32] BARCH (choice) % Boot architecture @ "ppc64" ! [PLATFORM=ppc64] BARCH (choice) % Boot architecture @ "sparc64" ! [PLATFORM=sparc64] BARCH (choice) ## Mapping between platform and image format % Image format @ "binary" ! [PLATFORM=mips32&MACHINE=msim] IMAGE (choice) % Image format @ "ecoff" ! [PLATFORM=mips32&(MACHINE=simics|MACHINE=bgxemul|MACHINE=lgxemul)] IMAGE (choice) ## Compiler options % Compiler @ "gcc_cross" GCC Cross-compiler @ "gcc_native" GCC Native @ "icc_native" ICC Native @ "suncc_native" Sun Studio C Compiler ! [PLATFORM=amd64|PLATFORM=ia32] COMPILER (choice) % Compiler @ "gcc_cross" GCC Cross-compiler @ "gcc_native" GCC Native @ "icc_native" ICC Native ! [PLATFORM=ia64] COMPILER (choice) % Compiler @ "gcc_cross" GCC Cross-compiler @ "gcc_native" GCC Native @ "suncc_native" Sun Studio C Compiler ! [PLATFORM=sparc64] COMPILER (choice) % Compiler @ "gcc_cross" GCC Cross-compiler @ "gcc_native" GCC Native ! [PLATFORM=arm32|PLATFORM=mips32|PLATFORM=ppc32] COMPILER (choice) ## Debug build options % Debug build ! CONFIG_DEBUG (y/n) ## Kernel configuration % Fences ! [PLATFORM=ia32&(MACHINE=athlon-xp|MACHINE=athlon-mp|MACHINE=pentium3)] CONFIG_FENCES_P3 (y) % Fences ! [(PLATFORM=ia32&(MACHINE=pentium4|MACHINE=core))|PLATFORM=amd64] CONFIG_FENCES_P4 (y) % ACPI support ! [PLATFORM=ia32|PLATFORM=amd64] CONFIG_ACPI (y) % Hierarchical page tables support ! [PLATFORM=ia32|PLATFORM=amd64|PLATFORM=arm32|PLATFORM=mips32|PLATFORM=ppc32] CONFIG_PAGE_PT (y) % Page hash table support ! [PLATFORM=ia64|PLATFORM=sparc64] CONFIG_PAGE_HT (y) % i8042 controller support ! [PLATFORM=ia32|PLATFORM=amd64|(PLATFORM=ia64&MACHINE=i460GX)] CONFIG_I8042 (y) % Sun keyboard support ! [PLATFORM=sparc64] CONFIG_SUN_KBD (y) % EGA support ! [PLATFORM=ia32|PLATFORM=amd64|(PLATFORM=ia64&MACHINE=i460GX)] CONFIG_EGA (y) % Software integer division support ! [PLATFORM=ia32|PLATFORM=arm32|PLATFORM=ia64|PLATFORM=mips32|PLATFORM=ppc32] CONFIG_SOFTINT (y) % ASID support ! [PLATFORM=ia64|PLATFORM=mips32|PLATFORM=ppc32|PLATFORM=sparc64] CONFIG_ASID (y) % ASID FIFO support ! [PLATFORM=ia64|PLATFORM=mips32|PLATFORM=ppc32|PLATFORM=sparc64] CONFIG_ASID_FIFO (y) % OpenFirmware tree support ! [PLATFORM=sparc64] CONFIG_OFW_TREE (y) % FPU support ! [PLATFORM=ia32|PLATFORM=amd64|PLATFORM=ia64|PLATFORM=sparc64|(PLATFORM=mips32&(MACHINE=lgxemul|MACHINE=bgxemul))] CONFIG_FPU (y) ## Kernel features options % Support for SMP ! [(PLATFORM=ia32&MACHINE!=athlon-xp)|PLATFORM=amd64|PLATFORM=sparc64|PLATFORM=ia64] CONFIG_SMP (y/n) % Improved support for hyperthreading ! [((PLATFORM=ia32&MACHINE!=athlon-xp&MACHINE!=athlon-mp&MACHINE!=pentium3)|PLATFORM=amd64)&CONFIG_SMP=y] CONFIG_HT (y/n) % Lazy FPU context switching ! [CONFIG_FPU=y] CONFIG_FPU_LAZY (y/n) % Use VHPT ! [PLATFORM=ia64] CONFIG_VHPT (n/y) % Use TSB ! [PLATFORM=sparc64] CONFIG_TSB (y/n) % Support for Z8530 serial port ! [PLATFORM=sparc64] CONFIG_Z8530 (y/n) % Support for NS16550 serial port ! [PLATFORM=sparc64|(PLATFORM=ia64&MACHINE!=ski)] CONFIG_NS16550 (n/y) % IOSapic on default address support ! [PLATFORM=ia64&MACHINE!=ski] CONFIG_IOSAPIC (y/n) % Interrupt-driven driver for Legacy Keyboard ! [CONFIG_NS16550=n&CONFIG_IOSAPIC=y&MACHINE!=ski] CONFIG_I8042_INTERRUPT_DRIVEN (y/n) % Interrupt-driven driver for NS16550 ! [CONFIG_NS16550=y&((PLATFORM!=ia64)|CONFIG_IOSAPIC=y)&MACHINE!=ski] CONFIG_NS16550_INTERRUPT_DRIVEN (y/n) % Support for Serengeti console ! [PLATFORM=sparc64] CONFIG_SGCN (y/n) % Virtually indexed D-cache support ! [PLATFORM=sparc64] CONFIG_VIRT_IDX_DCACHE (y/n) % Support for userspace debuggers ! CONFIG_UDEBUG (n/y) % Kernel console support ! CONFIG_KCONSOLE (y/n) % Detailed kernel logging ! CONFIG_LOG (n/y) % Deadlock detection support for spinlocks ! [CONFIG_DEBUG=y&CONFIG_SMP=y] CONFIG_DEBUG_SPINLOCK (y/n) % Watchpoint on rewriting AS with zero ! [CONFIG_DEBUG=y&(PLATFORM=amd64|PLATFORM=ia32)] CONFIG_DEBUG_AS_WATCHPOINT (y/n) % Compile kernel tests ! CONFIG_TEST (y/n) ## Hardware support % Framebuffer support ! [(PLATFORM=mips32&MACHINE=lgxemul)|(PLATFORM=mips32&MACHINE=bgxemul)|(PLATFORM=ia32)|(PLATFORM=amd64)|(PLATFORM=arm32)|(PLATFORM=sparc64&MACHINE=us3)] CONFIG_FB (y/n) % Framebuffer support ! [PLATFORM=ppc32|(PLATFORM=sparc64&MACHINE=us)] CONFIG_FB (y) % Framebuffer width @ "640" @ "800" @ "1024" @ "1152" @ "1280" @ "1400" @ "1440" @ "1600" @ "2048" ! [(PLATFORM=ia32|PLATFORM=amd64)&CONFIG_FB=y] CONFIG_VESA_WIDTH (choice) % Framebuffer height @ "480" @ "600" @ "768" @ "852" @ "900" @ "960" @ "1024" @ "1050" @ "1200" @ "1536" ! [(PLATFORM=ia32|PLATFORM=amd64)&CONFIG_FB=y] CONFIG_VESA_HEIGHT (choice) % Framebuffer depth @ "8" @ "16" @ "24" ! [(PLATFORM=ia32|PLATFORM=amd64)&CONFIG_FB=y] CONFIG_VESA_BPP (choice) % Start AP processors by the loader ! [PLATFORM=sparc64&CONFIG_SMP=y] CONFIG_AP (y/n) % Use Block Address Translation by the loader ! [PLATFORM=ppc32] CONFIG_BAT (y/n) % Preserve A.OUT header in isofs.b ! [PLATFORM=sparc64] CONFIG_AOUT_ISOFS_B (y/n) % External ramdisk ! [PLATFORM=sparc64] CONFIG_RD_EXTERNAL (y/n)