diff options
Diffstat (limited to 'payloads/libpayload/Kconfig')
-rw-r--r-- | payloads/libpayload/Kconfig | 597 |
1 files changed, 597 insertions, 0 deletions
diff --git a/payloads/libpayload/Kconfig b/payloads/libpayload/Kconfig new file mode 100644 index 0000000000..5c40170cce --- /dev/null +++ b/payloads/libpayload/Kconfig @@ -0,0 +1,597 @@ +## +## 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 GPL + bool "GPLv2-licensed Options" + default n + help + Prompt for options that will build code licensed under the GNU General + Public License (version 2). This will subject the whole payload to the + terms of this license (including its provision to release all sources, + please see the LICENSE_GPL file for details). + +config EXPERIMENTAL + bool "Experimental Options" + default n + help + Prompt for experimental functionality. Attention: This is not likely + to work without problems + +config DEVELOPER + bool "Developer Options" + default n + help + Prompt for developer options. These options are only interesting for + libpayload developers. + +config REMOTEGDB + bool "Remote GDB stub" + default n + depends on GPL + help + Enable Remote GDB debugging support. + +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 + +config ARCH_ARM64 + bool "ARM64" + help + Support the ARM64 architecture + +config ARCH_MIPS + bool "MIPS" + help + Support the MIPS 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 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 S5P_SERIAL_CONSOLE + bool "Exynos SOC, S5P compatible serial port driver" + depends on SERIAL_CONSOLE + default n + +config 8250_MMIO32_SERIAL_CONSOLE + bool "Memory-mapped 8250-compatible serial port driver with 32-bit regs" + depends on SERIAL_CONSOLE + default n + +config IPQ806X_SERIAL_CONSOLE + bool "IPQ806x SOC compatible serial port driver" + depends on SERIAL_CONSOLE + default n + +config BG4CD_SERIAL_CONSOLE + bool "Serial port driver for Marvell's BG4CD" + depends on SERIAL_CONSOLE + default n + +config PL011_SERIAL_CONSOLE + bool "PL011 compatible serial port driver" + depends on 8250_SERIAL_CONSOLE + default n + +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 if ARCH_X86 # uses IO + default n + +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 TIMER_RDTSC + bool + default y + depends on ARCH_X86 + +choice + prompt "Timer driver" + default TIMER_NONE + depends on !ARCH_X86 + +config TIMER_NONE + bool "None" + help + The timer driver is provided by the payload itself. + +config TIMER_MCT + bool "Exynos MCT" + +config TIMER_TEGRA_1US + bool "Tegra 1us" + +config TIMER_IPQ806X + bool "Timer for ipq806x platforms" + +config TIMER_RK + bool "Timer for Rockchip" + +config TIMER_BG4CD + bool "Marvell BG4CD" + +config TIMER_CYGNUS + bool "Timer for Cygnus" + +config TIMER_IMG_PISTACHIO + bool "Timer for IMG Pistachio" + +config TIMER_MTK + bool "Timer for MediaTek MT8173" + +endchoice + +config TIMER_MCT_HZ + int "Exynos MCT frequency" + depends on TIMER_MCT + default 24000000 + +config TIMER_MCT_ADDRESS + hex "Exynos MCT base address" + depends on TIMER_MCT + default 0x101c0000 + +config TIMER_RK_ADDRESS + hex "Rockchip timer base address" + depends on TIMER_RK + default 0xff810020 + +config TIMER_TEGRA_1US_ADDRESS + hex "Tegra u1s timer base address" + depends on TIMER_TEGRA_1US + default 0x60005010 + +config IPQ806X_TIMER_FREQ + int "Hardware timer frequency" + default 32000 + depends on TIMER_IPQ806X + help + IPQ hardware presently provides a single timer running at 32KHz, a + finer granulariry timer is available but is not yet enabled. + +config IPQ806X_TIMER_REG + hex "Timer register address" + default 0x0200A008 + depends on TIMER_IPQ806X + help + Address of the register to read a free running timer value. + +config IPROC_PERIPH_GLB_TIM_REG_BASE + hex "Cygnus timer base address" + depends on TIMER_CYGNUS + default 0x19020200 + +config TIMER_MTK_HZ + int "MediaTek GPT frequency" + depends on TIMER_MTK + default 13000000 + help + Clock frequency of MediaTek General Purpose Timer. + +config TIMER_MTK_ADDRESS + hex "MTK GPT register address" + depends on TIMER_MTK + default 0x10008048 + help + Address of GPT4's counter register to read the FREERUN-mode timer value. + +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_XHCI_MTK_QUIRK + bool "Support for USB xHCI controllers on MTK SoC" + depends on USB_XHCI + help + Select this option if you want to use USB 3.0 on MTK platform. + +config USB_DWC2 + bool "Support for USB DesignWare HCD controllers" + depends on USB && !USB_HID + help + Select this option if you want to use DesignWare USB 2.0 host controller + +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_EHCI_HOSTPC_ROOT_HUB_TT + bool "Support for USB EHCI ROOT HUB that has TT" + depends on USB_EHCI + default n + help + Select this option if USB EHCI root hub supports TT (Transaction + Translator). + To support this TT feature we read port-speed from non-standard + register HOSTPC (offset 84h of Operational Register base). + +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 + +config UDC + bool "USB device mode support" + default n + help + Select this option to add support for running as + a USB device. + +config UDC_CI + bool "ChipIdea driver for USB device mode" + depends on UDC + default n + help + Select this option to add the driver for ChipIdea + USB device controller. + +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/arm/Kconfig" +source "arch/arm64/Kconfig" +source "arch/mips/Kconfig" +source "arch/x86/Kconfig" |