diff options
author | Max Krummenacher <max.krummenacher@toradex.com> | 2020-02-17 19:37:29 +0100 |
---|---|---|
committer | Max Krummenacher <max.krummenacher@toradex.com> | 2020-03-18 19:31:44 +0100 |
commit | 264c9e55a59849b1370e4638020cb364662357b0 (patch) | |
tree | 98e9fde2ae9fb07393a832b2defa7eb70d33e24e | |
parent | 99c22a9fc70456d18b2a6b86e643a8aa83b0f9af (diff) |
firmware: update to 4.14.98 2.3.1
The seco firmware is now split out of firmware-imx.
The seco firmware has now a i.MX8X B0 and C0 silicon version.
Related-to: ELB-2351
Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
(cherry picked from commit 78802e3ecd139a5031c06821526f249e060894c1)
-rw-r--r-- | conf/machine/apalis-imx8x.conf | 1 | ||||
-rw-r--r-- | conf/machine/colibri-imx8x.conf | 1 | ||||
-rw-r--r-- | recipes-bsp/firmware-imx/firmware-imx-8.4.1.inc | 17 | ||||
-rw-r--r-- | recipes-bsp/firmware-imx/firmware-imx-8_8.4.1.bb | 23 | ||||
-rw-r--r-- | recipes-bsp/firmware-imx/firmware-imx-8m_8.4.1.bb | 24 | ||||
-rw-r--r-- | recipes-bsp/firmware-imx/firmware-imx_8.4.1.bb | 72 | ||||
-rw-r--r-- | recipes-bsp/imx-mkimage/imx-boot_%.bbappend | 74 | ||||
-rw-r--r-- | recipes-bsp/imx-mkimage/imx-mkimage_git.bbappend | 16 | ||||
-rw-r--r-- | recipes-bsp/imx-seco/imx-seco_2.5.6.bb | 35 |
9 files changed, 263 insertions, 0 deletions
diff --git a/conf/machine/apalis-imx8x.conf b/conf/machine/apalis-imx8x.conf index e8a8ade..fc3e415 100644 --- a/conf/machine/apalis-imx8x.conf +++ b/conf/machine/apalis-imx8x.conf @@ -5,6 +5,7 @@ MACHINE_NAME = "Apalis-iMX8X" +# for C0 silicon add mx8qxpc0 to the right of mx8qxp MACHINEOVERRIDES =. "mx8:mx8x:mx8qxp:" require conf/machine/include/imx-base.inc diff --git a/conf/machine/colibri-imx8x.conf b/conf/machine/colibri-imx8x.conf index fa1992c..1f7216a 100644 --- a/conf/machine/colibri-imx8x.conf +++ b/conf/machine/colibri-imx8x.conf @@ -5,6 +5,7 @@ MACHINE_NAME = "Colibri-iMX8X" +# for C0 silicon add mx8qxpc0 to the right of mx8qxp MACHINEOVERRIDES =. "mx8:mx8x:mx8qxp:" MACHINEOVERRIDES_append_upstream = ":use-mainline-bsp" diff --git a/recipes-bsp/firmware-imx/firmware-imx-8.4.1.inc b/recipes-bsp/firmware-imx/firmware-imx-8.4.1.inc new file mode 100644 index 0000000..a2fa611 --- /dev/null +++ b/recipes-bsp/firmware-imx/firmware-imx-8.4.1.inc @@ -0,0 +1,17 @@ +# Copyright (C) 2012-2016 Freescale Semiconductor +# Copyright 2017-2018 NXP +# Copyright (C) 2018 O.S. Systems Software LTDA. +SECTION = "base" +LICENSE = "Proprietary" +LIC_FILES_CHKSUM = "file://COPYING;md5=fd4b227530cd88a82af6a5982cfb724d" + +SRC_URI = " \ + ${FSL_MIRROR}/firmware-imx-${PV}.bin;fsl-eula=true \ +" + +SRC_URI[md5sum] = "70bdefdd7fb58f782237acf4c648f5cd" +SRC_URI[sha256sum] = "f04b2deb4f126e6b6cd4460462292acd72183b9f799e3b873fb390ff0f18eb55" + +S = "${WORKDIR}/firmware-imx-${PV}" + +inherit fsl-eula-unpack diff --git a/recipes-bsp/firmware-imx/firmware-imx-8_8.4.1.bb b/recipes-bsp/firmware-imx/firmware-imx-8_8.4.1.bb new file mode 100644 index 0000000..64fa288 --- /dev/null +++ b/recipes-bsp/firmware-imx/firmware-imx-8_8.4.1.bb @@ -0,0 +1,23 @@ +# Copyright 2018 NXP +SUMMARY = "Freescale i.MX firmware for 8 family" +DESCRIPTION = "Freescale i.MX firmware for 8 family" + +require firmware-imx-${PV}.inc + +inherit deploy + +do_install[noexec] = "1" + +do_deploy() { + # Cadence HDMI + install -m 0644 ${S}/firmware/hdmi/cadence/hdmitxfw.bin ${DEPLOYDIR} + install -m 0644 ${S}/firmware/hdmi/cadence/hdmirxfw.bin ${DEPLOYDIR} + install -m 0644 ${S}/firmware/hdmi/cadence/dpfw.bin ${DEPLOYDIR} +} +addtask deploy after do_install before do_build + +PACKAGE_ARCH = "${MACHINE_SOCARCH}" + +COMPATIBLE_MACHINE = "(mx8)" +COMPATIBLE_MACHINE_mx8m = "(^$)" +COMPATIBLE_MACHINE_mx8x = "(^$)" diff --git a/recipes-bsp/firmware-imx/firmware-imx-8m_8.4.1.bb b/recipes-bsp/firmware-imx/firmware-imx-8m_8.4.1.bb new file mode 100644 index 0000000..a605d22 --- /dev/null +++ b/recipes-bsp/firmware-imx/firmware-imx-8m_8.4.1.bb @@ -0,0 +1,24 @@ +# Copyright 2018 NXP +SUMMARY = "Freescale i.MX firmware for 8M and 8M Mini family" +DESCRIPTION = "Freescale i.MX firmware for 8M and 8M Mini family" + +require firmware-imx-${PV}.inc + +inherit deploy + +do_install[noexec] = "1" + +do_deploy() { + # Synopsys DDR + for ddr_firmware in ${DDR_FIRMWARE_NAME}; do + install -m 0644 ${S}/firmware/ddr/synopsys/${ddr_firmware} ${DEPLOYDIR} + done + # Cadence DP and HDMI + install -m 0644 ${S}/firmware/hdmi/cadence/signed_dp_imx8m.bin ${DEPLOYDIR} + install -m 0644 ${S}/firmware/hdmi/cadence/signed_hdmi_imx8m.bin ${DEPLOYDIR} +} +addtask deploy after do_install before do_build + +PACKAGE_ARCH = "${MACHINE_SOCARCH}" + +COMPATIBLE_MACHINE = "(mx8m)" diff --git a/recipes-bsp/firmware-imx/firmware-imx_8.4.1.bb b/recipes-bsp/firmware-imx/firmware-imx_8.4.1.bb new file mode 100644 index 0000000..4d4b479 --- /dev/null +++ b/recipes-bsp/firmware-imx/firmware-imx_8.4.1.bb @@ -0,0 +1,72 @@ +# Copyright (C) 2012-2016 Freescale Semiconductor +# Copyright 2017-2018 NXP +# Copyright (C) 2018 O.S. Systems Software LTDA. +SUMMARY = "Freescale i.MX firmware" +DESCRIPTION = "Freescale i.MX firmware such as for the VPU" + +require firmware-imx-${PV}.inc + +PE = "1" + +inherit allarch + +do_install() { + install -d ${D}${base_libdir}/firmware/imx + install -d ${D}${sysconfdir}/firmware + + cd firmware + for d in *; do + case $d in + ddr|hdmi|seco) + # These folders are for i.MX 8 and are included in the boot image via imx-boot + bbnote Excluding folder $d + ;; + *) + cp -rfv $d ${D}${base_libdir}/firmware + ;; + esac + done + cd - + + #the sdma firmware is expected in ${D}${base_libdir}/firmware/imx/sdma + mv ${D}${base_libdir}/firmware/sdma ${D}${base_libdir}/firmware/imx/sdma + + mv ${D}${base_libdir}/firmware/epdc/ ${D}${base_libdir}/firmware/imx/epdc/ + mv ${D}${base_libdir}/firmware/imx/epdc/epdc_ED060XH2C1.fw.nonrestricted ${D}${base_libdir}/firmware/imx/epdc/epdc_ED060XH2C1.fw + + mv ${D}${base_libdir}/firmware/easrc/ ${D}${base_libdir}/firmware/imx/easrc/ + + find ${D}${base_libdir}/firmware -type f -exec chmod 644 '{}' ';' + find ${D}${base_libdir}/firmware -type f -exec chown root:root '{}' ';' + + # Remove files not going to be installed + find ${D}${base_libdir}/firmware/ -name '*.mk' -exec rm '{}' ';' +} + +python populate_packages_prepend() { + vpudir = bb.data.expand('${base_libdir}/firmware/vpu', d) + do_split_packages(d, vpudir, '^vpu_fw_([^_]*).*\.bin', + output_pattern='firmware-imx-vpu-%s', + description='Freescale IMX Firmware %s', + extra_depends='', + prepend=True) + + sdmadir = bb.data.expand('${base_libdir}/firmware/imx/sdma', d) + do_split_packages(d, sdmadir, '^sdma-([^-]*).*\.bin', + output_pattern='firmware-imx-sdma-%s', + description='Freescale IMX Firmware %s', + extra_depends='', + prepend=True) +} + +ALLOW_EMPTY_${PN} = "1" + +PACKAGES_DYNAMIC = "${PN}-vpu-* ${PN}-sdma-*" + +PACKAGES =+ "${PN}-easrc ${PN}-epdc ${PN}-scfw" + +FILES_${PN}-epdc = "${base_libdir}/firmware/imx/epdc/" +FILES_${PN}-scfw = "${base_libdir}/firmware/scfw/" +FILES_${PN}-easrc = "${base_libdir}/firmware/imx/easrc/" + +COMPATIBLE_MACHINE = "(imx)" diff --git a/recipes-bsp/imx-mkimage/imx-boot_%.bbappend b/recipes-bsp/imx-mkimage/imx-boot_%.bbappend new file mode 100644 index 0000000..2a840cb --- /dev/null +++ b/recipes-bsp/imx-mkimage/imx-boot_%.bbappend @@ -0,0 +1,74 @@ +ATF_MACHINE_NAME_mx8qxp = "bl31-imx8qx.bin" +ATF_MACHINE_NAME_mx8mn = "bl31-imx8mn.bin" + +SECO_CHIP ?= "qmb0" +SECO_CHIP_mx8qxp = "qxb0" +SECO_CHIP_imx8qxpc0mek = "qxc0" +SECO_CHIP_imx8qxpc0lpddr4arm2 = "qxc0" +SECO_CHIP_mx8qxpc0 = "qxc0" + +SECO_FIRMWARE = "mx8${SECO_CHIP}-ahab-container.img" + +SOC_TARGET_mx8mn = "iMX8MN" + +SRCBRANCH = "imx_4.14.98_2.3.0" +SRCREV = "d7f9440dd5c050cc22cb362d53d4048e689a0c01" + +REV_CHIP ?= "B0" +REV_CHIP_imx8qxpc0mek = "C0" +REV_CHIP_imx8qxpc0lpddr4arm2 = "C0" +REV_CHIP_mx8qxpc0 = "C0" + +IMX_EXTRA_FIRMWARE = "firmware-imx-8 imx-sc-firmware imx-seco" +IMX_EXTRA_FIRMWARE_mx8m = "firmware-imx-8m" +IMX_EXTRA_FIRMWARE_mx8x = "firmware-imx-8x imx-sc-firmware imx-seco" + +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_*_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 ${DEPLOY_DIR_IMAGE}/${BOOT_TOOLS}/mkimage_uboot ${BOOT_STAGING} + 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} ${BOOT_STAGING} +} +compile_mx8x() { + bbnote 8QX boot binary build + cp ${DEPLOY_DIR_IMAGE}/${SECO_FIRMWARE} ${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 +} +do_compile() { + compile_${SOC_FAMILY} + # mkimage for i.MX8 + for target in ${IMXBOOT_TARGETS}; do + bbnote "building ${SOC_TARGET} - ${target}" + make SOC=${SOC_TARGET} REV=${REV_CHIP} dtbs=${UBOOT_DTB_NAME} ${target} + if [ -e "${BOOT_STAGING}/flash.bin" ]; then + cp ${BOOT_STAGING}/flash.bin ${S}/${BOOT_CONFIG_MACHINE}-${target} + fi + done +} +deploy_mx8() { + install -d ${DEPLOYDIR}/${BOOT_TOOLS} + install -m 0644 ${BOOT_STAGING}/${SECO_FIRMWARE} ${DEPLOYDIR}/${BOOT_TOOLS} + install -m 0755 ${S}/${TOOLS_NAME} ${DEPLOYDIR}/${BOOT_TOOLS} +} +deploy_mx8x() { + install -d ${DEPLOYDIR}/${BOOT_TOOLS} + install -m 0644 ${BOOT_STAGING}/${SECO_FIRMWARE} ${DEPLOYDIR}/${BOOT_TOOLS} + install -m 0755 ${S}/${TOOLS_NAME} ${DEPLOYDIR}/${BOOT_TOOLS} +} diff --git a/recipes-bsp/imx-mkimage/imx-mkimage_git.bbappend b/recipes-bsp/imx-mkimage/imx-mkimage_git.bbappend new file mode 100644 index 0000000..da59113 --- /dev/null +++ b/recipes-bsp/imx-mkimage/imx-mkimage_git.bbappend @@ -0,0 +1,16 @@ +SRCBRANCH = "imx_4.14.98_2.3.0" +SRCREV = "d7f9440dd5c050cc22cb362d53d4048e689a0c01" + +REV_CHIP ?= "B0" +REV_CHIP_imx8qxpc0mek = "C0" +REV_CHIP_imx8qxpc0lpddr4arm2 = "C0" +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 +} diff --git a/recipes-bsp/imx-seco/imx-seco_2.5.6.bb b/recipes-bsp/imx-seco/imx-seco_2.5.6.bb new file mode 100644 index 0000000..ca053df --- /dev/null +++ b/recipes-bsp/imx-seco/imx-seco_2.5.6.bb @@ -0,0 +1,35 @@ +# Copyright 2019 NXP + +SUMMARY = "NXP i.MX SECO firmware" +DESCRIPTION = "NXP IMX SECO firmware" +SECTION = "base" +LICENSE = "Proprietary" +LIC_FILES_CHKSUM = "file://COPYING;md5=fd4b227530cd88a82af6a5982cfb724d" + +inherit fsl-eula-unpack deploy + +SRC_URI = "${FSL_MIRROR}/${BPN}-${PV}.bin;fsl-eula=true " + +SRC_URI[md5sum] = "b0e0e358f02b7030b57f9eca6a22cf3d" +SRC_URI[sha256sum] = "e18ce97a7ae0878c708393c6e65aaad86508d642ef4fd1b3ad9930287cc96294" + +do_compile[noexec] = "1" + +do_install[noexec] = "1" + +SECO_CHIP ?= "qmb0" +SECO_CHIP_mx8qxp = "qxb0" +SECO_CHIP_imx8qxpc0mek = "qxc0" +SECO_CHIP_imx8qxpc0lpddr4arm2 = "qxc0" +SECO_CHIP_mx8qxpc0 = "qxc0" + +SECO_FIRMWARE_NAME = "mx8${SECO_CHIP}-ahab-container.img" + +addtask deploy after do_install +do_deploy () { + # Deploy i.MX8 SECO firmware files + install -m 0644 ${S}/firmware/seco/${SECO_FIRMWARE_NAME} ${DEPLOYDIR} +} + + +COMPATIBLE_MACHINE = "(mx8qm|mx8qxp)" |