028dd332f9832fc1fa9ded2d83c2ec57224b1b4f
[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 (obsolete) coreboot v3
133 endmenu
134
135 menu "Console Options"
136
137 config SERIAL_CONSOLE
138         bool "See output on the serial port console"
139         default y
140
141 config SERIAL_IOBASE
142         hex "I/O base for the serial port (default 0x3f8)"
143         depends on SERIAL_CONSOLE
144         default 0x3f8
145
146 config SERIAL_SET_SPEED
147         bool "Override the serial console baud rate"
148         default n
149         depends on SERIAL_CONSOLE
150
151 config SERIAL_BAUD_RATE
152         int "Serial console baud rate (default 115200)"
153         depends on SERIAL_SET_SPEED
154         default 115200
155
156 config SERIAL_ACS_FALLBACK
157         bool "Use plain ASCII characters for ACS"
158         default n
159         depends on SERIAL_CONSOLE
160         help
161           The alternate character set (ACS) is used for drawing lines and
162           displaying a couple of other special graphics characters.  The
163           ACS characters generally look good on screen, but can be difficult
164           to cut and paste from a terminal window to a text editor.
165
166           Say 'y' here if you want to always use plain ASCII characters to
167           approximate the appearance of ACS characters on the serial port
168           console.
169
170 config VIDEO_CONSOLE
171         bool "See output on a video console"
172         default y
173
174 config VGA_VIDEO_CONSOLE
175         bool "VGA video console driver"
176         depends on VIDEO_CONSOLE
177         default y
178
179 config GEODELX_VIDEO_CONSOLE
180         bool "Geode LX video console driver"
181         depends on VIDEO_CONSOLE
182         default n
183
184 config COREBOOT_VIDEO_CONSOLE
185         bool "coreboot video console driver"
186         depends on VIDEO_CONSOLE && !GEODELX_VIDEO_CONSOLE
187         default n
188         help
189           Say Y here if coreboot switched to a graphics mode and
190           your payload wants to use it.
191
192 config PC_KEYBOARD
193         bool "Allow input from a PC keyboard"
194         default y
195
196 config PC_KEYBOARD_LAYOUT_US
197         bool "English (US) keyboard layout"
198         depends on PC_KEYBOARD
199         default y
200
201 config PC_KEYBOARD_LAYOUT_DE
202         bool "German keyboard layout"
203         depends on PC_KEYBOARD
204         default n
205
206 endmenu
207
208 menu "Drivers"
209
210 config PCI
211         bool "Support for PCI devices"
212         default y
213
214 config NVRAM
215         bool "Support for reading/writing NVRAM bytes"
216         default y
217
218 config RTC_PORT_EXTENDED_VIA
219         bool "Extended RTC ports are 0x74/0x75"
220         default n
221         help
222           For recent chipsets with 256 NVRAM bytes, you have to access the
223           upper 128 bytes (128-255) using two different I/O ports,
224           usually 0x72/0x73.
225
226           On some chipsets this can be a different set of ports, though.
227           The VIA VT8237R for example only recognizes the ports 0x74/0x75
228           for accessing the high 128 NVRAM bytes (as seems to be the case for
229           multiple VIA chipsets).
230
231           If you want to read or write CMOS bytes on computers with one of
232           these chipsets, say 'y' here.
233
234 config SPEAKER
235         bool "Support for PC speaker"
236         default y
237
238 config USB
239         bool "USB Support"
240         default n
241
242 config USB_UHCI
243         bool "Support for USB UHCI controllers"
244         depends on USB
245         help
246           Select this option if you are going to use USB 1.1 on an Intel based
247           system.
248
249 config USB_OHCI
250         bool "Support for USB OHCI controllers"
251         depends on USB
252         help
253           Select this option if you are going to use USB 1.1 on an AMD based
254           system.
255
256 config USB_EHCI
257         bool "Support for USB EHCI controllers"
258         depends on USB
259         help
260           Select this option if you want to use USB 2.0
261
262 config USB_XHCI
263         bool "Support for USB xHCI controllers"
264         depends on USB
265         help
266           Select this option if you want to use USB 3.0
267           NOTE: This option is not (fully) implemented yet
268
269 config USB_HID
270         bool "Support for USB keyboards"
271         depends on USB
272         default y
273         help
274           Select this option if you want to use devices complying to the
275           USB HID (Human Interface Device) standard. Such devices are for
276           example keyboards and mice. Currently only keyboards are supported.
277           Say Y here unless you know exactly what you are doing.
278
279 config USB_HUB
280         bool "Support for USB hubs"
281         depends on USB
282         default y
283         help
284           Select this option if you want to compile in support for USB hubs.
285           Say Y here unless you know exactly what you are doing.
286
287 config USB_MSC
288         bool "Support for USB storage"
289         depends on USB
290         default y
291         help
292           Select this option if you want to compile in support for USB mass
293           storage devices (USB memory sticks, hard drives, CDROM/DVD drives)
294           Say Y here unless you know exactly what you are doing.
295
296 endmenu
297
298 menu "Debugging"
299         depends on DEVELOPER
300
301 config DEBUG_MALLOC
302         bool "Debug memory allocator"
303         depends on USB
304         default n
305         help
306           Select this option if you want to debug the memory allocator. This
307           option logs all uses of the following functions:
308
309             void free(void *ptr);
310             void *malloc(size_t size);
311             void *calloc(size_t nmemb, size_t size);
312             void *realloc(void *ptr, size_t size);
313             void *memalign(size_t align, size_t size);
314
315           Say N here unless you are debugging memory allocator problems.
316
317 endmenu
318