X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;ds=sidebyside;f=lib_blackfin%2Fbootm.c;h=195eb9c009782500cd542ddcc9ea833d2205ba6a;hb=24113a44ed5cd3257a0237c3961e121812fca6db;hp=54f69a92c79a9e96fb82daedc6228f9c6e575780;hpb=b315ad8f0aa0cf68ccc895d41c933d777fdaba8e;p=u-boot diff --git a/lib_blackfin/bootm.c b/lib_blackfin/bootm.c index 54f69a92c7..195eb9c009 100644 --- a/lib_blackfin/bootm.c +++ b/lib_blackfin/bootm.c @@ -14,8 +14,6 @@ #include #include -extern int do_reset (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]); - #ifdef SHARED_RESOURCES extern void swap_to(int device_id); #endif @@ -33,34 +31,19 @@ static char *make_command_line(void) return dest; } -void do_bootm_linux(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[], - bootm_headers_t *images) +int do_bootm_linux(int flag, int argc, char *argv[], bootm_headers_t *images) { int (*appl) (char *cmdline); char *cmdline; - ulong ep = 0; + + if ((flag != 0) && (flag != BOOTM_STATE_OS_GO)) + return 1; #ifdef SHARED_RESOURCES swap_to(FLASH); #endif - /* find kernel entry point */ - if (images->legacy_hdr_valid) { - ep = image_get_ep (&images->legacy_hdr_os_copy); -#if defined(CONFIG_FIT) - } else if (images->fit_uname_os) { - int ret = fit_image_get_entry (images->fit_hdr_os, - images->fit_noffset_os, &ep); - if (ret) { - puts ("Can't get entry point property!\n"); - goto error; - } -#endif - } else { - puts ("Could not find kernel entry point!\n"); - goto error; - } - appl = (int (*)(char *))ep; + appl = (int (*)(char *))images->ep; printf("Starting Kernel at = %x\n", appl); cmdline = make_command_line(); @@ -68,8 +51,6 @@ void do_bootm_linux(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[], dcache_disable(); (*appl) (cmdline); /* does not return */ - return; - error: - do_reset (cmdtp, flag, argc, argv); + return 1; }