Martin Roth submitted this change.

View Change

Approvals: build bot (Jenkins): Verified Martin Roth: Looks good to me, approved
security/vboot: relocate vb2ex_abort and vb2ex_printf

Enabling an assertion in vb2_member_of() results in coreboot
linking vb2ex_abort() and vb2ex_printf() in ramstage.

Move these two functions from vboot_logic.c to vboot_lib.c,
which is should be enabled in all stages if CONFIG_VBOOT_LIB
is enabled. Note that CONFIG_VBOOT_LIB is implied by
CONFIG_VBOOT.

Relevant vboot_reference commit: CL:2037263.

BUG=b:124141368, chromium:1005700
TEST=make clean && make test-abuild
BRANCH=none

Change-Id: Ica0103c5684b3d50ba7dc1b4c39559cb192efa81
Signed-off-by: Joel Kitching <kitching@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/38706
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Martin Roth <martinroth@google.com>
---
M src/security/vboot/Makefile.inc
A src/security/vboot/vboot_lib.c
M src/security/vboot/vboot_logic.c
M src/vendorcode/eltan/security/verified_boot/Makefile.inc
4 files changed, 36 insertions(+), 22 deletions(-)

diff --git a/src/security/vboot/Makefile.inc b/src/security/vboot/Makefile.inc
index a700e00..2fe2d92 100644
--- a/src/security/vboot/Makefile.inc
+++ b/src/security/vboot/Makefile.inc
@@ -16,6 +16,12 @@

ifeq ($(CONFIG_VBOOT_LIB),y)

+bootblock-y += vboot_lib.c
+verstage-y += vboot_lib.c
+romstage-y += vboot_lib.c
+ramstage-y += vboot_lib.c
+postcar-y += vboot_lib.c
+
vboot-fixup-includes = $(patsubst -I%,-I$(top)/%,\
$(patsubst $(src)/%.h,$(top)/$(src)/%.h,\
$(filter-out -I$(obj),$(1))))
diff --git a/src/security/vboot/vboot_lib.c b/src/security/vboot/vboot_lib.c
new file mode 100644
index 0000000..b2303c0
--- /dev/null
+++ b/src/security/vboot/vboot_lib.c
@@ -0,0 +1,29 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+/* This file is part of the coreboot project. */
+
+#include <console/console.h>
+#include <console/vtxprintf.h>
+#include <vb2_api.h>
+
+/*
+ * vboot callbacks implemented by coreboot -- necessary for making general API
+ * calls when CONFIG_VBOOT_LIB is enabled. For callbacks specific to verstage
+ * (CONFIG_VBOOT), please see vboot_logic.c.
+ */
+
+void vb2ex_printf(const char *func, const char *fmt, ...)
+{
+ va_list args;
+
+ if (func)
+ printk(BIOS_INFO, "VB2:%s() ", func);
+
+ va_start(args, fmt);
+ vprintk(BIOS_INFO, fmt, args);
+ va_end(args);
+}
+
+void vb2ex_abort(void)
+{
+ die("vboot has aborted execution; exit\n");
+}
diff --git a/src/security/vboot/vboot_logic.c b/src/security/vboot/vboot_logic.c
index 1d17a17..182128c 100644
--- a/src/security/vboot/vboot_logic.c
+++ b/src/security/vboot/vboot_logic.c
@@ -17,8 +17,6 @@
#include <assert.h>
#include <bootmode.h>
#include <cbmem.h>
-#include <console/console.h>
-#include <console/vtxprintf.h>
#include <fmap.h>
#include <string.h>
#include <timestamp.h>
@@ -37,20 +35,6 @@

/* exports */

-void vb2ex_printf(const char *func, const char *fmt, ...)
-{
- va_list args;
-
- if (func)
- printk(BIOS_INFO, "VB2:%s() ", func);
-
- va_start(args, fmt);
- vprintk(BIOS_INFO, fmt, args);
- va_end(args);
-
- return;
-}
-
vb2_error_t vb2ex_read_resource(struct vb2_context *ctx,
enum vb2_resource_index index,
uint32_t offset,
@@ -83,11 +67,6 @@
return VB2_SUCCESS;
}

-void vb2ex_abort(void)
-{
- die("vboot has aborted execution; exit\n");
-}
-
/* No-op stubs that can be overridden by SoCs with hardware crypto support. */
__weak vb2_error_t vb2ex_hwcrypto_digest_init(enum vb2_hash_algorithm hash_alg,
uint32_t data_size)
diff --git a/src/vendorcode/eltan/security/verified_boot/Makefile.inc b/src/vendorcode/eltan/security/verified_boot/Makefile.inc
index 827535b..2acad84 100644
--- a/src/vendorcode/eltan/security/verified_boot/Makefile.inc
+++ b/src/vendorcode/eltan/security/verified_boot/Makefile.inc
@@ -17,7 +17,7 @@

CPPFLAGS_common += -I$(src)/security/vboot

-bootblock-y += ../../../../security/vboot/vboot_logic.c
+bootblock-y += ../../../../security/vboot/vboot_lib.c
bootblock-y += vboot_check.c
postcar-y += vboot_check.c
romstage-y += vboot_check.c

To view, visit change 38706. To unsubscribe, or for help writing mail filters, visit settings.

Gerrit-Project: coreboot
Gerrit-Branch: master
Gerrit-Change-Id: Ica0103c5684b3d50ba7dc1b4c39559cb192efa81
Gerrit-Change-Number: 38706
Gerrit-PatchSet: 9
Gerrit-Owner: Joel Kitching <kitching@google.com>
Gerrit-Reviewer: Aaron Durbin <adurbin@chromium.org>
Gerrit-Reviewer: Frans Hendriks <fhendriks@eltan.com>
Gerrit-Reviewer: Joel Kitching <kitching@google.com>
Gerrit-Reviewer: Julius Werner <jwerner@chromium.org>
Gerrit-Reviewer: Martin Roth <martinroth@google.com>
Gerrit-Reviewer: Patrick Georgi <pgeorgi@google.com>
Gerrit-Reviewer: build bot (Jenkins) <no-reply@coreboot.org>
Gerrit-CC: Paul Menzel <paulepanter@users.sourceforge.net>
Gerrit-CC: Wim Vervoorn <wvervoorn@eltan.com>
Gerrit-MessageType: merged