[OE-core] [PATCH] uboot-sign: avoid a circular dependency with the task to assemble a fitimage

André Draszik git at andred.net
Wed Jan 17 10:20:22 UTC 2018


Hi,

On Wed, 2018-01-17 at 10:23 +0100, Thomas Perrot wrote:
> Between do_concat_dtb and do_assemble_fitimage when UBOOT_SIGN_ENABLE is
> active:

I have the same question as previously - have you actually tried
UBOOT_SIGN_ENABLE without your patch on master or rocko? I am using it
without any problems or extra patches.

So if you're still seeing problems, can you please clarify how to reproduce
this?

> 
> Dependency loop #1 found:
>   do_concat_dtb (dependent Tasks ['linux-
> yocto_4.10.bb:do_assemble_fitimage'])
>   do_install (dependent Tasks ['pseudo_1.8.2.bb:do_populate_sysroot', 'u-
> boot_2017.01.bb:do_compile', 'u-boot_2017.01.bb:do_concat_dtb'])
>   do_deploy (dependent Tasks ['u-boot_2017.01.bb:do_deploy_dtb', 'u-
> boot_2017.01.bb:do_install'])
>   do_assemble_fitimage (dependent Tasks ['linux-yocto_4.10.bb:do_compile', 
> 'u-boot_2017.01.bb:do_deploy'])

As mentioned previously, exactly this dependency loop was fixed in commit   
7da4c0a56eb2 in oe-core (commit d434e8086ae9 in poky). How are you still
triggering the dependency loop?


> 
> Signed-off-by: Thomas Perrot <thomas.perrot at sigfox.com>
> ---
>  meta/classes/uboot-sign.bbclass | 5 ++---
>  1 file changed, 2 insertions(+), 3 deletions(-)
> 
> diff --git a/meta/classes/uboot-sign.bbclass b/meta/classes/uboot-
> sign.bbclass
> index 8ee904e7df..f36f9dfda1 100644
> --- a/meta/classes/uboot-sign.bbclass
> +++ b/meta/classes/uboot-sign.bbclass
> @@ -74,7 +74,7 @@ do_concat_dtb () {
>  			cd ${DEPLOYDIR}
>  			cat ${UBOOT_NODTB_IMAGE} ${UBOOT_DTB_IMAGE} | tee
> ${B}/${UBOOT_BINARY} > ${UBOOT_IMAGE}
>  		else
> -			bbwarn "Failure while adding public key to u-boot 
> binary. Verified boot won't be available."
> +			bbfatal "Failure while adding public key to u-
> boot binary. Verified boot won't be available."

- this change is not mentioned in the commit message
- this is a good change, but it should be a separate commit, as it's
  independent of any dependency loop fixes

>  		fi
>  	fi
>  }
> @@ -82,7 +82,6 @@ do_concat_dtb () {
>  python () {
>  	uboot_pn = d.getVar('PREFERRED_PROVIDER_u-boot') or 'u-boot'
>  	if d.getVar('UBOOT_SIGN_ENABLE') == '1' and d.getVar('PN') ==
> uboot_pn:
> -		kernel_pn = d.getVar('PREFERRED_PROVIDER_virtual/kernel')
>  
>  		# u-boot.dtb and u-boot-nodtb.bin are deployed _before_
> do_deploy
>  		# Thus, do_deploy_setscene will also populate them in
> DEPLOY_IMAGE_DIR
> @@ -91,5 +90,5 @@ python () {
>  		# do_concat_dtb is scheduled _before_ do_install as it
> overwrite the
>  		# u-boot.bin in both DEPLOYDIR and DEPLOY_IMAGE_DIR.
>  		bb.build.addtask('do_concat_dtb', 'do_install', None, d)
> -		d.appendVarFlag('do_concat_dtb', 'depends', '
> %s:do_assemble_fitimage' % kernel_pn)
> +		d.appendVarFlag('do_concat_dtb', 'depends', '
> %s:do_deploy_dtb' % uboot_pn)

Please also update the documentation on top of the file.


Cheers,
Andre'




More information about the Openembedded-core mailing list