summaryrefslogtreecommitdiff
path: root/import-layers/meta-raspberrypi/recipes-kernel/linux-firmware/linux-firmware_%.bbappend
diff options
context:
space:
mode:
Diffstat (limited to 'import-layers/meta-raspberrypi/recipes-kernel/linux-firmware/linux-firmware_%.bbappend')
-rw-r--r--import-layers/meta-raspberrypi/recipes-kernel/linux-firmware/linux-firmware_%.bbappend97
1 files changed, 74 insertions, 23 deletions
diff --git a/import-layers/meta-raspberrypi/recipes-kernel/linux-firmware/linux-firmware_%.bbappend b/import-layers/meta-raspberrypi/recipes-kernel/linux-firmware/linux-firmware_%.bbappend
index 565b73526a..34d2b67655 100644
--- a/import-layers/meta-raspberrypi/recipes-kernel/linux-firmware/linux-firmware_%.bbappend
+++ b/import-layers/meta-raspberrypi/recipes-kernel/linux-firmware/linux-firmware_%.bbappend
@@ -1,26 +1,77 @@
-FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
-
-SRC_URI += " \
- file://brcmfmac43430-sdio.bin \
- file://brcmfmac43430-sdio.txt \
- "
-
-do_install_append() {
- # Overwrite v7.45.41.26 by the one we currently provide in this layer
- # (v7.45.41.46)
- local _firmware="brcmfmac43430-sdio.bin"
- local _oldmd5=9258986488eca9fe5343b0d6fe040f8e
- if [ "$(md5sum ${D}/lib/firmware/brcm/$_firmware | awk '{print $1}')" != "$_oldmd5" ]; then
- _firmware=""
- bbwarn "linux-firmware stopped providing brcmfmac43430 v7.45.41.26."
- else
- _firmware="${WORKDIR}/$_firmware"
- fi
-
- mkdir -p ${D}/lib/firmware/brcm
- install -m 0644 $_firmware ${WORKDIR}/brcmfmac43430-sdio.txt ${D}/lib/firmware/brcm
+# Augments upstream linux-firmware with additional and updated images
+# from Raspbian:
+# https://github.com/RPi-Distro/firmware-nonfree
+# https://github.com/RPi-Distro/bluez-firmware
+
+LICENSE_append_rpi = "\
+ & Firmware-cypress \
+"
+
+LIC_FILES_CHKSUM_append_rpi = "\
+ file://LICENCE.cypress;md5=cbc5f665d04f741f1e006d2096236ba7 \
+"
+NO_GENERIC_LICENSE[Firmware-cypress] = "LICENCE.cypress"
+
+SRC_URI_append_rpi = " \
+ git://github.com/RPi-Distro/firmware-nonfree;destsuffix=raspbian-nf;name=raspbian-nf \
+ git://github.com/RPi-Distro/bluez-firmware;destsuffix=raspbian-bluez;name=raspbian-bluez \
+"
+
+SRCREV_raspbian-nf = "86e88fbf0345da49555d0ec34c80b4fbae7d0cd3"
+SRCREV_raspbian-bluez = "e28cd7ee8615de33aa7ec2b41d556af61a4a2707"
+SRCREV_FORMAT_rpi = "default+raspbian-nf+raspbian-bluez"
+
+do_install_append_rpi() {
+ install -d ${D}${nonarch_base_libdir}/firmware/brcm/
+
+ # Replace outdated linux-firmware files with updated ones from
+ # raspbian firmware-nonfree. Raspbian adds blobs and nvram
+ # definitions that are also necessary so copy those too.
+ for fw in brcmfmac43430-sdio brcmfmac43455-sdio ; do
+ install -m 0644 ${WORKDIR}/raspbian-nf/brcm/${fw}.* ${D}${nonarch_base_libdir}/firmware/brcm/
+ done
+
+ # Add missing Cypress Bluetooth files from raspbian bluez-firmware
+ for fw in BCM43430A1.hcd BCM4345C0.hcd ; do
+ install -m 0644 ${WORKDIR}/raspbian-bluez/broadcom/${fw} ${D}${nonarch_base_libdir}/firmware/brcm/
+ done
}
-FILES_${PN}-bcm43430 += " \
- /lib/firmware/brcm/brcmfmac43430-sdio.txt \
+# NB: Must prepend, else these become empty and their content is left in
+# the roll-up package which precedes them.
+PACKAGES_prepend_rpi = "\
+ ${PN}-bcm43455 \
+ ${PN}-cypress-license \
+ ${PN}-bcm43430a1-hcd \
+ ${PN}-bcm4345c0-hcd \
+"
+
+# For additional Broadcom
+LICENSE_${PN}-bcm43455 = "Firmware-broadcom_bcm43xx"
+
+FILES_${PN}-bcm43430_append_rpi = " \
+ ${nonarch_base_libdir}/firmware/brcm/brcmfmac43430-sdio.txt \
+"
+FILES_${PN}-bcm43455 = " \
+ ${nonarch_base_libdir}/firmware/brcm/brcmfmac43455-sdio.* \
+"
+
+RDEPENDS_${PN}-bcm43455 += "${PN}-broadcom-license"
+
+# For additional Cypress
+FILES_${PN}-cypress-license = "\
+ ${nonarch_base_libdir}/firmware/LICENCE.cypress \
"
+
+LICENSE_${PN}-bcm43430a1-hcd = "Firmware-cypress"
+LICENSE_${PN}-bcm4345c0-hcd = "Firmware-cypress"
+
+FILES_${PN}-bcm43430a1-hcd = " \
+ ${nonarch_base_libdir}/firmware/brcm/BCM43430A1.hcd \
+"
+FILES_${PN}-bcm4345c0-hcd = " \
+ ${nonarch_base_libdir}/firmware/brcm/BCM4345C0.hcd \
+"
+
+RDEPENDS_${PN}-bcm43430a1-hcd += "${PN}-cypress-license"
+RDEPENDS_${PN}-bcm4345c0-hcd += "${PN}-cypress-license"