131 lines
5.7 KiB
BlitzBasic
131 lines
5.7 KiB
BlitzBasic
# 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)"
|