summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVadim Bendebury <vbendeb@chromium.org>2016-10-05 21:38:23 -0700
committerchrome-bot <chrome-bot@chromium.org>2016-10-06 03:42:14 -0700
commit9b56b51b0d6e5fa6ec02cb8675bad0fad611dd3a (patch)
tree2c6b097a577d40fe30677eb82a731b7ded7910dd
parent2e4d4e2e058adafe8ce18d4a71d7b2604170d837 (diff)
downloadchrome-ec-9b56b51b0d6e5fa6ec02cb8675bad0fad611dd3a.tar.gz
tpm: do not try running endorsement commands before nvram is available
Recent tpm2 repository changes introduced more strict checks of the NV RAM operations' return status. The problem is that in case TPM is not manufactured tpm_endorse() is invoked before nvram is declared available, and this causes endorsement operation failure. Make sure NVRAM initialization is complete before endorsement is attempted. BRANCH=none BUG=none TEST=tpm manufacturing now succeeds again. Change-Id: I2217f33915ab8b4d872a9498def6d6862f4b1913 Signed-off-by: Vadim Bendebury <vbendeb@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/394129 Tested-by: Marius Schilder <mschilder@chromium.org> Reviewed-by: Marius Schilder <mschilder@chromium.org>
-rw-r--r--common/tpm_registers.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/common/tpm_registers.c b/common/tpm_registers.c
index 0e2733b472..ec424202c0 100644
--- a/common/tpm_registers.c
+++ b/common/tpm_registers.c
@@ -550,11 +550,12 @@ static void tpm_init(void)
*/
TPM_Manufacture(1);
_TPM_Init();
+ _plat__SetNvAvail();
tpm_endorse();
+ } else {
+ _plat__SetNvAvail();
}
- _plat__SetNvAvail();
-
/* Reinitialize TPM interface. */
if_restart();
}