upgrade mkimage the current git version
[openwrt/svn-archive/archive.git] / tools / mkimage / src / mkimage.c
index 136075c50a42667045f0c670cc143582ae7feb62..67123d93443b3715f13598a1f89471ff1980b95f 100644 (file)
@@ -93,6 +93,8 @@ table_entry_t arch_name[] = {
     {  IH_CPU_SH,              "sh",           "SuperH",       },
     {  IH_CPU_SPARC,           "sparc",        "SPARC",        },
     {  IH_CPU_SPARC64,         "sparc64",      "SPARC 64 Bit", },
+    {  IH_CPU_BLACKFIN,        "blackfin",     "Blackfin",     },
+    {  IH_CPU_AVR32,           "avr32",        "AVR32",        },
     {  -1,                     "",             "",             },
 };
 
@@ -129,6 +131,7 @@ table_entry_t type_name[] = {
     {  IH_TYPE_RAMDISK,    "ramdisk",    "RAMDisk Image",      },
     {  IH_TYPE_SCRIPT,     "script",     "Script",             },
     {  IH_TYPE_STANDALONE, "standalone", "Standalone Program", },
+    {  IH_TYPE_FLATDT,     "flat_dt",    "Flat Device Tree",   },
     {  -1,                 "",           "",                   },
 };
 
@@ -276,7 +279,8 @@ NXTARG:             ;
         */
        if (xflag) {
                if (ep != addr + sizeof(image_header_t)) {
-                       fprintf (stderr, "%s: For XIP, the entry point must be the load addr + %lu\n",
+                       fprintf (stderr,
+                               "%s: For XIP, the entry point must be the load addr + %lu\n",
                                cmdname,
                                (unsigned long)sizeof(image_header_t));
                        exit (EXIT_FAILURE);
@@ -346,8 +350,9 @@ NXTARG:             ;
 
                if (crc32 (0, data, len) != checksum) {
                        fprintf (stderr,
-                               "*** Warning: \"%s\" has bad header checksum!\n",
-                               imagefile);
+                               "%s: ERROR: \"%s\" has bad header checksum!\n",
+                               cmdname, imagefile);
+                       exit (EXIT_FAILURE);
                }
 
                data = (char *)(ptr + sizeof(image_header_t));
@@ -355,8 +360,9 @@ NXTARG:             ;
 
                if (crc32 (0, data, len) != ntohl(hdr->ih_dcrc)) {
                        fprintf (stderr,
-                               "*** Warning: \"%s\" has corrupted data!\n",
-                               imagefile);
+                               "%s: ERROR: \"%s\" has corrupted data!\n",
+                               cmdname, imagefile);
+                       exit (EXIT_FAILURE);
                }
 
                /* for multi-file images we need the data part, too */
@@ -383,7 +389,7 @@ NXTARG:             ;
 
        if (opt_type == IH_TYPE_MULTI || opt_type == IH_TYPE_SCRIPT) {
                char *file = datafile;
-               unsigned long size;
+               uint32_t size;
 
                for (;;) {
                        char *sep = NULL;
@@ -440,7 +446,7 @@ NXTARG:             ;
        }
 
        /* We're a bit of paranoid */
-#if defined(_POSIX_SYNCHRONIZED_IO) && !defined(__sun__) && !defined(__FreeBSD__) && !defined(__APPLE__)
+#if defined(_POSIX_SYNCHRONIZED_IO) && !defined(__sun__) && !defined(__FreeBSD__)
        (void) fdatasync (ifd);
 #else
        (void) fsync (ifd);
@@ -490,7 +496,7 @@ NXTARG:             ;
        (void) munmap((void *)ptr, sbuf.st_size);
 
        /* We're a bit of paranoid */
-#if defined(_POSIX_SYNCHRONIZED_IO) && !defined(__sun__) && !defined(__FreeBSD__) && !defined(__APPLE__)
+#if defined(_POSIX_SYNCHRONIZED_IO) && !defined(__sun__) && !defined(__FreeBSD__)
        (void) fdatasync (ifd);
 #else
        (void) fsync (ifd);
@@ -628,7 +634,7 @@ print_header (image_header_t *hdr)
        if (hdr->ih_type == IH_TYPE_MULTI || hdr->ih_type == IH_TYPE_SCRIPT) {
                int i, ptrs;
                uint32_t pos;
-               unsigned long *len_ptr = (unsigned long *) (
+               uint32_t *len_ptr = (uint32_t *) (
                                        (unsigned long)hdr + sizeof(image_header_t)
                                );