cmd: fit_image: Add default property for FIT format scripts

When sourcing a FIT format script, if we've not been told the unit name
to use, look for a default property at the root of /images to work out
which unit we should use.

Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
Alex Kiernan 2018-06-22 14:58:02 +00:00 committed by Tom Rini
parent 8d54579072
commit 201d9cd2b3

View file

@ -22,6 +22,24 @@
#include <asm/byteorder.h> #include <asm/byteorder.h>
#include <asm/io.h> #include <asm/io.h>
#if defined(CONFIG_FIT)
/**
* get_default_image() - Return default property from /images
*
* Return: Pointer to value of default property (or NULL)
*/
static const char *get_default_image(const void *fit)
{
int images_noffset;
images_noffset = fdt_path_offset(fit, FIT_IMAGES_PATH);
if (images_noffset < 0)
return NULL;
return fdt_getprop(fit, images_noffset, FIT_DEFAULT_PROP, NULL);
}
#endif
int int
source (ulong addr, const char *fit_uname) source (ulong addr, const char *fit_uname)
{ {
@ -87,17 +105,20 @@ source (ulong addr, const char *fit_uname)
#endif #endif
#if defined(CONFIG_FIT) #if defined(CONFIG_FIT)
case IMAGE_FORMAT_FIT: case IMAGE_FORMAT_FIT:
if (fit_uname == NULL) {
puts ("No FIT subimage unit name\n");
return 1;
}
fit_hdr = buf; fit_hdr = buf;
if (!fit_check_format (fit_hdr)) { if (!fit_check_format (fit_hdr)) {
puts ("Bad FIT image format\n"); puts ("Bad FIT image format\n");
return 1; return 1;
} }
if (!fit_uname)
fit_uname = get_default_image(fit_hdr);
if (!fit_uname) {
puts("No FIT subimage unit name\n");
return 1;
}
/* get script component image node offset */ /* get script component image node offset */
noffset = fit_image_get_node (fit_hdr, fit_uname); noffset = fit_image_get_node (fit_hdr, fit_uname);
if (noffset < 0) { if (noffset < 0) {