vboot2: Move knowledge of vboot 2.1 data structures inside lib21/
Code which compiles against fwlib2 no longer knows or cares about the
new data structures. This should shrink fwlib2 a bit. This is part 3
of 4 changes which split vboot 2.0 struct handling (old vboot1
structs) from vboot 2.1 struct handling (new style structs).
No functional changes; just shuffling around code.
BUG=chromium:423882
BRANCH=none
TEST=make runtests && VBOOT2=1 make runtests (works with/withoug VBOOT2 flag)
And compile firmware for veyron_pinky.
Change-Id: Ibccd7d1974e07f38b90c19c924ef3b1ffcb77d62
Signed-off-by: Randall Spangler <rspangler@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/233020
Reviewed-by: Bill Richardson <wfrichar@chromium.org>
diff --git a/Makefile b/Makefile
index ff00d34..b56818a 100644
--- a/Makefile
+++ b/Makefile
@@ -278,13 +278,12 @@
firmware/lib/region-kernel.c \
# Firmware library source needed for smaller library 2
-FWLIB20_SRCS = \
+FWLIB2_SRCS = \
firmware/2lib/2api.c \
firmware/2lib/2common.c \
firmware/2lib/2crc8.c \
firmware/2lib/2misc.c \
firmware/2lib/2nvstorage.c \
- firmware/2lib/2packed_key.c \
firmware/2lib/2rsa.c \
firmware/2lib/2secdata.c \
firmware/2lib/2sha1.c \
@@ -292,6 +291,9 @@
firmware/2lib/2sha512.c \
firmware/2lib/2sha_utility.c
+FWLIB20_SRCS = \
+ firmware/2lib/2packed_key.c
+
FWLIB21_SRCS = \
firmware/lib21/api.c \
firmware/lib21/common.c \
@@ -332,7 +334,7 @@
firmware/stub/vboot_api_stub_disk.c \
firmware/stub/vboot_api_stub_stream.c
-FWLIB20_SRCS += \
+FWLIB2_SRCS += \
firmware/2lib/2stub.c
endif
@@ -345,13 +347,14 @@
ALL_OBJS += ${VBINIT_OBJS} ${VBSF_OBJS}
FWLIB_OBJS = ${FWLIB_SRCS:%.c=${BUILD}/%.o}
+FWLIB2_OBJS = ${FWLIB2_SRCS:%.c=${BUILD}/%.o}
FWLIB20_OBJS = ${FWLIB20_SRCS:%.c=${BUILD}/%.o}
FWLIB21_OBJS = ${FWLIB21_SRCS:%.c=${BUILD}/%.o}
-ALL_OBJS += ${FWLIB_OBJS} ${FWLIB20_OBJS} ${FWLIB21_OBJS}
+ALL_OBJS += ${FWLIB_OBJS} ${FWLIB2_OBJS} ${FWLIB20_OBJS} ${FWLIB21_OBJS}
# Intermediate library for the vboot_reference utilities to link against.
UTILLIB = ${BUILD}/libvboot_util.a
-UTILLIB21 = ${BUILD}/libvboot_util20.a
+UTILLIB21 = ${BUILD}/libvboot_util21.a
UTILLIB_SRCS = \
cgpt/cgpt_create.c \
@@ -630,26 +633,30 @@
TEST20_NAMES = \
tests/vb2_api_tests \
- tests/vb2_api2_tests \
tests/vb2_common_tests \
tests/vb2_common2_tests \
tests/vb2_common3_tests \
- tests/vb2_host_fw_preamble_tests \
- tests/vb2_host_key_tests \
- tests/vb2_host_keyblock_tests \
- tests/vb2_host_misc_tests \
- tests/vb2_host_sig_tests \
tests/vb2_misc_tests \
tests/vb2_misc2_tests \
- tests/vb2_misc3_tests \
tests/vb2_nvstorage_tests \
tests/vb2_rsa_padding_tests \
tests/vb2_rsa_utility_tests \
tests/vb2_secdata_tests \
- tests/vb2_sha_tests \
+ tests/vb2_sha_tests
+
+TEST21_NAMES = \
+ tests/vb21_api_tests \
+ tests/vb21_common_tests \
+ tests/vb21_common2_tests \
+ tests/vb21_misc_tests \
+ tests/vb21_host_fw_preamble_tests \
+ tests/vb21_host_key_tests \
+ tests/vb21_host_keyblock_tests \
+ tests/vb21_host_misc_tests \
+ tests/vb21_host_sig_tests
ifneq (${VBOOT2},)
-TEST_NAMES += ${TEST20_NAMES}
+TEST_NAMES += ${TEST20_NAMES} ${TEST21_NAMES}
endif
# And a few more...
@@ -673,6 +680,7 @@
TEST_OBJS += $(addsuffix .o,${TEST_BINS})
TEST20_BINS = $(addprefix ${BUILD}/,${TEST20_NAMES})
+TEST21_BINS = $(addprefix ${BUILD}/,${TEST21_NAMES})
# Directory containing test keys
TEST_KEYS = ${SRC_RUN}/tests/testkeys
@@ -738,6 +746,7 @@
ifeq (${FIRMWARE_ARCH},i386)
# Unrolling loops in cryptolib makes it faster
${FWLIB_OBJS}: CFLAGS += -DUNROLL_LOOPS
+${FWLIB2_OBJS}: CFLAGS += -DUNROLL_LOOPS
${FWLIB20_OBJS}: CFLAGS += -DUNROLL_LOOPS
${FWLIB21_OBJS}: CFLAGS += -DUNROLL_LOOPS
@@ -763,6 +772,8 @@
${FWLIB_OBJS}: CFLAGS += -DDISABLE_ROLLBACK_TPM
endif
+${FWLIB21_OBJS}: INCLUDES += -Ifirmware/lib21/include
+
# Linktest ensures firmware lib doesn't rely on outside libraries
${BUILD}/firmware/linktest/main_vbinit: ${VBINIT_OBJS}
${BUILD}/firmware/linktest/main_vbinit: OBJS = ${VBINIT_OBJS}
@@ -792,7 +803,7 @@
.PHONY: fwlib2
fwlib2: ${FWLIB20}
-${FWLIB20}: ${FWLIB20_OBJS}
+${FWLIB20}: ${FWLIB2_OBJS} ${FWLIB20_OBJS}
@$(PRINTF) " RM $(subst ${BUILD}/,,$@)\n"
${Q}rm -f $@
@$(PRINTF) " AR $(subst ${BUILD}/,,$@)\n"
@@ -801,7 +812,7 @@
.PHONY: fwlib21
fwlib21: ${FWLIB21}
-${FWLIB21}: ${FWLIB21_OBJS}
+${FWLIB21}: ${FWLIB2_OBJS} ${FWLIB21_OBJS}
@$(PRINTF) " RM $(subst ${BUILD}/,,$@)\n"
${Q}rm -f $@
@$(PRINTF) " AR $(subst ${BUILD}/,,$@)\n"
@@ -829,10 +840,10 @@
.PHONY: utillib21
utillib21: ${UTILLIB21}
-${UTILLIB21}: INCLUDES += -Ihost/lib21/include
+${UTILLIB21}: INCLUDES += -Ihost/lib21/include -Ifirmware/lib21/include
# TODO: right now, firmware lib 2.1 isn't a complete standalone copy
-${UTILLIB21}: ${UTILLIB21_OBJS} ${FWLIB20_OBJS} ${FWLIB21_OBJS}
+${UTILLIB21}: ${UTILLIB21_OBJS} ${FWLIB2_OBJS} ${FWLIB20_OBJS} ${FWLIB21_OBJS}
@$(PRINTF) " RM $(subst ${BUILD}/,,$@)\n"
${Q}rm -f $@
@$(PRINTF) " AR $(subst ${BUILD}/,,$@)\n"
@@ -970,9 +981,12 @@
${TEST_BINS}: INCLUDES += -Itests
${TEST_BINS}: LIBS = ${TESTLIB} ${UTILLIB}
-${TEST20_BINS}: ${UTILLIB21}
-${TEST20_BINS}: INCLUDES += -Ihost/lib21/include
-${TEST20_BINS}: LIBS += ${UTILLIB21}
+${TEST20_BINS}: ${FWLIB20}
+${TEST20_BINS}: LIBS += ${FWLIB20}
+
+${TEST21_BINS}: ${UTILLIB21}
+${TEST21_BINS}: INCLUDES += -Ihost/lib21/include -Ifirmware/lib21/include
+${TEST21_BINS}: LIBS += ${UTILLIB21}
${TESTLIB}: ${TESTLIB_OBJS}
@$(PRINTF) " RM $(subst ${BUILD}/,,$@)\n"
@@ -1025,16 +1039,12 @@
${BUILD}/utility/signature_digest_utility: LDLIBS += ${CRYPTO_LIBS}
${BUILD}/host/linktest/main: LDLIBS += ${CRYPTO_LIBS}
-${BUILD}/tests/vb2_api2_tests: LDLIBS += ${CRYPTO_LIBS}
-${BUILD}/tests/vb2_common_tests: LDLIBS += ${CRYPTO_LIBS}
-${BUILD}/tests/vb2_common2_tests: LDLIBS += ${CRYPTO_LIBS}
-${BUILD}/tests/vb2_common3_tests: LDLIBS += ${CRYPTO_LIBS}
-${BUILD}/tests/vb2_host_fw_preamble_tests: LDLIBS += ${CRYPTO_LIBS}
-${BUILD}/tests/vb2_host_key_tests: LDLIBS += ${CRYPTO_LIBS}
-${BUILD}/tests/vb2_host_keyblock_tests: LDLIBS += ${CRYPTO_LIBS}
-${BUILD}/tests/vb2_host_sig_tests: LDLIBS += ${CRYPTO_LIBS}
${BUILD}/tests/vboot_common2_tests: LDLIBS += ${CRYPTO_LIBS}
${BUILD}/tests/vboot_common3_tests: LDLIBS += ${CRYPTO_LIBS}
+${BUILD}/tests/vb2_common2_tests: LDLIBS += ${CRYPTO_LIBS}
+${BUILD}/tests/vb2_common3_tests: LDLIBS += ${CRYPTO_LIBS}
+
+${TEST21_BINS}: LDLIBS += ${CRYPTO_LIBS}
${BUILD}/utility/bmpblk_utility: LD = ${CXX}
${BUILD}/utility/bmpblk_utility: LDLIBS = -llzma -lyaml
@@ -1208,22 +1218,24 @@
.PHONY: run2tests
run2tests: test_setup
${RUNTEST} ${BUILD_RUN}/tests/vb2_api_tests
- ${RUNTEST} ${BUILD_RUN}/tests/vb2_api2_tests
${RUNTEST} ${BUILD_RUN}/tests/vb2_common_tests
${RUNTEST} ${BUILD_RUN}/tests/vb2_common2_tests ${TEST_KEYS}
${RUNTEST} ${BUILD_RUN}/tests/vb2_common3_tests ${TEST_KEYS}
- ${RUNTEST} ${BUILD_RUN}/tests/vb2_host_fw_preamble_tests ${TEST_KEYS}
- ${RUNTEST} ${BUILD_RUN}/tests/vb2_host_key_tests ${TEST_KEYS}
- ${RUNTEST} ${BUILD_RUN}/tests/vb2_host_keyblock_tests ${TEST_KEYS}
- ${RUNTEST} ${BUILD_RUN}/tests/vb2_host_misc_tests
- ${RUNTEST} ${BUILD_RUN}/tests/vb2_host_sig_tests ${TEST_KEYS}
${RUNTEST} ${BUILD_RUN}/tests/vb2_misc_tests
${RUNTEST} ${BUILD_RUN}/tests/vb2_misc2_tests
- ${RUNTEST} ${BUILD_RUN}/tests/vb2_misc3_tests
${RUNTEST} ${BUILD_RUN}/tests/vb2_nvstorage_tests
${RUNTEST} ${BUILD_RUN}/tests/vb2_rsa_utility_tests
${RUNTEST} ${BUILD_RUN}/tests/vb2_secdata_tests
${RUNTEST} ${BUILD_RUN}/tests/vb2_sha_tests
+ ${RUNTEST} ${BUILD_RUN}/tests/vb21_api_tests
+ ${RUNTEST} ${BUILD_RUN}/tests/vb21_common_tests
+ ${RUNTEST} ${BUILD_RUN}/tests/vb21_common2_tests ${TEST_KEYS}
+ ${RUNTEST} ${BUILD_RUN}/tests/vb21_misc_tests
+ ${RUNTEST} ${BUILD_RUN}/tests/vb21_host_fw_preamble_tests ${TEST_KEYS}
+ ${RUNTEST} ${BUILD_RUN}/tests/vb21_host_key_tests ${TEST_KEYS}
+ ${RUNTEST} ${BUILD_RUN}/tests/vb21_host_keyblock_tests ${TEST_KEYS}
+ ${RUNTEST} ${BUILD_RUN}/tests/vb21_host_misc_tests
+ ${RUNTEST} ${BUILD_RUN}/tests/vb21_host_sig_tests ${TEST_KEYS}
.PHONY: runfutiltests
runfutiltests: test_setup
@@ -1240,6 +1252,7 @@
ifneq (${VBOOT2},)
${RUNTEST} ${BUILD_RUN}/tests/vb2_common2_tests ${TEST_KEYS} --all
${RUNTEST} ${BUILD_RUN}/tests/vb2_common3_tests ${TEST_KEYS} --all
+ ${RUNTEST} ${BUILD_RUN}/tests/vb21_common2_tests ${TEST_KEYS} --all
endif
tests/run_preamble_tests.sh --all
tests/run_vbutil_tests.sh --all