[meta-freescale] [3rdparty][PATCH V2][master] u-boot-toradex-fw-utils: add new recipe

Max Krummenacher max.krummenacher at toradex.com
Tue Nov 20 05:03:52 PST 2018


Hi Ming,

One more nitpick that I didn't spot in v1 of the patch, sorry.

PV has now a leading v, "v2016.11..." for both U-Boot and U-Boot-FW-Utils.
That is a change to how it was before and how our non NXP boards get
their U-Boot version. Could we drop the 'v'?

Otherwise:
Acked-by: Max Krummenacher <max.krummenacher at toradex.com>

Thank you for the work.

Regards
Max

On Mon, 2018-11-19 at 22:25 +0100, liu.ming50 at gmail.com wrote:
> From: Ming Liu <liu.ming50 at gmail.com>
> 
> I observed a following build issue:
> > ***
> > *** Can't find default configuration "arch/../configs/colibri_imx7_emmc_defconfig"!
> > ***
> > scripts/kconfig/Makefile:128: recipe for target 'colibri_imx7_emmc_defconfig' failed
> 
> it's due to the colibri_imx7_emmc_defconfig does not exist in the
> source, because u-boot-toradex and u-boot-fw-utils are not built from
> same source. so the toradex machine specific uboot configs do not
> present in the default u-boot-fw-utils source.
> 
> To fix it, a new u-boot-toradex-fw-utils recipe is added, it uses the
> same source with u-boot-toradex, some common code is split out to
> u-boot-toradex.inc, to be shared by both u-boot-toradex and
> u-boot-toradex-fw-utils.
> 
> And we need set PREFERRED_PROVIDER and PREFERRED_RPROVIDER in machine
> configs to u-boot-toradex-fw-utils.
> 
> Some files derive from u-boot-toradex-fw-utils recipe of:
> git://git.toradex.com/meta-toradex-nxp.git
> 
> Signed-off-by: Ming Liu <liu.ming50 at gmail.com>
> ---
>  conf/machine/apalis-imx6.conf                      |  3 ++
>  conf/machine/colibri-imx6.conf                     |  3 ++
>  conf/machine/colibri-imx6ull.conf                  |  3 ++
>  conf/machine/colibri-imx7.conf                     |  2 +
>  conf/machine/colibri-vf.conf                       |  2 +
>  ...ross-compiling-tools-when-HOSTCC-is-overr.patch | 54 ++++++++++++++++++++++
>  .../colibri-imx6ull/fw_env.config                  | 10 ++++
>  .../colibri-imx7/fw_env.config                     | 10 ++++
>  .../u-boot/u-boot-toradex-fw-utils/fw_env.config   | 22 +++++++++
>  .../u-boot-toradex-fw-utils/mx6/fw_env.config      | 17 +++++++
>  .../u-boot-toradex-fw-utils/vf/fw_env.config       | 10 ++++
>  .../u-boot/u-boot-toradex-fw-utils_2016.11.bb      | 42 +++++++++++++++++
>  recipes-bsp/u-boot/u-boot-toradex.inc              | 21 ---------
>  recipes-bsp/u-boot/u-boot-toradex_2016.11.bb       | 10 ++--
>  recipes-bsp/u-boot/u-boot-toradex_2016.11.inc      | 20 ++++++++
>  15 files changed, 203 insertions(+), 26 deletions(-)
>  create mode 100644 recipes-bsp/u-boot/u-boot-toradex-fw-utils/0001-tools-fix-cross-compiling-tools-when-HOSTCC-is-overr.patch
>  create mode 100644 recipes-bsp/u-boot/u-boot-toradex-fw-utils/colibri-imx6ull/fw_env.config
>  create mode 100644 recipes-bsp/u-boot/u-boot-toradex-fw-utils/colibri-imx7/fw_env.config
>  create mode 100644 recipes-bsp/u-boot/u-boot-toradex-fw-utils/fw_env.config
>  create mode 100644 recipes-bsp/u-boot/u-boot-toradex-fw-utils/mx6/fw_env.config
>  create mode 100644 recipes-bsp/u-boot/u-boot-toradex-fw-utils/vf/fw_env.config
>  create mode 100644 recipes-bsp/u-boot/u-boot-toradex-fw-utils_2016.11.bb
>  delete mode 100644 recipes-bsp/u-boot/u-boot-toradex.inc
>  create mode 100644 recipes-bsp/u-boot/u-boot-toradex_2016.11.inc
> 
> diff --git a/conf/machine/apalis-imx6.conf b/conf/machine/apalis-imx6.conf
> index 47a9d87..a9b9af0 100644
> --- a/conf/machine/apalis-imx6.conf
> +++ b/conf/machine/apalis-imx6.conf
> @@ -20,6 +20,9 @@ RDEPENDS_${KERNEL_PACKAGE_NAME}-base = ""
>  
>  PREFERRED_PROVIDER_u-boot ?= "u-boot-toradex"
>  PREFERRED_PROVIDER_virtual/bootloader ?= "u-boot-toradex"
> +PREFERRED_PROVIDER_u-boot-fw-utils ?= "u-boot-toradex-fw-utils"
> +PREFERRED_RPROVIDER_u-boot-fw-utils ?= "u-boot-toradex-fw-utils"
> +
>  SPL_BINARY = "SPL"
>  # The SPL configures the DDR RAM depending on the module it runs on. Thus there
>  # is no need to distingush between the different module types.
> diff --git a/conf/machine/colibri-imx6.conf b/conf/machine/colibri-imx6.conf
> index d3c2d00..0c6d7cc 100644
> --- a/conf/machine/colibri-imx6.conf
> +++ b/conf/machine/colibri-imx6.conf
> @@ -20,6 +20,9 @@ RDEPENDS_${KERNEL_PACKAGE_NAME}-base = ""
>  
>  PREFERRED_PROVIDER_u-boot ?= "u-boot-toradex"
>  PREFERRED_PROVIDER_virtual/bootloader ?= "u-boot-toradex"
> +PREFERRED_PROVIDER_u-boot-fw-utils ?= "u-boot-toradex-fw-utils"
> +PREFERRED_RPROVIDER_u-boot-fw-utils ?= "u-boot-toradex-fw-utils"
> +
>  SPL_BINARY = "SPL"
>  UBOOT_CONFIG ??= "spl"
>  UBOOT_CONFIG[spl] = "colibri_imx6_defconfig,,u-boot.img"
> diff --git a/conf/machine/colibri-imx6ull.conf b/conf/machine/colibri-imx6ull.conf
> index 748a12b..a70dd42 100644
> --- a/conf/machine/colibri-imx6ull.conf
> +++ b/conf/machine/colibri-imx6ull.conf
> @@ -17,6 +17,9 @@ RDEPENDS_${KERNEL_PACKAGE_NAME}-base = ""
>  
>  PREFERRED_PROVIDER_u-boot ?= "u-boot-toradex"
>  PREFERRED_PROVIDER_virtual/bootloader ?= "u-boot-toradex"
> +PREFERRED_PROVIDER_u-boot-fw-utils ?= "u-boot-toradex-fw-utils"
> +PREFERRED_RPROVIDER_u-boot-fw-utils ?= "u-boot-toradex-fw-utils"
> +
>  UBOOT_BINARY = "u-boot-nand.imx"
>  UBOOT_MAKE_TARGET = "u-boot-nand.imx"
>  UBOOT_MACHINE ?= "colibri-imx6ull_defconfig"
> diff --git a/conf/machine/colibri-imx7.conf b/conf/machine/colibri-imx7.conf
> index 51048e4..2ad296b 100644
> --- a/conf/machine/colibri-imx7.conf
> +++ b/conf/machine/colibri-imx7.conf
> @@ -20,6 +20,8 @@ RDEPENDS_${KERNEL_PACKAGE_NAME}-base = ""
>  
>  PREFERRED_PROVIDER_u-boot ?= "u-boot-toradex"
>  PREFERRED_PROVIDER_virtual/bootloader ?= "u-boot-toradex"
> +PREFERRED_PROVIDER_u-boot-fw-utils ?= "u-boot-toradex-fw-utils"
> +PREFERRED_RPROVIDER_u-boot-fw-utils ?= "u-boot-toradex-fw-utils"
>  
>  # U-Boot NAND binary includes 0x400 padding required for NAND boot
>  UBOOT_BINARY = "u-boot-nand.imx"
> diff --git a/conf/machine/colibri-vf.conf b/conf/machine/colibri-vf.conf
> index 2f7a5d8..a03853d 100644
> --- a/conf/machine/colibri-vf.conf
> +++ b/conf/machine/colibri-vf.conf
> @@ -20,6 +20,8 @@ RDEPENDS_${KERNEL_PACKAGE_NAME}-base = ""
>  
>  PREFERRED_PROVIDER_u-boot ?= "u-boot-toradex"
>  PREFERRED_PROVIDER_virtual/bootloader ?= "u-boot-toradex"
> +PREFERRED_PROVIDER_u-boot-fw-utils ?= "u-boot-toradex-fw-utils"
> +PREFERRED_RPROVIDER_u-boot-fw-utils ?= "u-boot-toradex-fw-utils"
>  PREFERRED_PROVIDER_virtual/kernel-module-mcc ?= "kernel-module-mcc-toradex"
>  PREFERRED_PROVIDER_virtual/kernel-module-mcc-dev ?= "kernel-module-mcc-toradex"
>  PREFERRED_VERSION_mqxboot ?= "1.%"
> diff --git a/recipes-bsp/u-boot/u-boot-toradex-fw-utils/0001-tools-fix-cross-compiling-tools-when-HOSTCC-is-overr.patch b/recipes-bsp/u-boot/u-boot-toradex-fw-utils/0001-tools-fix-cross-compiling-tools-when-HOSTCC-is-overr.patch
> new file mode 100644
> index 0000000..2c087e8
> --- /dev/null
> +++ b/recipes-bsp/u-boot/u-boot-toradex-fw-utils/0001-tools-fix-cross-compiling-tools-when-HOSTCC-is-overr.patch
> @@ -0,0 +1,54 @@
> +From 3b0825296aeba69c2cbfd3e179db2e9cbe5e70d7 Mon Sep 17 00:00:00 2001
> +From: Masahiro Yamada <yamada.masahiro at socionext.com>
> +Date: Mon, 13 Mar 2017 17:43:16 +0900
> +Subject: [PATCH] tools: fix cross-compiling tools when HOSTCC is overridden
> +
> +Upstream-Status: Backport
> +
> +Richard reported U-Boot tools issues in OpenEmbedded/Yocto project.
> +
> +OE needs to be able to change the default compiler. If we pass in
> +HOSTCC through the make command, it overwrites all HOSTCC instances,
> +including ones in tools/Makefile and tools/env/Makefile, which breaks
> +"make cross_tools" and "make env", respectively.
> +
> +Add "override" directives to avoid overriding HOSTCC instances that
> +really need to point to the cross-compiler.
> +
> +Signed-off-by: Masahiro Yamada <yamada.masahiro at socionext.com>
> +Reported-by: Richard Purdie <richard.purdie at linuxfoundation.org>
> +Reviewed-by: Simon Glass <sjg at chromium.org>
> +---
> + tools/Makefile     | 2 +-
> + tools/env/Makefile | 2 +-
> + 2 files changed, 2 insertions(+), 2 deletions(-)
> +
> +diff --git a/tools/Makefile b/tools/Makefile
> +index 1c840d7..a894b5c 100644
> +--- a/tools/Makefile
> ++++ b/tools/Makefile
> +@@ -262,7 +262,7 @@ $(LOGO_DATA_H):	$(obj)/bmp_logo $(LOGO_BMP)
> + subdir- += env
> + 
> + ifneq ($(CROSS_BUILD_TOOLS),)
> +-HOSTCC = $(CC)
> ++override HOSTCC = $(CC)
> + 
> + quiet_cmd_crosstools_strip = STRIP   $^
> +       cmd_crosstools_strip = $(STRIP) $^; touch $@
> +diff --git a/tools/env/Makefile b/tools/env/Makefile
> +index 38ad118..95b28c0 100644
> +--- a/tools/env/Makefile
> ++++ b/tools/env/Makefile
> +@@ -8,7 +8,7 @@
> + # fw_printenv is supposed to run on the target system, which means it should be
> + # built with cross tools. Although it may look weird, we only replace "HOSTCC"
> + # with "CC" here for the maximum code reuse of scripts/Makefile.host.
> +-HOSTCC = $(CC)
> ++override HOSTCC = $(CC)
> + 
> + # Compile for a hosted environment on the target
> + HOST_EXTRACFLAGS  = $(patsubst -I%,-idirafter%, $(filter -I%, $(UBOOTINCLUDE))) \
> +-- 
> +2.7.4
> +
> diff --git a/recipes-bsp/u-boot/u-boot-toradex-fw-utils/colibri-imx6ull/fw_env.config b/recipes-bsp/u-boot/u-boot-toradex-fw-utils/colibri-imx6ull/fw_env.config
> new file mode 100644
> index 0000000..930bcee
> --- /dev/null
> +++ b/recipes-bsp/u-boot/u-boot-toradex-fw-utils/colibri-imx6ull/fw_env.config
> @@ -0,0 +1,10 @@
> +# Configuration file for fw_(printenv/setenv) utility.
> +# Up to two entries are valid, in this case the redundant
> +# environment sector is assumed present.
> +# Notice, that the "Number of sectors" is not required on NOR and SPI-dataflash.
> +# Futhermore, if the Flash sector size is ommitted, this value is assumed to
> +# be the same as the Environment size, which is valid for NOR and SPI-dataflash
> +
> +# MTD device name	Device offset	Env. size	Flash sector size	Number of sectors
> +# Colibri iMX6ULL
> +/dev/mtd3		0x00000000	0x00020000	0x20000			4
> diff --git a/recipes-bsp/u-boot/u-boot-toradex-fw-utils/colibri-imx7/fw_env.config b/recipes-bsp/u-boot/u-boot-toradex-fw-utils/colibri-imx7/fw_env.config
> new file mode 100644
> index 0000000..b59116d
> --- /dev/null
> +++ b/recipes-bsp/u-boot/u-boot-toradex-fw-utils/colibri-imx7/fw_env.config
> @@ -0,0 +1,10 @@
> +# Configuration file for fw_(printenv/setenv) utility.
> +# Up to two entries are valid, in this case the redundant
> +# environment sector is assumed present.
> +# Notice, that the "Number of sectors" is not required on NOR and SPI-dataflash.
> +# Futhermore, if the Flash sector size is ommitted, this value is assumed to
> +# be the same as the Environment size, which is valid for NOR and SPI-dataflash
> +
> +# MTD device name	Device offset	Env. size	Flash sector size	Number of sectors
> +# Colibri iMX7
> +/dev/mtd3		0x00000000	0x00020000	0x20000			4
> diff --git a/recipes-bsp/u-boot/u-boot-toradex-fw-utils/fw_env.config b/recipes-bsp/u-boot/u-boot-toradex-fw-utils/fw_env.config
> new file mode 100644
> index 0000000..e054ccb
> --- /dev/null
> +++ b/recipes-bsp/u-boot/u-boot-toradex-fw-utils/fw_env.config
> @@ -0,0 +1,22 @@
> +# Configuration file for fw_(printenv/setenv) utility.
> +# Up to two entries are valid, in this case the redundant
> +# environment sector is assumed present.
> +# Notice, that the "Number of sectors" is not required on NOR and SPI-dataflash.
> +# Futhermore, if the Flash sector size is ommitted, this value is assumed to
> +# be the same as the Environment size, which is valid for NOR and SPI-dataflash
> +
> +# NOR example
> +# MTD device name	Device offset	Env. size	Flash sector size	Number of sectors
> +#/dev/mtd1		0x0000		0x4000		0x4000
> +#/dev/mtd2		0x0000		0x4000		0x4000
> +
> +# MTD SPI-dataflash example
> +# MTD device name	Device offset	Env. size	Flash sector size	Number of sectors
> +#/dev/mtd5		0x4200		0x4200
> +#/dev/mtd6		0x4200		0x4200
> +
> +# NAND example
> +#/dev/mtd0		0x4000		0x4000		0x20000			2
> +
> +# Block device example
> +#/dev/mmcblk0		0xc0000		0x20000
> diff --git a/recipes-bsp/u-boot/u-boot-toradex-fw-utils/mx6/fw_env.config b/recipes-bsp/u-boot/u-boot-toradex-fw-utils/mx6/fw_env.config
> new file mode 100644
> index 0000000..a9e724e
> --- /dev/null
> +++ b/recipes-bsp/u-boot/u-boot-toradex-fw-utils/mx6/fw_env.config
> @@ -0,0 +1,17 @@
> +# Configuration file for fw_(printenv/setenv) utility.
> +# Up to two entries are valid, in this case the redundant
> +# environment sector is assumed present.
> +# Device offset must be prefixed with 0x to be parsed as a hexadecimal value.
> +# On a block device a negative offset is treated as a backwards offset from the
> +# end of the device/partition, rather than a forwards offset from the start.
> +
> +# Colibri iMX6/Apalis iMX6
> +# U-Boot environment is stored at the end of the first eMMC boot partition
> +# hence use a negative value. The environment is just in front of the config
> +# block which occupies the last sector (hence -0x200)
> +# Note that /dev/mmcblk0boot0 by default is read only
> +# To use fw_setenv you have to first make it writeable, on the cmdline e.g. by
> +# $ echo 0 > /sys/block/mmcblk0boot0/force_ro
> +
> +# Block device name	Device offset	Env. size
> +/dev/mmcblk0boot0	-0x2200		0x2000
> diff --git a/recipes-bsp/u-boot/u-boot-toradex-fw-utils/vf/fw_env.config b/recipes-bsp/u-boot/u-boot-toradex-fw-utils/vf/fw_env.config
> new file mode 100644
> index 0000000..51f09d1
> --- /dev/null
> +++ b/recipes-bsp/u-boot/u-boot-toradex-fw-utils/vf/fw_env.config
> @@ -0,0 +1,10 @@
> +# Configuration file for fw_(printenv/setenv) utility.
> +# Up to two entries are valid, in this case the redundant
> +# environment sector is assumed present.
> +# Notice, that the "Number of sectors" is not required on NOR and SPI-dataflash.
> +# Futhermore, if the Flash sector size is ommitted, this value is assumed to
> +# be the same as the Environment size, which is valid for NOR and SPI-dataflash
> +
> +# MTD device name	Device offset	Env. size	Flash sector size	Number of sectors
> +# Colibri VF61
> +/dev/mtd2		0x00000000	0x00020000	0x20000			4
> diff --git a/recipes-bsp/u-boot/u-boot-toradex-fw-utils_2016.11.bb b/recipes-bsp/u-boot/u-boot-toradex-fw-utils_2016.11.bb
> new file mode 100644
> index 0000000..727c0a8
> --- /dev/null
> +++ b/recipes-bsp/u-boot/u-boot-toradex-fw-utils_2016.11.bb
> @@ -0,0 +1,42 @@
> +require recipes-bsp/u-boot/u-boot-toradex_${PV}.inc
> +
> +SUMMARY = "U-Boot bootloader fw_printenv/setenv utilities"
> +
> +SRC_URI += "file://0001-tools-fix-cross-compiling-tools-when-HOSTCC-is-overr.patch \
> +            file://fw_env.config \
> +"
> +
> +DEPENDS += "mtd-utils"
> +
> +INSANE_SKIP_${PN} = "already-stripped"
> +EXTRA_OEMAKE_class-target = 'CROSS_COMPILE=${TARGET_PREFIX} CC="${CC} ${CFLAGS} ${LDFLAGS}" HOSTCC="${BUILD_CC} ${BUILD_CFLAGS} ${BUILD_LDFLAGS}" V=1'
> +EXTRA_OEMAKE_class-cross = 'ARCH=${TARGET_ARCH} CC="${CC} ${CFLAGS} ${LDFLAGS}" V=1'
> +
> +inherit uboot-config
> +
> +do_compile () {
> +    oe_runmake ${UBOOT_MACHINE}
> +    oe_runmake env
> +}
> +
> +do_install () {
> +    install -d ${D}${base_sbindir}
> +    install -d ${D}${sysconfdir}
> +    install -m 755 ${S}/tools/env/fw_printenv ${D}${base_sbindir}/fw_printenv
> +    install -m 755 ${S}/tools/env/fw_printenv ${D}${base_sbindir}/fw_setenv
> +    install -m 0644 ${WORKDIR}/fw_env.config ${D}${sysconfdir}/fw_env.config
> +}
> +
> +do_install_class-cross () {
> +    install -d ${D}${bindir_cross}
> +    install -m 755 ${S}/tools/env/fw_printenv ${D}${bindir_cross}/fw_printenv
> +    install -m 755 ${S}/tools/env/fw_printenv ${D}${bindir_cross}/fw_setenv
> +}
> +
> +SYSROOT_DIRS_append_class-cross = " ${bindir_cross}"
> +
> +PROVIDES += "u-boot-fw-utils"
> +RPROVIDES_${PN} += "u-boot-fw-utils"
> +
> +PACKAGE_ARCH = "${MACHINE_ARCH}"
> +BBCLASSEXTEND = "cross"
> diff --git a/recipes-bsp/u-boot/u-boot-toradex.inc b/recipes-bsp/u-boot/u-boot-toradex.inc
> deleted file mode 100644
> index 67e9976..0000000
> --- a/recipes-bsp/u-boot/u-boot-toradex.inc
> +++ /dev/null
> @@ -1,21 +0,0 @@
> -# Copyright (C) 2015 Toradex AG
> -# Based on u-boot-fslc.inc Copyright (C) 2012-2014 O.S. Systems Software LTDA
> -# Released under the MIT license (see COPYING.MIT for the terms)
> -
> -require recipes-bsp/u-boot/u-boot.inc
> -
> -inherit fsl-u-boot-localversion
> -
> -SUMMARY = "U-Boot bootloader with support for Toradex Computer on Modules"
> -LICENSE = "GPLv2+"
> -LIC_FILES_CHKSUM = "file://Licenses/README;md5=a2c678cfd4a4d97135585cad908541c6"
> -
> -PROVIDES += "u-boot"
> -
> -SRC_URI = "git://git.toradex.com/u-boot-toradex.git;branch=${SRCBRANCH}"
> -
> -S = "${WORKDIR}/git"
> -
> -inherit dtc-145
> -
> -PACKAGE_ARCH = "${MACHINE_ARCH}"
> diff --git a/recipes-bsp/u-boot/u-boot-toradex_2016.11.bb b/recipes-bsp/u-boot/u-boot-toradex_2016.11.bb
> index f54eeaa..e409131 100644
> --- a/recipes-bsp/u-boot/u-boot-toradex_2016.11.bb
> +++ b/recipes-bsp/u-boot/u-boot-toradex_2016.11.bb
> @@ -1,8 +1,8 @@
> -require recipes-bsp/u-boot/u-boot-toradex.inc
> +require recipes-bsp/u-boot/u-boot.inc
> +require recipes-bsp/u-boot/u-boot-toradex_${PV}.inc
>  
>  LOCALVERSION = "-2.8.3"
> -PV_append = "+git${SRCPV}"
>  
> -SRCREV = "aca804c9ddadbf34a8ff82779e5598ec5e319f23"
> -SRCBRANCH = "2016.11-toradex"
> -COMPATIBLE_MACHINE = "(mx6|mx7|vf|use-mainline-bsp)"
> +PROVIDES += "u-boot"
> +
> +inherit fsl-u-boot-localversion dtc-145
> diff --git a/recipes-bsp/u-boot/u-boot-toradex_2016.11.inc b/recipes-bsp/u-boot/u-boot-toradex_2016.11.inc
> new file mode 100644
> index 0000000..166c1b5
> --- /dev/null
> +++ b/recipes-bsp/u-boot/u-boot-toradex_2016.11.inc
> @@ -0,0 +1,20 @@
> +# Copyright (C) 2015 Toradex AG
> +# Based on u-boot-fslc.inc Copyright (C) 2012-2014 O.S. Systems Software LTDA
> +# Released under the MIT license (see COPYING.MIT for the terms)
> +
> +SUMMARY = "U-Boot bootloader with support for Toradex Computer on Modules"
> +LICENSE = "GPLv2+"
> +LIC_FILES_CHKSUM = "file://Licenses/README;md5=a2c678cfd4a4d97135585cad908541c6"
> +
> +SRC_URI = "git://git.toradex.com/u-boot-toradex.git;branch=${SRCBRANCH}"
> +
> +SRCREV ?= "aca804c9ddadbf34a8ff82779e5598ec5e319f23"
> +SRCBRANCH ?= "2016.11-toradex"
> +
> +S = "${WORKDIR}/git"
> +
> +PV = "v2016.11+git${SRCPV}"
> +
> +PACKAGE_ARCH = "${MACHINE_ARCH}"
> +
> +COMPATIBLE_MACHINE = "(mx6|mx7|vf|use-mainline-bsp)"


More information about the meta-freescale mailing list