mb/amd/mandolin: Drop SPD eeproms in devicetree
[coreboot.git] / src / Kconfig
bloba4c2fa6010a2c510051b4bcf4d17b0edc0ec79d0
1 ## SPDX-License-Identifier: GPL-2.0-only
3 mainmenu "coreboot configuration"
5 menu "General setup"
7 config COREBOOT_BUILD
8         bool
9         default y
11 config LOCALVERSION
12         string "Local version string"
13         help
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
22         bool
23         help
24           Select this to prompt to use to configure the prefix for cbfs files.
26 choice
27         prompt "CBFS prefix to use"
28         depends on CONFIGURABLE_CBFS_PREFIX
29         default CBFS_PREFIX_FALLBACK
31 config CBFS_PREFIX_FALLBACK
32         bool "fallback"
34 config CBFS_PREFIX_NORMAL
35         bool "normal"
37 config CBFS_PREFIX_DIY
38         bool "Define your own cbfs prefix"
40 endchoice
42 config 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
46         help
47           Select the prefix to all files put into the image. It's "fallback"
48           by default, "normal" is a common alternative.
50 choice
51         prompt "Compiler to use"
52         default COMPILER_GCC
53         help
54           This option allows you to select the compiler used for building
55           coreboot.
56           You must build the coreboot crosscompiler for the board that you
57           have selected.
59           To build all the GCC crosscompilers (takes a LONG time), run:
60             make crossgcc
62           For help on individual architectures, run the command:
63             make help_toolchain
65 config COMPILER_GCC
66         bool "GCC"
67         help
68           Use the GNU Compiler Collection (GCC) to build coreboot.
70           For details see http://gcc.gnu.org.
72 config COMPILER_LLVM_CLANG
73         bool "LLVM/clang (TESTING ONLY - Not currently working)"
74         help
75           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.
82           For details see http://clang.llvm.org.
84 endchoice
86 config ANY_TOOLCHAIN
87         bool "Allow building with any toolchain"
88         default n
89         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.
95 config CCACHE
96         bool "Use ccache to speed up (re)compilation"
97         default n
98         help
99           Enables the use of ccache for faster builds.
101           Requires the ccache utility in your system $PATH.
103           For details see https://ccache.samba.org.
105 config FMD_GENPARSER
106         bool "Generate flashmap descriptor parser using flex and bison"
107         default n
108         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.
112           Otherwise, say N to use the provided pregenerated scanner/parser.
114 config UTIL_GENPARSER
115         bool "Generate SCONFIG & BINCFG parser using flex and bison"
116         default n
117         help
118           Enable this option if you are working on the sconfig device tree
119           parser or bincfg and made changes to the .l or .y files.
121           Otherwise, say N to use the provided pregenerated scanner/parser.
123 config USE_OPTION_TABLE
124         bool "Use CMOS for configuration values"
125         depends on HAVE_OPTION_TABLE
126         help
127           Enable this option if coreboot shall read options from the "CMOS"
128           NVRAM instead of using hard-coded values.
130 config STATIC_OPTION_TABLE
131         bool "Load default configuration values into CMOS on each boot"
132         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.
138 config COMPRESS_RAMSTAGE
139         bool "Compress ramstage with LZMA"
140         depends on HAVE_RAMSTAGE
141         # Default value set at the end of the file
142         help
143           Compress ramstage to save memory in the flash image.
145 config COMPRESS_PRERAM_STAGES
146         bool "Compress romstage and verstage with LZ4"
147         depends on !ARCH_X86 && (HAVE_ROMSTAGE || HAVE_VERSTAGE)
148         # Default value set at the end of the file
149         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.
156 config COMPRESS_BOOTBLOCK
157         bool
158         depends on HAVE_BOOTBLOCK
159         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
164           speed. Since using this option usually requires changes to the
165           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.)
169 config INCLUDE_CONFIG_FILE
170         bool "Include the coreboot .config file into the ROM image"
171         # Default value set at the end of the file
172         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.
177           Saying Y here will increase the image size by 2-3KB.
179           You can use the following command to easily list the options:
181             grep -a CONFIG_ coreboot.rom
183           Alternatively, you can also use cbfstool to print the image
184           contents (including the raw 'config' item we're looking for).
186           Example:
188             $ cbfstool coreboot.rom print
189             coreboot.rom: 4096 kB, bootblocksize 1008, romsize 4194304,
190                                                        offset 0x0
191             Alignment: 64 bytes
193             Name                           Offset     Type         Size
194             cmos_layout.bin                0x0        CMOS layout  1159
195             fallback/romstage              0x4c0      stage        339756
196             fallback/ramstage              0x53440    stage        186664
197             fallback/payload               0x80dc0    payload      51526
198             config                         0x8d740    raw          3324
199             (empty)                        0x8e480    null         3610440
201 config COLLECT_TIMESTAMPS
202         bool "Create a table of timestamps collected during boot"
203         default y if ARCH_X86
204         help
205           Make coreboot create a table of timer-ID/timer-value pairs to
206           allow measuring time spent at different phases of the boot process.
208 config TIMESTAMPS_ON_CONSOLE
209         bool "Print the timestamp values on the console"
210         default n
211         depends on COLLECT_TIMESTAMPS
212         help
213           Print the timestamps to the debug console if enabled at level info.
215 config USE_BLOBS
216         bool "Allow use of binary-only repository"
217         default y
218         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.
223 config 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.
234           Note that for some products, omitting PSP, SMU images, or other items
235           may result in a nonbooting coreboot.rom.
237 config 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
248           *****************************************************
249           PLEASE MAKE SURE YOU READ AND AGREE TO ALL TERMS IN
250           ABOVE LICENSE AGREEMENT BEFORE SELECTING THIS OPTION!
251           *****************************************************
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.
257 config COVERAGE
258         bool "Code coverage support"
259         depends on COMPILER_GCC
260         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.
265 config 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.
273 choice
274         prompt "Stage Cache for ACPI S3 resume"
275         default NO_STAGE_CACHE if !HAVE_ACPI_RESUME
276         default TSEG_STAGE_CACHE if SMM_TSEG
278 config NO_STAGE_CACHE
279         bool "Disabled"
280         help
281           Do not save any component in stage cache for resume path. On resume,
282           all components would be read back from CBFS again.
284 config TSEG_STAGE_CACHE
285         bool "TSEG"
286         depends on SMM_TSEG
287         help
288           The option enables stage cache support for platform. Platform
289           can stash copies of postcar, ramstage and raw runtime data
290           inside SMM TSEG, to be restored on S3 resume path.
292 config CBMEM_STAGE_CACHE
293         bool "CBMEM"
294         depends on !SMM_TSEG
295         help
296           The option enables stage cache support for platform. Platform
297           can stash copies of postcar, ramstage and raw runtime data
298           inside CBMEM.
300           While the approach is faster than reloading stages from boot media
301           it is also a possible attack scenario via which OS can possibly
302           circumvent SMM locks and SPI write protections.
304           If unsure, select 'N'
306 endchoice
308 config UPDATE_IMAGE
309         bool "Update existing coreboot.rom image"
310         help
311           If this option is enabled, no new coreboot.rom file
312           is created. Instead it is expected that there already
313           is a suitable file for further processing.
314           The bootblock will not be modified.
316           If unsure, select 'N'
318 config BOOTSPLASH_IMAGE
319         bool "Add a bootsplash image"
320         help
321           Select this option if you have a bootsplash image that you would
322           like to add to your ROM.
324           This will only add the image to the ROM. To actually run it check
325           options under 'Display' section.
327 config BOOTSPLASH_FILE
328         string "Bootsplash path and filename"
329         depends on BOOTSPLASH_IMAGE
330         # Default value set at the end of the file
331         help
332           The path and filename of the file to use as graphical bootsplash
333           screen. The file format has to be jpg.
335 config FW_CONFIG
336         bool "Firmware Configuration Probing"
337         default n
338         help
339           Enable support for probing devices with fw_config.  This is a simple
340           bitmask broken into fields and options for probing.
342 config FW_CONFIG_SOURCE_CBFS
343         bool "Obtain Firmware Configuration value from CBFS"
344         depends on FW_CONFIG
345         default n
346         help
347           With this option enabled coreboot will look for the 32bit firmware
348           configuration value in CBFS at the selected prefix with the file name
349           "fw_config".  This option will override other sources and allow the
350           local image to preempt the mainboard selected source.
352 config FW_CONFIG_SOURCE_CHROMEEC_CBI
353         bool "Obtain Firmware Configuration value from Google Chrome EC CBI"
354         depends on FW_CONFIG && EC_GOOGLE_CHROMEEC
355         default n
356         help
357           This option tells coreboot to read the firmware configuration value
358           from the Google Chrome Embedded Controller CBI interface.  This source
359           is not tried if FW_CONFIG_SOURCE_CBFS is enabled and the value was
360           found in CBFS.
362 config HAVE_RAMPAYLOAD
363         bool
365 config RAMPAYLOAD
366         bool "Enable coreboot flow without executing ramstage"
367         default y if ARCH_X86
368         depends on HAVE_RAMPAYLOAD
369         help
370           If this option is enabled, coreboot flow will skip ramstage
371           loading and execution of ramstage to load payload.
373           Instead it is expected to load payload from postcar stage itself.
375           In this flow coreboot will perform basic x86 initialization
376           (DRAM resource allocation), MTRR programming,
377           Skip PCI enumeration logic and only allocate BAR for fixed devices
378           (bootable devices, TPM over GSPI).
380 config HAVE_CONFIGURABLE_RAMSTAGE
381         bool
383 config CONFIGURABLE_RAMSTAGE
384         bool "Enable a configurable ramstage."
385         default y if ARCH_X86
386         depends on HAVE_CONFIGURABLE_RAMSTAGE
387         help
388           A configurable ramstage allows you to select which parts of the ramstage
389           to run. Currently, we can only select a minimal PCI scanning step.
390           The minimal PCI scanning will only check those parts that are enabled
391           in the devicetree.cb. By convention none of those devices should be bridges.
393 config MINIMAL_PCI_SCANNING
394         bool "Enable minimal PCI scanning"
395         depends on CONFIGURABLE_RAMSTAGE && PCI
396         help
397           If this option is enabled, coreboot will scan only PCI devices
398           marked as mandatory in devicetree.cb
399 endmenu
401 menu "Mainboard"
403 source "src/mainboard/Kconfig"
405 config DEVICETREE
406         string
407         default "devicetree.cb"
408         help
409           This symbol allows mainboards to select a different file under their
410           mainboard directory for the devicetree.cb file.  This allows the board
411           variants that need different devicetrees to be in the same directory.
413           Examples: "devicetree.variant.cb"
414                     "variant/devicetree.cb"
416 config OVERRIDE_DEVICETREE
417         string
418         default ""
419         help
420           This symbol allows variants to provide an override devicetree file to
421           override the registers and/or add new devices on top of the ones
422           provided by baseboard devicetree using CONFIG_DEVICETREE.
424           Examples: "devicetree.variant-override.cb"
425                     "variant/devicetree-override.cb"
427 config FMDFILE
428         string "fmap description file in fmd format"
429         default "src/mainboard/\$(CONFIG_MAINBOARD_DIR)/chromeos.fmd" if CHROMEOS
430         default ""
431         help
432           The build system creates a default FMAP from ROM_SIZE and CBFS_SIZE,
433           but in some cases more complex setups are required.
434           When an fmd is specified, it overrides the default format.
436 config CBFS_SIZE
437         hex "Size of CBFS filesystem in ROM"
438         depends on FMDFILE = ""
439         # Default value set at the end of the file
440         help
441           This is the part of the ROM actually managed by CBFS, located at the
442           end of the ROM (passed through cbfstool -o) on x86 and at at the start
443           of the ROM (passed through cbfstool -s) everywhere else. It defaults
444           to span the whole ROM on all but Intel systems that use an Intel Firmware
445           Descriptor.  It can be overridden to make coreboot live alongside other
446           components like ChromeOS's vboot/FMAP or Intel's IFD / ME / TXE
447           binaries. This symbol should only be used to generate a default FMAP and
448           is unused when a non-default fmd file is provided via CONFIG_FMDFILE.
450 endmenu
452 # load site-local kconfig to allow user specific defaults and overrides
453 source "site-local/Kconfig"
455 config SYSTEM_TYPE_LAPTOP
456         default n
457         bool
459 config SYSTEM_TYPE_TABLET
460         default n
461         bool
463 config SYSTEM_TYPE_DETACHABLE
464         default n
465         bool
467 config SYSTEM_TYPE_CONVERTIBLE
468         default n
469         bool
471 config CBFS_AUTOGEN_ATTRIBUTES
472         default n
473         bool
474         help
475           If this option is selected, every file in cbfs which has a constraint
476           regarding position or alignment will get an additional file attribute
477           which describes this constraint.
479 menu "Chipset"
481 comment "SoC"
482 source "src/soc/*/Kconfig"
483 comment "CPU"
484 source "src/cpu/Kconfig"
485 comment "Northbridge"
486 source "src/northbridge/*/*/Kconfig"
487 comment "Southbridge"
488 source "src/southbridge/*/*/Kconfig"
489 comment "Super I/O"
490 source "src/superio/*/*/Kconfig"
491 comment "Embedded Controllers"
492 source "src/ec/acpi/Kconfig"
493 source "src/ec/*/*/Kconfig"
495 source "src/southbridge/intel/common/firmware/Kconfig"
496 source "src/vendorcode/*/Kconfig"
498 source "src/arch/*/Kconfig"
500 endmenu
502 source "src/device/Kconfig"
504 menu "Generic Drivers"
505 source "src/drivers/*/Kconfig"
506 source "src/drivers/*/*/Kconfig"
507 source "src/commonlib/storage/Kconfig"
508 endmenu
510 menu "Security"
512 source "src/security/Kconfig"
513 source "src/vendorcode/eltan/security/Kconfig"
515 endmenu
517 source "src/acpi/Kconfig"
519 # This option is for the current boards/chipsets where SPI flash
520 # is not the boot device. Currently nearly all boards/chipsets assume
521 # SPI flash is the boot device.
522 config BOOT_DEVICE_NOT_SPI_FLASH
523         bool
524         default n
526 config BOOT_DEVICE_SPI_FLASH
527         bool
528         default y if !BOOT_DEVICE_NOT_SPI_FLASH
529         default n
531 config BOOT_DEVICE_MEMORY_MAPPED
532         bool
533         default y if ARCH_X86 && BOOT_DEVICE_SPI_FLASH
534         default n
535         help
536           Inform system if SPI is memory-mapped or not.
538 config BOOT_DEVICE_SUPPORTS_WRITES
539         bool
540         default n
541         help
542           Indicate that the platform has writable boot device
543           support.
545 config RTC
546         bool
547         default n
549 config HEAP_SIZE
550         hex
551         default 0x100000 if FLATTENED_DEVICE_TREE
552         default 0x4000
554 config STACK_SIZE
555         hex
556         default 0x1000 if ARCH_X86
557         default 0x0
559 config MAX_CPUS
560         int
561         default 1
563 source "src/console/Kconfig"
565 config HAVE_ACPI_RESUME
566         bool
567         default n
569 config DISABLE_ACPI_HIBERNATE
570         bool
571         default n
572         help
573           Removes S4 from the available sleepstates
575 config RESUME_PATH_SAME_AS_BOOT
576         bool
577         default y if ARCH_X86
578         depends on HAVE_ACPI_RESUME
579         help
580           This option indicates that when a system resumes it takes the
581           same path as a regular boot. e.g. an x86 system runs from the
582           reset vector at 0xfffffff0 on both resume and warm/cold boot.
584 config NO_MONOTONIC_TIMER
585         def_bool n
587 config HAVE_MONOTONIC_TIMER
588         bool
589         depends on !NO_MONOTONIC_TIMER
590         default y
591         help
592          The board/chipset provides a monotonic timer.
594 config GENERIC_UDELAY
595         bool
596         depends on HAVE_MONOTONIC_TIMER
597         default y if !ARCH_X86
598         help
599          The board/chipset uses a generic udelay function utilizing the
600          monotonic timer.
602 config TIMER_QUEUE
603         def_bool n
604         depends on HAVE_MONOTONIC_TIMER
605         help
606           Provide a timer queue for performing time-based callbacks.
608 config COOP_MULTITASKING
609         def_bool n
610         depends on TIMER_QUEUE && ARCH_X86
611         help
612           Cooperative multitasking allows callbacks to be multiplexed on the
613           main thread of ramstage. With this enabled it allows for multiple
614           execution paths to take place when they have udelay() calls within
615           their code.
617 config NUM_THREADS
618         int
619         default 4
620         depends on COOP_MULTITASKING
621         help
622           How many execution threads to cooperatively multitask with.
624 config HAVE_OPTION_TABLE
625         bool
626         default n
627         help
628           This variable specifies whether a given board has a cmos.layout
629           file containing NVRAM/CMOS bit definitions.
630           It defaults to 'n' but can be selected in mainboard/*/Kconfig.
632 config PCI_IO_CFG_EXT
633         bool
634         default n
636 config IOAPIC
637         bool
638         default n
640 config USE_WATCHDOG_ON_BOOT
641         bool
642         default n
644 config GFXUMA
645         bool
646         default n
647         help
648           Enable Unified Memory Architecture for graphics.
650 config HAVE_MP_TABLE
651         bool
652         help
653           This variable specifies whether a given board has MP table support.
654           It is usually set in mainboard/*/Kconfig.
655           Whether or not the MP table is actually generated by coreboot
656           is configurable by the user via GENERATE_MP_TABLE.
658 config HAVE_PIRQ_TABLE
659         bool
660         help
661           This variable specifies whether a given board has PIRQ table support.
662           It is usually set in mainboard/*/Kconfig.
663           Whether or not the PIRQ table is actually generated by coreboot
664           is configurable by the user via GENERATE_PIRQ_TABLE.
666 config ACPI_NHLT
667         bool
668         default n
669         help
670           Build support for NHLT (non HD Audio) ACPI table generation.
672 #These Options are here to avoid "undefined" warnings.
673 #The actual selection and help texts are in the following menu.
675 menu "System tables"
677 config GENERATE_MP_TABLE
678         prompt "Generate an MP table" if HAVE_MP_TABLE || DRIVERS_GENERIC_IOAPIC
679         bool
680         default HAVE_MP_TABLE || DRIVERS_GENERIC_IOAPIC
681         help
682           Generate an MP table (conforming to the Intel MultiProcessor
683           specification 1.4) for this board.
685           If unsure, say Y.
687 config GENERATE_PIRQ_TABLE
688         prompt "Generate a PIRQ table" if HAVE_PIRQ_TABLE
689         bool
690         default HAVE_PIRQ_TABLE
691         help
692           Generate a PIRQ table for this board.
694           If unsure, say Y.
696 config GENERATE_SMBIOS_TABLES
697         depends on ARCH_X86
698         bool "Generate SMBIOS tables"
699         default y
700         help
701           Generate SMBIOS tables for this board.
703           If unsure, say Y.
705 config SMBIOS_PROVIDED_BY_MOBO
706         bool
707         default n
709 config MAINBOARD_SERIAL_NUMBER
710         prompt "SMBIOS Serial Number" if !SMBIOS_PROVIDED_BY_MOBO
711         string
712         depends on GENERATE_SMBIOS_TABLES
713         default "123456789"
714         help
715           The Serial Number to store in SMBIOS structures.
717 config MAINBOARD_VERSION
718         prompt "SMBIOS Version Number" if !SMBIOS_PROVIDED_BY_MOBO
719         string
720         depends on GENERATE_SMBIOS_TABLES
721         default "1.0"
722         help
723           The Version Number to store in SMBIOS structures.
725 config MAINBOARD_SMBIOS_MANUFACTURER
726         prompt "SMBIOS Manufacturer" if !SMBIOS_PROVIDED_BY_MOBO
727         string
728         depends on GENERATE_SMBIOS_TABLES
729         default MAINBOARD_VENDOR
730         help
731           Override the default Manufacturer stored in SMBIOS structures.
733 config MAINBOARD_SMBIOS_PRODUCT_NAME
734         prompt "SMBIOS Product name" if !SMBIOS_PROVIDED_BY_MOBO
735         string
736         depends on GENERATE_SMBIOS_TABLES
737         default MAINBOARD_PART_NUMBER
738         help
739           Override the default Product name stored in SMBIOS structures.
741 config VPD_SMBIOS_VERSION
742         bool "Populates SMBIOS type 0 version from the VPD_RO variable 'firmware_version'"
743         default n
744         depends on VPD && GENERATE_SMBIOS_TABLES
745         help
746           Selecting this option will read firmware_version from
747           VPD_RO and override SMBIOS type 0 version. One special
748           scenario of using this feature is to assign a BIOS version
749           to a coreboot image without the need to rebuild from source.
751 endmenu
753 source "payloads/Kconfig"
755 menu "Debugging"
757 comment "CPU Debug Settings"
758 source "src/cpu/*/Kconfig.debug_cpu"
760 comment "BLOB Debug Settings"
761 source "src/drivers/intel/fsp*/Kconfig.debug_blob"
763 comment "General Debug Settings"
765 # TODO: Better help text and detailed instructions.
766 config GDB_STUB
767         bool "GDB debugging support"
768         default n
769         depends on DRIVERS_UART
770         help
771           If enabled, you will be able to set breakpoints for gdb debugging.
772           See src/arch/x86/lib/c_start.S for details.
774 config GDB_WAIT
775         bool "Wait for a GDB connection in the ramstage"
776         default n
777         depends on GDB_STUB
778         help
779           If enabled, coreboot will wait for a GDB connection in the ramstage.
782 config FATAL_ASSERTS
783         bool "Halt when hitting a BUG() or assertion error"
784         default n
785         help
786           If enabled, coreboot will call hlt() on a BUG() or failed ASSERT().
788 config HAVE_DEBUG_GPIO
789         bool
791 config DEBUG_GPIO
792         bool "Output verbose GPIO debug messages"
793         depends on HAVE_DEBUG_GPIO
795 config DEBUG_CBFS
796         bool "Output verbose CBFS debug messages"
797         default n
798         help
799           This option enables additional CBFS related debug messages.
801 config HAVE_DEBUG_RAM_SETUP
802         def_bool n
804 config DEBUG_RAM_SETUP
805         bool "Output verbose RAM init debug messages"
806         default n
807         depends on HAVE_DEBUG_RAM_SETUP
808         help
809           This option enables additional RAM init related debug messages.
810           It is recommended to enable this when debugging issues on your
811           board which might be RAM init related.
813           Note: This option will increase the size of the coreboot image.
815           If unsure, say N.
817 config DEBUG_PIRQ
818         bool "Check PIRQ table consistency"
819         default n
820         depends on GENERATE_PIRQ_TABLE
821         help
822           If unsure, say N.
824 config HAVE_DEBUG_SMBUS
825         def_bool n
827 config DEBUG_SMBUS
828         bool "Output verbose SMBus debug messages"
829         default n
830         depends on HAVE_DEBUG_SMBUS
831         help
832           This option enables additional SMBus (and SPD) debug messages.
834           Note: This option will increase the size of the coreboot image.
836           If unsure, say N.
838 config DEBUG_SMI
839         bool "Output verbose SMI debug messages"
840         default n
841         depends on HAVE_SMI_HANDLER
842         select SPI_FLASH_SMM if SPI_CONSOLE || CONSOLE_SPI_FLASH
843         help
844           This option enables additional SMI related debug messages.
846           Note: This option will increase the size of the coreboot image.
848           If unsure, say N.
850 config DEBUG_PERIODIC_SMI
851         bool "Trigger SMI periodically"
852         depends on DEBUG_SMI
854 # Only visible if debug level is DEBUG (7) or SPEW (8) as it does additional
855 # printk(BIOS_DEBUG, ...) calls.
856 config DEBUG_MALLOC
857         prompt "Output verbose malloc debug messages" if DEFAULT_CONSOLE_LOGLEVEL_7 || DEFAULT_CONSOLE_LOGLEVEL_8
858         bool
859         default n
860         help
861           This option enables additional malloc related debug messages.
863           Note: This option will increase the size of the coreboot image.
865           If unsure, say N.
867 config DEBUG_CONSOLE_INIT
868         bool "Debug console initialisation code"
869         default n
870         help
871           With this option printk()'s are attempted before console hardware
872           initialisation has been completed. Your mileage may vary.
874           Typically you will need to modify source in console_hw_init() such
875           that a working console appears before the one you want to debug.
877           If unsure, say N.
879 # Only visible if debug level is DEBUG (7) or SPEW (8) as it does additional
880 # printk(BIOS_DEBUG, ...) calls.
881 config REALMODE_DEBUG
882         prompt "Enable debug messages for option ROM execution" if DEFAULT_CONSOLE_LOGLEVEL_7 || DEFAULT_CONSOLE_LOGLEVEL_8
883         bool
884         default n
885         depends on PCI_OPTION_ROM_RUN_REALMODE
886         help
887           This option enables additional x86emu related debug messages.
889           Note: This option will increase the time to emulate a ROM.
891           If unsure, say N.
893 config X86EMU_DEBUG
894         bool "Output verbose x86emu debug messages"
895         default n
896         depends on PCI_OPTION_ROM_RUN_YABEL
897         help
898           This option enables additional x86emu related debug messages.
900           Note: This option will increase the size of the coreboot image.
902           If unsure, say N.
904 config X86EMU_DEBUG_JMP
905         bool "Trace JMP/RETF"
906         default n
907         depends on X86EMU_DEBUG
908         help
909           Print information about JMP and RETF opcodes from x86emu.
911           Note: This option will increase the size of the coreboot image.
913           If unsure, say N.
915 config X86EMU_DEBUG_TRACE
916         bool "Trace all opcodes"
917         default n
918         depends on X86EMU_DEBUG
919         help
920           Print _all_ opcodes that are executed by x86emu.
922           WARNING: This will produce a LOT of output and take a long time.
924           Note: This option will increase the size of the coreboot image.
926           If unsure, say N.
928 config X86EMU_DEBUG_PNP
929         bool "Log Plug&Play accesses"
930         default n
931         depends on X86EMU_DEBUG
932         help
933           Print Plug And Play accesses made by option ROMs.
935           Note: This option will increase the size of the coreboot image.
937           If unsure, say N.
939 config X86EMU_DEBUG_DISK
940         bool "Log Disk I/O"
941         default n
942         depends on X86EMU_DEBUG
943         help
944           Print Disk I/O related messages.
946           Note: This option will increase the size of the coreboot image.
948           If unsure, say N.
950 config X86EMU_DEBUG_PMM
951         bool "Log PMM"
952         default n
953         depends on X86EMU_DEBUG
954         help
955           Print messages related to POST Memory Manager (PMM).
957           Note: This option will increase the size of the coreboot image.
959           If unsure, say N.
962 config X86EMU_DEBUG_VBE
963         bool "Debug VESA BIOS Extensions"
964         default n
965         depends on X86EMU_DEBUG
966         help
967           Print messages related to VESA BIOS Extension (VBE) functions.
969           Note: This option will increase the size of the coreboot image.
971           If unsure, say N.
973 config X86EMU_DEBUG_INT10
974         bool "Redirect INT10 output to console"
975         default n
976         depends on X86EMU_DEBUG
977         help
978           Let INT10 (i.e. character output) calls print messages to debug output.
980           Note: This option will increase the size of the coreboot image.
982           If unsure, say N.
984 config X86EMU_DEBUG_INTERRUPTS
985         bool "Log intXX calls"
986         default n
987         depends on X86EMU_DEBUG
988         help
989           Print messages related to interrupt handling.
991           Note: This option will increase the size of the coreboot image.
993           If unsure, say N.
995 config X86EMU_DEBUG_CHECK_VMEM_ACCESS
996         bool "Log special memory accesses"
997         default n
998         depends on X86EMU_DEBUG
999         help
1000           Print messages related to accesses to certain areas of the virtual
1001           memory (e.g. BDA (BIOS Data Area) or interrupt vectors)
1003           Note: This option will increase the size of the coreboot image.
1005           If unsure, say N.
1007 config X86EMU_DEBUG_MEM
1008         bool "Log all memory accesses"
1009         default n
1010         depends on X86EMU_DEBUG
1011         help
1012           Print memory accesses made by option ROM.
1013           Note: This also includes accesses to fetch instructions.
1015           Note: This option will increase the size of the coreboot image.
1017           If unsure, say N.
1019 config X86EMU_DEBUG_IO
1020         bool "Log IO accesses"
1021         default n
1022         depends on X86EMU_DEBUG
1023         help
1024           Print I/O accesses made by option ROM.
1026           Note: This option will increase the size of the coreboot image.
1028           If unsure, say N.
1030 config X86EMU_DEBUG_TIMINGS
1031         bool "Output timing information"
1032         default n
1033         depends on X86EMU_DEBUG && HAVE_MONOTONIC_TIMER
1034         help
1035           Print timing information needed by i915tool.
1037           If unsure, say N.
1039 config DEBUG_SPI_FLASH
1040         bool "Output verbose SPI flash debug messages"
1041         default n
1042         depends on SPI_FLASH
1043         help
1044           This option enables additional SPI flash related debug messages.
1046 if SOUTHBRIDGE_INTEL_BD82X6X && DEFAULT_CONSOLE_LOGLEVEL_8
1047 # Only visible with the right southbridge and loglevel.
1048 config DEBUG_INTEL_ME
1049         bool "Verbose logging for Intel Management Engine"
1050         default n
1051         help
1052           Enable verbose logging for Intel Management Engine driver that
1053           is present on Intel 6-series chipsets.
1054 endif
1056 config TRACE
1057         bool "Trace function calls"
1058         default n
1059         help
1060           If enabled, every function will print information to console once
1061           the function is entered. The syntax is ~0xaaaabbbb(0xccccdddd)
1062           the 0xaaaabbbb is the actual function and 0xccccdddd is EIP
1063           of calling function. Please note some printk related functions
1064           are omitted from trace to have good looking console dumps.
1066 config DEBUG_COVERAGE
1067         bool "Debug code coverage"
1068         default n
1069         depends on COVERAGE
1070         help
1071           If enabled, the code coverage hooks in coreboot will output some
1072           information about the coverage data that is dumped.
1074 config DEBUG_BOOT_STATE
1075         bool "Debug boot state machine"
1076         default n
1077         help
1078           Control debugging of the boot state machine.  When selected displays
1079           the state boundaries in ramstage.
1081 config DEBUG_ADA_CODE
1082         bool "Compile debug code in Ada sources"
1083         default n
1084         help
1085           Add the compiler switch `-gnata` to compile code guarded by
1086           `pragma Debug`.
1088 config HAVE_EM100_SUPPORT
1089         bool "Platform can support the Dediprog EM100 SPI emulator"
1090         help
1091           This is enabled by platforms which can support using the EM100.
1093 config EM100
1094         bool "Configure image for EM100 usage"
1095         depends on HAVE_EM100_SUPPORT
1096         help
1097           The Dediprog EM100 SPI emulator allows fast loading of new SPI images
1098           over USB. However it only supports a maximum SPI clock of 20MHz and
1099           single data output. Enable this option to use a 20MHz SPI clock and
1100           disable "Dual Output Fast Read" Support.
1102           On AMD platforms this changes the SPI speed at run-time if the
1103           mainboard code supports this. On supported Intel platforms this works
1104           by changing the settings in the descriptor.bin file.
1106 endmenu
1109 ###############################################################################
1110 # Set variables with no prompt - these can be set anywhere, and putting at
1111 # the end of this file gives the most flexibility.
1113 source "src/lib/Kconfig"
1115 config WARNINGS_ARE_ERRORS
1116         bool
1117         default y
1119 # The four POWER_BUTTON_DEFAULT_ENABLE, POWER_BUTTON_DEFAULT_DISABLE,
1120 # POWER_BUTTON_FORCE_ENABLE and POWER_BUTTON_FORCE_DISABLE options are
1121 # mutually exclusive. One of these options must be selected in the
1122 # mainboard Kconfig if the chipset supports enabling and disabling of
1123 # the power button. Chipset code uses the ENABLE_POWER_BUTTON option set
1124 # in mainboard/Kconfig to know if the button should be enabled or not.
1126 config POWER_BUTTON_DEFAULT_ENABLE
1127         def_bool n
1128         help
1129           Select when the board has a power button which can optionally be
1130           disabled by the user.
1132 config POWER_BUTTON_DEFAULT_DISABLE
1133         def_bool n
1134         help
1135           Select when the board has a power button which can optionally be
1136           enabled by the user, e.g. when the board ships with a jumper over
1137           the power switch contacts.
1139 config POWER_BUTTON_FORCE_ENABLE
1140         def_bool n
1141         help
1142           Select when the board requires that the power button is always
1143           enabled.
1145 config POWER_BUTTON_FORCE_DISABLE
1146         def_bool n
1147         help
1148           Select when the board requires that the power button is always
1149           disabled, e.g. when it has been hardwired to ground.
1151 config POWER_BUTTON_IS_OPTIONAL
1152         bool
1153         default y if POWER_BUTTON_DEFAULT_ENABLE || POWER_BUTTON_DEFAULT_DISABLE
1154         default n if !(POWER_BUTTON_DEFAULT_ENABLE || POWER_BUTTON_DEFAULT_DISABLE)
1155         help
1156           Internal option that controls ENABLE_POWER_BUTTON visibility.
1158 config REG_SCRIPT
1159         bool
1160         default n
1161         help
1162           Internal option that controls whether we compile in register scripts.
1164 config MAX_REBOOT_CNT
1165         int
1166         default 3
1167         help
1168           Internal option that sets the maximum number of bootblock executions allowed
1169           with the normal image enabled before assuming the normal image is defective
1170           and switching to the fallback image.
1172 config UNCOMPRESSED_RAMSTAGE
1173         bool
1175 config NO_XIP_EARLY_STAGES
1176         bool
1177         default n if ARCH_X86
1178         default y
1179         help
1180           Identify if early stages are eXecute-In-Place(XIP).
1182 config EARLY_CBMEM_LIST
1183         bool
1184         default n
1185         help
1186           Enable display of CBMEM during romstage and postcar.
1188 config RELOCATABLE_MODULES
1189         bool
1190         help
1191           If RELOCATABLE_MODULES is selected then support is enabled for
1192           building relocatable modules in the RAM stage. Those modules can be
1193           loaded anywhere and all the relocations are handled automatically.
1195 config GENERIC_GPIO_LIB
1196         bool
1197         help
1198           If enabled, compile the generic GPIO library. A "generic" GPIO
1199           implies configurability usually found on SoCs, particularly the
1200           ability to control internal pull resistors.
1202 config BOOTBLOCK_CUSTOM
1203         # To be selected by arch, SoC or mainboard if it does not want use the normal
1204         # src/lib/bootblock.c#main() C entry point.
1205         bool
1207 config MEMLAYOUT_LD_FILE
1208         string
1209         default "src/mainboard/\$(CONFIG_MAINBOARD_DIR)/memlayout.ld"
1210         help
1211           This variable allows SoC/mainboard to supply in a custom linker file
1212           if required. This determines the linker file used for all the stages
1213           (bootblock, romstage, verstage, ramstage, postcar) in
1214           src/arch/${ARCH}/Makefile.inc.
1216 ###############################################################################
1217 # Set default values for symbols created before mainboards.  This allows the
1218 # option to be displayed in the general menu, but the default to be loaded in
1219 # the mainboard if desired.
1220 config COMPRESS_RAMSTAGE
1221         default y if !UNCOMPRESSED_RAMSTAGE
1223 config COMPRESS_PRERAM_STAGES
1224         depends on !ARCH_X86
1225         default y
1227 config INCLUDE_CONFIG_FILE
1228         default y
1230 config BOOTSPLASH_FILE
1231         depends on BOOTSPLASH_IMAGE
1232         default "bootsplash.jpg"
1234 config CBFS_SIZE
1235         default ROM_SIZE
1237 config HAVE_BOOTBLOCK
1238         bool
1239         default y
1241 config HAVE_VERSTAGE
1242         bool
1243         depends on VBOOT_SEPARATE_VERSTAGE
1244         default y
1246 config HAVE_ROMSTAGE
1247         bool
1248         default y
1250 config HAVE_RAMSTAGE
1251         bool
1252         default n if RAMPAYLOAD
1253         default y