From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailout4.zoneedit.com (mailout4.zoneedit.com [64.68.198.64]) by mx.groups.io with SMTP id smtpd.web10.691.1590783096230388831 for ; Fri, 29 May 2020 13:11:36 -0700 Authentication-Results: mx.groups.io; dkim=missing; spf=none, err=permanent DNS error (domain: denix.org, ip: 64.68.198.64, mailfrom: denis@denix.org) Received: from localhost (localhost [127.0.0.1]) by mailout4.zoneedit.com (Postfix) with ESMTP id A480D40C14; Fri, 29 May 2020 20:11:35 +0000 (UTC) Received: from mailout4.zoneedit.com ([127.0.0.1]) by localhost (zmo14-pco.easydns.vpn [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 0LcoOWz-44lG; Fri, 29 May 2020 20:11:35 +0000 (UTC) Received: from mail.denix.org (pool-100-15-86-127.washdc.fios.verizon.net [100.15.86.127]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mailout4.zoneedit.com (Postfix) with ESMTPSA id 17F8240AB5; Fri, 29 May 2020 20:11:29 +0000 (UTC) Received: by mail.denix.org (Postfix, from userid 1000) id 2DC551731FF; Fri, 29 May 2020 16:11:29 -0400 (EDT) Date: Fri, 29 May 2020 16:11:29 -0400 From: "Denys Dmytriyenko" To: Ming Liu Cc: openembedded-core@lists.openembedded.org, stefan.agner@toradex.com, max.krummenacher@toradex.com, denys@ti.com, Ming Liu Subject: Re: [OE-core] [PATCH V3 3/3] u-boot: introduce UBOOT_INITIAL_ENV Message-ID: <20200529201129.GT17660@denix.org> References: <20200528124129.15100-1-liu.ming50@gmail.com> <20200528124129.15100-4-liu.ming50@gmail.com> MIME-Version: 1.0 In-Reply-To: <20200528124129.15100-4-liu.ming50@gmail.com> User-Agent: Mutt/1.5.20 (2009-06-14) Content-Type: text/plain; charset=us-ascii Content-Disposition: inline On Thu, May 28, 2020 at 02:41:29PM +0200, Ming Liu wrote: > From: Ming Liu > > 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 > --- > 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 be15e1760f..8e60615e5c 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" > @@ -137,8 +141,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 > @@ -150,7 +156,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 > } > > @@ -168,10 +176,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 > @@ -182,9 +192,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}" ] > @@ -255,8 +267,9 @@ do_install () { > PACKAGE_BEFORE_PN += "${PN}-env" > > RPROVIDES_${PN}-env += "u-boot-default-env" > +ALLOW_EMPTY_${PN}-env = "1" I don't think this ^ is required, as there are other files in ${PN}-env, e.g. fw_env.config: > FILES_${PN}-env = " \ > - ${sysconfdir}/${PN}-initial-env* \ > + ${sysconfdir}/${UBOOT_INITIAL_ENV}* \ > ${sysconfdir}/fw_env.config \ > " So, what happens whe UBOOT_INITIAL_ENV is empty? You get ${sysconfdir}/* in there. Mayve you need a better check here? > @@ -280,10 +293,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 > @@ -298,10 +313,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 > >