From 9284f9df01dfb56f55761ce476f56bb43ea9d2a3 Mon Sep 17 00:00:00 2001 From: Arturo Buzarra Date: Wed, 8 Apr 2020 14:16:22 +0200 Subject: [PATCH] zeus migration: imx-mkimage: update recipe to v1.0 https://jira.digi.com/browse/DEL-7013 Signed-off-by: Arturo Buzarra --- .../recipes-bsp/imx-mkimage/imx-boot_1.0.bb | 233 ++++++++++++++++++ ...oot_0.2.bbappend => imx-boot_1.0.bbappend} | 103 ++++---- .../imx-mkimage/imx-mkimage_%.bbappend | 4 - .../imx-mkimage/imx-mkimage_git.bb | 38 +++ .../imx-mkimage/imx-mkimage_git.inc | 12 + .../recipes-bsp/u-boot/digi-u-boot.inc | 1 - 6 files changed, 326 insertions(+), 65 deletions(-) create mode 100644 meta-digi-arm/recipes-bsp/imx-mkimage/imx-boot_1.0.bb rename meta-digi-arm/recipes-bsp/imx-mkimage/{imx-boot_0.2.bbappend => imx-boot_1.0.bbappend} (72%) create mode 100644 meta-digi-arm/recipes-bsp/imx-mkimage/imx-mkimage_git.bb create mode 100644 meta-digi-arm/recipes-bsp/imx-mkimage/imx-mkimage_git.inc diff --git a/meta-digi-arm/recipes-bsp/imx-mkimage/imx-boot_1.0.bb b/meta-digi-arm/recipes-bsp/imx-mkimage/imx-boot_1.0.bb new file mode 100644 index 000000000..48dac6614 --- /dev/null +++ b/meta-digi-arm/recipes-bsp/imx-mkimage/imx-boot_1.0.bb @@ -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)" diff --git a/meta-digi-arm/recipes-bsp/imx-mkimage/imx-boot_0.2.bbappend b/meta-digi-arm/recipes-bsp/imx-mkimage/imx-boot_1.0.bbappend similarity index 72% rename from meta-digi-arm/recipes-bsp/imx-mkimage/imx-boot_0.2.bbappend rename to meta-digi-arm/recipes-bsp/imx-mkimage/imx-boot_1.0.bbappend index 8d747cf68..7852a78a4 100644 --- a/meta-digi-arm/recipes-bsp/imx-mkimage/imx-boot_0.2.bbappend +++ b/meta-digi-arm/recipes-bsp/imx-mkimage/imx-boot_1.0.bbappend @@ -1,10 +1,6 @@ # Copyright 2019,2020 Digi International, Inc. inherit boot-artifacts -# Use the v4.14 latest BSP branch -SRCBRANCH = "imx_4.14.98_2.3.0" -SRCREV = "2556000499f667123094af22326cfd8e4cbadaac" - FILESEXTRAPATHS_prepend := "${THISDIR}/${BPN}:" 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_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, # so also define the license dependencies. do_populate_lic[depends] += " \ virtual/bootloader:do_populate_lic \ ${@' '.join('%s:do_populate_lic' % r for r in '${IMX_EXTRA_FIRMWARE}'.split() )} \ 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 \ " -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', \ 'flash flash_regression_linux_m4', d)}" @@ -58,9 +26,8 @@ IMXBOOT_TARGETS_ccimx8mn = "${@bb.utils.contains('UBOOT_CONFIG', 'fspi', 'flash_ compile_mx8x() { 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}/imx8qx_m4_TCM_power_mode_switch.bin ${BOOT_STAGING}/m4_image.bin - cp ${DEPLOY_DIR_IMAGE}/${SECO_FIRMWARE} ${BOOT_STAGING}/ + 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}/${ATF_MACHINE_NAME} ${BOOT_STAGING}/bl31.bin for type in ${UBOOT_CONFIG}; do cp ${DEPLOY_DIR_IMAGE}/${BOOT_TOOLS}/u-boot-${type}.bin ${BOOT_STAGING}/ @@ -72,21 +39,30 @@ compile_mx8x() { compile_mx8m() { 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 - 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 + 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 () { compile_${SOC_FAMILY} + if ${DEPLOY_OPTEE}; then + cp ${DEPLOY_DIR_IMAGE}/tee.bin ${BOOT_STAGING} + fi # mkimage for i.MX8 for type in ${UBOOT_CONFIG}; do if [ "${SOC_TARGET}" = "iMX8QX" ]; then @@ -99,10 +75,8 @@ do_compile () { ln -sf ${SC_FIRMWARE_NAME}-${ramc} scfw_tcm.bin cd - for target in ${IMXBOOT_TARGETS}; do - bbnote "building ${SOC_TARGET} - ${ramc} - ${target}" - make SOC=${SOC_TARGET} ${target} - # i.MX8QXP C0 support - #make SOC=${SOC_TARGET} REV=C0 ${target} + bbnote "building ${SOC_TARGET} - ${ramc} - ${REV_OPTION} ${target}" + make SOC=${SOC_TARGET} ${REV_OPTION} ${target} if [ -e "${BOOT_STAGING}/flash.bin" ]; then cp ${BOOT_STAGING}/flash.bin ${S}/${UBOOT_PREFIX}-${MACHINE}-${ramc}.bin-${target} fi @@ -118,8 +92,8 @@ do_compile () { else # mkimage for i.MX8M for target in ${IMXBOOT_TARGETS}; do - bbnote "building ${SOC_TARGET} - ${target}" - make SOC=${SOC_TARGET} ${target} > mkimage-${target}.log 2>&1 + bbnote "building ${SOC_TARGET} - ${REV_OPTION} ${target}" + make SOC=${SOC_TARGET} ${REV_OPTION} ${target} > mkimage-${target}.log 2>&1 if [ -e "${BOOT_STAGING}/flash.bin" ]; then cp ${BOOT_STAGING}/flash.bin ${S}/${UBOOT_PREFIX}-${MACHINE}.bin-${target} fi @@ -157,19 +131,28 @@ do_install () { 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 () { - install -d ${DEPLOYDIR}/${BOOT_TOOLS} - - # copy the tool mkimage to deploy path and sc fw, dcd and uboot - if [ "${SOC_TARGET}" = "iMX8QX" ]; then - 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} + 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 makefile (soc.mak) for reference install -m 0644 ${BOOT_STAGING}/soc.mak ${DEPLOYDIR}/${BOOT_TOOLS} - # copy the generated boot image to deploy path if [ "${UBOOT_RAM_COMBINATIONS}" = "" ]; then IMAGE_IMXBOOT_TARGET="" diff --git a/meta-digi-arm/recipes-bsp/imx-mkimage/imx-mkimage_%.bbappend b/meta-digi-arm/recipes-bsp/imx-mkimage/imx-mkimage_%.bbappend index 95f53f04c..8ca737057 100644 --- a/meta-digi-arm/recipes-bsp/imx-mkimage/imx-mkimage_%.bbappend +++ b/meta-digi-arm/recipes-bsp/imx-mkimage/imx-mkimage_%.bbappend @@ -1,9 +1,5 @@ # 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 () { install -d ${DEPLOYDIR}/${BOOT_TOOLS} install -m 0755 ${S}/iMX8M/mkimage_imx8 ${DEPLOYDIR}/${BOOT_TOOLS}/mkimage_imx8m diff --git a/meta-digi-arm/recipes-bsp/imx-mkimage/imx-mkimage_git.bb b/meta-digi-arm/recipes-bsp/imx-mkimage/imx-mkimage_git.bb new file mode 100644 index 000000000..65ed37b35 --- /dev/null +++ b/meta-digi-arm/recipes-bsp/imx-mkimage/imx-mkimage_git.bb @@ -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 diff --git a/meta-digi-arm/recipes-bsp/imx-mkimage/imx-mkimage_git.inc b/meta-digi-arm/recipes-bsp/imx-mkimage/imx-mkimage_git.inc new file mode 100644 index 000000000..973d475eb --- /dev/null +++ b/meta-digi-arm/recipes-bsp/imx-mkimage/imx-mkimage_git.inc @@ -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" diff --git a/meta-digi-arm/recipes-bsp/u-boot/digi-u-boot.inc b/meta-digi-arm/recipes-bsp/u-boot/digi-u-boot.inc index 1602110ca..a0f904b45 100644 --- a/meta-digi-arm/recipes-bsp/u-boot/digi-u-boot.inc +++ b/meta-digi-arm/recipes-bsp/u-boot/digi-u-boot.inc @@ -213,7 +213,6 @@ do_deploy_append_ccimx8mn() { then install -d ${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} fi done