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-09 06:36:04 +0000
commitbba8c8e143560c1c82f413fda1c21cdc6d87c571 (patch)
tree758a93a6cb4c214162e3126ea626414b072a8707
parent2bf1f59707de0ec20e4613ae36882e347b46b061 (diff)
downloadvboot-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.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;
}