| ## |
| ## 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" |
| |
| menu "Generic Options" |
| |
| 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. |
| |
| config CHROMEOS |
| bool "ChromeOS specific features" |
| default n |
| help |
| Enable ChromeOS specific features. |
| |
| endmenu |
| |
| menu "Architecture Options" |
| |
| choice |
| prompt "Target Architecture" |
| default ARCH_X86 |
| |
| config ARCH_ARM |
| bool "ARM" |
| help |
| Support the ARM architecture |
| |
| config ARCH_X86 |
| bool "x86" |
| help |
| Support the x86 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 ARCH_X86 |
| 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" |
| 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" |
| |
| config SKIP_CONSOLE_INIT |
| bool "Skip initializing the consoles at startup" |
| default n |
| help |
| Normally, libpayload will initialize console input/output on startup |
| before the payload itself gets control. This option disables that |
| behavior and leaves console initialization up to the payload. |
| |
| config CBMEM_CONSOLE |
| bool "Send output to the in memory CBMEM console" |
| default y |
| |
| config SERIAL_CONSOLE |
| bool "See output on the serial port console" |
| default y |
| |
| config 8250_SERIAL_CONSOLE |
| bool "8250, 16450, 16550, 16550A compatible serial port driver" |
| depends on SERIAL_CONSOLE |
| default y if ARCH_X86 |
| default n if !ARCH_X86 |
| |
| config SERIAL_IOBASE |
| ## This default is currently not used on non-x86 systems. |
| hex "Default I/O base for the serial port (default 0x3f8)" |
| depends on SERIAL_CONSOLE && ARCH_X86 |
| default 0x3f8 |
| |
| config SERIAL_SET_SPEED |
| bool "Override the serial console baud rate" |
| default n |
| depends on SERIAL_CONSOLE |
| |
| config SERIAL_BAUD_RATE |
| int "Serial console baud rate (default 115200)" |
| depends on SERIAL_SET_SPEED |
| default 115200 |
| |
| 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 ARCH_X86 && VIDEO_CONSOLE |
| default y |
| |
| config GEODELX_VIDEO_CONSOLE |
| bool "Geode LX video console driver" |
| depends on ARCH_X86 && 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" |
| 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 "Drivers" |
| |
| config PCI |
| bool "Support for PCI devices" |
| depends on ARCH_X86 # for now |
| default y |
| |
| config NVRAM |
| bool "Support for reading/writing NVRAM bytes" |
| depends on ARCH_X86 # for now |
| 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" |
| depends on ARCH_X86 |
| default y |
| |
| config STORAGE |
| bool "Support for storage devices" |
| default y |
| help |
| Select this option if you want support for storage devices (like |
| hard drives, memory sticks or optical drives). |
| |
| config STORAGE_64BIT_LBA |
| bool "Use 64-bit integers to address sectors" |
| depends on STORAGE |
| default n |
| help |
| If this is selected, sectors will be addressed by an 64-bit integer. |
| Select this to support LBA-48 for ATA drives. |
| |
| config STORAGE_ATA |
| bool "Support ATA drives (i.e. hard drives)" |
| depends on STORAGE |
| default y |
| help |
| Select this option if you want support for ATA storage devices |
| (i.e. hard drives). |
| |
| config STORAGE_ATAPI |
| bool "Support ATAPI drives (i.e. optical drives)" |
| depends on STORAGE |
| default y |
| select STORAGE_ATA |
| help |
| Select this option if you want support for ATAPI storage devices |
| (i.e. optical drives like CD or DVD drives). |
| |
| config STORAGE_AHCI |
| bool "Support for AHCI host controllers" |
| depends on STORAGE && (STORAGE_ATA || STORAGE_ATAPI) && PCI |
| default y |
| help |
| Select this option if you want support for SATA controllers in |
| AHCI mode. |
| |
| config STORAGE_AHCI_ONLY_TESTED |
| bool "Only enable tested controllers" |
| depends on STORAGE_AHCI |
| default y |
| help |
| If this option is selected only AHCI controllers which are known |
| to work will be used. |
| |
| config USB |
| bool "USB Support" |
| default n |
| |
| config USB_UHCI |
| bool "Support for USB UHCI controllers" |
| depends on USB && ARCH_X86 |
| 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 a non-Intel 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. |
| |
| config USB_GEN_HUB |
| bool |
| default n if (!USB_HUB && !USB_XHCI) |
| default y if (USB_HUB || USB_XHCI) |
| config USB_PCI |
| bool "Auto-scan PCI bus for USB host controllers" |
| depends on USB |
| default y if ARCH_X86 |
| default n |
| |
| 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 |
| |
| config BIG_ENDIAN |
| default n |
| bool |
| |
| config LITTLE_ENDIAN |
| default n |
| bool |
| |
| # Whether the target system has an IO address space. |
| config IO_ADDRESS_SPACE |
| default n |
| bool |
| |
| source "arch/Config.in" |