## 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
mainmenu "Libpayload Configuration"
-config HAVE_DOT_CONFIG
- bool
- default y
+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.
+
+endmenu
+
+menu "Architecture Options"
+
+choice
+ prompt "Target Architecture"
+ default TARGET_I386
-# When (if) we support multiple architectures, this will become an option.
config TARGET_I386
- bool
+ 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
-menu "Output Options"
+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"
config SERIAL_CONSOLE
bool "See output on the serial port console"
config SERIAL_IOBASE
hex "I/O base for the serial port (default 0x3f8)"
- depends SERIAL_CONSOLE
+ 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"
+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
+
+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"
default y
config NVRAM
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.
-endmenu
+config SPEAKER
+ bool "Support for PC speaker"
+ default y
-menu "Build Options"
+config USB
+ bool "USB Support"
+ default n
-config TINYCURSES
- bool "Enable tinycurses support"
+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
+