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 <martinroth@google.com>
Reviewed-on: https://review.coreboot.org/17940
Tested-by: build bot (Jenkins)
Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net>
Reviewed-by: Nico Huber <nico.h@gmx.de>

Change-Id: If4148c18cfb781ed2932bd2ae4a289b621afdebf
Reviewed-on: https://chromium-review.googlesource.com/425259
Commit-Ready: Furquan Shaikh <furquan@chromium.org>
Tested-by: Furquan Shaikh <furquan@chromium.org>
Reviewed-by: Aaron Durbin <adurbin@chromium.org>
This commit is contained in:
Martin Roth 2016-12-22 10:29:20 -07:00 committed by chrome-bot
commit d2cc87f0e1

View file

@ -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 $+ > $@