summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHung-Te Lin <hungte@chromium.org>2023-03-02 02:19:21 +0000
committerChromeos LUCI <chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com>2023-03-02 12:09:35 +0000
commitb0cdc1e898de15bf818a27ec4610d771253188bc (patch)
treef04ab949b7b1a704235bb9234ff4fbe2eb37a56b
parent10a052e3bb8d3a2a5a6eaef1c461e8d593a426a8 (diff)
downloadvboot-b0cdc1e898de15bf818a27ec4610d771253188bc.tar.gz
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 <hungte@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/4300000 Commit-Queue: Yu-Ping Wu <yupingso@chromium.org> Reviewed-by: Yu-Ping Wu <yupingso@chromium.org>
-rw-r--r--futility/updater.c11
1 files 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;