X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=common%2Fcmd_boot.c;h=9ccc8c798dd3767c0971c247f1c1a3c8491650ad;hb=4638b21f2ebc3781def51e82fb4e425a468f2e49;hp=a0bc04ba60ce4ea899dac8bdca7d0b17c8c698ce;hpb=8bde7f776c77b343aca29b8c7b58464d915ac245;p=u-boot diff --git a/common/cmd_boot.c b/common/cmd_boot.c index a0bc04ba60..9ccc8c798d 100644 --- a/common/cmd_boot.c +++ b/common/cmd_boot.c @@ -26,20 +26,22 @@ */ #include #include -#include #include -#include +/* Allow ports to override the default behavior */ +__attribute__((weak)) +unsigned long do_go_exec (ulong (*entry)(int, char * const []), int argc, char * const argv[]) +{ + return entry (argc, argv); +} -/* -------------------------------------------------------------------- */ - -int do_go (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) +int do_go (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) { ulong addr, rc; int rcode = 0; if (argc < 2) { - printf ("Usage:\n%s\n", cmdtp->usage); + cmd_usage(cmdtp); return 1; } @@ -51,7 +53,7 @@ int do_go (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) * pass address parameter as argv[0] (aka command name), * and all remaining args */ - rc = ((ulong (*)(int, char *[]))addr) (--argc, &argv[1]); + rc = do_go_exec ((void *)addr, argc - 1, argv + 1); if (rc != 0) rcode = 1; printf ("## Application terminated, rc = 0x%lX\n", rc); @@ -60,17 +62,17 @@ int do_go (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) /* -------------------------------------------------------------------- */ -cmd_tbl_t U_BOOT_CMD(GO) = MK_CMD_ENTRY( - "go", CFG_MAXARGS, 1, do_go, - "go - start application at address 'addr'\n", +U_BOOT_CMD( + go, CONFIG_SYS_MAXARGS, 1, do_go, + "start application at address 'addr'", "addr [arg ...]\n - start application at address 'addr'\n" - " passing 'arg' as arguments\n" + " passing 'arg' as arguments" ); -extern int do_reset (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]); +extern int do_reset (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]); -cmd_tbl_t U_BOOT_CMD(RESET) = MK_CMD_ENTRY( - "reset", 1, 0, do_reset, - "reset - Perform RESET of the CPU\n", - NULL +U_BOOT_CMD( + reset, 1, 0, do_reset, + "Perform RESET of the CPU", + "" );