On Wed, Jun 03, 2020 at 01:48:38PM +0200, Ming Liu wrote:
> From: Ming Liu <[email protected]>
> 
> It defaults to ${PN}-initial-env, no functional changes with current
> implementation, but this allows it to be changed in individual u-boot
> recipes.
> 
> If UBOOT_INITIAL_ENV is empty, then no initial env would be compiled/
> installed/deployed, set ALLOW_EMPTY_${PN}-env = "1".
> 
> The major purpose for introducing this, is that the users might have
> some scripts on targets like:
> ```
> /sbin/fw_setenv -f /etc/u-boot-initial-env
> ```
> 
> and it should be able to run against a identical path generated by
> different u-boot recipes.
> 
> Signed-off-by: Ming Liu <[email protected]>

Thank you for addressing all the comments!

Reviewed-by: Denys Dmytriyenko <[email protected]>


> ---
>  meta/recipes-bsp/u-boot/u-boot.inc | 55 +++++++++++++++++++-----------
>  1 file changed, 36 insertions(+), 19 deletions(-)
> 
> diff --git a/meta/recipes-bsp/u-boot/u-boot.inc 
> b/meta/recipes-bsp/u-boot/u-boot.inc
> index 718435f13f..6fa2d0820c 100644
> --- a/meta/recipes-bsp/u-boot/u-boot.inc
> +++ b/meta/recipes-bsp/u-boot/u-boot.inc
> @@ -60,6 +60,10 @@ UBOOT_ENV_BINARY ?= "${UBOOT_ENV}.${UBOOT_ENV_SUFFIX}"
>  UBOOT_ENV_IMAGE ?= "${UBOOT_ENV}-${MACHINE}-${PV}-${PR}.${UBOOT_ENV_SUFFIX}"
>  UBOOT_ENV_SYMLINK ?= "${UBOOT_ENV}-${MACHINE}.${UBOOT_ENV_SUFFIX}"
>  
> +# Default name of u-boot initial env, but enable individual recipes to change
> +# this value.
> +UBOOT_INITIAL_ENV ?= "${PN}-initial-env"
> +
>  # U-Boot EXTLINUX variables. U-Boot searches for /boot/extlinux/extlinux.conf
>  # to find EXTLINUX conf file.
>  UBOOT_EXTLINUX_INSTALL_DIR ?= "/boot/extlinux"
> @@ -124,8 +128,10 @@ do_compile () {
>                      done
>  
>                      # Generate the uboot-initial-env
> -                    oe_runmake -C ${S} O=${B}/${config} u-boot-initial-env
> -                    cp ${B}/${config}/u-boot-initial-env 
> ${B}/${config}/u-boot-initial-env-${type}
> +                    if [ -n "${UBOOT_INITIAL_ENV}" ]; then
> +                        oe_runmake -C ${S} O=${B}/${config} 
> u-boot-initial-env
> +                        cp ${B}/${config}/u-boot-initial-env 
> ${B}/${config}/u-boot-initial-env-${type}
> +                    fi
>  
>                      unset k
>                  fi
> @@ -137,7 +143,9 @@ do_compile () {
>          oe_runmake -C ${S} O=${B} ${UBOOT_MAKE_TARGET}
>  
>          # Generate the uboot-initial-env
> -        oe_runmake -C ${S} O=${B} u-boot-initial-env
> +        if [ -n "${UBOOT_INITIAL_ENV}" ]; then
> +            oe_runmake -C ${S} O=${B} u-boot-initial-env
> +        fi
>      fi
>  }
>  
> @@ -155,10 +163,12 @@ do_install () {
>                      ln -sf u-boot-${type}-${PV}-${PR}.${UBOOT_SUFFIX} 
> ${D}/boot/${UBOOT_BINARY}
>  
>                      # Install the uboot-initial-env
> -                    install -D -m 644 
> ${B}/${config}/u-boot-initial-env-${type} 
> ${D}/${sysconfdir}/${PN}-initial-env-${MACHINE}-${type}-${PV}-${PR}
> -                    ln -sf ${PN}-initial-env-${MACHINE}-${type}-${PV}-${PR} 
> ${D}/${sysconfdir}/${PN}-initial-env-${MACHINE}-${type}
> -                    ln -sf ${PN}-initial-env-${MACHINE}-${type}-${PV}-${PR} 
> ${D}/${sysconfdir}/${PN}-initial-env-${type}
> -                    ln -sf ${PN}-initial-env-${MACHINE}-${type}-${PV}-${PR} 
> ${D}/${sysconfdir}/${PN}-initial-env
> +                    if [ -n "${UBOOT_INITIAL_ENV}" ]; then
> +                        install -D -m 644 
> ${B}/${config}/u-boot-initial-env-${type} 
> ${D}/${sysconfdir}/${UBOOT_INITIAL_ENV}-${MACHINE}-${type}-${PV}-${PR}
> +                        ln -sf 
> ${UBOOT_INITIAL_ENV}-${MACHINE}-${type}-${PV}-${PR} 
> ${D}/${sysconfdir}/${UBOOT_INITIAL_ENV}-${MACHINE}-${type}
> +                        ln -sf 
> ${UBOOT_INITIAL_ENV}-${MACHINE}-${type}-${PV}-${PR} 
> ${D}/${sysconfdir}/${UBOOT_INITIAL_ENV}-${type}
> +                        ln -sf 
> ${UBOOT_INITIAL_ENV}-${MACHINE}-${type}-${PV}-${PR} 
> ${D}/${sysconfdir}/${UBOOT_INITIAL_ENV}
> +                    fi
>                  fi
>              done
>              unset j
> @@ -169,9 +179,11 @@ do_install () {
>          ln -sf ${UBOOT_IMAGE} ${D}/boot/${UBOOT_BINARY}
>  
>          # Install the uboot-initial-env
> -        install -D -m 644 ${B}/u-boot-initial-env 
> ${D}/${sysconfdir}/${PN}-initial-env-${MACHINE}-${PV}-${PR}
> -        ln -sf ${PN}-initial-env-${MACHINE}-${PV}-${PR} 
> ${D}/${sysconfdir}/${PN}-initial-env-${MACHINE}
> -        ln -sf ${PN}-initial-env-${MACHINE}-${PV}-${PR} 
> ${D}/${sysconfdir}/${PN}-initial-env
> +        if [ -n "${UBOOT_INITIAL_ENV}" ]; then
> +            install -D -m 644 ${B}/u-boot-initial-env 
> ${D}/${sysconfdir}/${UBOOT_INITIAL_ENV}-${MACHINE}-${PV}-${PR}
> +            ln -sf ${UBOOT_INITIAL_ENV}-${MACHINE}-${PV}-${PR} 
> ${D}/${sysconfdir}/${UBOOT_INITIAL_ENV}-${MACHINE}
> +            ln -sf ${UBOOT_INITIAL_ENV}-${MACHINE}-${PV}-${PR} 
> ${D}/${sysconfdir}/${UBOOT_INITIAL_ENV}
> +        fi
>      fi
>  
>      if [ -n "${UBOOT_ELF}" ]
> @@ -242,8 +254,9 @@ do_install () {
>  PACKAGE_BEFORE_PN += "${PN}-env"
>  
>  RPROVIDES_${PN}-env += "u-boot-default-env"
> +ALLOW_EMPTY_${PN}-env = "1"
>  FILES_${PN}-env = " \
> -    ${sysconfdir}/${PN}-initial-env* \
> +    ${@ '${sysconfdir}/${UBOOT_INITIAL_ENV}*' if 
> d.getVar('UBOOT_INITIAL_ENV') else ''} \
>      ${sysconfdir}/fw_env.config \
>  "
>  
> @@ -267,10 +280,12 @@ do_deploy () {
>                      ln -sf u-boot-${type}-${PV}-${PR}.${UBOOT_SUFFIX} 
> ${UBOOT_BINARY}
>  
>                      # Deploy the uboot-initial-env
> -                    install -D -m 644 
> ${B}/${config}/u-boot-initial-env-${type} 
> ${DEPLOYDIR}/${PN}-initial-env-${MACHINE}-${type}-${PV}-${PR}
> -                    cd ${DEPLOYDIR}
> -                    ln -sf ${PN}-initial-env-${MACHINE}-${type}-${PV}-${PR} 
> ${PN}-initial-env-${MACHINE}-${type}
> -                    ln -sf ${PN}-initial-env-${MACHINE}-${type}-${PV}-${PR} 
> ${PN}-initial-env-${type}
> +                    if [ -n "${UBOOT_INITIAL_ENV}" ]; then
> +                        install -D -m 644 
> ${B}/${config}/u-boot-initial-env-${type} 
> ${DEPLOYDIR}/${UBOOT_INITIAL_ENV}-${MACHINE}-${type}-${PV}-${PR}
> +                        cd ${DEPLOYDIR}
> +                        ln -sf 
> ${UBOOT_INITIAL_ENV}-${MACHINE}-${type}-${PV}-${PR} 
> ${UBOOT_INITIAL_ENV}-${MACHINE}-${type}
> +                        ln -sf 
> ${UBOOT_INITIAL_ENV}-${MACHINE}-${type}-${PV}-${PR} 
> ${UBOOT_INITIAL_ENV}-${type}
> +                    fi
>                  fi
>              done
>              unset j
> @@ -285,10 +300,12 @@ do_deploy () {
>          ln -sf ${UBOOT_IMAGE} ${UBOOT_BINARY}
>  
>          # Deploy the uboot-initial-env
> -        install -D -m 644 ${B}/u-boot-initial-env 
> ${DEPLOYDIR}/${PN}-initial-env-${MACHINE}-${PV}-${PR}
> -        cd ${DEPLOYDIR}
> -        ln -sf ${PN}-initial-env-${MACHINE}-${PV}-${PR} 
> ${PN}-initial-env-${MACHINE}
> -        ln -sf ${PN}-initial-env-${MACHINE}-${PV}-${PR} ${PN}-initial-env
> +        if [ -n "${UBOOT_INITIAL_ENV}" ]; then
> +            install -D -m 644 ${B}/u-boot-initial-env 
> ${DEPLOYDIR}/${UBOOT_INITIAL_ENV}-${MACHINE}-${PV}-${PR}
> +            cd ${DEPLOYDIR}
> +            ln -sf ${UBOOT_INITIAL_ENV}-${MACHINE}-${PV}-${PR} 
> ${UBOOT_INITIAL_ENV}-${MACHINE}
> +            ln -sf ${UBOOT_INITIAL_ENV}-${MACHINE}-${PV}-${PR} 
> ${UBOOT_INITIAL_ENV}
> +        fi
>      fi
>  
>      if [ -e ${WORKDIR}/fw_env.config ] ; then
> -- 
> 2.26.2
> 

> 

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.

View/Reply Online (#139182): 
https://lists.openembedded.org/g/openembedded-core/message/139182
Mute This Topic: https://lists.openembedded.org/mt/74647597/21656
Group Owner: [email protected]
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub  
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to