diff options
author | Tom Rini <trini@konsulko.com> | 2019-03-09 02:04:13 +0300 |
---|---|---|
committer | Tom Rini <trini@konsulko.com> | 2019-03-09 02:04:13 +0300 |
commit | e8e3f2d2d48f97b2c79b698eccedce8f4f880993 (patch) | |
tree | dc92c94f1c2451050dbfe07c18909d27d621be90 | |
parent | 606b239a6c60868da1767b973e5f9c3e6eae48fe (diff) | |
parent | 279dc04f25538eb69f4377d73a9f2889a651cf5f (diff) | |
download | u-boot-e8e3f2d2d48f97b2c79b698eccedce8f4f880993.tar.xz |
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
-rw-r--r-- | cmd/thordown.c | 2 | ||||
-rw-r--r-- | common/image-fdt.c | 4 | ||||
-rw-r--r-- | include/configs/qemu-arm.h | 1 | ||||
-rwxr-xr-x | test/image/test-imagetools.sh | 16 | ||||
-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 |
9 files changed, 77 insertions, 14 deletions
diff --git a/cmd/thordown.c b/cmd/thordown.c index ce3660d174..19ae6721d1 100644 --- a/cmd/thordown.c +++ b/cmd/thordown.c @@ -65,7 +65,7 @@ done: U_BOOT_CMD(thordown, CONFIG_SYS_MAXARGS, 1, do_thor_down, "TIZEN \"THOR\" downloader", "<USB_controller> <interface> <dev>\n" - " - device software upgrade via LTHOR TIZEN dowload\n" + " - device software upgrade via LTHOR TIZEN download\n" " program via <USB_controller> on device <dev>,\n" " attached to interface <interface>\n" ); diff --git a/common/image-fdt.c b/common/image-fdt.c index 94089b2215..01186aeac7 100644 --- a/common/image-fdt.c +++ b/common/image-fdt.c @@ -71,10 +71,10 @@ static const image_header_t *image_get_fdt(ulong fdt_addr) static void boot_fdt_reserve_region(struct lmb *lmb, uint64_t addr, uint64_t size) { - int ret; + long ret; ret = lmb_reserve(lmb, addr, size); - if (!ret) { + if (ret >= 0) { debug(" reserving fdt memory region: addr=%llx size=%llx\n", (unsigned long long)addr, (unsigned long long)size); } else { diff --git a/include/configs/qemu-arm.h b/include/configs/qemu-arm.h index 0431a7982d..65fdb1e929 100644 --- a/include/configs/qemu-arm.h +++ b/include/configs/qemu-arm.h @@ -25,6 +25,7 @@ #define CONFIG_ENV_SIZE SZ_256K #define BOOT_TARGET_DEVICES(func) \ + func(USB, usb, 0) \ func(SCSI, scsi, 0) \ func(VIRTIO, virtio, 0) \ func(DHCP, dhcp, na) diff --git a/test/image/test-imagetools.sh b/test/image/test-imagetools.sh index 256af71d42..907f46a7b5 100755 --- a/test/image/test-imagetools.sh +++ b/test/image/test-imagetools.sh @@ -102,10 +102,10 @@ create_multi_image() extract_multi_image() { echo -e "\nExtracting multi-file image contents..." - do_cmd ${DUMPIMAGE} -T multi -i ${IMAGE_MULTI} -p 0 ${DATAFILE0} - do_cmd ${DUMPIMAGE} -T multi -i ${IMAGE_MULTI} -p 1 ${DATAFILE1} - do_cmd ${DUMPIMAGE} -T multi -i ${IMAGE_MULTI} -p 2 ${DATAFILE2} - do_cmd ${DUMPIMAGE} -T multi -i ${IMAGE_MULTI} -p 2 ${DATAFILE2} -o ${TEST_OUT} + do_cmd ${DUMPIMAGE} -T multi -p 0 -o ${DATAFILE0} ${IMAGE_MULTI} + do_cmd ${DUMPIMAGE} -T multi -p 1 -o ${DATAFILE1} ${IMAGE_MULTI} + do_cmd ${DUMPIMAGE} -T multi -p 2 -o ${DATAFILE2} ${IMAGE_MULTI} + do_cmd ${DUMPIMAGE} -T multi -p 2 -o ${TEST_OUT} ${IMAGE_MULTI} echo "done." } @@ -166,10 +166,10 @@ create_fit_image() extract_fit_image() { echo -e "\nExtracting FIT image contents..." - do_cmd ${DUMPIMAGE} -T flat_dt -i ${IMAGE_FIT_ITB} -p 0 ${DATAFILE0} - do_cmd ${DUMPIMAGE} -T flat_dt -i ${IMAGE_FIT_ITB} -p 1 ${DATAFILE1} - do_cmd ${DUMPIMAGE} -T flat_dt -i ${IMAGE_FIT_ITB} -p 2 ${DATAFILE2} - do_cmd ${DUMPIMAGE} -T flat_dt -i ${IMAGE_FIT_ITB} -p 2 ${DATAFILE2} -o ${TEST_OUT} + do_cmd ${DUMPIMAGE} -T flat_dt -p 0 -o ${DATAFILE0} ${IMAGE_FIT_ITB} + do_cmd ${DUMPIMAGE} -T flat_dt -p 1 -o ${DATAFILE1} ${IMAGE_FIT_ITB} + do_cmd ${DUMPIMAGE} -T flat_dt -p 2 -o ${DATAFILE2} ${IMAGE_FIT_ITB} + do_cmd ${DUMPIMAGE} -T flat_dt -p 2 -o ${TEST_OUT} ${IMAGE_FIT_ITB} echo "done." } 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); |