diff options
| -rw-r--r-- | conf/machine/include/imx-base.inc | 4 | ||||
| -rw-r--r-- | recipes-bsp/firmware-imx/firmware-imx-8.8.inc (renamed from recipes-bsp/firmware-imx/firmware-imx-8.5.inc) | 9 | ||||
| -rw-r--r-- | recipes-bsp/firmware-imx/firmware-imx-8_8.8.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.8.bb (renamed from recipes-bsp/firmware-imx/firmware-imx-8m_8.5.bb) | 2 | ||||
| -rw-r--r-- | recipes-bsp/firmware-imx/firmware-imx_8.5.bb | 76 | ||||
| -rw-r--r-- | recipes-bsp/firmware-imx/firmware-imx_8.8.bb | 132 |
6 files changed, 140 insertions, 85 deletions
diff --git a/conf/machine/include/imx-base.inc b/conf/machine/include/imx-base.inc index b64596b4a..80392f38e 100644 --- a/conf/machine/include/imx-base.inc +++ b/conf/machine/include/imx-base.inc | |||
| @@ -217,6 +217,7 @@ SIGGEN_EXCLUDE_SAFE_RECIPE_DEPS_append = " \ | |||
| 217 | # Firmware | 217 | # Firmware |
| 218 | MACHINE_FIRMWARE ?= "" | 218 | MACHINE_FIRMWARE ?= "" |
| 219 | MACHINE_FIRMWARE_append_mx25 = " firmware-imx-sdma-imx25" | 219 | MACHINE_FIRMWARE_append_mx25 = " firmware-imx-sdma-imx25" |
| 220 | MACHINE_FIRMWARE_append_mx27 = " firmware-imx-vpu-imx27" | ||
| 220 | MACHINE_FIRMWARE_append_mx7d = " linux-firmware-imx-sdma-imx7d firmware-imx-epdc" | 221 | MACHINE_FIRMWARE_append_mx7d = " linux-firmware-imx-sdma-imx7d firmware-imx-epdc" |
| 221 | MACHINE_FIRMWARE_append_mx6 = " linux-firmware-imx-sdma-imx6q" | 222 | MACHINE_FIRMWARE_append_mx6 = " linux-firmware-imx-sdma-imx6q" |
| 222 | MACHINE_FIRMWARE_append_mx6q = " firmware-imx-vpu-imx6q" | 223 | MACHINE_FIRMWARE_append_mx6q = " firmware-imx-vpu-imx6q" |
| @@ -226,11 +227,10 @@ MACHINE_FIRMWARE_append_mx6sll = " firmware-imx-epdc" | |||
| 226 | MACHINE_FIRMWARE_append_mx6ull = " firmware-imx-epdc" | 227 | MACHINE_FIRMWARE_append_mx6ull = " firmware-imx-epdc" |
| 227 | MACHINE_FIRMWARE_append_mx53 = " firmware-imx-vpu-imx53 firmware-imx-sdma-imx53" | 228 | MACHINE_FIRMWARE_append_mx53 = " firmware-imx-vpu-imx53 firmware-imx-sdma-imx53" |
| 228 | MACHINE_FIRMWARE_append_mx51 = " firmware-imx-vpu-imx51 firmware-imx-sdma-imx51" | 229 | MACHINE_FIRMWARE_append_mx51 = " firmware-imx-vpu-imx51 firmware-imx-sdma-imx51" |
| 229 | MACHINE_FIRMWARE_append_mx8qxp = " firmware-imx-vpu-imx8qxp" | ||
| 230 | MACHINE_FIRMWARE_append_use-mainline-bsp = " linux-firmware-imx-sdma-imx6q linux-firmware-imx-sdma-imx7d firmware-imx-vpu-imx6q firmware-imx-vpu-imx6d" | 230 | MACHINE_FIRMWARE_append_use-mainline-bsp = " linux-firmware-imx-sdma-imx6q linux-firmware-imx-sdma-imx7d firmware-imx-vpu-imx6q firmware-imx-vpu-imx6d" |
| 231 | 231 | ||
| 232 | # FIXME: Needs addition of firmware-imx of official BSPs | 232 | # FIXME: Needs addition of firmware-imx of official BSPs |
| 233 | #MACHINE_FIRMWARE_append_mx27 = " firmware-imx-vpu-imx27" | 233 | #MACHINE_FIRMWARE_append_mx8qxp = " firmware-imx-vpu-imx8qxp" |
| 234 | 234 | ||
| 235 | MACHINE_EXTRA_RRECOMMENDS += "${MACHINE_FIRMWARE}" | 235 | MACHINE_EXTRA_RRECOMMENDS += "${MACHINE_FIRMWARE}" |
| 236 | 236 | ||
diff --git a/recipes-bsp/firmware-imx/firmware-imx-8.5.inc b/recipes-bsp/firmware-imx/firmware-imx-8.8.inc index ae6b1d78f..a2ba7f585 100644 --- a/recipes-bsp/firmware-imx/firmware-imx-8.5.inc +++ b/recipes-bsp/firmware-imx/firmware-imx-8.8.inc | |||
| @@ -1,17 +1,16 @@ | |||
| 1 | # Copyright (C) 2012-2016 Freescale Semiconductor | 1 | # Copyright (C) 2012-2016 Freescale Semiconductor |
| 2 | # Copyright 2017-2019 NXP | 2 | # Copyright (C) 2017-2020 NXP |
| 3 | # Copyright (C) 2018 O.S. Systems Software LTDA. | 3 | # Copyright (C) 2018 O.S. Systems Software LTDA. |
| 4 | SECTION = "base" | 4 | SECTION = "base" |
| 5 | LICENSE = "Proprietary" | 5 | LICENSE = "Proprietary" |
| 6 | LIC_FILES_CHKSUM = "file://COPYING;md5=6c12031a11b81db21cdfe0be88cac4b3" | 6 | LIC_FILES_CHKSUM = "file://COPYING;md5=228c72f2a91452b8a03c4cab30f30ef9" |
| 7 | 7 | ||
| 8 | SRCBRANCH ?= "master" | ||
| 9 | SRC_URI = " \ | 8 | SRC_URI = " \ |
| 10 | ${FSL_MIRROR}/firmware-imx-${PV}.bin;fsl-eula=true \ | 9 | ${FSL_MIRROR}/firmware-imx-${PV}.bin;fsl-eula=true \ |
| 11 | " | 10 | " |
| 12 | 11 | ||
| 13 | SRC_URI[md5sum] = "a6b926d087e1e642580da8a6d982abe6" | 12 | SRC_URI[md5sum] = "eabb27d28bba375a9f14d6306c07af5f" |
| 14 | SRC_URI[sha256sum] = "45b0a7392e7a4b2e6c7e1cb988dd660ff3f8cd465afdf796ff840a00db08389d" | 13 | SRC_URI[sha256sum] = "5ca1f8b6e6b191594d17ac7b51c38cdbc2ff808d15568ab4b0bbeb5dc6c621f6" |
| 15 | 14 | ||
| 16 | S = "${WORKDIR}/firmware-imx-${PV}" | 15 | S = "${WORKDIR}/firmware-imx-${PV}" |
| 17 | 16 | ||
diff --git a/recipes-bsp/firmware-imx/firmware-imx-8_8.5.bb b/recipes-bsp/firmware-imx/firmware-imx-8_8.8.bb index 64fa2885b..650c1cfde 100644 --- a/recipes-bsp/firmware-imx/firmware-imx-8_8.5.bb +++ b/recipes-bsp/firmware-imx/firmware-imx-8_8.8.bb | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | # Copyright 2018 NXP | 1 | # Copyright (C) 2018-2020 NXP |
| 2 | SUMMARY = "Freescale i.MX firmware for 8 family" | 2 | SUMMARY = "Freescale i.MX firmware for 8 family" |
| 3 | DESCRIPTION = "Freescale i.MX firmware for 8 family" | 3 | DESCRIPTION = "Freescale i.MX firmware for 8 family" |
| 4 | 4 | ||
diff --git a/recipes-bsp/firmware-imx/firmware-imx-8m_8.5.bb b/recipes-bsp/firmware-imx/firmware-imx-8m_8.8.bb index a605d2262..44e9ff4a5 100644 --- a/recipes-bsp/firmware-imx/firmware-imx-8m_8.5.bb +++ b/recipes-bsp/firmware-imx/firmware-imx-8m_8.8.bb | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | # Copyright 2018 NXP | 1 | # Copyright (C) 2018-2020 NXP |
| 2 | SUMMARY = "Freescale i.MX firmware for 8M and 8M Mini family" | 2 | SUMMARY = "Freescale i.MX firmware for 8M and 8M Mini family" |
| 3 | DESCRIPTION = "Freescale i.MX firmware for 8M and 8M Mini family" | 3 | DESCRIPTION = "Freescale i.MX firmware for 8M and 8M Mini family" |
| 4 | 4 | ||
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 ff623057e..000000000 --- a/recipes-bsp/firmware-imx/firmware-imx_8.5.bb +++ /dev/null | |||
| @@ -1,76 +0,0 @@ | |||
| 1 | # Copyright (C) 2012-2016 Freescale Semiconductor | ||
| 2 | # Copyright 2017-2019 NXP | ||
| 3 | # Copyright (C) 2018 O.S. Systems Software LTDA. | ||
| 4 | SUMMARY = "Freescale i.MX firmware" | ||
| 5 | DESCRIPTION = "Freescale i.MX firmware such as for the VPU" | ||
| 6 | |||
| 7 | require firmware-imx-${PV}.inc | ||
| 8 | |||
| 9 | PE = "1" | ||
| 10 | |||
| 11 | SRC_URI += " \ | ||
| 12 | git://github.com/NXP/imx-firmware.git;protocol=https;branch=${SRCBRANCH};destsuffix=${S}/git \ | ||
| 13 | " | ||
| 14 | SRCREV = "8ce9046f5058fdd2c5271f86ccfc61bc5a248ae3" | ||
| 15 | |||
| 16 | inherit allarch | ||
| 17 | |||
| 18 | do_install() { | ||
| 19 | install -d ${D}${base_libdir}/firmware/imx | ||
| 20 | |||
| 21 | cd firmware | ||
| 22 | for d in *; do | ||
| 23 | case $d in | ||
| 24 | easrc) | ||
| 25 | # excluding as only applies Nano SoC | ||
| 26 | ;; | ||
| 27 | ddr|hdmi|seco) | ||
| 28 | # These folders are for i.MX 8 and are included in the boot image via imx-boot | ||
| 29 | bbnote Excluding folder $d | ||
| 30 | ;; | ||
| 31 | *) | ||
| 32 | cp -rfv $d ${D}${base_libdir}/firmware | ||
| 33 | ;; | ||
| 34 | esac | ||
| 35 | done | ||
| 36 | cd - | ||
| 37 | |||
| 38 | mv ${D}${base_libdir}/firmware/epdc/ ${D}${base_libdir}/firmware/imx/epdc/ | ||
| 39 | mv ${D}${base_libdir}/firmware/imx/epdc/epdc_ED060XH2C1.fw.nonrestricted ${D}${base_libdir}/firmware/imx/epdc/epdc_ED060XH2C1.fw | ||
| 40 | |||
| 41 | find ${D}${base_libdir}/firmware -type f -exec chmod 644 '{}' ';' | ||
| 42 | find ${D}${base_libdir}/firmware -type f -exec chown root:root '{}' ';' | ||
| 43 | |||
| 44 | # Remove files not going to be installed | ||
| 45 | rm ${D}${base_libdir}/firmware/sdma/sdma-imx6q.bin | ||
| 46 | rm ${D}${base_libdir}/firmware/sdma/sdma-imx7d.bin | ||
| 47 | find ${D}${base_libdir}/firmware/ -name '*.mk' -exec rm '{}' ';' | ||
| 48 | } | ||
| 49 | |||
| 50 | python populate_packages_prepend() { | ||
| 51 | vpudir = bb.data.expand('${base_libdir}/firmware/vpu', d) | ||
| 52 | do_split_packages(d, vpudir, '^vpu_fw_([^_]*).*\.bin', | ||
| 53 | output_pattern='firmware-imx-vpu-%s', | ||
| 54 | description='Freescale IMX Firmware %s', | ||
| 55 | extra_depends='', | ||
| 56 | prepend=True) | ||
| 57 | |||
| 58 | sdmadir = bb.data.expand('${base_libdir}/firmware/sdma', d) | ||
| 59 | do_split_packages(d, sdmadir, '^sdma-([^-]*).*\.bin', | ||
| 60 | output_pattern='firmware-imx-sdma-%s', | ||
| 61 | description='Freescale IMX Firmware %s', | ||
| 62 | extra_depends='', | ||
| 63 | prepend=True) | ||
| 64 | } | ||
| 65 | |||
| 66 | ALLOW_EMPTY_${PN} = "1" | ||
| 67 | |||
| 68 | PACKAGES_DYNAMIC = "${PN}-vpu-* ${PN}-sdma-*" | ||
| 69 | |||
| 70 | PACKAGES =+ "${PN}-epdc ${PN}-scfw ${PN}-sdma" | ||
| 71 | |||
| 72 | FILES_${PN}-epdc = "${base_libdir}/firmware/imx/epdc/" | ||
| 73 | FILES_${PN}-scfw = "${base_libdir}/firmware/scfw/" | ||
| 74 | FILES_${PN}-sdma = " ${base_libdir}/firmware/imx/sdma" | ||
| 75 | |||
| 76 | COMPATIBLE_MACHINE = "(imx|use-mainline-bsp)" | ||
diff --git a/recipes-bsp/firmware-imx/firmware-imx_8.8.bb b/recipes-bsp/firmware-imx/firmware-imx_8.8.bb new file mode 100644 index 000000000..aff22ba6e --- /dev/null +++ b/recipes-bsp/firmware-imx/firmware-imx_8.8.bb | |||
| @@ -0,0 +1,132 @@ | |||
| 1 | # Copyright (C) 2012-2016 Freescale Semiconductor | ||
| 2 | # Copyright (C) 2017-2020 NXP | ||
| 3 | # Copyright (C) 2018 O.S. Systems Software LTDA. | ||
| 4 | SUMMARY = "Freescale i.MX firmware" | ||
| 5 | DESCRIPTION = "Freescale i.MX firmware such as for the VPU" | ||
| 6 | |||
| 7 | require firmware-imx-${PV}.inc | ||
| 8 | |||
| 9 | PE = "1" | ||
| 10 | |||
| 11 | inherit allarch | ||
| 12 | |||
| 13 | do_install() { | ||
| 14 | install -d ${D}${nonarch_base_libdir}/firmware/imx | ||
| 15 | |||
| 16 | # SDMA Firmware section | ||
| 17 | install -d ${D}${nonarch_base_libdir}/firmware/imx/sdma | ||
| 18 | install -m 0644 ${S}/firmware/sdma/* ${D}${nonarch_base_libdir}/firmware/imx/sdma | ||
| 19 | |||
| 20 | # EASRC Firmware section | ||
| 21 | install -d ${D}${nonarch_base_libdir}/firmware/imx/easrc | ||
| 22 | install -m 0644 ${S}/firmware/easrc/* ${D}${nonarch_base_libdir}/firmware/imx/easrc/ | ||
| 23 | |||
| 24 | # XCVR Firmware section | ||
| 25 | install -d ${D}${nonarch_base_libdir}/firmware/imx/xcvr | ||
| 26 | install -m 0644 ${S}/firmware/xcvr/* ${D}${nonarch_base_libdir}/firmware/imx/xcvr/ | ||
| 27 | |||
| 28 | # XUVI Firmware section | ||
| 29 | install -d ${D}${nonarch_base_libdir}/firmware/imx/xuvi | ||
| 30 | install -m 0644 ${S}/firmware/xuvi/* ${D}${nonarch_base_libdir}/firmware/imx/xuvi/ | ||
| 31 | |||
| 32 | # EPDC Firmware section | ||
| 33 | # NOTE: | ||
| 34 | # epdc_ED060XH2C1.fw file has .nonrestricted suffix in the source archive, hence it should | ||
| 35 | # be installed with a different name | ||
| 36 | install -d ${D}${nonarch_base_libdir}/firmware/imx/epdc | ||
| 37 | install -m 0644 ${S}/firmware/epdc/*.fw ${D}${nonarch_base_libdir}/firmware/imx/epdc/ | ||
| 38 | install -m 0644 ${S}/firmware/epdc/epdc_ED060XH2C1.fw.nonrestricted ${D}${nonarch_base_libdir}/firmware/imx/epdc/epdc_ED060XH2C1.fw | ||
| 39 | |||
| 40 | # HDMI Firmware section | ||
| 41 | # NOTE: | ||
| 42 | # Only install pre-defined list of firmware files, since the source archive contains | ||
| 43 | # also HDMI binary files for imx8m derivatives, which are taken care of by another recipe | ||
| 44 | install -d ${D}${nonarch_base_libdir}/firmware/imx/hdmi | ||
| 45 | install -m 0644 ${S}/firmware/hdmi/cadence/hdmitxfw.bin ${D}${nonarch_base_libdir}/firmware/imx/hdmi | ||
| 46 | install -m 0644 ${S}/firmware/hdmi/cadence/hdmirxfw.bin ${D}${nonarch_base_libdir}/firmware/imx/hdmi | ||
| 47 | install -m 0644 ${S}/firmware/hdmi/cadence/dpfw.bin ${D}${nonarch_base_libdir}/firmware/imx/hdmi | ||
| 48 | |||
| 49 | # VPU Firmware section | ||
| 50 | # NOTE: | ||
| 51 | # Do the same thing as above for HDMI - only install a pre-defined list of firmware files, | ||
| 52 | # as some of other files are provided by packages from other recipes. | ||
| 53 | install -d ${D}${nonarch_base_libdir}/firmware/imx/vpu | ||
| 54 | install -m 0644 ${S}/firmware/vpu/vpu_fw_imx27_TO1.bin ${D}${nonarch_base_libdir}/firmware/imx/vpu | ||
| 55 | install -m 0644 ${S}/firmware/vpu/vpu_fw_imx27_TO2.bin ${D}${nonarch_base_libdir}/firmware/imx/vpu | ||
| 56 | install -m 0644 ${S}/firmware/vpu/vpu_fw_imx51.bin ${D}${nonarch_base_libdir}/firmware/imx/vpu | ||
| 57 | install -m 0644 ${S}/firmware/vpu/vpu_fw_imx53.bin ${D}${nonarch_base_libdir}/firmware/imx/vpu | ||
| 58 | install -m 0644 ${S}/firmware/vpu/vpu_fw_imx6d.bin ${D}${nonarch_base_libdir}/firmware/imx/vpu | ||
| 59 | install -m 0644 ${S}/firmware/vpu/vpu_fw_imx6q.bin ${D}${nonarch_base_libdir}/firmware/imx/vpu | ||
| 60 | } | ||
| 61 | |||
| 62 | # | ||
| 63 | # This prepend is here to produce separate packages containing firmware, | ||
| 64 | # which could be included separately based on the machine definition. | ||
| 65 | # | ||
| 66 | # It operates similar to the FILES mechanism by travesing through | ||
| 67 | # ${D} + folder supplied as a first parameter, matches the regexp supplied | ||
| 68 | # as second one, and for every file match - it creates a separate package, | ||
| 69 | # which contains only files that matches the pattern. | ||
| 70 | # | ||
| 71 | python populate_packages_prepend() { | ||
| 72 | easrcdir = bb.data.expand('${nonarch_base_libdir}/firmware/imx/easrc', d) | ||
| 73 | do_split_packages(d, easrcdir, '^easrc-([^_]*).*\.bin', | ||
| 74 | output_pattern='firmware-imx-easrc-%s', | ||
| 75 | description='Freescale IMX EASRC Firmware [%s]', | ||
| 76 | extra_depends='', | ||
| 77 | prepend=True) | ||
| 78 | |||
| 79 | vpudir = bb.data.expand('${nonarch_base_libdir}/firmware/imx/vpu', d) | ||
| 80 | do_split_packages(d, vpudir, '^vpu_fw_([^_]*).*\.bin', | ||
| 81 | output_pattern='firmware-imx-vpu-%s', | ||
| 82 | description='Freescale IMX VPU Firmware [%s]', | ||
| 83 | extra_depends='', | ||
| 84 | prepend=True) | ||
| 85 | |||
| 86 | sdmadir = bb.data.expand('${nonarch_base_libdir}/firmware/imx/sdma', d) | ||
| 87 | do_split_packages(d, sdmadir, '^sdma-([^-]*).*\.bin', | ||
| 88 | output_pattern='firmware-imx-sdma-%s', | ||
| 89 | description='Freescale IMX SDMA Firmware [%s]', | ||
| 90 | extra_depends='', | ||
| 91 | prepend=True) | ||
| 92 | |||
| 93 | xcvrdir = bb.data.expand('${nonarch_base_libdir}/firmware/imx/xcvr', d) | ||
| 94 | do_split_packages(d, xcvrdir, '^xcvr-([^_]*).*\.bin', | ||
| 95 | output_pattern='firmware-imx-xcvr-%s', | ||
| 96 | description='Freescale IMX XCVR Firmware [%s]', | ||
| 97 | extra_depends='', | ||
| 98 | prepend=True) | ||
| 99 | |||
| 100 | xuvidir = bb.data.expand('${nonarch_base_libdir}/firmware/imx/xuvi', d) | ||
| 101 | do_split_packages(d, xuvidir, '^vpu_fw_([^_]*).*\.bin', | ||
| 102 | output_pattern='firmware-imx-xuvi-%s', | ||
| 103 | description='Freescale IMX XUVI Firmware [%s]', | ||
| 104 | extra_depends='', | ||
| 105 | prepend=True) | ||
| 106 | } | ||
| 107 | |||
| 108 | # Declare a contract that we would provide packages produced by prepend above | ||
| 109 | PACKAGES_DYNAMIC = "${PN}-vpu-* ${PN}-sdma-* ${PN}-easrc-* ${PN}-xcvr-* ${PN}-xuvi-*" | ||
| 110 | |||
| 111 | # | ||
| 112 | # Deal with the rest of Firmware packages here | ||
| 113 | # | ||
| 114 | # Provide EPDC and HDMI Firmware in common packages as they tend to be special in | ||
| 115 | # terms of the content. | ||
| 116 | # | ||
| 117 | # NOTE: PACKAGES are defined explicitly here in order to remove the auto-generated | ||
| 118 | # complimentary packages (-dev and -dbg). | ||
| 119 | # This is done in order to be able to keep the main package empty and fail when | ||
| 120 | # somebody tries to install it in the image. | ||
| 121 | # If -dev package is present in that setup, and dev-pkgs is enabled in | ||
| 122 | # IMAGE_FEATURES - this leads to a failure during do_rootfs() while all -dev | ||
| 123 | # packages would be installed, and -dev package would fail because the main one | ||
| 124 | # is empty. | ||
| 125 | # Therefore, we opt-out from producing -dev package here, since also for firmware | ||
| 126 | # files it makes no sense. | ||
| 127 | PACKAGES = "${PN} ${PN}-epdc ${PN}-hdmi" | ||
| 128 | |||
| 129 | FILES_${PN}-epdc = "${nonarch_base_libdir}/firmware/imx/epdc/" | ||
| 130 | FILES_${PN}-hdmi = "${nonarch_base_libdir}/firmware/imx/hdmi/" | ||
| 131 | |||
| 132 | COMPATIBLE_MACHINE = "(imx|use-mainline-bsp)" | ||
