aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/configs/vexpress_aemv8a.h26
1 files changed, 19 insertions, 7 deletions
diff --git a/include/configs/vexpress_aemv8a.h b/include/configs/vexpress_aemv8a.h
index de31313998..977d2f0d49 100644
--- a/include/configs/vexpress_aemv8a.h
+++ b/include/configs/vexpress_aemv8a.h
@@ -224,13 +224,25 @@
"systemd.log_target=null "\
"loglevel=9"
-#define CONFIG_BOOTCOMMAND "smhload ${kernel_name} ${kernel_addr}; " \
- "smhload ${fdt_name} ${fdt_addr}; " \
- "smhload ${initrd_name} ${initrd_addr} "\
- "initrd_end; " \
- "fdt addr ${fdt_addr}; fdt resize; " \
- "fdt chosen ${initrd_addr} ${initrd_end}; " \
- "booti $kernel_addr - $fdt_addr"
+#define CONFIG_BOOTCOMMAND "if smhload ${fdt_name} ${fdt_addr}; then "\
+ " if smhload ${initrd_name} ${initrd_addr} "\
+ " initrd_end; then " \
+ " if smhload ${kernel_name} "\
+ " ${kernel_addr}; then " \
+ " fdt addr ${fdt_addr}; fdt resize; "\
+ " fdt chosen ${initrd_addr} "\
+ " ${initrd_end}; "\
+ " booti ${kernel_addr} - ${fdt_addr}; "\
+ " else; " \
+ " exit; " \
+ " fi; " \
+ " else; " \
+ " exit; " \
+ " fi; " \
+ "fi; " \
+ "echo semihosting load failed, try booting "\
+ "with contents of DRAM; " \
+ "booti $kernel_addr $initrd_addr $fdt_addr"
#elif CONFIG_TARGET_VEXPRESS64_BASE_FVP_DRAM