summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--board/cr50/tpm2/tpm_mode.c4
-rw-r--r--include/tpm_vendor_cmds.h1
2 files changed, 4 insertions, 1 deletions
diff --git a/board/cr50/tpm2/tpm_mode.c b/board/cr50/tpm2/tpm_mode.c
index 8282236caa..dea38abf02 100644
--- a/board/cr50/tpm2/tpm_mode.c
+++ b/board/cr50/tpm2/tpm_mode.c
@@ -22,7 +22,6 @@
static void disable_tpm(void)
{
- nvmem_enable_commits();
tpm_stop();
DCRYPTO_ladder_revoke();
nvmem_clear_cache();
@@ -72,6 +71,9 @@ static enum vendor_cmd_rc process_tpm_mode(struct vendor_cmd_params *p)
* so that this vendor command can be responded to
* before TPM stops.
*/
+ if (nvmem_enable_commits() != EC_SUCCESS)
+ return VENDOR_RC_NVMEM_LOCKED;
+
hook_call_deferred(&disable_tpm_data, 10 * MSEC);
break;
default:
diff --git a/include/tpm_vendor_cmds.h b/include/tpm_vendor_cmds.h
index 83a0f700f5..b127a05082 100644
--- a/include/tpm_vendor_cmds.h
+++ b/include/tpm_vendor_cmds.h
@@ -194,6 +194,7 @@ enum vendor_cmd_rc {
VENDOR_RC_NO_SUCH_SUBCOMMAND = 8,
VENDOR_RC_IN_PROGRESS = 9,
VENDOR_RC_PASSWORD_REQUIRED = 10,
+ VENDOR_RC_NVMEM_LOCKED = 11,
/* Maximum possible failure reason. */
VENDOR_RC_NO_SUCH_COMMAND = 127,