diff options
author | Alexandru Timohi <alexandru.timohi@intel.com> | 2016-04-14 11:27:18 +0300 |
---|---|---|
committer | Mihai Serban <mihai.serban@intel.com> | 2016-05-10 15:53:18 +0300 |
commit | eb94feb0984b65b2fe98fadc04f766f126514694 (patch) | |
tree | 04955188b7d96d9050ffab36cca4a6987118d031 | |
parent | 56ec6fbcf3c91678b5fc0d9d25a536410af8202a (diff) | |
download | edison-u-boot-eb94feb0984b65b2fe98fadc04f766f126514694.tar.gz |
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 <alexandru.timohi@intel.com>
Reviewed-on: https://android.intel.com/494518
Reviewed-by: Stanacar, Stefan <stefan.stanacar@intel.com>
Reviewed-by: Patru, Irina <irina.patru@intel.com>
Reviewed-by: Serban, Mihai <mihai.serban@intel.com>
-rw-r--r-- | common/cmd_boot_brillo.c | 15 |
1 files 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); } } |