vendorcode/google/chromeos: Add mainboard hook before cr50 update

In order to allow the mainboard to configure the system before a
cr50 initiated update reset add a weak function that the mainboard
can override if necessary.

This will allow a board that would otherwise be configured to
stay off after an EC reset to instead power up after the reset and
not end up in a shut down state after a cr50 update.

BUG=b:121380403
TEST=update cr50 firmware on sarien and reboot

Change-Id: I11f9e8c9bfe810f69b4eaa2c633252c25004cbd0
Signed-off-by: Duncan Laurie <dlaurie@google.com>
Reviewed-on: https://review.coreboot.org/c/31057
Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
This commit is contained in:
Duncan Laurie 2019-01-23 15:01:21 -08:00 committed by Patrick Georgi
parent 26bc3282f6
commit f131fc7f37
2 changed files with 9 additions and 0 deletions

View File

@ -33,6 +33,9 @@ static inline void mark_watchdog_tombstone(void) { return; }
static inline void reboot_from_watchdog(void) { return; }
#endif /* CONFIG_CHROMEOS */
/* Defined as weak function in cr50_enable_update.c */
void mainboard_cr50_update_reset(void);
struct romstage_handoff;
#include "gnvs.h"

View File

@ -21,6 +21,9 @@
#include <security/tpm/tss.h>
#include <vb2_api.h>
#include <security/vboot/vboot_common.h>
#include <vendorcode/google/chromeos/chromeos.h>
void __weak mainboard_cr50_update_reset(void) {}
static void enable_update(void *unused)
{
@ -52,6 +55,9 @@ static void enable_update(void *unused)
if (!num_restored_headers)
return;
/* Give mainboard a chance to take action */
mainboard_cr50_update_reset();
elog_add_event(ELOG_TYPE_CR50_UPDATE);
/* clear current post code avoid chatty eventlog on subsequent boot*/