| ## SPDX-License-Identifier: GPL-2.0-only | |
| # Warning: This file is included whether or not the if is here. | |
| # The if controls how the evaluation occurs. | |
| # (See also src/Kconfig) | |
| source "src/cpu/*/Kconfig" | |
| if ARCH_X86 | |
| config DCACHE_RAM_BASE | |
| hex | |
| config DCACHE_RAM_SIZE | |
| hex | |
| config DCACHE_BSP_STACK_SIZE | |
| hex | |
| config EARLYRAM_BSP_STACK_SIZE | |
| depends on RESET_VECTOR_IN_RAM | |
| hex | |
| config SMP | |
| bool | |
| default y if MAX_CPUS != 1 | |
| default n | |
| help | |
| This option is used to enable certain functions to make coreboot | |
| work correctly on symmetric multi processor (SMP) systems. | |
| config SSE | |
| bool | |
| help | |
| Select SSE in your socket or model Kconfig if your CPU has SSE | |
| streaming SIMD instructions. | |
| config SSE2 | |
| bool | |
| default n | |
| select SSE | |
| help | |
| Select SSE2 in your socket or model Kconfig if your CPU has SSE2 | |
| streaming SIMD instructions. Some parts of coreboot can be built | |
| with more efficient code if SSE2 instructions are available. | |
| endif # ARCH_X86 | |
| config SUPPORT_CPU_UCODE_IN_CBFS | |
| bool | |
| default n | |
| config USES_MICROCODE_HEADER_FILES | |
| def_bool n | |
| select SUPPORT_CPU_UCODE_IN_CBFS | |
| help | |
| This is selected by a board or chipset to set the default for the | |
| microcode source choice to a list of external microcode headers | |
| config MICROCODE_BLOB_NOT_IN_BLOB_REPO | |
| bool | |
| help | |
| Selected by platforms that don't maintain microcode updates in the | |
| blobs repo yet. | |
| config MICROCODE_BLOB_NOT_HOOKED_UP | |
| bool | |
| help | |
| Selected by platforms that haven't hooked microcode updates up yet. | |
| config MICROCODE_BLOB_UNDISCLOSED | |
| bool | |
| help | |
| Selected by work-in-progress platforms that don't have microcode | |
| updates available yet. | |
| config USE_CPU_MICROCODE_CBFS_BINS | |
| bool | |
| help | |
| Automatically selected below to add binary microcode files | |
| (`cpu_microcode_bins` in the makefiles) to CBFS. | |
| choice | |
| prompt "Include CPU microcode in CBFS" if ARCH_X86 | |
| default CPU_MICROCODE_CBFS_EXTERNAL_HEADER if USES_MICROCODE_HEADER_FILES | |
| default CPU_MICROCODE_CBFS_NONE if MICROCODE_BLOB_NOT_IN_BLOB_REPO || \ | |
| MICROCODE_BLOB_NOT_HOOKED_UP || \ | |
| MICROCODE_BLOB_UNDISCLOSED | |
| depends on SUPPORT_CPU_UCODE_IN_CBFS && !CPU_INTEL_MICROCODE_CBFS_SPLIT_BINS | |
| config CPU_MICROCODE_CBFS_DEFAULT_BINS | |
| bool "Generate from tree" | |
| select USE_CPU_MICROCODE_CBFS_BINS | |
| depends on !(MICROCODE_BLOB_NOT_IN_BLOB_REPO || \ | |
| MICROCODE_BLOB_NOT_HOOKED_UP || \ | |
| MICROCODE_BLOB_UNDISCLOSED) | |
| help | |
| Select this option if you want microcode updates to be assembled when | |
| building coreboot and included in the final image as a separate CBFS | |
| file. Microcode will not be hard-coded into ramstage. | |
| The microcode file may be removed from the ROM image at a later | |
| time with cbfstool, if desired. | |
| If unsure, select this option. | |
| config CPU_MICROCODE_CBFS_EXTERNAL_BINS | |
| bool "Include external microcode binary" | |
| select USE_CPU_MICROCODE_CBFS_BINS | |
| help | |
| Select this option if you want to include external binary files | |
| in the CPUs native format. They will be included as a separate | |
| file in CBFS. | |
| A word of caution: only select this option if you are sure the | |
| microcode that you have is newer than the microcode shipping with | |
| coreboot. | |
| The microcode file may be removed from the ROM image at a later | |
| time with cbfstool, if desired. | |
| If unsure, and applicable, select "Generate from tree" | |
| config CPU_MICROCODE_CBFS_EXTERNAL_HEADER | |
| bool "Include external microcode header files" | |
| help | |
| Select this option if you want to include external c header files | |
| containing the CPU microcode. This will be included as a separate | |
| file in CBFS. | |
| A word of caution: only select this option if you are sure the | |
| microcode that you have is newer than the microcode shipping with | |
| coreboot. | |
| The microcode file may be removed from the ROM image at a later | |
| time with cbfstool, if desired. | |
| If unsure, and applicable, select "Generate from tree" | |
| config CPU_MICROCODE_CBFS_NONE | |
| bool "Do not include microcode updates" | |
| help | |
| Select this option if you do not want CPU microcode included in CBFS. | |
| Microcode may be added to the ROM image at a later time with cbfstool, | |
| if desired. | |
| If unsure, and applicable, select "Generate from tree" | |
| The GOOD: | |
| Microcode updates intend to solve issues that have been discovered | |
| after CPU production. The expected effect is that systems work as | |
| intended with the updated microcode, but we have also seen cases where | |
| issues were solved by not applying microcode updates. | |
| The BAD: | |
| Note that some operating system include these same microcode patches, | |
| so you may need to also disable microcode updates in your operating | |
| system for this option to have an effect. | |
| The UGLY: | |
| A word of CAUTION: some CPUs depend on microcode updates to function | |
| correctly. Not updating the microcode may leave the CPU operating at | |
| less than optimal performance, or may cause outright hangups. | |
| There are CPUs where coreboot cannot properly initialize the CPU | |
| without microcode updates | |
| For example, if running with the factory microcode, some Intel | |
| SandyBridge CPUs may hang when enabling CAR, or some VIA Nano CPUs | |
| will hang when changing the frequency. | |
| Make sure you have a way of flashing the ROM externally before | |
| selecting this option. | |
| endchoice | |
| config CPU_MICROCODE_HEADER_FILES | |
| string "List of space separated microcode header files with the path" | |
| depends on CPU_MICROCODE_CBFS_EXTERNAL_HEADER | |
| help | |
| A list of one or more microcode header files with path from the | |
| coreboot directory. These should be separated by spaces. | |
| config CPU_UCODE_BINARIES | |
| string "Microcode binary path and filename" | |
| depends on CPU_MICROCODE_CBFS_EXTERNAL_BINS | |
| default "" | |
| help | |
| Some platforms have microcode in the blobs directory, and these can | |
| be hardcoded in the makefiles. For platforms with microcode | |
| binaries that aren't in the makefile, set this option to pull | |
| in the microcode. | |
| This should contain the full path of the file for one or more | |
| microcode binary files to include, separated by spaces. | |
| If unsure, leave this blank. |