clk: renesas: Synchronize Gen2 tables with Linux 5.0
[oweals/u-boot.git] / tools / mkimage.c
index 32e07be94af3b0e809e5807ef12d3ce8e01a48b0..2899adff81079e4a92edfe454e88c92d159d2e7a 100644 (file)
@@ -1,11 +1,10 @@
+// SPDX-License-Identifier: GPL-2.0+
 /*
  * (C) Copyright 2008 Semihalf
  *
  * (C) Copyright 2000-2009
  * DENX Software Engineering
  * Wolfgang Denk, wd@denx.de
- *
- * SPDX-License-Identifier:    GPL-2.0+
  */
 
 #include "mkimage.h"
@@ -319,6 +318,7 @@ int main(int argc, char **argv)
        struct image_type_params *tparams = NULL;
        int pad_len = 0;
        int dfd;
+       size_t map_len;
 
        params.cmdname = *argv;
        params.addr = 0;
@@ -409,7 +409,7 @@ int main(int argc, char **argv)
                 * Print the image information for matched image type
                 * Returns the error code if not matched
                 */
-               retval = imagetool_verify_print_header(ptr, &sbuf,
+               retval = imagetool_verify_print_header_by_type(ptr, &sbuf,
                                tparams, &params);
 
                (void) munmap((void *)ptr, sbuf.st_size);
@@ -516,6 +516,27 @@ int main(int argc, char **argv)
                } else if (params.type == IH_TYPE_PBLIMAGE) {
                        /* PBL has special Image format, implements its' own */
                        pbl_load_uboot(ifd, &params);
+               } else if (params.type == IH_TYPE_ZYNQMPBIF) {
+                       /* Image file is meta, walk through actual targets */
+                       int ret;
+
+                       ret = zynqmpbif_copy_image(ifd, &params);
+                       if (ret)
+                               return ret;
+               } else if (params.type == IH_TYPE_IMX8IMAGE) {
+                       /* i.MX8/8X has special Image format */
+                       int ret;
+
+                       ret = imx8image_copy_image(ifd, &params);
+                       if (ret)
+                               return ret;
+               } else if (params.type == IH_TYPE_IMX8MIMAGE) {
+                       /* i.MX8M has special Image format */
+                       int ret;
+
+                       ret = imx8mimage_copy_image(ifd, &params);
+                       if (ret)
+                               return ret;
                } else {
                        copy_file(ifd, params.datafile, pad_len);
                }
@@ -570,7 +591,8 @@ int main(int argc, char **argv)
        }
        params.file_size = sbuf.st_size;
 
-       ptr = mmap(0, sbuf.st_size, PROT_READ|PROT_WRITE, MAP_SHARED, ifd, 0);
+       map_len = sbuf.st_size;
+       ptr = mmap(0, map_len, PROT_READ | PROT_WRITE, MAP_SHARED, ifd, 0);
        if (ptr == MAP_FAILED) {
                fprintf (stderr, "%s: Can't map %s: %s\n",
                        params.cmdname, params.imagefile, strerror(errno));
@@ -594,7 +616,7 @@ int main(int argc, char **argv)
                        params.cmdname, tparams->name);
        }
 
-       (void) munmap((void *)ptr, sbuf.st_size);
+       (void)munmap((void *)ptr, map_len);
 
        /* We're a bit of paranoid */
 #if defined(_POSIX_SYNCHRONIZED_IO) && \