summaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
authorSimon Glass <sjg@chromium.org>2020-07-09 18:39:43 -0600
committerSimon Glass <sjg@chromium.org>2020-07-25 14:46:57 -0600
commit152b246298bd5f107f5e08ddddee40411aa74cb7 (patch)
tree4b7059f6c53f85b2c0e03b985be845bddd8e1e17 /tools
parentb3295fd4e3d61a7ceabbad10a293db2dcd38b38b (diff)
mkimage: Allow updating the FIT timestamp
Normally the FIT timestamp is created the first time mkimage is run on a FIT, when converting the source .its to the binary .fit file. This corresponds to using the -f flag. But if the original input to mkimage is a binary file (already compiled) then the timestamp is assumed to have been set previously. Add a -t flag to allow setting the timestamp in this case. Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
Diffstat (limited to 'tools')
-rw-r--r--tools/fit_image.c2
-rw-r--r--tools/imagetool.h1
-rw-r--r--tools/mkimage.c5
3 files changed, 6 insertions, 2 deletions
diff --git a/tools/fit_image.c b/tools/fit_image.c
index a082d9386d..df310b53da 100644
--- a/tools/fit_image.c
+++ b/tools/fit_image.c
@@ -53,7 +53,7 @@ static int fit_add_file_data(struct image_tool_params *params, size_t size_inc,
}
/* for first image creation, add a timestamp at offset 0 i.e., root */
- if (params->datafile) {
+ if (params->datafile || params->reset_timestamp) {
time_t time = imagetool_get_source_date(params->cmdname,
sbuf.st_mtime);
ret = fit_set_timestamp(ptr, 0, time);
diff --git a/tools/imagetool.h b/tools/imagetool.h
index f54809cd57..acbc48e9be 100644
--- a/tools/imagetool.h
+++ b/tools/imagetool.h
@@ -81,6 +81,7 @@ struct image_tool_params {
unsigned int external_offset; /* Add padding to external data */
int bl_len; /* Block length in byte for external data */
const char *engine_id; /* Engine to use for signing */
+ bool reset_timestamp; /* Reset the timestamp on an existing image */
};
/*
diff --git a/tools/mkimage.c b/tools/mkimage.c
index 7cb666d482..43078d075c 100644
--- a/tools/mkimage.c
+++ b/tools/mkimage.c
@@ -145,7 +145,7 @@ static void process_args(int argc, char **argv)
int opt;
while ((opt = getopt(argc, argv,
- "a:A:b:B:c:C:d:D:e:Ef:Fk:i:K:ln:N:p:O:rR:qsT:vVx")) != -1) {
+ "a:A:b:B:c:C:d:D:e:Ef:Fk:i:K:ln:N:p:O:rR:qstT:vVx")) != -1) {
switch (opt) {
case 'a':
params.addr = strtoull(optarg, &ptr, 16);
@@ -269,6 +269,9 @@ static void process_args(int argc, char **argv)
case 's':
params.skipcpy = 1;
break;
+ case 't':
+ params.reset_timestamp = 1;
+ break;
case 'T':
if (strcmp(optarg, "list") == 0) {
show_valid_options(IH_TYPE);