summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHung-Te Lin <hungte@chromium.org>2022-02-12 10:32:48 +0800
committerCommit Bot <commit-bot@chromium.org>2022-02-22 00:59:40 +0000
commit28a7904a2993c3bfc66bcda3c7ed97be725aa2a8 (patch)
treecf4417d7854e760c705c29ee872967270af2231b
parentf0638e0c63344c3f7771f1cfdb2631f15c32158c (diff)
downloadvboot-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.c21
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";