[PATCH v3 5/5] cmd: mvebu: bubt: show image boot device
Joel Johnson
mrjoel at lixil.net
Mon Mar 23 18:43:07 CET 2020
When a mismatch is found trying to write an image for one boot method
to a different boot device, print an error message including the image
header marked target boot device type.
Signed-off-by: Joel Johnson <mrjoel at lixil.net>
Reviewed-by: Stefan Roese <sr at denx.de>
---
v2 changes:
- newly added in v2 series
v3 changes:
- none
---
cmd/mvebu/bubt.c | 15 ++++++++++++---
1 file changed, 12 insertions(+), 3 deletions(-)
diff --git a/cmd/mvebu/bubt.c b/cmd/mvebu/bubt.c
index fbcad37c40..f992507041 100644
--- a/cmd/mvebu/bubt.c
+++ b/cmd/mvebu/bubt.c
@@ -676,6 +676,17 @@ static int a38x_check_boot_mode(const struct bubt_dev *dst)
if (a38x_boot_modes[mode].id == hdr->blockid)
return 0;
+ for (int i = 0; i < A38X_BOOT_MODE_MAX; i++) {
+ if (a38x_boot_modes[i].id == hdr->blockid) {
+ printf("Error: image meant to be booted from "
+ " \"%s\", not \"%s\"!\n",
+ a38x_boot_modes[i].name, dst->name);
+ return -ENOEXEC;
+ }
+ }
+
+ printf("Error: unknown boot device in image header: 0x%x\n",
+ hdr->blockid);
return -ENOEXEC;
}
@@ -745,10 +756,8 @@ static int bubt_verify(const struct bubt_dev *dst)
#if defined(CONFIG_ARMADA_38X)
err = a38x_check_boot_mode(dst);
- if (err) {
- puts("Error: image not built for destination device!\n");
+ if (err)
return err;
- }
#endif
return 0;
--
2.25.0
More information about the U-Boot
mailing list