diff options
author | Matthew Blecker <matthewb@chromium.org> | 2023-03-07 16:50:00 -0800 |
---|---|---|
committer | Chromeos LUCI <chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com> | 2023-03-09 06:36:04 +0000 |
commit | bba8c8e143560c1c82f413fda1c21cdc6d87c571 (patch) | |
tree | 758a93a6cb4c214162e3126ea626414b072a8707 | |
parent | 2bf1f59707de0ec20e4613ae36882e347b46b061 (diff) | |
download | vboot-bba8c8e143560c1c82f413fda1c21cdc6d87c571.tar.gz |
futility: Prefer debug header servo over CCD when both are available.
BRANCH=none
BUG=b:270287312
TEST=With atlas DUT + servo_v4p1 + cr50_ccd + servo_micro:
$ dut-control -o servo_type # servo_v4p1_with_servo_micro_and_ccd_cr50
$ dut-control cpu_fw_spi # unknown value but control does exist
$ dut-control ccd_cpu_fw_spi # error from control not existing
$ futility read --servo -v ap-fw.bin # succeeds
With atlas DUT + servo_micro:
$ dut-control -o servo_type # servo_micro
$ dut-control cpu_fw_spi # unknown value but control does exist
$ dut-control ccd_cpu_fw_spi # error from control not existing
$ futility read --servo -v ap-fw.bin # succeeds
With atlas DUT + servo_v4p1 + cr50_ccd:
$ dut-control -o servo_type # servo_v4p1_with_ccd_cr50
$ dut-control ccd_cpu_fw_spi # off
$ futility read --servo -v ap-fw.bin # succeeds
Change-Id: I18e890aaa6c3fa63f2108840b8c344a6adc5a561
Signed-off-by: Matthew Blecker <matthewb@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/4315198
Reviewed-by: Hung-Te Lin <hungte@chromium.org>
Reviewed-by: Edward O'Callaghan <quasisec@chromium.org>
-rw-r--r-- | futility/updater_utils.c | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/futility/updater_utils.c b/futility/updater_utils.c index 03b0378d..2be63902 100644 --- a/futility/updater_utils.c +++ b/futility/updater_utils.c @@ -426,6 +426,7 @@ char *host_detect_servo(const char **prepare_ctrl_name) char *ret = NULL; char *servo_serial = NULL; + static const char * const raiden_debug_spi = "raiden_debug_spi"; static const char * const cpu_fw_spi = "cpu_fw_spi"; static const char * const ccd_cpu_fw_spi = "ccd_cpu_fw_spi"; @@ -461,6 +462,14 @@ char *host_detect_servo(const char **prepare_ctrl_name) VB2_DEBUG("Selected Servo V2.\n"); programmer = "ft2232_spi:type=google-servo-v2"; *prepare_ctrl_name = cpu_fw_spi; + } else if (strstr(servo_type, "servo_micro")) { + VB2_DEBUG("Selected Servo Micro.\n"); + programmer = raiden_debug_spi; + *prepare_ctrl_name = cpu_fw_spi; + } else if (strstr(servo_type, "c2d2")) { + VB2_DEBUG("Selected C2D2.\n"); + programmer = raiden_debug_spi; + *prepare_ctrl_name = cpu_fw_spi; } else if (strstr(servo_type, "ccd_cr50") || strstr(servo_type, "ccd_gsc") || strstr(servo_type, "ccd_ti50")) { @@ -468,13 +477,8 @@ char *host_detect_servo(const char **prepare_ctrl_name) programmer = "raiden_debug_spi:target=AP,custom_rst=true"; *prepare_ctrl_name = ccd_cpu_fw_spi; } else { - if (strstr(servo_type, "servo_micro")) - VB2_DEBUG("Selected Servo Micro.\n"); - else if (strstr(servo_type, "c2d2")) - VB2_DEBUG("Selected C2D2.\n"); - else - WARN("Unknown servo: %s\n", servo_type); - programmer = "raiden_debug_spi"; + WARN("Unknown servo: %s\nAssuming debug header.\n", servo_type); + programmer = raiden_debug_spi; *prepare_ctrl_name = cpu_fw_spi; } |