zeus migration: imx-mkimage: update recipe to v1.0

https://jira.digi.com/browse/DEL-7013

Signed-off-by: Arturo Buzarra <arturo.buzarra@digi.com>
This commit is contained in:
Arturo Buzarra 2020-04-08 14:16:22 +02:00
parent 185898e80e
commit 9284f9df01
6 changed files with 326 additions and 65 deletions

View File

@ -0,0 +1,233 @@
# Copyright 2017-2019 NXP
require imx-mkimage_git.inc
require recipes-bsp/imx-seco/imx-seco.inc
DESCRIPTION = "Generate Boot Loader for i.MX 8 device"
LICENSE = "GPLv2"
LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/GPL-2.0;md5=801f80980d171dd6425610833a22dbe6"
SECTION = "BSP"
IMX_EXTRA_FIRMWARE = "firmware-imx-8 imx-sc-firmware imx-seco"
IMX_EXTRA_FIRMWARE_mx8m = "firmware-imx-8m"
IMX_EXTRA_FIRMWARE_mx8x = "imx-sc-firmware imx-seco"
DEPENDS += " \
u-boot \
${IMX_EXTRA_FIRMWARE} \
imx-atf \
${@bb.utils.contains('MACHINE_FEATURES', 'optee', 'optee-os', '', d)} \
"
DEPENDS_append_mx8m = " u-boot-mkimage-native dtc-native"
BOOT_NAME = "imx-boot"
PROVIDES = "${BOOT_NAME}"
inherit deploy
# Add CFLAGS with native INCDIR & LIBDIR for imx-mkimage build
CFLAGS = "-O2 -Wall -std=c99 -I ${STAGING_INCDIR_NATIVE} -L ${STAGING_LIBDIR_NATIVE}"
IMX_M4_DEMOS = ""
IMX_M4_DEMOS_mx8qm = "imx-m4-demos:do_deploy"
IMX_M4_DEMOS_mx8x = "imx-m4-demos:do_deploy"
IMX_M4_DEMOS_mx8dxl = "imx-m4-demos:do_deploy"
M4_DEFAULT_IMAGE ?= "m4_image.bin"
M4_DEFAULT_IMAGE_mx8qxp = "imx8qx_m4_TCM_srtm_demo.bin"
M4_DEFAULT_IMAGE_mx8phantomdxl = "imx8dxl-phantom_m4_TCM_srtm_demo.bin"
M4_DEFAULT_IMAGE_mx8dxl = "imx8dxl-phantom_m4_TCM_srtm_demo.bin"
M4_DEFAULT_IMAGE_mx8dx = "imx8qx_m4_TCM_srtm_demo.bin"
# This package aggregates output deployed by other packages,
# so set the appropriate dependencies
do_compile[depends] += " \
virtual/bootloader:do_deploy \
${@' '.join('%s:do_deploy' % r for r in '${IMX_EXTRA_FIRMWARE}'.split() )} \
imx-atf:do_deploy \
${IMX_M4_DEMOS} \
${@bb.utils.contains('MACHINE_FEATURES', 'optee', 'optee-os:do_deploy', '', d)} \
"
SC_FIRMWARE_NAME ?= "scfw_tcm.bin"
ATF_MACHINE_NAME ?= "bl31-imx8qm.bin"
ATF_MACHINE_NAME_mx8qm = "bl31-imx8qm.bin"
ATF_MACHINE_NAME_mx8x = "bl31-imx8qx.bin"
ATF_MACHINE_NAME_mx8mq = "bl31-imx8mq.bin"
ATF_MACHINE_NAME_mx8mm = "bl31-imx8mm.bin"
ATF_MACHINE_NAME_mx8mn = "bl31-imx8mn.bin"
ATF_MACHINE_NAME_mx8mp = "bl31-imx8mp.bin"
ATF_MACHINE_NAME_mx8phantomdxl = "bl31-imx8qx.bin"
ATF_MACHINE_NAME_mx8dxl = "bl31-imx8dxl.bin"
ATF_MACHINE_NAME_mx8dx = "bl31-imx8dx.bin"
ATF_MACHINE_NAME_append = "${@bb.utils.contains('MACHINE_FEATURES', 'optee', '-optee', '', d)}"
UBOOT_NAME = "u-boot-${MACHINE}.bin-${UBOOT_CONFIG}"
BOOT_CONFIG_MACHINE = "${BOOT_NAME}-${MACHINE}-${UBOOT_CONFIG}.bin"
TOOLS_NAME ?= "mkimage_imx8"
SOC_TARGET ?= "INVALID"
SOC_TARGET_mx8qm = "iMX8QM"
SOC_TARGET_mx8x = "iMX8QX"
SOC_TARGET_mx8mq = "iMX8M"
SOC_TARGET_mx8mm = "iMX8MM"
SOC_TARGET_mx8mn = "iMX8MN"
SOC_TARGET_mx8mp = "iMX8MP"
SOC_TARGET_mx8dxl = "iMX8DXL"
SOC_TARGET_mx8phantomdxl = "iMX8QX"
SOC_TARGET_mx8dx = "iMX8DX"
DEPLOY_OPTEE = "${@bb.utils.contains('MACHINE_FEATURES', 'optee', 'true', 'false', d)}"
IMXBOOT_TARGETS ?= \
"${@bb.utils.contains('UBOOT_CONFIG', 'fspi', 'flash_flexspi', \
bb.utils.contains('UBOOT_CONFIG', 'nand', 'flash_nand', \
'flash_multi_cores flash_dcd', d), d)}"
BOOT_STAGING = "${S}/${SOC_TARGET}"
BOOT_STAGING_mx8m = "${S}/iMX8M"
BOOT_STAGING_mx8dx = "${S}/iMX8QX"
SOC_FAMILY = "INVALID"
SOC_FAMILY_mx8 = "mx8"
SOC_FAMILY_mx8m = "mx8m"
SOC_FAMILY_mx8x = "mx8x"
REV_OPTION ?= ""
REV_OPTION_mx8qxpc0 = "REV=C0"
compile_mx8m() {
bbnote 8MQ/8MM boot binary build
for ddr_firmware in ${DDR_FIRMWARE_NAME}; do
bbnote "Copy ddr_firmware: ${ddr_firmware} from ${DEPLOY_DIR_IMAGE} -> ${BOOT_STAGING} "
cp ${DEPLOY_DIR_IMAGE}/${ddr_firmware} ${BOOT_STAGING}
done
cp ${DEPLOY_DIR_IMAGE}/signed_dp_imx8m.bin ${BOOT_STAGING}
cp ${DEPLOY_DIR_IMAGE}/signed_hdmi_imx8m.bin ${BOOT_STAGING}
cp ${DEPLOY_DIR_IMAGE}/u-boot-spl.bin-${MACHINE}-${UBOOT_CONFIG} \
${BOOT_STAGING}/u-boot-spl.bin
cp ${DEPLOY_DIR_IMAGE}/${BOOT_TOOLS}/${UBOOT_DTB_NAME} ${BOOT_STAGING}
cp ${DEPLOY_DIR_IMAGE}/${BOOT_TOOLS}/u-boot-nodtb.bin-${MACHINE}-${UBOOT_CONFIG} \
${BOOT_STAGING}/u-boot-nodtb.bin
bbnote "\
Using standard mkimage from u-boot-tools for FIT image builds. The standard \
mkimage is compatible for this use, and using it saves us from having to \
maintain a custom recipe."
ln -sf ${STAGING_DIR_NATIVE}${bindir}/mkimage ${BOOT_STAGING}/mkimage_uboot
cp ${DEPLOY_DIR_IMAGE}/${BOOT_TOOLS}/${ATF_MACHINE_NAME} ${BOOT_STAGING}/bl31.bin
cp ${DEPLOY_DIR_IMAGE}/${UBOOT_NAME} ${BOOT_STAGING}/u-boot.bin
}
compile_mx8() {
bbnote 8QM boot binary build
cp ${DEPLOY_DIR_IMAGE}/${BOOT_TOOLS}/${SC_FIRMWARE_NAME} ${BOOT_STAGING}/scfw_tcm.bin
cp ${DEPLOY_DIR_IMAGE}/${BOOT_TOOLS}/${ATF_MACHINE_NAME} ${BOOT_STAGING}/bl31.bin
cp ${DEPLOY_DIR_IMAGE}/${UBOOT_NAME} ${BOOT_STAGING}/u-boot.bin
if [ -e ${DEPLOY_DIR_IMAGE}/u-boot-spl.bin-${MACHINE}-${UBOOT_CONFIG} ] ; then
cp ${DEPLOY_DIR_IMAGE}/u-boot-spl.bin-${MACHINE}-${UBOOT_CONFIG} \
${BOOT_STAGING}/u-boot-spl.bin
fi
cp ${DEPLOY_DIR_IMAGE}/imx8qm_m4_0_TCM_rpmsg_lite_pingpong_rtos_linux_remote_m40.bin \
${BOOT_STAGING}/m4_image.bin
cp ${DEPLOY_DIR_IMAGE}/imx8qm_m4_1_TCM_power_mode_switch_m41.bin \
${BOOT_STAGING}/m4_1_image.bin
cp ${DEPLOY_DIR_IMAGE}/${SECO_FIRMWARE_NAME} ${BOOT_STAGING}
}
compile_mx8x() {
bbnote 8QX boot binary build
cp ${DEPLOY_DIR_IMAGE}/${M4_DEFAULT_IMAGE} ${BOOT_STAGING}/m4_image.bin
cp ${DEPLOY_DIR_IMAGE}/${SECO_FIRMWARE_NAME} ${BOOT_STAGING}
cp ${DEPLOY_DIR_IMAGE}/${BOOT_TOOLS}/${SC_FIRMWARE_NAME} ${BOOT_STAGING}/scfw_tcm.bin
cp ${DEPLOY_DIR_IMAGE}/${BOOT_TOOLS}/${ATF_MACHINE_NAME} ${BOOT_STAGING}/bl31.bin
cp ${DEPLOY_DIR_IMAGE}/${UBOOT_NAME} ${BOOT_STAGING}/u-boot.bin
if [ -e ${DEPLOY_DIR_IMAGE}/u-boot-spl.bin-${MACHINE}-${UBOOT_CONFIG} ] ; then
cp ${DEPLOY_DIR_IMAGE}/u-boot-spl.bin-${MACHINE}-${UBOOT_CONFIG} \
${BOOT_STAGING}/u-boot-spl.bin
fi
}
do_compile() {
compile_${SOC_FAMILY}
# Copy TEE binary to SoC target folder to mkimage
if ${DEPLOY_OPTEE}; then
cp ${DEPLOY_DIR_IMAGE}/tee.bin ${BOOT_STAGING}
fi
# mkimage for i.MX8
for target in ${IMXBOOT_TARGETS}; do
bbnote "building ${SOC_TARGET} - ${REV_OPTION} ${target}"
make SOC=${SOC_TARGET} ${REV_OPTION} ${target}
if [ -e "${BOOT_STAGING}/flash.bin" ]; then
cp ${BOOT_STAGING}/flash.bin ${S}/${BOOT_CONFIG_MACHINE}-${target}
fi
done
}
do_install () {
install -d ${D}/boot
for target in ${IMXBOOT_TARGETS}; do
install -m 0644 ${S}/${BOOT_CONFIG_MACHINE}-${target} ${D}/boot/
done
}
deploy_mx8m() {
install -d ${DEPLOYDIR}/${BOOT_TOOLS}
install -m 0644 ${DEPLOY_DIR_IMAGE}/u-boot-spl.bin-${MACHINE}-${UBOOT_CONFIG} \
${DEPLOYDIR}/${BOOT_TOOLS}
for ddr_firmware in ${DDR_FIRMWARE_NAME}; do
install -m 0644 ${DEPLOY_DIR_IMAGE}/${ddr_firmware} ${DEPLOYDIR}/${BOOT_TOOLS}
done
install -m 0644 ${BOOT_STAGING}/signed_dp_imx8m.bin ${DEPLOYDIR}/${BOOT_TOOLS}
install -m 0644 ${BOOT_STAGING}/signed_hdmi_imx8m.bin ${DEPLOYDIR}/${BOOT_TOOLS}
install -m 0755 ${BOOT_STAGING}/${TOOLS_NAME} ${DEPLOYDIR}/${BOOT_TOOLS}
install -m 0755 ${BOOT_STAGING}/mkimage_fit_atf.sh ${DEPLOYDIR}/${BOOT_TOOLS}
install -m 0755 ${BOOT_STAGING}/mkimage_uboot ${DEPLOYDIR}/${BOOT_TOOLS}
}
deploy_mx8() {
install -d ${DEPLOYDIR}/${BOOT_TOOLS}
install -m 0644 ${BOOT_STAGING}/${SECO_FIRMWARE_NAME} ${DEPLOYDIR}/${BOOT_TOOLS}
install -m 0644 ${BOOT_STAGING}/m4_image.bin ${DEPLOYDIR}/${BOOT_TOOLS}
install -m 0644 ${BOOT_STAGING}/m4_1_image.bin ${DEPLOYDIR}/${BOOT_TOOLS}
install -m 0755 ${S}/${TOOLS_NAME} ${DEPLOYDIR}/${BOOT_TOOLS}
if [ -e ${DEPLOY_DIR_IMAGE}/u-boot-spl.bin-${MACHINE}-${UBOOT_CONFIG} ] ; then
install -m 0644 ${DEPLOY_DIR_IMAGE}/u-boot-spl.bin-${MACHINE}-${UBOOT_CONFIG} \
${DEPLOYDIR}/${BOOT_TOOLS}
fi
}
deploy_mx8x() {
install -d ${DEPLOYDIR}/${BOOT_TOOLS}
install -m 0644 ${BOOT_STAGING}/${SECO_FIRMWARE_NAME} ${DEPLOYDIR}/${BOOT_TOOLS}
install -m 0644 ${BOOT_STAGING}/m4_image.bin ${DEPLOYDIR}/${BOOT_TOOLS}
install -m 0755 ${S}/${TOOLS_NAME} ${DEPLOYDIR}/${BOOT_TOOLS}
if [ -e ${DEPLOY_DIR_IMAGE}/u-boot-spl.bin-${MACHINE}-${UBOOT_CONFIG} ] ; then
install -m 0644 ${DEPLOY_DIR_IMAGE}/u-boot-spl.bin-${MACHINE}-${UBOOT_CONFIG} \
${DEPLOYDIR}/${BOOT_TOOLS}
fi
}
do_deploy() {
deploy_${SOC_FAMILY}
# copy tee.bin to deploy path
if "${DEPLOY_OPTEE}"; then
install -m 0644 ${DEPLOY_DIR_IMAGE}/tee.bin ${DEPLOYDIR}/${BOOT_TOOLS}
fi
# copy the tool mkimage to deploy path and sc fw, dcd and uboot
install -m 0644 ${DEPLOY_DIR_IMAGE}/${UBOOT_NAME} ${DEPLOYDIR}/${BOOT_TOOLS}
# copy makefile (soc.mak) for reference
install -m 0644 ${BOOT_STAGING}/soc.mak ${DEPLOYDIR}/${BOOT_TOOLS}
# copy the generated boot image to deploy path
for target in ${IMXBOOT_TARGETS}; do
# Use first "target" as IMAGE_IMXBOOT_TARGET
if [ "$IMAGE_IMXBOOT_TARGET" = "" ]; then
IMAGE_IMXBOOT_TARGET="$target"
echo "Set boot target as $IMAGE_IMXBOOT_TARGET"
fi
install -m 0644 ${S}/${BOOT_CONFIG_MACHINE}-${target} ${DEPLOYDIR}
done
cd ${DEPLOYDIR}
ln -sf ${BOOT_CONFIG_MACHINE}-${IMAGE_IMXBOOT_TARGET} ${BOOT_NAME}
cd -
}
addtask deploy before do_build after do_compile
PACKAGE_ARCH = "${MACHINE_ARCH}"
FILES_${PN} = "/boot"
COMPATIBLE_MACHINE = "(mx8)"

