summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthew Blecker <matthewb@chromium.org>2023-03-07 16:50:00 -0800
committerChromeos LUCI <chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com>2023-03-29 08:19:52 +0000
commitee87680f3faf44ec76beec3e8227c2480208f5d0 (patch)
tree758a93a6cb4c214162e3126ea626414b072a8707
parentdcef16d9a2c86dcca75783504c4952a670c5a83e (diff)
downloadvboot-ee87680f3faf44ec76beec3e8227c2480208f5d0.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 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/4315198 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/4381006 Tested-by: Phoebe Wang <phoebewang@chromium.org> Reviewed-by: Cheng Yueh <cyueh@chromium.org> Commit-Queue: Cheng Yueh <cyueh@chromium.org> Auto-Submit: Phoebe Wang <phoebewang@chromium.org>
-rw-r--r--futility/updater_utils.c18
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;
}