f64111b486
Add minimal support needed to get a bootblock capable of initialising a serial console. Change-Id: I50dd85544549baf9c5ea0aa3b4296972136c02a4 Signed-off-by: Alexandru Gagniuc <mr.nuke.me@gmail.com> Reviewed-on: http://review.coreboot.org/4549 Tested-by: build bot (Jenkins) Reviewed-by: David Hendricks <dhendrix@chromium.org> Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
185 lines
5.6 KiB
Text
185 lines
5.6 KiB
Text
# Warning: This file is included whether or not the if is here.
|
|
# The if controls how the evaluation occurs.
|
|
# (See also src/Kconfig)
|
|
if ARCH_ARMV7
|
|
|
|
source src/cpu/allwinner/Kconfig
|
|
source src/cpu/armltd/Kconfig
|
|
source src/cpu/samsung/Kconfig
|
|
source src/cpu/ti/Kconfig
|
|
|
|
endif # ARCH_ARM
|
|
|
|
if ARCH_X86
|
|
|
|
source src/cpu/amd/Kconfig
|
|
source src/cpu/dmp/Kconfig
|
|
source src/cpu/intel/Kconfig
|
|
source src/cpu/via/Kconfig
|
|
source src/cpu/qemu-x86/Kconfig
|
|
source src/cpu/x86/Kconfig
|
|
|
|
config CACHE_AS_RAM
|
|
bool
|
|
default !ROMCC
|
|
|
|
config DCACHE_RAM_BASE
|
|
hex
|
|
|
|
config DCACHE_RAM_SIZE
|
|
hex
|
|
|
|
# FIXME MAX_PHYSICAL_CPUS should move to AMD specific code, or better
|
|
# yet be dropped completely.
|
|
config MAX_PHYSICAL_CPUS
|
|
int
|
|
depends on CPU_AMD_MODEL_10XXX || CPU_AMD_MODEL_FXX || CPU_AMD_AGESA
|
|
default 1
|
|
|
|
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 AP_SIPI_VECTOR
|
|
hex
|
|
default 0xfffff000
|
|
help
|
|
This must equal address of ap_sipi_vector from bootblock build.
|
|
|
|
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
|
|
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
|
|
|
|
# This variable is used to determine if we add CPU microcode to CBFS during the
|
|
# build. Microcode can be added manually afterwards, or removed. As a result,
|
|
# code should not rely on this to tell if a microcode update is present or not,
|
|
# and should instead search CBFS.
|
|
# This variable is useful in determining if certain automated post-processing
|
|
# steps can be performed right after the build, such as automatically adding
|
|
# a firmware interface table.
|
|
config CPU_MICROCODE_ADDED_DURING_BUILD
|
|
bool
|
|
default y if CPU_MICROCODE_CBFS_GENERATE || CPU_MICROCODE_CBFS_EXTERNAL
|
|
|
|
choice
|
|
prompt "Include CPU microcode in CBFS" if ARCH_X86
|
|
default CPU_MICROCODE_CBFS_GENERATE if SUPPORT_CPU_UCODE_IN_CBFS
|
|
default CPU_MICROCODE_CBFS_NONE if !SUPPORT_CPU_UCODE_IN_CBFS
|
|
|
|
config CPU_MICROCODE_CBFS_GENERATE
|
|
bool "Generate from tree"
|
|
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
|
|
bool "Include external microcode file"
|
|
help
|
|
Select this option if you want to include an external file 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, 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.
|
|
Note that for some CPUs, the microcode is hard-coded into the source
|
|
tree and is not loaded from CBFS. In this case, microcode will still
|
|
be updated. There is a push to move all microcode to CBFS, but this
|
|
change is not implemented for all CPUs.
|
|
|
|
This option currently applies to:
|
|
- Intel SandyBridge/IvyBridge
|
|
- VIA Nano
|
|
|
|
Microcode may be added to the ROM image at a later time with cbfstool,
|
|
if desired.
|
|
|
|
If unsure, 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_FILE
|
|
string "Path and filename of CPU microcode"
|
|
depends on CPU_MICROCODE_CBFS_EXTERNAL
|
|
default "cpu_microcode.bin"
|
|
help
|
|
The path and filename of the file containing the CPU microcode.
|
|
|
|
config CPU_MICROCODE_CBFS_LOC
|
|
hex "Microcode address in CBFS"
|
|
depends on CPU_MICROCODE_IN_CBFS
|
|
default 0
|
|
|
|
config CPU_MICROCODE_CBFS_LEN
|
|
hex "Microcode length in CBFS"
|
|
depends on CPU_MICROCODE_IN_CBFS
|
|
default 0xC000
|
|
help
|
|
The microcode needs a specific length to get correctly
|
|
detected and loaded by all CPUs.
|