From d68eb97026003e2b2893cf39f37c244f72fb041d Mon Sep 17 00:00:00 2001 From: Hung-Te Lin Date: Thu, 2 Mar 2023 02:19:21 +0000 Subject: futility: updater: revise DUT type detection Some commands like 'cros ap flash' may pass '-p host' to the futility updater, making the updater consider itself running in the remote DUT mode. Other futility commands sharing the flash arguments (e.g., handle_flash_argument) work on files by default and only do flashing if '-p' is specified, but that is not the case for the updater. So we should double check the programmer before deciding the DUT type. BUG=b:271115449 TEST=FEATURES=test emerge vboot_reference BRANCH=None Change-Id: I5be6e4382acffced0ef9cd94f6ede9e9d3fe2efa Signed-off-by: Hung-Te Lin Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/4300000 Commit-Queue: Yu-Ping Wu Reviewed-by: Yu-Ping Wu (cherry picked from commit b0cdc1e898de15bf818a27ec4610d771253188bc) Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/4358601 Commit-Queue: Isaac Lee Tested-by: Isaac Lee --- futility/updater.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/futility/updater.c b/futility/updater.c index b08e70ad..362d5dfc 100644 --- a/futility/updater.c +++ b/futility/updater.c @@ -1437,11 +1437,6 @@ int updater_setup_config(struct updater_config *cfg, if (arg->force_update) cfg->force_update = 1; - /* Identify DUT type. Currently only local/remote (via servo). */ - cfg->dut_is_remote = arg->use_flash; - if (cfg->dut_is_remote) - INFO("Configured to update a remote DUT via Servo.\n"); - /* Check incompatible options and return early. */ if (arg->do_manifest) { if (!!arg->archive == !!arg->image) { @@ -1504,8 +1499,12 @@ int updater_setup_config(struct updater_config *cfg, cfg->override_gbb_flags = arg->override_gbb_flags; /* Setup properties and fields that do not have external dependency. */ - if (arg->programmer) { + if (arg->programmer && strcmp(arg->programmer, cfg->image.programmer)) { check_single_image = 1; + /* DUT should be remote if the programmer is changed. */ + cfg->dut_is_remote = 1; + INFO("Configured to update a remote DUT%s.\n", + arg->detect_servo ? " via Servo" : ""); cfg->image.programmer = arg->programmer; cfg->image_current.programmer = arg->programmer; cfg->original_programmer = arg->programmer; -- cgit v1.2.1