u-boot-toradex-fw-utils: add new recipe

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@gmail.com>
Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
This commit is contained in:
Ming Liu 2018-11-20 14:36:41 +01:00 committed by Otavio Salvador
parent c3d7adee65
commit 58c1ce8b43
14 changed files with 189 additions and 12 deletions

View File

@ -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.

View File

@ -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"

View File

@ -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"

View File

@ -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"

View File

@ -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.%"

View File

@ -0,0 +1,54 @@
From 3b0825296aeba69c2cbfd3e179db2e9cbe5e70d7 Mon Sep 17 00:00:00 2001
From: Masahiro Yamada <yamada.masahiro@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@socionext.com>
Reported-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Reviewed-by: Simon Glass <sjg@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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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"

View File

@ -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

View File

@ -2,20 +2,19 @@
# 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 = "2016.11+git${SRCPV}"
PACKAGE_ARCH = "${MACHINE_ARCH}"
COMPATIBLE_MACHINE = "(mx6|mx7|vf|use-mainline-bsp)"