View File

@ -1,10 +1,6 @@
# Copyright 2019,2020 Digi International, Inc. # Copyright 2019,2020 Digi International, Inc.
inherit boot-artifacts inherit boot-artifacts
# Use the v4.14 latest BSP branch
SRCBRANCH = "imx_4.14.98_2.3.0"
SRCREV = "2556000499f667123094af22326cfd8e4cbadaac"
FILESEXTRAPATHS_prepend := "${THISDIR}/${BPN}:" FILESEXTRAPATHS_prepend := "${THISDIR}/${BPN}:"
SRC_URI_append_ccimx8x = " file://0001-iMX8QX-remove-SC_BD_FLAGS_ALT_CONFIG-flag-in-flash_r.patch" SRC_URI_append_ccimx8x = " file://0001-iMX8QX-remove-SC_BD_FLAGS_ALT_CONFIG-flag-in-flash_r.patch"
@ -13,43 +9,15 @@ IMX_EXTRA_FIRMWARE_ccimx8x = "digi-sc-firmware imx-seco"
DEPENDS_append_ccimx8x = " coreutils-native" DEPENDS_append_ccimx8x = " coreutils-native"
DEPENDS_append_mx8 += "${@oe.utils.conditional('TRUSTFENCE_SIGN', '1', 'trustfence-sign-tools-native', '', d)}" DEPENDS_append_mx8 += "${@oe.utils.conditional('TRUSTFENCE_SIGN', '1', 'trustfence-sign-tools-native', '', d)}"
# For i.MX 8, this package aggregates the imx-m4-demos
# output. Note that this aggregation replaces the aggregation
# that would otherwise be done in the image build as controlled
# by IMAGE_BOOTFILES_DEPENDS and IMAGE_BOOTFILES in image_types_fsl.bbclass
IMX_M4_DEMOS = ""
IMX_M4_DEMOS_mx8qm = "imx-m4-demos"
IMX_M4_DEMOS_mx8qxp = "imx-m4-demos"
# This package aggregates output deployed by other packages,
# so set the appropriate dependencies
do_compile[depends] += " \
${@' '.join('%s:do_deploy' % r for r in '${IMX_M4_DEMOS}'.split() )} \
firmware-imx:do_deploy \
"
# This package aggregates dependencies with other packages, # This package aggregates dependencies with other packages,
# so also define the license dependencies. # so also define the license dependencies.
do_populate_lic[depends] += " \ do_populate_lic[depends] += " \
virtual/bootloader:do_populate_lic \ virtual/bootloader:do_populate_lic \
${@' '.join('%s:do_populate_lic' % r for r in '${IMX_EXTRA_FIRMWARE}'.split() )} \ ${@' '.join('%s:do_populate_lic' % r for r in '${IMX_EXTRA_FIRMWARE}'.split() )} \
imx-atf:do_populate_lic \ imx-atf:do_populate_lic \
${@' '.join('%s:do_populate_lic' % r for r in '${IMX_M4_DEMOS}'.split() )} \ ${@bb.utils.contains('IMX_M4_DEMOS', 'imx-m4-demos:do_deploy', 'imx-m4-demos:do_populate_lic', '', d)} \
firmware-imx:do_populate_lic \ firmware-imx:do_populate_lic \
" "
ATF_MACHINE_NAME_mx8qxp = "bl31-imx8qx.bin"
ATF_MACHINE_NAME_mx8mn = "bl31-imx8mn.bin"
SECO_FIRMWARE ?= ""
SECO_FIRMWARE_mx8qm = "mx8qmb0-ahab-container.img"
SECO_FIRMWARE_mx8qxp = "mx8qxb0-ahab-container.img"
# i.MX8QXP C0 support
#SECO_FIRMWARE_mx8qxp = "mx8qxc0-ahab-container.img"
# 8MQ/8MM/8MN share the same soc folder
BOOT_STAGING_mx8mn = "${S}/iMX8M"
SOC_TARGET_mx8mn = "iMX8MN"
IMXBOOT_TARGETS_ccimx8x = "${@bb.utils.contains('UBOOT_CONFIG', 'fspi', 'flash_flexspi', \ IMXBOOT_TARGETS_ccimx8x = "${@bb.utils.contains('UBOOT_CONFIG', 'fspi', 'flash_flexspi', \
'flash flash_regression_linux_m4', d)}" 'flash flash_regression_linux_m4', d)}"
@ -58,9 +26,8 @@ IMXBOOT_TARGETS_ccimx8mn = "${@bb.utils.contains('UBOOT_CONFIG', 'fspi', 'flash_
compile_mx8x() { compile_mx8x() {
bbnote 8QX boot binary build bbnote 8QX boot binary build
cp ${DEPLOY_DIR_IMAGE}/imx8qx_m4_TCM_power_mode_switch.bin ${BOOT_STAGING}/m40_tcm.bin cp ${DEPLOY_DIR_IMAGE}/${M4_DEFAULT_IMAGE} ${BOOT_STAGING}/m4_image.bin
cp ${DEPLOY_DIR_IMAGE}/imx8qx_m4_TCM_power_mode_switch.bin ${BOOT_STAGING}/m4_image.bin cp ${DEPLOY_DIR_IMAGE}/${SECO_FIRMWARE_NAME} ${BOOT_STAGING}
cp ${DEPLOY_DIR_IMAGE}/${SECO_FIRMWARE} ${BOOT_STAGING}/
cp ${DEPLOY_DIR_IMAGE}/${BOOT_TOOLS}/${ATF_MACHINE_NAME} ${BOOT_STAGING}/bl31.bin cp ${DEPLOY_DIR_IMAGE}/${BOOT_TOOLS}/${ATF_MACHINE_NAME} ${BOOT_STAGING}/bl31.bin
for type in ${UBOOT_CONFIG}; do for type in ${UBOOT_CONFIG}; do
cp ${DEPLOY_DIR_IMAGE}/${BOOT_TOOLS}/u-boot-${type}.bin ${BOOT_STAGING}/ cp ${DEPLOY_DIR_IMAGE}/${BOOT_TOOLS}/u-boot-${type}.bin ${BOOT_STAGING}/
@ -72,21 +39,30 @@ compile_mx8x() {
compile_mx8m() { compile_mx8m() {
bbnote 8MQ/8MM/8MN boot binary build bbnote 8MQ/8MM/8MN boot binary build
cp ${DEPLOY_DIR_IMAGE}/signed_*_imx8m.bin ${BOOT_STAGING}
cp ${DEPLOY_DIR_IMAGE}/${BOOT_TOOLS}/u-boot-spl.bin-${MACHINE}-${UBOOT_CONFIG} ${BOOT_STAGING}/u-boot-spl.bin
cp ${DEPLOY_DIR_IMAGE}/${BOOT_TOOLS}/${UBOOT_DTB_NAME} ${BOOT_STAGING}/fsl-imx8mn-evk.dtb
cp ${DEPLOY_DIR_IMAGE}/${BOOT_TOOLS}/u-boot-nodtb.bin-${MACHINE}-${UBOOT_CONFIG} ${BOOT_STAGING}/u-boot-nodtb.bin
cp ${DEPLOY_DIR_IMAGE}/${BOOT_TOOLS}/mkimage_uboot ${BOOT_STAGING}/
cp ${DEPLOY_DIR_IMAGE}/${BOOT_TOOLS}/${ATF_MACHINE_NAME} ${BOOT_STAGING}/bl31.bin
for ddr_firmware in ${DDR_FIRMWARE_NAME}; do for ddr_firmware in ${DDR_FIRMWARE_NAME}; do
cp ${DEPLOY_DIR_IMAGE}/${ddr_firmware} ${BOOT_STAGING} bbnote "Copy ddr_firmware: ${ddr_firmware} from ${DEPLOY_DIR_IMAGE} -> ${BOOT_STAGING} "
cp ${DEPLOY_DIR_IMAGE}/${ddr_firmware} ${BOOT_STAGING}
done done
cp ${DEPLOY_DIR_IMAGE}/signed_dp_imx8m.bin ${BOOT_STAGING}
cp ${DEPLOY_DIR_IMAGE}/signed_hdmi_imx8m.bin ${BOOT_STAGING}
cp ${DEPLOY_DIR_IMAGE}/${BOOT_TOOLS}/u-boot-spl.bin-${MACHINE}-${UBOOT_CONFIG} \
${BOOT_STAGING}/u-boot-spl.bin
cp ${DEPLOY_DIR_IMAGE}/${BOOT_TOOLS}/${UBOOT_DTB_NAME} ${BOOT_STAGING}/fsl-imx8mn-evk.dtb
cp ${DEPLOY_DIR_IMAGE}/${BOOT_TOOLS}/u-boot-nodtb.bin-${MACHINE}-${UBOOT_CONFIG} \
${BOOT_STAGING}/u-boot-nodtb.bin
bbnote "\
Using standard mkimage from u-boot-tools for FIT image builds. The standard \
mkimage is compatible for this use, and using it saves us from having to \
maintain a custom recipe."
ln -sf ${STAGING_DIR_NATIVE}${bindir}/mkimage ${BOOT_STAGING}/mkimage_uboot
cp ${DEPLOY_DIR_IMAGE}/${BOOT_TOOLS}/${ATF_MACHINE_NAME} ${BOOT_STAGING}/bl31.bin
} }
do_compile () { do_compile () {
compile_${SOC_FAMILY} compile_${SOC_FAMILY}
if ${DEPLOY_OPTEE}; then
cp ${DEPLOY_DIR_IMAGE}/tee.bin ${BOOT_STAGING}
fi
# mkimage for i.MX8 # mkimage for i.MX8
for type in ${UBOOT_CONFIG}; do for type in ${UBOOT_CONFIG}; do
if [ "${SOC_TARGET}" = "iMX8QX" ]; then if [ "${SOC_TARGET}" = "iMX8QX" ]; then
@ -99,10 +75,8 @@ do_compile () {
ln -sf ${SC_FIRMWARE_NAME}-${ramc} scfw_tcm.bin ln -sf ${SC_FIRMWARE_NAME}-${ramc} scfw_tcm.bin
cd - cd -
for target in ${IMXBOOT_TARGETS}; do for target in ${IMXBOOT_TARGETS}; do
bbnote "building ${SOC_TARGET} - ${ramc} - ${target}" bbnote "building ${SOC_TARGET} - ${ramc} - ${REV_OPTION} ${target}"
make SOC=${SOC_TARGET} ${target} make SOC=${SOC_TARGET} ${REV_OPTION} ${target}
# i.MX8QXP C0 support
#make SOC=${SOC_TARGET} REV=C0 ${target}
if [ -e "${BOOT_STAGING}/flash.bin" ]; then if [ -e "${BOOT_STAGING}/flash.bin" ]; then
cp ${BOOT_STAGING}/flash.bin ${S}/${UBOOT_PREFIX}-${MACHINE}-${ramc}.bin-${target} cp ${BOOT_STAGING}/flash.bin ${S}/${UBOOT_PREFIX}-${MACHINE}-${ramc}.bin-${target}
fi fi
@ -118,8 +92,8 @@ do_compile () {
else else
# mkimage for i.MX8M # mkimage for i.MX8M
for target in ${IMXBOOT_TARGETS}; do for target in ${IMXBOOT_TARGETS}; do
bbnote "building ${SOC_TARGET} - ${target}" bbnote "building ${SOC_TARGET} - ${REV_OPTION} ${target}"
make SOC=${SOC_TARGET} ${target} > mkimage-${target}.log 2>&1 make SOC=${SOC_TARGET} ${REV_OPTION} ${target} > mkimage-${target}.log 2>&1
if [ -e "${BOOT_STAGING}/flash.bin" ]; then if [ -e "${BOOT_STAGING}/flash.bin" ]; then
cp ${BOOT_STAGING}/flash.bin ${S}/${UBOOT_PREFIX}-${MACHINE}.bin-${target} cp ${BOOT_STAGING}/flash.bin ${S}/${UBOOT_PREFIX}-${MACHINE}.bin-${target}
fi fi
@ -157,19 +131,28 @@ do_install () {
fi fi
} }
deploy_mx8m() {
install -d ${DEPLOYDIR}/${BOOT_TOOLS}
install -m 0644 ${DEPLOY_DIR_IMAGE}/${BOOT_TOOLS}/u-boot-spl.bin-${MACHINE}-${UBOOT_CONFIG} \
${DEPLOYDIR}/${BOOT_TOOLS}
for ddr_firmware in ${DDR_FIRMWARE_NAME}; do
install -m 0644 ${DEPLOY_DIR_IMAGE}/${ddr_firmware} ${DEPLOYDIR}/${BOOT_TOOLS}
done
install -m 0644 ${BOOT_STAGING}/signed_dp_imx8m.bin ${DEPLOYDIR}/${BOOT_TOOLS}
install -m 0644 ${BOOT_STAGING}/signed_hdmi_imx8m.bin ${DEPLOYDIR}/${BOOT_TOOLS}
install -m 0755 ${BOOT_STAGING}/${TOOLS_NAME} ${DEPLOYDIR}/${BOOT_TOOLS}
install -m 0755 ${BOOT_STAGING}/mkimage_fit_atf.sh ${DEPLOYDIR}/${BOOT_TOOLS}
install -m 0755 ${BOOT_STAGING}/mkimage_uboot ${DEPLOYDIR}/${BOOT_TOOLS}
}
do_deploy () { do_deploy () {
install -d ${DEPLOYDIR}/${BOOT_TOOLS} deploy_${SOC_FAMILY}
# copy tee.bin to deploy path
# copy the tool mkimage to deploy path and sc fw, dcd and uboot if "${DEPLOY_OPTEE}"; then
if [ "${SOC_TARGET}" = "iMX8QX" ]; then install -m 0644 ${DEPLOY_DIR_IMAGE}/tee.bin ${DEPLOYDIR}/${BOOT_TOOLS}
install -m 0644 ${BOOT_STAGING}/${SECO_FIRMWARE} ${DEPLOYDIR}/${BOOT_TOOLS}
install -m 0644 ${BOOT_STAGING}/m40_tcm.bin ${DEPLOYDIR}/${BOOT_TOOLS}
install -m 0644 ${BOOT_STAGING}/m4_image.bin ${DEPLOYDIR}/${BOOT_TOOLS}
fi fi
# copy makefile (soc.mak) for reference # copy makefile (soc.mak) for reference
install -m 0644 ${BOOT_STAGING}/soc.mak ${DEPLOYDIR}/${BOOT_TOOLS} install -m 0644 ${BOOT_STAGING}/soc.mak ${DEPLOYDIR}/${BOOT_TOOLS}
# copy the generated boot image to deploy path # copy the generated boot image to deploy path
if [ "${UBOOT_RAM_COMBINATIONS}" = "" ]; then if [ "${UBOOT_RAM_COMBINATIONS}" = "" ]; then
IMAGE_IMXBOOT_TARGET="" IMAGE_IMXBOOT_TARGET=""

View File

@ -1,9 +1,5 @@
# Copyright (C) 2018-2020 Digi International, Inc. # Copyright (C) 2018-2020 Digi International, Inc.
# Use the v4.14 ga BSP branch
SRCBRANCH = "imx_4.14.98_2.3.0"
SRCREV = "2556000499f667123094af22326cfd8e4cbadaac"
do_deploy_append () { do_deploy_append () {
install -d ${DEPLOYDIR}/${BOOT_TOOLS} install -d ${DEPLOYDIR}/${BOOT_TOOLS}
install -m 0755 ${S}/iMX8M/mkimage_imx8 ${DEPLOYDIR}/${BOOT_TOOLS}/mkimage_imx8m install -m 0755 ${S}/iMX8M/mkimage_imx8 ${DEPLOYDIR}/${BOOT_TOOLS}/mkimage_imx8m

View File

@ -0,0 +1,38 @@
# Copyright (C) 2016 Freescale Semiconductor
# Copyright 2017-2018 NXP
require imx-mkimage_git.inc
DESCRIPTION = "i.MX make image"
LICENSE = "GPLv2"
LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/GPL-2.0;md5=801f80980d171dd6425610833a22dbe6"
SECTION = "BSP"
inherit native deploy
CFLAGS = "-O2 -Wall -std=c99 -I ${STAGING_INCDIR} -L ${STAGING_LIBDIR}"
REV_CHIP ?= "B0"
REV_CHIP_mx8qxpc0 = "C0"
do_compile () {
cd ${S}
oe_runmake clean
oe_runmake bin
oe_runmake -C iMX8M -f soc.mak mkimage_imx8
oe_runmake -C iMX8QM REV=${REV_CHIP} -f soc.mak imx8qm_dcd.cfg.tmp
oe_runmake -C iMX8QX REV=${REV_CHIP} -f soc.mak imx8qx_dcd.cfg.tmp
}
do_install () {
cd ${S}
install -d ${D}${bindir}
install -m 0755 iMX8M/mkimage_imx8 ${D}${bindir}/mkimage_imx8m
install -m 0755 mkimage_imx8 ${D}${bindir}/mkimage_imx8
}
do_deploy () {
install -m 0644 ${S}/iMX8QM/imx8qm_dcd.cfg.tmp ${DEPLOYDIR}
install -m 0644 ${S}/iMX8QX/imx8qx_dcd.cfg.tmp ${DEPLOYDIR}
}
addtask deploy before do_build after do_install

View File

@ -0,0 +1,12 @@
# Copyright 2017-2019 NXP
DEPENDS = "zlib-native openssl-native"
SRCBRANCH = "imx_5.4.3_2.0.0"
IMX_MKIMAGE_SRC ?= "git://source.codeaurora.org/external/imx/imx-mkimage.git;protocol=https"
SRC_URI = "${IMX_MKIMAGE_SRC};branch=${SRCBRANCH}"
SRCREV = "0fcc82965c695f4754b87ae09b1ec79c0ce6c3b2"
S = "${WORKDIR}/git"
BOOT_TOOLS = "imx-boot-tools"
SYSROOT_DIRS += "/boot"

View File

@ -213,7 +213,6 @@ do_deploy_append_ccimx8mn() {
then then
install -d ${DEPLOYDIR}/${BOOT_TOOLS} install -d ${DEPLOYDIR}/${BOOT_TOOLS}
install -m 0777 ${B}/${config}/arch/arm/dts/${UBOOT_DTB_NAME} ${DEPLOYDIR}/${BOOT_TOOLS} install -m 0777 ${B}/${config}/arch/arm/dts/${UBOOT_DTB_NAME} ${DEPLOYDIR}/${BOOT_TOOLS}
install -m 0777 ${B}/${config}/tools/mkimage ${DEPLOYDIR}/${BOOT_TOOLS}/mkimage_uboot
install -m 0777 ${B}/${config}/u-boot-nodtb.bin ${DEPLOYDIR}/${BOOT_TOOLS}/u-boot-nodtb.bin-${MACHINE}-${UBOOT_CONFIG} install -m 0777 ${B}/${config}/u-boot-nodtb.bin ${DEPLOYDIR}/${BOOT_TOOLS}/u-boot-nodtb.bin-${MACHINE}-${UBOOT_CONFIG}
fi fi
done done