libpayload: Add PDCurses and ncurses' libform/libmenu
[coreboot.git] / payloads / libpayload / Config.in
index ae071456bffa3d5341ad53ac38068083c39180e6..028dd332f9832fc1fa9ded2d83c2ec57224b1b4f 100644 (file)
 
 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.
+
+endmenu
+
 menu "Architecture Options"
 
 choice
@@ -48,6 +73,10 @@ config TARGET_POWERPC
 
 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
@@ -61,10 +90,46 @@ 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 "Enable tinycurses support"
+       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 (obsolete) coreboot v3
 endmenu
 
 menu "Console Options"
@@ -97,9 +162,9 @@ config SERIAL_ACS_FALLBACK
          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 
+         approximate the appearance of ACS characters on the serial port
          console.
 
 config VIDEO_CONSOLE
@@ -157,12 +222,12 @@ config RTC_PORT_EXTENDED_VIA
          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.
 
@@ -187,29 +252,67 @@ config USB_OHCI
        help
          Select this option if you are going to use USB 1.1 on an AMD based
          system.
-         NOTE: This option is not (fully) implemented yet
 
 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 (broken)"
+       bool "Support for USB keyboards"
        depends on USB
-       default n
+       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 (broken)"
+       bool "Support for USB hubs"
        depends on USB
-       default n
+       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