summaryrefslogtreecommitdiff
path: root/backports
diff options
context:
space:
mode:
authorMax Krummenacher <max.krummenacher@toradex.com>2021-01-28 16:57:53 +0100
committerMax Krummenacher <max.krummenacher@toradex.com>2021-01-30 19:31:32 +0100
commit6b0d8d7765916ddef652e016063ff67ac4e2e90b (patch)
treeb2c01aa6369f2bc70effd3f2d23666c3ea090fac /backports
parentcceaa0fc67f51aa4a4abea556b0347ec47c3d64f (diff)
imx-mkimage: : update to 5.4.70_2.3.0
Related-to: ELB-3327 Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
Diffstat (limited to 'backports')
-rw-r--r--backports/recipes-bsp/imx-mkimage/imx-boot_1.0.bb218
-rw-r--r--backports/recipes-bsp/imx-mkimage/imx-mkimage_git.bb38
-rw-r--r--backports/recipes-bsp/imx-mkimage/imx-mkimage_git.inc11
3 files changed, 267 insertions, 0 deletions
diff --git a/backports/recipes-bsp/imx-mkimage/imx-boot_1.0.bb b/backports/recipes-bsp/imx-mkimage/imx-boot_1.0.bb
new file mode 100644
index 0000000..a54b439
--- /dev/null
+++ b/backports/recipes-bsp/imx-mkimage/imx-boot_1.0.bb
@@ -0,0 +1,218 @@
+# Copyright (C) 2017-2020 NXP
+
+require imx-mkimage_git.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"
+
+inherit use-imx-security-controller-firmware
+
+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}"
+
+# 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 \
+ ${@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/8MN/8MP 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
+ cp ${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
+ cp ${DEPLOY_DIR_IMAGE}/${SECO_FIRMWARE_NAME} ${BOOT_STAGING}
+ 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
+}
+
+compile_mx8x() {
+ bbnote 8QX boot binary build
+ 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() {
+ # mkimage for i.MX8
+ # Copy TEE binary to SoC target folder to mkimage
+ if ${DEPLOY_OPTEE}; then
+ cp ${DEPLOY_DIR_IMAGE}/tee.bin ${BOOT_STAGING}
+ fi
+ for target in ${IMXBOOT_TARGETS}; do
+ compile_${SOC_FAMILY}
+ if [ "$target" = "flash_linux_m4_no_v2x" ]; then
+ # Special target build for i.MX 8DXL with V2X off
+ bbnote "building ${SOC_TARGET} - ${REV_OPTION} V2X=NO ${target}"
+ make SOC=${SOC_TARGET} ${REV_OPTION} V2X=NO dtbs=${UBOOT_DTB_NAME} flash_linux_m4
+ else
+ bbnote "building ${SOC_TARGET} - ${REV_OPTION} ${target}"
+ make SOC=${SOC_TARGET} ${REV_OPTION} dtbs=${UBOOT_DTB_NAME} ${target}
+ fi
+ 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 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 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 the tool mkimage to deploy path and sc fw, dcd and uboot
+ install -m 0644 ${DEPLOY_DIR_IMAGE}/${UBOOT_NAME} ${DEPLOYDIR}/${BOOT_TOOLS}
+
+ # 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
+ 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/backports/recipes-bsp/imx-mkimage/imx-mkimage_git.bb b/backports/recipes-bsp/imx-mkimage/imx-mkimage_git.bb
new file mode 100644
index 0000000..ed15c6f
--- /dev/null
+++ b/backports/recipes-bsp/imx-mkimage/imx-mkimage_git.bb
@@ -0,0 +1,38 @@
+# Copyright (C) 2016 Freescale Semiconductor
+# Copyright (C) 2017-2020 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/backports/recipes-bsp/imx-mkimage/imx-mkimage_git.inc b/backports/recipes-bsp/imx-mkimage/imx-mkimage_git.inc
new file mode 100644
index 0000000..1eba510
--- /dev/null
+++ b/backports/recipes-bsp/imx-mkimage/imx-mkimage_git.inc
@@ -0,0 +1,11 @@
+# Copyright 2017-2020 NXP
+
+DEPENDS = "zlib-native openssl-native"
+
+SRCBRANCH = "imx_5.4.70_2.3.0"
+SRC_URI = "git://source.codeaurora.org/external/imx/imx-mkimage.git;protocol=https;branch=${SRCBRANCH}"
+SRCREV = "8947fea369ab3932259630232cfb9f87b8f9dda1"
+S = "${WORKDIR}/git"
+
+BOOT_TOOLS = "imx-boot-tools"
+SYSROOT_DIRS += "/boot"