bootm: do not hang on failure
authorHeinrich Schuchardt <xypron.glpk@gmx.de>
Wed, 17 Feb 2021 11:55:54 +0000 (12:55 +0100)
committerTom Rini <trini@konsulko.com>
Mon, 12 Apr 2021 21:17:11 +0000 (17:17 -0400)
On ARMv8 systems

    load mmc 0:1 $loadaddr  vmlinuz-5.10.0-3-arm64
    booti

leads to a hanging system requiring to physically reset the system:

    FDT and ATAGS support not compiled in - hanging
    ### ERROR ### Please RESET the board ###

For systems where physical access is difficult hanging is a poor choice.
It is preferable to reset the system when U-Boot reaches a state that is
not recoverable.

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Reviewed-by: Simon Glass <sjg@chromium.org>
arch/arm/lib/bootm.c

index 11af9e2..f60ee3a 100644 (file)
@@ -16,7 +16,6 @@
 #include <command.h>
 #include <cpu_func.h>
 #include <dm.h>
-#include <hang.h>
 #include <lmb.h>
 #include <log.h>
 #include <asm/global_data.h>
@@ -249,8 +248,7 @@ static void boot_prep_linux(bootm_headers_t *images)
 #ifdef CONFIG_OF_LIBFDT
                debug("using: FDT\n");
                if (image_setup_linux(images)) {
-                       printf("FDT creation failed! hanging...");
-                       hang();
+                       panic("FDT creation failed!");
                }
 #endif
        } else if (BOOTM_ENABLE_TAGS) {
@@ -283,8 +281,7 @@ static void boot_prep_linux(bootm_headers_t *images)
                setup_board_tags(&params);
                setup_end_tag(gd->bd);
        } else {
-               printf("FDT and ATAGS support not compiled in - hanging\n");
-               hang();
+               panic("FDT and ATAGS support not compiled in\n");
        }
 
        board_prep_linux(images);