| # 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 MMX |
| bool |
| help |
| Select MMX in your socket or model Kconfig if your CPU has MMX |
| streaming SIMD instructions. |
| |
| 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 |
| |
| 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 |
| depends on !CPU_MICROCODE_MULTIPLE_FILES |
| 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" |
| depends on !CPU_MICROCODE_MULTIPLE_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_MULTIPLE_FILES |
| bool |
| help |
| Select this option to install separate microcode container files into |
| CBFS instead of using the traditional monolithic microcode file format. |
| |
| 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. |