Discussion:
[meta-freescale] [3rdparty][PATCH][master] u-boot-toradex-fw-utils: add new recipe
l***@gmail.com
2018-11-18 19:56:44 UTC
Permalink
From: Ming Liu <***@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 <***@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 | 11 +++++
.../colibri-imx7/fw_env.config | 11 +++++
.../u-boot/u-boot-toradex-fw-utils/fw_env.config | 22 +++++++++
.../u-boot-toradex-fw-utils/mx6/fw_env.config | 15 ++++++
.../u-boot-toradex-fw-utils/vf/fw_env.config | 11 +++++
.../u-boot/u-boot-toradex-fw-utils_2016.11.bb | 42 +++++++++++++++++
recipes-bsp/u-boot/u-boot-toradex.inc | 11 ++---
recipes-bsp/u-boot/u-boot-toradex_2016.11.bb | 8 ++--
14 files changed, 188 insertions(+), 10 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

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 <***@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 <***@socionext.com>
+Reported-by: Richard Purdie <***@linuxfoundation.org>
+Reviewed-by: Simon Glass <***@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..30b8b90
--- /dev/null
+++ b/recipes-bsp/u-boot/u-boot-toradex-fw-utils/colibri-imx6ull/fw_env.config
@@ -0,0 +1,11 @@
+# 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/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..30b8b90
--- /dev/null
+++ b/recipes-bsp/u-boot/u-boot-toradex-fw-utils/colibri-imx7/fw_env.config
@@ -0,0 +1,11 @@
+# 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..731d874
--- /dev/null
+++ b/recipes-bsp/u-boot/u-boot-toradex-fw-utils/mx6/fw_env.config
@@ -0,0 +1,15 @@
+# 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)
+
+# 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..c1581ea
--- /dev/null
+++ b/recipes-bsp/u-boot/u-boot-toradex-fw-utils/vf/fw_env.config
@@ -0,0 +1,11 @@
+# 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..1ed37fc
--- /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.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
index 67e9976..a67b469 100644
--- a/recipes-bsp/u-boot/u-boot-toradex.inc
+++ b/recipes-bsp/u-boot/u-boot-toradex.inc
@@ -2,20 +2,17 @@
# 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}"

+SRCREV ?= "aca804c9ddadbf34a8ff82779e5598ec5e319f23"
+SRCBRANCH ?= "2016.11-toradex"
+
S = "${WORKDIR}/git"

-inherit dtc-145
+PV = "v2016.11+git${SRCPV}"

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..2c82daf 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,10 @@
+require recipes-bsp/u-boot/u-boot.inc
require recipes-bsp/u-boot/u-boot-toradex.inc

LOCALVERSION = "-2.8.3"
-PV_append = "+git${SRCPV}"

-SRCREV = "aca804c9ddadbf34a8ff82779e5598ec5e319f23"
-SRCBRANCH = "2016.11-toradex"
+PROVIDES += "u-boot"
+
+inherit fsl-u-boot-localversion dtc-145
+
COMPATIBLE_MACHINE = "(mx6|mx7|vf|use-mainline-bsp)"
--
2.7.4

--
Ming Liu
2018-11-19 14:53:07 UTC
Permalink
Thanks for the reviewing, will fix those in V2.

