summaryrefslogtreecommitdiff
path: root/board/cr50/board.c
diff options
context:
space:
mode:
authorVadim Bendebury <vbendeb@chromium.org>2019-11-11 13:59:59 -0800
committerCommit Bot <commit-bot@chromium.org>2019-12-13 18:23:42 +0000
commitfa6119dc2cd69e711e9127241c2736e57706321c (patch)
treeaa422da105258d71b0e1bc7ada9751fa5ac0f369 /board/cr50/board.c
parent420abd92d8a437cde30115405a3fa883c7a7bccd (diff)
downloadchrome-ec-fa6119dc2cd69e711e9127241c2736e57706321c.tar.gz
nvmem: do not waste time looking for legacy NVMEM space
It takes 14.5 ms to decrypt two 12K flash spaces into SRAM, then calculate their hash to see if either one is is a valid NVMEM space. There is no need for this check when the 'other' Cr50 image is newer than {3,4}.18. BRANCH=Cr50, Cr50-mp BUG=b:132665283 TEST=with added instrumentation verified that in case the other slot is occupied by 0.0.22 image, the check takes 14.5 ms, when the other slot is occupied by 0.4.23 image the check takes 8 us. Change-Id: I0414ca3d7e90d343589a21e91319f35479632eff Signed-off-by: Vadim Bendebury <vbendeb@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/1967543 Reviewed-by: Keith Short <keithshort@chromium.org>
Diffstat (limited to 'board/cr50/board.c')
-rw-r--r--board/cr50/board.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/board/cr50/board.c b/board/cr50/board.c
index ac1e640e47..4eeb21fc23 100644
--- a/board/cr50/board.c
+++ b/board/cr50/board.c
@@ -1718,3 +1718,16 @@ int board_in_prod_mode(void)
{
return in_prod_mode;
}
+
+int board_nvmem_legacy_check_needed(void)
+{
+ enum system_image_copy_t other_rw;
+ const struct SignedHeader *h;
+
+ other_rw = system_get_image_copy() == SYSTEM_IMAGE_RW ?
+ SYSTEM_IMAGE_RW_B : SYSTEM_IMAGE_RW;
+
+ h = (const struct SignedHeader *)get_program_memory_addr(other_rw);
+
+ return (h->major_ <= 2) || (h->minor_ <= 18);
+}