summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLouis Collard <louiscollard@chromium.org>2018-08-24 12:02:19 +0800
committerchrome-bot <chrome-bot@chromium.org>2018-09-05 16:11:02 -0700
commit4173a851603b2e00b241150092292b5a29ba3be2 (patch)
treebaed4d6134ec189caf6121586813cdeb6c46dc9d
parent98045b7fa94ad11803af540677b2cde5a337be80 (diff)
downloadchrome-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.c15
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);
+}