From: "Denys Dmytriyenko" <denis@denix.org>
To: Otavio Salvador <otavio.salvador@gmail.com>
Cc: OpenEmbedded Core Mailing List
<openembedded-core@lists.openembedded.org>,
Stefano Babic <sbabic@denx.de>, Tom Rini <trini@konsulko.com>,
Otavio Salvador <otavio@ossystems.com.br>
Subject: Re: [OE-core] [PATCH v3] u-boot: Restore valid default environment for running system
Date: Sun, 12 Apr 2020 17:07:15 -0400 [thread overview]
Message-ID: <20200412210715.GE1578@denix.org> (raw)
In-Reply-To: <20200402001431.435999-1-otavio@ossystems.com.br>
On Wed, Apr 01, 2020 at 09:14:31PM -0300, Otavio Salvador wrote:
> One significant change from previous OE-Core releases was the move from
> u-boot-fw-utils to libubootenv which offers a generic and not machine
> specific alternative. However, it is not fully functional as currently
> we don't provide the default environment nor the required configuration
> file to be used by it.
>
> This change address this and include on the default u-boot.inc the
> needed code to generate, install and deploy the default environment.
>
> Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
> ---
> This change is late in the cycle but it is critical in my opinion.
>
> The lack of default environment as well as the configuration for the
> tool is a regression from the previous release and this mitigates it.
>
> Changes in v3:
> - Remove rrecommends in libubootenv
> - Add ${MACHINE} to the files following other binaries
> - Change commit log
>
> Changes in v2:
> - Fix wrong path on do_install
> - Change virtual/bootloader-env to u-boot-default-env (RP)
> - Add Tom Rini and Stefano Babic to Cc
>
> meta/recipes-bsp/u-boot/u-boot.inc | 62 +++++++++++++++++++++++++-----
> 1 file changed, 53 insertions(+), 9 deletions(-)
>
> diff --git a/meta/recipes-bsp/u-boot/u-boot.inc b/meta/recipes-bsp/u-boot/u-boot.inc
> index d4ab9c3222e..dc4f7884b82 100644
> --- a/meta/recipes-bsp/u-boot/u-boot.inc
> +++ b/meta/recipes-bsp/u-boot/u-boot.inc
> @@ -134,6 +134,11 @@ do_compile () {
> cp ${B}/${config}/${binary} ${B}/${config}/u-boot-${type}.${UBOOT_SUFFIX}
> fi
> 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}
> +
> unset k
> fi
> done
> @@ -142,6 +147,9 @@ do_compile () {
> unset i
> else
> oe_runmake -C ${S} O=${B} ${UBOOT_MAKE_TARGET}
> +
> + # Generate the uboot-initial-env
> + oe_runmake -C ${S} O=${B} u-boot-initial-env
So, why is this enabled unconditionally? Should this be in UBOOT_MAKE_TARGET?
I use this .inc file for building different u-boot pieces by different recipes
(main u-boot, SPL, etc., etc.) controlling the build with UBOOT_MAKE_TARGET
below. Now each of those generate u-boot-initial-env and they clash in deploy.
> This change is late in the cycle but it is critical in my opinion.
>
> The lack of default environment as well as the configuration for the
> tool is a regression from the previous release and this mitigates it.
Well, I would rather live w/o env rather than unable to build u-boot at all...
> fi
>
> }
> @@ -155,19 +163,28 @@ do_install () {
> j=$(expr $j + 1);
> if [ $j -eq $i ]
> then
> - install -d ${D}/boot
> - install -m 644 ${B}/${config}/u-boot-${type}.${UBOOT_SUFFIX} ${D}/boot/u-boot-${type}-${PV}-${PR}.${UBOOT_SUFFIX}
> + install -D -m 644 ${B}/${config}/u-boot-${type}.${UBOOT_SUFFIX} ${D}/boot/u-boot-${type}-${PV}-${PR}.${UBOOT_SUFFIX}
> ln -sf u-boot-${type}-${PV}-${PR}.${UBOOT_SUFFIX} ${D}/boot/${UBOOT_BINARY}-${type}
> 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}/u-boot-initial-env-${MACHINE}-${type}-${PV}-${PR}
> + ln -sf u-boot-initial-env-${MACHINE}-${type}-${PV}-${PR} ${D}/${sysconfdir}/u-boot-initial-env-${MACHINE}-${type}
> + ln -sf u-boot-initial-env-${MACHINE}-${type}-${PV}-${PR} ${D}/${sysconfdir}/u-boot-initial-env-${type}
> + ln -sf u-boot-initial-env-${MACHINE}-${type}-${PV}-${PR} ${D}/${sysconfdir}/u-boot-initial-env
> fi
> done
> unset j
> done
> unset i
> else
> - install -d ${D}/boot
> - install -m 644 ${B}/${UBOOT_BINARY} ${D}/boot/${UBOOT_IMAGE}
> + install -D -m 644 ${B}/${UBOOT_BINARY} ${D}/boot/${UBOOT_IMAGE}
> ln -sf ${UBOOT_IMAGE} ${D}/boot/${UBOOT_BINARY}
> +
> + # Install the uboot-initial-env
> + install -D -m 644 ${B}/u-boot-initial-env ${D}/${sysconfdir}/u-boot-initial-env-${MACHINE}-${PV}-${PR}
> + ln -sf u-boot-initial-env-${MACHINE}-${PV}-${PR} ${D}/${sysconfdir}/u-boot-initial-env-${MACHINE}
> + ln -sf u-boot-initial-env-${MACHINE}-${PV}-${PR} ${D}/${sysconfdir}/u-boot-initial-env
> fi
>
> if [ -n "${UBOOT_ELF}" ]
> @@ -236,7 +253,16 @@ do_install () {
>
> }
>
> -FILES_${PN} = "/boot ${sysconfdir} ${datadir}"
> +PACKAGE_BEFORE_PN += "${PN}-env"
> +
> +RPROVIDES_${PN}-env += "u-boot-default-env"
> +FILES_${PN}-env = " \
> + ${sysconfdir}/u-boot-initial-env* \
> + ${sysconfdir}/fw_env.config \
> +"
> +
> +FILES_${PN} = "/boot ${datadir}"
> +RDEPENDS_${PN} += "${PN}-env"
>
> do_deploy () {
> if [ -n "${UBOOT_CONFIG}" ]
> @@ -247,25 +273,43 @@ do_deploy () {
> j=$(expr $j + 1);
> if [ $j -eq $i ]
> then
> - install -d ${DEPLOYDIR}
> - install -m 644 ${B}/${config}/u-boot-${type}.${UBOOT_SUFFIX} ${DEPLOYDIR}/u-boot-${type}-${PV}-${PR}.${UBOOT_SUFFIX}
> + install -D -m 644 ${B}/${config}/u-boot-${type}.${UBOOT_SUFFIX} ${DEPLOYDIR}/u-boot-${type}-${PV}-${PR}.${UBOOT_SUFFIX}
> cd ${DEPLOYDIR}
> ln -sf u-boot-${type}-${PV}-${PR}.${UBOOT_SUFFIX} ${UBOOT_SYMLINK}-${type}
> ln -sf u-boot-${type}-${PV}-${PR}.${UBOOT_SUFFIX} ${UBOOT_SYMLINK}
> ln -sf u-boot-${type}-${PV}-${PR}.${UBOOT_SUFFIX} ${UBOOT_BINARY}-${type}
> 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}/u-boot-initial-env-${MACHINE}-${type}-${PV}-${PR}
> + cd ${DEPLOYDIR}
> + ln -sf u-boot-initial-env-${MACHINE}-${type}-${PV}-${PR} u-boot-initial-env-${MACHINE}-${type}
> + ln -sf u-boot-initial-env-${MACHINE}-${type}-${PV}-${PR} u-boot-initial-env-${type}
> fi
> done
> unset j
> done
> unset i
> else
> - install -d ${DEPLOYDIR}
> - install -m 644 ${B}/${UBOOT_BINARY} ${DEPLOYDIR}/${UBOOT_IMAGE}
> + install -D -m 644 ${B}/${UBOOT_BINARY} ${DEPLOYDIR}/${UBOOT_IMAGE}
> +
> cd ${DEPLOYDIR}
> rm -f ${UBOOT_BINARY} ${UBOOT_SYMLINK}
> ln -sf ${UBOOT_IMAGE} ${UBOOT_SYMLINK}
> ln -sf ${UBOOT_IMAGE} ${UBOOT_BINARY}
> +
> + # Deploy the uboot-initial-env
> + install -D -m 644 ${B}/u-boot-initial-env ${DEPLOYDIR}/u-boot-initial-env-${MACHINE}-${PV}-${PR}
> + cd ${DEPLOYDIR}
> + ln -sf u-boot-initial-env-${MACHINE}-${PV}-${PR} u-boot-initial-env-${MACHINE}
> + ln -sf u-boot-initial-env-${MACHINE}-${PV}-${PR} u-boot-initial-env
> + fi
> +
> + if [ -e ${WORKDIR}/fw_env.config ] ; then
> + install -D -m 644 ${WORKDIR}/fw_env.config ${DEPLOYDIR}/fw_env.config-${MACHINE}-${PV}-${PR}
> + cd ${DEPLOYDIR}
> + ln -sf fw_env.config-${MACHINE}-${PV}-${PR} fw_env.config-${MACHINE}
> + ln -sf fw_env.config-${MACHINE}-${PV}-${PR} fw_env.config
> fi
>
> if [ -n "${UBOOT_ELF}" ]
> --
> 2.26.0
>
>
next prev parent reply other threads:[~2020-04-12 21:07 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-04-02 0:14 [PATCH v3] u-boot: Restore valid default environment for running system Otavio Salvador
2020-04-02 8:10 ` [OE-core] " Stefano Babic
2020-04-12 21:07 ` Denys Dmytriyenko [this message]
2020-04-13 11:47 ` Otavio Salvador
2020-04-13 16:09 ` Denys Dmytriyenko
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20200412210715.GE1578@denix.org \
--to=denis@denix.org \
--cc=openembedded-core@lists.openembedded.org \
--cc=otavio.salvador@gmail.com \
--cc=otavio@ossystems.com.br \
--cc=sbabic@denx.de \
--cc=trini@konsulko.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.