diff options
-rw-r--r-- | conf/machine/raspberrypi0-wifi.conf | 5 | ||||
-rw-r--r-- | conf/machine/raspberrypi3-64.conf | 7 | ||||
-rw-r--r-- | conf/machine/raspberrypi3.conf | 7 | ||||
-rw-r--r-- | docs/layer-contents.md | 18 | ||||
-rw-r--r-- | recipes-connectivity/bluez-firmware/bluez-firmware-raspbian.bb | 43 | ||||
-rw-r--r-- | recipes-connectivity/bluez-firmware/files/LICENCE.cypress | 139 | ||||
-rw-r--r-- | recipes-connectivity/bluez5/bluez5_%.bbappend | 1 | ||||
-rw-r--r-- | recipes-kernel/linux-firmware/linux-firmware-raspbian.bb | 55 | ||||
-rw-r--r-- | recipes-kernel/linux-firmware/linux-firmware_%.bbappend | 77 |
9 files changed, 102 insertions, 250 deletions
diff --git a/conf/machine/raspberrypi0-wifi.conf b/conf/machine/raspberrypi0-wifi.conf index 590c669..accdf3c 100644 --- a/conf/machine/raspberrypi0-wifi.conf +++ b/conf/machine/raspberrypi0-wifi.conf | |||
@@ -6,7 +6,10 @@ DEFAULTTUNE ?= "arm1176jzfshf" | |||
6 | require conf/machine/include/tune-arm1176jzf-s.inc | 6 | require conf/machine/include/tune-arm1176jzf-s.inc |
7 | include conf/machine/include/rpi-base.inc | 7 | include conf/machine/include/rpi-base.inc |
8 | 8 | ||
9 | MACHINE_EXTRA_RRECOMMENDS += "linux-firmware-raspbian-bcm43430" | 9 | MACHINE_EXTRA_RRECOMMENDS += "\ |
10 | linux-firmware-bcm43430 \ | ||
11 | linux-firmware-bcm43430a1-hcd \ | ||
12 | " | ||
10 | 13 | ||
11 | SDIMG_KERNELIMAGE ?= "kernel.img" | 14 | SDIMG_KERNELIMAGE ?= "kernel.img" |
12 | UBOOT_MACHINE ?= "rpi_0_w_defconfig" | 15 | UBOOT_MACHINE ?= "rpi_0_w_defconfig" |
diff --git a/conf/machine/raspberrypi3-64.conf b/conf/machine/raspberrypi3-64.conf index 3e7aade..4a5a494 100644 --- a/conf/machine/raspberrypi3-64.conf +++ b/conf/machine/raspberrypi3-64.conf | |||
@@ -4,7 +4,12 @@ | |||
4 | 4 | ||
5 | MACHINEOVERRIDES = "raspberrypi3:${MACHINE}" | 5 | MACHINEOVERRIDES = "raspberrypi3:${MACHINE}" |
6 | 6 | ||
7 | MACHINE_EXTRA_RRECOMMENDS += "linux-firmware-raspbian-bcm43430 linux-firmware-raspbian-bcm43455" | 7 | MACHINE_EXTRA_RRECOMMENDS += "\ |
8 | linux-firmware-bcm43430 \ | ||
9 | linux-firmware-bcm43455 \ | ||
10 | linux-firmware-bcm43430a1-hcd \ | ||
11 | linux-firmware-bcm4345c0-hcd \ | ||
12 | " | ||
8 | 13 | ||
9 | require conf/machine/include/arm/arch-armv8.inc | 14 | require conf/machine/include/arm/arch-armv8.inc |
10 | include conf/machine/include/rpi-base.inc | 15 | include conf/machine/include/rpi-base.inc |
diff --git a/conf/machine/raspberrypi3.conf b/conf/machine/raspberrypi3.conf index 61c60e6..8b5cce5 100644 --- a/conf/machine/raspberrypi3.conf +++ b/conf/machine/raspberrypi3.conf | |||
@@ -6,7 +6,12 @@ DEFAULTTUNE ?= "cortexa7thf-neon-vfpv4" | |||
6 | require conf/machine/include/tune-cortexa7.inc | 6 | require conf/machine/include/tune-cortexa7.inc |
7 | include conf/machine/include/rpi-base.inc | 7 | include conf/machine/include/rpi-base.inc |
8 | 8 | ||
9 | MACHINE_EXTRA_RRECOMMENDS += "linux-firmware-raspbian-bcm43430 linux-firmware-raspbian-bcm43455" | 9 | MACHINE_EXTRA_RRECOMMENDS += "\ |
10 | linux-firmware-bcm43430 \ | ||
11 | linux-firmware-bcm43455 \ | ||
12 | linux-firmware-bcm43430a1-hcd \ | ||
13 | linux-firmware-bcm4345c0-hcd \ | ||
14 | " | ||
10 | 15 | ||
11 | SDIMG_KERNELIMAGE ?= "kernel7.img" | 16 | SDIMG_KERNELIMAGE ?= "kernel7.img" |
12 | UBOOT_MACHINE = "rpi_3_32b_config" | 17 | UBOOT_MACHINE = "rpi_3_32b_config" |
diff --git a/docs/layer-contents.md b/docs/layer-contents.md index 0ba60f5..f71d396 100644 --- a/docs/layer-contents.md +++ b/docs/layer-contents.md | |||
@@ -23,12 +23,12 @@ For other uses it's recommended to base images on `core-image-minimal` or | |||
23 | `core-image-base` as appropriate. The old image names (`rpi-hwup-image` and | 23 | `core-image-base` as appropriate. The old image names (`rpi-hwup-image` and |
24 | `rpi-basic-image`) are deprecated. | 24 | `rpi-basic-image`) are deprecated. |
25 | 25 | ||
26 | ## WiFi firmware blobs | 26 | ## WiFi and Bluetooth Firmware |
27 | 27 | ||
28 | Be aware that the WiFi firmwares for the supported boards are not provided by | 28 | Be aware that the WiFi and Bluetooth firmware for the supported boards |
29 | `linux-firmware` but by a custom recipe which only packages the needed blobs | 29 | is not available in the base version of `linux-firmware` from OE-Core |
30 | for these boards. This is because the upstream `linux-firmware` doesn't support | 30 | (poky). The files are added from Raspbian repositories in this layer's |
31 | or has outdated files for the blobs we need. The recipe | 31 | bbappends to that recipe. All machines define |
32 | `linux-firmware-raspbian` is based on a fork of `linux-firmware` which | 32 | `MACHINE_EXTRA_RRECOMMENDS` to include the required wireless firmware; |
33 | includes everything we need in order to fully support the WiFi hardware. All | 33 | raspberrypi3 supports 3, 3B, and 3B+ and so include multiple firmware |
34 | machines define `MACHINE_EXTRA_RRECOMMENDS` accordingly. | 34 | packages. |
diff --git a/recipes-connectivity/bluez-firmware/bluez-firmware-raspbian.bb b/recipes-connectivity/bluez-firmware/bluez-firmware-raspbian.bb deleted file mode 100644 index df4e570..0000000 --- a/recipes-connectivity/bluez-firmware/bluez-firmware-raspbian.bb +++ /dev/null | |||
@@ -1,43 +0,0 @@ | |||
1 | SUMMARY = "Firmware files for Bluetooth support for Raspberry Pi" | ||
2 | HOMEPAGE = "https://github.com/RPi-Distro/bluez-firmware" | ||
3 | SECTION = "kernel" | ||
4 | LICENSE = "cypress-wireless" | ||
5 | NO_GENERIC_LICENSE[cypress-wireless] = "LICENCE.cypress" | ||
6 | LIC_FILES_CHKSUM = "\ | ||
7 | file://LICENCE.cypress;md5=cbc5f665d04f741f1e006d2096236ba7 \ | ||
8 | file://debian/copyright;md5=1c734a245a410aa1f9eebcb2e9b62105 \ | ||
9 | " | ||
10 | |||
11 | SRC_URI = "\ | ||
12 | git://github.com/RPi-Distro/bluez-firmware \ | ||
13 | file://LICENCE.cypress \ | ||
14 | " | ||
15 | SRCREV = "e28cd7ee8615de33aa7ec2b41d556af61a4a2707" | ||
16 | UPSTREAM_VERSION_UNKNOWN = "1" | ||
17 | |||
18 | S = "${WORKDIR}/git" | ||
19 | |||
20 | inherit allarch | ||
21 | |||
22 | python do_populate_lic_prepend() { | ||
23 | # Put the license into the source where license.bbclass wants it | ||
24 | import shutil | ||
25 | workdir = d.getVar('WORKDIR') | ||
26 | srcdir = d.getVar('S') | ||
27 | shutil.copy(os.path.join(workdir, 'LICENCE.cypress'), srcdir) | ||
28 | } | ||
29 | |||
30 | do_install() { | ||
31 | install -d ${D}${nonarch_base_libdir}/firmware/brcm/ | ||
32 | install -m 0644 ${S}/broadcom/BCM4345C0.hcd ${D}${nonarch_base_libdir}/firmware/brcm | ||
33 | install -m 0644 ${S}/broadcom/BCM43430A1.hcd ${D}${nonarch_base_libdir}/firmware/brcm | ||
34 | install -m 0644 ${WORKDIR}/LICENCE.cypress ${D}${nonarch_base_libdir}/firmware | ||
35 | } | ||
36 | |||
37 | FILES_${PN} = "\ | ||
38 | ${nonarch_base_libdir}/firmware \ | ||
39 | " | ||
40 | |||
41 | # Firmware files are generally not ran on the CPU, so they can be | ||
42 | # allarch despite being architecture specific | ||
43 | INSANE_SKIP = "arch" | ||
diff --git a/recipes-connectivity/bluez-firmware/files/LICENCE.cypress b/recipes-connectivity/bluez-firmware/files/LICENCE.cypress deleted file mode 100644 index b320f27..0000000 --- a/recipes-connectivity/bluez-firmware/files/LICENCE.cypress +++ /dev/null | |||
@@ -1,139 +0,0 @@ | |||
1 | ### CYPRESS WIRELESS CONNECTIVITY DEVICES | ||
2 | ### DRIVER END USER LICENSE AGREEMENT (SOURCE AND BINARY DISTRIBUTION) | ||
3 | |||
4 | PLEASE READ THIS END USER LICENSE AGREEMENT ("Agreement") CAREFULLY BEFORE | ||
5 | DOWNLOADING, INSTALLING, OR USING THIS SOFTWARE, ANY ACCOMPANYING | ||
6 | DOCUMENTATION, OR ANY UPDATES PROVIDED BY CYPRESS ("Software"). BY | ||
7 | DOWNLOADING, INSTALLING, OR USING THE SOFTWARE, YOU ARE AGREEING TO BE BOUND | ||
8 | BY THIS AGREEMENT. IF YOU DO NOT AGREE TO ALL OF THE TERMS OF THIS | ||
9 | AGREEMENT, PROMPTLY RETURN AND DO NOT USE THE SOFTWARE. IF YOU HAVE | ||
10 | PURCHASED THE SOFTWARE, YOUR RIGHT TO RETURN THE SOFTWARE EXPIRES 30 DAYS | ||
11 | AFTER YOUR PURCHASE AND APPLIES ONLY TO THE ORIGINAL PURCHASER. | ||
12 | |||
13 | Software Provided in Binary Code Form. This paragraph applies to any Software | ||
14 | provided in binary code form. Subject to the terms and conditions of this | ||
15 | Agreement, Cypress Semiconductor Corporation ("Cypress") grants you a | ||
16 | non-exclusive, non-transferable license under its copyright rights in the | ||
17 | Software to reproduce and distribute the Software in object code form only, | ||
18 | solely for use in connection with Cypress integrated circuit products | ||
19 | ("Purpose"). | ||
20 | |||
21 | Software Provided in Source Code Form. This paragraph applies to any Software | ||
22 | provided in source code form ("Cypress Source Code"). Subject to the terms and | ||
23 | conditions of this Agreement, Cypress grants you a non-exclusive, | ||
24 | non-transferable license under its copyright rights in the Cypress Source Code | ||
25 | to reproduce, modify, compile, and distribute the Cypress Source Code (whether | ||
26 | in source code form or as compiled into binary code form) solely for the | ||
27 | Purpose. Cypress retains ownership of the Cypress Source Code and any compiled | ||
28 | version thereof. Subject to Cypress' ownership of the underlying Cypress | ||
29 | Source Code, you retain ownership of any modifications you make to the | ||
30 | Cypress Source Code. You agree not to remove any Cypress copyright or other | ||
31 | notices from the Cypress Source Code and any modifications thereof. Any | ||
32 | reproduction, modification, translation, compilation, or representation of | ||
33 | the Cypress Source Code except as permitted in this paragraph is prohibited | ||
34 | without the express written permission of Cypress. | ||
35 | |||
36 | Free and Open Source Software. Portions of the Software may be licensed under | ||
37 | free and/or open source licenses such as the GNU General Public License | ||
38 | ("FOSS"). FOSS is subject to the applicable license agreement and not this | ||
39 | Agreement. If you are entitled to receive the source code from Cypress for any | ||
40 | FOSS included with the Software, either the source code will be included with | ||
41 | the Software or you may obtain the source code at no charge from | ||
42 | <http://www.cypress.com/go/opensource>. The applicable license terms will | ||
43 | accompany each source code package. To review the license terms applicable to | ||
44 | any FOSS for which Cypress is not required to provide you with source code, | ||
45 | please see the Software's installation directory on your computer. | ||
46 | |||
47 | Proprietary Rights. The Software, including all intellectual property rights | ||
48 | therein, is and will remain the sole and exclusive property of Cypress or its | ||
49 | suppliers. Except as otherwise expressly provided in this Agreement, you may | ||
50 | not: (i) modify, adapt, or create derivative works based upon the Software; | ||
51 | (ii) copy the Software; (iii) except and only to the extent explicitly | ||
52 | permitted by applicable law despite this limitation, decompile, translate, | ||
53 | reverse engineer, disassemble or otherwise reduce the Software to | ||
54 | human-readable form; or (iv) use the Software other than for the Purpose. | ||
55 | |||
56 | No Support. Cypress may, but is not required to, provide technical support for | ||
57 | the Software. | ||
58 | |||
59 | Term and Termination. This Agreement is effective until terminated, and either | ||
60 | party may terminate this Agreement at any time with or without cause. Your | ||
61 | license rights under this Agreement will terminate immediately without notice | ||
62 | from Cypress if you fail to comply with any provision of this Agreement. Upon | ||
63 | termination, you must destroy all copies of Software in your possession or | ||
64 | control. Termination of this Agreement will not affect any licenses validly | ||
65 | granted as of the termination date to any end users of the Software. The | ||
66 | following paragraphs shall survive any termination of this Agreement: "Free and | ||
67 | Open Source Software," "Proprietary Rights," "Compliance With Law," | ||
68 | "Disclaimer," "Limitation of Liability," and "General." | ||
69 | |||
70 | Compliance With Law. Each party agrees to comply with all applicable laws, | ||
71 | rules and regulations in connection with its activities under this Agreement. | ||
72 | Without limiting the foregoing, the Software may be subject to export control | ||
73 | laws and regulations of the United States and other countries. You agree to | ||
74 | comply strictly with all such laws and regulations and acknowledge that you | ||
75 | have the responsibility to obtain licenses to export, re-export, or import | ||
76 | the Software. | ||
77 | |||
78 | Disclaimer. TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, CYPRESS MAKES | ||
79 | NO WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, WITH REGARD TO THE SOFTWARE, | ||
80 | INCLUDING, BUT NOT LIMITED TO, INFRINGEMENT AND THE IMPLIED WARRANTIES OF | ||
81 | MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. Cypress reserves the | ||
82 | right to make changes to the Software without notice. Cypress does not assume | ||
83 | any liability arising out of the application or use of Software or any | ||
84 | product or circuit described in the Software. Cypress does not authorize its | ||
85 | products for use as critical components in life-support systems where a | ||
86 | malfunction or failure may reasonably be expected to result in significant | ||
87 | injury to the user. The inclusion of Cypress' product in a life-support | ||
88 | system or application implies that the manufacturer of such system or | ||
89 | application assumes all risk of such use and in doing so indemnifies Cypress | ||
90 | against all charges. | ||
91 | |||
92 | Limitation of Liability. IN NO EVENT WILL CYPRESS OR ITS SUPPLIERS, | ||
93 | RESELLERS, OR DISTRIBUTORS BE LIABLE FOR ANY LOST REVENUE, PROFIT, OR DATA, | ||
94 | OR FOR SPECIAL, INDIRECT, CONSEQUENTIAL, INCIDENTAL, OR PUNITIVE DAMAGES | ||
95 | HOWEVER CAUSED AND REGARDLESS OF THE THEORY OF LIABILITY, ARISING OUT OF THE | ||
96 | USE OF OR INABILITY TO USE THE SOFTWARE EVEN IF CYPRESS OR ITS SUPPLIERS, | ||
97 | RESELLERS, OR DISTRIBUTORS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH | ||
98 | DAMAGES. IN NO EVENT SHALL CYPRESS' OR ITS SUPPLIERS' RESELLERS', OR | ||
99 | DISTRIBUTORS' TOTAL LIABILITY TO YOU, WHETHER IN CONTRACT, TORT (INCLUDING | ||
100 | NEGLIGENCE), OR OTHERWISE, EXCEED THE PRICE PAID BY YOU FOR THE SOFTWARE. | ||
101 | THE FOREGOING LIMITATIONS SHALL APPLY EVEN IF THE ABOVE-STATED WARRANTY FAILS | ||
102 | OF ITS ESSENTIAL PURPOSE. BECAUSE SOME STATES OR JURISDICTIONS DO NOT ALLOW | ||
103 | LIMITATION OR EXCLUSION OF CONSEQUENTIAL OR INCIDENTAL DAMAGES, THE ABOVE | ||
104 | LIMITATION MAY NOT APPLY TO YOU. | ||
105 | |||
106 | Restricted Rights. The Software under this Agreement is commercial computer | ||
107 | software as that term is described in 48 C.F.R. 252.227-7014(a)(1). If | ||
108 | acquired by or on behalf of a civilian agency, the U.S. Government acquires | ||
109 | this commercial computer software and/or commercial computer software | ||
110 | documentation subject to the terms of this Agreement as specified in 48 | ||
111 | C.F.R. 12.212 (Computer Software) and 12.211 (Technical Data) of the Federal | ||
112 | Acquisition Regulations ("FAR") and its successors. If acquired by or on | ||
113 | behalf of any agency within the Department of Defense ("DOD"), the U.S. | ||
114 | Government acquires this commercial computer software and/or commercial | ||
115 | computer software documentation subject to the terms of this Agreement as | ||
116 | specified in 48 C.F.R. 227.7202-3 of the DOD FAR Supplement ("DFAR") and its | ||
117 | successors. | ||
118 | |||
119 | General. This Agreement will bind and inure to the benefit of each party's | ||
120 | successors and assigns, provided that you may not assign or transfer this | ||
121 | Agreement, in whole or in part, without Cypress' written consent. This | ||
122 | Agreement shall be governed by and construed in accordance with the laws of | ||
123 | the State of California, United States of America, as if performed wholly | ||
124 | within the state and without giving effect to the principles of conflict of | ||
125 | law. The parties consent to personal and exclusive jurisdiction of and venue | ||
126 | in, the state and federal courts within Santa Clara County, California; | ||
127 | provided however, that nothing in this Agreement will limit Cypress' right to | ||
128 | bring legal action in any venue in order to protect or enforce its | ||
129 | intellectual property rights. No failure of either party to exercise or | ||
130 | enforce any of its rights under this Agreement will act as a waiver of such | ||
131 | rights. If any portion hereof is found to be void or unenforceable, the | ||
132 | remaining provisions of this Agreement shall remain in full force and | ||
133 | effect. This Agreement is the complete and exclusive agreement between the | ||
134 | parties with respect to the subject matter hereof, superseding and replacing | ||
135 | any and all prior agreements, communications, and understandings (both | ||
136 | written and oral) regarding such subject matter. Any notice to Cypress will | ||
137 | be deemed effective when actually received and must be sent to Cypress | ||
138 | Semiconductor Corporation, ATTN: Chief Legal Officer, 198 Champion Court, San | ||
139 | Jose, CA 95134 USA. | ||
diff --git a/recipes-connectivity/bluez5/bluez5_%.bbappend b/recipes-connectivity/bluez5/bluez5_%.bbappend index c75f4b6..d1b84df 100644 --- a/recipes-connectivity/bluez5/bluez5_%.bbappend +++ b/recipes-connectivity/bluez5/bluez5_%.bbappend | |||
@@ -19,7 +19,6 @@ enable_bcm_bluetooth() { | |||
19 | 19 | ||
20 | BCM_BT_RDEPENDS = "\ | 20 | BCM_BT_RDEPENDS = "\ |
21 | udev-rules-rpi \ | 21 | udev-rules-rpi \ |
22 | bluez-firmware-raspbian \ | ||
23 | pi-bluetooth \ | 22 | pi-bluetooth \ |
24 | " | 23 | " |
25 | 24 | ||
diff --git a/recipes-kernel/linux-firmware/linux-firmware-raspbian.bb b/recipes-kernel/linux-firmware/linux-firmware-raspbian.bb deleted file mode 100644 index d11a53b..0000000 --- a/recipes-kernel/linux-firmware/linux-firmware-raspbian.bb +++ /dev/null | |||
@@ -1,55 +0,0 @@ | |||
1 | SUMMARY = "Firmware files for use with Linux kernel" | ||
2 | SECTION = "kernel" | ||
3 | |||
4 | LICENSE = "Firmware-broadcom_bcm43xx" | ||
5 | |||
6 | LIC_FILES_CHKSUM = "file://LICENCE.broadcom_bcm43xx;md5=3160c14df7228891b868060e1951dfbc" | ||
7 | |||
8 | INHIBIT_DEFAULT_DEPS = "1" | ||
9 | |||
10 | # These are not common licenses, set NO_GENERIC_LICENSE for them | ||
11 | # so that the license files will be copied from fetched source | ||
12 | NO_GENERIC_LICENSE[Firmware-broadcom_bcm43xx] = "LICENCE.broadcom_bcm43xx" | ||
13 | |||
14 | SRCREV = "86e88fbf0345da49555d0ec34c80b4fbae7d0cd3" | ||
15 | PV = "0.0+git${SRCPV}" | ||
16 | |||
17 | SRC_URI = "git://github.com/RPi-Distro/firmware-nonfree" | ||
18 | |||
19 | UPSTREAM_VERSION_UNKNOWN = "1" | ||
20 | |||
21 | S = "${WORKDIR}/git" | ||
22 | |||
23 | inherit allarch | ||
24 | |||
25 | CLEANBROKEN = "1" | ||
26 | |||
27 | do_compile() { | ||
28 | : | ||
29 | } | ||
30 | |||
31 | do_install() { | ||
32 | install -d ${D}${nonarch_base_libdir}/firmware/brcm | ||
33 | cp ./LICENCE.broadcom_bcm43xx ${D}${nonarch_base_libdir}/firmware | ||
34 | cp -r ./brcm/brcmfmac43430* ${D}${nonarch_base_libdir}/firmware/brcm | ||
35 | cp -r ./brcm/brcmfmac43455* ${D}${nonarch_base_libdir}/firmware/brcm | ||
36 | } | ||
37 | |||
38 | PACKAGES = " \ | ||
39 | ${PN}-broadcom-license \ | ||
40 | ${PN}-bcm43430 \ | ||
41 | ${PN}-bcm43455 \ | ||
42 | " | ||
43 | |||
44 | LICENSE_${PN}-bcm43430 = "Firmware-broadcom_bcm43xx" | ||
45 | LICENSE_${PN}-bcm43455 = "Firmware-broadcom_bcm43xx" | ||
46 | LICENSE_${PN}-broadcom-license = "Firmware-broadcom_bcm43xx" | ||
47 | FILES_${PN}-broadcom-license = "${nonarch_base_libdir}/firmware/LICENCE.broadcom_bcm43xx" | ||
48 | FILES_${PN}-bcm43430 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43430*" | ||
49 | FILES_${PN}-bcm43455 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43455*" | ||
50 | RDEPENDS_${PN}-bcm43430 += "${PN}-broadcom-license" | ||
51 | RDEPENDS_${PN}-bcm43455 += "${PN}-broadcom-license" | ||
52 | |||
53 | # Firmware files are generally not ran on the CPU, so they can be | ||
54 | # allarch despite being architecture specific | ||
55 | INSANE_SKIP = "arch" | ||
diff --git a/recipes-kernel/linux-firmware/linux-firmware_%.bbappend b/recipes-kernel/linux-firmware/linux-firmware_%.bbappend new file mode 100644 index 0000000..34d2b67 --- /dev/null +++ b/recipes-kernel/linux-firmware/linux-firmware_%.bbappend | |||
@@ -0,0 +1,77 @@ | |||
1 | # Augments upstream linux-firmware with additional and updated images | ||
2 | # from Raspbian: | ||
3 | # https://github.com/RPi-Distro/firmware-nonfree | ||
4 | # https://github.com/RPi-Distro/bluez-firmware | ||
5 | |||
6 | LICENSE_append_rpi = "\ | ||
7 | & Firmware-cypress \ | ||
8 | " | ||
9 | |||
10 | LIC_FILES_CHKSUM_append_rpi = "\ | ||
11 | file://LICENCE.cypress;md5=cbc5f665d04f741f1e006d2096236ba7 \ | ||
12 | " | ||
13 | NO_GENERIC_LICENSE[Firmware-cypress] = "LICENCE.cypress" | ||
14 | |||
15 | SRC_URI_append_rpi = " \ | ||
16 | git://github.com/RPi-Distro/firmware-nonfree;destsuffix=raspbian-nf;name=raspbian-nf \ | ||
17 | git://github.com/RPi-Distro/bluez-firmware;destsuffix=raspbian-bluez;name=raspbian-bluez \ | ||
18 | " | ||
19 | |||
20 | SRCREV_raspbian-nf = "86e88fbf0345da49555d0ec34c80b4fbae7d0cd3" | ||
21 | SRCREV_raspbian-bluez = "e28cd7ee8615de33aa7ec2b41d556af61a4a2707" | ||
22 | SRCREV_FORMAT_rpi = "default+raspbian-nf+raspbian-bluez" | ||
23 | |||
24 | do_install_append_rpi() { | ||
25 | install -d ${D}${nonarch_base_libdir}/firmware/brcm/ | ||
26 | |||
27 | # Replace outdated linux-firmware files with updated ones from | ||
28 | # raspbian firmware-nonfree. Raspbian adds blobs and nvram | ||
29 | # definitions that are also necessary so copy those too. | ||
30 | for fw in brcmfmac43430-sdio brcmfmac43455-sdio ; do | ||
31 | install -m 0644 ${WORKDIR}/raspbian-nf/brcm/${fw}.* ${D}${nonarch_base_libdir}/firmware/brcm/ | ||
32 | done | ||
33 | |||
34 | # Add missing Cypress Bluetooth files from raspbian bluez-firmware | ||
35 | for fw in BCM43430A1.hcd BCM4345C0.hcd ; do | ||
36 | install -m 0644 ${WORKDIR}/raspbian-bluez/broadcom/${fw} ${D}${nonarch_base_libdir}/firmware/brcm/ | ||
37 | done | ||
38 | } | ||
39 | |||
40 | # NB: Must prepend, else these become empty and their content is left in | ||
41 | # the roll-up package which precedes them. | ||
42 | PACKAGES_prepend_rpi = "\ | ||
43 | ${PN}-bcm43455 \ | ||
44 | ${PN}-cypress-license \ | ||
45 | ${PN}-bcm43430a1-hcd \ | ||
46 | ${PN}-bcm4345c0-hcd \ | ||
47 | " | ||
48 | |||
49 | # For additional Broadcom | ||
50 | LICENSE_${PN}-bcm43455 = "Firmware-broadcom_bcm43xx" | ||
51 | |||
52 | FILES_${PN}-bcm43430_append_rpi = " \ | ||
53 | ${nonarch_base_libdir}/firmware/brcm/brcmfmac43430-sdio.txt \ | ||
54 | " | ||
55 | FILES_${PN}-bcm43455 = " \ | ||
56 | ${nonarch_base_libdir}/firmware/brcm/brcmfmac43455-sdio.* \ | ||
57 | " | ||
58 | |||
59 | RDEPENDS_${PN}-bcm43455 += "${PN}-broadcom-license" | ||
60 | |||
61 | # For additional Cypress | ||
62 | FILES_${PN}-cypress-license = "\ | ||
63 | ${nonarch_base_libdir}/firmware/LICENCE.cypress \ | ||
64 | " | ||
65 | |||
66 | LICENSE_${PN}-bcm43430a1-hcd = "Firmware-cypress" | ||
67 | LICENSE_${PN}-bcm4345c0-hcd = "Firmware-cypress" | ||
68 | |||
69 | FILES_${PN}-bcm43430a1-hcd = " \ | ||
70 | ${nonarch_base_libdir}/firmware/brcm/BCM43430A1.hcd \ | ||
71 | " | ||
72 | FILES_${PN}-bcm4345c0-hcd = " \ | ||
73 | ${nonarch_base_libdir}/firmware/brcm/BCM4345C0.hcd \ | ||
74 | " | ||
75 | |||
76 | RDEPENDS_${PN}-bcm43430a1-hcd += "${PN}-cypress-license" | ||
77 | RDEPENDS_${PN}-bcm4345c0-hcd += "${PN}-cypress-license" | ||