]> git.sur5r.net Git - u-boot/blobdiff - tools/fit_image.c
tools/kwbimage.h: make offset marks style consistent
[u-boot] / tools / fit_image.c
index 10fd6d4929374728732efd63e327cab36275766e..4dc8bd8862454598d1bf5383b259707a06cfccba 100644 (file)
@@ -59,7 +59,8 @@ static int fit_add_file_data(struct image_tool_params *params, size_t size_inc,
        if (!ret) {
                ret = fit_add_verification_data(params->keydir, dest_blob, ptr,
                                                params->comment,
-                                               params->require_keys);
+                                               params->require_keys,
+                                               params->engine_id);
        }
 
        if (dest_blob) {
@@ -85,8 +86,15 @@ static int fit_calc_size(struct image_tool_params *params)
        size = imagetool_get_filesize(params, params->datafile);
        if (size < 0)
                return -1;
-
        total_size = size;
+
+       if (params->fit_ramdisk) {
+               size = imagetool_get_filesize(params, params->fit_ramdisk);
+               if (size < 0)
+                       return -1;
+               total_size += size;
+       }
+
        for (cont = params->content_head; cont; cont = cont->next) {
                size = imagetool_get_filesize(params, cont->fname);
                if (size < 0)
@@ -233,6 +241,20 @@ static int fit_write_images(struct image_tool_params *params, char *fdt)
                fdt_end_node(fdt);
        }
 
+       /* And a ramdisk file if available */
+       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));
+
+               ret = fdt_property_file(params, fdt, "data", params->fit_ramdisk);
+               if (ret)
+                       return ret;
+
+               fdt_end_node(fdt);
+       }
+
        fdt_end_node(fdt);
 
        return 0;
@@ -272,15 +294,25 @@ static void fit_write_configs(struct image_tool_params *params, char *fdt)
                snprintf(str, sizeof(str), "%s@1", typename);
                fdt_property_string(fdt, typename, str);
 
+               if (params->fit_ramdisk)
+                       fdt_property_string(fdt, FIT_RAMDISK_PROP,
+                                           FIT_RAMDISK_PROP "@1");
+
                snprintf(str, sizeof(str), FIT_FDT_PROP "@%d", upto);
                fdt_property_string(fdt, FIT_FDT_PROP, str);
                fdt_end_node(fdt);
        }
+
        if (!upto) {
                fdt_begin_node(fdt, "conf@1");
                typename = genimg_get_type_short_name(params->fit_image_type);
                snprintf(str, sizeof(str), "%s@1", typename);
                fdt_property_string(fdt, typename, str);
+
+               if (params->fit_ramdisk)
+                       fdt_property_string(fdt, FIT_RAMDISK_PROP,
+                                           FIT_RAMDISK_PROP "@1");
+
                fdt_end_node(fdt);
        }