diff options
author | Hung-Te Lin <hungte@chromium.org> | 2022-02-12 10:32:48 +0800 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2022-02-22 00:59:40 +0000 |
commit | 28a7904a2993c3bfc66bcda3c7ed97be725aa2a8 (patch) | |
tree | cf4417d7854e760c705c29ee872967270af2231b | |
parent | f0638e0c63344c3f7771f1cfdb2631f15c32158c (diff) | |
download | vboot-28a7904a2993c3bfc66bcda3c7ed97be725aa2a8.tar.gz |
futility: updater: disable quirk 'ec_partial_recovery' by default
The 'ec_partial_recovery' quirk is not very helpful today because the
two underlying functions - "EC RO software sync" and "update EC RO
without sysjump by flashrom" are either disabled or not well tested.
As a result we should change the quirk from "decide by runtime" to
"default disabled".
BUG=b:218612817
TEST=make; build and run test
BRANCH=None
Signed-off-by: Hung-Te Lin <hungte@chromium.org>
Change-Id: I9022b88516e52cb89f2226523a754dc2a00b15da
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/3458023
Reviewed-by: Karthikeyan Ramasubramanian <kramasub@google.com>
Reviewed-by: Yu-Ping Wu <yupingso@chromium.org>
-rw-r--r-- | futility/updater_quirks.c | 21 |
1 files changed, 6 insertions, 15 deletions
diff --git a/futility/updater_quirks.c b/futility/updater_quirks.c index 6d6ccf86..7a493501 100644 --- a/futility/updater_quirks.c +++ b/futility/updater_quirks.c @@ -331,6 +331,11 @@ static int quirk_eve_smm_store(struct updater_config *cfg) * only RO and expect EC software sync to update RW later, or perform EC RO * software sync. * + * Note: EC RO software sync was not fully tested and may cause problems + * (b/218612817, b/187789991). + * RO-update (without extra sysjump) needs support from flashrom and is + * currently disabled. + * * Returns: * EC_RECOVERY_FULL to indicate a full recovery is needed. * EC_RECOVERY_RO to indicate partial update (WP_RO) is needed. @@ -345,23 +350,10 @@ static int quirk_ec_partial_recovery(struct updater_config *cfg) */ const char *ec_ro = "WP_RO"; struct firmware_image *ec_image = &cfg->ec_image; - int do_partial = get_config_quirk(QUIRK_EC_PARTIAL_RECOVERY, cfg); - if (do_partial == -1) { - char arch[VB_MAX_STRING_PROPERTY]; - /* - * Don't do partial update if can't decide arch (usually implies - * running outside DUT). - */ - do_partial = 0; - if (VbGetSystemPropertyString("arch", arch, sizeof(arch)) > 0) { - /* By default disabled for x86, otherwise enabled. */ - do_partial = !!strcmp(arch, "x86"); - } - } if (!do_partial) { - return EC_RECOVERY_FULL; + /* Need full update. */ } else if (!firmware_section_exists(ec_image, ec_ro)) { INFO("EC image does not have section '%s'.\n", ec_ro); /* Need full update. */ @@ -489,7 +481,6 @@ void updater_register_quirks(struct updater_config *cfg) quirks->name = "ec_partial_recovery"; quirks->help = "chromium/1024401; recover EC by partial RO update."; quirks->apply = quirk_ec_partial_recovery; - quirks->value = -1; /* Decide at runtime. */ quirks = &cfg->quirks[QUIRK_OVERRIDE_SIGNATURE_ID]; quirks->name = "override_signature_id"; |