diff options
Diffstat (limited to 'board/cr50/tpm2/virtual_nvmem.c')
-rw-r--r-- | board/cr50/tpm2/virtual_nvmem.c | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/board/cr50/tpm2/virtual_nvmem.c b/board/cr50/tpm2/virtual_nvmem.c index 1eb00e5daa..e2a0b963c7 100644 --- a/board/cr50/tpm2/virtual_nvmem.c +++ b/board/cr50/tpm2/virtual_nvmem.c @@ -10,6 +10,7 @@ #include "board_id.h" #include "console.h" #include "dcrypto.h" +#include "factory_config.h" #include "link_defs.h" #include "rma_auth.h" #include "sn_bits.h" @@ -320,6 +321,18 @@ static void GetRSUDevID(BYTE *to, size_t offset, size_t size) } BUILD_ASSERT(VIRTUAL_NV_INDEX_RSU_DEV_ID_SIZE == SHA256_DIGEST_SIZE); +static void GetFactoryCfg(BYTE *to, size_t offset, size_t size) +{ + uint64_t fc; + + if (read_factory_config(&fc) != EC_SUCCESS) { + memset(to, 0, size); + return; + } + memcpy(to, ((BYTE *)&fc) + offset, size); +} +BUILD_ASSERT(VIRTUAL_NV_INDEX_FACTORY_CONFIG_SIZE == INFO_FACTORY_CFG_SIZE); + /* * Registration of current virtual indexes. * @@ -344,6 +357,12 @@ static const struct virtual_nv_index_cfg index_config[] = { REGISTER_CONFIG(VIRTUAL_NV_INDEX_RSU_DEV_ID, VIRTUAL_NV_INDEX_RSU_DEV_ID_SIZE, GetRSUDevID) + /* TODO(b/278118981): implement get RMA BYTES and WV UDS */ + REGISTER_DEPRECATED_CONFIG(VIRTUAL_NV_INDEX_RMA_BYTES_UNIMPLEMENTED) + REGISTER_DEPRECATED_CONFIG(VIRTUAL_NV_INDEX_WV_UDS_BYTES_UNIMPLEMENTED) + REGISTER_CONFIG(VIRTUAL_NV_INDEX_FACTORY_CONFIG, + VIRTUAL_NV_INDEX_FACTORY_CONFIG_SIZE, + GetFactoryCfg) }; /* Check validity check of above config. */ |