summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVadim Bendebury <vbendeb@chromium.org>2016-12-27 10:19:40 -0800
committerchrome-bot <chrome-bot@chromium.org>2017-01-05 23:47:07 -0800
commit02c5bb8392545f99b609943dfe1d92d9f2ffa4ae (patch)
tree19d43da4f0e9b7f52118193c124f73139e7f7287
parent5659d103a669ada5fd173f7b801ed7b0a1066881 (diff)
downloadchrome-ec-02c5bb8392545f99b609943dfe1d92d9f2ffa4ae.tar.gz
cr50: vendor command to enable nvmem commits
TPM NVMEM commits are reenabled as soon as the system boots into Chrome OS. However, sometimes the device does not boot into Chrome OS, in which case it is necessary to be able to reinstate NVMEM commits explicitly. The new vendor command will provide this functionality. BRANCH=none BUG=chrome-os-partner:59873 TEST=added code to depthcharge to issue the new vendor command if the system falls into recovery mode, verify that commits are re-instated once the command is issued. Change-Id: I3c06b27175751dc2c095911441935eee62ed9c50 Reviewed-on: https://chromium-review.googlesource.com/424064 Commit-Ready: Vadim Bendebury <vbendeb@chromium.org> Tested-by: Vadim Bendebury <vbendeb@chromium.org> Reviewed-by: Aaron Durbin <adurbin@chromium.org>
-rw-r--r--board/cr50/board.c11
-rw-r--r--include/tpm_vendor_cmds.h1
2 files changed, 12 insertions, 0 deletions
diff --git a/board/cr50/board.c b/board/cr50/board.c
index 229f4ab1f0..fe6a29a26f 100644
--- a/board/cr50/board.c
+++ b/board/cr50/board.c
@@ -896,3 +896,14 @@ static enum vendor_cmd_rc vc_invalidate_inactive_rw(enum vendor_cmd_cc code,
}
DECLARE_VENDOR_COMMAND(VENDOR_CC_INVALIDATE_INACTIVE_RW,
vc_invalidate_inactive_rw);
+
+static enum vendor_cmd_rc vc_commit_nvmem(enum vendor_cmd_cc code,
+ void *buf,
+ size_t input_size,
+ size_t *response_size)
+{
+ nvmem_enable_commits();
+ *response_size = 0;
+ return VENDOR_RC_SUCCESS;
+}
+DECLARE_VENDOR_COMMAND(VENDOR_CC_COMMIT_NVMEM, vc_commit_nvmem);
diff --git a/include/tpm_vendor_cmds.h b/include/tpm_vendor_cmds.h
index 4e49455369..f81abf70d0 100644
--- a/include/tpm_vendor_cmds.h
+++ b/include/tpm_vendor_cmds.h
@@ -32,6 +32,7 @@ enum vendor_cmd_cc {
VENDOR_CC_SYSINFO = 18,
VENDOR_CC_IMMEDIATE_RESET = 19,
VENDOR_CC_INVALIDATE_INACTIVE_RW = 20,
+ VENDOR_CC_COMMIT_NVMEM = 21,
LAST_VENDOR_COMMAND = 65535,
};