]> git.sur5r.net Git - u-boot/blobdiff - tools/mkimage.c
smc911x: fix typo in smc911x_handle_mac_address name
[u-boot] / tools / mkimage.c
index c43b20772694e9d78c880001c4187d2e32d8aaca..6826eae7710ce73280daaff6e3fe76ee5d294fe7 100644 (file)
@@ -148,6 +148,8 @@ main (int argc, char **argv)
        int retval = 0;
        struct image_type_params *tparams = NULL;
 
+       /* Init Kirkwood Boot image generation/list support */
+       init_kwb_image_type ();
        /* Init FIT image generation/list support */
        init_fit_image_type ();
        /* Init Default image generation/list support */
@@ -227,8 +229,15 @@ main (int argc, char **argv)
                        case 'f':
                                if (--argc <= 0)
                                        usage ();
+                               params.type = IH_TYPE_FLATDT;
                                params.datafile = *++argv;
                                params.fflag = 1;
+
+                               /*
+                                * The flattened image tree (FIT) format
+                                * requires a flattened device tree image type
+                                */
+                               params.type = IH_TYPE_FLATDT;
                                goto NXTARG;
                        case 'n':
                                if (--argc <= 0)
@@ -290,23 +299,35 @@ NXTARG:           ;
 
        params.imagefile = *argv;
 
-       if (!params.fflag){
-               if (params.lflag) {
-                       ifd = open (params.imagefile, O_RDONLY|O_BINARY);
-               } else {
-                       ifd = open (params.imagefile,
-                               O_RDWR|O_CREAT|O_TRUNC|O_BINARY, 0666);
-               }
+       if (params.fflag){
+               if (tparams->fflag_handle)
+                       /*
+                        * in some cases, some additional processing needs
+                        * to be done if fflag is defined
+                        *
+                        * For ex. fit_handle_file for Fit file support
+                        */
+                       retval = tparams->fflag_handle(&params);
 
-               if (ifd < 0) {
-                       fprintf (stderr, "%s: Can't open %s: %s\n",
-                               params.cmdname, params.imagefile,
-                               strerror(errno));
-                       exit (EXIT_FAILURE);
-               }
+               if (retval != EXIT_SUCCESS)
+                       exit (retval);
        }
 
-       if (params.lflag) {
+       if (params.lflag || params.fflag) {
+               ifd = open (params.imagefile, O_RDONLY|O_BINARY);
+       } else {
+               ifd = open (params.imagefile,
+                       O_RDWR|O_CREAT|O_TRUNC|O_BINARY, 0666);
+       }
+
+       if (ifd < 0) {
+               fprintf (stderr, "%s: Can't open %s: %s\n",
+                       params.cmdname, params.imagefile,
+                       strerror(errno));
+               exit (EXIT_FAILURE);
+       }
+
+       if (params.lflag || params.fflag) {
                /*
                 * list header information of existing image
                 */
@@ -343,17 +364,6 @@ NXTARG:            ;
                (void) munmap((void *)ptr, sbuf.st_size);
                (void) close (ifd);
 
-               exit (retval);
-       } else if (params.fflag) {
-               if (tparams->fflag_handle)
-                       /*
-                        * in some cases, some additional processing needs
-                        * to be done if fflag is defined
-                        *
-                        * For ex. fit_handle_file for Fit file support
-                        */
-                       retval = tparams->fflag_handle(&params);
-
                exit (retval);
        }