summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--conf/machine/include/imx-base.inc4
-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.bb76
-rw-r--r--recipes-bsp/firmware-imx/firmware-imx_8.8.bb132
6 files changed, 140 insertions, 85 deletions
diff --git a/conf/machine/include/imx-base.inc b/conf/machine/include/imx-base.inc
index b64596b4..80392f38 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
218MACHINE_FIRMWARE ?= "" 218MACHINE_FIRMWARE ?= ""
219MACHINE_FIRMWARE_append_mx25 = " firmware-imx-sdma-imx25" 219MACHINE_FIRMWARE_append_mx25 = " firmware-imx-sdma-imx25"
220MACHINE_FIRMWARE_append_mx27 = " firmware-imx-vpu-imx27"
220MACHINE_FIRMWARE_append_mx7d = " linux-firmware-imx-sdma-imx7d firmware-imx-epdc" 221MACHINE_FIRMWARE_append_mx7d = " linux-firmware-imx-sdma-imx7d firmware-imx-epdc"
221MACHINE_FIRMWARE_append_mx6 = " linux-firmware-imx-sdma-imx6q" 222MACHINE_FIRMWARE_append_mx6 = " linux-firmware-imx-sdma-imx6q"
222MACHINE_FIRMWARE_append_mx6q = " firmware-imx-vpu-imx6q" 223MACHINE_FIRMWARE_append_mx6q = " firmware-imx-vpu-imx6q"
@@ -226,11 +227,10 @@ MACHINE_FIRMWARE_append_mx6sll = " firmware-imx-epdc"
226MACHINE_FIRMWARE_append_mx6ull = " firmware-imx-epdc" 227MACHINE_FIRMWARE_append_mx6ull = " firmware-imx-epdc"
227MACHINE_FIRMWARE_append_mx53 = " firmware-imx-vpu-imx53 firmware-imx-sdma-imx53" 228MACHINE_FIRMWARE_append_mx53 = " firmware-imx-vpu-imx53 firmware-imx-sdma-imx53"
228MACHINE_FIRMWARE_append_mx51 = " firmware-imx-vpu-imx51 firmware-imx-sdma-imx51" 229MACHINE_FIRMWARE_append_mx51 = " firmware-imx-vpu-imx51 firmware-imx-sdma-imx51"
229MACHINE_FIRMWARE_append_mx8qxp = " firmware-imx-vpu-imx8qxp"
230MACHINE_FIRMWARE_append_use-mainline-bsp = " linux-firmware-imx-sdma-imx6q linux-firmware-imx-sdma-imx7d firmware-imx-vpu-imx6q firmware-imx-vpu-imx6d" 230MACHINE_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
235MACHINE_EXTRA_RRECOMMENDS += "${MACHINE_FIRMWARE}" 235MACHINE_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 ae6b1d78..a2ba7f58 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.
4SECTION = "base" 4SECTION = "base"
5LICENSE = "Proprietary" 5LICENSE = "Proprietary"
6LIC_FILES_CHKSUM = "file://COPYING;md5=6c12031a11b81db21cdfe0be88cac4b3" 6LIC_FILES_CHKSUM = "file://COPYING;md5=228c72f2a91452b8a03c4cab30f30ef9"
7 7
8SRCBRANCH ?= "master"
9SRC_URI = " \ 8SRC_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
13SRC_URI[md5sum] = "a6b926d087e1e642580da8a6d982abe6" 12SRC_URI[md5sum] = "eabb27d28bba375a9f14d6306c07af5f"
14SRC_URI[sha256sum] = "45b0a7392e7a4b2e6c7e1cb988dd660ff3f8cd465afdf796ff840a00db08389d" 13SRC_URI[sha256sum] = "5ca1f8b6e6b191594d17ac7b51c38cdbc2ff808d15568ab4b0bbeb5dc6c621f6"
15 14
16S = "${WORKDIR}/firmware-imx-${PV}" 15S = "${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 64fa2885..650c1cfd 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
2SUMMARY = "Freescale i.MX firmware for 8 family" 2SUMMARY = "Freescale i.MX firmware for 8 family"
3DESCRIPTION = "Freescale i.MX firmware for 8 family" 3DESCRIPTION = "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 a605d226..44e9ff4a 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
2SUMMARY = "Freescale i.MX firmware for 8M and 8M Mini family" 2SUMMARY = "Freescale i.MX firmware for 8M and 8M Mini family"
3DESCRIPTION = "Freescale i.MX firmware for 8M and 8M Mini family" 3DESCRIPTION = "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 ff623057..00000000
--- 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.
4SUMMARY = "Freescale i.MX firmware"
5DESCRIPTION = "Freescale i.MX firmware such as for the VPU"
6
7require firmware-imx-${PV}.inc
8
9PE = "1"
10
11SRC_URI += " \
12 git://github.com/NXP/imx-firmware.git;protocol=https;branch=${SRCBRANCH};destsuffix=${S}/git \
13"
14SRCREV = "8ce9046f5058fdd2c5271f86ccfc61bc5a248ae3"
15
16inherit allarch
17
18do_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
50python 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
66ALLOW_EMPTY_${PN} = "1"
67
68PACKAGES_DYNAMIC = "${PN}-vpu-* ${PN}-sdma-*"
69
70PACKAGES =+ "${PN}-epdc ${PN}-scfw ${PN}-sdma"
71
72FILES_${PN}-epdc = "${base_libdir}/firmware/imx/epdc/"
73FILES_${PN}-scfw = "${base_libdir}/firmware/scfw/"
74FILES_${PN}-sdma = " ${base_libdir}/firmware/imx/sdma"
75
76COMPATIBLE_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 00000000..aff22ba6
--- /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.
4SUMMARY = "Freescale i.MX firmware"
5DESCRIPTION = "Freescale i.MX firmware such as for the VPU"
6
7require firmware-imx-${PV}.inc
8
9PE = "1"
10
11inherit allarch
12
13do_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#
71python 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
109PACKAGES_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.
127PACKAGES = "${PN} ${PN}-epdc ${PN}-hdmi"
128
129FILES_${PN}-epdc = "${nonarch_base_libdir}/firmware/imx/epdc/"
130FILES_${PN}-hdmi = "${nonarch_base_libdir}/firmware/imx/hdmi/"
131
132COMPATIBLE_MACHINE = "(imx|use-mainline-bsp)"