From ff2f0dc56c1a783295710f81567af02729fe1da2 Mon Sep 17 00:00:00 2001 From: Duncan Laurie Date: Mon, 12 May 2014 10:22:01 -0700 Subject: [PATCH] vboot: Add a new post code for TPM failure If the kernel does not properly handle the TPM and send it a TPM_SaveState command before suspend then it will not be in the correct state on resume. In order to easily detect this case add a new post code for TPM failure and use it in the vboot resume path. BUG=chromium:371105 TEST=Build and boot on wtm2. Change-Id: I412520b521387a8e18ad1c6f5a64b39cdd5c88ec Signed-off-by: Duncan Laurie Reviewed-on: https://chromium-review.googlesource.com/199371 Reviewed-by: Aaron Durbin --- src/include/console/post_codes.h | 7 +++++++ src/vendorcode/google/chromeos/vboot.c | 1 + 2 files changed, 8 insertions(+) diff --git a/src/include/console/post_codes.h b/src/include/console/post_codes.h index a9579508ce..a10ea94a8e 100644 --- a/src/include/console/post_codes.h +++ b/src/include/console/post_codes.h @@ -219,6 +219,13 @@ */ #define POST_JUMPING_TO_PAYLOAD 0xf3 +/** + * \brief TPM failure + * + * An error with the TPM, either unexepcted state or communications failure. + */ +#define POST_TPM_FAILURE 0xed + /** * \brief Not supposed to get here * diff --git a/src/vendorcode/google/chromeos/vboot.c b/src/vendorcode/google/chromeos/vboot.c index e42961ff47..44fe9e3025 100644 --- a/src/vendorcode/google/chromeos/vboot.c +++ b/src/vendorcode/google/chromeos/vboot.c @@ -233,6 +233,7 @@ static void init_vboot(int bootmode) #if !MOCK_TPM printk(BIOS_ERR, "TPM: Error code 0x%x. Hard reset!\n", result); + post_code(POST_TPM_FAILURE); hard_reset(); #endif }