From 8dac1697aef0114584d737e6a3027b55abdae5f0 Mon Sep 17 00:00:00 2001 From: Rob Barnes Date: Sun, 10 May 2020 21:18:05 -0600 Subject: futility: Adds platform check quirk for zork Adds a quirk for futility on zork boards. Zork boards before 13073 used lowercase for the firmware names which causes the compatible platform check fail. This adds the disable_compatible_platform_check quirk and enables it by default for zork boards. BUG=b:156119908, b:155941790 TEST=flashed Google_trembyle.13066.0.0 using servo chromeos-firmwareupdater --force rebooted and confirmed Google_Trembyle.13073.0.0 was flashed BRANCH=none Change-Id: I6fc6bf5bb42b725b5e7c9d0166f945b9c123bab4 Signed-off-by: Rob Barnes Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/2191089 Reviewed-by: Edward Hill Reviewed-by: Eric Peers Commit-Queue: Edward Hill --- futility/updater.c | 3 +++ futility/updater.h | 1 + futility/updater_quirks.c | 29 +++++++++++++++++++++++++++++ 3 files changed, 33 insertions(+) (limited to 'futility') diff --git a/futility/updater.c b/futility/updater.c index 13c712ce..8f2db611 100644 --- a/futility/updater.c +++ b/futility/updater.c @@ -1162,6 +1162,9 @@ enum updater_error_codes update_firmware(struct updater_config *cfg) image_to->file_name, image_to->ro_version, image_to->rw_version_a, image_to->rw_version_b); + if (try_apply_quirk(QUIRK_DISABLE_COMPATIBLE_PLATFORM_CHECK, cfg)) + return UPDATE_ERR_PLATFORM; + if (try_apply_quirk(QUIRK_MIN_PLATFORM_VERSION, cfg)) return UPDATE_ERR_PLATFORM; diff --git a/futility/updater.h b/futility/updater.h index e11cc745..5013a789 100644 --- a/futility/updater.h +++ b/futility/updater.h @@ -44,6 +44,7 @@ enum quirk_types { QUIRK_ALLOW_EMPTY_WLTAG, QUIRK_EC_PARTIAL_RECOVERY, QUIRK_OVERRIDE_SIGNATURE_ID, + QUIRK_DISABLE_COMPATIBLE_PLATFORM_CHECK, QUIRK_MAX, }; diff --git a/futility/updater_quirks.c b/futility/updater_quirks.c index 457a79b0..22543de8 100644 --- a/futility/updater_quirks.c +++ b/futility/updater_quirks.c @@ -59,6 +59,18 @@ static const struct quirks_record quirks_records[] = { { .match = "Google_Wizpig.", .quirks = "allow_empty_wltag" }, { .match = "Google_Phaser.", .quirks = "override_signature_id" }, + + /* Zork Boards */ + { .match = "Google_Berknip.", + .quirks = "disable_compatible_platform_check" }, + { .match = "Google_Dalboz.", + .quirks = "disable_compatible_platform_check" }, + { .match = "Google_Ezkinil.", + .quirks = "disable_compatible_platform_check" }, + { .match = "Google_Morphius.", + .quirks = "disable_compatible_platform_check" }, + { .match = "Google_Trembyle.", + .quirks = "disable_compatible_platform_check" }, }; /* Preserves meta data and reload image contents from given file path. */ @@ -380,6 +392,16 @@ static int quirk_ec_partial_recovery(struct updater_config *cfg) return EC_RECOVERY_FULL; } +/* + * Disables compatible platform check. + * The compatible platform check ensures the current platform and update + * start with the same name. + */ +static int quirk_disable_compatible_platform_check(struct updater_config *cfg) { + cfg->check_platform = 0; + return 0; +} + /* * Registers known quirks to a updater_config object. */ @@ -433,6 +455,13 @@ void updater_register_quirks(struct updater_config *cfg) quirks->help = "chromium/146876241; override signature id for " "devices shipped with different root key."; quirks->apply = NULL; /* Simple config. */ + + quirks = &cfg->quirks[QUIRK_DISABLE_COMPATIBLE_PLATFORM_CHECK]; + quirks->name = "disable_compatible_platform_check"; + quirks->help = "b/155941790; Disables compatible platform check." + "The compatible platform check ensures the current" + " platform and update start with the same name."; + quirks->apply = quirk_disable_compatible_platform_check; } /* -- cgit v1.2.1