1## SPDX-License-Identifier: GPL-2.0-only 2 3# Warning: This file is included whether or not the if is here. 4# The if controls how the evaluation occurs. 5# (See also src/Kconfig) 6 7source "src/cpu/*/Kconfig" 8 9if ARCH_X86 10 11config DCACHE_RAM_BASE 12 hex 13 14config DCACHE_RAM_SIZE 15 hex 16 17config DCACHE_BSP_STACK_SIZE 18 hex 19 20config EARLYRAM_BSP_STACK_SIZE 21 depends on RESET_VECTOR_IN_RAM 22 hex 23 24config SMP 25 bool 26 default y if MAX_CPUS != 1 27 default n 28 help 29 This option is used to enable certain functions to make coreboot 30 work correctly on symmetric multi processor (SMP) systems. 31 32config SSE 33 bool 34 help 35 Select SSE in your socket or model Kconfig if your CPU has SSE 36 streaming SIMD instructions. 37 38config SSE2 39 bool 40 default n 41 select SSE 42 help 43 Select SSE2 in your socket or model Kconfig if your CPU has SSE2 44 streaming SIMD instructions. Some parts of coreboot can be built 45 with more efficient code if SSE2 instructions are available. 46 47endif # ARCH_X86 48 49config SUPPORT_CPU_UCODE_IN_CBFS 50 bool 51 default n 52 53config USES_MICROCODE_HEADER_FILES 54 def_bool n 55 select SUPPORT_CPU_UCODE_IN_CBFS 56 help 57 This is selected by a board or chipset to set the default for the 58 microcode source choice to a list of external microcode headers 59 60config MICROCODE_BLOB_NOT_IN_BLOB_REPO 61 bool 62 help 63 Selected by platforms that don't maintain microcode updates in the 64 blobs repo yet. 65 66config MICROCODE_BLOB_NOT_HOOKED_UP 67 bool 68 help 69 Selected by platforms that haven't hooked microcode updates up yet. 70 71config MICROCODE_BLOB_UNDISCLOSED 72 bool 73 help 74 Selected by work-in-progress platforms that don't have microcode 75 updates available yet. 76 77config USE_CPU_MICROCODE_CBFS_BINS 78 bool 79 help 80 Automatically selected below to add binary microcode files 81 (`cpu_microcode_bins` in the makefiles) to CBFS. 82 83choice 84 prompt "Include CPU microcode in CBFS" if ARCH_X86 85 default CPU_MICROCODE_CBFS_EXTERNAL_HEADER if USES_MICROCODE_HEADER_FILES 86 default CPU_MICROCODE_CBFS_NONE if MICROCODE_BLOB_NOT_IN_BLOB_REPO || \ 87 MICROCODE_BLOB_NOT_HOOKED_UP || \ 88 MICROCODE_BLOB_UNDISCLOSED 89 depends on SUPPORT_CPU_UCODE_IN_CBFS && !CPU_INTEL_MICROCODE_CBFS_SPLIT_BINS 90 91config CPU_MICROCODE_CBFS_DEFAULT_BINS 92 bool "Generate from tree" 93 select USE_CPU_MICROCODE_CBFS_BINS 94 depends on !(MICROCODE_BLOB_NOT_IN_BLOB_REPO || \ 95 MICROCODE_BLOB_NOT_HOOKED_UP || \ 96 MICROCODE_BLOB_UNDISCLOSED) 97 help 98 Select this option if you want microcode updates to be assembled when 99 building coreboot and included in the final image as a separate CBFS 100 file. Microcode will not be hard-coded into ramstage. 101 102 The microcode file may be removed from the ROM image at a later 103 time with cbfstool, if desired. 104 105 If unsure, select this option. 106 107config CPU_MICROCODE_CBFS_EXTERNAL_BINS 108 bool "Include external microcode binary" 109 select USE_CPU_MICROCODE_CBFS_BINS 110 help 111 Select this option if you want to include external binary files 112 in the CPUs native format. They will be included as a separate 113 file in CBFS. 114 115 A word of caution: only select this option if you are sure the 116 microcode that you have is newer than the microcode shipping with 117 coreboot. 118 119 The microcode file may be removed from the ROM image at a later 120 time with cbfstool, if desired. 121 122 If unsure, and applicable, select "Generate from tree" 123 124config CPU_MICROCODE_CBFS_EXTERNAL_HEADER 125 bool "Include external microcode header files" 126 help 127 Select this option if you want to include external c header files 128 containing the CPU microcode. This will be included as a separate 129 file in CBFS. 130 131 A word of caution: only select this option if you are sure the 132 microcode that you have is newer than the microcode shipping with 133 coreboot. 134 135 The microcode file may be removed from the ROM image at a later 136 time with cbfstool, if desired. 137 138 If unsure, and applicable, select "Generate from tree" 139 140config CPU_MICROCODE_CBFS_NONE 141 bool "Do not include microcode updates" 142 help 143 Select this option if you do not want CPU microcode included in CBFS. 144 145 Microcode may be added to the ROM image at a later time with cbfstool, 146 if desired. 147 148 If unsure, and applicable, select "Generate from tree" 149 150 The GOOD: 151 Microcode updates intend to solve issues that have been discovered 152 after CPU production. The expected effect is that systems work as 153 intended with the updated microcode, but we have also seen cases where 154 issues were solved by not applying microcode updates. 155 156 The BAD: 157 Note that some operating system include these same microcode patches, 158 so you may need to also disable microcode updates in your operating 159 system for this option to have an effect. 160 161 The UGLY: 162 A word of CAUTION: some CPUs depend on microcode updates to function 163 correctly. Not updating the microcode may leave the CPU operating at 164 less than optimal performance, or may cause outright hangups. 165 There are CPUs where coreboot cannot properly initialize the CPU 166 without microcode updates 167 For example, if running with the factory microcode, some Intel 168 SandyBridge CPUs may hang when enabling CAR, or some VIA Nano CPUs 169 will hang when changing the frequency. 170 171 Make sure you have a way of flashing the ROM externally before 172 selecting this option. 173 174endchoice 175 176config CPU_MICROCODE_HEADER_FILES 177 string "List of space separated microcode header files with the path" 178 depends on CPU_MICROCODE_CBFS_EXTERNAL_HEADER 179 help 180 A list of one or more microcode header files with path from the 181 coreboot directory. These should be separated by spaces. 182 183config CPU_UCODE_BINARIES 184 string "Microcode binary path and filename" 185 depends on CPU_MICROCODE_CBFS_EXTERNAL_BINS 186 default "" 187 help 188 Some platforms have microcode in the blobs directory, and these can 189 be hardcoded in the makefiles. For platforms with microcode 190 binaries that aren't in the makefile, set this option to pull 191 in the microcode. 192 193 This should contain the full path of the file for one or more 194 microcode binary files to include, separated by spaces. 195 196 If unsure, leave this blank. 197