From 6d720f38e06d14cc8a89635f66dc124dcd5ac150 Mon Sep 17 00:00:00 2001 From: Aaron Durbin Date: Tue, 8 Dec 2015 17:00:23 -0600 Subject: cbfs/vboot: remove firmware component support The Chrome OS verified boot path supported multiple CBFS instances in the boot media as well as stand-alone assets sitting in each vboot RW slot. Remove the support for the stand-alone assets and always use CBFS accesses as the way to retrieve data. This is implemented by adding a cbfs_locator object which is queried for locating the current CBFS. Additionally, it is also signalled prior to when a program is about to be loaded by coreboot for the subsequent stage/payload. This provides the same opportunity as previous for vboot to hook in and perform its logic. BUG=chromium:445938 BRANCH=None TEST=Built and ran on glados. CQ-DEPEND=CL:307121,CL:31691,CL:31690 Change-Id: I6a3a15feb6edd355d6ec252c36b6f7885b383099 Signed-off-by: Aaron Durbin Reviewed-on: https://review.coreboot.org/12689 Tested-by: build bot (Jenkins) Tested-by: Raptor Engineering Automated Test Stand Reviewed-by: Patrick Georgi Reviewed-by: Stefan Reinauer --- src/include/cbfs.h | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'src/include/cbfs.h') diff --git a/src/include/cbfs.h b/src/include/cbfs.h index dcca173bea..7848d6d6fd 100644 --- a/src/include/cbfs.h +++ b/src/include/cbfs.h @@ -81,4 +81,18 @@ struct cbfs_props { /* Return < 0 on error otherwise props are filled out accordingly. */ int cbfs_boot_region_properties(struct cbfs_props *props); +/* Allow external logic to take action prior to locating a program + * (stage or payload). */ +void cbfs_prepare_program_locate(void); + +/* Object used to identify location of current cbfs to use for cbfs_boot_* + * operations. It's used by cbfs_boot_region_properties() and + * cbfs_prepare_program_locate(). */ +struct cbfs_locator { + const char *name; + void (*prepare)(void); + /* Returns 0 on successful fill of cbfs properties. */ + int (*locate)(struct cbfs_props *props); +}; + #endif -- cgit v1.2.3