From eb94feb0984b65b2fe98fadc04f766f126514694 Mon Sep 17 00:00:00 2001 From: Alexandru Timohi Date: Thu, 14 Apr 2016 11:27:18 +0300 Subject: Add indication when booting to the non-requested A/B After invalidating boot_b and using set_active to force boot to it, u-boot realizes that B is invalid and re-sets to boot A. There needs to be a clear warning message that this has occurred. Test: fastboot erase boot_b fastboot oem set_active 1 fastboot reboot Change-Id: Ib9f08bed053e146ff382d47fbe15f193b073c210 Traked-On: https://jira01.devtools.intel.com/browse/BP-78 Signed-off-by: Alexandru Timohi Reviewed-on: https://android.intel.com/494518 Reviewed-by: Stanacar, Stefan Reviewed-by: Patru, Irina Reviewed-by: Serban, Mihai --- common/cmd_boot_brillo.c | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/common/cmd_boot_brillo.c b/common/cmd_boot_brillo.c index 8d4ff065c2..d87befd1d4 100644 --- a/common/cmd_boot_brillo.c +++ b/common/cmd_boot_brillo.c @@ -476,6 +476,13 @@ bool is_unbootable_slot (char *suffix) { return false; } +static void __mark_slot_as_failed(struct slot_metadata *slot, char *slot_name) +{ + slot->successful_boot = 0; + slot->tries_remaining = 0; + slot->priority = 0; + printf("WARNING: failed to boot %s slot!\n", slot_name); +} static int brillo_boot_ab(void) { struct bootloader_message message; @@ -530,9 +537,7 @@ static int brillo_boot_ab(void) suffixes[slot_num]); if (load_boot_image(dev, boot_part)) { /* Failed to load, mark as failed */ - slot->successful_boot = 0; - slot->tries_remaining = 0; - slot->priority = 0; + __mark_slot_as_failed(slot, suffixes[slot_num]); continue; } if (slot->tries_remaining > 0) @@ -548,9 +553,7 @@ static int brillo_boot_ab(void) /* Failed to boot, mark as failed */ setenv("bootargs", old_bootargs); - slot->successful_boot = 0; - slot->tries_remaining = 0; - slot->priority = 0; + __mark_slot_as_failed(slot, suffixes[slot_num]); ab_write_bootloader_message(dev, &misc_part, &message); } } -- cgit v1.2.3