mirror of
git://git.yoctoproject.org/meta-raspberrypi.git
synced 2025-07-19 12:59:03 +02:00

The official Raspbian with RPi4 support has an additional change for the NVRAM WiFi configuration: boardflags3 value is changed from "0x48200100" to "0x44200100". Without this change the interface never comes up. It is confusing because the deb changelog doesn't say anything about it and the repository upstream doesn't have this change. Asked for more info here: https://github.com/RPi-Distro/firmware-nonfree/issues/3 In the meanwhile we import this change. Also, we remove the .pc directory which confuses the patch step. Signed-off-by: Andrei Gherzan <andrei@gherzan.ro>
107 lines
3.4 KiB
BlitzBasic
107 lines
3.4 KiB
BlitzBasic
SUMMARY = "Linux kernel firmware files from Raspbian distribution"
|
|
DESCRIPTION = "Updated 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/firmware-nonfree"
|
|
SECTION = "kernel"
|
|
|
|
# In maintained upstream linux-firmware:
|
|
# * brcmfmac43430-sdio falls under LICENCE.cypress
|
|
# * brcmfmac43455-sdio falls under LICENCE.broadcom_bcm43xx
|
|
#
|
|
# It is likely[^1] that both of these should be under LICENCE.cypress.
|
|
# Further, at this time the text of LICENCE.broadcom_bcm43xx is the same
|
|
# in linux-firmware and RPi-Distro/firmware-nonfree, but this may
|
|
# change.
|
|
#
|
|
# 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-broadcom_bcm43xx-rpidistro \
|
|
& WHENCE \
|
|
"
|
|
LIC_FILES_CHKSUM = "\
|
|
file://LICENCE.broadcom_bcm43xx;md5=3160c14df7228891b868060e1951dfbc \
|
|
file://WHENCE;md5=a9c2c217f513c20e1d16b384b3e2c12d \
|
|
"
|
|
|
|
# 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-broadcom_bcm43xx-rpidistro] = "LICENCE.broadcom_bcm43xx"
|
|
NO_GENERIC_LICENSE[WHENCE] = "WHENCE"
|
|
|
|
SRC_URI = " \
|
|
git://github.com/RPi-Distro/firmware-nonfree \
|
|
file://0001-brcmfmac43455-sdio.txt-Follow-raspbian-change-for-bo.patch \
|
|
"
|
|
SRCREV = "b518de45ced519e8f7a499f4778100173402ae43"
|
|
PV = "0.0+git${SRCPV}"
|
|
|
|
S = "${WORKDIR}/git"
|
|
|
|
inherit allarch
|
|
|
|
CLEANBROKEN = "1"
|
|
|
|
do_unpack_append() {
|
|
bb.build.exec_func('do_clean_pc', d)
|
|
}
|
|
do_clean_pc() {
|
|
rm -rf ${S}/.pc
|
|
}
|
|
|
|
do_compile() {
|
|
:
|
|
}
|
|
|
|
do_install() {
|
|
install -d ${D}${nonarch_base_libdir}/firmware/brcm
|
|
|
|
cp ./LICENCE.broadcom_bcm43xx ${D}${nonarch_base_libdir}/firmware/LICENCE.broadcom_bcm43xx-rpidistro
|
|
|
|
# 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 brcm/${fw}.* ${D}${nonarch_base_libdir}/firmware/brcm/
|
|
done
|
|
}
|
|
|
|
PACKAGES = "\
|
|
${PN}-broadcom-license \
|
|
${PN}-bcm43430 \
|
|
${PN}-bcm43455 \
|
|
"
|
|
|
|
LICENSE_${PN}-bcm43430 = "Firmware-broadcom_bcm43xx-rpidistro"
|
|
LICENSE_${PN}-bcm43455 = "Firmware-broadcom_bcm43xx-rpidistro"
|
|
LICENSE_${PN}-broadcom-license = "Firmware-broadcom_bcm43xx-rpidistro"
|
|
FILES_${PN}-broadcom-license = "${nonarch_base_libdir}/firmware/LICENCE.broadcom_bcm43xx-rpidistro"
|
|
FILES_${PN}-bcm43430 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43430*"
|
|
FILES_${PN}-bcm43455 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43455*"
|
|
RDEPENDS_${PN}-bcm43430 += "${PN}-broadcom-license"
|
|
RDEPENDS_${PN}-bcm43455 += "${PN}-broadcom-license"
|
|
RCONFLICTS_${PN}-bcm43430 = "\
|
|
linux-firmware-bcm43430 \
|
|
linux-firmware-raspbian-bcm43430 \
|
|
"
|
|
RREPLACES_${PN}-bcm43430 = "\
|
|
linux-firmware-bcm43430 \
|
|
linux-firmware-raspbian-bcm43430 \
|
|
"
|
|
RCONFLICTS_${PN}-bcm43455 = "\
|
|
linux-firmware-bcm43455 \
|
|
linux-firmware-raspbian-bcm43455 \
|
|
"
|
|
RREPLACES_${PN}-bcm43455 = "\
|
|
linux-firmware-bcm43455 \
|
|
linux-firmware-raspbian-bcm43455 \
|
|
"
|
|
|
|
# Firmware files are generally not run on the CPU, so they can be
|
|
# allarch despite being architecture specific
|
|
INSANE_SKIP = "arch"
|