summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRob Barnes <robbarnes@google.com>2020-05-10 21:18:05 -0600
committerCommit Bot <commit-bot@chromium.org>2020-05-11 08:04:19 +0000
commit8dac1697aef0114584d737e6a3027b55abdae5f0 (patch)
treeb872a36765ba8118b8a0e6790976f81c31ebea7f
parent5cb4cee971167982e041f3fd95b1839fcf15a46a (diff)
downloadvboot-8dac1697aef0114584d737e6a3027b55abdae5f0.tar.gz
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 <robbarnes@google.com> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/2191089 Reviewed-by: Edward Hill <ecgh@chromium.org> Reviewed-by: Eric Peers <epeers@google.com> Commit-Queue: Edward Hill <ecgh@chromium.org>
-rw-r--r--futility/updater.c3
-rw-r--r--futility/updater.h1
-rw-r--r--futility/updater_quirks.c29
3 files changed, 33 insertions, 0 deletions
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. */
@@ -381,6 +393,16 @@ static int quirk_ec_partial_recovery(struct updater_config *cfg)
}
/*
+ * 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.
*/
void updater_register_quirks(struct updater_config *cfg)
@@ -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;
}
/*