Merge branch '2019-10-24-UFS-support'
[oweals/u-boot.git] / tools / fit_image.c
index 6f09a661067e53d4bbe61d23dbc6fffa459da664..5aca634b5e935e6baf95312eef48f028f7cd8f2e 100644 (file)
@@ -33,7 +33,8 @@ static int fit_add_file_data(struct image_tool_params *params, size_t size_inc,
        void *ptr;
        int ret = 0;
 
-       tfd = mmap_fdt(params->cmdname, tmpfile, size_inc, &ptr, &sbuf, true);
+       tfd = mmap_fdt(params->cmdname, tmpfile, size_inc, &ptr, &sbuf, true,
+                      false);
        if (tfd < 0)
                return -EIO;
 
@@ -41,7 +42,8 @@ static int fit_add_file_data(struct image_tool_params *params, size_t size_inc,
                struct stat dest_sbuf;
 
                destfd = mmap_fdt(params->cmdname, params->keydest, size_inc,
-                                 &dest_blob, &dest_sbuf, false);
+                                 &dest_blob, &dest_sbuf, false,
+                                 false);
                if (destfd < 0) {
                        ret = -EIO;
                        goto err_keydest;
@@ -60,7 +62,8 @@ static int fit_add_file_data(struct image_tool_params *params, size_t size_inc,
                ret = fit_add_verification_data(params->keydir, dest_blob, ptr,
                                                params->comment,
                                                params->require_keys,
-                                               params->engine_id);
+                                               params->engine_id,
+                                               params->cmdname);
        }
 
        if (dest_blob) {
@@ -201,21 +204,22 @@ static int fit_write_images(struct image_tool_params *params, char *fdt)
        typename = genimg_get_type_short_name(params->fit_image_type);
        snprintf(str, sizeof(str), "%s-1", typename);
        fdt_begin_node(fdt, str);
-       fdt_property_string(fdt, "description", params->imagename);
-       fdt_property_string(fdt, "type", typename);
-       fdt_property_string(fdt, "arch",
+       fdt_property_string(fdt, FIT_DESC_PROP, params->imagename);
+       fdt_property_string(fdt, FIT_TYPE_PROP, typename);
+       fdt_property_string(fdt, FIT_ARCH_PROP,
                            genimg_get_arch_short_name(params->arch));
-       fdt_property_string(fdt, "os", genimg_get_os_short_name(params->os));
-       fdt_property_string(fdt, "compression",
+       fdt_property_string(fdt, FIT_OS_PROP,
+                           genimg_get_os_short_name(params->os));
+       fdt_property_string(fdt, FIT_COMP_PROP,
                            genimg_get_comp_short_name(params->comp));
-       fdt_property_u32(fdt, "load", params->addr);
-       fdt_property_u32(fdt, "entry", params->ep);
+       fdt_property_u32(fdt, FIT_LOAD_PROP, params->addr);
+       fdt_property_u32(fdt, FIT_ENTRY_PROP, params->ep);
 
        /*
         * Put data last since it is large. SPL may only load the first part
         * of the DT, so this way it can access all the above fields.
         */
-       ret = fdt_property_file(params, fdt, "data", params->datafile);
+       ret = fdt_property_file(params, fdt, FIT_DATA_PROP, params->datafile);
        if (ret)
                return ret;
        fdt_end_node(fdt);
@@ -229,14 +233,15 @@ static int fit_write_images(struct image_tool_params *params, char *fdt)
                fdt_begin_node(fdt, str);
 
                get_basename(str, sizeof(str), cont->fname);
-               fdt_property_string(fdt, "description", str);
-               ret = fdt_property_file(params, fdt, "data", cont->fname);
+               fdt_property_string(fdt, FIT_DESC_PROP, str);
+               ret = fdt_property_file(params, fdt, FIT_DATA_PROP,
+                                       cont->fname);
                if (ret)
                        return ret;
-               fdt_property_string(fdt, "type", typename);
-               fdt_property_string(fdt, "arch",
+               fdt_property_string(fdt, FIT_TYPE_PROP, typename);
+               fdt_property_string(fdt, FIT_ARCH_PROP,
                                    genimg_get_arch_short_name(params->arch));
-               fdt_property_string(fdt, "compression",
+               fdt_property_string(fdt, FIT_COMP_PROP,
                                    genimg_get_comp_short_name(IH_COMP_NONE));
                fdt_end_node(fdt);
        }
@@ -245,10 +250,12 @@ static int fit_write_images(struct image_tool_params *params, char *fdt)
        if (params->fit_ramdisk) {
                fdt_begin_node(fdt, FIT_RAMDISK_PROP "-1");
 
-               fdt_property_string(fdt, "type", FIT_RAMDISK_PROP);
-               fdt_property_string(fdt, "os", genimg_get_os_short_name(params->os));
+               fdt_property_string(fdt, FIT_TYPE_PROP, FIT_RAMDISK_PROP);
+               fdt_property_string(fdt, FIT_OS_PROP,
+                                   genimg_get_os_short_name(params->os));
 
-               ret = fdt_property_file(params, fdt, "data", params->fit_ramdisk);
+               ret = fdt_property_file(params, fdt, FIT_DATA_PROP,
+                                       params->fit_ramdisk);
                if (ret)
                        return ret;
 
@@ -277,7 +284,7 @@ static void fit_write_configs(struct image_tool_params *params, char *fdt)
        int upto;
 
        fdt_begin_node(fdt, "configurations");
-       fdt_property_string(fdt, "default", "conf-1");
+       fdt_property_string(fdt, FIT_DEFAULT_PROP, "conf-1");
 
        upto = 0;
        for (cont = params->content_head; cont; cont = cont->next) {
@@ -288,11 +295,12 @@ static void fit_write_configs(struct image_tool_params *params, char *fdt)
                fdt_begin_node(fdt, str);
 
                get_basename(str, sizeof(str), cont->fname);
-               fdt_property_string(fdt, "description", str);
+               fdt_property_string(fdt, FIT_DESC_PROP, str);
 
                typename = genimg_get_type_short_name(params->fit_image_type);
                snprintf(str, sizeof(str), "%s-1", typename);
                fdt_property_string(fdt, typename, str);
+               fdt_property_string(fdt, FIT_LOADABLE_PROP, str);
 
                if (params->fit_ramdisk)
                        fdt_property_string(fdt, FIT_RAMDISK_PROP,
@@ -328,7 +336,7 @@ static int fit_build_fdt(struct image_tool_params *params, char *fdt, int size)
                return ret;
        fdt_finish_reservemap(fdt);
        fdt_begin_node(fdt, "");
-       fdt_property_strf(fdt, "description",
+       fdt_property_strf(fdt, FIT_DESC_PROP,
                          "%s image with one or more FDT blobs",
                          genimg_get_type_name(params->fit_image_type));
        fdt_property_strf(fdt, "creator", "U-Boot mkimage %s", PLAIN_VERSION);
@@ -414,7 +422,7 @@ static int fit_extract_data(struct image_tool_params *params, const char *fname)
        int images;
        int node;
 
-       fd = mmap_fdt(params->cmdname, fname, 0, &fdt, &sbuf, false);
+       fd = mmap_fdt(params->cmdname, fname, 0, &fdt, &sbuf, false, false);
        if (fd < 0)
                return -EIO;
        fit_size = fdt_totalsize(fdt);
@@ -440,25 +448,26 @@ static int fit_extract_data(struct image_tool_params *params, const char *fname)
                const char *data;
                int len;
 
-               data = fdt_getprop(fdt, node, "data", &len);
+               data = fdt_getprop(fdt, node, FIT_DATA_PROP, &len);
                if (!data)
                        continue;
                memcpy(buf + buf_ptr, data, len);
                debug("Extracting data size %x\n", len);
 
-               ret = fdt_delprop(fdt, node, "data");
+               ret = fdt_delprop(fdt, node, FIT_DATA_PROP);
                if (ret) {
                        ret = -EPERM;
                        goto err_munmap;
                }
                if (params->external_offset > 0) {
                        /* An external offset positions the data absolutely. */
-                       fdt_setprop_u32(fdt, node, "data-position",
+                       fdt_setprop_u32(fdt, node, FIT_DATA_POSITION_PROP,
                                        params->external_offset + buf_ptr);
                } else {
-                       fdt_setprop_u32(fdt, node, "data-offset", buf_ptr);
+                       fdt_setprop_u32(fdt, node, FIT_DATA_OFFSET_PROP,
+                                       buf_ptr);
                }
-               fdt_setprop_u32(fdt, node, "data-size", len);
+               fdt_setprop_u32(fdt, node, FIT_DATA_SIZE_PROP, len);
 
                buf_ptr += (len + 3) & ~3;
        }
@@ -524,7 +533,7 @@ static int fit_import_data(struct image_tool_params *params, const char *fname)
        int images;
        int node;
 
-       fd = mmap_fdt(params->cmdname, fname, 0, &old_fdt, &sbuf, false);
+       fd = mmap_fdt(params->cmdname, fname, 0, &old_fdt, &sbuf, false, false);
        if (fd < 0)
                return -EIO;
        fit_size = fdt_totalsize(old_fdt);