summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorQuentin Schulz <[email protected]>2025-09-23 12:27:22 +0200
committerTom Rini <[email protected]>2025-10-10 13:28:36 -0600
commitb3ab77345e3d1e7f40f1991e5072daf0f2d972dc (patch)
tree7bc8d265be241c823e2641916f9bbb191bd93298
parentabab733fc24158f0195967e5b6fc69a0de4658a3 (diff)
mkimage: fit: erase data-size property when importing data
When importing data, the data-offset property is removed and the data content is imported inside the data property of the node. When mkimage is run twice on the same FIT, data-size property is already set in the second run, from the first run (via the fit_export_data function). If we don't remove the data-size property, nothing guarantees it matches the actual size of data within the data property. To avoid possible mistakes when handling the data property, let's simply remove the data-size property as well. This also fixes an ordering issue of the data-size and data-offset properties in FIT when comparing the FIT after one run of mkimage and a second run. This is due to fit_export_data setting data-offset property first (it doesn't exist so it's added) and then data-size (it doesn't exist so it's added) for the first run, while it sets data-offset property first (removed in fit_import_data, so it doesn't exist so it's added) and then data-size (it exists already from the first run, so it's simply modified) for the second run. Signed-off-by: Quentin Schulz <[email protected]>
-rw-r--r--tools/fit_image.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/tools/fit_image.c b/tools/fit_image.c
index d026f6ff9c8..0306333141e 100644
--- a/tools/fit_image.c
+++ b/tools/fit_image.c
@@ -819,6 +819,14 @@ static int fit_import_data(struct image_tool_params *params, const char *fname)
ret = -EINVAL;
goto err_munmap;
}
+
+ ret = fdt_delprop(fdt, node, FIT_DATA_SIZE_PROP);
+ if (ret) {
+ debug("%s: Failed to erase %s property: %s\n", __func__,
+ FIT_DATA_SIZE_PROP, fdt_strerror(ret));
+ ret = -EINVAL;
+ goto err_munmap;
+ }
}
confs = fdt_path_offset(fdt, FIT_CONFS_PATH);