From d2cc87f0e1b85d4f769e9d0c0726c342f5f28f03 Mon Sep 17 00:00:00 2001 From: Martin Roth Date: Thu, 22 Dec 2016 10:29:20 -0700 Subject: [PATCH] UPSTREAM: Microcode: Show a useful warning when microcode bins are missing Because the binary repo is disabled by default, we get frequent questions about why the build failed, relating to microcode in the binary repository. - Show an error saying that the file is missing instead of the typical make error of no rule to build the file. - Show a note encouraging users to try enabling the binary repo if it's not enabled. BUG=None BRANCH=None TEST=None Signed-off-by: Martin Roth Reviewed-on: https://review.coreboot.org/17940 Tested-by: build bot (Jenkins) Reviewed-by: Paul Menzel Reviewed-by: Nico Huber Change-Id: If4148c18cfb781ed2932bd2ae4a289b621afdebf Reviewed-on: https://chromium-review.googlesource.com/425259 Commit-Ready: Furquan Shaikh Tested-by: Furquan Shaikh Reviewed-by: Aaron Durbin --- src/cpu/Makefile.inc | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/cpu/Makefile.inc b/src/cpu/Makefile.inc index 4ac68120cf..f74e354f0a 100644 --- a/src/cpu/Makefile.inc +++ b/src/cpu/Makefile.inc @@ -37,7 +37,19 @@ endif # updates are wrapped in a container, like AMD's microcode update container. If # there is only one microcode binary (i.e. one container), then we don't have # this issue, and this rule will continue to work. -$(obj)/cpu_microcode_blob.bin: $$(cpu_microcode_bins) +$(obj)/cpu_microcode_blob.bin: $$(wildcard $$(cpu_microcode_bins)) + for bin in $(cpu_microcode_bins); do \ + if [ ! -f "$$bin" ]; then \ + echo "Microcode error: $$bin does not exist"; \ + NO_MICROCODE_FILE=1; \ + fi; \ + done; \ + if [ -n "$$NO_MICROCODE_FILE" ]; then \ + if [ -z "$(CONFIG_USE_BLOBS)" ] && [ -n "$(CONFIG_CPU_MICROCODE_CBFS_GENERATE)" ]; then \ + echo "Try enabling binary-only repository in Kconfig 'General setup' menu."; \ + fi; \ + false; \ + fi @printf " MICROCODE $(subst $(obj)/,,$(@))\n" @echo $(cpu_microcode_bins) cat /dev/null $+ > $@