1 ## SPDX-License-Identifier: GPL-2.0-only
3 mainmenu "coreboot configuration"
12 string "Local version string"
14 Append an extra string to the end of the coreboot version.
16 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.
21 config CONFIGURABLE_CBFS_PREFIX
24 Select this to prompt to use to configure the prefix for cbfs files.
27 prompt "CBFS prefix to use"
28 depends on CONFIGURABLE_CBFS_PREFIX
29 default CBFS_PREFIX_FALLBACK
31 config CBFS_PREFIX_FALLBACK
34 config CBFS_PREFIX_NORMAL
37 config CBFS_PREFIX_DIY
38 bool "Define your own cbfs prefix"
43 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
47 Select the prefix to all files put into the image. It's "fallback"
48 by default, "normal" is a common alternative.
51 prompt "Compiler to use"
54 This option allows you to select the compiler used for building
56 You must build the coreboot crosscompiler for the board that you
59 To build all the GCC crosscompilers (takes a LONG time), run:
62 For help on individual architectures, run the command:
68 Use the GNU Compiler Collection (GCC) to build coreboot.
70 For details see http://gcc.gnu.org.
72 config COMPILER_LLVM_CLANG
74 depends on ALLOW_EXPERIMENTAL_CLANG || ARCH_SUPPORTS_CLANG
76 Use LLVM/clang to build coreboot. To use this, you must build the
77 coreboot version of the clang compiler. Run the command
79 Note that Clang is not currently working on all architectures.
81 For details see http://clang.llvm.org.
85 config ARCH_SUPPORTS_CLANG
88 Opt-in flag for architectures that generally work well with CLANG.
89 By default the option would be hidden.
91 config ALLOW_EXPERIMENTAL_CLANG
92 bool "Allow experimental LLVM/Clang"
93 depends on !ARCH_SUPPORTS_CLANG
95 On some architectures CLANG does not work that well.
96 Use this only to try to get CLANG working.
99 bool "Allow building with any toolchain"
102 Many toolchains break when building coreboot since it uses quite
103 unusual linker features. Unless developers explicitly request it,
104 we'll have to assume that they use their distro compiler by mistake.
105 Make sure that using patched compilers is a conscious decision.
108 bool "Use ccache to speed up (re)compilation"
111 Enables the use of ccache for faster builds.
113 Requires the ccache utility in your system $PATH.
115 For details see https://ccache.samba.org.
118 bool "Test platform with include-what-you-use"
120 This runs each source file through the include-what-you-use tool
121 to check the header includes.
124 bool "Generate flashmap descriptor parser using flex and bison"
127 Enable this option if you are working on the flashmap descriptor
128 parser and made changes to fmd_scanner.l or fmd_parser.y.
130 Otherwise, say N to use the provided pregenerated scanner/parser.
132 config UTIL_GENPARSER
133 bool "Generate parsers for bincfg, sconfig and kconfig locally"
136 Enable this option if you are working on the sconfig device tree
137 parser or bincfg and made changes to the .l or .y files.
139 Otherwise, say N to use the provided pregenerated scanner/parser.
142 prompt "Option backend to use"
143 default USE_MAINBOARD_SPECIFIC_OPTION_BACKEND if HAVE_MAINBOARD_SPECIFIC_OPTION_BACKEND
144 default USE_OPTION_TABLE if NVRAMCUI_SECONDARY_PAYLOAD
145 default USE_UEFI_VARIABLE_STORE if DRIVERS_EFI_VARIABLE_STORE && \
146 PAYLOAD_EDK2 && SMMSTORE_V2
148 config OPTION_BACKEND_NONE
151 config USE_OPTION_TABLE
152 bool "Use CMOS for configuration values"
153 depends on HAVE_OPTION_TABLE
155 Enable this option if coreboot shall read options from the "CMOS"
156 NVRAM instead of using hard-coded values.
158 config USE_UEFI_VARIABLE_STORE
159 bool "Use UEFI variable-store in SPI flash as option backend"
160 depends on DRIVERS_EFI_VARIABLE_STORE
161 depends on SMMSTORE_V2
163 Enable this option if coreboot shall read/write options from the
164 SMMSTORE region within the SPI flash. The region must be formatted
165 by the payload first before it can be used.
167 config USE_MAINBOARD_SPECIFIC_OPTION_BACKEND
168 bool "Use mainboard-specific option backend"
169 depends on HAVE_MAINBOARD_SPECIFIC_OPTION_BACKEND
171 Use a mainboard-specific mechanism to access runtime-configurable
176 config STATIC_OPTION_TABLE
177 bool "Load default configuration values into CMOS on each boot"
178 depends on USE_OPTION_TABLE
180 Enable this option to reset "CMOS" NVRAM values to default on
181 every boot. Use this if you want the NVRAM configuration to
182 never be modified from its default values.
184 config MB_COMPRESS_RAMSTAGE_LZ4
187 Select this in a mainboard to use LZ4 compression by default
190 prompt "Ramstage compression"
191 depends on HAVE_RAMSTAGE && !UNCOMPRESSED_RAMSTAGE
192 default COMPRESS_RAMSTAGE_LZ4 if MB_COMPRESS_RAMSTAGE_LZ4
193 default COMPRESS_RAMSTAGE_LZMA
195 config COMPRESS_RAMSTAGE_LZMA
196 bool "Compress ramstage with LZMA"
198 Compress ramstage with LZMA to save memory in the flash image.
200 config COMPRESS_RAMSTAGE_LZ4
201 bool "Compress ramstage with LZ4"
203 LZ4 doesn't give as good compression as LZMA, but decompresses much
204 faster. For large binaries such as ramstage, it's typically best to
205 use LZMA, but there can be cases where the faster decompression of
206 LZ4 can lead to a faster boot time. Testing on each individual board
207 is typically going to be needed due to the large number of factors
208 that can influence the decision. Binary size, CPU speed, ROM read
209 speed, cache, and other factors all play a part.
211 If you're not sure, stick with LZMA.
215 config COMPRESS_PRERAM_STAGES
216 bool "Compress romstage and verstage with LZ4"
217 depends on (HAVE_ROMSTAGE || HAVE_VERSTAGE) && NO_XIP_EARLY_STAGES
218 # Default value set at the end of the file
220 Compress romstage and (if it exists) verstage with LZ4 to save flash
221 space and speed up boot, since the time for reading the image from SPI
222 (and in the vboot case verifying it) is usually much greater than the
223 time spent decompressing. Doesn't work for XIP stages for obvious
226 config COMPRESS_BOOTBLOCK
228 depends on HAVE_BOOTBLOCK
230 This option can be used to compress the bootblock with LZ4 and attach
231 a small self-decompression stub to its front. This can drastically
232 reduce boot time on platforms where the bootblock is loaded over a
233 very slow connection and bootblock size trumps all other factors for
234 speed. Since using this option usually requires changes to the
235 SoC memlayout and possibly extra support code, it should not be
236 user-selectable. (There's no real point in offering this to the user
237 anyway... if it works and saves boot time, you would always want it.)
239 config INCLUDE_CONFIG_FILE
240 bool "Include the coreboot .config file into the ROM image"
241 # Default value set at the end of the file
243 Include the .config file that was used to compile coreboot
244 in the (CBFS) ROM image. This is useful if you want to know which
245 options were used to build a specific coreboot.rom image.
247 Saying Y here will increase the image size by 2-3KB.
249 You can then use cbfstool to extract the config from a final image:
251 cbfstool coreboot.rom extract -n config -f <output file path>
253 Alternatively, you can also use cbfstool to print the image
254 contents (including the raw 'config' item we're looking for).
258 $ cbfstool coreboot.rom print
259 coreboot.rom: 4096 kB, bootblocksize 1008, romsize 4194304,
263 Name Offset Type Size
264 cmos_layout.bin 0x0 CMOS layout 1159
265 fallback/romstage 0x4c0 stage 339756
266 fallback/ramstage 0x53440 stage 186664
267 fallback/payload 0x80dc0 payload 51526
268 config 0x8d740 raw 3324
269 (empty) 0x8e480 null 3610440
271 config COLLECT_TIMESTAMPS
272 bool "Create a table of timestamps collected during boot"
273 default y if ARCH_X86
275 Make coreboot create a table of timer-ID/timer-value pairs to
276 allow measuring time spent at different phases of the boot process.
278 config TIMESTAMPS_ON_CONSOLE
279 bool "Print the timestamp values on the console"
281 depends on COLLECT_TIMESTAMPS
283 Print the timestamps to the debug console if enabled at level info.
286 bool "Allow use of binary-only repository"
289 This draws in the blobs repository, which contains binary files that
290 might be required for some chipsets or boards.
291 This flag ensures that a "Free" option remains available for users.
294 bool "Allow AMD blobs repository (with license agreement)"
297 This draws in the amd_blobs repository, which contains binary files
298 distributed by AMD, including VBIOS, PSP bootloaders, SMU firmwares,
299 etc. Selecting this item to download or clone the repo implies your
300 agreement to the AMD license agreement. A copy of the license text
301 may be reviewed by reading Documentation/soc/amd/amdblobs_license.md,
302 and your copy of the license is present in the repo once downloaded.
304 Note that for some products, omitting PSP, SMU images, or other items
305 may result in a nonbooting coreboot.rom.
308 bool "Allow QC blobs repository (selecting this agrees to the license!)"
311 This draws in the qc_blobs repository, which contains binary files
312 distributed by Qualcomm that are required to build firmware for
313 certain Qualcomm SoCs (including QcLib, QC-SEC, qtiseclib and QUP
314 firmware). If you say Y here you are implicitly agreeing to the
315 Qualcomm license agreement which can be found at:
316 https://review.coreboot.org/cgit/qc_blobs.git/tree/LICENSE
318 *****************************************************
319 PLEASE MAKE SURE YOU READ AND AGREE TO ALL TERMS IN
320 ABOVE LICENSE AGREEMENT BEFORE SELECTING THIS OPTION!
321 *****************************************************
323 Not selecting this option means certain Qualcomm SoCs and related
324 mainboards cannot be built and will be hidden from the "Mainboards"
328 bool "Code coverage support"
329 depends on COMPILER_GCC
331 Add code coverage support for coreboot. This will store code
332 coverage information in CBMEM for extraction from user space.
336 bool "Undefined behavior sanitizer support"
339 Instrument the code with checks for undefined behavior. If unsure,
340 say N because it adds a small performance penalty and may abort
341 on code that happens to work in spite of the UB.
343 config HAVE_ASAN_IN_ROMSTAGE
347 config ASAN_IN_ROMSTAGE
351 Enable address sanitizer in romstage for platform.
353 config HAVE_ASAN_IN_RAMSTAGE
357 config ASAN_IN_RAMSTAGE
361 Enable address sanitizer in ramstage for platform.
364 bool "Address sanitizer support"
366 select ASAN_IN_ROMSTAGE if HAVE_ASAN_IN_ROMSTAGE
367 select ASAN_IN_RAMSTAGE if HAVE_ASAN_IN_RAMSTAGE
368 depends on COMPILER_GCC
370 Enable address sanitizer - runtime memory debugger,
371 designed to find out-of-bounds accesses and use-after-scope bugs.
373 This feature consumes up to 1/8 of available memory and brings about
374 ~1.5x performance slowdown.
379 comment "Before using this feature, make sure that "
380 comment "asan_shadow_offset_callback patch is applied to GCC."
384 prompt "Stage Cache for ACPI S3 resume"
385 default NO_STAGE_CACHE if !HAVE_ACPI_RESUME || MAINBOARD_DISABLE_STAGE_CACHE
386 default TSEG_STAGE_CACHE if SMM_TSEG
388 config NO_STAGE_CACHE
391 Do not save any component in stage cache for resume path. On resume,
392 all components would be read back from CBFS again.
394 config TSEG_STAGE_CACHE
398 The option enables stage cache support for platform. Platform
399 can stash copies of postcar, ramstage and raw runtime data
400 inside SMM TSEG, to be restored on S3 resume path.
402 config CBMEM_STAGE_CACHE
406 The option enables stage cache support for platform. Platform
407 can stash copies of postcar, ramstage and raw runtime data
410 While the approach is faster than reloading stages from boot media
411 it is also a possible attack scenario via which OS can possibly
412 circumvent SMM locks and SPI write protections.
414 If unsure, select 'N'
418 config MAINBOARD_DISABLE_STAGE_CACHE
421 Selected by mainboards which wish to disable the stage cache.
422 E.g. mainboards which don't use S3 resume in the field may wish to
423 disable it to save boot time at the cost of increasing S3 resume time.
426 bool "Update existing coreboot.rom image"
428 If this option is enabled, no new coreboot.rom file
429 is created. Instead it is expected that there already
430 is a suitable file for further processing.
431 The bootblock will not be modified.
433 If unsure, select 'N'
435 config BOOTSPLASH_IMAGE
436 bool "Add a bootsplash image"
438 Select this option if you have a bootsplash image that you would
439 like to add to your ROM.
441 This will only add the image to the ROM. To actually run it check
442 options under 'Display' section.
444 config BOOTSPLASH_FILE
445 string "Bootsplash path and filename"
446 depends on BOOTSPLASH_IMAGE
447 # Default value set at the end of the file
449 The path and filename of the file to use as graphical bootsplash
450 screen. The file format has to be jpg.
453 bool "Firmware Configuration Probing"
456 Enable support for probing devices with fw_config. This is a simple
457 bitmask broken into fields and options for probing.
459 config FW_CONFIG_SOURCE_CHROMEEC_CBI
460 bool "Obtain Firmware Configuration value from Google Chrome EC CBI"
461 depends on FW_CONFIG && EC_GOOGLE_CHROMEEC
464 This option tells coreboot to read the firmware configuration value
465 from the Google Chrome Embedded Controller CBI interface. This source
466 is not tried if FW_CONFIG_SOURCE_CBFS is enabled and the value was
469 config FW_CONFIG_SOURCE_CBFS
470 bool "Obtain Firmware Configuration value from CBFS"
474 With this option enabled coreboot will look for the 32bit firmware
475 configuration value in CBFS at the selected prefix with the file name
476 "fw_config". This option will override other sources and allow the
477 local image to preempt the mainboard selected source and can be used as
478 FW_CONFIG_SOURCE_CHROMEEC_CBI fallback option.
480 config FW_CONFIG_SOURCE_VPD
481 bool "Obtain Firmware Configuration value from VPD"
482 depends on FW_CONFIG && VPD
485 With this option enabled coreboot will look for the 32bit firmware
486 configuration value in VPD key name "fw_config". This option will
487 override other sources and allow the local image to preempt the mainboard
488 selected source and can be used for other FW_CONFIG_SOURCEs fallback option.
490 config HAVE_RAMPAYLOAD
494 bool "Enable coreboot flow without executing ramstage"
495 default y if ARCH_X86
496 depends on HAVE_RAMPAYLOAD
498 If this option is enabled, coreboot flow will skip ramstage
499 loading and execution of ramstage to load payload.
501 Instead it is expected to load payload from postcar stage itself.
503 In this flow coreboot will perform basic x86 initialization
504 (DRAM resource allocation), MTRR programming,
505 Skip PCI enumeration logic and only allocate BAR for fixed devices
506 (bootable devices, TPM over GSPI).
508 config HAVE_CONFIGURABLE_RAMSTAGE
511 config CONFIGURABLE_RAMSTAGE
512 bool "Enable a configurable ramstage."
513 default y if ARCH_X86
514 depends on HAVE_CONFIGURABLE_RAMSTAGE
516 A configurable ramstage allows you to select which parts of the ramstage
517 to run. Currently, we can only select a minimal PCI scanning step.
518 The minimal PCI scanning will only check those parts that are enabled
519 in the devicetree.cb. By convention none of those devices should be bridges.
521 config MINIMAL_PCI_SCANNING
522 bool "Enable minimal PCI scanning"
523 depends on CONFIGURABLE_RAMSTAGE && PCI
525 If this option is enabled, coreboot will scan only PCI devices
526 marked as mandatory in devicetree.cb
528 menu "Software Bill Of Materials (SBOM)"
530 source "src/sbom/Kconfig"
537 source "src/mainboard/Kconfig"
541 default "devicetree.cb"
543 This symbol allows mainboards to select a different file under their
544 mainboard directory for the devicetree.cb file. This allows the board
545 variants that need different devicetrees to be in the same directory.
547 Examples: "devicetree.variant.cb"
548 "variant/devicetree.cb"
550 config OVERRIDE_DEVICETREE
554 This symbol allows variants to provide an override devicetree file to
555 override the registers and/or add new devices on top of the ones
556 provided by baseboard devicetree using CONFIG_DEVICETREE.
558 Examples: "devicetree.variant-override.cb"
559 "variant/devicetree-override.cb"
562 string "fmap description file in fmd format"
563 default "src/mainboard/\$(CONFIG_MAINBOARD_DIR)/chromeos.fmd" if CHROMEOS
566 The build system creates a default FMAP from ROM_SIZE and CBFS_SIZE,
567 but in some cases more complex setups are required.
568 When an fmd is specified, it overrides the default format.
571 hex "Size of CBFS filesystem in ROM"
572 depends on FMDFILE = ""
573 # Default value set at the end of the file
575 This is the part of the ROM actually managed by CBFS, located at the
576 end of the ROM (passed through cbfstool -o) on x86 and at the start
577 of the ROM (passed through cbfstool -s) everywhere else. It defaults
578 to span the whole ROM on all but Intel systems that use an Intel Firmware
579 Descriptor. It can be overridden to make coreboot live alongside other
580 components like ChromeOS's vboot/FMAP or Intel's IFD / ME / TXE
581 binaries. This symbol should only be used to generate a default FMAP and
582 is unused when a non-default fmd file is provided via CONFIG_FMDFILE.
586 # load site-local kconfig to allow user specific defaults and overrides
587 source "site-local/Kconfig"
589 config SYSTEM_TYPE_LAPTOP
593 config SYSTEM_TYPE_TABLET
597 config SYSTEM_TYPE_DETACHABLE
601 config SYSTEM_TYPE_CONVERTIBLE
605 config CBFS_AUTOGEN_ATTRIBUTES
609 If this option is selected, every file in cbfs which has a constraint
610 regarding position or alignment will get an additional file attribute
611 which describes this constraint.
616 source "src/soc/*/*/Kconfig"
617 source "src/soc/*/*/Kconfig.common"
619 source "src/cpu/Kconfig"
620 comment "Northbridge"
621 source "src/northbridge/*/*/Kconfig"
622 source "src/northbridge/*/*/Kconfig.common"
623 comment "Southbridge"
624 source "src/southbridge/*/*/Kconfig"
625 source "src/southbridge/*/*/Kconfig.common"
627 source "src/superio/*/*/Kconfig"
628 comment "Embedded Controllers"
629 source "src/ec/acpi/Kconfig"
630 source "src/ec/*/*/Kconfig"
632 source "src/southbridge/intel/common/firmware/Kconfig"
633 source "src/vendorcode/*/Kconfig"
635 source "src/arch/*/Kconfig"
637 config CHIPSET_DEVICETREE
641 This symbol allows a chipset to provide a set of default settings in
642 a devicetree which are common to all mainboards. This may include
643 devices (including alias names), chip drivers, register settings,
644 and others. This path is relative to the src/ directory.
646 Example: "chipset.cb"
650 source "src/device/Kconfig"
652 menu "Generic Drivers"
653 source "src/drivers/*/Kconfig"
654 source "src/drivers/*/*/Kconfig"
655 source "src/drivers/*/*/*/Kconfig"
656 source "src/commonlib/storage/Kconfig"
661 source "src/security/Kconfig"
662 source "src/vendorcode/eltan/security/Kconfig"
666 source "src/acpi/Kconfig"
668 # This option is for the current boards/chipsets where SPI flash
669 # is not the boot device. Currently nearly all boards/chipsets assume
670 # SPI flash is the boot device.
671 config BOOT_DEVICE_NOT_SPI_FLASH
675 config BOOT_DEVICE_SPI_FLASH
677 default y if !BOOT_DEVICE_NOT_SPI_FLASH
680 config BOOT_DEVICE_MEMORY_MAPPED
682 default y if ARCH_X86 && BOOT_DEVICE_SPI_FLASH
685 Inform system if SPI is memory-mapped or not.
687 config BOOT_DEVICE_SUPPORTS_WRITES
691 Indicate that the platform has writable boot device
700 default 0x100000 if FLATTENED_DEVICE_TREE
705 default 0x2000 if ARCH_X86
712 source "src/console/Kconfig"
714 config ACPI_S1_NOT_SUPPORTED
718 Set this to 'y' on platforms that do not support ACPI S1 state.
720 config HAVE_ACPI_RESUME
724 config DISABLE_ACPI_HIBERNATE
728 Removes S4 from the available sleepstates
730 config RESUME_PATH_SAME_AS_BOOT
732 default y if ARCH_X86
733 depends on HAVE_ACPI_RESUME
735 This option indicates that when a system resumes it takes the
736 same path as a regular boot. e.g. an x86 system runs from the
737 reset vector at 0xfffffff0 on both resume and warm/cold boot.
739 config NO_MONOTONIC_TIMER
742 config HAVE_MONOTONIC_TIMER
744 depends on !NO_MONOTONIC_TIMER
747 The board/chipset provides a monotonic timer.
749 config GENERIC_UDELAY
751 depends on HAVE_MONOTONIC_TIMER
752 default y if !ARCH_X86
754 The board/chipset uses a generic udelay function utilizing the
759 depends on HAVE_MONOTONIC_TIMER
761 Provide a timer queue for performing time-based callbacks.
763 config COOP_MULTITASKING
768 Cooperative multitasking allows callbacks to be multiplexed on the
769 main thread. With this enabled it allows for multiple execution paths
770 to take place when they have udelay() calls within their code.
775 depends on COOP_MULTITASKING
777 How many execution threads to cooperatively multitask with.
779 config HAVE_MAINBOARD_SPECIFIC_OPTION_BACKEND
782 Selected by mainboards which implement a mainboard-specific mechanism
783 to access the values for runtime-configurable options. For example, a
784 custom BMC interface or an EEPROM with an externally-imposed layout.
786 config HAVE_OPTION_TABLE
790 This variable specifies whether a given board has a cmos.layout
791 file containing NVRAM/CMOS bit definitions.
792 It defaults to 'n' but can be selected in mainboard/*/Kconfig.
794 config CMOS_LAYOUT_FILE
796 default "src/mainboard/\$(MAINBOARDDIR)/cmos.layout"
797 depends on HAVE_OPTION_TABLE
799 config PCI_IO_CFG_EXT
808 config USE_WATCHDOG_ON_BOOT
816 Enable Unified Memory Architecture for graphics.
821 This variable specifies whether a given board has MP table support.
822 It is usually set in mainboard/*/Kconfig.
823 Whether or not the MP table is actually generated by coreboot
824 is configurable by the user via GENERATE_MP_TABLE.
826 config HAVE_PIRQ_TABLE
829 This variable specifies whether a given board has PIRQ table support.
830 It is usually set in mainboard/*/Kconfig.
831 Whether or not the PIRQ table is actually generated by coreboot
832 is configurable by the user via GENERATE_PIRQ_TABLE.
838 Build support for NHLT (non HD Audio) ACPI table generation.
840 #These Options are here to avoid "undefined" warnings.
841 #The actual selection and help texts are in the following menu.
845 config GENERATE_MP_TABLE
846 prompt "Generate an MP table" if HAVE_MP_TABLE
848 default HAVE_MP_TABLE
850 Generate an MP table (conforming to the Intel MultiProcessor
851 specification 1.4) for this board.
855 config GENERATE_PIRQ_TABLE
856 prompt "Generate a PIRQ table" if HAVE_PIRQ_TABLE
858 default HAVE_PIRQ_TABLE
860 Generate a PIRQ table for this board.
864 config GENERATE_SMBIOS_TABLES
866 bool "Generate SMBIOS tables"
869 Generate SMBIOS tables for this board.
873 config SMBIOS_TYPE41_PROVIDED_BY_DEVTREE
877 If enabled, only generate SMBIOS Type 41 entries for PCI devices in
878 the devicetree for which Type 41 information is provided, e.g. with
879 the `smbios_dev_info` devicetree syntax. This is useful to manually
880 assign specific instance IDs to onboard devices irrespective of the
881 device traversal order. It is assumed that instance IDs for devices
882 of the same class are unique.
883 When disabled, coreboot autogenerates SMBIOS Type 41 entries for all
884 appropriate PCI devices in the devicetree. Instance IDs are assigned
885 successive numbers from a monotonically increasing counter, with one
886 counter for each device class.
888 config SMBIOS_PROVIDED_BY_MOBO
892 if GENERATE_SMBIOS_TABLES
894 config MAINBOARD_SERIAL_NUMBER
895 prompt "SMBIOS Serial Number" if !SMBIOS_PROVIDED_BY_MOBO
899 The Serial Number to store in SMBIOS structures.
901 config MAINBOARD_VERSION
902 prompt "SMBIOS Version Number" if !SMBIOS_PROVIDED_BY_MOBO
906 The Version Number to store in SMBIOS structures.
908 config MAINBOARD_SMBIOS_MANUFACTURER
909 prompt "SMBIOS Manufacturer" if !SMBIOS_PROVIDED_BY_MOBO
911 default MAINBOARD_VENDOR
913 Override the default Manufacturer stored in SMBIOS structures.
915 config MAINBOARD_SMBIOS_PRODUCT_NAME
916 prompt "SMBIOS Product name" if !SMBIOS_PROVIDED_BY_MOBO
918 default MAINBOARD_PART_NUMBER
920 Override the default Product name stored in SMBIOS structures.
922 config VPD_SMBIOS_VERSION
923 bool "Populates SMBIOS type 0 version from the VPD_RO variable 'firmware_version'"
927 Selecting this option will read firmware_version from
928 VPD_RO and override SMBIOS type 0 version. One special
929 scenario of using this feature is to assign a BIOS version
930 to a coreboot image without the need to rebuild from source.
936 source "payloads/Kconfig"
940 comment "CPU Debug Settings"
941 source "src/cpu/*/Kconfig.debug_cpu"
943 comment "BLOB Debug Settings"
944 source "src/drivers/intel/fsp*/Kconfig.debug_blob"
946 comment "General Debug Settings"
948 # TODO: Better help text and detailed instructions.
950 bool "GDB debugging support"
952 depends on DRIVERS_UART
954 If enabled, you will be able to set breakpoints for gdb debugging.
955 See src/arch/x86/c_start.S for details.
958 bool "Wait for a GDB connection in the ramstage"
962 If enabled, coreboot will wait for a GDB connection in the ramstage.
966 bool "Halt when hitting a BUG() or assertion error"
969 If enabled, coreboot will call hlt() on a BUG() or failed ASSERT().
971 config HAVE_DEBUG_GPIO
975 bool "Output verbose GPIO debug messages"
976 depends on HAVE_DEBUG_GPIO
979 bool "Output verbose CBFS debug messages"
982 This option enables additional CBFS related debug messages.
984 config HAVE_DEBUG_RAM_SETUP
987 config DEBUG_RAM_SETUP
988 bool "Output verbose RAM init debug messages"
990 depends on HAVE_DEBUG_RAM_SETUP
992 This option enables additional RAM init related debug messages.
993 It is recommended to enable this when debugging issues on your
994 board which might be RAM init related.
996 Note: This option will increase the size of the coreboot image.
1001 bool "Check PIRQ table consistency"
1003 depends on GENERATE_PIRQ_TABLE
1007 config HAVE_DEBUG_SMBUS
1011 bool "Output verbose SMBus debug messages"
1013 depends on HAVE_DEBUG_SMBUS
1015 This option enables additional SMBus (and SPD) debug messages.
1017 Note: This option will increase the size of the coreboot image.
1022 bool "Output verbose SMI debug messages"
1024 depends on HAVE_SMI_HANDLER
1025 select SPI_FLASH_SMM if EM100PRO_SPI_CONSOLE || CONSOLE_SPI_FLASH
1027 This option enables additional SMI related debug messages.
1029 Note: This option will increase the size of the coreboot image.
1033 config DEBUG_PERIODIC_SMI
1034 bool "Trigger SMI periodically"
1035 depends on DEBUG_SMI
1037 # Only visible if debug level is DEBUG (7) or SPEW (8) as it does additional
1038 # printk(BIOS_DEBUG, ...) calls.
1040 prompt "Output verbose malloc debug messages" if DEFAULT_CONSOLE_LOGLEVEL_7 || DEFAULT_CONSOLE_LOGLEVEL_8 || CONSOLE_OVERRIDE_LOGLEVEL
1044 This option enables additional malloc related debug messages.
1046 Note: This option will increase the size of the coreboot image.
1050 # Only visible if DEBUG_SPEW (8) is set.
1051 config DEBUG_RESOURCES
1052 bool "Output verbose PCI MEM and IO resource debug messages" if DEFAULT_CONSOLE_LOGLEVEL_8 || CONSOLE_OVERRIDE_LOGLEVEL
1055 This option enables additional PCI memory and IO debug messages.
1056 Note: This option will increase the size of the coreboot image.
1059 config DEBUG_CONSOLE_INIT
1060 bool "Debug console initialisation code"
1063 With this option printk()'s are attempted before console hardware
1064 initialisation has been completed. Your mileage may vary.
1066 Typically you will need to modify source in console_hw_init() such
1067 that a working console appears before the one you want to debug.
1071 # Only visible if debug level is DEBUG (7) or SPEW (8) as it does additional
1072 # printk(BIOS_DEBUG, ...) calls.
1073 config REALMODE_DEBUG
1074 prompt "Enable debug messages for option ROM execution" if DEFAULT_CONSOLE_LOGLEVEL_7 || DEFAULT_CONSOLE_LOGLEVEL_8 || CONSOLE_OVERRIDE_LOGLEVEL
1077 depends on PCI_OPTION_ROM_RUN_REALMODE
1079 This option enables additional x86emu related debug messages.
1081 Note: This option will increase the time to emulate a ROM.
1086 bool "Output verbose x86emu debug messages"
1088 depends on PCI_OPTION_ROM_RUN_YABEL
1090 This option enables additional x86emu related debug messages.
1092 Note: This option will increase the size of the coreboot image.
1096 config X86EMU_DEBUG_JMP
1097 bool "Trace JMP/RETF"
1099 depends on X86EMU_DEBUG
1101 Print information about JMP and RETF opcodes from x86emu.
1103 Note: This option will increase the size of the coreboot image.
1107 config X86EMU_DEBUG_TRACE
1108 bool "Trace all opcodes"
1110 depends on X86EMU_DEBUG
1112 Print _all_ opcodes that are executed by x86emu.
1114 WARNING: This will produce a LOT of output and take a long time.
1116 Note: This option will increase the size of the coreboot image.
1120 config X86EMU_DEBUG_PNP
1121 bool "Log Plug&Play accesses"
1123 depends on X86EMU_DEBUG
1125 Print Plug And Play accesses made by option ROMs.
1127 Note: This option will increase the size of the coreboot image.
1131 config X86EMU_DEBUG_DISK
1134 depends on X86EMU_DEBUG
1136 Print Disk I/O related messages.
1138 Note: This option will increase the size of the coreboot image.
1142 config X86EMU_DEBUG_PMM
1145 depends on X86EMU_DEBUG
1147 Print messages related to POST Memory Manager (PMM).
1149 Note: This option will increase the size of the coreboot image.
1154 config X86EMU_DEBUG_VBE
1155 bool "Debug VESA BIOS Extensions"
1157 depends on X86EMU_DEBUG
1159 Print messages related to VESA BIOS Extension (VBE) functions.
1161 Note: This option will increase the size of the coreboot image.
1165 config X86EMU_DEBUG_INT10
1166 bool "Redirect INT10 output to console"
1168 depends on X86EMU_DEBUG
1170 Let INT10 (i.e. character output) calls print messages to debug output.
1172 Note: This option will increase the size of the coreboot image.
1176 config X86EMU_DEBUG_INTERRUPTS
1177 bool "Log intXX calls"
1179 depends on X86EMU_DEBUG
1181 Print messages related to interrupt handling.
1183 Note: This option will increase the size of the coreboot image.
1187 config X86EMU_DEBUG_CHECK_VMEM_ACCESS
1188 bool "Log special memory accesses"
1190 depends on X86EMU_DEBUG
1192 Print messages related to accesses to certain areas of the virtual
1193 memory (e.g. BDA (BIOS Data Area) or interrupt vectors)
1195 Note: This option will increase the size of the coreboot image.
1199 config X86EMU_DEBUG_MEM
1200 bool "Log all memory accesses"
1202 depends on X86EMU_DEBUG
1204 Print memory accesses made by option ROM.
1205 Note: This also includes accesses to fetch instructions.
1207 Note: This option will increase the size of the coreboot image.
1211 config X86EMU_DEBUG_IO
1212 bool "Log IO accesses"
1214 depends on X86EMU_DEBUG
1216 Print I/O accesses made by option ROM.
1218 Note: This option will increase the size of the coreboot image.
1222 config X86EMU_DEBUG_TIMINGS
1223 bool "Output timing information"
1225 depends on X86EMU_DEBUG && HAVE_MONOTONIC_TIMER
1227 Print timing information needed by i915tool.
1231 config DEBUG_SPI_FLASH
1232 bool "Output verbose SPI flash debug messages"
1234 depends on SPI_FLASH
1236 This option enables additional SPI flash related debug messages.
1239 bool "Output verbose IPMI debug messages"
1243 This option enables additional IPMI related debug messages.
1245 if SOUTHBRIDGE_INTEL_BD82X6X && DEFAULT_CONSOLE_LOGLEVEL_8
1246 # Only visible with the right southbridge and loglevel.
1247 config DEBUG_INTEL_ME
1248 bool "Verbose logging for Intel Management Engine"
1251 Enable verbose logging for Intel Management Engine driver that
1252 is present on Intel 6-series chipsets.
1256 bool "Enable function entry and exit reporting macros" if DEFAULT_CONSOLE_LOGLEVEL_8 || CONSOLE_OVERRIDE_LOGLEVEL
1259 This option enables additional function entry and exit debug messages
1260 for select functions.
1261 Note: This option will increase the size of the coreboot image.
1264 config DEBUG_COVERAGE
1265 bool "Debug code coverage"
1269 If enabled, the code coverage hooks in coreboot will output some
1270 information about the coverage data that is dumped.
1272 config DEBUG_BOOT_STATE
1273 bool "Debug boot state machine"
1276 Control debugging of the boot state machine. When selected displays
1277 the state boundaries in ramstage.
1279 config DEBUG_ADA_CODE
1280 bool "Compile debug code in Ada sources"
1283 Add the compiler switch `-gnata` to compile code guarded by
1286 config HAVE_EM100_SUPPORT
1289 This is enabled by platforms which can support using the EM100.
1292 bool "Configure image for EM100 usage"
1293 depends on HAVE_EM100_SUPPORT
1295 The Dediprog EM100 SPI emulator allows fast loading of new SPI images
1296 over USB. However it only supports a maximum SPI clock of 20MHz and
1297 single data output. Enable this option to use a 20MHz SPI clock and
1298 disable "Dual Output Fast Read" Support.
1300 On AMD platforms this changes the SPI speed at run-time if the
1301 mainboard code supports this. On supported Intel platforms this works
1302 by changing the settings in the descriptor.bin file.
1306 ###############################################################################
1307 # Set variables with no prompt - these can be set anywhere, and putting at
1308 # the end of this file gives the most flexibility.
1310 source "src/lib/Kconfig"
1312 config WARNINGS_ARE_ERRORS
1316 # The four POWER_BUTTON_DEFAULT_ENABLE, POWER_BUTTON_DEFAULT_DISABLE,
1317 # POWER_BUTTON_FORCE_ENABLE and POWER_BUTTON_FORCE_DISABLE options are
1318 # mutually exclusive. One of these options must be selected in the
1319 # mainboard Kconfig if the chipset supports enabling and disabling of
1320 # the power button. Chipset code uses the ENABLE_POWER_BUTTON option set
1321 # in mainboard/Kconfig to know if the button should be enabled or not.
1323 config POWER_BUTTON_DEFAULT_ENABLE
1326 Select when the board has a power button which can optionally be
1327 disabled by the user.
1329 config POWER_BUTTON_DEFAULT_DISABLE
1332 Select when the board has a power button which can optionally be
1333 enabled by the user, e.g. when the board ships with a jumper over
1334 the power switch contacts.
1336 config POWER_BUTTON_FORCE_ENABLE
1339 Select when the board requires that the power button is always
1342 config POWER_BUTTON_FORCE_DISABLE
1345 Select when the board requires that the power button is always
1346 disabled, e.g. when it has been hardwired to ground.
1348 config POWER_BUTTON_IS_OPTIONAL
1350 default y if POWER_BUTTON_DEFAULT_ENABLE || POWER_BUTTON_DEFAULT_DISABLE
1351 default n if !(POWER_BUTTON_DEFAULT_ENABLE || POWER_BUTTON_DEFAULT_DISABLE)
1353 Internal option that controls ENABLE_POWER_BUTTON visibility.
1359 Internal option that controls whether we compile in register scripts.
1361 config MAX_REBOOT_CNT
1365 Internal option that sets the maximum number of bootblock executions allowed
1366 with the normal image enabled before assuming the normal image is defective
1367 and switching to the fallback image.
1369 config UNCOMPRESSED_RAMSTAGE
1372 config NO_XIP_EARLY_STAGES
1374 default n if ARCH_X86
1377 Identify if early stages are eXecute-In-Place(XIP).
1379 config EARLY_CBMEM_LIST
1383 Enable display of CBMEM during romstage and postcar.
1385 config RELOCATABLE_MODULES
1388 If RELOCATABLE_MODULES is selected then support is enabled for
1389 building relocatable modules in the RAM stage. Those modules can be
1390 loaded anywhere and all the relocations are handled automatically.
1392 config GENERIC_GPIO_LIB
1395 If enabled, compile the generic GPIO library. A "generic" GPIO
1396 implies configurability usually found on SoCs, particularly the
1397 ability to control internal pull resistors.
1399 config BOOTBLOCK_CUSTOM
1400 # To be selected by arch, SoC or mainboard if it does not want use the normal
1401 # src/lib/bootblock.c#main() C entry point.
1404 config BOOTBLOCK_IN_CBFS
1406 default y if ARCH_X86
1408 Select this on platforms that have a top aligned bootblock inside cbfs.
1410 config MEMLAYOUT_LD_FILE
1412 default "src/mainboard/\$(CONFIG_MAINBOARD_DIR)/memlayout.ld"
1414 This variable allows SoC/mainboard to supply in a custom linker file
1415 if required. This determines the linker file used for all the stages
1416 (bootblock, romstage, verstage, ramstage, postcar) in
1417 src/arch/${ARCH}/Makefile.inc.
1419 ###############################################################################
1420 # Set default values for symbols created before mainboards. This allows the
1421 # option to be displayed in the general menu, but the default to be loaded in
1422 # the mainboard if desired.
1423 config COMPRESS_PRERAM_STAGES
1424 depends on (HAVE_ROMSTAGE || HAVE_VERSTAGE) && NO_XIP_EARLY_STAGES
1427 config INCLUDE_CONFIG_FILE
1430 config BOOTSPLASH_FILE
1431 depends on BOOTSPLASH_IMAGE
1432 default "bootsplash.jpg"
1437 config HAVE_BOOTBLOCK
1441 config HAVE_VERSTAGE
1443 depends on VBOOT_SEPARATE_VERSTAGE
1446 config HAVE_ROMSTAGE
1450 config HAVE_RAMSTAGE
1452 default n if RAMPAYLOAD