summaryrefslogtreecommitdiff
path: root/futility/updater.c
diff options
context:
space:
mode:
Diffstat (limited to 'futility/updater.c')
-rw-r--r--futility/updater.c13
1 files changed, 7 insertions, 6 deletions
diff --git a/futility/updater.c b/futility/updater.c
index f364ff4d..13c712ce 100644
--- a/futility/updater.c
+++ b/futility/updater.c
@@ -1166,13 +1166,14 @@ enum updater_error_codes update_firmware(struct updater_config *cfg)
return UPDATE_ERR_PLATFORM;
if (!image_from->data) {
- /*
- * TODO(hungte) Read only RO_SECTION, VBLOCK_A, VBLOCK_B,
- * RO_VPD, RW_VPD, RW_NVRAM, RW_LEGACY.
- */
+ int ret;
INFO("Loading current system firmware...\n");
- if (load_system_firmware(image_from, &cfg->tempfiles,
- cfg->verbosity) != 0)
+ ret = load_system_firmware(image_from, &cfg->tempfiles,
+ cfg->verbosity);
+ if (ret == IMAGE_PARSE_FAILURE && cfg->force_update) {
+ WARN("No compatible firmware in system.\n");
+ cfg->check_platform = 0;
+ } else if (ret)
return UPDATE_ERR_SYSTEM_IMAGE;
}
STATUS("Current system: %s (RO:%s, RW/A:%s, RW/B:%s).\n",