* [OE-core] [PATCH V3 0/3] Introduce UBOOT_INITIAL_ENV/cfg files fixes/coding style fixes @ 2020-05-28 12:41 Ming Liu 2020-05-28 12:41 ` [OE-core] [PATCH V3 1/3] u-boot: support merging .cfg files for UBOOT_CONFIG Ming Liu ` (2 more replies) 0 siblings, 3 replies; 7+ messages in thread From: Ming Liu @ 2020-05-28 12:41 UTC (permalink / raw) To: openembedded-core; +Cc: stefan.agner, max.krummenacher, denys, Ming Liu From: Ming Liu <ming.liu@toradex.com> Changes in V2: 1 Introduce UBOOT_INITIAL_ENV as suggested by Denys Dmytriyenko. 2 Fix cfg files in case UBOOT_CONFIG is enabled. 3 Add fix for some inconsistent coding style. Ming Liu (3): u-boot: support merging .cfg files for UBOOT_CONFIG u-boot.inc: fix some inconsistent coding style u-boot: introduce UBOOT_INITIAL_ENV meta/recipes-bsp/u-boot/u-boot.inc | 120 ++++++++++++++++++----------- 1 file changed, 74 insertions(+), 46 deletions(-) -- 2.26.2 ^ permalink raw reply [flat|nested] 7+ messages in thread
* [OE-core] [PATCH V3 1/3] u-boot: support merging .cfg files for UBOOT_CONFIG 2020-05-28 12:41 [OE-core] [PATCH V3 0/3] Introduce UBOOT_INITIAL_ENV/cfg files fixes/coding style fixes Ming Liu @ 2020-05-28 12:41 ` Ming Liu 2020-05-29 20:09 ` Denys Dmytriyenko 2020-05-28 12:41 ` [OE-core] [PATCH V3 2/3] u-boot.inc: fix some inconsistent coding style Ming Liu 2020-05-28 12:41 ` [OE-core] [PATCH V3 3/3] u-boot: introduce UBOOT_INITIAL_ENV Ming Liu 2 siblings, 1 reply; 7+ messages in thread From: Ming Liu @ 2020-05-28 12:41 UTC (permalink / raw) To: openembedded-core; +Cc: stefan.agner, max.krummenacher, denys, Ming Liu From: Ming Liu <ming.liu@toradex.com> U-boot recipe supports .cfg files in SRC_URI, but they would be merged to .config during do_configure only when UBOOT_MACHINE is set, we should also support merging .cfg files for UBOOT_CONFIG. Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com> Signed-off-by: Ming Liu <ming.liu@toradex.com> --- meta/recipes-bsp/u-boot/u-boot.inc | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/meta/recipes-bsp/u-boot/u-boot.inc b/meta/recipes-bsp/u-boot/u-boot.inc index 80f828df52..8cfd25020c 100644 --- a/meta/recipes-bsp/u-boot/u-boot.inc +++ b/meta/recipes-bsp/u-boot/u-boot.inc @@ -77,7 +77,23 @@ def find_cfgs(d): return sources_list do_configure () { - if [ -z "${UBOOT_CONFIG}" ]; then + if [ -n "${UBOOT_CONFIG}" ]; then + unset i j + for config in ${UBOOT_MACHINE}; do + i=$(expr $i + 1); + for type in ${UBOOT_CONFIG}; do + j=$(expr $j + 1); + if [ $j -eq $i ]; then + oe_runmake -C ${S} O=${B}/${config} ${config} + merge_config.sh -m -O ${B}/${config} ${B}/${config}/.config ${@" ".join(find_cfgs(d))} + oe_runmake -C ${S} O=${B}/${config} oldconfig + fi + done + unset j + done + unset i + DEVTOOL_DISABLE_MENUCONFIG=true + else if [ -n "${UBOOT_MACHINE}" ]; then oe_runmake -C ${S} O=${B} ${UBOOT_MACHINE} else @@ -85,8 +101,6 @@ do_configure () { fi merge_config.sh -m .config ${@" ".join(find_cfgs(d))} cml1_do_configure - else - DEVTOOL_DISABLE_MENUCONFIG=true fi } @@ -114,7 +128,6 @@ do_compile () { j=$(expr $j + 1); if [ $j -eq $i ] then - oe_runmake -C ${S} O=${B}/${config} ${config} oe_runmake -C ${S} O=${B}/${config} ${UBOOT_MAKE_TARGET} for binary in ${UBOOT_BINARIES}; do k=$(expr $k + 1); -- 2.26.2 ^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [OE-core] [PATCH V3 1/3] u-boot: support merging .cfg files for UBOOT_CONFIG 2020-05-28 12:41 ` [OE-core] [PATCH V3 1/3] u-boot: support merging .cfg files for UBOOT_CONFIG Ming Liu @ 2020-05-29 20:09 ` Denys Dmytriyenko 0 siblings, 0 replies; 7+ messages in thread From: Denys Dmytriyenko @ 2020-05-29 20:09 UTC (permalink / raw) To: Ming Liu Cc: openembedded-core, stefan.agner, max.krummenacher, denys, Ming Liu Is this change really required for UBOOT_INITIAL_ENV? I think you are merging several patch series together? On Thu, May 28, 2020 at 02:41:27PM +0200, Ming Liu wrote: > From: Ming Liu <ming.liu@toradex.com> > > U-boot recipe supports .cfg files in SRC_URI, but they would be merged > to .config during do_configure only when UBOOT_MACHINE is set, we > should also support merging .cfg files for UBOOT_CONFIG. > > Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com> > Signed-off-by: Ming Liu <ming.liu@toradex.com> > --- > meta/recipes-bsp/u-boot/u-boot.inc | 21 +++++++++++++++++---- > 1 file changed, 17 insertions(+), 4 deletions(-) > > diff --git a/meta/recipes-bsp/u-boot/u-boot.inc b/meta/recipes-bsp/u-boot/u-boot.inc > index 80f828df52..8cfd25020c 100644 > --- a/meta/recipes-bsp/u-boot/u-boot.inc > +++ b/meta/recipes-bsp/u-boot/u-boot.inc > @@ -77,7 +77,23 @@ def find_cfgs(d): > return sources_list > > do_configure () { > - if [ -z "${UBOOT_CONFIG}" ]; then > + if [ -n "${UBOOT_CONFIG}" ]; then > + unset i j > + for config in ${UBOOT_MACHINE}; do > + i=$(expr $i + 1); > + for type in ${UBOOT_CONFIG}; do > + j=$(expr $j + 1); > + if [ $j -eq $i ]; then > + oe_runmake -C ${S} O=${B}/${config} ${config} > + merge_config.sh -m -O ${B}/${config} ${B}/${config}/.config ${@" ".join(find_cfgs(d))} > + oe_runmake -C ${S} O=${B}/${config} oldconfig > + fi > + done > + unset j > + done > + unset i > + DEVTOOL_DISABLE_MENUCONFIG=true > + else > if [ -n "${UBOOT_MACHINE}" ]; then > oe_runmake -C ${S} O=${B} ${UBOOT_MACHINE} > else > @@ -85,8 +101,6 @@ do_configure () { > fi > merge_config.sh -m .config ${@" ".join(find_cfgs(d))} > cml1_do_configure > - else > - DEVTOOL_DISABLE_MENUCONFIG=true > fi > } > > @@ -114,7 +128,6 @@ do_compile () { > j=$(expr $j + 1); > if [ $j -eq $i ] > then > - oe_runmake -C ${S} O=${B}/${config} ${config} > oe_runmake -C ${S} O=${B}/${config} ${UBOOT_MAKE_TARGET} > for binary in ${UBOOT_BINARIES}; do > k=$(expr $k + 1); > -- > 2.26.2 > > ^ permalink raw reply [flat|nested] 7+ messages in thread
* [OE-core] [PATCH V3 2/3] u-boot.inc: fix some inconsistent coding style 2020-05-28 12:41 [OE-core] [PATCH V3 0/3] Introduce UBOOT_INITIAL_ENV/cfg files fixes/coding style fixes Ming Liu 2020-05-28 12:41 ` [OE-core] [PATCH V3 1/3] u-boot: support merging .cfg files for UBOOT_CONFIG Ming Liu @ 2020-05-28 12:41 ` Ming Liu 2020-05-28 12:41 ` [OE-core] [PATCH V3 3/3] u-boot: introduce UBOOT_INITIAL_ENV Ming Liu 2 siblings, 0 replies; 7+ messages in thread From: Ming Liu @ 2020-05-28 12:41 UTC (permalink / raw) To: openembedded-core; +Cc: stefan.agner, max.krummenacher, denys, Ming Liu From: Ming Liu <ming.liu@toradex.com> Signed-off-by: Ming Liu <ming.liu@toradex.com> --- meta/recipes-bsp/u-boot/u-boot.inc | 44 ++++++++++++++---------------- 1 file changed, 21 insertions(+), 23 deletions(-) diff --git a/meta/recipes-bsp/u-boot/u-boot.inc b/meta/recipes-bsp/u-boot/u-boot.inc index 8cfd25020c..be15e1760f 100644 --- a/meta/recipes-bsp/u-boot/u-boot.inc +++ b/meta/recipes-bsp/u-boot/u-boot.inc @@ -105,19 +105,19 @@ do_configure () { } do_compile () { - if [ "${@bb.utils.filter('DISTRO_FEATURES', 'ld-is-gold', d)}" ]; then - sed -i 's/$(CROSS_COMPILE)ld$/$(CROSS_COMPILE)ld.bfd/g' ${S}/config.mk - fi + if [ "${@bb.utils.filter('DISTRO_FEATURES', 'ld-is-gold', d)}" ]; then + sed -i 's/$(CROSS_COMPILE)ld$/$(CROSS_COMPILE)ld.bfd/g' ${S}/config.mk + fi - unset LDFLAGS - unset CFLAGS - unset CPPFLAGS + unset LDFLAGS + unset CFLAGS + unset CPPFLAGS - if [ ! -e ${B}/.scmversion -a ! -e ${S}/.scmversion ] - then - echo ${UBOOT_LOCALVERSION} > ${B}/.scmversion - echo ${UBOOT_LOCALVERSION} > ${S}/.scmversion - fi + if [ ! -e ${B}/.scmversion -a ! -e ${S}/.scmversion ] + then + echo ${UBOOT_LOCALVERSION} > ${B}/.scmversion + echo ${UBOOT_LOCALVERSION} > ${S}/.scmversion + fi if [ -n "${UBOOT_CONFIG}" ] then @@ -143,16 +143,15 @@ do_compile () { unset k fi done - unset j + unset j done - unset i + 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 fi - } do_install () { @@ -175,9 +174,9 @@ do_install () { ln -sf ${PN}-initial-env-${MACHINE}-${type}-${PV}-${PR} ${D}/${sysconfdir}/${PN}-initial-env fi done - unset j + unset j done - unset i + unset i else install -D -m 644 ${B}/${UBOOT_BINARY} ${D}/boot/${UBOOT_IMAGE} ln -sf ${UBOOT_IMAGE} ${D}/boot/${UBOOT_BINARY} @@ -232,9 +231,9 @@ do_install () { ln -sf ${SPL_IMAGE}-${type}-${PV}-${PR} ${D}/boot/${SPL_BINARYNAME} fi done - unset j + unset j done - unset i + unset i else install -m 644 ${B}/${SPL_BINARY} ${D}/boot/${SPL_IMAGE} ln -sf ${SPL_IMAGE} ${D}/boot/${SPL_BINARYNAME} @@ -251,7 +250,6 @@ do_install () { then install -Dm 0644 ${UBOOT_EXTLINUX_CONFIG} ${D}/${UBOOT_EXTLINUX_INSTALL_DIR}/${UBOOT_EXTLINUX_CONF_NAME} fi - } PACKAGE_BEFORE_PN += "${PN}-env" @@ -288,9 +286,9 @@ do_deploy () { ln -sf ${PN}-initial-env-${MACHINE}-${type}-${PV}-${PR} ${PN}-initial-env-${type} fi done - unset j + unset j done - unset i + unset i else install -D -m 644 ${B}/${UBOOT_BINARY} ${DEPLOYDIR}/${UBOOT_IMAGE} @@ -359,9 +357,9 @@ do_deploy () { ln -sf ${SPL_IMAGE}-${type}-${PV}-${PR} ${DEPLOYDIR}/${SPL_SYMLINK} fi done - unset j + unset j done - unset i + unset i else install -m 644 ${B}/${SPL_BINARY} ${DEPLOYDIR}/${SPL_IMAGE} rm -f ${DEPLOYDIR}/${SPL_BINARYNAME} ${DEPLOYDIR}/${SPL_SYMLINK} -- 2.26.2 ^ permalink raw reply related [flat|nested] 7+ messages in thread
* [OE-core] [PATCH V3 3/3] u-boot: introduce UBOOT_INITIAL_ENV 2020-05-28 12:41 [OE-core] [PATCH V3 0/3] Introduce UBOOT_INITIAL_ENV/cfg files fixes/coding style fixes Ming Liu 2020-05-28 12:41 ` [OE-core] [PATCH V3 1/3] u-boot: support merging .cfg files for UBOOT_CONFIG Ming Liu 2020-05-28 12:41 ` [OE-core] [PATCH V3 2/3] u-boot.inc: fix some inconsistent coding style Ming Liu @ 2020-05-28 12:41 ` Ming Liu 2020-05-29 20:11 ` Denys Dmytriyenko 2 siblings, 1 reply; 7+ messages in thread From: Ming Liu @ 2020-05-28 12:41 UTC (permalink / raw) To: openembedded-core; +Cc: stefan.agner, max.krummenacher, denys, Ming Liu From: Ming Liu <ming.liu@toradex.com> 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 <ming.liu@toradex.com> --- 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" FILES_${PN}-env = " \ - ${sysconfdir}/${PN}-initial-env* \ + ${sysconfdir}/${UBOOT_INITIAL_ENV}* \ ${sysconfdir}/fw_env.config \ " @@ -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 ^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [OE-core] [PATCH V3 3/3] u-boot: introduce UBOOT_INITIAL_ENV 2020-05-28 12:41 ` [OE-core] [PATCH V3 3/3] u-boot: introduce UBOOT_INITIAL_ENV Ming Liu @ 2020-05-29 20:11 ` Denys Dmytriyenko 2020-06-01 6:48 ` Ming Liu 0 siblings, 1 reply; 7+ messages in thread From: Denys Dmytriyenko @ 2020-05-29 20:11 UTC (permalink / raw) To: Ming Liu Cc: openembedded-core, stefan.agner, max.krummenacher, denys, Ming Liu On Thu, May 28, 2020 at 02:41:29PM +0200, Ming Liu wrote: > From: Ming Liu <ming.liu@toradex.com> > > 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 <ming.liu@toradex.com> > --- > 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 > > ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [OE-core] [PATCH V3 3/3] u-boot: introduce UBOOT_INITIAL_ENV 2020-05-29 20:11 ` Denys Dmytriyenko @ 2020-06-01 6:48 ` Ming Liu 0 siblings, 0 replies; 7+ messages in thread From: Ming Liu @ 2020-06-01 6:48 UTC (permalink / raw) To: Denys Dmytriyenko Cc: OE-core, Stefan Agner, Max Krummenacher, denys, Ming Liu [-- Attachment #1: Type: text/plain, Size: 8406 bytes --] Hi, Denys: To install fw_env.config or not is also optional, attempt to say that "ALLOW_EMPTY_${PN}-dev = "1"" is needed. Will send a V4 according to your other comments. //Ming Liu Denys Dmytriyenko <denis@denix.org> 於 2020年5月29日 週五 下午10:11寫道: > On Thu, May 28, 2020 at 02:41:29PM +0200, Ming Liu wrote: > > From: Ming Liu <ming.liu@toradex.com> > > > > 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 <ming.liu@toradex.com> > > --- > > 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 > > > > > > > [-- Attachment #2: Type: text/html, Size: 10279 bytes --] ^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2020-06-01 6:48 UTC | newest] Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2020-05-28 12:41 [OE-core] [PATCH V3 0/3] Introduce UBOOT_INITIAL_ENV/cfg files fixes/coding style fixes Ming Liu 2020-05-28 12:41 ` [OE-core] [PATCH V3 1/3] u-boot: support merging .cfg files for UBOOT_CONFIG Ming Liu 2020-05-29 20:09 ` Denys Dmytriyenko 2020-05-28 12:41 ` [OE-core] [PATCH V3 2/3] u-boot.inc: fix some inconsistent coding style Ming Liu 2020-05-28 12:41 ` [OE-core] [PATCH V3 3/3] u-boot: introduce UBOOT_INITIAL_ENV Ming Liu 2020-05-29 20:11 ` Denys Dmytriyenko 2020-06-01 6:48 ` Ming Liu
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.