summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--futility/flashrom_drv.c4
-rw-r--r--futility/updater.c11
-rw-r--r--futility/updater.h3
-rw-r--r--futility/updater_utils.c5
-rw-r--r--futility/updater_utils.h4
5 files changed, 17 insertions, 10 deletions
diff --git a/futility/flashrom_drv.c b/futility/flashrom_drv.c
index 69532f40..8630b8f3 100644
--- a/futility/flashrom_drv.c
+++ b/futility/flashrom_drv.c
@@ -118,7 +118,7 @@ err_cleanup:
int flashrom_write_image(const struct firmware_image *image,
const char *region,
const struct firmware_image *diff_image,
- int verbosity)
+ int do_verify, int verbosity)
{
int r = 0;
size_t len = 0;
@@ -180,7 +180,7 @@ int flashrom_write_image(const struct firmware_image *image,
flashrom_flag_set(flashctx, FLASHROM_FLAG_VERIFY_WHOLE_CHIP, true);
flashrom_flag_set(flashctx, FLASHROM_FLAG_VERIFY_AFTER_WRITE, true);
- if (diff_image) /* equiv --noverify --flash-contents=diff_image at cli */
+ if (!do_verify)
flashrom_flag_set(flashctx, FLASHROM_FLAG_VERIFY_AFTER_WRITE, false);
r |= flashrom_image_write(flashctx, image->data, image->size,
diff --git a/futility/updater.c b/futility/updater.c
index b550b33c..9a98adea 100644
--- a/futility/updater.c
+++ b/futility/updater.c
@@ -403,11 +403,14 @@ static int write_firmware(struct updater_config *cfg,
cfg->emulation, image, section_name);
}
- if (cfg->fast_update && image == &cfg->image && cfg->image_current.data)
+ if (cfg->use_diff_image && image == &cfg->image &&
+ cfg->image_current.data) {
diff_image = &cfg->image_current;
+ }
return write_system_firmware(image, diff_image, section_name,
- &cfg->tempfiles, cfg->verbosity + 1);
+ &cfg->tempfiles, cfg->do_verify,
+ cfg->verbosity + 1);
}
/*
@@ -1272,6 +1275,7 @@ struct updater_config *updater_new_config()
cfg->pd_image.programmer = PROG_PD;
cfg->check_platform = 1;
+ cfg->do_verify = 1;
init_system_properties(&cfg->system_properties[0],
ARRAY_SIZE(cfg->system_properties));
@@ -1471,7 +1475,8 @@ int updater_setup_config(struct updater_config *cfg,
/* Setup values that may change output or decision of other argument. */
cfg->verbosity = arg->verbosity;
- cfg->fast_update = arg->fast_update;
+ cfg->use_diff_image = arg->fast_update;
+ cfg->do_verify = !arg->fast_update;
cfg->factory_update = arg->is_factory;
if (arg->force_update)
cfg->force_update = 1;
diff --git a/futility/updater.h b/futility/updater.h
index 856ea781..721f09f1 100644
--- a/futility/updater.h
+++ b/futility/updater.h
@@ -69,7 +69,8 @@ struct updater_config {
int legacy_update;
int factory_update;
int check_platform;
- int fast_update;
+ int use_diff_image;
+ int do_verify;
int verbosity;
const char *emulation;
int override_gbb_flags;
diff --git a/futility/updater_utils.c b/futility/updater_utils.c
index 50a33267..2221a878 100644
--- a/futility/updater_utils.c
+++ b/futility/updater_utils.c
@@ -542,9 +542,10 @@ int write_system_firmware(const struct firmware_image *image,
const struct firmware_image *diff_image,
const char *section_name,
struct tempfile *tempfiles,
- int verbosity)
+ int do_verify, int verbosity)
{
- return flashrom_write_image(image, section_name, diff_image, (verbosity + 1));
+ return flashrom_write_image(image, section_name, diff_image,
+ do_verify, (verbosity + 1));
}
/* Helper function to return host software write protection status. */
diff --git a/futility/updater_utils.h b/futility/updater_utils.h
index 2ab6f071..ae5574f2 100644
--- a/futility/updater_utils.h
+++ b/futility/updater_utils.h
@@ -107,7 +107,7 @@ int write_system_firmware(const struct firmware_image *image,
const struct firmware_image *diff_image,
const char *section_name,
struct tempfile *tempfiles,
- int verbosity);
+ int do_verify, int verbosity);
struct firmware_section {
uint8_t *data;
@@ -236,6 +236,6 @@ int flashrom_read_image(struct firmware_image *image, const char *region,
int flashrom_write_image(const struct firmware_image *image,
const char *region,
const struct firmware_image *diff_image,
- int verbosity);
+ int do_verify, int verbosity);
#endif /* VBOOT_REFERENCE_FUTILITY_UPDATER_UTILS_H_ */