summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVadim Sukhomlinov <sukhomlinov@google.com>2020-07-07 15:02:52 -0700
committerCommit Bot <commit-bot@chromium.org>2020-07-14 01:07:20 +0000
commitc870cf3dbe00e887ffc816c9345818b530192d09 (patch)
treeaa73fa1bb5bf302c964593af7fad3cf7010b077c
parentb11f71e7fff01d1edd2492a616a0b391c08e5688 (diff)
downloadchrome-ec-stabilize-13360.B-cr50_stab.tar.gz
tpm_nvmem_ops.c: fix read_tpm_nvmem_size() to work with hidden objectsstabilize-13360.B-cr50_stab
In https://crrev.com/c/2258534 fix read_tpm_nvmem_size() was introduced, however it failed to properly return size of hidden objects, and code worked because it was masked by prior check of size for nvmem variable with getvar(), and these variables were always set together. This fix relies on https://crrev.com/c/2280405 for tpm2 to add proper service function. BUG=None TEST=manual, tested in upcoming change in cr50/board/u2f.c Cq-Depend: chromium:2280405 Signed-off-by: Vadim Sukhomlinov <sukhomlinov@google.com> Change-Id: I38cfbf97e5cc99907c05887345017db92c5abc72 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2285432 Tested-by: Vadim Sukhomlinov <sukhomlinov@chromium.org> Auto-Submit: Vadim Sukhomlinov <sukhomlinov@chromium.org> Reviewed-by: Vadim Bendebury <vbendeb@chromium.org> Reviewed-by: Vadim Sukhomlinov <sukhomlinov@chromium.org> Commit-Queue: Vadim Sukhomlinov <sukhomlinov@chromium.org>
-rw-r--r--board/cr50/tpm_nvmem_ops.c15
1 files changed, 4 insertions, 11 deletions
diff --git a/board/cr50/tpm_nvmem_ops.c b/board/cr50/tpm_nvmem_ops.c
index ed5d438204..ba295c7f4f 100644
--- a/board/cr50/tpm_nvmem_ops.c
+++ b/board/cr50/tpm_nvmem_ops.c
@@ -100,18 +100,11 @@ enum tpm_write_rv write_tpm_nvmem_hidden(uint16_t object_index,
size_t read_tpm_nvmem_size(uint16_t obj_index)
{
- TPM_HANDLE object_handle;
- NV_INDEX nvIndex;
- uint32_t handle_addr;
+ UINT16 size;
- object_handle = HR_NV_INDEX | obj_index;
-
- handle_addr = NvEarlyStageFindHandle(object_handle);
- if (!handle_addr)
+ if (NvGetHiddenObjectSize(HR_HIDDEN | obj_index, &size) !=
+ TPM_RC_SUCCESS)
return 0;
- /* Get properties of this index as stored in nvmem. */
- NvReadIndexInfo(object_handle, handle_addr, &nvIndex);
-
- return nvIndex.publicArea.dataSize;
+ return size;
}