From a406119e9b6908a59eed4d1d9cba417642b13e73 Mon Sep 17 00:00:00 2001 From: Alexandru Gagniuc Date: Wed, 4 Dec 2013 21:57:15 -0600 Subject: arch/x86: Do not run UPDATE-FIT if we don't include microcode The original intention was to only run UPDATE_FIT when a microcode file was included in CBFS. This happens when either CPU_MICROCODE_CBFS_GENERATE or CPU_MICROCODE_CBFS_EXTERNAL is selected, however, the makefile checked that CPU_MICROCODE_IN_CBFS was selected instead. The end result was that on hasswell, the UPDATE-FIT step was always run, even when no microcode was included, generating a build error. Instead, introduce a new variable which tells if a microcode update is added in CBFS during the build. Change-Id: I28638912ed6f77761ef8a584f7636dc907b7a9b7 Signed-off-by: Alexandru Gagniuc Reviewed-on: http://review.coreboot.org/4480 Tested-by: build bot (Jenkins) Reviewed-by: Aaron Durbin --- src/arch/x86/Makefile.inc | 2 +- src/cpu/Kconfig | 11 +++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/src/arch/x86/Makefile.inc b/src/arch/x86/Makefile.inc index 2e54645150..2ade820440 100644 --- a/src/arch/x86/Makefile.inc +++ b/src/arch/x86/Makefile.inc @@ -140,7 +140,7 @@ ifeq ($(CONFIG_PXE_ROM),y) $(CBFSTOOL) $@.tmp add -f $(CONFIG_PXE_ROM_FILE) -n pci$(CONFIG_PXE_ROM_ID).rom -t raw endif ifeq ($(CONFIG_CPU_INTEL_FIRMWARE_INTERFACE_TABLE),y) -ifeq ($(CONFIG_CPU_MICROCODE_IN_CBFS),y) +ifeq ($(CONFIG_CPU_MICROCODE_ADDED_DURING_BUILD),y) @printf " UPDATE-FIT \n" $(CBFSTOOL) $@.tmp update-fit -n cpu_microcode_blob.bin -x $(CONFIG_CPU_INTEL_NUM_FIT_ENTRIES) endif diff --git a/src/cpu/Kconfig b/src/cpu/Kconfig index 7317bccbfd..6c118b7908 100644 --- a/src/cpu/Kconfig +++ b/src/cpu/Kconfig @@ -77,6 +77,17 @@ config CPU_MICROCODE_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 CPU_MICROCODE_IN_CBFS -- cgit v1.2.3