diff mbox series

[v6,5/5] cmd: mvebu: bubt: show image boot device

Message ID 20200417153808.2468508-5-mrjoel@lixil.net
State Accepted
Commit f60a66ef5d7da1980f180cd1cbfd2ce01157e522
Delegated to: Stefan Roese
Headers show
Series [v6,1/5] cmd: mvebu: bubt: add A38x support | expand

Commit Message

Joel Johnson April 17, 2020, 3:38 p.m. UTC
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@lixil.net>
Reviewed-by: Stefan Roese <sr@denx.de>

---

v2 changes:
  - newly added in v2 series
v3 changes:
  - none
v4 changes:
  - adjust to ARRAY_SIZE usage
v5 changes:
  - remove double space (one each line) in error message
v6 changes:
  - rebased on different location/naming from patch 3 of the
    bubt_check_boot_mode function

---
 cmd/mvebu/bubt.c | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)
diff mbox series

Patch

diff --git a/cmd/mvebu/bubt.c b/cmd/mvebu/bubt.c
index be6c5869a9..dc0ce01c35 100644
--- a/cmd/mvebu/bubt.c
+++ b/cmd/mvebu/bubt.c
@@ -728,7 +728,17 @@  static int bubt_check_boot_mode(const struct bubt_dev *dst)
 		if (a38x_boot_modes[mode].id == hdr->blockid)
 			return 0;
 
-		puts("Error: A38x image not built for destination device!\n");
+		for (int i = 0; i < ARRAY_SIZE(a38x_boot_modes); i++) {
+			if (a38x_boot_modes[i].id == hdr->blockid) {
+				printf("Error: A38x 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 A38x image header: "
+		       "0x%x\n", hdr->blockid);
 		return -ENOEXEC;
 	} else {
 		return 0;