[U-Boot] [U-Boot, v3] imximage: Remove failure when no IVT offset is found

Trent Piepho tpiepho at impinj.com
Fri Apr 6 23:56:21 UTC 2018


On Fri, 2018-03-09 at 08:25 -0300, Fabio Estevam wrote:
> From: Fabio Estevam <fabio.estevam at nxp.com>
> 
> Sometimes imximage throws the following error:
> 
>   CFGS    board/freescale/vf610twr/imximage.cfg.cfgtmp
>   CFGS    board/freescale/vf610twr/imximage.cfg.cfgtmp
>   MKIMAGE u-boot-dtb.imx
> Error: No BOOT_FROM tag in
> board/freescale/vf610twr/imximage.cfg.cfgtmp
> arch/arm/mach-imx/Makefile:100: recipe for target 'u-boot-dtb.imx'
> failed
> 
> Later on, when running mkimage for the u-boot.imx it will succeed in
> finding the IVT offset.
> 
> Looks like some race condition happening during parallel build when
> processing mkimage for u-boot-dtb.imx and u-boot.imx.
> 
> A proper fix still needs to be implemented, but as a workaround let's
> remove the error when the IVT offset is not found.

I think the real problem here is that the command to produce an imx
from a bin file:

%.imx: %.bin                          
        $(Q)$(MAKE) $(build)=arch/arm/mach-imx $@

Creates, as part of the command, a temp file, imximage.cfg.cfgtmp.  If
two or more images are made, they both create temp files with the same
name.  The "CFGS" commands can run in parallel with each other and with
the "MKIMAGE" that uses the cfgtmp file they both produce.

Usual make practice would dictate that when creating intermediate
files, give them unique names, otherwise the operation can not be run
in parallel on different inputs.

I think the original idea was that all the imx image targets would
share a common cfgtmp file.  But this doesn't work since each imx image
is created via an independent submake.


More information about the U-Boot mailing list