diff options
author | Louis Collard <louiscollard@chromium.org> | 2018-08-24 12:02:19 +0800 |
---|---|---|
committer | chrome-bot <chrome-bot@chromium.org> | 2018-09-05 16:11:02 -0700 |
commit | 4173a851603b2e00b241150092292b5a29ba3be2 (patch) | |
tree | baed4d6134ec189caf6121586813cdeb6c46dc9d | |
parent | 98045b7fa94ad11803af540677b2cde5a337be80 (diff) | |
download | chrome-ec-4173a851603b2e00b241150092292b5a29ba3be2.tar.gz |
cr50: Make SN data available through vNVRAM.
Defines a new virtual NV index, 0x13fff01 for SN data stored in INFO1.
BUG=b:111195266
TEST=tested locally on soraka
BRANCH=none
Change-Id: I7a057938a14effe9a5bd93b06a3450aa823d9ff5
Signed-off-by: Louis Collard <louiscollard@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/1187860
Reviewed-by: Andrey Pronin <apronin@chromium.org>
-rw-r--r-- | board/cr50/tpm2/virtual_nvmem.c | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/board/cr50/tpm2/virtual_nvmem.c b/board/cr50/tpm2/virtual_nvmem.c index 9bb6caec0d..cb58895e3f 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 "link_defs.h" +#include "sn_bits.h" /* * Functions to allow access to non-NVRam data through NVRam Indexes. @@ -143,16 +144,20 @@ struct virtual_nv_index_cfg { enum virtual_nv_index { VIRTUAL_NV_INDEX_START = 0x013fff00, VIRTUAL_NV_INDEX_BOARD_ID = VIRTUAL_NV_INDEX_START, + VIRTUAL_NV_INDEX_SN_DATA, VIRTUAL_NV_INDEX_END, }; /* Reserved space for future virtual indexes; this is the last valid index. */ #define VIRTUAL_NV_INDEX_MAX 0x013fffff static void GetBoardId(BYTE *to, size_t offset, size_t size); +static void GetSnData(BYTE *to, size_t offset, size_t size); static const struct virtual_nv_index_cfg index_config[] = { REGISTER_CONFIG(VIRTUAL_NV_INDEX_BOARD_ID, - 12 /* data_size */, GetBoardId) + sizeof(struct board_id), GetBoardId) + REGISTER_CONFIG(VIRTUAL_NV_INDEX_SN_DATA, + sizeof(struct sn_data), GetSnData) }; /* Check sanity of above config. */ @@ -312,3 +317,11 @@ static void GetBoardId(BYTE *to, size_t offset, size_t size) read_board_id(&board_id_tmp); memcpy(to, ((BYTE *) &board_id_tmp) + offset, size); } + +static void GetSnData(BYTE *to, size_t offset, size_t size) +{ + struct sn_data sn_data_tmp; + + read_sn_data(&sn_data_tmp); + memcpy(to, ((BYTE *) &sn_data_tmp) + offset, size); +} |