From 3c6c9b82a3dad71597c2794b3372c398ec12dac7 Mon Sep 17 00:00:00 2001 From: Gabriel Valcazar Date: Tue, 21 Dec 2021 12:28:25 +0100 Subject: [PATCH] hardknott: firmware-imx: sync with meta-imx hardknott-5.10.72-2.2.0 branch Update the recipes to v8.14. NXP changed the mechanism used to load the sdma and regulatory firmware (they now use firmwared), so remove our ccimx8mm sdma fw service for now and see if we need a similar workaround with the new mechanism. Signed-off-by: Gabriel Valcazar --- .../files/ccimx8m/sdma-firmware.service | 15 -- .../recipes-bsp/firmware-imx/files/epdc | 12 -- .../firmware-imx/files/epdc-firmware.service | 8 -- .../recipes-bsp/firmware-imx/files/hdmi | 28 ---- .../firmware-imx/files/hdmi-firmware.service | 8 -- .../recipes-bsp/firmware-imx/files/regulatory | 12 -- .../files/regulatory-firmware.service | 8 -- .../recipes-bsp/firmware-imx/files/sdma | 20 --- .../firmware-imx/files/sdma-firmware.service | 8 -- ...are-imx-8.11.inc => firmware-imx-8.14.inc} | 8 +- ...e-imx-8_8.11.bb => firmware-imx-8_8.14.bb} | 2 +- ...imx-8m_8.11.bb => firmware-imx-8m_8.14.bb} | 2 +- .../firmware-imx/firmware-imx_8.11.bb | 112 --------------- .../firmware-imx/firmware-imx_8.14.bb | 130 ++++++++++++++++++ 14 files changed, 136 insertions(+), 237 deletions(-) delete mode 100644 meta-digi-arm/recipes-bsp/firmware-imx/files/ccimx8m/sdma-firmware.service delete mode 100644 meta-digi-arm/recipes-bsp/firmware-imx/files/epdc delete mode 100644 meta-digi-arm/recipes-bsp/firmware-imx/files/epdc-firmware.service delete mode 100644 meta-digi-arm/recipes-bsp/firmware-imx/files/hdmi delete mode 100644 meta-digi-arm/recipes-bsp/firmware-imx/files/hdmi-firmware.service delete mode 100644 meta-digi-arm/recipes-bsp/firmware-imx/files/regulatory delete mode 100644 meta-digi-arm/recipes-bsp/firmware-imx/files/regulatory-firmware.service delete mode 100644 meta-digi-arm/recipes-bsp/firmware-imx/files/sdma delete mode 100644 meta-digi-arm/recipes-bsp/firmware-imx/files/sdma-firmware.service rename meta-digi-arm/recipes-bsp/firmware-imx/{firmware-imx-8.11.inc => firmware-imx-8.14.inc} (53%) rename meta-digi-arm/recipes-bsp/firmware-imx/{firmware-imx-8_8.11.bb => firmware-imx-8_8.14.bb} (95%) rename meta-digi-arm/recipes-bsp/firmware-imx/{firmware-imx-8m_8.11.bb => firmware-imx-8m_8.14.bb} (96%) delete mode 100644 meta-digi-arm/recipes-bsp/firmware-imx/firmware-imx_8.11.bb create mode 100644 meta-digi-arm/recipes-bsp/firmware-imx/firmware-imx_8.14.bb diff --git a/meta-digi-arm/recipes-bsp/firmware-imx/files/ccimx8m/sdma-firmware.service b/meta-digi-arm/recipes-bsp/firmware-imx/files/ccimx8m/sdma-firmware.service deleted file mode 100644 index 918cce6c9..000000000 --- a/meta-digi-arm/recipes-bsp/firmware-imx/files/ccimx8m/sdma-firmware.service +++ /dev/null @@ -1,15 +0,0 @@ -# The SDMA firmware needs to be loaded in order for the kernel to carry out -# SPI tranfers with DMA. Such transfers are required when probing the mcp25xxfd -# module, so make sure the firmware is loaded before the module is by adding -# the appropriate dependencies in this service. - -[Unit] -Description=User Space SDMA Firmware Loading -Before=systemd-modules-load.service -DefaultDependencies=no - -[Service] -ExecStart=/etc/sdma - -[Install] -WantedBy=sysinit.target diff --git a/meta-digi-arm/recipes-bsp/firmware-imx/files/epdc b/meta-digi-arm/recipes-bsp/firmware-imx/files/epdc deleted file mode 100644 index 8b4f80ffe..000000000 --- a/meta-digi-arm/recipes-bsp/firmware-imx/files/epdc +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/sh -# -# firmware loader script - -MX7_EPDC="/sys/bus/platform/devices/*/firmware/imx!epdc!epdc_ED060XH2C1.fw" - -if [ 0 -lt $(ls $MX7_EPDC 2>/dev/null | wc -w) ]; then -cd ${MX7_EPDC} -echo 1 > loading -cat /lib/firmware/imx/epdc/epdc_ED060XH2C1.fw > data -echo 0 > loading -fi diff --git a/meta-digi-arm/recipes-bsp/firmware-imx/files/epdc-firmware.service b/meta-digi-arm/recipes-bsp/firmware-imx/files/epdc-firmware.service deleted file mode 100644 index e74ec5835..000000000 --- a/meta-digi-arm/recipes-bsp/firmware-imx/files/epdc-firmware.service +++ /dev/null @@ -1,8 +0,0 @@ -[Unit] -Description=User Space Epdc Firmware Loading - -[Service] -ExecStart=/etc/epdc - -[Install] -WantedBy=multi-user.target diff --git a/meta-digi-arm/recipes-bsp/firmware-imx/files/hdmi b/meta-digi-arm/recipes-bsp/firmware-imx/files/hdmi deleted file mode 100644 index 5bf276314..000000000 --- a/meta-digi-arm/recipes-bsp/firmware-imx/files/hdmi +++ /dev/null @@ -1,28 +0,0 @@ -#!/bin/sh -# -# firmware loader script - -MX8_HDMITX="/sys/bus/platform/devices/*/firmware/hdmitxfw.bin" -MX8_HDMIRX="/sys/bus/platform/devices/*/firmware/hdmirxfw.bin" -MX8_HDMIDP="/sys/bus/platform/devices/*/firmware/dpfw.bin" - -if [ 0 -lt $(ls $MX8_HDMITX 2>/dev/null | wc -w) ]; then -cd ${MX8_HDMITX} -echo 1 > loading -cat /lib/firmware/imx/hdmi/hdmitxfw.bin > data -echo 0 > loading -fi - -if [ 0 -lt $(ls $MX8_HDMIRX 2>/dev/null | wc -w) ]; then -cd ${MX8_HDMIRX} -echo 1 > loading -cat /lib/firmware/imx/hdmi/hdmirxfw.bin > data -echo 0 > loading -fi - -if [ 0 -lt $(ls $MX8_HDMIDP 2>/dev/null | wc -w) ]; then -cd ${MX8_HDMIDP} -echo 1 > loading -cat /lib/firmware/imx/hdmi/dpfw.bin > data -echo 0 > loading -fi diff --git a/meta-digi-arm/recipes-bsp/firmware-imx/files/hdmi-firmware.service b/meta-digi-arm/recipes-bsp/firmware-imx/files/hdmi-firmware.service deleted file mode 100644 index 4b8c21bf8..000000000 --- a/meta-digi-arm/recipes-bsp/firmware-imx/files/hdmi-firmware.service +++ /dev/null @@ -1,8 +0,0 @@ -[Unit] -Description=User Space HDMI Firmware Loading - -[Service] -ExecStart=/etc/hdmi - -[Install] -WantedBy=multi-user.target diff --git a/meta-digi-arm/recipes-bsp/firmware-imx/files/regulatory b/meta-digi-arm/recipes-bsp/firmware-imx/files/regulatory deleted file mode 100644 index db65d661c..000000000 --- a/meta-digi-arm/recipes-bsp/firmware-imx/files/regulatory +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/sh -# -# firmware loader script - -MX8MM_REGULATORY="/sys/bus/platform/devices/regulatory.0/firmware/regulatory.db" - -if [ 0 -lt $(ls $MX8MM_REGULATORY 2>/dev/null | wc -w) ]; then -cd ${MX8MM_REGULATORY} -echo 1 > loading -cat /lib/firmware/regulatory.db > data -echo 0 > loading -fi diff --git a/meta-digi-arm/recipes-bsp/firmware-imx/files/regulatory-firmware.service b/meta-digi-arm/recipes-bsp/firmware-imx/files/regulatory-firmware.service deleted file mode 100644 index d4e2f6ff1..000000000 --- a/meta-digi-arm/recipes-bsp/firmware-imx/files/regulatory-firmware.service +++ /dev/null @@ -1,8 +0,0 @@ -[Unit] -Description=User Space Regulatory Firmware Loading - -[Service] -ExecStart=/etc/regulatory - -[Install] -WantedBy=multi-user.target diff --git a/meta-digi-arm/recipes-bsp/firmware-imx/files/sdma b/meta-digi-arm/recipes-bsp/firmware-imx/files/sdma deleted file mode 100644 index fb0a76964..000000000 --- a/meta-digi-arm/recipes-bsp/firmware-imx/files/sdma +++ /dev/null @@ -1,20 +0,0 @@ -#!/bin/sh -# -# firmware loader script - -MX6_SDMA="/sys/bus/platform/devices/*/firmware/imx!sdma!sdma-imx6q.bin" -MX7_SDMA="/sys/bus/platform/devices/*/firmware/imx!sdma!sdma-imx7d.bin" - -if [ 0 -lt $(ls $MX6_SDMA 2>/dev/null | wc -w) ]; then -cd ${MX6_SDMA} -echo 1 > loading -cat /lib/firmware/imx/sdma/sdma-imx6q.bin > data -echo 0 > loading -fi - -if [ 0 -lt $(ls $MX7_SDMA 2>/dev/null | wc -w) ]; then -cd ${MX7_SDMA} -echo 1 > loading -cat /lib/firmware/imx/sdma/sdma-imx7d.bin > data -echo 0 > loading -fi diff --git a/meta-digi-arm/recipes-bsp/firmware-imx/files/sdma-firmware.service b/meta-digi-arm/recipes-bsp/firmware-imx/files/sdma-firmware.service deleted file mode 100644 index eb8c8ab36..000000000 --- a/meta-digi-arm/recipes-bsp/firmware-imx/files/sdma-firmware.service +++ /dev/null @@ -1,8 +0,0 @@ -[Unit] -Description=User Space SDMA Firmware Loading - -[Service] -ExecStart=/etc/sdma - -[Install] -WantedBy=multi-user.target diff --git a/meta-digi-arm/recipes-bsp/firmware-imx/firmware-imx-8.11.inc b/meta-digi-arm/recipes-bsp/firmware-imx/firmware-imx-8.14.inc similarity index 53% rename from meta-digi-arm/recipes-bsp/firmware-imx/firmware-imx-8.11.inc rename to meta-digi-arm/recipes-bsp/firmware-imx/firmware-imx-8.14.inc index a2a4be7d4..29814f9a7 100644 --- a/meta-digi-arm/recipes-bsp/firmware-imx/firmware-imx-8.11.inc +++ b/meta-digi-arm/recipes-bsp/firmware-imx/firmware-imx-8.14.inc @@ -1,16 +1,16 @@ # Copyright (C) 2012-2016 Freescale Semiconductor -# Copyright 2017-2020 NXP +# Copyright 2017-2021 NXP # Copyright (C) 2018 O.S. Systems Software LTDA. SECTION = "base" LICENSE = "Proprietary" -LIC_FILES_CHKSUM = "file://COPYING;md5=a632fefd1c359980434f9389833cab3a" +LIC_FILES_CHKSUM = "file://COPYING;md5=03bcadc8dc0a788f66ca9e2b89f56c6f" SRC_URI = " \ ${FSL_MIRROR}/firmware-imx-${PV}.bin;fsl-eula=true \ " -SRC_URI[md5sum] = "663942fabdf8808c2aa9cfbd21c48cc2" -SRC_URI[sha256sum] = "1a7aaab69cd8c48d10ffb0118c938f4b3daf4c7fd86f0342f4d352906f8e0ecb" +SRC_URI[md5sum] = "3357c84e48fdc220984a9642d1e808f6" +SRC_URI[sha256sum] = "bfe9c57857e8442e7eb26ba3e1020733b09a7c9b83952ad4822980546c58a7f4" S = "${WORKDIR}/firmware-imx-${PV}" diff --git a/meta-digi-arm/recipes-bsp/firmware-imx/firmware-imx-8_8.11.bb b/meta-digi-arm/recipes-bsp/firmware-imx/firmware-imx-8_8.14.bb similarity index 95% rename from meta-digi-arm/recipes-bsp/firmware-imx/firmware-imx-8_8.11.bb rename to meta-digi-arm/recipes-bsp/firmware-imx/firmware-imx-8_8.14.bb index 86113ded0..26ba88bc6 100644 --- a/meta-digi-arm/recipes-bsp/firmware-imx/firmware-imx-8_8.11.bb +++ b/meta-digi-arm/recipes-bsp/firmware-imx/firmware-imx-8_8.14.bb @@ -1,4 +1,4 @@ -# Copyright 2018-2020 NXP +# Copyright 2018-2021 NXP SUMMARY = "Freescale i.MX firmware for 8 family" DESCRIPTION = "Freescale i.MX firmware for 8 family" diff --git a/meta-digi-arm/recipes-bsp/firmware-imx/firmware-imx-8m_8.11.bb b/meta-digi-arm/recipes-bsp/firmware-imx/firmware-imx-8m_8.14.bb similarity index 96% rename from meta-digi-arm/recipes-bsp/firmware-imx/firmware-imx-8m_8.11.bb rename to meta-digi-arm/recipes-bsp/firmware-imx/firmware-imx-8m_8.14.bb index 6fa6be8d8..35855c0f9 100644 --- a/meta-digi-arm/recipes-bsp/firmware-imx/firmware-imx-8m_8.11.bb +++ b/meta-digi-arm/recipes-bsp/firmware-imx/firmware-imx-8m_8.14.bb @@ -1,4 +1,4 @@ -# Copyright 2018-2020 NXP +# Copyright 2018-2021 NXP SUMMARY = "Freescale i.MX firmware for 8M and 8M Mini family" DESCRIPTION = "Freescale i.MX firmware for 8M and 8M Mini family" diff --git a/meta-digi-arm/recipes-bsp/firmware-imx/firmware-imx_8.11.bb b/meta-digi-arm/recipes-bsp/firmware-imx/firmware-imx_8.11.bb deleted file mode 100644 index 18c2f8236..000000000 --- a/meta-digi-arm/recipes-bsp/firmware-imx/firmware-imx_8.11.bb +++ /dev/null @@ -1,112 +0,0 @@ -# Copyright (C) 2012-2016 Freescale Semiconductor -# Copyright 2017-2020 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 - -SRC_URI_append = " \ - file://sdma \ - file://epdc \ - file://regulatory \ - file://hdmi \ - file://sdma-firmware.service \ -" - -PE = "1" - -inherit allarch systemd - -SYSTEMD_PACKAGES = "${PN}-sdma" -SYSTEMD_SERVICE_${PN}-sdma = "sdma-firmware.service" - -do_install() { - install -d ${D}${base_libdir}/firmware/imx - - # Install loading scripts - install -d ${D}${sysconfdir} - install -m 0755 ${WORKDIR}/sdma ${D}${sysconfdir} - install -m 0755 ${WORKDIR}/epdc ${D}${sysconfdir} - install -m 0755 ${WORKDIR}/regulatory ${D}${sysconfdir} - install -m 0755 ${WORKDIR}/hdmi ${D}${sysconfdir} - - if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then - # Install SDMA systemd service - install -d ${D}${systemd_system_unitdir} - install -m 0644 ${WORKDIR}/sdma-firmware.service ${D}${systemd_system_unitdir} - fi - - cd firmware - for d in *; do - case $d in - ddr|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 - - - # Install SDMA Firmware: sdma-imx6q.bin & sdma-imx7d.bin into lib/firmware/imx/sdma - install -d ${D}${base_libdir}/firmware/imx/sdma - mv ${D}${base_libdir}/firmware/sdma/sdma-imx6q.bin ${D}${base_libdir}/firmware/imx/sdma - mv ${D}${base_libdir}/firmware/sdma/sdma-imx7d.bin ${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/ - - mv ${D}${base_libdir}/firmware/xcvr/ ${D}${base_libdir}/firmware/imx/xcvr/ - - mv ${D}${base_libdir}/firmware/xuvi/ ${D}${base_libdir}/firmware/imx/xuvi/ - - # Install HDMI Firmware: hdmitxfw.bin, hdmirxfw.bin & dpfw.bin into lib/firmware/imx/hdmi - install -d ${D}${base_libdir}/firmware/imx/hdmi - mv ${D}${base_libdir}/firmware/hdmi/cadence/hdmitxfw.bin ${D}${base_libdir}/firmware/imx/hdmi - mv ${D}${base_libdir}/firmware/hdmi/cadence/hdmirxfw.bin ${D}${base_libdir}/firmware/imx/hdmi - mv ${D}${base_libdir}/firmware/hdmi/cadence/dpfw.bin ${D}${base_libdir}/firmware/imx/hdmi - - 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 '{}' ';' - rm -rf ${D}${base_libdir}/firmware/hdmi -} - -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/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}-epdc ${PN}-sdma ${PN}-easrc ${PN}-regulatory ${PN}-hdmi ${PN}-xcvr ${PN}-xuvi" - -FILES_${PN}-epdc = "${base_libdir}/firmware/imx/epdc/ ${sysconfdir}/epdc" -FILES_${PN}-sdma = "${base_libdir}/firmware/imx/sdma ${sysconfdir}/sdma ${systemd_system_unitdir}/sdma-firmware.service" -FILES_${PN}-easrc = "${base_libdir}/firmware/imx/easrc/" -FILES_${PN}-regulatory = "${sysconfdir}/regulatory" -FILES_${PN}-hdmi = "${base_libdir}/firmware/imx/hdmi/ ${sysconfdir}/hdmi" -FILES_${PN}-xcvr = "${base_libdir}/firmware/imx/xcvr/" -FILES_${PN}-xuvi = "${base_libdir}/firmware/imx/xuvi/" - -COMPATIBLE_MACHINE = "(imx)" diff --git a/meta-digi-arm/recipes-bsp/firmware-imx/firmware-imx_8.14.bb b/meta-digi-arm/recipes-bsp/firmware-imx/firmware-imx_8.14.bb new file mode 100644 index 000000000..e76d3e520 --- /dev/null +++ b/meta-digi-arm/recipes-bsp/firmware-imx/firmware-imx_8.14.bb @@ -0,0 +1,130 @@ +# Copyright (C) 2012-2016 Freescale Semiconductor +# Copyright 2017-2020 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}${nonarch_base_libdir}/firmware/imx + + # SDMA Firmware section + install -d ${D}${nonarch_base_libdir}/firmware/imx/sdma + install -m 0644 ${S}/firmware/sdma/* ${D}${nonarch_base_libdir}/firmware/imx/sdma + + # EASRC Firmware section + install -d ${D}${nonarch_base_libdir}/firmware/imx/easrc + install -m 0644 ${S}/firmware/easrc/* ${D}${nonarch_base_libdir}/firmware/imx/easrc/ + + # XCVR Firmware section + install -d ${D}${nonarch_base_libdir}/firmware/imx/xcvr + install -m 0644 ${S}/firmware/xcvr/* ${D}${nonarch_base_libdir}/firmware/imx/xcvr/ + + # XUVI Firmware section + install -d ${D}${nonarch_base_libdir}/firmware/imx/xuvi + install -m 0644 ${S}/firmware/xuvi/* ${D}${nonarch_base_libdir}/firmware/imx/xuvi/ + + # EPDC Firmware section + # NOTE: + # epdc_ED060XH2C1.fw file has .nonrestricted suffix in the source archive, hence it should + # be installed with a different name + install -d ${D}${nonarch_base_libdir}/firmware/imx/epdc + install -m 0644 ${S}/firmware/epdc/*.fw ${D}${nonarch_base_libdir}/firmware/imx/epdc/ + install -m 0644 ${S}/firmware/epdc/epdc_ED060XH2C1.fw.nonrestricted ${D}${nonarch_base_libdir}/firmware/imx/epdc/epdc_ED060XH2C1.fw + + # HDMI Firmware section + # NOTE: + # Only install pre-defined list of firmware files, since the source archive contains + # also HDMI binary files for imx8m derivatives, which are taken care of by another recipe + install -m 0644 ${S}/firmware/hdmi/cadence/hdmitxfw.bin ${D}${nonarch_base_libdir}/firmware + install -m 0644 ${S}/firmware/hdmi/cadence/hdmirxfw.bin ${D}${nonarch_base_libdir}/firmware + install -m 0644 ${S}/firmware/hdmi/cadence/dpfw.bin ${D}${nonarch_base_libdir}/firmware + + # VPU Firmware section + # NOTE: + # Do the same thing as above for HDMI - only install a pre-defined list of firmware files, + # as some of other files are provided by packages from other recipes. + install -d ${D}${nonarch_base_libdir}/firmware/vpu + install -m 0644 ${S}/firmware/vpu/vpu_fw_imx*.bin ${D}${nonarch_base_libdir}/firmware/vpu +} + +# +# This prepend is here to produce separate packages containing firmware, +# which could be included separately based on the machine definition. +# +# It operates similar to the FILES mechanism by travesing through +# ${D} + folder supplied as a first parameter, matches the regexp supplied +# as second one, and for every file match - it creates a separate package, +# which contains only files that matches the pattern. +# +python populate_packages_prepend() { + easrcdir = bb.data.expand('${nonarch_base_libdir}/firmware/imx/easrc', d) + do_split_packages(d, easrcdir, '^easrc-([^_]*).*\.bin', + output_pattern='firmware-imx-easrc-%s', + description='Freescale IMX EASRC Firmware [%s]', + extra_depends='', + prepend=True) + + vpudir = bb.data.expand('${nonarch_base_libdir}/firmware/vpu', d) + do_split_packages(d, vpudir, '^vpu_fw_([^_]*).*\.bin', + output_pattern='firmware-imx-vpu-%s', + description='Freescale IMX VPU Firmware [%s]', + extra_depends='', + prepend=True) + + sdmadir = bb.data.expand('${nonarch_base_libdir}/firmware/imx/sdma', d) + do_split_packages(d, sdmadir, '^sdma-([^-]*).*\.bin', + output_pattern='firmware-imx-sdma-%s', + description='Freescale IMX SDMA Firmware [%s]', + extra_depends='', + prepend=True) + + xcvrdir = bb.data.expand('${nonarch_base_libdir}/firmware/imx/xcvr', d) + do_split_packages(d, xcvrdir, '^xcvr-([^_]*).*\.bin', + output_pattern='firmware-imx-xcvr-%s', + description='Freescale IMX XCVR Firmware [%s]', + extra_depends='', + prepend=True) + + xuvidir = bb.data.expand('${nonarch_base_libdir}/firmware/imx/xuvi', d) + do_split_packages(d, xuvidir, '^vpu_fw_([^_]*).*\.bin', + output_pattern='firmware-imx-xuvi-%s', + description='Freescale IMX XUVI Firmware [%s]', + extra_depends='', + prepend=True) +} + +# Declare a contract that we would provide packages produced by prepend above +PACKAGES_DYNAMIC = "${PN}-vpu-* ${PN}-sdma-* ${PN}-easrc-* ${PN}-xcvr-* ${PN}-xuvi-*" + +# +# Deal with the rest of Firmware packages here +# +# Provide EPDC and HDMI Firmware in common packages as they tend to be special in +# terms of the content. +# +# NOTE: PACKAGES are defined explicitly here in order to remove the auto-generated +# complimentary packages (-dev and -dbg). +# This is done in order to be able to keep the main package empty and fail when +# somebody tries to install it in the image. +# If -dev package is present in that setup, and dev-pkgs is enabled in +# IMAGE_FEATURES - this leads to a failure during do_rootfs() while all -dev +# packages would be installed, and -dev package would fail because the main one +# is empty. +# Therefore, we opt-out from producing -dev package here, since also for firmware +# files it makes no sense. +PACKAGES = "${PN} ${PN}-epdc ${PN}-hdmi" + +FILES_${PN}-epdc = "${nonarch_base_libdir}/firmware/imx/epdc/" +FILES_${PN}-hdmi = " \ + ${nonarch_base_libdir}/firmware/hdmitxfw.bin \ + ${nonarch_base_libdir}/firmware/hdmirxfw.bin \ + ${nonarch_base_libdir}/firmware/dpfw.bin \ +" + +COMPATIBLE_MACHINE = "(imx)"