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.

Original-Change-Id: I412520b521387a8e18ad1c6f5a64b39cdd5c88ec
Original-Signed-off-by: Duncan Laurie <dlaurie@chromium.org>
Original-Reviewed-on: https://chromium-review.googlesource.com/199371
Original-Reviewed-by: Aaron Durbin <adurbin@chromium.org>
(cherry picked from commit ff2f0dc56c1a783295710f81567af02729fe1da2)
Signed-off-by: Marc Jones <marc.jones@se-eng.com>

Change-Id: I5baf894fd72922acd79d191e5485ae8ef7e0d559
Reviewed-on: http://review.coreboot.org/7936
Tested-by: build bot (Jenkins)
Reviewed-by: Kyösti Mälkki <kyosti.malkki@gmail.com>
This commit is contained in:
Duncan Laurie 2014-05-12 10:22:01 -07:00 committed by Marc Jones
parent a4c4b1c69c
commit 4397aa1347
2 changed files with 8 additions and 0 deletions

View File

@ -219,6 +219,13 @@
*/ */
#define POST_JUMPING_TO_PAYLOAD 0xf3 #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 * \brief Not supposed to get here
* *

View File

@ -233,6 +233,7 @@ static void init_vboot(int bootmode)
#if !MOCK_TPM #if !MOCK_TPM
printk(BIOS_ERR, "TPM: Error code 0x%x. Hard reset!\n", result); printk(BIOS_ERR, "TPM: Error code 0x%x. Hard reset!\n", result);
post_code(POST_TPM_FAILURE);
hard_reset(); hard_reset();
#endif #endif
} }