Message ID | 1552218153-26085-1-git-send-email-abel.vesa@nxp.com |
---|---|
State | Changes Requested |
Delegated to: | Marek Vasut |
Headers | show |
Series | [U-Boot,v2] common: spl_fit: Allow firmware image if no loadables | expand |
On 3/10/19 12:42 PM, Abel Vesa wrote: > If CONFIG_SPL_OS_BOOT and FIT_IMAGE_TINY are enabled, > the os will not be set to anything and therefore will > remain as IH_OS_INVALID. What's needed here is to > have IH_OS_U_BOOT as default. And since using the > mkimage oneline command (that is, no its file), the > loadables can't be specified, so we allow firmware > as a fallback. Wouldn't it make more sense to fix the mkimage ? > Signed-off-by: Abel Vesa <abel.vesa@nxp.com> > Tested-by: Fabio Estevam <festevam@gmail.com> > --- > > Changes since v1: > * added braces to get rid of the build warning > > common/spl/spl_fit.c | 10 +++++++--- > 1 file changed, 7 insertions(+), 3 deletions(-) > > diff --git a/common/spl/spl_fit.c b/common/spl/spl_fit.c > index db43626..bfcf71a 100644 > --- a/common/spl/spl_fit.c > +++ b/common/spl/spl_fit.c > @@ -478,11 +478,15 @@ int spl_load_simple_fit(struct spl_image_info *spl_image, > > /* Now check if there are more images for us to load */ > for (; ; index++) { > - uint8_t os_type = IH_OS_INVALID; > + uint8_t os_type = IH_OS_U_BOOT; Does that mean invalid image type is then always handled as if it was U-Boot ? That looks kinda iffy. > node = spl_fit_get_image_node(fit, images, "loadables", index); > - if (node < 0) > - break; > + if (node < 0) { > + node = spl_fit_get_image_node(fit, images, > + "firmware", index); > + if (node < 0) > + break; > + } > > ret = spl_load_fit_image(info, sector, fit, base_offset, node, > &image_info); >
On 19-03-10 13:02:28, Marek Vasut wrote: > On 3/10/19 12:42 PM, Abel Vesa wrote: > > If CONFIG_SPL_OS_BOOT and FIT_IMAGE_TINY are enabled, > > the os will not be set to anything and therefore will > > remain as IH_OS_INVALID. What's needed here is to > > have IH_OS_U_BOOT as default. And since using the > > mkimage oneline command (that is, no its file), the > > loadables can't be specified, so we allow firmware > > as a fallback. > > Wouldn't it make more sense to fix the mkimage ? > OK then, I'll add a new option to mkimage for loadables. > > Signed-off-by: Abel Vesa <abel.vesa@nxp.com> > > Tested-by: Fabio Estevam <festevam@gmail.com> > > --- > > > > Changes since v1: > > * added braces to get rid of the build warning > > > > common/spl/spl_fit.c | 10 +++++++--- > > 1 file changed, 7 insertions(+), 3 deletions(-) > > > > diff --git a/common/spl/spl_fit.c b/common/spl/spl_fit.c > > index db43626..bfcf71a 100644 > > --- a/common/spl/spl_fit.c > > +++ b/common/spl/spl_fit.c > > @@ -478,11 +478,15 @@ int spl_load_simple_fit(struct spl_image_info *spl_image, > > > > /* Now check if there are more images for us to load */ > > for (; ; index++) { > > - uint8_t os_type = IH_OS_INVALID; > > + uint8_t os_type = IH_OS_U_BOOT; > > Does that mean invalid image type is then always handled as if it was > U-Boot ? That looks kinda iffy. > Hmm, fair enough. I'll do the fix in mkimage and this change won't be necessary then. > > node = spl_fit_get_image_node(fit, images, "loadables", index); > > - if (node < 0) > > - break; > > + if (node < 0) { > > + node = spl_fit_get_image_node(fit, images, > > + "firmware", index); > > + if (node < 0) > > + break; > > + } > > > > ret = spl_load_fit_image(info, sector, fit, base_offset, node, > > &image_info); > > > > > -- > Best regards, > Marek Vasut
diff --git a/common/spl/spl_fit.c b/common/spl/spl_fit.c index db43626..bfcf71a 100644 --- a/common/spl/spl_fit.c +++ b/common/spl/spl_fit.c @@ -478,11 +478,15 @@ int spl_load_simple_fit(struct spl_image_info *spl_image, /* Now check if there are more images for us to load */ for (; ; index++) { - uint8_t os_type = IH_OS_INVALID; + uint8_t os_type = IH_OS_U_BOOT; node = spl_fit_get_image_node(fit, images, "loadables", index); - if (node < 0) - break; + if (node < 0) { + node = spl_fit_get_image_node(fit, images, + "firmware", index); + if (node < 0) + break; + } ret = spl_load_fit_image(info, sector, fit, base_offset, node, &image_info);