From: Ming Liu <liu.min...@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.min...@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.masah...@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.masah...@socionext.com> +Reported-by: Richard Purdie <richard.pur...@linuxfoundation.org> +Reviewed-by: Simon Glass <s...@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)" -- 2.7.4 -- _______________________________________________ meta-freescale mailing list meta-freescale@yoctoproject.org https://lists.yoctoproject.org/listinfo/meta-freescale