From 83c3714ed39459e69d30d22ee087f1119fbb69a4 Mon Sep 17 00:00:00 2001 From: Luigi Semenzato Date: Thu, 17 Mar 2011 10:33:41 -0700 Subject: [PATCH] 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 --- firmware/lib/rollback_index.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/firmware/lib/rollback_index.c b/firmware/lib/rollback_index.c index 94693856a3..9442b7792c 100644 --- a/firmware/lib/rollback_index.c +++ b/firmware/lib/rollback_index.c @@ -103,6 +103,15 @@ static uint32_t OneTimeInitializeTPM(RollbackSpaceFirmware* rsf, 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;