aboutsummaryrefslogtreecommitdiffstats
path: root/recipes-bsp/firmware-imx
diff options
context:
space:
mode:
Diffstat (limited to 'recipes-bsp/firmware-imx')
-rw-r--r--recipes-bsp/firmware-imx/firmware-imx-8.10.inc (renamed from recipes-bsp/firmware-imx/firmware-imx-8.5.inc)9
-rw-r--r--recipes-bsp/firmware-imx/firmware-imx-8_8.10.bb (renamed from recipes-bsp/firmware-imx/firmware-imx-8_8.5.bb)2
-rw-r--r--recipes-bsp/firmware-imx/firmware-imx-8m_8.10.bb (renamed from recipes-bsp/firmware-imx/firmware-imx-8m_8.5.bb)4
-rw-r--r--recipes-bsp/firmware-imx/firmware-imx_8.10.bb129
-rw-r--r--recipes-bsp/firmware-imx/firmware-imx_8.5.bb76
-rw-r--r--recipes-bsp/firmware-imx/firmware-nxp-wifi_1.0.bb46
-rw-r--r--recipes-bsp/firmware-imx/firmware-sof-imx_1.5.0-3.bb24
7 files changed, 206 insertions, 84 deletions
diff --git a/recipes-bsp/firmware-imx/firmware-imx-8.5.inc b/recipes-bsp/firmware-imx/firmware-imx-8.10.inc
index ae6b1d78..6f1222aa 100644
--- a/recipes-bsp/firmware-imx/firmware-imx-8.5.inc
+++ b/recipes-bsp/firmware-imx/firmware-imx-8.10.inc
@@ -1,17 +1,16 @@
# Copyright (C) 2012-2016 Freescale Semiconductor
-# Copyright 2017-2019 NXP
+# Copyright (C) 2017-2020 NXP
# Copyright (C) 2018 O.S. Systems Software LTDA.
SECTION = "base"
LICENSE = "Proprietary"
-LIC_FILES_CHKSUM = "file://COPYING;md5=6c12031a11b81db21cdfe0be88cac4b3"
+LIC_FILES_CHKSUM = "file://COPYING;md5=cf3f9b8d09bc3926b1004ea71f7a248a"
-SRCBRANCH ?= "master"
SRC_URI = " \
${FSL_MIRROR}/firmware-imx-${PV}.bin;fsl-eula=true \
"
-SRC_URI[md5sum] = "a6b926d087e1e642580da8a6d982abe6"
-SRC_URI[sha256sum] = "45b0a7392e7a4b2e6c7e1cb988dd660ff3f8cd465afdf796ff840a00db08389d"
+SRC_URI[md5sum] = "3f8c4661ca0f64ca30fd239f66b6a471"
+SRC_URI[sha256sum] = "2b70f169d4065b2a7ac7a676afe24636128bd2dacc9f5230346758c3b146b2be"
S = "${WORKDIR}/firmware-imx-${PV}"
diff --git a/recipes-bsp/firmware-imx/firmware-imx-8_8.5.bb b/recipes-bsp/firmware-imx/firmware-imx-8_8.10.bb
index 64fa2885..650c1cfd 100644
--- a/recipes-bsp/firmware-imx/firmware-imx-8_8.5.bb
+++ b/recipes-bsp/firmware-imx/firmware-imx-8_8.10.bb
@@ -1,4 +1,4 @@
-# Copyright 2018 NXP
+# Copyright (C) 2018-2020 NXP
SUMMARY = "Freescale i.MX firmware for 8 family"
DESCRIPTION = "Freescale i.MX firmware for 8 family"
diff --git a/recipes-bsp/firmware-imx/firmware-imx-8m_8.5.bb b/recipes-bsp/firmware-imx/firmware-imx-8m_8.10.bb
index a605d226..a48356ed 100644
--- a/recipes-bsp/firmware-imx/firmware-imx-8m_8.5.bb
+++ b/recipes-bsp/firmware-imx/firmware-imx-8m_8.10.bb
@@ -1,4 +1,4 @@
-# Copyright 2018 NXP
+# Copyright (C) 2018-2020 NXP
SUMMARY = "Freescale i.MX firmware for 8M and 8M Mini family"
DESCRIPTION = "Freescale i.MX firmware for 8M and 8M Mini family"
@@ -21,4 +21,4 @@ addtask deploy after do_install before do_build
PACKAGE_ARCH = "${MACHINE_SOCARCH}"
-COMPATIBLE_MACHINE = "(mx8m)"
+COMPATIBLE_MACHINE = "(mx8m|imx-boot-container)"
diff --git a/recipes-bsp/firmware-imx/firmware-imx_8.10.bb b/recipes-bsp/firmware-imx/firmware-imx_8.10.bb
new file mode 100644
index 00000000..8ff4a321
--- /dev/null
+++ b/recipes-bsp/firmware-imx/firmware-imx_8.10.bb
@@ -0,0 +1,129 @@
+# Copyright (C) 2012-2016 Freescale Semiconductor
+# Copyright (C) 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
+ rm -f ${D}${nonarch_base_libdir}/firmware/imx/sdma/sdma-imx6q.bin
+ rm -f ${D}${nonarch_base_libdir}/firmware/imx/sdma/sdma-imx7d.bin
+
+ # 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 -d ${D}${nonarch_base_libdir}/firmware/imx/hdmi
+ install -m 0644 ${S}/firmware/hdmi/cadence/hdmitxfw.bin ${D}${nonarch_base_libdir}/firmware/imx/hdmi
+ install -m 0644 ${S}/firmware/hdmi/cadence/hdmirxfw.bin ${D}${nonarch_base_libdir}/firmware/imx/hdmi
+ install -m 0644 ${S}/firmware/hdmi/cadence/dpfw.bin ${D}${nonarch_base_libdir}/firmware/imx/hdmi
+
+ # 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/imx/hdmi/"
+
+COMPATIBLE_MACHINE = "(imx|use-mainline-bsp)"
diff --git a/recipes-bsp/firmware-imx/firmware-imx_8.5.bb b/recipes-bsp/firmware-imx/firmware-imx_8.5.bb
deleted file mode 100644
index ff623057..00000000
--- a/recipes-bsp/firmware-imx/firmware-imx_8.5.bb
+++ /dev/null
@@ -1,76 +0,0 @@
-# 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
-
-PE = "1"
-
-SRC_URI += " \
- git://github.com/NXP/imx-firmware.git;protocol=https;branch=${SRCBRANCH};destsuffix=${S}/git \
-"
-SRCREV = "8ce9046f5058fdd2c5271f86ccfc61bc5a248ae3"
-
-inherit allarch
-
-do_install() {
- install -d ${D}${base_libdir}/firmware/imx
-
- cd firmware
- for d in *; do
- case $d in
- easrc)
- # excluding as only applies Nano SoC
- ;;
- 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 -
-
- 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
-
- 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
- rm ${D}${base_libdir}/firmware/sdma/sdma-imx6q.bin
- rm ${D}${base_libdir}/firmware/sdma/sdma-imx7d.bin
- 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/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"
-
-FILES_${PN}-epdc = "${base_libdir}/firmware/imx/epdc/"
-FILES_${PN}-scfw = "${base_libdir}/firmware/scfw/"
-FILES_${PN}-sdma = " ${base_libdir}/firmware/imx/sdma"
-
-COMPATIBLE_MACHINE = "(imx|use-mainline-bsp)"
diff --git a/recipes-bsp/firmware-imx/firmware-nxp-wifi_1.0.bb b/recipes-bsp/firmware-imx/firmware-nxp-wifi_1.0.bb
new file mode 100644
index 00000000..0f0a2af0
--- /dev/null
+++ b/recipes-bsp/firmware-imx/firmware-nxp-wifi_1.0.bb
@@ -0,0 +1,46 @@
+# Copyright 2020-2021 NXP
+
+SUMMARY = "Wi-Fi firmware redistributed by NXP"
+DESCRIPTION = "Additional Wi-Fi firmware redistributed by NXP, \
+which is not covered by linux-firmware package. Once package becomes \
+available as a part of linux-firmware - it can be dropped from this \
+recipe in favor of upstream."
+
+SECTION = "kernel"
+LICENSE = "Proprietary"
+LIC_FILES_CHKSUM = "file://cyw-wifi-bt/EULA.txt;md5=80c0478f4339af024519b3723023fe28"
+
+SRC_URI = "git://github.com/NXP/imx-firmware.git;protocol=https"
+SRCREV = "484d38224fa2c26b8859a7bf20b7c4d49100f5bc"
+
+S = "${WORKDIR}/git"
+
+inherit allarch
+
+CLEANBROKEN = "1"
+ALLOW_EMPTY_${PN} = "1"
+
+do_compile() {
+ :
+}
+
+do_install() {
+ install -d ${D}${sysconfdir}/firmware
+ install -d ${D}${nonarch_base_libdir}/firmware/brcm
+
+ # Install various flavors of Broadcom firmware provided by Murata:
+ # - bcm4359-pcie
+ install -m 0644 cyw-wifi-bt/*_CYW*/brcmfmac4359-pcie* ${D}${nonarch_base_libdir}/firmware/brcm
+ install -m 0644 cyw-wifi-bt/*_CYW*/BCM4349B1*.hcd ${D}${sysconfdir}/firmware
+}
+
+PACKAGES =+ " \
+ ${PN}-bcm4359-pcie \
+"
+
+FILES_${PN}-bcm4359-pcie = " \
+ ${nonarch_base_libdir}/firmware/brcm/brcmfmac4359-pcie.* \
+ ${sysconfdir}/firmware/BCM4349B1_*.hcd \
+"
+
+RPROVIDES_${PN}-bcm4359-pcie = "linux-firmware-bcm4359-pcie"
diff --git a/recipes-bsp/firmware-imx/firmware-sof-imx_1.5.0-3.bb b/recipes-bsp/firmware-imx/firmware-sof-imx_1.5.0-3.bb
new file mode 100644
index 00000000..22f4c25f
--- /dev/null
+++ b/recipes-bsp/firmware-imx/firmware-sof-imx_1.5.0-3.bb
@@ -0,0 +1,24 @@
+# Copyright (C) 2020 Mihai Lindner <mihai.lindner@nxp.com>
+# Released under the MIT license (see COPYING.MIT for the terms)
+
+DESCRIPTION = "Sound Open Firmware"
+HOMEPAGE = "https://www.sofproject.org"
+SECTION = "base"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENCE;md5=0f00d99239d922ffd13cabef83b33444"
+
+SRC_URI = "${FSL_MIRROR}/sof-imx-${PV}.tar.gz"
+SRC_URI[md5sum] = "4deaf1bc81238ef57be29cec3cf5f636"
+SRC_URI[sha256sum] = "14394ffcf145536569bcc20910cda7c8b58a99fdb3a04b125453146739541da9"
+
+S = "${WORKDIR}/sof-imx-${PV}"
+
+inherit allarch
+
+do_install() {
+ # Install sof and sof-tplg folder
+ install -d ${D}${nonarch_base_libdir}/firmware/imx/
+ cp -r sof* ${D}${nonarch_base_libdir}/firmware/imx/
+}
+
+FILES_${PN} = "${nonarch_base_libdir}/firmware/imx"