libpayload: Add liblzma, libcbfs
[coreboot.git] / payloads / libpayload / Config.in
1 ##
2 ## This file is part of the libpayload project.
3 ##
4 ## Copyright (C) 2008 Advanced Micro Devices, Inc.
5 ## Copyright (C) 2008 coresystems GmbH
6 ##
7 ## Redistribution and use in source and binary forms, with or without
8 ## modification, are permitted provided that the following conditions
9 ## are met:
10 ## 1. Redistributions of source code must retain the above copyright
11 ##    notice, this list of conditions and the following disclaimer.
12 ## 2. Redistributions in binary form must reproduce the above copyright
13 ##    notice, this list of conditions and the following disclaimer in the
14 ##    documentation and/or other materials provided with the distribution.
15 ## 3. The name of the author may not be used to endorse or promote products
16 ##    derived from this software without specific prior written permission.
17 ##
18 ## THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
19 ## ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
20 ## IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
21 ## ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
22 ## FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
23 ## DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
24 ## OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
25 ## HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
26 ## LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
27 ## OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
28 ## SUCH DAMAGE.
29 ##
30
31 mainmenu "Libpayload Configuration"
32
33 menu "Generic Options"
34
35 config EXPERIMENTAL
36         bool "Experimental Options"
37         default n
38         help
39           Prompt for experimental functionality. Attention: This is not likely
40           to work without problems
41
42 config OBSOLETE
43         bool "Obsolete Options"
44         default n
45         help
46           Prompt for obsolete options. These options are for old, unsupported
47           features and are likely to go away in the future.
48
49 config DEVELOPER
50         bool "Developer Options"
51         default n
52         help
53           Prompt for developer options. These options are only interesting for
54           libpayload developers.
55
56 endmenu
57
58 menu "Architecture Options"
59
60 choice
61         prompt "Target Architecture"
62         default TARGET_I386
63
64 config TARGET_I386
65         bool "x86"
66         help
67           Support the x86 architecture
68
69 config TARGET_POWERPC
70         bool "PowerPC"
71         help
72           Support the PowerPC architecture
73
74 endchoice
75
76 config MEMMAP_RAM_ONLY
77         bool "Only consider RAM entries in memory map for further processing"
78         default n
79
80 config MULTIBOOT
81         bool "Multiboot header support"
82         depends on TARGET_I386
83         default y
84
85 endmenu
86
87 menu "Standard Libraries"
88
89 config LIBC
90         bool "Enable C library support"
91         default y
92
93 config CURSES
94         bool "Build a curses library"
95         default y
96
97 choice
98         prompt "Curses implementation"
99         default PDCURSES
100         depends on CURSES
101
102 config TINYCURSES
103         bool "Tinycurses"
104         help
105           Tinycurses was the first curses implementation for libpayload.
106           It features low memory consumption, static allocation of larger
107           data structures (so few or no memory allocation calls) and a
108           reduced feature set.
109
110 config PDCURSES
111         bool "PDCurses"
112         default y
113         help
114           libpayload's PDCurses port provides a full features curses
115           implementation, including libpanel, libmenu and libform (which
116           are taken from ncurses).
117           It requires more system resources, in particularily heap memory.
118
119 endchoice
120
121 config LAR
122         bool "LAR support"
123         default n
124         depends on OBSOLETE
125         help
126           LAR is the archive format of (obsolete) coreboot v3
127
128 config CBFS
129         bool "CBFS support"
130         default y
131         help
132           CBFS is the archive format of coreboot
133
134 config LZMA
135         bool "LZMA decoder"
136         default y
137         help
138           LZMA decoder implementation, usable eg. by CBFS,
139           but also externally.
140 endmenu
141
142 menu "Console Options"
143
144 config SERIAL_CONSOLE
145         bool "See output on the serial port console"
146         default y
147
148 config SERIAL_IOBASE
149         hex "I/O base for the serial port (default 0x3f8)"
150         depends on SERIAL_CONSOLE
151         default 0x3f8
152
153 config SERIAL_SET_SPEED
154         bool "Override the serial console baud rate"
155         default n
156         depends on SERIAL_CONSOLE
157
158 config SERIAL_BAUD_RATE
159         int "Serial console baud rate (default 115200)"
160         depends on SERIAL_SET_SPEED
161         default 115200
162
163 config SERIAL_ACS_FALLBACK
164         bool "Use plain ASCII characters for ACS"
165         default n
166         depends on SERIAL_CONSOLE
167         help
168           The alternate character set (ACS) is used for drawing lines and
169           displaying a couple of other special graphics characters.  The
170           ACS characters generally look good on screen, but can be difficult
171           to cut and paste from a terminal window to a text editor.
172
173           Say 'y' here if you want to always use plain ASCII characters to
174           approximate the appearance of ACS characters on the serial port
175           console.
176
177 config VIDEO_CONSOLE
178         bool "See output on a video console"
179         default y
180
181 config VGA_VIDEO_CONSOLE
182         bool "VGA video console driver"
183         depends on VIDEO_CONSOLE
184         default y
185
186 config GEODELX_VIDEO_CONSOLE
187         bool "Geode LX video console driver"
188         depends on VIDEO_CONSOLE
189         default n
190
191 config COREBOOT_VIDEO_CONSOLE
192         bool "coreboot video console driver"
193         depends on VIDEO_CONSOLE && !GEODELX_VIDEO_CONSOLE
194         default n
195         help
196           Say Y here if coreboot switched to a graphics mode and
197           your payload wants to use it.
198
199 config PC_KEYBOARD
200         bool "Allow input from a PC keyboard"
201         default y
202
203 config PC_KEYBOARD_LAYOUT_US
204         bool "English (US) keyboard layout"
205         depends on PC_KEYBOARD
206         default y
207
208 config PC_KEYBOARD_LAYOUT_DE
209         bool "German keyboard layout"
210         depends on PC_KEYBOARD
211         default n
212
213 endmenu
214
215 menu "Drivers"
216
217 config PCI
218         bool "Support for PCI devices"
219         default y
220
221 config NVRAM
222         bool "Support for reading/writing NVRAM bytes"
223         default y
224
225 config RTC_PORT_EXTENDED_VIA
226         bool "Extended RTC ports are 0x74/0x75"
227         default n
228         help
229           For recent chipsets with 256 NVRAM bytes, you have to access the
230           upper 128 bytes (128-255) using two different I/O ports,
231           usually 0x72/0x73.
232
233           On some chipsets this can be a different set of ports, though.
234           The VIA VT8237R for example only recognizes the ports 0x74/0x75
235           for accessing the high 128 NVRAM bytes (as seems to be the case for
236           multiple VIA chipsets).
237
238           If you want to read or write CMOS bytes on computers with one of
239           these chipsets, say 'y' here.
240
241 config SPEAKER
242         bool "Support for PC speaker"
243         default y
244
245 config USB
246         bool "USB Support"
247         default n
248
249 config USB_UHCI
250         bool "Support for USB UHCI controllers"
251         depends on USB
252         help
253           Select this option if you are going to use USB 1.1 on an Intel based
254           system.
255
256 config USB_OHCI
257         bool "Support for USB OHCI controllers"
258         depends on USB
259         help
260           Select this option if you are going to use USB 1.1 on an AMD based
261           system.
262
263 config USB_EHCI
264         bool "Support for USB EHCI controllers"
265         depends on USB
266         help
267           Select this option if you want to use USB 2.0
268
269 config USB_XHCI
270         bool "Support for USB xHCI controllers"
271         depends on USB
272         help
273           Select this option if you want to use USB 3.0
274           NOTE: This option is not (fully) implemented yet
275
276 config USB_HID
277         bool "Support for USB keyboards"
278         depends on USB
279         default y
280         help
281           Select this option if you want to use devices complying to the
282           USB HID (Human Interface Device) standard. Such devices are for
283           example keyboards and mice. Currently only keyboards are supported.
284           Say Y here unless you know exactly what you are doing.
285
286 config USB_HUB
287         bool "Support for USB hubs"
288         depends on USB
289         default y
290         help
291           Select this option if you want to compile in support for USB hubs.
292           Say Y here unless you know exactly what you are doing.
293
294 config USB_MSC
295         bool "Support for USB storage"
296         depends on USB
297         default y
298         help
299           Select this option if you want to compile in support for USB mass
300           storage devices (USB memory sticks, hard drives, CDROM/DVD drives)
301           Say Y here unless you know exactly what you are doing.
302
303 endmenu
304
305 menu "Debugging"
306         depends on DEVELOPER
307
308 config DEBUG_MALLOC
309         bool "Debug memory allocator"
310         depends on USB
311         default n
312         help
313           Select this option if you want to debug the memory allocator. This
314           option logs all uses of the following functions:
315
316             void free(void *ptr);
317             void *malloc(size_t size);
318             void *calloc(size_t nmemb, size_t size);
319             void *realloc(void *ptr, size_t size);
320             void *memalign(size_t align, size_t size);
321
322           Say N here unless you are debugging memory allocator problems.
323
324 endmenu
325