[PATCH] spl: spl_nor: use panic instead of hang if booting fails

Mario Kicherer dev at kicherer.org
Mon Jan 30 11:03:03 CET 2023


On systems without a watchdog, using hang() prevents a system to
recover from an error. For example, a board could implement a boot
counter to switch to an alternative load address after some failed
tries.

Signed-off-by: Mario Kicherer <dev at kicherer.org>
---
 common/spl/spl.c | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

diff --git a/common/spl/spl.c b/common/spl/spl.c
index 2855cdd117..d1aa2fb8a9 100644
--- a/common/spl/spl.c
+++ b/common/spl/spl.c
@@ -822,11 +822,10 @@ void board_init_r(gd_t *dummy1, ulong dummy2)
 	if (ret) {
 		if (CONFIG_IS_ENABLED(SHOW_ERRORS) &&
 		    CONFIG_IS_ENABLED(LIBCOMMON_SUPPORT))
-			printf(SPL_TPL_PROMPT "failed to boot from all boot devices (err=%d)\n",
-			       ret);
+			panic(SPL_TPL_PROMPT "failed to boot from all boot devices (err=%d)\n",
+			      ret);
 		else
-			puts(SPL_TPL_PROMPT "failed to boot from all boot devices\n");
-		hang();
+			panic_str(SPL_TPL_PROMPT "failed to boot from all boot devices\n");
 	}
 
 	spl_perform_fixups(&spl_image);
-- 
2.34.1



More information about the U-Boot mailing list