]> git.ipfire.org Git - people/ms/u-boot.git/blobdiff - lib_nios2/bootm.c
[new uImage] Add dual format uImage support framework
[people/ms/u-boot.git] / lib_nios2 / bootm.c
index cb843246b87e3c4f5ae437d5832d65bd9f482465..56d1d19dd4db60b0cfa9cefb5fe9da0b9659b4d7 100644 (file)
 #include <command.h>
 #include <asm/byteorder.h>
 
+extern int do_reset (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);
+
 void do_bootm_linux(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[],
-               image_header_t *hdr, int verify)
+               bootm_headers_t *images, int verify)
 {
-       void (*kernel)(void) = (void (*)(void))image_get_ep (hdr);
+       ulong   ep = 0;
+
+       /* find kernel entry point */
+       if (images->legacy_hdr_valid) {
+               ep = image_get_ep (images->legacy_hdr_os);
+#if defined(CONFIG_FIT)
+       } else if (images->fit_uname_os) {
+               fit_unsupported_reset ("NIOS2 linux bootm");
+               do_reset (cmdtp, flag, argc, argv);
+#endif
+       } else {
+               puts ("Could not find kernel entry point!\n");
+               do_reset (cmdtp, flag, argc, argv);
+       }
+       void (*kernel)(void) = (void (*)(void))ep;
 
        /* For now we assume the Microtronix linux ... which only
         * needs to be called ;-)