3 ## Copyright (C) 2008 Advanced Micro Devices, Inc.
4 ## Copyright (C) 2008 coresystems GmbH
6 ## Redistribution and use in source and binary forms, with or without
7 ## modification, are permitted provided that the following conditions
9 ## 1. Redistributions of source code must retain the above copyright
10 ## notice, this list of conditions and the following disclaimer.
11 ## 2. Redistributions in binary form must reproduce the above copyright
12 ## notice, this list of conditions and the following disclaimer in the
13 ## documentation and/or other materials provided with the distribution.
14 ## 3. The name of the author may not be used to endorse or promote products
15 ## derived from this software without specific prior written permission.
17 ## THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
18 ## ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19 ## IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
20 ## ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
21 ## FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
22 ## DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
23 ## OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
24 ## HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
25 ## LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
26 ## OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
30 mainmenu "Libpayload Configuration"
32 menu "Generic Options"
35 bool "GPLv2-licensed Options"
39 Prompt for options that will build code licensed under the GNU General
40 Public License (version 2). This will subject the whole payload to the
41 terms of this license (including its provision to release all sources,
42 please see the LICENSE_GPL file for details).
45 bool "Experimental Options"
48 Prompt for experimental functionality. Attention: This is not likely
49 to work without problems
52 bool "Developer Options"
55 Prompt for developer options. These options are only interesting for
56 libpayload developers.
59 bool "Chrome OS Options"
62 Select configuration defaults appropriate for Chrome OS boards.
65 prompt "Compiler to use"
68 This option allows you to select the compiler.
73 Use the GNU Compiler Collection (GCC).
75 config COMPILER_LLVM_CLANG
83 bool "Remote GDB stub"
87 Enable Remote GDB debugging support.
89 config MEMMAP_RAM_ONLY
90 bool "Only consider RAM entries in memory map for further processing"
95 menu "Architecture Options"
98 prompt "Target Architecture"
104 Support the ARM architecture
109 Support the x86 architecture
114 Support the ARM64 architecture
119 bool "Multiboot header support"
121 default y if !CHROMEOS
127 This is the heap size (malloc'able size) available
130 If unsure, set to 131072 (128K)
136 This is the stack size available to the payload.
138 If unsure, set to 16384 (16K)
142 default 0x04000000 if ARCH_ARM
143 default 0x80100000 if ARCH_ARM64
144 default 0x00100000 if ARCH_X86
146 This is the base address for the payload.
148 If unsure, set to 0x00100000 on x86,
149 0x04000000 on ARM or 0x80100000 on ARM64.
154 bool "Use march=586 qualifier to build"
158 Allow a platform or processor to select to be compiled using
159 the '-march=i586' option instead of the typical '-march=i686'
161 menu "Standard Libraries"
164 bool "Enable C library support"
168 bool "Build a curses library"
169 default y if !CHROMEOS
172 prompt "Curses implementation"
179 TinyCurses was the first curses implementation for libpayload.
180 It features low memory consumption, static allocation of larger
181 data structures (so few or no memory allocation calls) and a
187 libpayload's PDCurses port provides a full features curses
188 implementation, including libpanel, libmenu and libform (which
189 are taken from ncurses).
190 It requires more system resources, in particularily heap memory.
198 CBFS is the archive format of coreboot
204 LZMA decoder implementation, usable eg. by CBFS,
211 Decoder implementation for the LZ4 compression algorithm.
212 Adds standalone functions (CBFS support coming soon).
215 menu "Console Options"
217 config SKIP_CONSOLE_INIT
218 bool "Skip initializing the consoles at startup"
219 default y if CHROMEOS
222 Normally, libpayload will initialize console input/output on startup
223 before the payload itself gets control. This option disables that
224 behavior and leaves console initialization up to the payload.
227 bool "Send output to the in memory CBMEM console"
230 config SERIAL_CONSOLE
231 bool "See output on the serial port console"
234 config 8250_SERIAL_CONSOLE
235 bool "8250-compatible serial port driver (including IO and MMIO)"
236 depends on SERIAL_CONSOLE
237 default y if ARCH_X86
239 config S5P_SERIAL_CONSOLE
240 bool "Exynos SOC, S5P compatible serial port driver"
241 depends on SERIAL_CONSOLE
244 config IPQ806X_SERIAL_CONSOLE
245 bool "IPQ806x SOC compatible serial port driver"
246 depends on SERIAL_CONSOLE
249 config IPQ40XX_SERIAL_CONSOLE
250 bool "IPQ40xx SOC compatible serial port driver"
251 depends on SERIAL_CONSOLE
254 config QCS405_SERIAL_CONSOLE
255 bool "QCS405 SOC compatible serial port driver"
256 depends on SERIAL_CONSOLE
259 config QUALCOMM_QUPV3_SERIAL_CONSOLE
260 bool "Qualcomm QUPV3 serial port driver"
261 depends on SERIAL_CONSOLE
264 config PL011_SERIAL_CONSOLE
265 bool "PL011 compatible serial port driver"
266 depends on 8250_SERIAL_CONSOLE
270 ## This default is currently not used on non-x86 systems.
271 hex "Default I/O base for the serial port (default 0x3f8)"
272 depends on SERIAL_CONSOLE && ARCH_X86
275 config SERIAL_SET_SPEED
276 bool "Override the serial console baud rate"
278 depends on SERIAL_CONSOLE
280 config SERIAL_BAUD_RATE
281 int "Serial console baud rate (default 115200)"
282 depends on SERIAL_SET_SPEED
285 config SERIAL_ACS_FALLBACK
286 bool "Use plain ASCII characters for ACS"
288 depends on SERIAL_CONSOLE
290 The alternate character set (ACS) is used for drawing lines and
291 displaying a couple of other special graphics characters. The
292 ACS characters generally look good on screen, but can be difficult
293 to cut and paste from a terminal window to a text editor.
295 Say 'y' here if you want to always use plain ASCII characters to
296 approximate the appearance of ACS characters on the serial port
300 bool "See output on a video console"
303 config VGA_VIDEO_CONSOLE
304 bool "VGA video console driver"
305 depends on ARCH_X86 && VIDEO_CONSOLE
306 default y if !CHROMEOS
308 config GEODELX_VIDEO_CONSOLE
309 bool "Geode LX video console driver"
310 depends on ARCH_X86 && VIDEO_CONSOLE
313 config COREBOOT_VIDEO_CONSOLE
314 bool "coreboot video console driver"
315 depends on VIDEO_CONSOLE && !GEODELX_VIDEO_CONSOLE
316 default y if CHROMEOS
319 Say Y here if coreboot switched to a graphics mode and
320 your payload wants to use it.
322 config COREBOOT_VIDEO_CENTERED
323 bool "Center a classic 80x25 console on bigger screens"
324 depends on COREBOOT_VIDEO_CONSOLE
326 Say 'y' here if your payload is hardcoded to a 80x25 console. Otherwise
327 its output would look squeezed into the upper-left corner of the screen.
329 config FONT_SCALE_FACTOR
330 int "Scale factor for the included font"
331 depends on GEODELX_VIDEO_CONSOLE || COREBOOT_VIDEO_CONSOLE
334 By default (value of 0), the scale factor is automatically
335 calculated to ensure at least 130 columns (when possible).
337 config CBGFX_FAST_RESAMPLE
338 bool "CBGFX: use faster (less pretty) image scaling"
341 When payloads use the CBGFX library to draw .BMPs on the screen,
342 they will be resampled with an anti-aliasing filter to scale to the
343 requested output size. The default implementation should normally be
344 fast enough, but if desired this option can make it about 50-100%
345 faster at the cost of quality. (It changes the 'a' parameter in the
346 Lanczos resampling algorithm from 3 to 2.)
348 Only affects .BMPs that aren't already provided at the right size.
351 bool "A common PC i8042 driver"
352 default y if PC_KEYBOARD || PC_MOUSE
355 To be used by PC_KEYBOARD and PC_MOUSE.
358 bool "Allow input from a PC mouse"
359 default n if CHROMEOS
360 default y if ARCH_X86 # uses IO
363 PS/2 mouse driver on top of PC_I8042.
366 bool "Allow input from a PC keyboard"
367 default y if ARCH_X86 # uses IO
370 config PC_KEYBOARD_AT_TRANSLATED
371 bool "AT Translation keyboard device"
374 config PC_KEYBOARD_LAYOUT_US
375 bool "English (US) keyboard layout"
376 depends on PC_KEYBOARD
379 config PC_KEYBOARD_LAYOUT_DE
380 bool "German keyboard layout"
381 depends on PC_KEYBOARD
389 bool "Support for PCI devices"
390 depends on ARCH_X86 # for now
394 bool "Support for reading/writing NVRAM bytes"
395 depends on ARCH_X86 # for now
399 bool "Support for mouse cursor handling"
400 default y if PC_MOUSE
403 Provides a common interface for various mouse cursor drivers.
404 * Supports up to 32 buttons.
405 * Supports 3 axis mice.
406 * Applies simple cursor acceleration.
407 * Allows to set cursor acceleration and cursor speed.
409 config RTC_PORT_EXTENDED_VIA
410 bool "Extended RTC ports are 0x74/0x75"
413 For recent chipsets with 256 NVRAM bytes, you have to access the
414 upper 128 bytes (128-255) using two different I/O ports,
417 On some chipsets this can be a different set of ports, though.
418 The VIA VT8237R for example only recognizes the ports 0x74/0x75
419 for accessing the high 128 NVRAM bytes (as seems to be the case for
420 multiple VIA chipsets).
422 If you want to read or write CMOS bytes on computers with one of
423 these chipsets, say 'y' here.
426 bool "Support for PC speaker"
428 default y if !CHROMEOS
430 source "drivers/timer/Kconfig"
431 source "drivers/storage/Kconfig"
432 source "drivers/usb/Kconfig"
440 bool "Debug memory allocator"
443 Select this option if you want to debug the memory allocator. This
444 option logs all uses of the following functions:
446 void free(void *ptr);
447 void *malloc(size_t size);
448 void *calloc(size_t nmemb, size_t size);
449 void *realloc(void *ptr, size_t size);
450 void *memalign(size_t align, size_t size);
452 Say N here unless you are debugging memory allocator problems.
464 config IO_ADDRESS_SPACE
468 This option is turned on if the target system has a separate
469 IO address space. This is typically only the case on x86.
471 source "arch/arm/Kconfig"
472 source "arch/arm64/Kconfig"
473 source "arch/x86/Kconfig"