Perform a full self test before one-time initialization.
Change-Id: I2f5232d5133c0725ec21f885a4632e980062be8f
BUG=chrome-os-partner: 1826
TEST=none
Review URL: http://codereview.chromium.org/6688004
diff --git a/firmware/lib/rollback_index.c b/firmware/lib/rollback_index.c
index 9469385..9442b77 100644
--- a/firmware/lib/rollback_index.c
+++ b/firmware/lib/rollback_index.c
@@ -103,6 +103,15 @@
VBDEBUG(("TPM: One-time initialization\n"));
+ /* Do a full test. This only happens the first time the device is turned on
+ * in the factory, so performance is not an issue. This is almost certainly
+ * not necessary, but it gives us more confidence about some code paths below
+ * that are difficult to test---specifically the ones that set lifetime
+ * flags, and are only executed once per physical TPM. */
+ result = TlclSelfTestFull();
+ if (result != TPM_SUCCESS)
+ return result;
+
result = TlclGetPermanentFlags(&pflags);
if (result != TPM_SUCCESS)
return result;