blob: f47d1058977c7dee040836ac08cdc4bc48795417 [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
Gabe Black51edd542013-09-30 23:00:33 -070070config ARCH_ARM
71 bool "ARM"
Stefan Reinauer8af0d032012-12-14 13:05:21 -080072 help
Gabe Black51edd542013-09-30 23:00:33 -070073 Support the ARM architecture
Stefan Reinauer8af0d032012-12-14 13:05:21 -080074
David Hendricks4b6be982012-11-30 13:56:31 -080075config ARCH_X86
Patrick Georgid385ed22009-05-21 10:02:52 +000076 bool "x86"
77 help
78 Support the x86 architecture
79
Patrick Georgid385ed22009-05-21 10:02:52 +000080endchoice
81
Patrick Georgi7f965832011-04-21 18:57:16 +020082config MEMMAP_RAM_ONLY
83 bool "Only consider RAM entries in memory map for further processing"
84 default n
85
Jordan Crouse20c9cf12008-10-20 16:51:43 +000086config MULTIBOOT
87 bool "Multiboot header support"
David Hendricks4b6be982012-11-30 13:56:31 -080088 depends on ARCH_X86
Jordan Crouse20c9cf12008-10-20 16:51:43 +000089 default y
90
91endmenu
92
Stefan Reinauer69863582008-08-08 13:45:03 +000093menu "Standard Libraries"
94
95config LIBC
96 bool "Enable C library support"
97 default y
98
Patrick Georgi3b77b722011-07-07 15:41:53 +020099config CURSES
100 bool "Build a curses library"
Stefan Reinauer69863582008-08-08 13:45:03 +0000101 default y
102
Patrick Georgi3b77b722011-07-07 15:41:53 +0200103choice
104 prompt "Curses implementation"
105 default PDCURSES
106 depends on CURSES
107
108config TINYCURSES
109 bool "Tinycurses"
110 help
111 Tinycurses was the first curses implementation for libpayload.
112 It features low memory consumption, static allocation of larger
113 data structures (so few or no memory allocation calls) and a
114 reduced feature set.
115
116config PDCURSES
117 bool "PDCurses"
Patrick Georgi3b77b722011-07-07 15:41:53 +0200118 help
119 libpayload's PDCurses port provides a full features curses
120 implementation, including libpanel, libmenu and libform (which
121 are taken from ncurses).
122 It requires more system resources, in particularily heap memory.
123
124endchoice
125
Stefan Reinauere5d30b72010-03-25 22:15:19 +0000126config LAR
127 bool "LAR support"
128 default n
129 depends on OBSOLETE
130 help
131 LAR is the archive format of (obsolete) coreboot v3
132
133config CBFS
134 bool "CBFS support"
135 default y
136 help
Patrick Georgi6de1ee4a2011-07-21 15:43:14 +0200137 CBFS is the archive format of coreboot
138
139config LZMA
140 bool "LZMA decoder"
141 default y
142 help
143 LZMA decoder implementation, usable eg. by CBFS,
144 but also externally.
Stefan Reinauer69863582008-08-08 13:45:03 +0000145endmenu
146
147menu "Console Options"
Uwe Hermann2d758b82008-03-31 15:21:24 +0000148
Gabe Black4bb07312012-10-05 11:43:39 -0700149config SKIP_CONSOLE_INIT
150 bool "Skip initializing the consoles at startup"
151 default n
152 help
153 Normally, libpayload will initialize console input/output on startup
154 before the payload itself gets control. This option disables that
155 behavior and leaves console initialization up to the payload.
156
Gabe Blacka54b6a62012-09-29 00:21:27 -0700157config CBMEM_CONSOLE
158 bool "Send output to the in memory CBMEM console"
159 default y
160
Jordan Crousef6145c32008-03-19 23:56:58 +0000161config SERIAL_CONSOLE
Uwe Hermann2d758b82008-03-31 15:21:24 +0000162 bool "See output on the serial port console"
163 default y
Jordan Crousef6145c32008-03-19 23:56:58 +0000164
Gabe Black9135cb42013-09-26 16:13:08 -0700165config 8250_SERIAL_CONSOLE
166 bool "8250, 16450, 16550, 16550A compatible serial port driver"
167 depends on SERIAL_CONSOLE
168 default y if ARCH_X86
169 default n if !ARCH_X86
Ronald G. Minnich7b694542013-02-15 08:13:29 -0800170
Gabe Blacka6aecc42014-04-10 01:07:28 -0700171config S5P_SERIAL_CONSOLE
172 bool "Exynos SOC, S5P compatible serial port driver"
173 depends on SERIAL_CONSOLE
174 default n
175
176config TEGRA_SERIAL_CONSOLE
177 bool "Tegra SOC compatible serial port driver"
178 depends on SERIAL_CONSOLE
179 default n
180
Jordan Crousef6145c32008-03-19 23:56:58 +0000181config SERIAL_IOBASE
Gabe Black9135cb42013-09-26 16:13:08 -0700182 ## This default is currently not used on non-x86 systems.
183 hex "Default I/O base for the serial port (default 0x3f8)"
184 depends on SERIAL_CONSOLE && ARCH_X86
Uwe Hermann2d758b82008-03-31 15:21:24 +0000185 default 0x3f8
186
Jordan Crousef6145c32008-03-19 23:56:58 +0000187config SERIAL_SET_SPEED
188 bool "Override the serial console baud rate"
189 default n
Uwe Hermannfad8c2b2008-04-11 18:01:50 +0000190 depends on SERIAL_CONSOLE
Jordan Crousef6145c32008-03-19 23:56:58 +0000191
192config SERIAL_BAUD_RATE
193 int "Serial console baud rate (default 115200)"
Uwe Hermannfad8c2b2008-04-11 18:01:50 +0000194 depends on SERIAL_SET_SPEED
Jordan Crousef6145c32008-03-19 23:56:58 +0000195 default 115200
196
Ulf Jordan2aea11f2008-08-18 19:29:41 +0000197config SERIAL_ACS_FALLBACK
198 bool "Use plain ASCII characters for ACS"
199 default n
200 depends on SERIAL_CONSOLE
201 help
202 The alternate character set (ACS) is used for drawing lines and
203 displaying a couple of other special graphics characters. The
204 ACS characters generally look good on screen, but can be difficult
205 to cut and paste from a terminal window to a text editor.
Stefan Reinauer14e22772010-04-27 06:56:47 +0000206
Ulf Jordan2aea11f2008-08-18 19:29:41 +0000207 Say 'y' here if you want to always use plain ASCII characters to
Stefan Reinauer14e22772010-04-27 06:56:47 +0000208 approximate the appearance of ACS characters on the serial port
Ulf Jordan2aea11f2008-08-18 19:29:41 +0000209 console.
210
Jordan Crouse30939bd2008-04-10 22:49:02 +0000211config VIDEO_CONSOLE
212 bool "See output on a video console"
213 default y
214
215config VGA_VIDEO_CONSOLE
216 bool "VGA video console driver"
Stefan Reinauer8af0d032012-12-14 13:05:21 -0800217 depends on ARCH_X86 && VIDEO_CONSOLE
Uwe Hermann2d758b82008-03-31 15:21:24 +0000218 default y
Jordan Crousef6145c32008-03-19 23:56:58 +0000219
Peter Stuge4b1971c2008-10-08 14:47:41 +0000220config GEODELX_VIDEO_CONSOLE
221 bool "Geode LX video console driver"
Stefan Reinauer8af0d032012-12-14 13:05:21 -0800222 depends on ARCH_X86 && VIDEO_CONSOLE
Jordan Crouse54315532008-04-11 15:48:21 +0000223 default n
224
Stefan Reinauerb7002542010-03-25 18:56:26 +0000225config COREBOOT_VIDEO_CONSOLE
226 bool "coreboot video console driver"
227 depends on VIDEO_CONSOLE && !GEODELX_VIDEO_CONSOLE
228 default n
229 help
230 Say Y here if coreboot switched to a graphics mode and
231 your payload wants to use it.
232
Jordan Crousef6145c32008-03-19 23:56:58 +0000233config PC_KEYBOARD
Uwe Hermann2d758b82008-03-31 15:21:24 +0000234 bool "Allow input from a PC keyboard"
Uwe Hermann2d758b82008-03-31 15:21:24 +0000235 default y
Jordan Crousef6145c32008-03-19 23:56:58 +0000236
Stefan Reinauerd84ef1e2008-09-26 18:37:26 +0000237config PC_KEYBOARD_LAYOUT_US
238 bool "English (US) keyboard layout"
239 depends on PC_KEYBOARD
240 default y
241
242config PC_KEYBOARD_LAYOUT_DE
243 bool "German keyboard layout"
244 depends on PC_KEYBOARD
245 default n
246
Stefan Reinauer69863582008-08-08 13:45:03 +0000247endmenu
248
249menu "Drivers"
250
251config PCI
252 bool "Support for PCI devices"
Stefan Reinauer8af0d032012-12-14 13:05:21 -0800253 depends on ARCH_X86 # for now
Stefan Reinauer69863582008-08-08 13:45:03 +0000254 default y
255
Uwe Hermannc16d24e2008-03-31 15:17:39 +0000256config NVRAM
Uwe Hermann2d758b82008-03-31 15:21:24 +0000257 bool "Support for reading/writing NVRAM bytes"
Stefan Reinauer8af0d032012-12-14 13:05:21 -0800258 depends on ARCH_X86 # for now
Uwe Hermann2d758b82008-03-31 15:21:24 +0000259 default y
Uwe Hermann8cc38d22008-03-27 23:26:40 +0000260
Uwe Hermann30d789b2008-03-31 20:21:49 +0000261config RTC_PORT_EXTENDED_VIA
262 bool "Extended RTC ports are 0x74/0x75"
263 default n
264 help
265 For recent chipsets with 256 NVRAM bytes, you have to access the
266 upper 128 bytes (128-255) using two different I/O ports,
267 usually 0x72/0x73.
Stefan Reinauer14e22772010-04-27 06:56:47 +0000268
Uwe Hermann30d789b2008-03-31 20:21:49 +0000269 On some chipsets this can be a different set of ports, though.
270 The VIA VT8237R for example only recognizes the ports 0x74/0x75
271 for accessing the high 128 NVRAM bytes (as seems to be the case for
272 multiple VIA chipsets).
Stefan Reinauer14e22772010-04-27 06:56:47 +0000273
Uwe Hermann30d789b2008-03-31 20:21:49 +0000274 If you want to read or write CMOS bytes on computers with one of
275 these chipsets, say 'y' here.
276
Stefan Reinauer69863582008-08-08 13:45:03 +0000277config SPEAKER
278 bool "Support for PC speaker"
Stefan Reinauer8af0d032012-12-14 13:05:21 -0800279 depends on ARCH_X86
Uwe Hermann2d758b82008-03-31 15:21:24 +0000280 default y
Jordan Crousef6145c32008-03-19 23:56:58 +0000281
Nico Huber1f6bd942012-08-30 15:36:57 +0200282config STORAGE
283 bool "Support for storage devices"
284 default y
285 help
286 Select this option if you want support for storage devices (like
287 hard drives, memory sticks or optical drives).
288
289config STORAGE_64BIT_LBA
290 bool "Use 64-bit integers to address sectors"
291 depends on STORAGE
292 default n
293 help
294 If this is selected, sectors will be addressed by an 64-bit integer.
295 Select this to support LBA-48 for ATA drives.
296
297config STORAGE_ATA
298 bool "Support ATA drives (i.e. hard drives)"
299 depends on STORAGE
300 default y
301 help
302 Select this option if you want support for ATA storage devices
303 (i.e. hard drives).
304
305config STORAGE_ATAPI
306 bool "Support ATAPI drives (i.e. optical drives)"
307 depends on STORAGE
308 default y
309 select STORAGE_ATA
310 help
311 Select this option if you want support for ATAPI storage devices
312 (i.e. optical drives like CD or DVD drives).
313
314config STORAGE_AHCI
315 bool "Support for AHCI host controllers"
316 depends on STORAGE && (STORAGE_ATA || STORAGE_ATAPI) && PCI
317 default y
318 help
319 Select this option if you want support for SATA controllers in
320 AHCI mode.
321
322config STORAGE_AHCI_ONLY_TESTED
323 bool "Only enable tested controllers"
324 depends on STORAGE_AHCI
325 default y
326 help
327 If this option is selected only AHCI controllers which are known
328 to work will be used.
329
Patrick Georgid21f68b2008-09-02 16:06:22 +0000330config USB
331 bool "USB Support"
332 default n
333
334config USB_UHCI
335 bool "Support for USB UHCI controllers"
Stefan Reinauer8992e532013-05-02 16:16:41 -0700336 depends on USB && ARCH_X86
Patrick Georgid21f68b2008-09-02 16:06:22 +0000337 help
338 Select this option if you are going to use USB 1.1 on an Intel based
339 system.
340
341config USB_OHCI
342 bool "Support for USB OHCI controllers"
343 depends on USB
344 help
Stefan Reinauer8992e532013-05-02 16:16:41 -0700345 Select this option if you are going to use USB 1.1 on a non-Intel based
Patrick Georgid21f68b2008-09-02 16:06:22 +0000346 system.
Patrick Georgid21f68b2008-09-02 16:06:22 +0000347
348config USB_EHCI
349 bool "Support for USB EHCI controllers"
350 depends on USB
351 help
352 Select this option if you want to use USB 2.0
Patrick Georgid21f68b2008-09-02 16:06:22 +0000353
Patrick Georgi6615ef32010-08-13 09:18:58 +0000354config USB_XHCI
355 bool "Support for USB xHCI controllers"
356 depends on USB
357 help
358 Select this option if you want to use USB 3.0
359 NOTE: This option is not (fully) implemented yet
360
Patrick Georgid21f68b2008-09-02 16:06:22 +0000361config USB_HID
Stefan Reinauere5d30b72010-03-25 22:15:19 +0000362 bool "Support for USB keyboards"
Patrick Georgid21f68b2008-09-02 16:06:22 +0000363 depends on USB
Stefan Reinauere5d30b72010-03-25 22:15:19 +0000364 default y
365 help
366 Select this option if you want to use devices complying to the
367 USB HID (Human Interface Device) standard. Such devices are for
368 example keyboards and mice. Currently only keyboards are supported.
369 Say Y here unless you know exactly what you are doing.
Patrick Georgid21f68b2008-09-02 16:06:22 +0000370
371config USB_HUB
Stefan Reinauere5d30b72010-03-25 22:15:19 +0000372 bool "Support for USB hubs"
Patrick Georgid21f68b2008-09-02 16:06:22 +0000373 depends on USB
Stefan Reinauere5d30b72010-03-25 22:15:19 +0000374 default y
375 help
376 Select this option if you want to compile in support for USB hubs.
377 Say Y here unless you know exactly what you are doing.
Patrick Georgid21f68b2008-09-02 16:06:22 +0000378
379config USB_MSC
380 bool "Support for USB storage"
381 depends on USB
Stefan Reinauere5d30b72010-03-25 22:15:19 +0000382 default y
383 help
384 Select this option if you want to compile in support for USB mass
385 storage devices (USB memory sticks, hard drives, CDROM/DVD drives)
386 Say Y here unless you know exactly what you are doing.
Patrick Georgid21f68b2008-09-02 16:06:22 +0000387
Nico Huber0b78de22013-05-29 15:01:17 +0200388config USB_GEN_HUB
389 bool
Nico Huber90292652013-06-13 14:37:15 +0200390 default n if (!USB_HUB && !USB_XHCI)
391 default y if (USB_HUB || USB_XHCI)
Stefan Reinauer8992e532013-05-02 16:16:41 -0700392config USB_PCI
Julius Wernerd7c25b32013-09-04 17:20:32 -0700393 bool "Auto-scan PCI bus for USB host controllers"
394 depends on USB
Stefan Reinauer8992e532013-05-02 16:16:41 -0700395 default y if ARCH_X86
396 default n
397
Stefan Reinauere5d30b72010-03-25 22:15:19 +0000398endmenu
399
400menu "Debugging"
401 depends on DEVELOPER
402
403config DEBUG_MALLOC
404 bool "Debug memory allocator"
405 depends on USB
406 default n
407 help
408 Select this option if you want to debug the memory allocator. This
409 option logs all uses of the following functions:
410
411 void free(void *ptr);
412 void *malloc(size_t size);
413 void *calloc(size_t nmemb, size_t size);
414 void *realloc(void *ptr, size_t size);
415 void *memalign(size_t align, size_t size);
416
417 Say N here unless you are debugging memory allocator problems.
Patrick Georgid21f68b2008-09-02 16:06:22 +0000418
Jordan Crousef6145c32008-03-19 23:56:58 +0000419endmenu
Stefan Reinauer69863582008-08-08 13:45:03 +0000420
Gabe Black0af03d22012-03-19 03:06:46 -0700421config BIG_ENDIAN
422 default n
423 bool
424
425config LITTLE_ENDIAN
426 default n
427 bool
428
Gabe Blackd2679872013-01-18 15:49:00 -0800429# Whether the target system has an IO address space.
430config IO_ADDRESS_SPACE
431 default n
432 bool
433
Gabe Black0af03d22012-03-19 03:06:46 -0700434source "arch/Config.in"