summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAlexandru Gagniuc <mr.nuke.me@gmail.com>2013-12-04 21:57:15 -0600
committerAlexandru Gagniuc <mr.nuke.me@gmail.com>2013-12-06 23:39:50 +0100
commita406119e9b6908a59eed4d1d9cba417642b13e73 (patch)
tree4e8347526e7e9ba393af489be8a4c954bb7db3d2 /src
parent8232bc2cdd47666a51cd3bc5beea608f13b8e9fa (diff)
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 <mr.nuke.me@gmail.com> Reviewed-on: http://review.coreboot.org/4480 Tested-by: build bot (Jenkins) Reviewed-by: Aaron Durbin <adurbin@google.com>
Diffstat (limited to 'src')
-rw-r--r--src/arch/x86/Makefile.inc2
-rw-r--r--src/cpu/Kconfig11
2 files changed, 12 insertions, 1 deletions
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