diff options
author | Randall Spangler <rspangler@chromium.org> | 2011-03-15 09:50:38 -0700 |
---|---|---|
committer | Randall Spangler <rspangler@chromium.org> | 2011-03-15 09:50:38 -0700 |
commit | b17e8d353c50d46f0e5f29578f6294003692ea1d (patch) | |
tree | 0de607d6d721868399339fcc1e123f3ceeb6b52e /firmware/lib/vboot_nvstorage.c | |
parent | 2008423d5fb291eb7628389dcb04fe6d5ebb75fc (diff) | |
download | vboot-b17e8d353c50d46f0e5f29578f6294003692ea1d.tar.gz |
Add VB test error func/num
Change-Id: Ibe253963f0424935554fe91f166ef5040a723c6f
BUG=13107
TEST=make && make runtests
Review URL: http://codereview.chromium.org/6698032
Diffstat (limited to 'firmware/lib/vboot_nvstorage.c')
-rw-r--r-- | firmware/lib/vboot_nvstorage.c | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/firmware/lib/vboot_nvstorage.c b/firmware/lib/vboot_nvstorage.c index 419a9fbc..83f6ef5c 100644 --- a/firmware/lib/vboot_nvstorage.c +++ b/firmware/lib/vboot_nvstorage.c @@ -29,6 +29,9 @@ #define FIRMWARE_FLAGS_OFFSET 5 #define FIRMWARE_TRIED_FIRMWARE_B 0x80 #define FIRMWARE_FW_VERIFIED_KERNEL_KEY 0x40 +#define FIRMWARE_TEST_ERR_FUNC_MASK 0x38 +#define FIRMWARE_TEST_ERR_FUNC_SHIFT 3 +#define FIRMWARE_TEST_ERR_NUM_MASK 0x07 #define KERNEL_FIELD_OFFSET 11 #define CRC_OFFSET 15 @@ -134,6 +137,15 @@ int VbNvGet(VbNvContext* context, VbNvParam param, uint32_t* dest) { 1 : 0); return 0; + case VBNV_TEST_ERROR_FUNC: + *dest = (raw[FIRMWARE_FLAGS_OFFSET] & FIRMWARE_TEST_ERR_FUNC_MASK) + >> FIRMWARE_TEST_ERR_FUNC_SHIFT; + return 0; + + case VBNV_TEST_ERROR_NUM: + *dest = raw[FIRMWARE_FLAGS_OFFSET] & FIRMWARE_TEST_ERR_NUM_MASK; + return 0; + default: return 1; } @@ -215,6 +227,17 @@ int VbNvSet(VbNvContext* context, VbNvParam param, uint32_t value) { raw[FIRMWARE_FLAGS_OFFSET] &= ~FIRMWARE_FW_VERIFIED_KERNEL_KEY; break; + case VBNV_TEST_ERROR_FUNC: + raw[FIRMWARE_FLAGS_OFFSET] &= ~FIRMWARE_TEST_ERR_FUNC_MASK; + raw[FIRMWARE_FLAGS_OFFSET] |= (value << FIRMWARE_TEST_ERR_FUNC_SHIFT) + & FIRMWARE_TEST_ERR_FUNC_MASK; + break; + + case VBNV_TEST_ERROR_NUM: + raw[FIRMWARE_FLAGS_OFFSET] &= ~FIRMWARE_TEST_ERR_NUM_MASK; + raw[FIRMWARE_FLAGS_OFFSET] |= (value & FIRMWARE_TEST_ERR_NUM_MASK); + break; + default: return 1; } |