Merge branch 'master' of /home/wd/git/u-boot/custodians
[platform/kernel/u-boot.git] / lib_sh / bootm.c
index 4ee7ff3..bc1c3da 100644 (file)
@@ -43,8 +43,6 @@
 
 #define RAMDISK_IMAGE_START_MASK       0x07FF
 
-extern int do_reset (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);
-
 #ifdef CFG_DEBUG
 static void hexdump (unsigned char *buf, int len)
 {
@@ -59,29 +57,11 @@ static void hexdump (unsigned char *buf, int len)
 }
 #endif
 
-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)
 {
-       ulong   ep = 0;
        char    *bootargs = getenv("bootargs");
 
-       /* 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;
-       }
-       void (*kernel) (void) = (void (*)(void))ep;
+       void (*kernel) (void) = (void (*)(void))images->ep;
 
        /* Setup parameters */
        memset(PARAM, 0, 0x1000);       /* Clear zero page */
@@ -89,9 +69,6 @@ void do_bootm_linux (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[],
 
        kernel();
        /* does not return */
-       return;
 
-error:
-       do_reset (cmdtp, flag, argc, argv);
-       return;
+       return 1;
 }