diff options
author | Vadim Sukhomlinov <sukhomlinov@google.com> | 2020-07-07 15:02:52 -0700 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2020-08-11 23:39:09 +0000 |
commit | 710b4812435357c860a74c88c0caf8cd3c97d223 (patch) | |
tree | ddb54069275dd3e5c04098e1199809081488ef78 | |
parent | 1e0231b4259be1cc9b09884213d9cdff22754170 (diff) | |
download | chrome-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.c | 15 |
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; } |