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

Reply via email to