zeus migration: firmware-imx: update recipe to v8.7

https://jira.digi.com/browse/DEL-7013

Signed-off-by: Arturo Buzarra <arturo.buzarra@digi.com>
This commit is contained in:
Arturo Buzarra 2020-04-07 13:21:48 +02:00
parent d9f7ed8a2d
commit 75b2db5513
13 changed files with 290 additions and 97 deletions

View File

@ -0,0 +1,12 @@
#!/bin/bash
#
# 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

View File

@ -0,0 +1,8 @@
[Unit]
Description=User Space Epdc Firmware Loading
[Service]
ExecStart=/etc/epdc
[Install]
WantedBy=multi-user.target

View File

@ -0,0 +1,28 @@
#!/bin/bash
#
# 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

View File

@ -0,0 +1,8 @@
[Unit]
Description=User Space HDMI Firmware Loading
[Service]
ExecStart=/etc/hdmi
[Install]
WantedBy=multi-user.target

View File

@ -0,0 +1,12 @@
#!/bin/bash
#
# 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

View File

@ -0,0 +1,8 @@
[Unit]
Description=User Space Regulatory Firmware Loading
[Service]
ExecStart=/etc/regulatory
[Install]
WantedBy=multi-user.target

View File

@ -0,0 +1,20 @@
#!/bin/bash
#
# 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

View File

@ -0,0 +1,8 @@
[Unit]
Description=User Space SDMA Firmware Loading
[Service]
ExecStart=/etc/sdma
[Install]
WantedBy=multi-user.target

View File

@ -0,0 +1,17 @@
# Copyright (C) 2012-2016 Freescale Semiconductor
# Copyright 2017-2019 NXP
# Copyright (C) 2018 O.S. Systems Software LTDA.
SECTION = "base"
LICENSE = "Proprietary"
LIC_FILES_CHKSUM = "file://COPYING;md5=228c72f2a91452b8a03c4cab30f30ef9"
SRC_URI = " \
${FSL_MIRROR}/firmware-imx-${PV}.bin;fsl-eula=true \
"
SRC_URI[md5sum] = "ee442e4d975578736f3f72593906f41c"
SRC_URI[sha256sum] = "92c1713f61a99b1ff5046a795789e6021db1e8bb5534c02e4b719f1436e15615"
S = "${WORKDIR}/firmware-imx-${PV}"
inherit fsl-eula-unpack

View File

@ -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 = "(^$)"

View File

@ -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)"

View File

@ -1,97 +0,0 @@
# Copyright (C) 2012-2016 Freescale Semiconductor
# Copyright (C) 2018 O.S. Systems Software LTDA.
# Copyright 2017-2019 NXP
SUMMARY = "Freescale IMX firmware"
DESCRIPTION = "Freescale IMX firmware such as for the VPU"
SECTION = "base"
LICENSE = "Proprietary"
LIC_FILES_CHKSUM = "file://COPYING;md5=fd4b227530cd88a82af6a5982cfb724d"
PE = "1"
SRC_URI = "${FSL_MIRROR}/firmware-imx-${PV}.bin;fsl-eula=true "
SRC_URI[md5sum] = "70bdefdd7fb58f782237acf4c648f5cd"
SRC_URI[sha256sum] = "f04b2deb4f126e6b6cd4460462292acd72183b9f799e3b873fb390ff0f18eb55"
inherit fsl-eula-unpack allarch
do_install() {
install -d ${D}${base_libdir}/firmware/imx
cp -rfv firmware/* ${D}${base_libdir}/firmware/
# 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
# No need to do install for ddr & hdmi binaries
if [ -d ${D}${base_libdir}/firmware/ddr ]; then
rm -rf ${D}${base_libdir}/firmware/ddr
fi
if [ -d ${D}${base_libdir}/firmware/hdmi ]; then
rm -rf ${D}${base_libdir}/firmware/hdmi
fi
# Don't install seco related binary
if [ -d ${D}${base_libdir}/firmware/seco ]; then
rm -rf ${D}${base_libdir}/firmware/seco
fi
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 '{}' ';'
}
IS_MX8 = "0"
IS_MX8_mx8m = "8m"
IS_MX8_mx8qm = "8qm"
IS_MX8_mx8qxp = "8qx"
inherit deploy
addtask deploy before do_build after do_install
do_deploy () {
# Deploy i.MX8 related firmware files
if [ "${IS_MX8}" = "8qm" ]; then
# Deploy hdmi/cadence
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}
fi
}
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}-scfw ${PN}-sdma ${PN}-easrc"
FILES_${PN}-epdc = "${base_libdir}/firmware/imx/epdc/"
FILES_${PN}-scfw = "${base_libdir}/firmware/scfw/"
FILES_${PN}-sdma = " ${base_libdir}/firmware/imx/sdma"
FILES_${PN}-easrc = "${base_libdir}/firmware/imx/easrc/"

View File

@ -0,0 +1,122 @@
# Copyright (C) 2012-2016 Freescale Semiconductor
# Copyright 2017-2019 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 \
file://epdc-firmware.service \
file://regulatory-firmware.service \
file://hdmi-firmware.service \
"
PE = "1"
inherit allarch systemd
SYSTEMD_PACKAGES = "${PN}-sdma ${PN}-epdc ${PN}-regulatory ${PN}-hdmi"
SYSTEMD_SERVICE_${PN}-sdma = "sdma-firmware.service"
SYSTEMD_SERVICE_${PN}-epdc = "epdc-firmware.service"
SYSTEMD_SERVICE_${PN}-regulatory = "regulatory-firmware.service"
SYSTEMD_SERVICE_${PN}-hdmi = "hdmi-firmware.service"
do_install() {
install -d ${D}${base_libdir}/firmware/imx
if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
install -d ${D}${sysconfdir}
install -d ${D}${systemd_system_unitdir}
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}
install -m 0644 ${WORKDIR}/sdma-firmware.service ${D}${systemd_system_unitdir}
install -m 0644 ${WORKDIR}/epdc-firmware.service ${D}${systemd_system_unitdir}
install -m 0644 ${WORKDIR}/regulatory-firmware.service ${D}${systemd_system_unitdir}
install -m 0644 ${WORKDIR}/hdmi-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/
# 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}-scfw ${PN}-sdma ${PN}-easrc ${PN}-regulatory ${PN}-hdmi ${PN}-xcvr"
RDEPENDS_${PN}-epdc = "bash"
RDEPENDS_${PN}-sdma = "bash"
RDEPENDS_${PN}-regulatory = "bash"
RDEPENDS_${PN}-hdmi = "bash"
FILES_${PN}-epdc = "${base_libdir}/firmware/imx/epdc/ ${sysconfdir}/epdc ${systemd_system_unitdir}/epdc-firmware.service"
FILES_${PN}-scfw = "${base_libdir}/firmware/scfw/"
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 ${systemd_system_unitdir}/regulatory-firmware.service"
FILES_${PN}-hdmi = "${base_libdir}/firmware/imx/hdmi/ ${sysconfdir}/hdmi ${systemd_system_unitdir}/hdmi-firmware.service"
FILES_${PN}-xcvr = "${base_libdir}/firmware/imx/xcvr/"
COMPATIBLE_MACHINE = "(imx)"