diff options
Diffstat (limited to 'meta-raspberrypi/recipes-kernel/bluez-firmware-rpidistro')
-rw-r--r-- | meta-raspberrypi/recipes-kernel/bluez-firmware-rpidistro/bluez-firmware-rpidistro_git.bb | 84 |
1 files changed, 84 insertions, 0 deletions
diff --git a/meta-raspberrypi/recipes-kernel/bluez-firmware-rpidistro/bluez-firmware-rpidistro_git.bb b/meta-raspberrypi/recipes-kernel/bluez-firmware-rpidistro/bluez-firmware-rpidistro_git.bb new file mode 100644 index 000000000..b16b2c19d --- /dev/null +++ b/meta-raspberrypi/recipes-kernel/bluez-firmware-rpidistro/bluez-firmware-rpidistro_git.bb @@ -0,0 +1,84 @@ +SUMMARY = "Linux kernel Bluetooth firmware files from Raspbian distribution" +DESCRIPTION = "Updated Bluetooth firmware files for RaspberryPi hardware. \ +RPi-Distro obtains these directly from Cypress; they are not submitted \ +to linux-firmware for general use." +HOMEPAGE = "https://github.com/RPi-Distro/bluez-firmware" +SECTION = "kernel" + +# Upstream has provided[^1] licensing information in the Debian +# copyright file. The wording of the Cypress license subsequently +# changed in linux-firmware. +# +# Rather than make assumptions about what's supposed to be what, we'll +# use the license implied by the source of these files, named to avoid +# conflicts with linux-firmware. +# +# [^1]: https://github.com/RPi-Distro/bluez-firmware/issues/1 +LICENSE = "Firmware-cypress-rpidistro" +LIC_FILES_CHKSUM = "\ + file://LICENCE.cypress-rpidistro;md5=852f9d10cbedba1f6c439729bd0617b4 \ +" + +# These are not common licenses, set NO_GENERIC_LICENSE for them +# so that the license files will be copied from fetched source +NO_GENERIC_LICENSE[Firmware-cypress-rpidistro] = "LICENCE.cypress-rpidistro" + +SRC_URI = "git://github.com/RPi-Distro/bluez-firmware" +SRCREV = "ade2bae1aaaebede09abb8fb546f767a0e4c7804" +PV = "0.0+git${SRCPV}" + +S = "${WORKDIR}/git" + +inherit allarch + +CLEANBROKEN = "1" + +do_extract_lic() { + # Extract the license from the Debian copyright file + sed -e '1,23d' ${S}/debian/copyright > ${S}/LICENCE.cypress-rpidistro +} +# Must be before both do_install and do_populate_lic. Putting it before +# their common ancestor works; other approaches do not. +addtask extract_lic after do_unpack before do_patch + +do_compile() { + : +} + +do_install() { + install -d ${D}${nonarch_base_libdir}/firmware/brcm + + cp LICENCE.cypress-rpidistro ${D}${nonarch_base_libdir}/firmware + install -m 0644 broadcom/BCM434*.hcd ${D}${nonarch_base_libdir}/firmware/brcm/ +} + +PACKAGES = "\ + ${PN}-cypress-license \ + ${PN}-bcm43430a1-hcd \ + ${PN}-bcm4345c0-hcd \ +" + +LICENSE_${PN}-bcm43430a1-hcd = "Firmware-cypress-rpidistro" +LICENSE_${PN}-bcm4345c0-hcd = "Firmware-cypress-rpidistro" +LICENSE_${PN}-cypress-license = "Firmware-cypress-rpidistro" + +FILES_${PN}-cypress-license = "\ + ${nonarch_base_libdir}/firmware/LICENCE.cypress-rpidistro \ +" +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" +RCONFLICTS_${PN}-bcm43430a1-hcd = "linux-firmware-bcm43430a1-hcd" +RREPLACES_${PN}-bcm43430a1-hcd = "linux-firmware-bcm43430a1-hcd" +RCONFLICTS_${PN}-bcm43435c0-hcd = "linux-firmware-bcm4345c0-hcd" +RREPLACES_${PN}-bcm43435c0-hcd = "linux-firmware-bcm4345c0-hcd" + +# Firmware files are generally not run on the CPU, so they can be +# allarch despite being architecture specific +INSANE_SKIP = "arch" |