From 1506c40c93651356b9fe2f7184b5e26f99e22686 Mon Sep 17 00:00:00 2001 From: Ash Charles Date: Tue, 24 Jun 2014 13:10:18 -0700 Subject: u-boot: Optionally deploy an environment or script file Some boards are configured to read a script or environment file as part of the u-boot boot sequence. This file, typically called 'uEnv.txt' or 'boot.scr', would be deployed alongside the u-boot binary. If a recipe uses this u-boot.inc, such a file can be deployed by setting the optional UBOOT_ENV parameter and including the file in the SRC_URI. For example: SRC_URI_append_overo = "file://uEnv.txt" UBOOT_ENV_overo = "uEnv" Signed-off-by: Ash Charles Signed-off-by: Richard Purdie --- meta/recipes-bsp/u-boot/u-boot.inc | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) (limited to 'meta/recipes-bsp/u-boot') diff --git a/meta/recipes-bsp/u-boot/u-boot.inc b/meta/recipes-bsp/u-boot/u-boot.inc index d826a40c9c..53c87c28f0 100644 --- a/meta/recipes-bsp/u-boot/u-boot.inc +++ b/meta/recipes-bsp/u-boot/u-boot.inc @@ -28,6 +28,17 @@ SPL_BINARY ?= "" SPL_IMAGE ?= "${SPL_BINARY}-${MACHINE}-${PV}-${PR}" SPL_SYMLINK ?= "${SPL_BINARY}-${MACHINE}" +# Additional environment variables or a script can be installed alongside +# u-boot to be used automatically on boot. This file, typically 'uEnv.txt' +# or 'boot.scr', should be packaged along with u-boot as well as placed in the +# deploy directory. Machine configurations needing one of these files should +# include it in the SRC_URI and set the UBOOT_ENV parameter. +UBOOT_ENV_SUFFIX ?= "txt" +UBOOT_ENV ?= "" +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}" + do_compile () { if [ "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', 'ld-is-gold', '', d)}" = "ld-is-gold" ] ; then sed -i 's/$(CROSS_COMPILE)ld$/$(CROSS_COMPILE)ld.bfd/g' config.mk @@ -62,6 +73,12 @@ do_install () { install ${S}/${SPL_BINARY} ${D}/boot/${SPL_IMAGE} ln -sf ${SPL_IMAGE} ${D}/boot/${SPL_BINARY} fi + + if [ "x${UBOOT_ENV}" != "x" ] + then + install ${WORKDIR}/${UBOOT_ENV_BINARY} ${D}/boot/${UBOOT_ENV_IMAGE} + ln -sf ${UBOOT_ENV_IMAGE} ${D}/boot/${UBOOT_ENV_BINARY} + fi } FILES_${PN} = "/boot ${sysconfdir}" @@ -82,6 +99,14 @@ do_deploy () { ln -sf ${SPL_IMAGE} ${DEPLOYDIR}/${SPL_BINARY} ln -sf ${SPL_IMAGE} ${DEPLOYDIR}/${SPL_SYMLINK} fi + + if [ "x${UBOOT_ENV}" != "x" ] + then + install ${WORKDIR}/${UBOOT_ENV_BINARY} ${DEPLOYDIR}/${UBOOT_ENV_IMAGE} + rm -f ${DEPLOYDIR}/${UBOOT_ENV_BINARY} ${DEPLOYDIR}/${UBOOT_ENV_SYMLINK} + ln -sf ${UBOOT_ENV_IMAGE} ${DEPLOYDIR}/${UBOOT_ENV_BINARY} + ln -sf ${UBOOT_ENV_IMAGE} ${DEPLOYDIR}/${UBOOT_ENV_SYMLINK} + fi } addtask deploy before do_build after do_compile -- cgit v1.2.3