blob: f192776cf54244e4d0dc55387b16450953d2bb4c [file] [log] [blame]
Patrick Georgic49d7a32020-05-08 22:50:46 +02001## SPDX-License-Identifier: GPL-2.0-only
Patrick Georgi0588d192009-08-12 15:00:51 +00002
Uwe Hermannad8c95f2012-04-12 22:00:03 +02003mainmenu "coreboot configuration"
Patrick Georgi0588d192009-08-12 15:00:51 +00004
Uwe Hermannc04be932009-10-05 13:55:28 +00005menu "General setup"
6
Lee Leahybb70c402017-04-03 07:38:20 -07007config COREBOOT_BUILD
8 bool
9 default y
10
Uwe Hermannc04be932009-10-05 13:55:28 +000011config LOCALVERSION
Uwe Hermann168b11b2009-10-07 16:15:40 +000012 string "Local version string"
Uwe Hermannc04be932009-10-05 13:55:28 +000013 help
14 Append an extra string to the end of the coreboot version.
15
Uwe Hermann168b11b2009-10-07 16:15:40 +000016 This can be useful if, for instance, you want to append the
17 respective board's hostname or some other identifying string to
18 the coreboot version number, so that you can easily distinguish
19 boot logs of different boards from each other.
20
Arthur Heymans6f751542019-06-08 11:28:52 +020021config CONFIGURABLE_CBFS_PREFIX
22 bool
23 help
24 Select this to prompt to use to configure the prefix for cbfs files.
25
Arthur Heymans6010eb22019-10-06 13:34:20 +020026choice
27 prompt "CBFS prefix to use"
28 depends on CONFIGURABLE_CBFS_PREFIX
29 default CBFS_PREFIX_FALLBACK
30
31config CBFS_PREFIX_FALLBACK
32 bool "fallback"
33
34config CBFS_PREFIX_NORMAL
35 bool "normal"
36
37config CBFS_PREFIX_DIY
38 bool "Define your own cbfs prefix"
39
40endchoice
41
Patrick Georgi4b8a2412010-02-09 19:35:16 +000042config CBFS_PREFIX
Arthur Heymans6010eb22019-10-06 13:34:20 +020043 string "CBFS prefix to use" if CBFS_PREFIX_DIY
44 default "fallback" if !CONFIGURABLE_CBFS_PREFIX || CBFS_PREFIX_FALLBACK
45 default "normal" if CBFS_PREFIX_NORMAL
Patrick Georgi4b8a2412010-02-09 19:35:16 +000046 help
47 Select the prefix to all files put into the image. It's "fallback"
48 by default, "normal" is a common alternative.
49
Patrick Georgi23d89cc2010-03-16 01:17:19 +000050choice
Uwe Hermannad8c95f2012-04-12 22:00:03 +020051 prompt "Compiler to use"
Patrick Georgi23d89cc2010-03-16 01:17:19 +000052 default COMPILER_GCC
53 help
54 This option allows you to select the compiler used for building
55 coreboot.
Martin Rotha5a628e82016-01-19 12:01:09 -070056 You must build the coreboot crosscompiler for the board that you
57 have selected.
58
59 To build all the GCC crosscompilers (takes a LONG time), run:
60 make crossgcc
61
62 For help on individual architectures, run the command:
63 make help_toolchain
Patrick Georgi23d89cc2010-03-16 01:17:19 +000064
65config COMPILER_GCC
66 bool "GCC"
Uwe Hermannad8c95f2012-04-12 22:00:03 +020067 help
68 Use the GNU Compiler Collection (GCC) to build coreboot.
69
70 For details see http://gcc.gnu.org.
71
Patrick Georgi23d89cc2010-03-16 01:17:19 +000072config COMPILER_LLVM_CLANG
Martin Rotha5a628e82016-01-19 12:01:09 -070073 bool "LLVM/clang (TESTING ONLY - Not currently working)"
Uwe Hermannad8c95f2012-04-12 22:00:03 +020074 help
Martin Rotha5a628e82016-01-19 12:01:09 -070075 Use LLVM/clang to build coreboot. To use this, you must build the
76 coreboot version of the clang compiler. Run the command
77 make clang
78 Note that this option is not currently working correctly and should
79 really only be selected if you're trying to work on getting clang
80 operational.
Uwe Hermannad8c95f2012-04-12 22:00:03 +020081
82 For details see http://clang.llvm.org.
83
Patrick Georgi23d89cc2010-03-16 01:17:19 +000084endchoice
85
Patrick Georgi9b0de712013-12-29 18:45:23 +010086config ANY_TOOLCHAIN
87 bool "Allow building with any toolchain"
88 default n
Patrick Georgi9b0de712013-12-29 18:45:23 +010089 help
90 Many toolchains break when building coreboot since it uses quite
91 unusual linker features. Unless developers explicitely request it,
92 we'll have to assume that they use their distro compiler by mistake.
93 Make sure that using patched compilers is a conscious decision.
94
Patrick Georgi516a2a72010-03-25 21:45:25 +000095config CCACHE
Uwe Hermannad8c95f2012-04-12 22:00:03 +020096 bool "Use ccache to speed up (re)compilation"
Patrick Georgi516a2a72010-03-25 21:45:25 +000097 default n
98 help
99 Enables the use of ccache for faster builds.
Uwe Hermannad8c95f2012-04-12 22:00:03 +0200100
101 Requires the ccache utility in your system $PATH.
102
103 For details see https://ccache.samba.org.
Patrick Georgi516a2a72010-03-25 21:45:25 +0000104
Sol Boucher69b88bf2015-02-26 11:47:19 -0800105config FMD_GENPARSER
106 bool "Generate flashmap descriptor parser using flex and bison"
107 default n
Sol Boucher69b88bf2015-02-26 11:47:19 -0800108 help
109 Enable this option if you are working on the flashmap descriptor
110 parser and made changes to fmd_scanner.l or fmd_parser.y.
111
112 Otherwise, say N to use the provided pregenerated scanner/parser.
113
Martin Rothf411b702017-04-09 19:12:42 -0600114config UTIL_GENPARSER
Denis 'GNUtoo' Carikli780e9312018-01-10 14:35:55 +0100115 bool "Generate SCONFIG & BINCFG parser using flex and bison"
Stefan Reinauer9bf78102010-08-09 13:28:18 +0000116 default n
Stefan Reinauer9bf78102010-08-09 13:28:18 +0000117 help
Uwe Hermannad8c95f2012-04-12 22:00:03 +0200118 Enable this option if you are working on the sconfig device tree
Denis 'GNUtoo' Carikli780e9312018-01-10 14:35:55 +0100119 parser or bincfg and made changes to the .l or .y files.
Uwe Hermannad8c95f2012-04-12 22:00:03 +0200120
Sol Boucher69b88bf2015-02-26 11:47:19 -0800121 Otherwise, say N to use the provided pregenerated scanner/parser.
Stefan Reinauer9bf78102010-08-09 13:28:18 +0000122
Joe Korty6d772522010-05-19 18:41:15 +0000123config USE_OPTION_TABLE
124 bool "Use CMOS for configuration values"
Edwin Beasanteb50c7d2010-07-06 21:05:04 +0000125 depends on HAVE_OPTION_TABLE
Joe Korty6d772522010-05-19 18:41:15 +0000126 help
127 Enable this option if coreboot shall read options from the "CMOS"
Uwe Hermannad8c95f2012-04-12 22:00:03 +0200128 NVRAM instead of using hard-coded values.
Joe Korty6d772522010-05-19 18:41:15 +0000129
Timothy Pearsonf20c6e82015-02-14 16:15:31 -0600130config STATIC_OPTION_TABLE
131 bool "Load default configuration values into CMOS on each boot"
Timothy Pearsonf20c6e82015-02-14 16:15:31 -0600132 depends on USE_OPTION_TABLE
133 help
134 Enable this option to reset "CMOS" NVRAM values to default on
135 every boot. Use this if you want the NVRAM configuration to
136 never be modified from its default values.
137
Sven Schnelle8eee19d2011-05-02 19:53:04 +0000138config COMPRESS_RAMSTAGE
139 bool "Compress ramstage with LZMA"
Subrata Banikb5962a92019-06-08 12:29:02 +0530140 depends on HAVE_RAMSTAGE
Martin Roth75e5cb72016-12-15 15:05:37 -0700141 # Default value set at the end of the file
Sven Schnelle8eee19d2011-05-02 19:53:04 +0000142 help
Arthur Heymans7f229332019-11-08 11:59:25 +0100143 Compress ramstage to save memory in the flash image.
Sven Schnelle8eee19d2011-05-02 19:53:04 +0000144
Julius Werner09f29212015-09-29 13:51:35 -0700145config COMPRESS_PRERAM_STAGES
146 bool "Compress romstage and verstage with LZ4"
Subrata Banikb5962a92019-06-08 12:29:02 +0530147 depends on !ARCH_X86 && (HAVE_ROMSTAGE || HAVE_VERSTAGE)
Martin Roth75e5cb72016-12-15 15:05:37 -0700148 # Default value set at the end of the file
Julius Werner09f29212015-09-29 13:51:35 -0700149 help
150 Compress romstage and (if it exists) verstage with LZ4 to save flash
151 space and speed up boot, since the time for reading the image from SPI
152 (and in the vboot case verifying it) is usually much greater than the
153 time spent decompressing. Doesn't work for XIP stages (assume all
154 ARCH_X86 for now) for obvious reasons.
155
Julius Werner99f46832018-05-16 14:14:04 -0700156config COMPRESS_BOOTBLOCK
157 bool
Subrata Banikb5962a92019-06-08 12:29:02 +0530158 depends on HAVE_BOOTBLOCK
Julius Werner99f46832018-05-16 14:14:04 -0700159 help
160 This option can be used to compress the bootblock with LZ4 and attach
161 a small self-decompression stub to its front. This can drastically
162 reduce boot time on platforms where the bootblock is loaded over a
163 very slow connection and bootblock size trumps all other factors for
Jonathan Neuschäfer2930a722018-09-29 17:42:52 +0200164 speed. Since using this option usually requires changes to the
Julius Werner99f46832018-05-16 14:14:04 -0700165 SoC memlayout and possibly extra support code, it should not be
166 user-selectable. (There's no real point in offering this to the user
167 anyway... if it works and saves boot time, you would always want it.)
168
Cristian Măgherușan-Stanciud367b002011-06-19 03:03:28 +0200169config INCLUDE_CONFIG_FILE
Uwe Hermannad8c95f2012-04-12 22:00:03 +0200170 bool "Include the coreboot .config file into the ROM image"
Martin Roth75e5cb72016-12-15 15:05:37 -0700171 # Default value set at the end of the file
Uwe Hermannad8c95f2012-04-12 22:00:03 +0200172 help
173 Include the .config file that was used to compile coreboot
174 in the (CBFS) ROM image. This is useful if you want to know which
175 options were used to build a specific coreboot.rom image.
176
Daniele Forsi53847a22014-07-22 18:00:56 +0200177 Saying Y here will increase the image size by 2-3KB.
Uwe Hermannad8c95f2012-04-12 22:00:03 +0200178
179 You can use the following command to easily list the options:
180
181 grep -a CONFIG_ coreboot.rom
182
183 Alternatively, you can also use cbfstool to print the image
184 contents (including the raw 'config' item we're looking for).
185
186 Example:
187
188 $ cbfstool coreboot.rom print
189 coreboot.rom: 4096 kB, bootblocksize 1008, romsize 4194304,
190 offset 0x0
191 Alignment: 64 bytes
Steve Goodrichf0269122012-05-18 11:18:47 -0600192
Uwe Hermannad8c95f2012-04-12 22:00:03 +0200193 Name Offset Type Size
Elyes HAOUAS2119d0b2020-02-16 10:01:33 +0100194 cmos_layout.bin 0x0 CMOS layout 1159
Uwe Hermannad8c95f2012-04-12 22:00:03 +0200195 fallback/romstage 0x4c0 stage 339756
Daniele Forsi53847a22014-07-22 18:00:56 +0200196 fallback/ramstage 0x53440 stage 186664
Uwe Hermannad8c95f2012-04-12 22:00:03 +0200197 fallback/payload 0x80dc0 payload 51526
198 config 0x8d740 raw 3324
199 (empty) 0x8e480 null 3610440
Cristian Măgherușan-Stanciud367b002011-06-19 03:03:28 +0200200
Vadim Bendebury9202473d2011-09-21 14:46:43 -0700201config COLLECT_TIMESTAMPS
202 bool "Create a table of timestamps collected during boot"
Paul Menzel4e4a7632015-10-11 11:57:44 +0200203 default y if ARCH_X86
Vadim Bendebury9202473d2011-09-21 14:46:43 -0700204 help
Uwe Hermannad8c95f2012-04-12 22:00:03 +0200205 Make coreboot create a table of timer-ID/timer-value pairs to
206 allow measuring time spent at different phases of the boot process.
207
Martin Rothb22bbe22018-03-07 15:32:16 -0700208config TIMESTAMPS_ON_CONSOLE
209 bool "Print the timestamp values on the console"
210 default n
211 depends on COLLECT_TIMESTAMPS
212 help
Kyösti Mälkki8b93cb72020-01-09 08:41:46 +0200213 Print the timestamps to the debug console if enabled at level info.
Martin Rothb22bbe22018-03-07 15:32:16 -0700214
Patrick Georgi7e9b9d82012-04-30 21:06:10 +0200215config USE_BLOBS
216 bool "Allow use of binary-only repository"
Felix Helda6b887e2019-12-28 19:10:12 +0100217 default y
Patrick Georgi7e9b9d82012-04-30 21:06:10 +0200218 help
219 This draws in the blobs repository, which contains binary files that
220 might be required for some chipsets or boards.
221 This flag ensures that a "Free" option remains available for users.
222
Marshall Dawson20ce4002019-10-28 15:55:03 -0600223config USE_AMD_BLOBS
224 bool "Allow AMD blobs repository (with license agreement)"
225 depends on USE_BLOBS
226 help
227 This draws in the amd_blobs repository, which contains binary files
228 distributed by AMD, including VBIOS, PSP bootloaders, SMU firmwares,
229 etc. Selecting this item to download or clone the repo implies your
230 agreement to the AMD license agreement. A copy of the license text
231 may be reviewed by reading Documentation/soc/amd/amdblobs_license.md,
232 and your copy of the license is present in the repo once downloaded.
233
234 Note that for some products, omitting PSP, SMU images, or other items
235 may result in a nonbooting coreboot.rom.
236
Julius Wernerbc1cb382020-06-18 15:03:22 -0700237config USE_QC_BLOBS
238 bool "Allow QC blobs repository (selecting this agrees to the license!)
239 depends on USE_BLOBS
240 help
241 This draws in the qc_blobs repository, which contains binary files
242 distributed by Qualcomm that are required to build firmware for
243 certain Qualcomm SoCs (including QcLib, QC-SEC, qtiseclib and QUP
244 firmware). If you say Y here you are implicitly agreeing to the
245 Qualcomm license agreement which can be found at:
246 https://review.coreboot.org/cgit/qc_blobs.git/tree/LICENSE
247
248 *****************************************************
249 PLEASE MAKE SURE YOU READ AND AGREE TO ALL TERMS IN
250 ABOVE LICENSE AGREEMENT BEFORE SELECTING THIS OPTION!
251 *****************************************************
252
253 Not selecting this option means certain Qualcomm SoCs and related
254 mainboards cannot be built and will be hidden from the "Mainboards"
255 section.
256
Stefan Reinauerd37ab452012-12-18 16:23:28 -0800257config COVERAGE
258 bool "Code coverage support"
259 depends on COMPILER_GCC
Stefan Reinauerd37ab452012-12-18 16:23:28 -0800260 help
261 Add code coverage support for coreboot. This will store code
262 coverage information in CBMEM for extraction from user space.
263 If unsure, say N.
264
Ryan Salsamendiab37e9a2017-06-11 21:07:31 -0700265config UBSAN
266 bool "Undefined behavior sanitizer support"
267 default n
268 help
269 Instrument the code with checks for undefined behavior. If unsure,
270 say N because it adds a small performance penalty and may abort
271 on code that happens to work in spite of the UB.
272
Stefan Reinauer58470e32014-10-17 13:08:36 +0200273config RELOCATABLE_RAMSTAGE
Kyösti Mälkki730df3c2016-06-18 07:39:31 +0300274 bool
Nico Huberd83bd532019-12-08 12:05:21 +0100275 default y if ARCH_X86
Vladimir Serbinenko633352c2015-05-30 22:21:37 +0200276 select RELOCATABLE_MODULES
Stefan Reinauer58470e32014-10-17 13:08:36 +0200277 help
278 The reloctable ramstage support allows for the ramstage to be built
279 as a relocatable module. The stage loader can identify a place
280 out of the OS way so that copying memory is unnecessary during an S3
281 wake. When selecting this option the romstage is responsible for
282 determing a stack location to use for loading the ramstage.
283
Kyösti Mälkki6766f4f2019-12-18 00:19:06 +0200284choice
285 prompt "Stage Cache for ACPI S3 resume"
286 default NO_STAGE_CACHE if !HAVE_ACPI_RESUME || !RELOCATABLE_RAMSTAGE
287 default TSEG_STAGE_CACHE if SMM_TSEG
288
289config NO_STAGE_CACHE
290 bool "Disabled"
291 help
292 Do not save any component in stage cache for resume path. On resume,
293 all components would be read back from CBFS again.
294
Kyösti Mälkki0a4457f2019-08-01 20:29:14 +0300295config TSEG_STAGE_CACHE
Kyösti Mälkki6766f4f2019-12-18 00:19:06 +0200296 bool "TSEG"
297 depends on SMM_TSEG
Stefan Reinauer58470e32014-10-17 13:08:36 +0200298 help
Kyösti Mälkki0a4457f2019-08-01 20:29:14 +0300299 The option enables stage cache support for platform. Platform
300 can stash copies of postcar, ramstage and raw runtime data
301 inside SMM TSEG, to be restored on S3 resume path.
302
303config CBMEM_STAGE_CACHE
Kyösti Mälkki6766f4f2019-12-18 00:19:06 +0200304 bool "CBMEM"
305 depends on !SMM_TSEG
Kyösti Mälkki0a4457f2019-08-01 20:29:14 +0300306 help
307 The option enables stage cache support for platform. Platform
308 can stash copies of postcar, ramstage and raw runtime data
309 inside CBMEM.
310
311 While the approach is faster than reloading stages from boot media
312 it is also a possible attack scenario via which OS can possibly
313 circumvent SMM locks and SPI write protections.
314
315 If unsure, select 'N'
Stefan Reinauer58470e32014-10-17 13:08:36 +0200316
Kyösti Mälkki6766f4f2019-12-18 00:19:06 +0200317endchoice
318
Stefan Reinauer58470e32014-10-17 13:08:36 +0200319config UPDATE_IMAGE
320 bool "Update existing coreboot.rom image"
Stefan Reinauer58470e32014-10-17 13:08:36 +0200321 help
322 If this option is enabled, no new coreboot.rom file
323 is created. Instead it is expected that there already
324 is a suitable file for further processing.
325 The bootblock will not be modified.
326
Martin Roth5942e062016-01-20 14:59:21 -0700327 If unsure, select 'N'
328
Konstantin Aladyshev6544cb32015-01-24 18:52:10 +0400329config BOOTSPLASH_IMAGE
330 bool "Add a bootsplash image"
331 help
332 Select this option if you have a bootsplash image that you would
333 like to add to your ROM.
334
335 This will only add the image to the ROM. To actually run it check
336 options under 'Display' section.
337
338config BOOTSPLASH_FILE
339 string "Bootsplash path and filename"
340 depends on BOOTSPLASH_IMAGE
Martin Roth75e5cb72016-12-15 15:05:37 -0700341 # Default value set at the end of the file
Konstantin Aladyshev6544cb32015-01-24 18:52:10 +0400342 help
343 The path and filename of the file to use as graphical bootsplash
344 screen. The file format has to be jpg.
345
Duncan Laurie36e6c6f2020-05-09 19:20:10 -0700346config FW_CONFIG
347 bool "Firmware Configuration Probing"
348 default n
349 help
350 Enable support for probing devices with fw_config. This is a simple
351 bitmask broken into fields and options for probing.
352
353config FW_CONFIG_SOURCE_CBFS
354 bool "Obtain Firmware Configuration value from CBFS"
355 depends on FW_CONFIG
356 default n
357 help
358 With this option enabled coreboot will look for the 32bit firmware
359 configuration value in CBFS at the selected prefix with the file name
360 "fw_config". This option will override other sources and allow the
361 local image to preempt the mainboard selected source.
362
363config FW_CONFIG_SOURCE_CHROMEEC_CBI
364 bool "Obtain Firmware Configuration value from Google Chrome EC CBI"
365 depends on FW_CONFIG && EC_GOOGLE_CHROMEEC
366 default n
367 help
368 This option tells coreboot to read the firmware configuration value
369 from the Google Chrome Embedded Controller CBI interface. This source
370 is not tried if FW_CONFIG_SOURCE_CBFS is enabled and the value was
371 found in CBFS.
372
Nico Huber94cdec62019-06-06 19:36:02 +0200373config HAVE_RAMPAYLOAD
374 bool
375
Subrata Banik7e893a02019-05-06 14:17:41 +0530376config RAMPAYLOAD
377 bool "Enable coreboot flow without executing ramstage"
Subrata Banik86dbe0f2019-06-28 18:18:37 +0530378 default y if ARCH_X86
Nico Huber94cdec62019-06-06 19:36:02 +0200379 depends on HAVE_RAMPAYLOAD
Subrata Banik7e893a02019-05-06 14:17:41 +0530380 help
381 If this option is enabled, coreboot flow will skip ramstage
382 loading and execution of ramstage to load payload.
383
384 Instead it is expected to load payload from postcar stage itself.
385
386 In this flow coreboot will perform basic x86 initialization
387 (DRAM resource allocation), MTRR programming,
388 Skip PCI enumeration logic and only allocate BAR for fixed devices
389 (bootable devices, TPM over GSPI).
390
Subrata Banik37bead62020-02-09 19:13:52 +0530391config HAVE_CONFIGURABLE_RAMSTAGE
392 bool
393
Ronald G. Minnich466ca2c2019-10-22 02:02:24 +0000394config CONFIGURABLE_RAMSTAGE
395 bool "Enable a configurable ramstage."
396 default y if ARCH_X86
Subrata Banik37bead62020-02-09 19:13:52 +0530397 depends on HAVE_CONFIGURABLE_RAMSTAGE
Ronald G. Minnich466ca2c2019-10-22 02:02:24 +0000398 help
399 A configurable ramstage allows you to select which parts of the ramstage
400 to run. Currently, we can only select a minimal PCI scanning step.
401 The minimal PCI scanning will only check those parts that are enabled
402 in the devicetree.cb. By convention none of those devices should be bridges.
403
404config MINIMAL_PCI_SCANNING
405 bool "Enable minimal PCI scanning"
Subrata Banik1cb26a62020-02-09 19:35:16 +0530406 depends on CONFIGURABLE_RAMSTAGE && PCI
Ronald G. Minnich466ca2c2019-10-22 02:02:24 +0000407 help
Subrata Banik1cb26a62020-02-09 19:35:16 +0530408 If this option is enabled, coreboot will scan only PCI devices
Ronald G. Minnich466ca2c2019-10-22 02:02:24 +0000409 marked as mandatory in devicetree.cb
Uwe Hermannc04be932009-10-05 13:55:28 +0000410endmenu
411
Martin Roth026e4dc2015-06-19 23:17:15 -0600412menu "Mainboard"
413
Stefan Reinauera48ca842015-04-04 01:58:28 +0200414source "src/mainboard/Kconfig"
Stefan Reinauer8aedcbc2010-12-16 23:37:17 +0000415
Marshall Dawsone9375132016-09-04 08:38:33 -0600416config DEVICETREE
417 string
418 default "devicetree.cb"
419 help
420 This symbol allows mainboards to select a different file under their
421 mainboard directory for the devicetree.cb file. This allows the board
422 variants that need different devicetrees to be in the same directory.
423
424 Examples: "devicetree.variant.cb"
425 "variant/devicetree.cb"
426
Furquan Shaikhf2419982018-06-21 18:50:48 -0700427config OVERRIDE_DEVICETREE
428 string
429 default ""
430 help
431 This symbol allows variants to provide an override devicetree file to
432 override the registers and/or add new devices on top of the ones
433 provided by baseboard devicetree using CONFIG_DEVICETREE.
434
435 Examples: "devicetree.variant-override.cb"
436 "variant/devicetree-override.cb"
437
Patrick Georgi8a3592e2015-09-16 18:10:52 +0200438config FMDFILE
439 string "fmap description file in fmd format"
Patrick Georgib8fba862020-06-17 21:06:53 +0200440 default "src/mainboard/\$(CONFIG_MAINBOARD_DIR)/chromeos.fmd" if CHROMEOS
Patrick Georgi8a3592e2015-09-16 18:10:52 +0200441 default ""
442 help
443 The build system creates a default FMAP from ROM_SIZE and CBFS_SIZE,
444 but in some cases more complex setups are required.
445 When an fmd is specified, it overrides the default format.
446
Arthur Heymans965881b2019-09-25 13:18:52 +0200447config CBFS_SIZE
448 hex "Size of CBFS filesystem in ROM"
449 depends on FMDFILE = ""
450 # Default value set at the end of the file
451 help
452 This is the part of the ROM actually managed by CBFS, located at the
453 end of the ROM (passed through cbfstool -o) on x86 and at at the start
454 of the ROM (passed through cbfstool -s) everywhere else. It defaults
455 to span the whole ROM on all but Intel systems that use an Intel Firmware
456 Descriptor. It can be overridden to make coreboot live alongside other
457 components like ChromeOS's vboot/FMAP or Intel's IFD / ME / TXE
458 binaries. This symbol should only be used to generate a default FMAP and
459 is unused when a non-default fmd file is provided via CONFIG_FMDFILE.
460
Martin Rothda1ca202015-12-26 16:51:16 -0700461endmenu
462
Martin Rothb09a5692016-01-24 19:38:33 -0700463# load site-local kconfig to allow user specific defaults and overrides
464source "site-local/Kconfig"
465
Vladimir Serbinenkoa9db82f2014-10-16 13:21:47 +0200466config SYSTEM_TYPE_LAPTOP
Martin Roth595e7772015-04-26 18:53:26 -0600467 default n
468 bool
Vladimir Serbinenkoa9db82f2014-10-16 13:21:47 +0200469
Duncan Laurie8312df42019-02-01 11:33:57 -0800470config SYSTEM_TYPE_TABLET
471 default n
472 bool
473
474config SYSTEM_TYPE_DETACHABLE
475 default n
476 bool
477
478config SYSTEM_TYPE_CONVERTIBLE
479 default n
480 bool
481
Werner Zehc0fb3612016-01-14 15:08:36 +0100482config CBFS_AUTOGEN_ATTRIBUTES
483 default n
484 bool
485 help
486 If this option is selected, every file in cbfs which has a constraint
487 regarding position or alignment will get an additional file attribute
488 which describes this constraint.
489
Uwe Hermann63a8f2a2009-10-26 21:42:13 +0000490menu "Chipset"
491
Duncan Lauried2119762015-06-08 18:11:56 -0700492comment "SoC"
Chris Chingaa8e5d32017-10-20 10:43:39 -0600493source "src/soc/*/Kconfig"
Uwe Hermann63a8f2a2009-10-26 21:42:13 +0000494comment "CPU"
Stefan Reinauera48ca842015-04-04 01:58:28 +0200495source "src/cpu/Kconfig"
Uwe Hermann63a8f2a2009-10-26 21:42:13 +0000496comment "Northbridge"
Stefan Reinauera48ca842015-04-04 01:58:28 +0200497source "src/northbridge/*/*/Kconfig"
Uwe Hermann63a8f2a2009-10-26 21:42:13 +0000498comment "Southbridge"
Stefan Reinauera48ca842015-04-04 01:58:28 +0200499source "src/southbridge/*/*/Kconfig"
Uwe Hermann63a8f2a2009-10-26 21:42:13 +0000500comment "Super I/O"
Omar Pakker57603e22016-07-29 23:31:45 +0200501source "src/superio/*/*/Kconfig"
Sven Schnelle7592e8b2011-01-27 11:43:03 +0000502comment "Embedded Controllers"
Stefan Reinauera48ca842015-04-04 01:58:28 +0200503source "src/ec/acpi/Kconfig"
504source "src/ec/*/*/Kconfig"
Uwe Hermann63a8f2a2009-10-26 21:42:13 +0000505
Martin Roth59aa2b12015-06-20 16:17:12 -0600506source "src/southbridge/intel/common/firmware/Kconfig"
Martin Rothe1523ec2015-06-19 22:30:43 -0600507source "src/vendorcode/*/Kconfig"
Martin Roth59aa2b12015-06-20 16:17:12 -0600508
Martin Rothe1523ec2015-06-19 22:30:43 -0600509source "src/arch/*/Kconfig"
510
Uwe Hermann63a8f2a2009-10-26 21:42:13 +0000511endmenu
Patrick Georgi0588d192009-08-12 15:00:51 +0000512
Stefan Reinauera48ca842015-04-04 01:58:28 +0200513source "src/device/Kconfig"
Stefan Reinauer95a63962012-11-13 17:00:01 -0800514
Rudolf Marekd9c25492010-05-16 15:31:53 +0000515menu "Generic Drivers"
Stefan Reinauera48ca842015-04-04 01:58:28 +0200516source "src/drivers/*/Kconfig"
Stefan Reinauer86ddd732016-03-11 20:22:28 -0800517source "src/drivers/*/*/Kconfig"
Lee Leahy48dbc662017-05-08 16:56:03 -0700518source "src/commonlib/storage/Kconfig"
Rudolf Marekd9c25492010-05-16 15:31:53 +0000519endmenu
520
Philipp Deppenwiese1899fbe2017-10-16 17:09:33 +0200521menu "Security"
522
523source "src/security/Kconfig"
Wim Vervoorne32d16f2019-11-14 14:10:28 +0100524source "src/vendorcode/eltan/security/Kconfig"
Philipp Deppenwiese1899fbe2017-10-16 17:09:33 +0200525
526endmenu
527
Martin Roth09210a12016-05-17 11:28:23 -0600528source "src/acpi/Kconfig"
529
Aaron Durbin4a36c4e2016-08-11 11:02:26 -0500530# This option is for the current boards/chipsets where SPI flash
531# is not the boot device. Currently nearly all boards/chipsets assume
532# SPI flash is the boot device.
533config BOOT_DEVICE_NOT_SPI_FLASH
534 bool
535 default n
536
537config BOOT_DEVICE_SPI_FLASH
538 bool
539 default y if !BOOT_DEVICE_NOT_SPI_FLASH
540 default n
541
Aaron Durbin16c173f2016-08-11 14:04:10 -0500542config BOOT_DEVICE_MEMORY_MAPPED
543 bool
544 default y if ARCH_X86 && BOOT_DEVICE_SPI_FLASH
545 default n
546 help
547 Inform system if SPI is memory-mapped or not.
548
Aaron Durbine8e118d2016-08-12 15:00:10 -0500549config BOOT_DEVICE_SUPPORTS_WRITES
550 bool
551 default n
552 help
553 Indicate that the platform has writable boot device
554 support.
555
Patrick Georgi0770f252015-04-22 13:28:21 +0200556config RTC
557 bool
558 default n
559
Patrick Georgi0588d192009-08-12 15:00:51 +0000560config HEAP_SIZE
561 hex
Marty E. Plummer0987e432019-04-22 20:46:27 -0500562 default 0x100000 if FLATTENED_DEVICE_TREE
Myles Watson04000f42009-10-16 19:12:49 +0000563 default 0x4000
Patrick Georgi0588d192009-08-12 15:00:51 +0000564
Julius Wernerc3e7c4e2014-09-19 13:18:16 -0700565config STACK_SIZE
566 hex
Julius Werner66a476a2015-10-12 16:45:21 -0700567 default 0x1000 if ARCH_X86
568 default 0x0
Julius Wernerc3e7c4e2014-09-19 13:18:16 -0700569
Patrick Georgi0588d192009-08-12 15:00:51 +0000570config MAX_CPUS
571 int
572 default 1
573
Stefan Reinauera48ca842015-04-04 01:58:28 +0200574source "src/console/Kconfig"
Patrick Georgi0588d192009-08-12 15:00:51 +0000575
576config HAVE_ACPI_RESUME
577 bool
578 default n
Kyösti Mälkki7cd2c072018-06-03 23:04:28 +0300579 depends on RELOCATABLE_RAMSTAGE
Patrick Georgi0588d192009-08-12 15:00:51 +0000580
Wim Vervoornbccc7e72020-01-15 11:31:25 +0100581config DISABLE_ACPI_HIBERNATE
582 bool
583 default n
584 help
585 Removes S4 from the available sleepstates
586
Aaron Durbin87c9fae2016-01-22 15:26:04 -0600587config RESUME_PATH_SAME_AS_BOOT
588 bool
589 default y if ARCH_X86
590 depends on HAVE_ACPI_RESUME
591 help
592 This option indicates that when a system resumes it takes the
593 same path as a regular boot. e.g. an x86 system runs from the
594 reset vector at 0xfffffff0 on both resume and warm/cold boot.
595
Kyösti Mälkki76c43862019-07-01 17:25:41 +0300596config NO_MONOTONIC_TIMER
Aaron Durbina4217912013-04-29 22:31:51 -0500597 def_bool n
Kyösti Mälkki76c43862019-07-01 17:25:41 +0300598
599config HAVE_MONOTONIC_TIMER
600 bool
601 depends on !NO_MONOTONIC_TIMER
Kyösti Mälkkib28b6b52019-07-01 15:38:25 +0300602 default y
Aaron Durbina4217912013-04-29 22:31:51 -0500603 help
604 The board/chipset provides a monotonic timer.
605
Aaron Durbine5e36302014-09-25 10:05:15 -0500606config GENERIC_UDELAY
Kyösti Mälkki76c43862019-07-01 17:25:41 +0300607 bool
Aaron Durbine5e36302014-09-25 10:05:15 -0500608 depends on HAVE_MONOTONIC_TIMER
Kyösti Mälkki76c43862019-07-01 17:25:41 +0300609 default y if !ARCH_X86
Aaron Durbine5e36302014-09-25 10:05:15 -0500610 help
611 The board/chipset uses a generic udelay function utilizing the
612 monotonic timer.
613
Aaron Durbin340ca912013-04-30 09:58:12 -0500614config TIMER_QUEUE
615 def_bool n
616 depends on HAVE_MONOTONIC_TIMER
617 help
Kyösti Mälkkiecd84242013-09-13 07:57:49 +0300618 Provide a timer queue for performing time-based callbacks.
Aaron Durbin340ca912013-04-30 09:58:12 -0500619
Aaron Durbin4409a5e2013-05-06 12:20:52 -0500620config COOP_MULTITASKING
621 def_bool n
Aaron Durbin38c326d2013-05-06 12:22:23 -0500622 depends on TIMER_QUEUE && ARCH_X86
Aaron Durbin4409a5e2013-05-06 12:20:52 -0500623 help
624 Cooperative multitasking allows callbacks to be multiplexed on the
625 main thread of ramstage. With this enabled it allows for multiple
626 execution paths to take place when they have udelay() calls within
627 their code.
628
629config NUM_THREADS
630 int
631 default 4
632 depends on COOP_MULTITASKING
633 help
634 How many execution threads to cooperatively multitask with.
635
Patrick Georgi0588d192009-08-12 15:00:51 +0000636config HAVE_OPTION_TABLE
637 bool
Edwin Beasanteb50c7d2010-07-06 21:05:04 +0000638 default n
Uwe Hermann6ba13bb2009-10-15 17:49:07 +0000639 help
640 This variable specifies whether a given board has a cmos.layout
641 file containing NVRAM/CMOS bit definitions.
Edwin Beasanteb50c7d2010-07-06 21:05:04 +0000642 It defaults to 'n' but can be selected in mainboard/*/Kconfig.
Patrick Georgi0588d192009-08-12 15:00:51 +0000643
Patrick Georgi0588d192009-08-12 15:00:51 +0000644config PCI_IO_CFG_EXT
645 bool
646 default n
647
648config IOAPIC
649 bool
650 default n
651
Myles Watson45bb25f2009-09-22 18:49:08 +0000652config USE_WATCHDOG_ON_BOOT
653 bool
654 default n
655
Myles Watson45bb25f2009-09-22 18:49:08 +0000656config GFXUMA
657 bool
Myles Watsond73c1b52009-10-26 15:14:07 +0000658 default n
Myles Watson45bb25f2009-09-22 18:49:08 +0000659 help
660 Enable Unified Memory Architecture for graphics.
661
Myles Watsonb8e20272009-10-15 13:35:47 +0000662config HAVE_MP_TABLE
663 bool
Uwe Hermann6ba13bb2009-10-15 17:49:07 +0000664 help
665 This variable specifies whether a given board has MP table support.
666 It is usually set in mainboard/*/Kconfig.
667 Whether or not the MP table is actually generated by coreboot
668 is configurable by the user via GENERATE_MP_TABLE.
Myles Watsonb8e20272009-10-15 13:35:47 +0000669
670config HAVE_PIRQ_TABLE
671 bool
Uwe Hermann6ba13bb2009-10-15 17:49:07 +0000672 help
673 This variable specifies whether a given board has PIRQ table support.
674 It is usually set in mainboard/*/Kconfig.
675 Whether or not the PIRQ table is actually generated by coreboot
676 is configurable by the user via GENERATE_PIRQ_TABLE.
Myles Watsonb8e20272009-10-15 13:35:47 +0000677
Aaron Durbin9420a522015-11-17 16:31:00 -0600678config ACPI_NHLT
679 bool
680 default n
681 help
682 Build support for NHLT (non HD Audio) ACPI table generation.
683
Myles Watsond73c1b52009-10-26 15:14:07 +0000684#These Options are here to avoid "undefined" warnings.
685#The actual selection and help texts are in the following menu.
686
Uwe Hermann168b11b2009-10-07 16:15:40 +0000687menu "System tables"
Myles Watson45bb25f2009-09-22 18:49:08 +0000688
Myles Watsonb8e20272009-10-15 13:35:47 +0000689config GENERATE_MP_TABLE
Stefan Reinauer56cd70b2012-11-13 17:33:08 -0800690 prompt "Generate an MP table" if HAVE_MP_TABLE || DRIVERS_GENERIC_IOAPIC
691 bool
692 default HAVE_MP_TABLE || DRIVERS_GENERIC_IOAPIC
Uwe Hermann6ba13bb2009-10-15 17:49:07 +0000693 help
694 Generate an MP table (conforming to the Intel MultiProcessor
695 specification 1.4) for this board.
696
697 If unsure, say Y.
Myles Watson45bb25f2009-09-22 18:49:08 +0000698
Myles Watsonb8e20272009-10-15 13:35:47 +0000699config GENERATE_PIRQ_TABLE
Stefan Reinauer56cd70b2012-11-13 17:33:08 -0800700 prompt "Generate a PIRQ table" if HAVE_PIRQ_TABLE
701 bool
702 default HAVE_PIRQ_TABLE
Uwe Hermann6ba13bb2009-10-15 17:49:07 +0000703 help
704 Generate a PIRQ table for this board.
705
706 If unsure, say Y.
Myles Watson45bb25f2009-09-22 18:49:08 +0000707
Sven Schnelle164bcfd2011-08-14 20:56:34 +0200708config GENERATE_SMBIOS_TABLES
709 depends on ARCH_X86
710 bool "Generate SMBIOS tables"
711 default y
712 help
713 Generate SMBIOS tables for this board.
714
715 If unsure, say Y.
716
Vladimir Serbinenko0afdec42015-05-30 23:08:26 +0200717config SMBIOS_PROVIDED_BY_MOBO
718 bool
719 default n
720
Stefan Reinauer6023ca42014-10-17 13:28:15 +0200721config MAINBOARD_SERIAL_NUMBER
Nico Huberebd8a4f2017-11-01 09:49:16 +0100722 prompt "SMBIOS Serial Number" if !SMBIOS_PROVIDED_BY_MOBO
723 string
Stefan Reinauer6023ca42014-10-17 13:28:15 +0200724 depends on GENERATE_SMBIOS_TABLES
725 default "123456789"
Martin Roth595e7772015-04-26 18:53:26 -0600726 help
Stefan Reinauer6023ca42014-10-17 13:28:15 +0200727 The Serial Number to store in SMBIOS structures.
728
729config MAINBOARD_VERSION
Nico Huberebd8a4f2017-11-01 09:49:16 +0100730 prompt "SMBIOS Version Number" if !SMBIOS_PROVIDED_BY_MOBO
731 string
Stefan Reinauer6023ca42014-10-17 13:28:15 +0200732 depends on GENERATE_SMBIOS_TABLES
733 default "1.0"
734 help
735 The Version Number to store in SMBIOS structures.
736
737config MAINBOARD_SMBIOS_MANUFACTURER
Nico Huberebd8a4f2017-11-01 09:49:16 +0100738 prompt "SMBIOS Manufacturer" if !SMBIOS_PROVIDED_BY_MOBO
739 string
Stefan Reinauer6023ca42014-10-17 13:28:15 +0200740 depends on GENERATE_SMBIOS_TABLES
741 default MAINBOARD_VENDOR
742 help
743 Override the default Manufacturer stored in SMBIOS structures.
744
745config MAINBOARD_SMBIOS_PRODUCT_NAME
Nico Huberebd8a4f2017-11-01 09:49:16 +0100746 prompt "SMBIOS Product name" if !SMBIOS_PROVIDED_BY_MOBO
747 string
Stefan Reinauer6023ca42014-10-17 13:28:15 +0200748 depends on GENERATE_SMBIOS_TABLES
749 default MAINBOARD_PART_NUMBER
750 help
751 Override the default Product name stored in SMBIOS structures.
752
Johnny Linc746a742020-06-03 11:44:22 +0800753config VPD_SMBIOS_VERSION
754 bool "Populates SMBIOS type 0 version from the VPD_RO variable 'firmware_version'"
755 default n
756 depends on VPD && GENERATE_SMBIOS_TABLES
757 help
758 Selecting this option will read firmware_version from
759 VPD_RO and override SMBIOS type 0 version. One special
760 scenario of using this feature is to assign a BIOS version
761 to a coreboot image without the need to rebuild from source.
762
Myles Watson45bb25f2009-09-22 18:49:08 +0000763endmenu
764
Martin Roth21c06502016-02-04 19:52:27 -0700765source "payloads/Kconfig"
Peter Stugea758ca22009-09-17 16:21:31 +0000766
Uwe Hermann168b11b2009-10-07 16:15:40 +0000767menu "Debugging"
768
Nico Huberd67edca2018-11-13 19:28:07 +0100769comment "CPU Debug Settings"
Arthur Heymansaae81902019-11-04 21:50:21 +0100770source "src/cpu/*/Kconfig.debug_cpu"
Nico Huberd67edca2018-11-13 19:28:07 +0100771
Arthur Heymans71bd7e42019-10-20 14:20:53 +0200772comment "BLOB Debug Settings"
773source "src/drivers/intel/fsp*/Kconfig.debug_blob"
774
Nico Huberd67edca2018-11-13 19:28:07 +0100775comment "General Debug Settings"
776
Uwe Hermann168b11b2009-10-07 16:15:40 +0000777# TODO: Better help text and detailed instructions.
Patrick Georgi0588d192009-08-12 15:00:51 +0000778config GDB_STUB
Uwe Hermann5ec2c2b2009-08-25 00:53:22 +0000779 bool "GDB debugging support"
Rudolf Marek65888022012-03-25 20:51:16 +0200780 default n
Arthur Heymans8e980132019-11-04 09:33:04 +0100781 depends on DRIVERS_UART
Patrick Georgi0588d192009-08-12 15:00:51 +0000782 help
Uwe Hermann5ec2c2b2009-08-25 00:53:22 +0000783 If enabled, you will be able to set breakpoints for gdb debugging.
Stefan Reinauer8677a232010-12-11 20:33:41 +0000784 See src/arch/x86/lib/c_start.S for details.
Patrick Georgi0588d192009-08-12 15:00:51 +0000785
Denis 'GNUtoo' Cariklie4cece02012-06-22 15:56:37 +0200786config GDB_WAIT
Denis 'GNUtoo' Carikli7d234f22015-12-10 21:58:52 +0100787 bool "Wait for a GDB connection in the ramstage"
Denis 'GNUtoo' Cariklie4cece02012-06-22 15:56:37 +0200788 default n
789 depends on GDB_STUB
790 help
Denis 'GNUtoo' Carikli7d234f22015-12-10 21:58:52 +0100791 If enabled, coreboot will wait for a GDB connection in the ramstage.
792
Denis 'GNUtoo' Cariklie4cece02012-06-22 15:56:37 +0200793
Julius Wernerd82e0cf2015-02-17 17:27:23 -0800794config FATAL_ASSERTS
795 bool "Halt when hitting a BUG() or assertion error"
796 default n
797 help
798 If enabled, coreboot will call hlt() on a BUG() or failed ASSERT().
799
Nico Huber371a6672018-11-13 22:06:40 +0100800config HAVE_DEBUG_GPIO
801 bool
802
803config DEBUG_GPIO
804 bool "Output verbose GPIO debug messages"
805 depends on HAVE_DEBUG_GPIO
806
Stefan Reinauerfe422182012-05-02 16:33:18 -0700807config DEBUG_CBFS
808 bool "Output verbose CBFS debug messages"
809 default n
Stefan Reinauerfe422182012-05-02 16:33:18 -0700810 help
811 This option enables additional CBFS related debug messages.
812
Jens Rottmann0d11f2d2010-08-26 12:46:02 +0000813config HAVE_DEBUG_RAM_SETUP
814 def_bool n
815
Uwe Hermann01ce6012010-03-05 10:03:50 +0000816config DEBUG_RAM_SETUP
817 bool "Output verbose RAM init debug messages"
818 default n
Jens Rottmann0d11f2d2010-08-26 12:46:02 +0000819 depends on HAVE_DEBUG_RAM_SETUP
Uwe Hermann01ce6012010-03-05 10:03:50 +0000820 help
821 This option enables additional RAM init related debug messages.
822 It is recommended to enable this when debugging issues on your
823 board which might be RAM init related.
824
825 Note: This option will increase the size of the coreboot image.
826
827 If unsure, say N.
828
Myles Watson80e914ff2010-06-01 19:25:31 +0000829config DEBUG_PIRQ
830 bool "Check PIRQ table consistency"
831 default n
832 depends on GENERATE_PIRQ_TABLE
833 help
834 If unsure, say N.
835
Jens Rottmann0d11f2d2010-08-26 12:46:02 +0000836config HAVE_DEBUG_SMBUS
837 def_bool n
838
Uwe Hermann01ce6012010-03-05 10:03:50 +0000839config DEBUG_SMBUS
840 bool "Output verbose SMBus debug messages"
841 default n
Jens Rottmann0d11f2d2010-08-26 12:46:02 +0000842 depends on HAVE_DEBUG_SMBUS
Uwe Hermann01ce6012010-03-05 10:03:50 +0000843 help
844 This option enables additional SMBus (and SPD) debug messages.
845
846 Note: This option will increase the size of the coreboot image.
847
848 If unsure, say N.
849
850config DEBUG_SMI
851 bool "Output verbose SMI debug messages"
852 default n
853 depends on HAVE_SMI_HANDLER
Nico Huber9e53db42018-06-05 22:34:08 +0200854 select SPI_FLASH_SMM if SPI_CONSOLE || CONSOLE_SPI_FLASH
Uwe Hermann01ce6012010-03-05 10:03:50 +0000855 help
856 This option enables additional SMI related debug messages.
857
858 Note: This option will increase the size of the coreboot image.
859
860 If unsure, say N.
861
Kyösti Mälkki94464472020-06-13 13:45:42 +0300862config DEBUG_PERIODIC_SMI
863 bool "Trigger SMI periodically"
864 depends on DEBUG_SMI
865
Uwe Hermanna953f372010-11-10 00:14:32 +0000866# Only visible if debug level is DEBUG (7) or SPEW (8) as it does additional
867# printk(BIOS_DEBUG, ...) calls.
868config DEBUG_MALLOC
Stefan Reinauer95a63962012-11-13 17:00:01 -0800869 prompt "Output verbose malloc debug messages" if DEFAULT_CONSOLE_LOGLEVEL_7 || DEFAULT_CONSOLE_LOGLEVEL_8
870 bool
Uwe Hermanna953f372010-11-10 00:14:32 +0000871 default n
Uwe Hermanna953f372010-11-10 00:14:32 +0000872 help
873 This option enables additional malloc related debug messages.
874
875 Note: This option will increase the size of the coreboot image.
876
877 If unsure, say N.
Cristian Măgherușan-Stanciu9f52ea42011-07-02 00:44:39 +0300878
Kyösti Mälkki66277952018-12-31 15:22:34 +0200879config DEBUG_CONSOLE_INIT
880 bool "Debug console initialisation code"
881 default n
882 help
883 With this option printk()'s are attempted before console hardware
884 initialisation has been completed. Your mileage may vary.
885
886 Typically you will need to modify source in console_hw_init() such
887 that a working console appears before the one you want to debug.
888
889 If unsure, say N.
890
Uwe Hermanna953f372010-11-10 00:14:32 +0000891# Only visible if debug level is DEBUG (7) or SPEW (8) as it does additional
892# printk(BIOS_DEBUG, ...) calls.
Myles Watson6c9bc012010-09-07 22:30:15 +0000893config REALMODE_DEBUG
Stefan Reinauer95a63962012-11-13 17:00:01 -0800894 prompt "Enable debug messages for option ROM execution" if DEFAULT_CONSOLE_LOGLEVEL_7 || DEFAULT_CONSOLE_LOGLEVEL_8
895 bool
Myles Watson6c9bc012010-09-07 22:30:15 +0000896 default n
Peter Stuge5015f792010-11-10 02:00:32 +0000897 depends on PCI_OPTION_ROM_RUN_REALMODE
Myles Watson6c9bc012010-09-07 22:30:15 +0000898 help
899 This option enables additional x86emu related debug messages.
900
901 Note: This option will increase the time to emulate a ROM.
902
903 If unsure, say N.
904
Uwe Hermann01ce6012010-03-05 10:03:50 +0000905config X86EMU_DEBUG
906 bool "Output verbose x86emu debug messages"
907 default n
908 depends on PCI_OPTION_ROM_RUN_YABEL
909 help
910 This option enables additional x86emu related debug messages.
911
912 Note: This option will increase the size of the coreboot image.
913
914 If unsure, say N.
915
916config X86EMU_DEBUG_JMP
917 bool "Trace JMP/RETF"
918 default n
919 depends on X86EMU_DEBUG
920 help
921 Print information about JMP and RETF opcodes from x86emu.
922
923 Note: This option will increase the size of the coreboot image.
924
925 If unsure, say N.
926
927config X86EMU_DEBUG_TRACE
928 bool "Trace all opcodes"
929 default n
930 depends on X86EMU_DEBUG
931 help
932 Print _all_ opcodes that are executed by x86emu.
Stefan Reinauer14e22772010-04-27 06:56:47 +0000933
Uwe Hermann01ce6012010-03-05 10:03:50 +0000934 WARNING: This will produce a LOT of output and take a long time.
935
936 Note: This option will increase the size of the coreboot image.
937
938 If unsure, say N.
939
940config X86EMU_DEBUG_PNP
941 bool "Log Plug&Play accesses"
942 default n
943 depends on X86EMU_DEBUG
944 help
945 Print Plug And Play accesses made by option ROMs.
946
947 Note: This option will increase the size of the coreboot image.
948
949 If unsure, say N.
950
951config X86EMU_DEBUG_DISK
952 bool "Log Disk I/O"
953 default n
954 depends on X86EMU_DEBUG
955 help
956 Print Disk I/O related messages.
957
958 Note: This option will increase the size of the coreboot image.
959
960 If unsure, say N.
961
962config X86EMU_DEBUG_PMM
963 bool "Log PMM"
964 default n
965 depends on X86EMU_DEBUG
966 help
967 Print messages related to POST Memory Manager (PMM).
968
969 Note: This option will increase the size of the coreboot image.
970
971 If unsure, say N.
972
973
974config X86EMU_DEBUG_VBE
975 bool "Debug VESA BIOS Extensions"
976 default n
977 depends on X86EMU_DEBUG
978 help
979 Print messages related to VESA BIOS Extension (VBE) functions.
980
981 Note: This option will increase the size of the coreboot image.
982
983 If unsure, say N.
984
985config X86EMU_DEBUG_INT10
986 bool "Redirect INT10 output to console"
987 default n
988 depends on X86EMU_DEBUG
989 help
990 Let INT10 (i.e. character output) calls print messages to debug output.
991
992 Note: This option will increase the size of the coreboot image.
993
994 If unsure, say N.
995
996config X86EMU_DEBUG_INTERRUPTS
997 bool "Log intXX calls"
998 default n
999 depends on X86EMU_DEBUG
1000 help
1001 Print messages related to interrupt handling.
1002
1003 Note: This option will increase the size of the coreboot image.
1004
1005 If unsure, say N.
1006
1007config X86EMU_DEBUG_CHECK_VMEM_ACCESS
1008 bool "Log special memory accesses"
1009 default n
1010 depends on X86EMU_DEBUG
1011 help
1012 Print messages related to accesses to certain areas of the virtual
1013 memory (e.g. BDA (BIOS Data Area) or interrupt vectors)
1014
1015 Note: This option will increase the size of the coreboot image.
1016
1017 If unsure, say N.
1018
1019config X86EMU_DEBUG_MEM
1020 bool "Log all memory accesses"
1021 default n
1022 depends on X86EMU_DEBUG
1023 help
1024 Print memory accesses made by option ROM.
1025 Note: This also includes accesses to fetch instructions.
1026
1027 Note: This option will increase the size of the coreboot image.
1028
1029 If unsure, say N.
1030
1031config X86EMU_DEBUG_IO
1032 bool "Log IO accesses"
1033 default n
1034 depends on X86EMU_DEBUG
1035 help
1036 Print I/O accesses made by option ROM.
1037
1038 Note: This option will increase the size of the coreboot image.
1039
1040 If unsure, say N.
1041
Denis 'GNUtoo' Carikli4cdc5d62013-05-15 00:19:49 +02001042config X86EMU_DEBUG_TIMINGS
1043 bool "Output timing information"
1044 default n
Kyösti Mälkki91945fb2019-07-10 15:10:22 +03001045 depends on X86EMU_DEBUG && HAVE_MONOTONIC_TIMER
Denis 'GNUtoo' Carikli4cdc5d62013-05-15 00:19:49 +02001046 help
1047 Print timing information needed by i915tool.
1048
1049 If unsure, say N.
1050
Stefan Reinauer1c56d9b2012-05-10 11:27:32 -07001051config DEBUG_SPI_FLASH
1052 bool "Output verbose SPI flash debug messages"
1053 default n
1054 depends on SPI_FLASH
1055 help
1056 This option enables additional SPI flash related debug messages.
1057
Stefan Reinauer8e073822012-04-04 00:07:22 +02001058if SOUTHBRIDGE_INTEL_BD82X6X && DEFAULT_CONSOLE_LOGLEVEL_8
1059# Only visible with the right southbridge and loglevel.
1060config DEBUG_INTEL_ME
1061 bool "Verbose logging for Intel Management Engine"
1062 default n
1063 help
1064 Enable verbose logging for Intel Management Engine driver that
1065 is present on Intel 6-series chipsets.
1066endif
1067
Rudolf Marek7f0e9302011-09-02 23:23:41 +02001068config TRACE
1069 bool "Trace function calls"
1070 default n
1071 help
1072 If enabled, every function will print information to console once
1073 the function is entered. The syntax is ~0xaaaabbbb(0xccccdddd)
1074 the 0xaaaabbbb is the actual function and 0xccccdddd is EIP
Ben Gardner8420ad42015-11-18 10:46:53 -06001075 of calling function. Please note some printk related functions
Rudolf Marek7f0e9302011-09-02 23:23:41 +02001076 are omitted from trace to have good looking console dumps.
Stefan Reinauerd37ab452012-12-18 16:23:28 -08001077
1078config DEBUG_COVERAGE
1079 bool "Debug code coverage"
1080 default n
1081 depends on COVERAGE
1082 help
1083 If enabled, the code coverage hooks in coreboot will output some
1084 information about the coverage data that is dumped.
1085
Jonathan Neuschäferfc04f9b2016-06-29 21:59:32 +02001086config DEBUG_BOOT_STATE
1087 bool "Debug boot state machine"
1088 default n
1089 help
1090 Control debugging of the boot state machine. When selected displays
1091 the state boundaries in ramstage.
1092
Nico Hubere84e6252016-10-05 17:43:56 +02001093config DEBUG_ADA_CODE
1094 bool "Compile debug code in Ada sources"
1095 default n
1096 help
1097 Add the compiler switch `-gnata` to compile code guarded by
1098 `pragma Debug`.
1099
Simon Glass46255f72018-07-12 15:26:07 -06001100config HAVE_EM100_SUPPORT
1101 bool "Platform can support the Dediprog EM100 SPI emulator"
1102 help
1103 This is enabled by platforms which can support using the EM100.
1104
1105config EM100
1106 bool "Configure image for EM100 usage"
1107 depends on HAVE_EM100_SUPPORT
1108 help
1109 The Dediprog EM100 SPI emulator allows fast loading of new SPI images
1110 over USB. However it only supports a maximum SPI clock of 20MHz and
1111 single data output. Enable this option to use a 20MHz SPI clock and
1112 disable "Dual Output Fast Read" Support.
1113
1114 On AMD platforms this changes the SPI speed at run-time if the
1115 mainboard code supports this. On supported Intel platforms this works
1116 by changing the settings in the descriptor.bin file.
1117
Uwe Hermann168b11b2009-10-07 16:15:40 +00001118endmenu
1119
Martin Roth8e4aafb2016-12-15 15:25:15 -07001120
1121###############################################################################
1122# Set variables with no prompt - these can be set anywhere, and putting at
1123# the end of this file gives the most flexibility.
Nico Huber3db76532017-05-18 18:07:34 +02001124
1125source "src/lib/Kconfig"
1126
Myles Watson2e672732009-11-12 16:38:03 +00001127config WARNINGS_ARE_ERRORS
1128 bool
Edward O'Callaghan63f6dc72014-11-18 03:17:54 +11001129 default y
Patrick Georgi436f99b2009-11-27 16:55:13 +00001130
Peter Stuge51eafde2010-10-13 06:23:02 +00001131# The four POWER_BUTTON_DEFAULT_ENABLE, POWER_BUTTON_DEFAULT_DISABLE,
1132# POWER_BUTTON_FORCE_ENABLE and POWER_BUTTON_FORCE_DISABLE options are
1133# mutually exclusive. One of these options must be selected in the
1134# mainboard Kconfig if the chipset supports enabling and disabling of
1135# the power button. Chipset code uses the ENABLE_POWER_BUTTON option set
1136# in mainboard/Kconfig to know if the button should be enabled or not.
1137
1138config POWER_BUTTON_DEFAULT_ENABLE
1139 def_bool n
1140 help
1141 Select when the board has a power button which can optionally be
1142 disabled by the user.
1143
1144config POWER_BUTTON_DEFAULT_DISABLE
1145 def_bool n
1146 help
1147 Select when the board has a power button which can optionally be
1148 enabled by the user, e.g. when the board ships with a jumper over
1149 the power switch contacts.
1150
1151config POWER_BUTTON_FORCE_ENABLE
1152 def_bool n
1153 help
1154 Select when the board requires that the power button is always
1155 enabled.
1156
1157config POWER_BUTTON_FORCE_DISABLE
1158 def_bool n
1159 help
1160 Select when the board requires that the power button is always
1161 disabled, e.g. when it has been hardwired to ground.
1162
1163config POWER_BUTTON_IS_OPTIONAL
1164 bool
1165 default y if POWER_BUTTON_DEFAULT_ENABLE || POWER_BUTTON_DEFAULT_DISABLE
1166 default n if !(POWER_BUTTON_DEFAULT_ENABLE || POWER_BUTTON_DEFAULT_DISABLE)
1167 help
1168 Internal option that controls ENABLE_POWER_BUTTON visibility.
Duncan Laurie72748002013-10-31 08:26:23 -07001169
1170config REG_SCRIPT
1171 bool
Duncan Laurie72748002013-10-31 08:26:23 -07001172 default n
1173 help
1174 Internal option that controls whether we compile in register scripts.
Furquan Shaikh99ac98f2014-04-23 10:18:48 -07001175
Furquan Shaikh99ac98f2014-04-23 10:18:48 -07001176config MAX_REBOOT_CNT
1177 int
1178 default 3
Timothy Pearson17ada2e2015-03-18 01:31:34 -05001179 help
1180 Internal option that sets the maximum number of bootblock executions allowed
1181 with the normal image enabled before assuming the normal image is defective
Vadim Bendebury9c9c3362014-07-23 09:40:02 -07001182 and switching to the fallback image.
Martin Roth59ff3402016-02-09 09:06:46 -07001183
Martin Roth8e4aafb2016-12-15 15:25:15 -07001184config UNCOMPRESSED_RAMSTAGE
1185 bool
1186
1187config NO_XIP_EARLY_STAGES
1188 bool
1189 default n if ARCH_X86
1190 default y
1191 help
1192 Identify if early stages are eXecute-In-Place(XIP).
1193
Martin Roth8e4aafb2016-12-15 15:25:15 -07001194config EARLY_CBMEM_LIST
1195 bool
1196 default n
1197 help
1198 Enable display of CBMEM during romstage and postcar.
1199
1200config RELOCATABLE_MODULES
1201 bool
1202 help
1203 If RELOCATABLE_MODULES is selected then support is enabled for
1204 building relocatable modules in the RAM stage. Those modules can be
1205 loaded anywhere and all the relocations are handled automatically.
1206
Martin Roth8e4aafb2016-12-15 15:25:15 -07001207config GENERIC_GPIO_LIB
1208 bool
1209 help
1210 If enabled, compile the generic GPIO library. A "generic" GPIO
1211 implies configurability usually found on SoCs, particularly the
1212 ability to control internal pull resistors.
1213
Martin Roth8e4aafb2016-12-15 15:25:15 -07001214config BOOTBLOCK_CUSTOM
1215 # To be selected by arch, SoC or mainboard if it does not want use the normal
1216 # src/lib/bootblock.c#main() C entry point.
1217 bool
1218
Furquan Shaikh46514c22020-06-11 11:59:07 -07001219config MEMLAYOUT_LD_FILE
1220 string
Patrick Georgib8fba862020-06-17 21:06:53 +02001221 default "src/mainboard/\$(CONFIG_MAINBOARD_DIR)/memlayout.ld"
Furquan Shaikh46514c22020-06-11 11:59:07 -07001222 help
1223 This variable allows SoC/mainboard to supply in a custom linker file
1224 if required. This determines the linker file used for all the stages
1225 (bootblock, romstage, verstage, ramstage, postcar) in
1226 src/arch/${ARCH}/Makefile.inc.
1227
Martin Roth75e5cb72016-12-15 15:05:37 -07001228###############################################################################
1229# Set default values for symbols created before mainboards. This allows the
1230# option to be displayed in the general menu, but the default to be loaded in
1231# the mainboard if desired.
1232config COMPRESS_RAMSTAGE
1233 default y if !UNCOMPRESSED_RAMSTAGE
1234
1235config COMPRESS_PRERAM_STAGES
1236 depends on !ARCH_X86
1237 default y
1238
1239config INCLUDE_CONFIG_FILE
1240 default y
1241
Martin Roth75e5cb72016-12-15 15:05:37 -07001242config BOOTSPLASH_FILE
1243 depends on BOOTSPLASH_IMAGE
1244 default "bootsplash.jpg"
1245
1246config CBFS_SIZE
1247 default ROM_SIZE
Subrata Banikb5962a92019-06-08 12:29:02 +05301248
1249config HAVE_BOOTBLOCK
1250 bool
1251 default y
1252
1253config HAVE_VERSTAGE
1254 bool
1255 depends on VBOOT_SEPARATE_VERSTAGE
1256 default y
1257
1258config HAVE_ROMSTAGE
1259 bool
1260 default y
1261
Subrata Banikb5962a92019-06-08 12:29:02 +05301262config HAVE_RAMSTAGE
1263 bool
1264 default n if RAMPAYLOAD
1265 default y