mirror of
https://git.yoctoproject.org/poky
synced 2026-05-08 17:19:20 +00:00
u-boot: Restore valid default environment for running system
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. (From OE-Core rev: 69b3b093079c2ca2744d6c02747c5d1b5d3e7ecf) Signed-off-by: Otavio Salvador <otavio@ossystems.com.br> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
committed by
Richard Purdie
parent
40f37ab231
commit
4882a93566
@@ -122,6 +122,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
|
||||
@@ -130,6 +135,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
|
||||
fi
|
||||
|
||||
}
|
||||
@@ -143,19 +151,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}" ]
|
||||
@@ -224,7 +241,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}" ]
|
||||
@@ -235,25 +261,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}" ]
|
||||
|
||||
Reference in New Issue
Block a user