bootm: Adjust how the board is reset
authorSimon Glass <sjg@chromium.org>
Sat, 16 Dec 2023 03:14:10 +0000 (20:14 -0700)
committerTom Rini <trini@konsulko.com>
Thu, 21 Dec 2023 21:07:52 +0000 (16:07 -0500)
Use reset_cpu() to reset the board, copying the logic from the 'reset'
command. This makes more sense than directly calling the do_reset()
function with the arguments passsed to the bootm command.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Tom Rini <trini@konsulko.com>
Reviewed-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
boot/bootm.c

index 301cfde..8a0dba5 100644 (file)
@@ -1140,10 +1140,12 @@ err:
        if (iflag)
                enable_interrupts();
 
-       if (ret == BOOTM_ERR_UNIMPLEMENTED)
+       if (ret == BOOTM_ERR_UNIMPLEMENTED) {
                bootstage_error(BOOTSTAGE_ID_DECOMP_UNIMPL);
-       else if (ret == BOOTM_ERR_RESET)
-               do_reset(cmdtp, flag, argc, argv);
+       } else if (ret == BOOTM_ERR_RESET) {
+               printf("Resetting the board...\n");
+               reset_cpu();
+       }
 
        return ret;
 }