the best,
thank you
Hi Ming,
Thank you for up-streaming this to meta-freescale-3rdparty.
See inline comments below, all starting with "Max:".
Best Regards.
Max
Post by l***@gmail.com
Post by l***@gmail.com
***
*** Can't find default configuration
"arch/../configs/colibri_imx7_emmc_defconfig"!
Post by l***@gmail.com
Post by l***@gmail.com
***
scripts/kconfig/Makefile:128: recipe for target
'colibri_imx7_emmc_defconfig' failed
Post by l***@gmail.com
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.
git://git.toradex.com/meta-toradex-nxp.git
---
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
++++++++++++++++++++++
Post by l***@gmail.com
.../colibri-imx6ull/fw_env.config | 11 +++++
.../colibri-imx7/fw_env.config | 11 +++++
.../u-boot/u-boot-toradex-fw-utils/fw_env.config | 22 +++++++++
.../u-boot-toradex-fw-utils/mx6/fw_env.config | 15 ++++++
.../u-boot-toradex-fw-utils/vf/fw_env.config | 11 +++++
.../u-boot/u-boot-toradex-fw-utils_2016.11.bb | 42
+++++++++++++++++
Post by l***@gmail.com
recipes-bsp/u-boot/u-boot-toradex.inc | 11 ++---
recipes-bsp/u-boot/u-boot-toradex_2016.11.bb | 8 ++--
14 files changed, 188 insertions(+), 10 deletions(-)
create mode 100644
recipes-bsp/u-boot/u-boot-toradex-fw-utils/0001-tools-fix-cross-compiling-tools-when-HOSTCC-is-overr.patch
Post by l***@gmail.com
create mode 100644
recipes-bsp/u-boot/u-boot-toradex-fw-utils/colibri-imx6ull/fw_env.config
Post by l***@gmail.com
create mode 100644
recipes-bsp/u-boot/u-boot-toradex-fw-utils/colibri-imx7/fw_env.config
Post by l***@gmail.com
create mode 100644
recipes-bsp/u-boot/u-boot-toradex-fw-utils/fw_env.config
Post by l***@gmail.com
create mode 100644
recipes-bsp/u-boot/u-boot-toradex-fw-utils/mx6/fw_env.config
Post by l***@gmail.com
create mode 100644
recipes-bsp/u-boot/u-boot-toradex-fw-utils/vf/fw_env.config
Post by l***@gmail.com
create mode 100644 recipes-bsp/u-boot/
u-boot-toradex-fw-utils_2016.11.bb
Post by l***@gmail.com
diff --git a/conf/machine/apalis-imx6.conf
b/conf/machine/apalis-imx6.conf
Post by l***@gmail.com
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
Post by l***@gmail.com
# is no need to distingush between the different module types.
diff --git a/conf/machine/colibri-imx6.conf
b/conf/machine/colibri-imx6.conf
Post by l***@gmail.com
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
Post by l***@gmail.com
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
Post by l***@gmail.com
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"
Post by l***@gmail.com
PREFERRED_PROVIDER_virtual/kernel-module-mcc-dev ?=
"kernel-module-mcc-toradex"
Post by l***@gmail.com
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
Post by l***@gmail.com
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
Post by l***@gmail.com
@@ -0,0 +1,54 @@
+From 3b0825296aeba69c2cbfd3e179db2e9cbe5e70d7 Mon Sep 17 00:00:00 2001
+Date: Mon, 13 Mar 2017 17:43:16 +0900
+Subject: [PATCH] tools: fix cross-compiling tools when HOSTCC is
overridden
Post by l***@gmail.com
+
+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.
+
+---
+ 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
+ subdir- += env
+
+ ifneq ($(CROSS_BUILD_TOOLS),)
+-HOSTCC = $(CC)
++override HOSTCC = $(CC)
+
+ quiet_cmd_crosstools_strip = STRIP $^
+diff --git a/tools/env/Makefile b/tools/env/Makefile
+index 38ad118..95b28c0 100644
+--- a/tools/env/Makefile
++++ b/tools/env/Makefile
+ # fw_printenv is supposed to run on the target system, which means it
should be
Post by l***@gmail.com
+ # built with cross tools. Although it may look weird, we only replace
"HOSTCC"
Post by l***@gmail.com
+ # 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))) \
Post by l***@gmail.com
+--
+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
Post by l***@gmail.com
new file mode 100644
index 0000000..30b8b90
--- /dev/null
+++
b/recipes-bsp/u-boot/u-boot-toradex-fw-utils/colibri-imx6ull/fw_env.config
Post by l***@gmail.com
@@ -0,0 +1,11 @@
+# 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.
Post by l***@gmail.com
+# Futhermore, if the Flash sector size is ommitted, this value is
assumed to
Post by l***@gmail.com
+# be the same as the Environment size, which is valid for NOR and
SPI-dataflash
Post by l***@gmail.com
+
+# MTD device name Device offset Env. size Flash sector size
Number of sectors
Post by l***@gmail.com
+# Colibri iMX7
You copied this typo from meta-toradex-nxp, could we change this to
Colibri iMX6ULL here?
Post by l***@gmail.com
+/dev/mtd3 0x00000000 0x00020000 0x20000
4
Post by l***@gmail.com
+
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
Post by l***@gmail.com
new file mode 100644
index 0000000..30b8b90
--- /dev/null
+++
b/recipes-bsp/u-boot/u-boot-toradex-fw-utils/colibri-imx7/fw_env.config
Post by l***@gmail.com
@@ -0,0 +1,11 @@
+# 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.
Post by l***@gmail.com
+# Futhermore, if the Flash sector size is ommitted, this value is
assumed to
Post by l***@gmail.com
+# be the same as the Environment size, which is valid for NOR and
SPI-dataflash
Post by l***@gmail.com
+
+# MTD device name Device offset Env. size Flash sector size
Number of sectors
Post by l***@gmail.com
+# Colibri iMX7
+/dev/mtd3 0x00000000 0x00020000 0x20000
4
Post by l***@gmail.com
+
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
Post by l***@gmail.com
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.
Post by l***@gmail.com
+# Futhermore, if the Flash sector size is ommitted, this value is
assumed to
Post by l***@gmail.com
+# be the same as the Environment size, which is valid for NOR and
SPI-dataflash
Post by l***@gmail.com
+
+# NOR example
+# MTD device name Device offset Env. size Flash sector size
Number of sectors
Post by l***@gmail.com
+#/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
Post by l***@gmail.com
+#/dev/mtd5 0x4200 0x4200
+#/dev/mtd6 0x4200 0x4200
+
+# NAND example
+#/dev/mtd0 0x4000 0x4000 0x20000
2
Post by l***@gmail.com
+
+# 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
Post by l***@gmail.com
new file mode 100644
index 0000000..731d874
--- /dev/null
+++ b/recipes-bsp/u-boot/u-boot-toradex-fw-utils/mx6/fw_env.config
@@ -0,0 +1,15 @@
+# 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.
Post by l***@gmail.com
+# On a block device a negative offset is treated as a backwards offset
from the
Post by l***@gmail.com
+# end of the device/partition, rather than a forwards offset from the
start.
Post by l***@gmail.com
+
+# Colibri iMX6/Apalis iMX6
+# U-Boot environment is stored at the end of the first eMMC boot
partition
Post by l***@gmail.com
+# hence use a negative value. The environment is just in front of the
config
Post by l***@gmail.com
+# block which occupies the last sector (hence -0x200)
Could we provide a comment here that /dev/mmcblk0boot0 by default is read
only?
# 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
Post by l***@gmail.com
+
+# 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
Post by l***@gmail.com
new file mode 100644
index 0000000..c1581ea
--- /dev/null
+++ b/recipes-bsp/u-boot/u-boot-toradex-fw-utils/vf/fw_env.config
@@ -0,0 +1,11 @@
+# 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.
Post by l***@gmail.com
+# Futhermore, if the Flash sector size is ommitted, this value is
assumed to
Post by l***@gmail.com
+# be the same as the Environment size, which is valid for NOR and
SPI-dataflash
Post by l***@gmail.com
+
+# MTD device name Device offset Env. size Flash sector size
Number of sectors
Post by l***@gmail.com
+# Colibri VF61
+/dev/mtd2 0x00000000 0x00020000 0x20000
4
Post by l***@gmail.com
+
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
Post by l***@gmail.com
new file mode 100644
index 0000000..1ed37fc
--- /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.inc
Post by l***@gmail.com
+
+SUMMARY = "U-Boot bootloader fw_printenv/setenv utilities"
+
+SRC_URI +=
"file://0001-tools-fix-cross-compiling-tools-when-HOSTCC-is-overr.patch \
Post by l***@gmail.com
+ 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'
Post by l***@gmail.com
+EXTRA_OEMAKE_class-cross = 'ARCH=${TARGET_ARCH} CC="${CC} ${CFLAGS}
${LDFLAGS}" V=1'
Post by l***@gmail.com
+
+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
Post by l***@gmail.com
+ install -m 755 ${S}/tools/env/fw_printenv
${D}${base_sbindir}/fw_setenv
Post by l***@gmail.com
+ install -m 0644 ${WORKDIR}/fw_env.config
${D}${sysconfdir}/fw_env.config
Post by l***@gmail.com
+}
+
+do_install_class-cross () {
+ install -d ${D}${bindir_cross}
+ install -m 755 ${S}/tools/env/fw_printenv
${D}${bindir_cross}/fw_printenv
Post by l***@gmail.com
+ install -m 755 ${S}/tools/env/fw_printenv
${D}${bindir_cross}/fw_setenv
Post by l***@gmail.com
+}
+
+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
Post by l***@gmail.com
index 67e9976..a67b469 100644
--- a/recipes-bsp/u-boot/u-boot-toradex.inc
+++ b/recipes-bsp/u-boot/u-boot-toradex.inc
I think we should rename this include file to u-boot-toradex_2016.11.inc
as this
include file now pulls and sets the version of the sources.
Of course with a follow up in the two *bb files using the inc file.
Post by l***@gmail.com
@@ -2,20 +2,17 @@
# Based on u-boot-fslc.inc Copyright (C) 2012-2014 O.S. Systems
Software LTDA
Post by l***@gmail.com
# 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"
Post by l***@gmail.com
LICENSE = "GPLv2+"
LIC_FILES_CHKSUM =
"file://Licenses/README;md5=a2c678cfd4a4d97135585cad908541c6"
Post by l***@gmail.com
-PROVIDES += "u-boot"
-
SRC_URI = "git://git.toradex.com/u-boot-toradex.git;branch=${SRCBRANCH}
<http://git.toradex.com/u-boot-toradex.git;branch=$%7BSRCBRANCH%7D>"
Post by l***@gmail.com
+SRCREV ?= "aca804c9ddadbf34a8ff82779e5598ec5e319f23"
+SRCBRANCH ?= "2016.11-toradex"
+
S = "${WORKDIR}/git"
-inherit dtc-145
+PV = "v2016.11+git${SRCPV}"
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
Post by l***@gmail.com
index f54eeaa..2c82daf 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,10 @@
+require recipes-bsp/u-boot/u-boot.inc
require recipes-bsp/u-boot/u-boot-toradex.inc
LOCALVERSION = "-2.8.3"
-PV_append = "+git${SRCPV}"
-SRCREV = "aca804c9ddadbf34a8ff82779e5598ec5e319f23"
-SRCBRANCH = "2016.11-toradex"
+PROVIDES += "u-boot"
+
+inherit fsl-u-boot-localversion dtc-145
+
COMPATIBLE_MACHINE = "(mx6|mx7|vf|use-mainline-bsp)"
I think COMPATIBLE_MACHINE should be also set for the fw-utils, thus I
would move
this to the *.inc file.
Ming Liu
2018-11-19 21:26:42 UTC
Permalink
Hi, Max:

