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 HAVE_ACPI_RESUME
718 config DISABLE_ACPI_HIBERNATE
722 Removes S4 from the available sleepstates
724 config RESUME_PATH_SAME_AS_BOOT
726 default y if ARCH_X86
727 depends on HAVE_ACPI_RESUME
729 This option indicates that when a system resumes it takes the
730 same path as a regular boot. e.g. an x86 system runs from the
731 reset vector at 0xfffffff0 on both resume and warm/cold boot.
733 config NO_MONOTONIC_TIMER
736 config HAVE_MONOTONIC_TIMER
738 depends on !NO_MONOTONIC_TIMER
741 The board/chipset provides a monotonic timer.
743 config GENERIC_UDELAY
745 depends on HAVE_MONOTONIC_TIMER
746 default y if !ARCH_X86
748 The board/chipset uses a generic udelay function utilizing the
753 depends on HAVE_MONOTONIC_TIMER
755 Provide a timer queue for performing time-based callbacks.
757 config COOP_MULTITASKING
762 Cooperative multitasking allows callbacks to be multiplexed on the
763 main thread. With this enabled it allows for multiple execution paths
764 to take place when they have udelay() calls within their code.
769 depends on COOP_MULTITASKING
771 How many execution threads to cooperatively multitask with.
773 config HAVE_MAINBOARD_SPECIFIC_OPTION_BACKEND
776 Selected by mainboards which implement a mainboard-specific mechanism
777 to access the values for runtime-configurable options. For example, a
778 custom BMC interface or an EEPROM with an externally-imposed layout.
780 config HAVE_OPTION_TABLE
784 This variable specifies whether a given board has a cmos.layout
785 file containing NVRAM/CMOS bit definitions.
786 It defaults to 'n' but can be selected in mainboard/*/Kconfig.
788 config CMOS_LAYOUT_FILE
790 default "src/mainboard/\$(MAINBOARDDIR)/cmos.layout"
791 depends on HAVE_OPTION_TABLE
793 config PCI_IO_CFG_EXT
802 config USE_WATCHDOG_ON_BOOT
810 Enable Unified Memory Architecture for graphics.
815 This variable specifies whether a given board has MP table support.
816 It is usually set in mainboard/*/Kconfig.
817 Whether or not the MP table is actually generated by coreboot
818 is configurable by the user via GENERATE_MP_TABLE.
820 config HAVE_PIRQ_TABLE
823 This variable specifies whether a given board has PIRQ table support.
824 It is usually set in mainboard/*/Kconfig.
825 Whether or not the PIRQ table is actually generated by coreboot
826 is configurable by the user via GENERATE_PIRQ_TABLE.
832 Build support for NHLT (non HD Audio) ACPI table generation.
834 #These Options are here to avoid "undefined" warnings.
835 #The actual selection and help texts are in the following menu.
839 config GENERATE_MP_TABLE
840 prompt "Generate an MP table" if HAVE_MP_TABLE
842 default HAVE_MP_TABLE
844 Generate an MP table (conforming to the Intel MultiProcessor
845 specification 1.4) for this board.
849 config GENERATE_PIRQ_TABLE
850 prompt "Generate a PIRQ table" if HAVE_PIRQ_TABLE
852 default HAVE_PIRQ_TABLE
854 Generate a PIRQ table for this board.
858 config GENERATE_SMBIOS_TABLES
860 bool "Generate SMBIOS tables"
863 Generate SMBIOS tables for this board.
867 config SMBIOS_TYPE41_PROVIDED_BY_DEVTREE
871 If enabled, only generate SMBIOS Type 41 entries for PCI devices in
872 the devicetree for which Type 41 information is provided, e.g. with
873 the `smbios_dev_info` devicetree syntax. This is useful to manually
874 assign specific instance IDs to onboard devices irrespective of the
875 device traversal order. It is assumed that instance IDs for devices
876 of the same class are unique.
877 When disabled, coreboot autogenerates SMBIOS Type 41 entries for all
878 appropriate PCI devices in the devicetree. Instance IDs are assigned
879 successive numbers from a monotonically increasing counter, with one
880 counter for each device class.
882 config SMBIOS_PROVIDED_BY_MOBO
886 config MAINBOARD_SERIAL_NUMBER
887 prompt "SMBIOS Serial Number" if !SMBIOS_PROVIDED_BY_MOBO
889 depends on GENERATE_SMBIOS_TABLES
892 The Serial Number to store in SMBIOS structures.
894 config MAINBOARD_VERSION
895 prompt "SMBIOS Version Number" if !SMBIOS_PROVIDED_BY_MOBO
897 depends on GENERATE_SMBIOS_TABLES
900 The Version Number to store in SMBIOS structures.
902 config MAINBOARD_SMBIOS_MANUFACTURER
903 prompt "SMBIOS Manufacturer" if !SMBIOS_PROVIDED_BY_MOBO
905 depends on GENERATE_SMBIOS_TABLES
906 default MAINBOARD_VENDOR
908 Override the default Manufacturer stored in SMBIOS structures.
910 config MAINBOARD_SMBIOS_PRODUCT_NAME
911 prompt "SMBIOS Product name" if !SMBIOS_PROVIDED_BY_MOBO
913 depends on GENERATE_SMBIOS_TABLES
914 default MAINBOARD_PART_NUMBER
916 Override the default Product name stored in SMBIOS structures.
918 config VPD_SMBIOS_VERSION
919 bool "Populates SMBIOS type 0 version from the VPD_RO variable 'firmware_version'"
921 depends on VPD && GENERATE_SMBIOS_TABLES
923 Selecting this option will read firmware_version from
924 VPD_RO and override SMBIOS type 0 version. One special
925 scenario of using this feature is to assign a BIOS version
926 to a coreboot image without the need to rebuild from source.
930 source "payloads/Kconfig"
934 comment "CPU Debug Settings"
935 source "src/cpu/*/Kconfig.debug_cpu"
937 comment "BLOB Debug Settings"
938 source "src/drivers/intel/fsp*/Kconfig.debug_blob"
940 comment "General Debug Settings"
942 # TODO: Better help text and detailed instructions.
944 bool "GDB debugging support"
946 depends on DRIVERS_UART
948 If enabled, you will be able to set breakpoints for gdb debugging.
949 See src/arch/x86/c_start.S for details.
952 bool "Wait for a GDB connection in the ramstage"
956 If enabled, coreboot will wait for a GDB connection in the ramstage.
960 bool "Halt when hitting a BUG() or assertion error"
963 If enabled, coreboot will call hlt() on a BUG() or failed ASSERT().
965 config HAVE_DEBUG_GPIO
969 bool "Output verbose GPIO debug messages"
970 depends on HAVE_DEBUG_GPIO
973 bool "Output verbose CBFS debug messages"
976 This option enables additional CBFS related debug messages.
978 config HAVE_DEBUG_RAM_SETUP
981 config DEBUG_RAM_SETUP
982 bool "Output verbose RAM init debug messages"
984 depends on HAVE_DEBUG_RAM_SETUP
986 This option enables additional RAM init related debug messages.
987 It is recommended to enable this when debugging issues on your
988 board which might be RAM init related.
990 Note: This option will increase the size of the coreboot image.
995 bool "Check PIRQ table consistency"
997 depends on GENERATE_PIRQ_TABLE
1001 config HAVE_DEBUG_SMBUS
1005 bool "Output verbose SMBus debug messages"
1007 depends on HAVE_DEBUG_SMBUS
1009 This option enables additional SMBus (and SPD) debug messages.
1011 Note: This option will increase the size of the coreboot image.
1016 bool "Output verbose SMI debug messages"
1018 depends on HAVE_SMI_HANDLER
1019 select SPI_FLASH_SMM if EM100PRO_SPI_CONSOLE || CONSOLE_SPI_FLASH
1021 This option enables additional SMI related debug messages.
1023 Note: This option will increase the size of the coreboot image.
1027 config DEBUG_PERIODIC_SMI
1028 bool "Trigger SMI periodically"
1029 depends on DEBUG_SMI
1031 # Only visible if debug level is DEBUG (7) or SPEW (8) as it does additional
1032 # printk(BIOS_DEBUG, ...) calls.
1034 prompt "Output verbose malloc debug messages" if DEFAULT_CONSOLE_LOGLEVEL_7 || DEFAULT_CONSOLE_LOGLEVEL_8 || CONSOLE_OVERRIDE_LOGLEVEL
1038 This option enables additional malloc related debug messages.
1040 Note: This option will increase the size of the coreboot image.
1044 # Only visible if DEBUG_SPEW (8) is set.
1045 config DEBUG_RESOURCES
1046 bool "Output verbose PCI MEM and IO resource debug messages" if DEFAULT_CONSOLE_LOGLEVEL_8 || CONSOLE_OVERRIDE_LOGLEVEL
1049 This option enables additional PCI memory and IO debug messages.
1050 Note: This option will increase the size of the coreboot image.
1053 config DEBUG_CONSOLE_INIT
1054 bool "Debug console initialisation code"
1057 With this option printk()'s are attempted before console hardware
1058 initialisation has been completed. Your mileage may vary.
1060 Typically you will need to modify source in console_hw_init() such
1061 that a working console appears before the one you want to debug.
1065 # Only visible if debug level is DEBUG (7) or SPEW (8) as it does additional
1066 # printk(BIOS_DEBUG, ...) calls.
1067 config REALMODE_DEBUG
1068 prompt "Enable debug messages for option ROM execution" if DEFAULT_CONSOLE_LOGLEVEL_7 || DEFAULT_CONSOLE_LOGLEVEL_8 || CONSOLE_OVERRIDE_LOGLEVEL
1071 depends on PCI_OPTION_ROM_RUN_REALMODE
1073 This option enables additional x86emu related debug messages.
1075 Note: This option will increase the time to emulate a ROM.
1080 bool "Output verbose x86emu debug messages"
1082 depends on PCI_OPTION_ROM_RUN_YABEL
1084 This option enables additional x86emu related debug messages.
1086 Note: This option will increase the size of the coreboot image.
1090 config X86EMU_DEBUG_JMP
1091 bool "Trace JMP/RETF"
1093 depends on X86EMU_DEBUG
1095 Print information about JMP and RETF opcodes from x86emu.
1097 Note: This option will increase the size of the coreboot image.
1101 config X86EMU_DEBUG_TRACE
1102 bool "Trace all opcodes"
1104 depends on X86EMU_DEBUG
1106 Print _all_ opcodes that are executed by x86emu.
1108 WARNING: This will produce a LOT of output and take a long time.
1110 Note: This option will increase the size of the coreboot image.
1114 config X86EMU_DEBUG_PNP
1115 bool "Log Plug&Play accesses"
1117 depends on X86EMU_DEBUG
1119 Print Plug And Play accesses made by option ROMs.
1121 Note: This option will increase the size of the coreboot image.
1125 config X86EMU_DEBUG_DISK
1128 depends on X86EMU_DEBUG
1130 Print Disk I/O related messages.
1132 Note: This option will increase the size of the coreboot image.
1136 config X86EMU_DEBUG_PMM
1139 depends on X86EMU_DEBUG
1141 Print messages related to POST Memory Manager (PMM).
1143 Note: This option will increase the size of the coreboot image.
1148 config X86EMU_DEBUG_VBE
1149 bool "Debug VESA BIOS Extensions"
1151 depends on X86EMU_DEBUG
1153 Print messages related to VESA BIOS Extension (VBE) functions.
1155 Note: This option will increase the size of the coreboot image.
1159 config X86EMU_DEBUG_INT10
1160 bool "Redirect INT10 output to console"
1162 depends on X86EMU_DEBUG
1164 Let INT10 (i.e. character output) calls print messages to debug output.
1166 Note: This option will increase the size of the coreboot image.
1170 config X86EMU_DEBUG_INTERRUPTS
1171 bool "Log intXX calls"
1173 depends on X86EMU_DEBUG
1175 Print messages related to interrupt handling.
1177 Note: This option will increase the size of the coreboot image.
1181 config X86EMU_DEBUG_CHECK_VMEM_ACCESS
1182 bool "Log special memory accesses"
1184 depends on X86EMU_DEBUG
1186 Print messages related to accesses to certain areas of the virtual
1187 memory (e.g. BDA (BIOS Data Area) or interrupt vectors)
1189 Note: This option will increase the size of the coreboot image.
1193 config X86EMU_DEBUG_MEM
1194 bool "Log all memory accesses"
1196 depends on X86EMU_DEBUG
1198 Print memory accesses made by option ROM.
1199 Note: This also includes accesses to fetch instructions.
1201 Note: This option will increase the size of the coreboot image.
1205 config X86EMU_DEBUG_IO
1206 bool "Log IO accesses"
1208 depends on X86EMU_DEBUG
1210 Print I/O accesses made by option ROM.
1212 Note: This option will increase the size of the coreboot image.
1216 config X86EMU_DEBUG_TIMINGS
1217 bool "Output timing information"
1219 depends on X86EMU_DEBUG && HAVE_MONOTONIC_TIMER
1221 Print timing information needed by i915tool.
1225 config DEBUG_SPI_FLASH
1226 bool "Output verbose SPI flash debug messages"
1228 depends on SPI_FLASH
1230 This option enables additional SPI flash related debug messages.
1233 bool "Output verbose IPMI debug messages"
1237 This option enables additional IPMI related debug messages.
1239 if SOUTHBRIDGE_INTEL_BD82X6X && DEFAULT_CONSOLE_LOGLEVEL_8
1240 # Only visible with the right southbridge and loglevel.
1241 config DEBUG_INTEL_ME
1242 bool "Verbose logging for Intel Management Engine"
1245 Enable verbose logging for Intel Management Engine driver that
1246 is present on Intel 6-series chipsets.
1250 bool "Enable function entry and exit reporting macros" if DEFAULT_CONSOLE_LOGLEVEL_8 || CONSOLE_OVERRIDE_LOGLEVEL
1253 This option enables additional function entry and exit debug messages
1254 for select functions.
1255 Note: This option will increase the size of the coreboot image.
1258 config DEBUG_COVERAGE
1259 bool "Debug code coverage"
1263 If enabled, the code coverage hooks in coreboot will output some
1264 information about the coverage data that is dumped.
1266 config DEBUG_BOOT_STATE
1267 bool "Debug boot state machine"
1270 Control debugging of the boot state machine. When selected displays
1271 the state boundaries in ramstage.
1273 config DEBUG_ADA_CODE
1274 bool "Compile debug code in Ada sources"
1277 Add the compiler switch `-gnata` to compile code guarded by
1280 config HAVE_EM100_SUPPORT
1283 This is enabled by platforms which can support using the EM100.
1286 bool "Configure image for EM100 usage"
1287 depends on HAVE_EM100_SUPPORT
1289 The Dediprog EM100 SPI emulator allows fast loading of new SPI images
1290 over USB. However it only supports a maximum SPI clock of 20MHz and
1291 single data output. Enable this option to use a 20MHz SPI clock and
1292 disable "Dual Output Fast Read" Support.
1294 On AMD platforms this changes the SPI speed at run-time if the
1295 mainboard code supports this. On supported Intel platforms this works
1296 by changing the settings in the descriptor.bin file.
1300 ###############################################################################
1301 # Set variables with no prompt - these can be set anywhere, and putting at
1302 # the end of this file gives the most flexibility.
1304 source "src/lib/Kconfig"
1306 config WARNINGS_ARE_ERRORS
1310 # The four POWER_BUTTON_DEFAULT_ENABLE, POWER_BUTTON_DEFAULT_DISABLE,
1311 # POWER_BUTTON_FORCE_ENABLE and POWER_BUTTON_FORCE_DISABLE options are
1312 # mutually exclusive. One of these options must be selected in the
1313 # mainboard Kconfig if the chipset supports enabling and disabling of
1314 # the power button. Chipset code uses the ENABLE_POWER_BUTTON option set
1315 # in mainboard/Kconfig to know if the button should be enabled or not.
1317 config POWER_BUTTON_DEFAULT_ENABLE
1320 Select when the board has a power button which can optionally be
1321 disabled by the user.
1323 config POWER_BUTTON_DEFAULT_DISABLE
1326 Select when the board has a power button which can optionally be
1327 enabled by the user, e.g. when the board ships with a jumper over
1328 the power switch contacts.
1330 config POWER_BUTTON_FORCE_ENABLE
1333 Select when the board requires that the power button is always
1336 config POWER_BUTTON_FORCE_DISABLE
1339 Select when the board requires that the power button is always
1340 disabled, e.g. when it has been hardwired to ground.
1342 config POWER_BUTTON_IS_OPTIONAL
1344 default y if POWER_BUTTON_DEFAULT_ENABLE || POWER_BUTTON_DEFAULT_DISABLE
1345 default n if !(POWER_BUTTON_DEFAULT_ENABLE || POWER_BUTTON_DEFAULT_DISABLE)
1347 Internal option that controls ENABLE_POWER_BUTTON visibility.
1353 Internal option that controls whether we compile in register scripts.
1355 config MAX_REBOOT_CNT
1359 Internal option that sets the maximum number of bootblock executions allowed
1360 with the normal image enabled before assuming the normal image is defective
1361 and switching to the fallback image.
1363 config UNCOMPRESSED_RAMSTAGE
1366 config NO_XIP_EARLY_STAGES
1368 default n if ARCH_X86
1371 Identify if early stages are eXecute-In-Place(XIP).
1373 config EARLY_CBMEM_LIST
1377 Enable display of CBMEM during romstage and postcar.
1379 config RELOCATABLE_MODULES
1382 If RELOCATABLE_MODULES is selected then support is enabled for
1383 building relocatable modules in the RAM stage. Those modules can be
1384 loaded anywhere and all the relocations are handled automatically.
1386 config GENERIC_GPIO_LIB
1389 If enabled, compile the generic GPIO library. A "generic" GPIO
1390 implies configurability usually found on SoCs, particularly the
1391 ability to control internal pull resistors.
1393 config BOOTBLOCK_CUSTOM
1394 # To be selected by arch, SoC or mainboard if it does not want use the normal
1395 # src/lib/bootblock.c#main() C entry point.
1398 config BOOTBLOCK_IN_CBFS
1400 default y if ARCH_X86
1402 Select this on platforms that have a top aligned bootblock inside cbfs.
1404 config MEMLAYOUT_LD_FILE
1406 default "src/mainboard/\$(CONFIG_MAINBOARD_DIR)/memlayout.ld"
1408 This variable allows SoC/mainboard to supply in a custom linker file
1409 if required. This determines the linker file used for all the stages
1410 (bootblock, romstage, verstage, ramstage, postcar) in
1411 src/arch/${ARCH}/Makefile.inc.
1413 ###############################################################################
1414 # Set default values for symbols created before mainboards. This allows the
1415 # option to be displayed in the general menu, but the default to be loaded in
1416 # the mainboard if desired.
1417 config COMPRESS_PRERAM_STAGES
1418 depends on (HAVE_ROMSTAGE || HAVE_VERSTAGE) && NO_XIP_EARLY_STAGES
1421 config INCLUDE_CONFIG_FILE
1424 config BOOTSPLASH_FILE
1425 depends on BOOTSPLASH_IMAGE
1426 default "bootsplash.jpg"
1431 config HAVE_BOOTBLOCK
1435 config HAVE_VERSTAGE
1437 depends on VBOOT_SEPARATE_VERSTAGE
1440 config HAVE_ROMSTAGE
1444 config HAVE_RAMSTAGE
1446 default n if RAMPAYLOAD