215 lines
6.5 KiB
Plaintext
215 lines
6.5 KiB
Plaintext
# 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 CAR_GLOBAL_MIGRATION
|
|
bool
|
|
default n
|
|
help
|
|
This option is selected if there is need to migrate CAR globals.
|
|
All stages which use CAR globals can directly access the variables
|
|
from their linked addresses.
|
|
|
|
config DCACHE_RAM_BASE
|
|
hex
|
|
|
|
config DCACHE_RAM_SIZE
|
|
hex
|
|
|
|
config DCACHE_BSP_STACK_SIZE
|
|
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. ROMCC can build more efficient
|
|
code if it can spill to MMX registers.
|
|
|
|
config SSE
|
|
bool
|
|
help
|
|
Select SSE in your socket or model Kconfig if your CPU has SSE
|
|
streaming SIMD instructions. ROMCC can build more efficient
|
|
code if it can spill to SSE (aka XMM) registers.
|
|
|
|
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.
|