diff options
author | Tom Rini <trini@konsulko.com> | 2019-03-08 18:04:13 -0500 |
---|---|---|
committer | Tom Rini <trini@konsulko.com> | 2019-03-08 18:04:13 -0500 |
commit | e8e3f2d2d48f97b2c79b698eccedce8f4f880993 (patch) | |
tree | dc92c94f1c2451050dbfe07c18909d27d621be90 /tools | |
parent | 606b239a6c60868da1767b973e5f9c3e6eae48fe (diff) | |
parent | 279dc04f25538eb69f4377d73a9f2889a651cf5f (diff) |
Merge branch '2019-03-08-master-imports'
- Assorted minor fixes:
- ARM: qemu-arm: enable USB boot in distro boot with UEFI
- image: fdt: handle coalesced reserve region
- cmd: thordown: Fix spelling of download.
- fdt: Fix FIT header verification in mkimage and conduct same checks
as bootm
- test: Update test-imagetools.sh to match new syntax
Diffstat (limited to 'tools')
-rw-r--r-- | tools/fit_common.c | 5 | ||||
-rw-r--r-- | tools/fit_common.h | 8 | ||||
-rw-r--r-- | tools/imagetool.c | 34 | ||||
-rw-r--r-- | tools/imagetool.h | 19 | ||||
-rw-r--r-- | tools/mkimage.c | 2 |
5 files changed, 65 insertions, 3 deletions
diff --git a/tools/fit_common.c b/tools/fit_common.c index d96085eaad..9506390214 100644 --- a/tools/fit_common.c +++ b/tools/fit_common.c @@ -26,7 +26,10 @@ int fit_verify_header(unsigned char *ptr, int image_size, struct image_tool_params *params) { - return fdt_check_header(ptr); + if (fdt_check_header(ptr) != EXIT_SUCCESS || !fit_check_format(ptr)) + return EXIT_FAILURE; + + return EXIT_SUCCESS; } int fit_check_image_types(uint8_t type) diff --git a/tools/fit_common.h b/tools/fit_common.h index 71e792e3c4..9e09624f64 100644 --- a/tools/fit_common.h +++ b/tools/fit_common.h @@ -10,6 +10,14 @@ #include "mkimage.h" #include <image.h> +/** + * Verify the format of FIT header pointed to by ptr + * + * @ptr: image header to be verified + * @image_size: size of while image + * @params: mkimage parameters + * @return 0 if OK, -1 on error + */ int fit_verify_header(unsigned char *ptr, int image_size, struct image_tool_params *params); diff --git a/tools/imagetool.c b/tools/imagetool.c index b3e628f612..ba1f64aa37 100644 --- a/tools/imagetool.c +++ b/tools/imagetool.c @@ -46,7 +46,7 @@ int imagetool_verify_print_header( if (retval == 0) { /* - * Print the image information if verify is + * Print the image information if verify is * successful */ if ((*curr)->print_header) { @@ -65,6 +65,38 @@ int imagetool_verify_print_header( return retval; } +int imagetool_verify_print_header_by_type( + void *ptr, + struct stat *sbuf, + struct image_type_params *tparams, + struct image_tool_params *params) +{ + int retval; + + retval = tparams->verify_header((unsigned char *)ptr, sbuf->st_size, + params); + + if (retval == 0) { + /* + * Print the image information if verify is successful + */ + if (tparams->print_header) { + if (!params->quiet) + tparams->print_header(ptr); + } else { + fprintf(stderr, + "%s: print_header undefined for %s\n", + params->cmdname, tparams->name); + } + } else { + fprintf(stderr, + "%s: verify_header failed for %s with exit code %d\n", + params->cmdname, tparams->name, retval); + } + + return retval; +} + int imagetool_save_subimage( const char *file_name, ulong file_data, diff --git a/tools/imagetool.h b/tools/imagetool.h index 71471420f9..2689a4004a 100644 --- a/tools/imagetool.h +++ b/tools/imagetool.h @@ -179,6 +179,25 @@ int imagetool_verify_print_header( struct image_type_params *tparams, struct image_tool_params *params); +/* + * imagetool_verify_print_header_by_type() - verifies the image header + * + * Verify the image_header for the image type given by tparams. + * If verification is successful, this prints the respective header. + * @ptr: pointer the the image header + * @sbuf: stat information about the file pointed to by ptr + * @tparams: image type parameters + * @params: mkimage parameters + * + * @return 0 on success, negative if input image format does not match with + * the given image type + */ +int imagetool_verify_print_header_by_type( + void *ptr, + struct stat *sbuf, + struct image_type_params *tparams, + struct image_tool_params *params); + /** * imagetool_save_subimage - store data into a file * @file_name: name of the destination file diff --git a/tools/mkimage.c b/tools/mkimage.c index ea5ed542ab..2899adff81 100644 --- a/tools/mkimage.c +++ b/tools/mkimage.c @@ -409,7 +409,7 @@ int main(int argc, char **argv) * Print the image information for matched image type * Returns the error code if not matched */ - retval = imagetool_verify_print_header(ptr, &sbuf, + retval = imagetool_verify_print_header_by_type(ptr, &sbuf, tparams, ¶ms); (void) munmap((void *)ptr, sbuf.st_size); |