From bd5947f730f806366c64f63145b99b4a6ac5d8e2 Mon Sep 17 00:00:00 2001 From: Benjamin Szőke Date: Mon, 21 Oct 2024 14:22:32 +0200 Subject: firmware-imx: Upgrade to LF6.6.36_2.1.0 --- recipes-bsp/firmware-imx/firmware-ele-imx_0.1.2.bb | 43 ------ recipes-bsp/firmware-imx/firmware-ele-imx_0.1.3.bb | 39 +++++ recipes-bsp/firmware-imx/firmware-imx-8.24.inc | 17 -- recipes-bsp/firmware-imx/firmware-imx-8.25.inc | 16 ++ recipes-bsp/firmware-imx/firmware-imx_8.24.bb | 171 --------------------- recipes-bsp/firmware-imx/firmware-imx_8.25.bb | 171 +++++++++++++++++++++ .../firmware-imx/imx-boot-firmware-files_8.24.bb | 61 -------- .../firmware-imx/imx-boot-firmware-files_8.25.bb | 61 ++++++++ 8 files changed, 287 insertions(+), 292 deletions(-) delete mode 100644 recipes-bsp/firmware-imx/firmware-ele-imx_0.1.2.bb create mode 100644 recipes-bsp/firmware-imx/firmware-ele-imx_0.1.3.bb delete mode 100644 recipes-bsp/firmware-imx/firmware-imx-8.24.inc create mode 100644 recipes-bsp/firmware-imx/firmware-imx-8.25.inc delete mode 100644 recipes-bsp/firmware-imx/firmware-imx_8.24.bb create mode 100644 recipes-bsp/firmware-imx/firmware-imx_8.25.bb delete mode 100644 recipes-bsp/firmware-imx/imx-boot-firmware-files_8.24.bb create mode 100644 recipes-bsp/firmware-imx/imx-boot-firmware-files_8.25.bb diff --git a/recipes-bsp/firmware-imx/firmware-ele-imx_0.1.2.bb b/recipes-bsp/firmware-imx/firmware-ele-imx_0.1.2.bb deleted file mode 100644 index f97d21ad9..000000000 --- a/recipes-bsp/firmware-imx/firmware-ele-imx_0.1.2.bb +++ /dev/null @@ -1,43 +0,0 @@ -# Copyright 2021-2023 NXP -SUMMARY = "NXP i.MX ELE firmware" -DESCRIPTION = "EdgeLock Enclave firmware for i.MX series SoCs" -SECTION = "base" -LICENSE = "Proprietary" -LIC_FILES_CHKSUM = "file://COPYING;md5=10c0fda810c63b052409b15a5445671a" - -inherit fsl-eula-unpack use-imx-security-controller-firmware deploy - -SRC_URI = "${FSL_MIRROR}/${BP}-${IMX_SRCREV_ABBREV}.bin;fsl-eula=true" -IMX_SRCREV_ABBREV = "4ed450a" -SRC_URI[md5sum] = "1359bc7d378bddfe1d8479eba05b05ec" -SRC_URI[sha256sum] = "d858fcbb47482a898a1af5fe5f3f8be53bb21fac793b33e9bcdfd2b4dda79d3c" - -S = "${WORKDIR}/${BP}-${IMX_SRCREV_ABBREV}" - -do_compile[noexec] = "1" - -do_install() { - install -d ${D}${nonarch_base_libdir}/firmware/imx/ele - install -m 0644 ${S}/${SECO_FIRMWARE_NAME} ${D}${nonarch_base_libdir}/firmware/imx/ele - if [ -e ${S}/${SECOEXT_FIRMWARE_NAME} ]; then - install -m 0644 ${S}/${SECOEXT_FIRMWARE_NAME} ${D}${nonarch_base_libdir}/firmware/imx/ele - fi -} - -do_deploy () { - # Deploy the related firmware to be package by imx-boot - install -m 0644 ${S}/${SECO_FIRMWARE_NAME} ${DEPLOYDIR} -} -addtask deploy after do_install before do_build - -PACKAGES += "${PN}-ext" - -ALLOW_EMPTY:${PN}-ext = "1" - -FILES:${PN} += "${nonarch_base_libdir}/firmware/imx/ele/${SECO_FIRMWARE_NAME}" -FILES:${PN}-ext += "${nonarch_base_libdir}/firmware/imx/ele/${SECOEXT_FIRMWARE_NAME}" - -RREPLACES:${PN} = "firmware-sentinel" -RPROVIDES:${PN} = "firmware-sentinel" - -COMPATIBLE_MACHINE = "(mx8ulp-nxp-bsp|mx9-nxp-bsp)" diff --git a/recipes-bsp/firmware-imx/firmware-ele-imx_0.1.3.bb b/recipes-bsp/firmware-imx/firmware-ele-imx_0.1.3.bb new file mode 100644 index 000000000..38988fc9f --- /dev/null +++ b/recipes-bsp/firmware-imx/firmware-ele-imx_0.1.3.bb @@ -0,0 +1,39 @@ +# Copyright 2021-2024 NXP +SUMMARY = "NXP i.MX ELE firmware" +DESCRIPTION = "EdgeLock Secure Enclave firmware for i.MX series SoCs" +SECTION = "base" +LICENSE = "Proprietary" +LIC_FILES_CHKSUM = "file://COPYING;md5=ca53281cc0caa7e320d4945a896fb837" + +inherit fsl-eula-unpack use-imx-security-controller-firmware deploy + +SRC_URI = "${FSL_MIRROR}/${BP}-${IMX_SRCREV_ABBREV}.bin;fsl-eula=true" +IMX_SRCREV_ABBREV = "4b30ee5" +SRC_URI[sha256sum] = "fdc9f7571e6cf95e6cd7ee1abb4cb728359e2e9b7e99695d39860034c5ea0ada" + +S = "${WORKDIR}/${BP}-${IMX_SRCREV_ABBREV}" + +do_compile[noexec] = "1" + +do_install() { + install -d ${D}${nonarch_base_libdir}/firmware/imx/ele + install -m 0644 ${S}/${SECO_FIRMWARE_NAME} ${D}${nonarch_base_libdir}/firmware/imx/ele + if [ -e ${S}/${SECOEXT_FIRMWARE_NAME} ]; then + install -m 0644 ${S}/${SECOEXT_FIRMWARE_NAME} ${D}${nonarch_base_libdir}/firmware/imx/ele + fi +} + +do_deploy () { + # Deploy the related firmware to be package by imx-boot + install -m 0644 ${S}/${SECO_FIRMWARE_NAME} ${DEPLOYDIR} +} +addtask deploy after do_install before do_build + +PACKAGES += "${PN}-ext" + +ALLOW_EMPTY:${PN}-ext = "1" + +FILES:${PN} += "${nonarch_base_libdir}/firmware/imx/ele/${SECO_FIRMWARE_NAME}" +FILES:${PN}-ext += "${nonarch_base_libdir}/firmware/imx/ele/${SECOEXT_FIRMWARE_NAME}" + +COMPATIBLE_MACHINE = "(mx8ulp-nxp-bsp|mx9-nxp-bsp)" diff --git a/recipes-bsp/firmware-imx/firmware-imx-8.24.inc b/recipes-bsp/firmware-imx/firmware-imx-8.24.inc deleted file mode 100644 index 9e9d10dc6..000000000 --- a/recipes-bsp/firmware-imx/firmware-imx-8.24.inc +++ /dev/null @@ -1,17 +0,0 @@ -# Copyright (C) 2012-2016 Freescale Semiconductor -# Copyright 2017-2023 NXP -# Copyright (C) 2018 O.S. Systems Software LTDA. -SECTION = "base" -LICENSE = "Proprietary" -LIC_FILES_CHKSUM = "file://COPYING;md5=10c0fda810c63b052409b15a5445671a" - -# Note: This .inc file is used from differently named recipes, so the package -# name must be hard-coded, i.e., ${BPN} cannot be used. -SRC_URI = "${FSL_MIRROR}/firmware-imx-${PV}-${IMX_SRCREV_ABBREV}.bin;fsl-eula=true" -IMX_SRCREV_ABBREV = "fbe0a4c" -SRC_URI[md5sum] = "440b125e897614d77fac663d90bcffc8" -SRC_URI[sha256sum] = "2e27962332197ebebbb30138f6dfb365361d48d7efa565df97c4f79285b1ca50" - -S = "${WORKDIR}/firmware-imx-${PV}-${IMX_SRCREV_ABBREV}" - -inherit fsl-eula-unpack diff --git a/recipes-bsp/firmware-imx/firmware-imx-8.25.inc b/recipes-bsp/firmware-imx/firmware-imx-8.25.inc new file mode 100644 index 000000000..532f4340c --- /dev/null +++ b/recipes-bsp/firmware-imx/firmware-imx-8.25.inc @@ -0,0 +1,16 @@ +# Copyright (C) 2012-2016 Freescale Semiconductor +# Copyright 2017-2024 NXP +# Copyright (C) 2018 O.S. Systems Software LTDA. +SECTION = "base" +LICENSE = "Proprietary" +LIC_FILES_CHKSUM = "file://COPYING;md5=ca53281cc0caa7e320d4945a896fb837" + +# Note: This .inc file is used from differently named recipes, so the package +# name must be hard-coded, i.e., ${BPN} cannot be used. +SRC_URI = "${FSL_MIRROR}/firmware-imx-${PV}-${IMX_SRCREV_ABBREV}.bin;fsl-eula=true" +IMX_SRCREV_ABBREV = "27879f8" +SRC_URI[sha256sum] = "55766dad38961fde3ed3224ee6a46ab1c5aea62a5b947530228d8fbc4a7d2816" + +S = "${WORKDIR}/firmware-imx-${PV}-${IMX_SRCREV_ABBREV}" + +inherit fsl-eula-unpack diff --git a/recipes-bsp/firmware-imx/firmware-imx_8.24.bb b/recipes-bsp/firmware-imx/firmware-imx_8.24.bb deleted file mode 100644 index 489174d01..000000000 --- a/recipes-bsp/firmware-imx/firmware-imx_8.24.bb +++ /dev/null @@ -1,171 +0,0 @@ -# Copyright (C) 2012-2016 Freescale Semiconductor -# Copyright 2017-2021,2023 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 ${BP}.inc - -PE = "1" - -inherit allarch - -IMX_USE_LINUX_FIRMWARE_SDMA ?= "1" - -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 - # Define IMX_USE_LINUX_FIRMWARE_SDMA = "0" in layer.conf, machine.conf, local.conf - # or in .bbappend to use sdma-imx6q/7d.bin from here and not linux-firmware - if [ ${IMX_USE_LINUX_FIRMWARE_SDMA} -gt 0 ] - then - rm -f ${D}${nonarch_base_libdir}/firmware/imx/sdma/sdma-imx6q.bin - rm -f ${D}${nonarch_base_libdir}/firmware/imx/sdma/sdma-imx7d.bin - fi - - # 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 - # Update i.MX8 vpu firmware path to align with kernel6.5+ - install -d ${D}${nonarch_base_libdir}/firmware/amphion/vpu/ - mv ${D}${nonarch_base_libdir}/firmware/vpu/vpu_fw_imx8* ${D}${nonarch_base_libdir}/firmware/amphion/vpu/ - # Install i.MX 95 VPU firmware - install -m 0644 ${S}/firmware/vpu/wave633c_codec_fw.bin ${D}${nonarch_base_libdir}/firmware -} - -# -# 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() { - # CODA driver tries to locate VPU firmwares directly in ${nonarch_base_libdir}/firmware, to - # avoid fallback loading which is usually 40-60 seconds later after system boots up, let's - # create symbolic links in ${nonarch_base_libdir}/firmware for VPU firmwares. - def coda_vpu_links(file, pkg, pattern, format, basename): - # Only CODA VPU firmwares need this procedure - if 'imx8' in basename: - return - - dir = os.path.dirname(file) - dir = os.path.abspath(os.path.join(dir, os.pardir)) - cwd = os.getcwd() - - os.chdir(dir) - - name = os.path.basename(file) - os.symlink(os.path.join("vpu", name), name) - - oldfiles = d.getVar('FILES:' + pkg) - newfile = os.path.join(d.getVar('nonarch_base_libdir'), "firmware", name) - d.setVar('FILES:' + pkg, oldfiles + " " + newfile) - - os.chdir(cwd) - - - 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]', - hook=coda_vpu_links, - 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 ${PN}-vpu-amphion ${PN}-vpu-wave" - -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 \ -" -FILES:${PN}-vpu-amphion = "${nonarch_base_libdir}/firmware/amphion/vpu/*" -FILES:${PN}-vpu-wave = "${nonarch_base_libdir}/firmware/wave633c_codec_fw.bin" - -COMPATIBLE_MACHINE = "(imx-generic-bsp)" diff --git a/recipes-bsp/firmware-imx/firmware-imx_8.25.bb b/recipes-bsp/firmware-imx/firmware-imx_8.25.bb new file mode 100644 index 000000000..a4e17c990 --- /dev/null +++ b/recipes-bsp/firmware-imx/firmware-imx_8.25.bb @@ -0,0 +1,171 @@ +# Copyright (C) 2012-2016 Freescale Semiconductor +# Copyright 2017-2021,2024 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 ${BP}.inc + +PE = "1" + +inherit allarch + +IMX_USE_LINUX_FIRMWARE_SDMA ?= "1" + +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 + # Define IMX_USE_LINUX_FIRMWARE_SDMA = "0" in layer.conf, machine.conf, local.conf + # or in .bbappend to use sdma-imx6q/7d.bin from here and not linux-firmware + if [ ${IMX_USE_LINUX_FIRMWARE_SDMA} -gt 0 ] + then + rm -f ${D}${nonarch_base_libdir}/firmware/imx/sdma/sdma-imx6q.bin + rm -f ${D}${nonarch_base_libdir}/firmware/imx/sdma/sdma-imx7d.bin + fi + + # 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 + # Update i.MX8 vpu firmware path to align with kernel6.5+ + install -d ${D}${nonarch_base_libdir}/firmware/amphion/vpu/ + mv ${D}${nonarch_base_libdir}/firmware/vpu/vpu_fw_imx8* ${D}${nonarch_base_libdir}/firmware/amphion/vpu/ + # Install i.MX 95 VPU firmware + install -m 0644 ${S}/firmware/vpu/wave633c_codec_fw.bin ${D}${nonarch_base_libdir}/firmware +} + +# +# 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() { + # CODA driver tries to locate VPU firmwares directly in ${nonarch_base_libdir}/firmware, to + # avoid fallback loading which is usually 40-60 seconds later after system boots up, let's + # create symbolic links in ${nonarch_base_libdir}/firmware for VPU firmwares. + def coda_vpu_links(file, pkg, pattern, format, basename): + # Only CODA VPU firmwares need this procedure + if 'imx8' in basename: + return + + dir = os.path.dirname(file) + dir = os.path.abspath(os.path.join(dir, os.pardir)) + cwd = os.getcwd() + + os.chdir(dir) + + name = os.path.basename(file) + os.symlink(os.path.join("vpu", name), name) + + oldfiles = d.getVar('FILES:' + pkg) + newfile = os.path.join(d.getVar('nonarch_base_libdir'), "firmware", name) + d.setVar('FILES:' + pkg, oldfiles + " " + newfile) + + os.chdir(cwd) + + + 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]', + hook=coda_vpu_links, + 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 ${PN}-vpu-amphion ${PN}-vpu-wave" + +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 \ +" +FILES:${PN}-vpu-amphion = "${nonarch_base_libdir}/firmware/amphion/vpu/*" +FILES:${PN}-vpu-wave = "${nonarch_base_libdir}/firmware/wave633c_codec_fw.bin" + +COMPATIBLE_MACHINE = "(imx-generic-bsp)" diff --git a/recipes-bsp/firmware-imx/imx-boot-firmware-files_8.24.bb b/recipes-bsp/firmware-imx/imx-boot-firmware-files_8.24.bb deleted file mode 100644 index 246198596..000000000 --- a/recipes-bsp/firmware-imx/imx-boot-firmware-files_8.24.bb +++ /dev/null @@ -1,61 +0,0 @@ -# Copyright (C) 2018-2023 NXP -SUMMARY = "Freescale i.MX Firmware files used for boot" - -require firmware-imx-${PV}.inc - -inherit deploy nopackages - -do_install[noexec] = "1" - -DEPLOY_FOR = "" -DEPLOY_FOR:mx8-generic-bsp = "mx8" -DEPLOY_FOR:mx8m-generic-bsp = "mx8m" -DEPLOY_FOR:mx9-generic-bsp = "mx9" - -deploy_for_mx8() { - # 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} -} - -deploy_for_mx8m() { - # 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} -} - - -deploy_for_mx9() { - # Synopsys DDR - for ddr_firmware in ${DDR_FIRMWARE_NAME}; do - install -m 0644 ${S}/firmware/ddr/synopsys/${ddr_firmware} ${DEPLOYDIR} - done -} - -python () { - # Manually add the required functions as dependencies otherwise they won't be included in the - # final run script. - deploy_for = d.getVar('DEPLOY_FOR', True).split() - for soc in deploy_for: - d.appendVarFlag('do_deploy', 'vardeps', ' deploy_for_%s' % soc) -} - -do_deploy () { - for soc in ${DEPLOY_FOR}; do - bbnote "Running deploy for $soc" - deploy_for_$soc - done -} - -addtask deploy after do_install before do_build - -PACKAGE_ARCH = "${MACHINE_SOCARCH}" - -COMPATIBLE_MACHINE = "(mx8-generic-bsp|mx9-generic-bsp)" -COMPATIBLE_MACHINE:mx8x-generic-bsp = "(^$)" diff --git a/recipes-bsp/firmware-imx/imx-boot-firmware-files_8.25.bb b/recipes-bsp/firmware-imx/imx-boot-firmware-files_8.25.bb new file mode 100644 index 000000000..c35e31e07 --- /dev/null +++ b/recipes-bsp/firmware-imx/imx-boot-firmware-files_8.25.bb @@ -0,0 +1,61 @@ +# Copyright (C) 2018-2024 NXP +SUMMARY = "Freescale i.MX Firmware files used for boot" + +require firmware-imx-${PV}.inc + +inherit deploy nopackages + +do_install[noexec] = "1" + +DEPLOY_FOR = "" +DEPLOY_FOR:mx8-generic-bsp = "mx8" +DEPLOY_FOR:mx8m-generic-bsp = "mx8m" +DEPLOY_FOR:mx9-generic-bsp = "mx9" + +deploy_for_mx8() { + # 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} +} + +deploy_for_mx8m() { + # 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} +} + + +deploy_for_mx9() { + # Synopsys DDR + for ddr_firmware in ${DDR_FIRMWARE_NAME}; do + install -m 0644 ${S}/firmware/ddr/synopsys/${ddr_firmware} ${DEPLOYDIR} + done +} + +python () { + # Manually add the required functions as dependencies otherwise they won't be included in the + # final run script. + deploy_for = d.getVar('DEPLOY_FOR', True).split() + for soc in deploy_for: + d.appendVarFlag('do_deploy', 'vardeps', ' deploy_for_%s' % soc) +} + +do_deploy () { + for soc in ${DEPLOY_FOR}; do + bbnote "Running deploy for $soc" + deploy_for_$soc + done +} + +addtask deploy after do_install before do_build + +PACKAGE_ARCH = "${MACHINE_SOCARCH}" + +COMPATIBLE_MACHINE = "(mx8-generic-bsp|mx9-generic-bsp)" +COMPATIBLE_MACHINE:mx8x-generic-bsp = "(^$)" -- cgit v1.2.3-54-g00ecf From 9e09c96405204c9e38054b1bd91219af5366c584 Mon Sep 17 00:00:00 2001 From: Benjamin Szőke Date: Mon, 21 Oct 2024 14:34:08 +0200 Subject: EULA: Update to v57 --- EULA | 8 +++++++- classes/fsl-eula-unpack.bbclass | 4 +++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/EULA b/EULA index c0273f8eb..ac7337fa1 100644 --- a/EULA +++ b/EULA @@ -1,4 +1,4 @@ -LA_OPT_NXP_Software_License v56 April 2024 +LA_OPT_NXP_Software_License v57 July 2024 IMPORTANT. Read the following NXP Software License Agreement ("Agreement") completely. By selecting the "I Accept" button at the end of this page, or by downloading, installing, or using the Licensed Software, you indicate that you @@ -767,3 +767,9 @@ upon notice. Vivante: Distribution of Vivante software must be a part of, or embedded within, Authorized Systems that include a Vivante Graphics Processing Unit. + +Wittenstein: Your use of the SafeRTOS v9.x and Networking Stack, in object +form, is limited to your internal testing, evaluation, feedback and development +specifically for use with an NXP Product. Licensee’s license to use and +supply the software to you expires on June 25, 2026. Further rights must be +obtained directly from Wittenstein. diff --git a/classes/fsl-eula-unpack.bbclass b/classes/fsl-eula-unpack.bbclass index 86338259a..c170d2e08 100644 --- a/classes/fsl-eula-unpack.bbclass +++ b/classes/fsl-eula-unpack.bbclass @@ -60,6 +60,7 @@ FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V48 = "db4762b09b6bda63da103963 FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V49 = "2827219e81f28aba7c6a569f7c437fa7" FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V53 = "44a8052c384584ba09077e85a3d1654f" FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V56 = "10c0fda810c63b052409b15a5445671a" +FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V57 = "ca53281cc0caa7e320d4945a896fb837" FSL_EULA_FILE_MD5SUMS = " \ ${FSL_EULA_FILE_MD5SUM_LA_OPT_BASE_LICENSE_V8} \ @@ -116,11 +117,12 @@ FSL_EULA_FILE_MD5SUMS = " \ ${FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V49} \ ${FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V53} \ ${FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V56} \ + ${FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V57} \ " # The checksum for the EULA in the layer FSL_EULA_FILE_MD5SUM ?= \ - "${FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V56}" + "${FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V57}" LIC_FILES_CHKSUM_LAYER ?= "file://${FSL_EULA_FILE};md5=${FSL_EULA_FILE_MD5SUM}" LIC_FILES_CHKSUM_LAYER[vardepsexclude] += "FSL_EULA_FILE" -- cgit v1.2.3-54-g00ecf From ae95f06ffd72ef270c368e086e5c78bda6007c3a Mon Sep 17 00:00:00 2001 From: Benjamin Szőke Date: Mon, 21 Oct 2024 19:16:04 +0200 Subject: firmware-ele-imx: Fix code formatting --- recipes-bsp/firmware-imx/firmware-ele-imx_0.1.3.bb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes-bsp/firmware-imx/firmware-ele-imx_0.1.3.bb b/recipes-bsp/firmware-imx/firmware-ele-imx_0.1.3.bb index 38988fc9f..a6c224284 100644 --- a/recipes-bsp/firmware-imx/firmware-ele-imx_0.1.3.bb +++ b/recipes-bsp/firmware-imx/firmware-ele-imx_0.1.3.bb @@ -16,8 +16,8 @@ S = "${WORKDIR}/${BP}-${IMX_SRCREV_ABBREV}" do_compile[noexec] = "1" do_install() { - install -d ${D}${nonarch_base_libdir}/firmware/imx/ele - install -m 0644 ${S}/${SECO_FIRMWARE_NAME} ${D}${nonarch_base_libdir}/firmware/imx/ele + install -d ${D}${nonarch_base_libdir}/firmware/imx/ele + install -m 0644 ${S}/${SECO_FIRMWARE_NAME} ${D}${nonarch_base_libdir}/firmware/imx/ele if [ -e ${S}/${SECOEXT_FIRMWARE_NAME} ]; then install -m 0644 ${S}/${SECOEXT_FIRMWARE_NAME} ${D}${nonarch_base_libdir}/firmware/imx/ele fi -- cgit v1.2.3-54-g00ecf From 7efb7980ddd92f33effa3e21a5470624c890623b Mon Sep 17 00:00:00 2001 From: Benjamin Szőke Date: Mon, 21 Oct 2024 21:22:31 +0200 Subject: firmware-ele-imx: Rename firmware-sentinel to firmware-ele-imx --- recipes-bsp/firmware-imx/firmware-ele-imx_0.1.3.bb | 3 +++ 1 file changed, 3 insertions(+) diff --git a/recipes-bsp/firmware-imx/firmware-ele-imx_0.1.3.bb b/recipes-bsp/firmware-imx/firmware-ele-imx_0.1.3.bb index a6c224284..ea79fed35 100644 --- a/recipes-bsp/firmware-imx/firmware-ele-imx_0.1.3.bb +++ b/recipes-bsp/firmware-imx/firmware-ele-imx_0.1.3.bb @@ -36,4 +36,7 @@ ALLOW_EMPTY:${PN}-ext = "1" FILES:${PN} += "${nonarch_base_libdir}/firmware/imx/ele/${SECO_FIRMWARE_NAME}" FILES:${PN}-ext += "${nonarch_base_libdir}/firmware/imx/ele/${SECOEXT_FIRMWARE_NAME}" +RREPLACES:${PN} = "firmware-sentinel" +RPROVIDES:${PN} = "firmware-sentinel" + COMPATIBLE_MACHINE = "(mx8ulp-nxp-bsp|mx9-nxp-bsp)" -- cgit v1.2.3-54-g00ecf