summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJulius Werner <jwerner@chromium.org>2021-07-30 15:00:59 -0700
committerCommit Bot <commit-bot@chromium.org>2021-08-13 13:15:08 +0000
commit84126cca1c608d406f1bfae1d9d5fc1b7b01785a (patch)
tree9226f9e7d3d9d4f393561b04ff2aefd64bbf31b9
parentf4c7f8b5ea4a94e092df9c75e701362ef272e82e (diff)
downloadvboot-84126cca1c608d406f1bfae1d9d5fc1b7b01785a.tar.gz
2nvstorage: Clear FIRMWARE_SETTINGS_RESET flag on a clean boot
The FIRMWARE_SETTINGS_RESET flag was intended to show when nvdata was forcibly reset due to CRC failures. However, in practice it is useless because it never gets cleared again and just stays set forever. This patch fixes that by clearing it on every normal boot (i.e. a boot where the existing nvdata was valid and didn't need to be reset). BRANCH=None BUG=None TEST=Booted CoachZ, confirmed flag got cleared. Signed-off-by: Julius Werner <jwerner@chromium.org> Change-Id: I8c88ea134bf92ccb5f1d9a710d86c5ec5198def8 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/3063692 Reviewed-by: Yu-Ping Wu <yupingso@chromium.org> Tested-by: Yu-Ping Wu <yupingso@chromium.org> Commit-Queue: Yu-Ping Wu <yupingso@chromium.org>
-rw-r--r--firmware/2lib/2nvstorage.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/firmware/2lib/2nvstorage.c b/firmware/2lib/2nvstorage.c
index 0f28404b..4fd9808a 100644
--- a/firmware/2lib/2nvstorage.c
+++ b/firmware/2lib/2nvstorage.c
@@ -80,6 +80,11 @@ void vb2_nv_init(struct vb2_context *ctx)
sd->status |= VB2_SD_STATUS_NV_REINIT;
/* TODO: unit test for status flag being set */
+ } else {
+#ifndef CHROMEOS_ENVIRONMENT
+ /* Always clear this on first reboot that didn't need reinit. */
+ vb2_nv_set(ctx, VB2_NV_FIRMWARE_SETTINGS_RESET, 0);
+#endif
}
sd->status |= VB2_SD_STATUS_NV_INIT;