diff options
-rw-r--r-- | src/vendorcode/google/chromeos/vbnv.c | 15 | ||||
-rw-r--r-- | src/vendorcode/google/chromeos/vbnv.h | 7 | ||||
-rw-r--r-- | src/vendorcode/google/chromeos/vboot2/vboot_logic.c | 8 |
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 |