From 02c5bb8392545f99b609943dfe1d92d9f2ffa4ae Mon Sep 17 00:00:00 2001 From: Vadim Bendebury Date: Tue, 27 Dec 2016 10:19:40 -0800 Subject: 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 Tested-by: Vadim Bendebury Reviewed-by: Aaron Durbin --- board/cr50/board.c | 11 +++++++++++ include/tpm_vendor_cmds.h | 1 + 2 files changed, 12 insertions(+) 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, }; -- cgit v1.2.1