util/cbfstool: Port elogtool to libflashrom

This also uncouples cbfstool from being overly Chromium
specific. However the main objective is to not subprocess
flashrom any more and instead use the programmatic API.

BUG=b:207808292
TEST=built and ran `elogtool (list|clear|add 0x16 C0FFEE)`.

Change-Id: I79df2934b9b0492a554a4fecdd533a0abe1df231
Signed-off-by: Edward O'Callaghan <quasisec@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/59714
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Sam McNally <sammc@google.com>
This commit is contained in:
Edward O'Callaghan
2021-11-29 11:02:46 +11:00
committed by Edward O'Callaghan
parent e565f75221
commit d74b8d9c99
4 changed files with 254 additions and 11 deletions

View File

@@ -1,3 +1,5 @@
HOSTPKGCONFIG ?= /usr/bin/pkg-config
compressionobj :=
compressionobj += compress.o
# LZ4
@@ -92,6 +94,7 @@ amdcompobj += xdr.o
elogobj :=
elogobj := elogtool.o
elogobj += eventlog.o
elogobj += uflashrom.o
elogobj += valstr.o
elogobj += elog.o
elogobj += common.o
@@ -144,6 +147,12 @@ else
TOOLCFLAGS+=-std=c11
endif
.PHONY: check-flashrom-presence
check-flashrom-presence:
$(HOSTPKGCONFIG) --exists flashrom || \
(echo "Error: Ensure that pkg-config and flashrom are installed."; exit 1)
FLASHROM := $$($(HOSTPKGCONFIG) --libs flashrom)
VBOOT_HOSTLIB = $(VBOOT_HOST_BUILD)/libvboot_host.a
$(VBOOT_HOSTLIB):
@@ -224,9 +233,9 @@ $(objutil)/cbfstool/amdcompress: $(addprefix $(objutil)/cbfstool/,$(amdcompobj))
printf " HOSTCC $(subst $(objutil)/,,$(@)) (link)\n"
$(HOSTCC) $(TOOLLDFLAGS) -o $@ $(addprefix $(objutil)/cbfstool/,$(amdcompobj)) -lz
$(objutil)/cbfstool/elogtool: $(addprefix $(objutil)/cbfstool/,$(elogobj)) $(VBOOT_HOSTLIB)
$(objutil)/cbfstool/elogtool: | check-flashrom-presence $(addprefix $(objutil)/cbfstool/,$(elogobj))
printf " HOSTCC $(subst $(objutil)/,,$(@)) (link)\n"
$(HOSTCC) $(TOOLLDFLAGS) -o $@ $(addprefix $(objutil)/cbfstool/,$(elogobj)) $(VBOOT_HOSTLIB)
$(HOSTCC) $(TOOLLDFLAGS) -o $@ $(addprefix $(objutil)/cbfstool/,$(elogobj)) $(FLASHROM)
$(objutil)/cbfstool/cse_fpt: $(addprefix $(objutil)/cbfstool/,$(cse_fpt_obj))
printf " HOSTCC $(subst $(objutil)/,,$(@)) (link)\n"