I have just sent a V2 patch with the modification as you suggested, please
kindly help me review it.

the best,
thank you
Post by Ming Liu
Thanks for the reviewing, will fix those in V2.
the best,
thank you
Hi Ming,
Thank you for up-streaming this to meta-freescale-3rdparty.
See inline comments below, all starting with "Max:".
Best Regards.
Max
Post by l***@gmail.com
Post by l***@gmail.com
***
*** Can't find default configuration
"arch/../configs/colibri_imx7_emmc_defconfig"!
Post by l***@gmail.com
Post by l***@gmail.com
***
scripts/kconfig/Makefile:128: recipe for target
'colibri_imx7_emmc_defconfig' failed
Post by l***@gmail.com
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.
git://git.toradex.com/meta-toradex-nxp.git
---
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
++++++++++++++++++++++
Post by l***@gmail.com
.../colibri-imx6ull/fw_env.config | 11 +++++
.../colibri-imx7/fw_env.config | 11 +++++
.../u-boot/u-boot-toradex-fw-utils/fw_env.config | 22 +++++++++
.../u-boot-toradex-fw-utils/mx6/fw_env.config | 15 ++++++
.../u-boot-toradex-fw-utils/vf/fw_env.config | 11 +++++
.../u-boot/u-boot-toradex-fw-utils_2016.11.bb | 42
+++++++++++++++++
Post by l***@gmail.com
recipes-bsp/u-boot/u-boot-toradex.inc | 11 ++---
recipes-bsp/u-boot/u-boot-toradex_2016.11.bb | 8 ++--
14 files changed, 188 insertions(+), 10 deletions(-)
create mode 100644
recipes-bsp/u-boot/u-boot-toradex-fw-utils/0001-tools-fix-cross-compiling-tools-when-HOSTCC-is-overr.patch
Post by l***@gmail.com
create mode 100644
recipes-bsp/u-boot/u-boot-toradex-fw-utils/colibri-imx6ull/fw_env.config
Post by l***@gmail.com
create mode 100644
recipes-bsp/u-boot/u-boot-toradex-fw-utils/colibri-imx7/fw_env.config
Post by l***@gmail.com
create mode 100644
recipes-bsp/u-boot/u-boot-toradex-fw-utils/fw_env.config
Post by l***@gmail.com
create mode 100644
recipes-bsp/u-boot/u-boot-toradex-fw-utils/mx6/fw_env.config
Post by l***@gmail.com
create mode 100644
recipes-bsp/u-boot/u-boot-toradex-fw-utils/vf/fw_env.config
Post by l***@gmail.com
create mode 100644 recipes-bsp/u-boot/
u-boot-toradex-fw-utils_2016.11.bb
Post by l***@gmail.com
diff --git a/conf/machine/apalis-imx6.conf
b/conf/machine/apalis-imx6.conf
Post by l***@gmail.com
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
Post by l***@gmail.com
# is no need to distingush between the different module types.
diff --git a/conf/machine/colibri-imx6.conf
b/conf/machine/colibri-imx6.conf
Post by l***@gmail.com
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
Post by l***@gmail.com
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
Post by l***@gmail.com
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"
Post by l***@gmail.com
PREFERRED_PROVIDER_virtual/kernel-module-mcc-dev ?=
"kernel-module-mcc-toradex"
Post by l***@gmail.com
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
Post by l***@gmail.com
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
Post by l***@gmail.com
@@ -0,0 +1,54 @@
+From 3b0825296aeba69c2cbfd3e179db2e9cbe5e70d7 Mon Sep 17 00:00:00 2001
+Date: Mon, 13 Mar 2017 17:43:16 +0900
+Subject: [PATCH] tools: fix cross-compiling tools when HOSTCC is
overridden
Post by l***@gmail.com
+
+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.
+
+---
+ 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
+ subdir- += env
+
+ ifneq ($(CROSS_BUILD_TOOLS),)
+-HOSTCC = $(CC)
++override HOSTCC = $(CC)
+
+ quiet_cmd_crosstools_strip = STRIP $^
+diff --git a/tools/env/Makefile b/tools/env/Makefile
+index 38ad118..95b28c0 100644
+--- a/tools/env/Makefile
++++ b/tools/env/Makefile
+ # fw_printenv is supposed to run on the target system, which means it
should be
Post by l***@gmail.com
+ # built with cross tools. Although it may look weird, we only replace
"HOSTCC"
Post by l***@gmail.com
+ # 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))) \
Post by l***@gmail.com
+--
+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
Post by l***@gmail.com
new file mode 100644
index 0000000..30b8b90
--- /dev/null
+++
b/recipes-bsp/u-boot/u-boot-toradex-fw-utils/colibri-imx6ull/fw_env.config
Post by l***@gmail.com
@@ -0,0 +1,11 @@
+# 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.
Post by l***@gmail.com
+# Futhermore, if the Flash sector size is ommitted, this value is
assumed to
Post by l***@gmail.com
+# be the same as the Environment size, which is valid for NOR and
SPI-dataflash
Post by l***@gmail.com
+
+# MTD device name Device offset Env. size Flash sector
size Number of sectors
Post by l***@gmail.com
+# Colibri iMX7
You copied this typo from meta-toradex-nxp, could we change this to
Colibri iMX6ULL here?
Post by l***@gmail.com
+/dev/mtd3 0x00000000 0x00020000 0x20000
4
Post by l***@gmail.com
+
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
Post by l***@gmail.com
new file mode 100644
index 0000000..30b8b90
--- /dev/null
+++
b/recipes-bsp/u-boot/u-boot-toradex-fw-utils/colibri-imx7/fw_env.config
Post by l***@gmail.com
@@ -0,0 +1,11 @@
+# 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.
Post by l***@gmail.com
+# Futhermore, if the Flash sector size is ommitted, this value is
assumed to
Post by l***@gmail.com
+# be the same as the Environment size, which is valid for NOR and
SPI-dataflash
Post by l***@gmail.com
+
+# MTD device name Device offset Env. size Flash sector
size Number of sectors
Post by l***@gmail.com
+# Colibri iMX7
+/dev/mtd3 0x00000000 0x00020000 0x20000
4
Post by l***@gmail.com
+
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
Post by l***@gmail.com
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.
Post by l***@gmail.com
+# Futhermore, if the Flash sector size is ommitted, this value is
assumed to
Post by l***@gmail.com
+# be the same as the Environment size, which is valid for NOR and
SPI-dataflash
Post by l***@gmail.com
+
+# NOR example
+# MTD device name Device offset Env. size Flash sector
size Number of sectors
Post by l***@gmail.com
+#/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
Post by l***@gmail.com
+#/dev/mtd5 0x4200 0x4200
+#/dev/mtd6 0x4200 0x4200
+
+# NAND example
+#/dev/mtd0 0x4000 0x4000 0x20000
2
Post by l***@gmail.com
+
+# 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
Post by l***@gmail.com
new file mode 100644
index 0000000..731d874
--- /dev/null
+++ b/recipes-bsp/u-boot/u-boot-toradex-fw-utils/mx6/fw_env.config
@@ -0,0 +1,15 @@
+# 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.
Post by l***@gmail.com
+# On a block device a negative offset is treated as a backwards offset
from the
Post by l***@gmail.com
+# end of the device/partition, rather than a forwards offset from the
start.
Post by l***@gmail.com
+
+# Colibri iMX6/Apalis iMX6
+# U-Boot environment is stored at the end of the first eMMC boot
partition
Post by l***@gmail.com
+# hence use a negative value. The environment is just in front of the
config
Post by l***@gmail.com
+# block which occupies the last sector (hence -0x200)
Could we provide a comment here that /dev/mmcblk0boot0 by default is read
only?
# 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
Post by l***@gmail.com
+
+# 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
Post by l***@gmail.com
new file mode 100644
index 0000000..c1581ea
--- /dev/null
+++ b/recipes-bsp/u-boot/u-boot-toradex-fw-utils/vf/fw_env.config
@@ -0,0 +1,11 @@
+# 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.
Post by l***@gmail.com
+# Futhermore, if the Flash sector size is ommitted, this value is
assumed to
Post by l***@gmail.com
+# be the same as the Environment size, which is valid for NOR and
SPI-dataflash
Post by l***@gmail.com
+
+# MTD device name Device offset Env. size Flash sector
size Number of sectors
Post by l***@gmail.com
+# Colibri VF61
+/dev/mtd2 0x00000000 0x00020000 0x20000
4
Post by l***@gmail.com
+
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
Post by l***@gmail.com
new file mode 100644
index 0000000..1ed37fc
--- /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.inc
Post by l***@gmail.com
+
+SUMMARY = "U-Boot bootloader fw_printenv/setenv utilities"
+
+SRC_URI +=
"file://0001-tools-fix-cross-compiling-tools-when-HOSTCC-is-overr.patch \
Post by l***@gmail.com
+ 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'
Post by l***@gmail.com
+EXTRA_OEMAKE_class-cross = 'ARCH=${TARGET_ARCH} CC="${CC} ${CFLAGS}
${LDFLAGS}" V=1'
Post by l***@gmail.com
+
+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
Post by l***@gmail.com
+ install -m 755 ${S}/tools/env/fw_printenv
${D}${base_sbindir}/fw_setenv
Post by l***@gmail.com
+ install -m 0644 ${WORKDIR}/fw_env.config
${D}${sysconfdir}/fw_env.config
Post by l***@gmail.com
+}
+
+do_install_class-cross () {
+ install -d ${D}${bindir_cross}
+ install -m 755 ${S}/tools/env/fw_printenv
${D}${bindir_cross}/fw_printenv
Post by l***@gmail.com
+ install -m 755 ${S}/tools/env/fw_printenv
${D}${bindir_cross}/fw_setenv
Post by l***@gmail.com
+}
+
+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
Post by l***@gmail.com
index 67e9976..a67b469 100644
--- a/recipes-bsp/u-boot/u-boot-toradex.inc
+++ b/recipes-bsp/u-boot/u-boot-toradex.inc
I think we should rename this include file to u-boot-toradex_2016.11.inc
as this
include file now pulls and sets the version of the sources.
Of course with a follow up in the two *bb files using the inc file.
Post by l***@gmail.com
@@ -2,20 +2,17 @@
# Based on u-boot-fslc.inc Copyright (C) 2012-2014 O.S. Systems
Software LTDA
Post by l***@gmail.com
# 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"
Post by l***@gmail.com
LICENSE = "GPLv2+"
LIC_FILES_CHKSUM =
"file://Licenses/README;md5=a2c678cfd4a4d97135585cad908541c6"
Post by l***@gmail.com
-PROVIDES += "u-boot"
-
SRC_URI = "git://
git.toradex.com/u-boot-toradex.git;branch=${SRCBRANCH}
<http://git.toradex.com/u-boot-toradex.git;branch=$%7BSRCBRANCH%7D>"
Post by l***@gmail.com
+SRCREV ?= "aca804c9ddadbf34a8ff82779e5598ec5e319f23"
+SRCBRANCH ?= "2016.11-toradex"
+
S = "${WORKDIR}/git"
-inherit dtc-145
+PV = "v2016.11+git${SRCPV}"
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
Post by l***@gmail.com
index f54eeaa..2c82daf 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,10 @@
+require recipes-bsp/u-boot/u-boot.inc
require recipes-bsp/u-boot/u-boot-toradex.inc
LOCALVERSION = "-2.8.3"
-PV_append = "+git${SRCPV}"
-SRCREV = "aca804c9ddadbf34a8ff82779e5598ec5e319f23"
-SRCBRANCH = "2016.11-toradex"
+PROVIDES += "u-boot"
+
+inherit fsl-u-boot-localversion dtc-145
+
COMPATIBLE_MACHINE = "(mx6|mx7|vf|use-mainline-bsp)"
I think COMPATIBLE_MACHINE should be also set for the fw-utils, thus I
would move
this to the *.inc file.
Loading...