blob: 377b7bafb64849c78f5f9c48a5cc46e87ccc0659 [file] [log] [blame]
Uwe Hermann661e3802008-03-21 18:37:23 +00001##
2## This file is part of the libpayload project.
3##
4## Copyright (C) 2008 Advanced Micro Devices, Inc.
Stefan Reinauer69863582008-08-08 13:45:03 +00005## Copyright (C) 2008 coresystems GmbH
Uwe Hermann661e3802008-03-21 18:37:23 +00006##
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##
Jordan Crousef6145c32008-03-19 23:56:58 +000030
31mainmenu "Libpayload Configuration"
32
Stefan Reinauere5d30b72010-03-25 22:15:19 +000033menu "Generic Options"
34
35config 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
42config 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
49config 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
Gabe Blackd3890cc2012-03-11 01:57:53 -080056config CHROMEOS
57 bool "ChromeOS specific features"
58 default n
59 help
60 Enable ChromeOS specific features.
61
Stefan Reinauere5d30b72010-03-25 22:15:19 +000062endmenu
63
Jordan Crouse20c9cf12008-10-20 16:51:43 +000064menu "Architecture Options"
65
Patrick Georgid385ed22009-05-21 10:02:52 +000066choice
67 prompt "Target Architecture"
David Hendricks4b6be982012-11-30 13:56:31 -080068 default ARCH_X86
Patrick Georgid385ed22009-05-21 10:02:52 +000069
Stefan Reinauer8af0d032012-12-14 13:05:21 -080070config ARCH_ARMV7
71 bool "ARMv7"
72 help
73 Support the x86 architecture
74
75config ARCH_POWERPC
76 bool "PowerPC"
77 help
78 Support the PowerPC architecture
79
David Hendricks4b6be982012-11-30 13:56:31 -080080config ARCH_X86
Patrick Georgid385ed22009-05-21 10:02:52 +000081 bool "x86"
82 help
83 Support the x86 architecture
84
Patrick Georgid385ed22009-05-21 10:02:52 +000085endchoice
86
Patrick Georgi7f965832011-04-21 18:57:16 +020087config MEMMAP_RAM_ONLY
88 bool "Only consider RAM entries in memory map for further processing"
89 default n
90
Jordan Crouse20c9cf12008-10-20 16:51:43 +000091config MULTIBOOT
92 bool "Multiboot header support"
David Hendricks4b6be982012-11-30 13:56:31 -080093 depends on ARCH_X86
Jordan Crouse20c9cf12008-10-20 16:51:43 +000094 default y
95
96endmenu
97
Stefan Reinauer69863582008-08-08 13:45:03 +000098menu "Standard Libraries"
99
100config LIBC
101 bool "Enable C library support"
102 default y
103
Patrick Georgi3b77b722011-07-07 15:41:53 +0200104config CURSES
105 bool "Build a curses library"
Stefan Reinauer69863582008-08-08 13:45:03 +0000106 default y
107
Patrick Georgi3b77b722011-07-07 15:41:53 +0200108choice
109 prompt "Curses implementation"
110 default PDCURSES
111 depends on CURSES
112
113config TINYCURSES
114 bool "Tinycurses"
115 help
116 Tinycurses was the first curses implementation for libpayload.
117 It features low memory consumption, static allocation of larger
118 data structures (so few or no memory allocation calls) and a
119 reduced feature set.
120
121config PDCURSES
122 bool "PDCurses"
123 default y
124 help
125 libpayload's PDCurses port provides a full features curses
126 implementation, including libpanel, libmenu and libform (which
127 are taken from ncurses).
128 It requires more system resources, in particularily heap memory.
129
130endchoice
131
Stefan Reinauere5d30b72010-03-25 22:15:19 +0000132config LAR
133 bool "LAR support"
134 default n
135 depends on OBSOLETE
136 help
137 LAR is the archive format of (obsolete) coreboot v3
138
139config CBFS
140 bool "CBFS support"
141 default y
142 help
Patrick Georgi6de1ee4a2011-07-21 15:43:14 +0200143 CBFS is the archive format of coreboot
144
145config LZMA
146 bool "LZMA decoder"
147 default y
148 help
149 LZMA decoder implementation, usable eg. by CBFS,
150 but also externally.
Stefan Reinauer69863582008-08-08 13:45:03 +0000151endmenu
152
153menu "Console Options"
Uwe Hermann2d758b82008-03-31 15:21:24 +0000154
Gabe Black4bb07312012-10-05 11:43:39 -0700155config SKIP_CONSOLE_INIT
156 bool "Skip initializing the consoles at startup"
157 default n
158 help
159 Normally, libpayload will initialize console input/output on startup
160 before the payload itself gets control. This option disables that
161 behavior and leaves console initialization up to the payload.
162
Gabe Blacka54b6a62012-09-29 00:21:27 -0700163config CBMEM_CONSOLE
164 bool "Send output to the in memory CBMEM console"
165 default y
166
Jordan Crousef6145c32008-03-19 23:56:58 +0000167config SERIAL_CONSOLE
Uwe Hermann2d758b82008-03-31 15:21:24 +0000168 bool "See output on the serial port console"
169 default y
Jordan Crousef6145c32008-03-19 23:56:58 +0000170
Ronald G. Minnich7b694542013-02-15 08:13:29 -0800171config X86_SERIAL_CONSOLE
172 bool
173 depends on ARCH_X86 && SERIAL_CONSOLE
174 default y
175
Jordan Crousef6145c32008-03-19 23:56:58 +0000176config SERIAL_IOBASE
Uwe Hermann2d758b82008-03-31 15:21:24 +0000177 hex "I/O base for the serial port (default 0x3f8)"
Ronald G. Minnich7b694542013-02-15 08:13:29 -0800178 depends on X86_SERIAL_CONSOLE
Uwe Hermann2d758b82008-03-31 15:21:24 +0000179 default 0x3f8
180
Jordan Crousef6145c32008-03-19 23:56:58 +0000181config SERIAL_SET_SPEED
182 bool "Override the serial console baud rate"
183 default n
Uwe Hermannfad8c2b2008-04-11 18:01:50 +0000184 depends on SERIAL_CONSOLE
Jordan Crousef6145c32008-03-19 23:56:58 +0000185
186config SERIAL_BAUD_RATE
187 int "Serial console baud rate (default 115200)"
Uwe Hermannfad8c2b2008-04-11 18:01:50 +0000188 depends on SERIAL_SET_SPEED
Jordan Crousef6145c32008-03-19 23:56:58 +0000189 default 115200
190
Ulf Jordan2aea11f2008-08-18 19:29:41 +0000191config SERIAL_ACS_FALLBACK
192 bool "Use plain ASCII characters for ACS"
193 default n
194 depends on SERIAL_CONSOLE
195 help
196 The alternate character set (ACS) is used for drawing lines and
197 displaying a couple of other special graphics characters. The
198 ACS characters generally look good on screen, but can be difficult
199 to cut and paste from a terminal window to a text editor.
Stefan Reinauer14e22772010-04-27 06:56:47 +0000200
Ulf Jordan2aea11f2008-08-18 19:29:41 +0000201 Say 'y' here if you want to always use plain ASCII characters to
Stefan Reinauer14e22772010-04-27 06:56:47 +0000202 approximate the appearance of ACS characters on the serial port
Ulf Jordan2aea11f2008-08-18 19:29:41 +0000203 console.
204
Jordan Crouse30939bd2008-04-10 22:49:02 +0000205config VIDEO_CONSOLE
206 bool "See output on a video console"
207 default y
208
209config VGA_VIDEO_CONSOLE
210 bool "VGA video console driver"
Stefan Reinauer8af0d032012-12-14 13:05:21 -0800211 depends on ARCH_X86 && VIDEO_CONSOLE
Uwe Hermann2d758b82008-03-31 15:21:24 +0000212 default y
Jordan Crousef6145c32008-03-19 23:56:58 +0000213
Peter Stuge4b1971c2008-10-08 14:47:41 +0000214config GEODELX_VIDEO_CONSOLE
215 bool "Geode LX video console driver"
Stefan Reinauer8af0d032012-12-14 13:05:21 -0800216 depends on ARCH_X86 && VIDEO_CONSOLE
Jordan Crouse54315532008-04-11 15:48:21 +0000217 default n
218
Stefan Reinauerb7002542010-03-25 18:56:26 +0000219config COREBOOT_VIDEO_CONSOLE
220 bool "coreboot video console driver"
221 depends on VIDEO_CONSOLE && !GEODELX_VIDEO_CONSOLE
222 default n
223 help
224 Say Y here if coreboot switched to a graphics mode and
225 your payload wants to use it.
226
Jordan Crousef6145c32008-03-19 23:56:58 +0000227config PC_KEYBOARD
Uwe Hermann2d758b82008-03-31 15:21:24 +0000228 bool "Allow input from a PC keyboard"
Uwe Hermann2d758b82008-03-31 15:21:24 +0000229 default y
Jordan Crousef6145c32008-03-19 23:56:58 +0000230
Stefan Reinauerd84ef1e2008-09-26 18:37:26 +0000231config PC_KEYBOARD_LAYOUT_US
232 bool "English (US) keyboard layout"
233 depends on PC_KEYBOARD
234 default y
235
236config PC_KEYBOARD_LAYOUT_DE
237 bool "German keyboard layout"
238 depends on PC_KEYBOARD
239 default n
240
Stefan Reinauer69863582008-08-08 13:45:03 +0000241endmenu
242
243menu "Drivers"
244
245config PCI
246 bool "Support for PCI devices"
Stefan Reinauer8af0d032012-12-14 13:05:21 -0800247 depends on ARCH_X86 # for now
Stefan Reinauer69863582008-08-08 13:45:03 +0000248 default y
249
Uwe Hermannc16d24e2008-03-31 15:17:39 +0000250config NVRAM
Uwe Hermann2d758b82008-03-31 15:21:24 +0000251 bool "Support for reading/writing NVRAM bytes"
Stefan Reinauer8af0d032012-12-14 13:05:21 -0800252 depends on ARCH_X86 # for now
Uwe Hermann2d758b82008-03-31 15:21:24 +0000253 default y
Uwe Hermann8cc38d22008-03-27 23:26:40 +0000254
Uwe Hermann30d789b2008-03-31 20:21:49 +0000255config RTC_PORT_EXTENDED_VIA
256 bool "Extended RTC ports are 0x74/0x75"
257 default n
258 help
259 For recent chipsets with 256 NVRAM bytes, you have to access the
260 upper 128 bytes (128-255) using two different I/O ports,
261 usually 0x72/0x73.
Stefan Reinauer14e22772010-04-27 06:56:47 +0000262
Uwe Hermann30d789b2008-03-31 20:21:49 +0000263 On some chipsets this can be a different set of ports, though.
264 The VIA VT8237R for example only recognizes the ports 0x74/0x75
265 for accessing the high 128 NVRAM bytes (as seems to be the case for
266 multiple VIA chipsets).
Stefan Reinauer14e22772010-04-27 06:56:47 +0000267
Uwe Hermann30d789b2008-03-31 20:21:49 +0000268 If you want to read or write CMOS bytes on computers with one of
269 these chipsets, say 'y' here.
270
Stefan Reinauer69863582008-08-08 13:45:03 +0000271config SPEAKER
272 bool "Support for PC speaker"
Stefan Reinauer8af0d032012-12-14 13:05:21 -0800273 depends on ARCH_X86
Uwe Hermann2d758b82008-03-31 15:21:24 +0000274 default y
Jordan Crousef6145c32008-03-19 23:56:58 +0000275
Nico Huber1f6bd942012-08-30 15:36:57 +0200276config STORAGE
277 bool "Support for storage devices"
278 default y
279 help
280 Select this option if you want support for storage devices (like
281 hard drives, memory sticks or optical drives).
282
283config STORAGE_64BIT_LBA
284 bool "Use 64-bit integers to address sectors"
285 depends on STORAGE
286 default n
287 help
288 If this is selected, sectors will be addressed by an 64-bit integer.
289 Select this to support LBA-48 for ATA drives.
290
291config STORAGE_ATA
292 bool "Support ATA drives (i.e. hard drives)"
293 depends on STORAGE
294 default y
295 help
296 Select this option if you want support for ATA storage devices
297 (i.e. hard drives).
298
299config STORAGE_ATAPI
300 bool "Support ATAPI drives (i.e. optical drives)"
301 depends on STORAGE
302 default y
303 select STORAGE_ATA
304 help
305 Select this option if you want support for ATAPI storage devices
306 (i.e. optical drives like CD or DVD drives).
307
308config STORAGE_AHCI
309 bool "Support for AHCI host controllers"
310 depends on STORAGE && (STORAGE_ATA || STORAGE_ATAPI) && PCI
311 default y
312 help
313 Select this option if you want support for SATA controllers in
314 AHCI mode.
315
316config STORAGE_AHCI_ONLY_TESTED
317 bool "Only enable tested controllers"
318 depends on STORAGE_AHCI
319 default y
320 help
321 If this option is selected only AHCI controllers which are known
322 to work will be used.
323
Patrick Georgid21f68b2008-09-02 16:06:22 +0000324config USB
325 bool "USB Support"
326 default n
327
328config USB_UHCI
329 bool "Support for USB UHCI controllers"
330 depends on USB
331 help
332 Select this option if you are going to use USB 1.1 on an Intel based
333 system.
334
335config USB_OHCI
336 bool "Support for USB OHCI controllers"
337 depends on USB
338 help
339 Select this option if you are going to use USB 1.1 on an AMD based
340 system.
Patrick Georgid21f68b2008-09-02 16:06:22 +0000341
342config USB_EHCI
343 bool "Support for USB EHCI controllers"
344 depends on USB
345 help
346 Select this option if you want to use USB 2.0
Patrick Georgid21f68b2008-09-02 16:06:22 +0000347
Patrick Georgi6615ef32010-08-13 09:18:58 +0000348config USB_XHCI
349 bool "Support for USB xHCI controllers"
350 depends on USB
351 help
352 Select this option if you want to use USB 3.0
353 NOTE: This option is not (fully) implemented yet
354
Patrick Georgid21f68b2008-09-02 16:06:22 +0000355config USB_HID
Stefan Reinauere5d30b72010-03-25 22:15:19 +0000356 bool "Support for USB keyboards"
Patrick Georgid21f68b2008-09-02 16:06:22 +0000357 depends on USB
Stefan Reinauere5d30b72010-03-25 22:15:19 +0000358 default y
359 help
360 Select this option if you want to use devices complying to the
361 USB HID (Human Interface Device) standard. Such devices are for
362 example keyboards and mice. Currently only keyboards are supported.
363 Say Y here unless you know exactly what you are doing.
Patrick Georgid21f68b2008-09-02 16:06:22 +0000364
365config USB_HUB
Stefan Reinauere5d30b72010-03-25 22:15:19 +0000366 bool "Support for USB hubs"
Patrick Georgid21f68b2008-09-02 16:06:22 +0000367 depends on USB
Stefan Reinauere5d30b72010-03-25 22:15:19 +0000368 default y
369 help
370 Select this option if you want to compile in support for USB hubs.
371 Say Y here unless you know exactly what you are doing.
Patrick Georgid21f68b2008-09-02 16:06:22 +0000372
373config USB_MSC
374 bool "Support for USB storage"
375 depends on USB
Stefan Reinauere5d30b72010-03-25 22:15:19 +0000376 default y
377 help
378 Select this option if you want to compile in support for USB mass
379 storage devices (USB memory sticks, hard drives, CDROM/DVD drives)
380 Say Y here unless you know exactly what you are doing.
Patrick Georgid21f68b2008-09-02 16:06:22 +0000381
Stefan Reinauere5d30b72010-03-25 22:15:19 +0000382endmenu
383
384menu "Debugging"
385 depends on DEVELOPER
386
387config DEBUG_MALLOC
388 bool "Debug memory allocator"
389 depends on USB
390 default n
391 help
392 Select this option if you want to debug the memory allocator. This
393 option logs all uses of the following functions:
394
395 void free(void *ptr);
396 void *malloc(size_t size);
397 void *calloc(size_t nmemb, size_t size);
398 void *realloc(void *ptr, size_t size);
399 void *memalign(size_t align, size_t size);
400
401 Say N here unless you are debugging memory allocator problems.
Patrick Georgid21f68b2008-09-02 16:06:22 +0000402
Jordan Crousef6145c32008-03-19 23:56:58 +0000403endmenu
Stefan Reinauer69863582008-08-08 13:45:03 +0000404
Gabe Black0af03d22012-03-19 03:06:46 -0700405config BIG_ENDIAN
406 default n
407 bool
408
409config LITTLE_ENDIAN
410 default n
411 bool
412
Gabe Blackd2679872013-01-18 15:49:00 -0800413# Whether the target system has an IO address space.
414config IO_ADDRESS_SPACE
415 default n
416 bool
417
Gabe Black0af03d22012-03-19 03:06:46 -0700418source "arch/Config.in"