cpu: Add a way to use microcode .h files back to the build

The build was changed to remove usage of microcode .h files when
all of the .h files were converted to binary.  This is still
needed for some builds when microcode binaries aren't in the
blobs tree.

Change-Id: Ia323c90efe8aa0b8799fc5cce6197509e466a105
Signed-off-by: Martin Roth <martinroth@google.com>
Reviewed-on: http://review.coreboot.org/12333
Tested-by: Raptor Engineering Automated Test Stand <noreply@raptorengineeringinc.com>
Reviewed-by: Timothy Pearson <tpearson@raptorengineeringinc.com>
Tested-by: build bot (Jenkins)
Reviewed-by: Werner Zeh <werner.zeh@siemens.com>
This commit is contained in:
Martin Roth 2015-11-05 08:03:45 -07:00
parent 295358454a
commit 4c502697ee
2 changed files with 41 additions and 1 deletions

View file

@ -67,8 +67,16 @@ config SUPPORT_CPU_UCODE_IN_CBFS
bool bool
default n 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
choice choice
prompt "Include CPU microcode in CBFS" if ARCH_X86 prompt "Include CPU microcode in CBFS" if ARCH_X86
default CPU_MICROCODE_CBFS_EXTERNAL_HEADER if USES_MICROCODE_HEADER_FILES
default CPU_MICROCODE_CBFS_GENERATE if SUPPORT_CPU_UCODE_IN_CBFS && USE_BLOBS default CPU_MICROCODE_CBFS_GENERATE if SUPPORT_CPU_UCODE_IN_CBFS && USE_BLOBS
default CPU_MICROCODE_CBFS_NONE if !SUPPORT_CPU_UCODE_IN_CBFS default CPU_MICROCODE_CBFS_NONE if !SUPPORT_CPU_UCODE_IN_CBFS
@ -84,6 +92,22 @@ config CPU_MICROCODE_CBFS_GENERATE
If unsure, select this option. If unsure, select this option.
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, select "Generate from tree"
config CPU_MICROCODE_CBFS_NONE config CPU_MICROCODE_CBFS_NONE
bool "Do not include microcode updates" bool "Do not include microcode updates"
help help
@ -135,3 +159,10 @@ config CPU_MICROCODE_MULTIPLE_FILES
help help
Select this option to install separate microcode container files into Select this option to install separate microcode container files into
CBFS instead of using the traditional monolithic microcode file format. 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.

View file

@ -21,6 +21,15 @@ ifneq ($(CONFIG_CPU_MICROCODE_MULTIPLE_FILES), y)
cbfs-files-$(CONFIG_CPU_MICROCODE_CBFS_GENERATE) += cpu_microcode_blob.bin cbfs-files-$(CONFIG_CPU_MICROCODE_CBFS_GENERATE) += cpu_microcode_blob.bin
endif endif
ifeq ($(CONFIG_CPU_MICROCODE_CBFS_EXTERNAL_HEADER),y)
cbfs-files-y += cpu_microcode_blob.bin
cpu_microcode_blob.bin-file = $(objgenerated)/microcode.bin
$(objgenerated)/microcode.bin:
echo " util/scripts/ucode_h_to_bin.sh $(objgenerated)/microcode.bin \"$(CONFIG_CPU_MICROCODE_HEADER_FILES)\""
util/scripts/ucode_h_to_bin.sh $(objgenerated)/microcode.bin $(CONFIG_CPU_MICROCODE_HEADER_FILES)
endif
# We just mash all microcode binaries together into one binary to rule them all. # We just mash all microcode binaries together into one binary to rule them all.
# This approach assumes that the microcode binaries are properly padded, and # This approach assumes that the microcode binaries are properly padded, and
# their headers specify the correct size. This works fairly well on isolatied # their headers specify the correct size. This works fairly well on isolatied
@ -33,7 +42,7 @@ $(obj)/cpu_microcode_blob.bin: $$(cpu_microcode_bins)
@echo $(cpu_microcode_bins) @echo $(cpu_microcode_bins)
cat /dev/null $+ > $@ cat /dev/null $+ > $@
cpu_microcode_blob.bin-file := $(obj)/cpu_microcode_blob.bin cpu_microcode_blob.bin-file ?= $(obj)/cpu_microcode_blob.bin
cpu_microcode_blob.bin-type := microcode cpu_microcode_blob.bin-type := microcode
ifneq ($(CONFIG_CPU_MICROCODE_CBFS_LOC),) ifneq ($(CONFIG_CPU_MICROCODE_CBFS_LOC),)