summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDuncan Laurie <dlaurie@chromium.org>2014-05-12 10:22:01 -0700
committerMarc Jones <marc.jones@se-eng.com>2014-12-30 22:13:30 +0100
commit4397aa1347551f3f4a277f8587e1fe8fbcffc3e6 (patch)
tree98312c73f5790fcad2d58eb2069c12350784e487
parenta4c4b1c69c8770a45fdd074245c6702b2b9514bf (diff)
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>
-rw-r--r--src/include/console/post_codes.h7
-rw-r--r--src/vendorcode/google/chromeos/vboot.c1
2 files changed, 8 insertions, 0 deletions
diff --git a/src/include/console/post_codes.h b/src/include/console/post_codes.h
index 0310db3958..9f9b7886a6 100644
--- a/src/include/console/post_codes.h
+++ b/src/include/console/post_codes.h
@@ -220,6 +220,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
*
* A function that should not have returned, returned
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
}