summaryrefslogtreecommitdiff
path: root/src/vendorcode
diff options
context:
space:
mode:
Diffstat (limited to 'src/vendorcode')
-rw-r--r--src/vendorcode/google/chromeos/vbnv.c15
-rw-r--r--src/vendorcode/google/chromeos/vbnv.h7
-rw-r--r--src/vendorcode/google/chromeos/vboot2/vboot_logic.c8
3 files changed, 6 insertions, 24 deletions
diff --git a/src/vendorcode/google/chromeos/vbnv.c b/src/vendorcode/google/chromeos/vbnv.c
index baccb2313d..9fd97a0362 100644
--- a/src/vendorcode/google/chromeos/vbnv.c
+++ b/src/vendorcode/google/chromeos/vbnv.c
@@ -59,14 +59,9 @@ static uint8_t crc8_vbnv(const uint8_t *data, int len)
return (uint8_t) (crc >> 8);
}
-/* Reset header and CRC to defaults. */
static void reset_vbnv(uint8_t *vbnv_copy)
{
memset(vbnv_copy, 0, VBNV_BLOCK_SIZE);
- vbnv_copy[HEADER_OFFSET] = HEADER_SIGNATURE |
- HEADER_FIRMWARE_SETTINGS_RESET |
- HEADER_KERNEL_SETTINGS_RESET;
- vbnv_copy[CRC_OFFSET] = crc8_vbnv(vbnv_copy, CRC_OFFSET);
}
/* Read VBNV data into cache. */
@@ -88,9 +83,8 @@ int verify_vbnv(uint8_t *vbnv_copy)
/*
* Read VBNV data from configured storage backend.
* If VBNV verification fails, reset the vbnv copy.
- * Returns 1 if write-back of vbnv copy is required. Else, returns 0.
*/
-int read_vbnv(uint8_t *vbnv_copy)
+void read_vbnv(uint8_t *vbnv_copy)
{
if (IS_ENABLED(CONFIG_CHROMEOS_VBNV_CMOS))
read_vbnv_cmos(vbnv_copy);
@@ -100,11 +94,8 @@ int read_vbnv(uint8_t *vbnv_copy)
read_vbnv_flash(vbnv_copy);
/* Check data for consistency */
- if (verify_vbnv(vbnv_copy))
- return 0;
-
- reset_vbnv(vbnv_copy);
- return 1;
+ if (!verify_vbnv(vbnv_copy))
+ reset_vbnv(vbnv_copy);
}
/*
diff --git a/src/vendorcode/google/chromeos/vbnv.h b/src/vendorcode/google/chromeos/vbnv.h
index a66d687fe5..5d21cc8481 100644
--- a/src/vendorcode/google/chromeos/vbnv.h
+++ b/src/vendorcode/google/chromeos/vbnv.h
@@ -19,12 +19,7 @@
#include <types.h>
/* Generic functions */
-/*
- * Return value for read_vbnv:
- * 1 = write-back of vbnv copy is required.
- * 0 = otherwise
- */
-int read_vbnv(uint8_t *vbnv_copy);
+void read_vbnv(uint8_t *vbnv_copy);
void save_vbnv(const uint8_t *vbnv_copy);
int verify_vbnv(uint8_t *vbnv_copy);
int get_recovery_mode_from_vbnv(void);
diff --git a/src/vendorcode/google/chromeos/vboot2/vboot_logic.c b/src/vendorcode/google/chromeos/vboot2/vboot_logic.c
index 116c9498d9..4c799c9a4f 100644
--- a/src/vendorcode/google/chromeos/vboot2/vboot_logic.c
+++ b/src/vendorcode/google/chromeos/vboot2/vboot_logic.c
@@ -301,12 +301,8 @@ void verstage_main(void)
/* Set up context and work buffer */
vb2_init_work_context(&ctx);
- /*
- * Read nvdata from a non-volatile storage and mark data as changed
- * if instructed.
- */
- if (read_vbnv(ctx.nvdata))
- ctx.flags |= VB2_CONTEXT_NVDATA_CHANGED;
+ /* Read nvdata from a non-volatile storage. */
+ read_vbnv(ctx.nvdata);
/* Set S3 resume flag if vboot should behave differently when selecting
* which slot to boot. This is only relevant to vboot if the platform