From 280fafff165428bc69db221faaccaf4edfc32d9d Mon Sep 17 00:00:00 2001 From: Martyn Welch Date: Thu, 14 Feb 2019 13:11:35 +0000 Subject: [PATCH 1/5] test: Update test-imagetools.sh to match new syntax The syntax of dumpimage was simplified in commit 12b831879a76 ("tools: dumpimage: Simplify arguments"), but the test (test/image/test-imagetools.sh) was not updated and is now failing. Update the test to use the new syntax. Reported-by: Vagrant Cascadian Signed-off-by: Martyn Welch Tested-by: Vagrant Cascadian --- test/image/test-imagetools.sh | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) 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." } From d32aa3cae44e618048ff7f378577d44f9b6d6dcc Mon Sep 17 00:00:00 2001 From: Jordan Hand Date: Tue, 5 Mar 2019 14:47:56 -0800 Subject: [PATCH 2/5] fdt: Fix FIT header verification in mkimage and conduct same checks as bootm FIT header verification in mkimage was treating a return code as a boolean, which meant that failures in validating the fit were seen as successes. Additionally, mkimage was checking all formats to find a header which passes validation, rather than using the image type specified to mkimage. checkpatch.pl checks for lines ending with '(' and alignment matching open parentheses are ignored to keep with existing coding style. Signed-off-by: Jordan Hand --- tools/fit_common.c | 5 ++++- tools/fit_common.h | 8 ++++++++ tools/imagetool.c | 34 +++++++++++++++++++++++++++++++++- tools/imagetool.h | 19 +++++++++++++++++++ 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 +/** + * 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); From c8087f67f148e8e732e8d456d93cc709116ce0b5 Mon Sep 17 00:00:00 2001 From: Vagrant Cascadian Date: Tue, 5 Mar 2019 22:52:14 -0800 Subject: [PATCH 3/5] cmd: thordown: Fix spelling of download. Signed-off-by: Vagrant Cascadian Reviewed-by: Bin Meng Reviewed-by: Lukasz Majewski --- cmd/thordown.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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", " \n" - " - device software upgrade via LTHOR TIZEN dowload\n" + " - device software upgrade via LTHOR TIZEN download\n" " program via on device ,\n" " attached to interface \n" ); From e1d7ed34015a78788ada8a79d23a2af22fe1f451 Mon Sep 17 00:00:00 2001 From: Patrick Delaunay Date: Wed, 6 Mar 2019 14:23:52 +0100 Subject: [PATCH 4/5] image: fdt: handle coalesced reserve region Handle in boot_fdt_reserve_region any return value > 0 of lmb_reserve() function; it occurs when coalesced region are found: adjacent reserved region are merged. This patch avoid the error trace: ERROR: reserving fdt memory region failed.. when reserved region are merged (return value = 1). Signed-off-by: Patrick Delaunay --- common/image-fdt.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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 { From 279dc04f25538eb69f4377d73a9f2889a651cf5f Mon Sep 17 00:00:00 2001 From: AKASHI Takahiro Date: Fri, 14 Dec 2018 18:53:22 +0900 Subject: [PATCH 5/5] ARM: qemu-arm: enable USB boot in distro boot with UEFI With this patch which adds a removable USB mass storage to a list of bootable devices, USB boot is supported in distro boot if UEFI is configured. Signed-off-by: AKASHI Takahiro --- include/configs/qemu-arm.h | 1 + 1 file changed, 1 insertion(+) 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)