tools/mkimage: update to 2023.10
[openwrt/staging/stintel.git] / tools / mkimage / patches / 030-allow-to-use-different-magic.patch
index 936113595a332abea418fac3317147d307970dcc..3689fcb531538df147e1b182e6cd4f11eabe0880 100644 (file)
@@ -2,7 +2,7 @@ This patch makes it possible to set a custom image magic.
 
 --- a/tools/mkimage.c
 +++ b/tools/mkimage.c
-@@ -24,6 +24,7 @@ static struct image_tool_params params =
+@@ -26,6 +26,7 @@ static struct image_tool_params params =
        .arch = IH_ARCH_PPC,
        .type = IH_TYPE_KERNEL,
        .comp = IH_COMP_GZIP,
@@ -10,8 +10,8 @@ This patch makes it possible to set a custom image magic.
        .dtc = MKIMAGE_DEFAULT_DTC_OPTIONS,
        .imagename = "",
        .imagename2 = "",
-@@ -85,11 +86,12 @@ static void usage(const char *msg)
-                        "          -l ==> list image header information\n",
+@@ -89,11 +90,12 @@ static void usage(const char *msg)
+                        "          -q ==> quiet\n",
                params.cmdname);
        fprintf(stderr,
 -              "       %s [-x] -A arch -O os -T type -C comp -a addr -e ep -n name -d data_file[:data_file...] image\n"
@@ -24,16 +24,16 @@ This patch makes it possible to set a custom image magic.
                "          -a ==> set load address to 'addr' (hex)\n"
                "          -e ==> set entry point to 'ep' (hex)\n"
                "          -n ==> set image name to 'name'\n"
-@@ -155,7 +157,7 @@ static void process_args(int argc, char
-       int opt;
+@@ -159,7 +161,7 @@ static int add_content(int type, const c
+ }
  
-       while ((opt = getopt(argc, argv,
--                 "a:A:b:B:c:C:d:D:e:Ef:FG:k:i:K:ln:N:p:O:rR:qstT:vVx")) != -1) {
-+                 "a:A:b:B:c:C:d:D:e:Ef:FG:k:i:K:lM:n:N:p:O:rR:qstT:vVx")) != -1) {
-               switch (opt) {
-               case 'a':
-                       params.addr = strtoull(optarg, &ptr, 16);
-@@ -245,6 +247,14 @@ static void process_args(int argc, char
+ static const char optstring[] =
+-      "a:A:b:B:c:C:d:D:e:Ef:Fg:G:i:k:K:ln:N:o:O:p:qrR:stT:vVx";
++      "a:A:b:B:c:C:d:D:e:Ef:Fg:G:i:k:K:lM:n:N:o:O:p:qrR:stT:vVx";
+ static const struct option longopts[] = {
+       { "load-address", required_argument, NULL, 'a' },
+@@ -302,6 +304,14 @@ static void process_args(int argc, char
                case 'l':
                        params.lflag = 1;
                        break;
@@ -50,7 +50,16 @@ This patch makes it possible to set a custom image magic.
                        break;
 --- a/tools/default_image.c
 +++ b/tools/default_image.c
-@@ -120,7 +120,7 @@ static void image_set_header(void *ptr,
+@@ -68,7 +68,7 @@ static int image_verify_header(unsigned
+        */
+       memcpy(hdr, ptr, sizeof(struct legacy_img_hdr));
+-      if (be32_to_cpu(hdr->ih_magic) != IH_MAGIC) {
++      if (be32_to_cpu(hdr->ih_magic) != params->magic) {
+               debug("%s: Bad Magic Number: \"%s\" is no valid image\n",
+                     params->cmdname, params->imagefile);
+               return -FDT_ERR_BADMAGIC;
+@@ -147,7 +147,7 @@ static void image_set_header(void *ptr,
        }
  
        /* Build new header */
@@ -61,7 +70,7 @@ This patch makes it possible to set a custom image magic.
        image_set_load(hdr, addr);
 --- a/tools/imagetool.h
 +++ b/tools/imagetool.h
-@@ -56,6 +56,7 @@ struct image_tool_params {
+@@ -67,6 +67,7 @@ struct image_tool_params {
        int arch;
        int type;
        int comp;