]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
mkimage: Allow updating the FIT timestamp
authorSimon Glass <sjg@chromium.org>
Fri, 10 Jul 2020 00:39:43 +0000 (18:39 -0600)
committerSimon Glass <sjg@chromium.org>
Mon, 20 Jul 2020 17:37:47 +0000 (11:37 -0600)
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>
doc/mkimage.1
tools/fit_image.c
tools/imagetool.h
tools/mkimage.c

index 3dcdcedcefafe1346f7fc57c063a438f4b5d9015..fea52887846c3e1572683186964774ef95fbdb8e 100644 (file)
@@ -167,6 +167,15 @@ Specifies that keys used to sign the FIT are required. This means that they
 must be verified for the image to boot. Without this option, the verification
 will be optional (useful for testing but not for release).
 
+.TP
+.BI "\-t
+Update the timestamp in the FIT.
+
+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.
+
 .SH EXAMPLES
 
 List image information:
index a082d9386d200d095753eae45fec826b1a718269..df310b53da38fc02365e1f3cf89c8db7b47362de 100644 (file)
@@ -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);
index f54809cd57864f8312b378afd513d5470e359ae1..acbc48e9be0d681897e01df43bb63345466ff938 100644 (file)
@@ -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 */
 };
 
 /*
index 7cb666d4822ee3ea5565371b96f6b5fde57a680e..43078d075cf5ebf6bc4bab73ae85f96894223267 100644 (file)
@@ -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);