summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cmd/thordown.c2
-rw-r--r--common/image-fdt.c4
-rw-r--r--include/configs/qemu-arm.h1
-rwxr-xr-xtest/image/test-imagetools.sh16
-rw-r--r--tools/fit_common.c5
-rw-r--r--tools/fit_common.h8
-rw-r--r--tools/imagetool.c34
-rw-r--r--tools/imagetool.h19
-rw-r--r--tools/mkimage.c2
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, &params);
(void) munmap((void *)ptr, sbuf.st_size);