# # 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 @ "bgxemul" GXEmul big endian @ "lgxemul" GXEmul little endian ! [PLATFORM=mips32] MACHINE (choice) % Machine type @ "gxemul" GXEmul ! [PLATFORM=arm32] MACHINE (choice) % Machine type @ "i460GX" i460GX chipset machine @ "ski" Ski ia64 simulator ! [PLATFORM=ia64] MACHINE (choice) % Machine type @ "generic" Generic Sun workstation or server @ "serengeti" Serengeti system ! [PLATFORM=sparc64] MACHINE (choice) % CPU type @ "pentium4" Pentium 4 @ "pentium3" Pentium 3 @ "core" Core Solo/Duo @ "athlon_xp" Athlon XP @ "athlon_mp" Athlon MP ! [PLATFORM=ia32] PROCESSOR (choice) % CPU type @ "opteron" Opteron ! [PLATFORM=amd64] PROCESSOR (choice) % CPU type @ "us" UltraSPARC I-II subarchitecture @ "us3" UltraSPARC III-IV subarchitecture ! [PLATFORM=sparc64&MACHINE=generic] PROCESSOR (choice) % CPU type @ "us3" ! [PLATFORM=sparc64&MACHINE=serengeti] PROCESSOR (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=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=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) ## Kernel configuration % Fences ! [PLATFORM=ia32&(PROCESSOR=athlon_xp|PROCESSOR=athlon_mp|PROCESSOR=pentium3)] CONFIG_FENCES_P3 (y) % Fences ! [PLATFORM=ia32&(PROCESSOR=pentium4|PROCESSOR=core)] CONFIG_FENCES_P4 (y) % Fences ! [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) % 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) % Multiboot standard support ! [PLATFORM=ia32|PLATFORM=amd64] CONFIG_MULTIBOOT (y) % FPU support ! [PLATFORM=ia32|PLATFORM=amd64|PLATFORM=ia64|PLATFORM=sparc64] CONFIG_FPU (y) % FPU support ! [PLATFORM=mips32&(MACHINE=lgxemul|MACHINE=bgxemul)] CONFIG_FPU (y) ## Kernel features options % Support for SMP ! [PLATFORM=ia32|PLATFORM=amd64|PLATFORM=sparc64|PLATFORM=ia64|(PLATFORM=mips32&MACHINE=msim)] CONFIG_SMP (y/n) % Debug build ! CONFIG_DEBUG (y/n) % Deadlock detection support for spinlocks ! [CONFIG_DEBUG=y&CONFIG_SMP=y] CONFIG_DEBUG_SPINLOCK (y/n) % Improved support for hyperthreading ! [PLATFORM=amd64&CONFIG_SMP=y] CONFIG_HT (y/n) % Improved support for hyperthreading ! [PLATFORM=ia32&PROCESSOR!=athlon_xp&PROCESSOR!=athlon_mp&PROCESSOR!=pentium3&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) % IO SAPIC on default address support ! [PLATFORM=ia64&MACHINE!=ski] CONFIG_IOSAPIC (y/n) % Virtually indexed D-cache support ! [PLATFORM=sparc64] CONFIG_VIRT_IDX_DCACHE (y/n) % Support for userspace debuggers ! CONFIG_UDEBUG (y/n) % Kernel console support ! CONFIG_KCONSOLE (y/n) % Detailed kernel logging ! CONFIG_LOG (n/y) % Compile kernel tests ! CONFIG_TEST (y/n) ## Hardware support % Input device class @ "generic" Keyboard or serial line @ "none" No input device ! [PLATFORM=ia32|PLATFORM=amd64|PLATFORM=mips32] CONFIG_HID_IN (choice) % Output device class @ "generic" Monitor or serial line @ "none" No output device ! [PLATFORM=ia32|PLATFORM=amd64|(PLATFORM=mips32&MACHINE=msim)] CONFIG_HID_OUT (choice) % Output device class @ "generic" Monitor or serial line @ "monitor" Monitor @ "serial" Serial line @ "none" No output device ! [PLATFORM=mips32&(MACHINE=bgxemul|MACHINE=lgxemul)] CONFIG_HID_OUT (choice) % PC keyboard support ! [CONFIG_HID_IN=generic&(PLATFORM=ia32|PLATFORM=amd64)] CONFIG_PC_KBD (y/n) % Support for msim/GXemul keyboard ! [CONFIG_HID_IN=generic&PLATFORM=mips32] CONFIG_MIPS_KBD (y/n) % Support for msim/GXemul printer ! [(CONFIG_HID_OUT=generic|CONFIG_HID_OUT=serial)&PLATFORM=mips32] CONFIG_MIPS_PRN (y/n) % i8042 controller support ! [CONFIG_PC_KBD=y] CONFIG_I8042 (y) % Dummy serial line input ! [CONFIG_MIPS_KBD=y] CONFIG_DSRLNIN (y) % Dummy serial line output ! [CONFIG_MIPS_PRN=y] CONFIG_DSRLNOUT (y) % Serial line input module ! [CONFIG_DSRLNIN=y] CONFIG_SRLN (y) #% i8042 controller support #! [(CONFIG_HID_IN=generic|CONFIG_HID_IN=keyboard)&MACHINE=i460GX] CONFIG_I8042 (y/n) #% Support for NS16550 controller #! [(CONFIG_HID_IN=keyboard&PLATFORM=sparc64)|(CONFIG_HID_IN=serial&PLATFORM=ia64)] CONFIG_NS16550 (y/n) #% Support for Z8530 controller #! [(CONFIG_HID_IN!=none|CONFIG_HID_OUT=generic|CONFIG_HID_OUT=serial)&PLATFORM=sparc64] CONFIG_Z8530 (y/n) #% Support for Serengeti console #! [(CONFIG_HID_IN=serial|CONFIG_HID_OUT=serial)&MACHINE=serengeti] CONFIG_SGCN (y/n) #% PC keyboard support #! [(CONFIG_HID_IN=generic|CONFIG_HID_IN=keyboard)&MACHINE=i460GX] CONFIG_PC_KBD (y/n) #% Sun keyboard support #! [(CONFIG_HID_IN=generic|CONFIG_HID_IN=keyboard)&PLATFORM=sparc64] CONFIG_SUN_KBD (y/n) % EGA support ! [CONFIG_HID_OUT=generic&(PLATFORM=ia32|PLATFORM=amd64)] CONFIG_EGA (y/n) #% EGA support #! [(CONFIG_HID_OUT=generic|CONFIG_HID_OUT=monitor)&MACHINE=i460GX] CONFIG_EGA (y/n) % Framebuffer support ! [CONFIG_HID_OUT=generic&(PLATFORM=ia32|PLATFORM=amd64)] CONFIG_FB (y/n) % Framebuffer support ! [(CONFIG_HID_OUT=generic|CONFIG_HID_OUT=monitor)&PLATFORM=mips32&(MACHINE=lgxemul|MACHINE=bgxemul)] CONFIG_FB (y/n) % Framebuffer support ! [CONFIG_HID_OUT=none] CONFIG_FB (n) % 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&MACHINE=generic] CONFIG_AOUT_ISOFS_B (y) % External ramdisk ! [PLATFORM=sparc64] CONFIG_RD_EXTERNAL (y/n) % Keyboard layout @ "us_qwerty" US QWERTY @ "us_dvorak" US Dvorak ! KBD_LAYOUT (choice)