-#
-# This file is part of the libpayload project.
-#
-# Copyright (C) 2008 Advanced Micro Devices, Inc.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions
-# are met:
-# 1. Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-# 2. 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.
-# 3. 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 AND CONTRIBUTORS ``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 OR CONTRIBUTORS 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.
-#
+##
+## This file is part of the libpayload project.
+##
+## Copyright (C) 2008 Advanced Micro Devices, Inc.
+## Copyright (C) 2008 coresystems GmbH
+##
+## Redistribution and use in source and binary forms, with or without
+## modification, are permitted provided that the following conditions
+## are met:
+## 1. Redistributions of source code must retain the above copyright
+## notice, this list of conditions and the following disclaimer.
+## 2. 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.
+## 3. 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 AND CONTRIBUTORS ``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 OR CONTRIBUTORS 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.
+##
mainmenu "Libpayload Configuration"
-config HAVE_DOT_CONFIG
- bool
- default y
+menu "Generic Options"
-# When (if) we support multiple architectures,
-# then this will become an option
+config EXPERIMENTAL
+ bool "Experimental Options"
+ default n
+ help
+ Prompt for experimental functionality. Attention: This is not likely
+ to work without problems
+
+config OBSOLETE
+ bool "Obsolete Options"
+ default n
+ help
+ Prompt for obsolete options. These options are for old, unsupported
+ features and are likely to go away in the future.
+
+config DEVELOPER
+ bool "Developer Options"
+ default n
+ help
+ Prompt for developer options. These options are only interesting for
+ libpayload developers.
+
+endmenu
+
+menu "Architecture Options"
+
+choice
+ prompt "Target Architecture"
+ default TARGET_I386
config TARGET_I386
- bool
- default y
+ bool "x86"
+ help
+ Support the x86 architecture
+
+config TARGET_POWERPC
+ bool "PowerPC"
+ help
+ Support the PowerPC architecture
+
+endchoice
+
+config MEMMAP_RAM_ONLY
+ bool "Only consider RAM entries in memory map for further processing"
+ default n
+
+config MULTIBOOT
+ bool "Multiboot header support"
+ depends on TARGET_I386
+ default y
+
+endmenu
+
+menu "Standard Libraries"
+
+config LIBC
+ bool "Enable C library support"
+ default y
+
+config CURSES
+ bool "Build a curses library"
+ default y
+
+choice
+ prompt "Curses implementation"
+ default PDCURSES
+ depends on CURSES
+
+config TINYCURSES
+ bool "Tinycurses"
+ help
+ Tinycurses was the first curses implementation for libpayload.
+ It features low memory consumption, static allocation of larger
+ data structures (so few or no memory allocation calls) and a
+ reduced feature set.
+
+config PDCURSES
+ bool "PDCurses"
+ default y
+ help
+ libpayload's PDCurses port provides a full features curses
+ implementation, including libpanel, libmenu and libform (which
+ are taken from ncurses).
+ It requires more system resources, in particularily heap memory.
+
+endchoice
+
+config LAR
+ bool "LAR support"
+ default n
+ depends on OBSOLETE
+ help
+ LAR is the archive format of (obsolete) coreboot v3
+
+config CBFS
+ bool "CBFS support"
+ default y
+ help
+ CBFS is the archive format of coreboot
+
+config LZMA
+ bool "LZMA decoder"
+ default y
+ help
+ LZMA decoder implementation, usable eg. by CBFS,
+ but also externally.
+endmenu
+
+menu "Console Options"
-menu "Output Options"
-
config SERIAL_CONSOLE
- bool "See output on the serial port console"
- default y
+ bool "See output on the serial port console"
+ default y
config SERIAL_IOBASE
- hex "I/O base for the serial port (default 0x3f8)"
- depends SERIAL_CONSOLE
- default 0x3f8
-
+ hex "I/O base for the serial port (default 0x3f8)"
+ depends on SERIAL_CONSOLE
+ default 0x3f8
+
config SERIAL_SET_SPEED
bool "Override the serial console baud rate"
default n
- depends SERIAL_CONSOLE
+ depends on SERIAL_CONSOLE
config SERIAL_BAUD_RATE
int "Serial console baud rate (default 115200)"
- depends SERIAL_SET_SPEED
+ depends on SERIAL_SET_SPEED
default 115200
-config VGA_CONSOLE
- bool "See output on a VGA console"
- default y
+config SERIAL_ACS_FALLBACK
+ bool "Use plain ASCII characters for ACS"
+ default n
+ depends on SERIAL_CONSOLE
+ help
+ The alternate character set (ACS) is used for drawing lines and
+ displaying a couple of other special graphics characters. The
+ ACS characters generally look good on screen, but can be difficult
+ to cut and paste from a terminal window to a text editor.
+
+ Say 'y' here if you want to always use plain ASCII characters to
+ approximate the appearance of ACS characters on the serial port
+ console.
+
+config VIDEO_CONSOLE
+ bool "See output on a video console"
+ default y
+
+config VGA_VIDEO_CONSOLE
+ bool "VGA video console driver"
+ depends on VIDEO_CONSOLE
+ default y
+
+config GEODELX_VIDEO_CONSOLE
+ bool "Geode LX video console driver"
+ depends on VIDEO_CONSOLE
+ default n
+
+config COREBOOT_VIDEO_CONSOLE
+ bool "coreboot video console driver"
+ depends on VIDEO_CONSOLE && !GEODELX_VIDEO_CONSOLE
+ default n
+ help
+ Say Y here if coreboot switched to a graphics mode and
+ your payload wants to use it.
config PC_KEYBOARD
- bool "Allow input from a PC keyboard"
- depends VGA_CONSOLE
- default y
+ bool "Allow input from a PC keyboard"
+ default y
+
+config PC_KEYBOARD_LAYOUT_US
+ bool "English (US) keyboard layout"
+ depends on PC_KEYBOARD
+ default y
+
+config PC_KEYBOARD_LAYOUT_DE
+ bool "German keyboard layout"
+ depends on PC_KEYBOARD
+ default n
endmenu
-menu "Build Options"
+menu "Drivers"
-config TINYCURSES
- bool "Enable tinycurses support"
- default y
+config PCI
+ bool "Support for PCI devices"
+ default y
+
+config NVRAM
+ bool "Support for reading/writing NVRAM bytes"
+ default y
+
+config RTC_PORT_EXTENDED_VIA
+ bool "Extended RTC ports are 0x74/0x75"
+ default n
+ help
+ For recent chipsets with 256 NVRAM bytes, you have to access the
+ upper 128 bytes (128-255) using two different I/O ports,
+ usually 0x72/0x73.
+
+ On some chipsets this can be a different set of ports, though.
+ The VIA VT8237R for example only recognizes the ports 0x74/0x75
+ for accessing the high 128 NVRAM bytes (as seems to be the case for
+ multiple VIA chipsets).
+
+ If you want to read or write CMOS bytes on computers with one of
+ these chipsets, say 'y' here.
+
+config SPEAKER
+ bool "Support for PC speaker"
+ default y
+
+config USB
+ bool "USB Support"
+ default n
+
+config USB_UHCI
+ bool "Support for USB UHCI controllers"
+ depends on USB
+ help
+ Select this option if you are going to use USB 1.1 on an Intel based
+ system.
+
+config USB_OHCI
+ bool "Support for USB OHCI controllers"
+ depends on USB
+ help
+ Select this option if you are going to use USB 1.1 on an AMD based
+ system.
+
+config USB_EHCI
+ bool "Support for USB EHCI controllers"
+ depends on USB
+ help
+ Select this option if you want to use USB 2.0
+
+config USB_XHCI
+ bool "Support for USB xHCI controllers"
+ depends on USB
+ help
+ Select this option if you want to use USB 3.0
+ NOTE: This option is not (fully) implemented yet
+
+config USB_HID
+ bool "Support for USB keyboards"
+ depends on USB
+ default y
+ help
+ Select this option if you want to use devices complying to the
+ USB HID (Human Interface Device) standard. Such devices are for
+ example keyboards and mice. Currently only keyboards are supported.
+ Say Y here unless you know exactly what you are doing.
+
+config USB_HUB
+ bool "Support for USB hubs"
+ depends on USB
+ default y
+ help
+ Select this option if you want to compile in support for USB hubs.
+ Say Y here unless you know exactly what you are doing.
+
+config USB_MSC
+ bool "Support for USB storage"
+ depends on USB
+ default y
+ help
+ Select this option if you want to compile in support for USB mass
+ storage devices (USB memory sticks, hard drives, CDROM/DVD drives)
+ Say Y here unless you know exactly what you are doing.
endmenu
+
+menu "Debugging"
+ depends on DEVELOPER
+
+config DEBUG_MALLOC
+ bool "Debug memory allocator"
+ depends on USB
+ default n
+ help
+ Select this option if you want to debug the memory allocator. This
+ option logs all uses of the following functions:
+
+ void free(void *ptr);
+ void *malloc(size_t size);
+ void *calloc(size_t nmemb, size_t size);
+ void *realloc(void *ptr, size_t size);
+ void *memalign(size_t align, size_t size);
+
+ Say N here unless you are debugging memory allocator problems.
+
+endmenu
+