summaryrefslogtreecommitdiff
path: root/payloads/libpayload/Kconfig
diff options
context:
space:
mode:
Diffstat (limited to 'payloads/libpayload/Kconfig')
-rw-r--r--payloads/libpayload/Kconfig597
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"