[PATCHv2 3/5] image: support board_fit_config_name_match

Sebastian Reichel sebastian.reichel at collabora.com
Mon Jan 4 20:27:22 CET 2021


Hi,

On Mon, Dec 28, 2020 at 12:39:57PM +0100, Stefano Babic wrote:
> On 15.12.20 00:41, Sebastian Reichel wrote:
> > Support reusing board_fit_config_name_match() to automatically
> > select a sensible default configuration for booting fitImages
> > using 'bootm'.
> > 
> 
> For reasons I have not understood, this patch breaks "sometimes" the build :
> 
> +common/image-fit.c: In function 'boot_get_fdt_fit':
> +common/image-fit.c:2279:10: error: implicit declaration of function
> 'fdt_overlay_apply_verbose'; did you mean 'fdt_overlay_apply_node'?
> [-Werror=implicit-function-declaration]
> + 2279 |    err = fdt_overlay_apply_verbose(base, ov);
> +      |          ^~~~~~~~~~~~~~~~~~~~~~~~~
> +      |          fdt_overlay_apply_node
> +cc1: all warnings being treated as errors
> 
> https://gitlab.denx.de/u-boot/custodians/u-boot-imx/-/jobs/193967
> 
> And it looks to me that fdt_support.h is included.
> 
> This happens if I run buildman locally, too. But it is not
> deterministic, sometimes it succeed.
> 
> snapper9g20 and snapper9260 seem to trigger more frequently the issues
> (but they are not the ones).

I found the root cause. It's not this patch, but the previous one.
fdt_support.h is included, but in it all declartions only happen
if OF_LIBFDT is defined. My previous patch changes the code block
calling fdt_overlay_apply_verbose() from ifdef OF_LIBFDT_OVERLAY
to IS_ENABLED(OF_LIBFDT_OVERLAY). Note, that OF_LIBFDT_OVERLAY
requires OF_LIBFDT.

I'm about to send PATCHv3 dropping the OF_LIBFDT_OVERLAY related
cleanup.

> So I applied the patches related to the board, but I left this
> out.

Not applying this patch results in GE Bx50v3 boards no longer
booting properly with the default config :(

-- Sebastian

> Best regards,
> Stefano Babic
> 
> > Signed-off-by: Sebastian Reichel <sebastian.reichel at collabora.com>
> > ---
> >  common/image-fit.c | 19 +++++++++++++------
> >  1 file changed, 13 insertions(+), 6 deletions(-)
> > 
> > diff --git a/common/image-fit.c b/common/image-fit.c
> > index 1f382d87e207..b3aeff8c5e4a 100644
> > --- a/common/image-fit.c
> > +++ b/common/image-fit.c
> > @@ -1738,12 +1738,19 @@ int fit_conf_get_node(const void *fit, const char *conf_uname)
> >  	if (conf_uname == NULL) {
> >  		/* get configuration unit name from the default property */
> >  		debug("No configuration specified, trying default...\n");
> > -		conf_uname = (char *)fdt_getprop(fit, confs_noffset,
> > -						 FIT_DEFAULT_PROP, &len);
> > -		if (conf_uname == NULL) {
> > -			fit_get_debug(fit, confs_noffset, FIT_DEFAULT_PROP,
> > -				      len);
> > -			return len;
> > +		if (!host_build() && IS_ENABLED(CONFIG_MULTI_DTB_FIT)) {
> > +			noffset = fit_find_config_node(fit);
> > +			if (noffset < 0)
> > +				return noffset;
> > +			conf_uname = fdt_get_name(fit, noffset, NULL);
> > +		} else {
> > +			conf_uname = (char *)fdt_getprop(fit, confs_noffset,
> > +							 FIT_DEFAULT_PROP, &len);
> > +			if (conf_uname == NULL) {
> > +				fit_get_debug(fit, confs_noffset, FIT_DEFAULT_PROP,
> > +					      len);
> > +				return len;
> > +			}
> >  		}
> >  		debug("Found default configuration: '%s'\n", conf_uname);
> >  	}
> > 
> 
> 
> -- 
> =====================================================================
> DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
> HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
> Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sbabic at denx.de
> =====================================================================
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <https://lists.denx.de/pipermail/u-boot/attachments/20210104/83b8334d/attachment.sig>


More information about the U-Boot mailing list