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
This commit is contained in:
Tom Rini 2019-03-08 18:04:13 -05:00
commit e8e3f2d2d4
9 changed files with 77 additions and 14 deletions

View File

@ -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"
);

View File

@ -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 {

View File

@ -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)

View File

@ -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."
}

View File

@ -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)

View File

@ -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);

View File

@ -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,

View File

@ -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

View File

@ -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);