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-08-11 23:39:09 +0000
commit710b4812435357c860a74c88c0caf8cd3c97d223 (patch)
treeddb54069275dd3e5c04098e1199809081488ef78
parent1e0231b4259be1cc9b09884213d9cdff22754170 (diff)
downloadchrome-ec-710b4812435357c860a74c88c0caf8cd3c97d223.tar.gz
tpm_nvmem_ops.c: fix read_tpm_nvmem_size() to work with hidden objects
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> (cherry picked from commit c870cf3dbe00e887ffc816c9345818b530192d09) Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2311247 Tested-by: Mary Ruthven <mruthven@chromium.org> Reviewed-by: Mary Ruthven <mruthven@chromium.org> Commit-Queue: Mary Ruthven <mruthven@chromium.org> (cherry picked from commit 8e907c91f89cee8943fe5e59856788adea2427b1) Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2350294
-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;
}