diff options
author | Karthikeyan Ramasubramanian <kramasub@google.com> | 2020-08-04 16:52:56 -0600 |
---|---|---|
committer | Tim Wawrzynczak <twawrzynczak@chromium.org> | 2020-08-14 15:14:08 +0000 |
commit | 847378609c922c7be49184aa88d7f1163acbae81 (patch) | |
tree | e924f87b06332c46291839dc4541e8ed13a099b6 /src | |
parent | 0921cb792db35089ddad5c5752726b922deae265 (diff) |
mb/google/dedede: Add a board specific reset
When CSE Lite jumps from RO to RW, global reset is initiated. When AP is
reset as part of global reset, TPM initialization fails. This is because
AP reset is not detected by TPM hosting an older firmware version. Request
Embedded Controller (EC) to perform AP reset so that TPM can detect that
event.
BUG=b:162290856, b:162386991
TEST=Ensure that the device boots to OS with the board-specific reset
sequence when CSE Lite jumps from RO to RW with an older and newer Cr50
firmware.
Cq-Depend: chromium:2337430
Change-Id: Ib1f7271130e0b4b68c7f0917ecc4eadba1486206
Signed-off-by: Karthikeyan Ramasubramanian <kramasub@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/44189
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Tim Wawrzynczak <twawrzynczak@chromium.org>
Reviewed-by: Furquan Shaikh <furquan@google.com>
Reviewed-by: Nick Vaccaro <nvaccaro@google.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/mainboard/google/dedede/mainboard.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/mainboard/google/dedede/mainboard.c b/src/mainboard/google/dedede/mainboard.c index cb84e1f400..4695a9f5ae 100644 --- a/src/mainboard/google/dedede/mainboard.c +++ b/src/mainboard/google/dedede/mainboard.c @@ -5,8 +5,18 @@ #include <baseboard/variants.h> #include <device/device.h> #include <ec/ec.h> +#include <ec/google/chromeec/ec.h> +#include <halt.h> +#include <intelblocks/cse.h> #include <vendorcode/google/chromeos/chromeos.h> +void cse_board_reset(void) +{ + /* TODO: Check tpm firmware version before initiating AP reset. */ + if (!google_chromeec_ap_reset()) + halt(); +} + __weak void variant_isst_override(void) { /* |