Browse Source

u-boot-custom: Add a config package for Linux user-space

Add a new (optional) u-boot-${MACHINE}-config package (which also
provides u-boot-config) that contains configuration files for Linux
user-space.  Namely, the default environment as /etc/u-boot-initial-env
and a config for envtools as /etc/fw_env.config.

This new package can be enabled by setting

    U_BOOT_CONFIG_PACKAGE = "1"

in a concrete U-Boot recipe.  The recipe then also needs to provide
a fw_env.config file in its SRC_URI / in ${WORKDIR}.

Signed-off-by: Harald Seiler <hws@denx.de>
Harald Seiler 4 years ago
parent
commit
fba7c6a249

+ 1 - 0
meta/recipes-bsp/u-boot/files/debian/rules

@@ -15,6 +15,7 @@ endif
 override_dh_auto_build:
 	$(MAKE) $(PARALLEL_MAKE) $(U_BOOT_CONFIG)
 	$(MAKE) $(PARALLEL_MAKE) ${U_BOOT_BIN}
+	./scripts/get_default_envs.sh >u-boot-initial-env
 	$(MAKE) $(PARALLEL_MAKE) $(SET_CROSS_BUILD_TOOLS) NO_SDL=1 tools-only envtools
 
 override_dh_auto_install:

+ 21 - 0
meta/recipes-bsp/u-boot/u-boot-custom.inc

@@ -11,6 +11,8 @@ DESCRIPTION ?= "Custom U-Boot"
 
 PROVIDES += "u-boot-${MACHINE} u-boot-${MACHINE}-dev"
 PROVIDES += "${@'u-boot-tools' if d.getVar('U_BOOT_TOOLS_PACKAGE') == '1' else ''}"
+PROVIDES += "${@('u-boot-config u-boot-' + d.getVar('MACHINE') + '-config') \
+    if d.getVar('U_BOOT_CONFIG_PACKAGE') == '1' else ''}"
 
 inherit dpkg
 
@@ -22,6 +24,7 @@ TEMPLATE_FILES = "debian/control.tmpl"
 TEMPLATE_VARS += "MACHINE BUILD_DEPENDS"
 
 U_BOOT_TOOLS_PACKAGE ?= "0"
+U_BOOT_CONFIG_PACKAGE ?= "0"
 
 do_prepare_build() {
     cp -r ${WORKDIR}/debian ${S}/
@@ -41,6 +44,24 @@ Package: u-boot-tools
 Architecture: linux-any
 Depends: \${shlibs:Depends}, \${misc:Depends}
 Description: ${DESCRIPTION}, companion tools
+EOF
+    fi
+
+    if [ "${U_BOOT_CONFIG_PACKAGE}" = "1" ]; then
+        cp ${WORKDIR}/fw_env.config ${S}/ || \
+            die "U_BOOT_CONFIG_PACKAGE requires a fw_env.config in SRC_URI"
+
+        cat <<EOF >>${S}/debian/control
+
+Package: u-boot-${MACHINE}-config
+Provides: u-boot-config
+Architecture: ${DISTRO_ARCH}
+Description: ${DESCRIPTION}, environment configuration
+EOF
+
+        cat <<EOF >>${S}/debian/u-boot-${MACHINE}-config.install
+u-boot-initial-env /etc
+fw_env.config      /etc
 EOF
     fi
 }