| Index: firmware/lib/vboot_nvstorage.c | 
| diff --git a/firmware/lib/vboot_nvstorage.c b/firmware/lib/vboot_nvstorage.c | 
| index 419a9fbc1bfa485eabc6b8bf185c9f3492a41656..575fcb98fadff5805e44c44705d26e2f30362fb6 100644 | 
| --- a/firmware/lib/vboot_nvstorage.c | 
| +++ b/firmware/lib/vboot_nvstorage.c | 
| @@ -27,8 +27,9 @@ | 
| #define LOCALIZATION_OFFSET          3 | 
|  | 
| #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 | 
| @@ -125,13 +126,13 @@ int VbNvGet(VbNvContext* context, VbNvParam param, uint32_t* dest) { | 
| | (raw[KERNEL_FIELD_OFFSET + 3] << 24)); | 
| return 0; | 
|  | 
| -    case VBNV_TRIED_FIRMWARE_B: | 
| -      *dest = (raw[FIRMWARE_FLAGS_OFFSET] & FIRMWARE_TRIED_FIRMWARE_B ? 1 : 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_FW_VERIFIED_KERNEL_KEY: | 
| -      *dest = (raw[FIRMWARE_FLAGS_OFFSET] & FIRMWARE_FW_VERIFIED_KERNEL_KEY ? | 
| -               1 : 0); | 
| +    case VBNV_TEST_ERROR_NUM: | 
| +      *dest = raw[FIRMWARE_FLAGS_OFFSET] & FIRMWARE_TEST_ERR_NUM_MASK; | 
| return 0; | 
|  | 
| default: | 
| @@ -201,18 +202,15 @@ int VbNvSet(VbNvContext* context, VbNvParam param, uint32_t value) { | 
| raw[KERNEL_FIELD_OFFSET + 3] = (uint8_t)(value >> 24); | 
| break; | 
|  | 
| -    case VBNV_TRIED_FIRMWARE_B: | 
| -      if (value) | 
| -        raw[FIRMWARE_FLAGS_OFFSET] |= FIRMWARE_TRIED_FIRMWARE_B; | 
| -      else | 
| -        raw[FIRMWARE_FLAGS_OFFSET] &= ~FIRMWARE_TRIED_FIRMWARE_B; | 
| +    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_FW_VERIFIED_KERNEL_KEY: | 
| -      if (value) | 
| -        raw[FIRMWARE_FLAGS_OFFSET] |= FIRMWARE_FW_VERIFIED_KERNEL_KEY; | 
| -      else | 
| -        raw[FIRMWARE_FLAGS_OFFSET] &= ~FIRMWARE_FW_VERIFIED_KERNEL_KEY; | 
| +    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: | 
|  |