blob: d39340abf68c0df93c391ac31237efa66403e324 [file] [log] [blame]
Brad Bishop1a4b7ee2018-12-16 17:11:34 -08001SUMMARY = "Linux kernel firmware files from Raspbian distribution"
2DESCRIPTION = "Updated firmware files for RaspberryPi hardware. \
3RPi-Distro obtains these directly from Cypress; they are not submitted \
4to linux-firmware for general use."
5HOMEPAGE = "https://github.com/RPi-Distro/firmware-nonfree"
6SECTION = "kernel"
7
Patrick Williamsdb4c27e2022-08-05 08:10:29 -05008LICENSE = "GPL-2.0-only & binary-redist-Cypress-rpidistro & Synaptics-rpidistro"
Brad Bishop1a4b7ee2018-12-16 17:11:34 -08009LIC_FILES_CHKSUM = "\
Patrick Williamsdb4c27e2022-08-05 08:10:29 -050010 file://debian/config/brcm80211/copyright;md5=b0630b02d90e3da72206c909b6aecc8c \
Brad Bishop1a4b7ee2018-12-16 17:11:34 -080011"
Patrick Williamsdb4c27e2022-08-05 08:10:29 -050012# Where these are no common licenses, set NO_GENERIC_LICENSE so that the
13# license files will be copied from the fetched source.
14NO_GENERIC_LICENSE[binary-redist-Cypress-rpidistro] = "debian/config/brcm80211/copyright"
15NO_GENERIC_LICENSE[Synaptics-rpidistro] = "debian/config/brcm80211/copyright"
16LICENSE_FLAGS = "synaptics-killswitch"
Brad Bishop1a4b7ee2018-12-16 17:11:34 -080017
Andrew Geissler595f6302022-01-24 19:11:47 +000018SRC_URI = "git://github.com/RPi-Distro/firmware-nonfree;branch=bullseye;protocol=https"
Patrick Williamsdb4c27e2022-08-05 08:10:29 -050019SRCREV = "541e5a05d152e7e6f0d9be45622e4a3741e51c02"
20PV = "20210315-3+rpt7"
Brad Bishop1a4b7ee2018-12-16 17:11:34 -080021S = "${WORKDIR}/git"
22
23inherit allarch
24
Patrick Williamsdb4c27e2022-08-05 08:10:29 -050025do_configure[noexec] = "1"
26do_compile[noexec] = "1"
Brad Bishop1a4b7ee2018-12-16 17:11:34 -080027
28do_install() {
Andrew Geissler595f6302022-01-24 19:11:47 +000029 install -d ${D}${nonarch_base_libdir}/firmware/brcm ${D}${nonarch_base_libdir}/firmware/cypress
Brad Bishop1a4b7ee2018-12-16 17:11:34 -080030
Patrick Williamsdb4c27e2022-08-05 08:10:29 -050031 cp debian/config/brcm80211/copyright ${D}${nonarch_base_libdir}/firmware/copyright.firmware-nonfree-rpidistro
Brad Bishop1a4b7ee2018-12-16 17:11:34 -080032
Patrick Williamsdb4c27e2022-08-05 08:10:29 -050033 for fw in \
34 brcmfmac43430-sdio \
35 brcmfmac43436-sdio \
36 brcmfmac43436s-sdio \
37 brcmfmac43455-sdio \
38 brcmfmac43456-sdio; do
Andrew Geissler595f6302022-01-24 19:11:47 +000039 cp -R --no-dereference --preserve=mode,links -v debian/config/brcm80211/brcm/${fw}.* ${D}${nonarch_base_libdir}/firmware/brcm/
Brad Bishop1a4b7ee2018-12-16 17:11:34 -080040 done
Patrick Williamsdb4c27e2022-08-05 08:10:29 -050041
Andrew Geissler595f6302022-01-24 19:11:47 +000042 cp -R --no-dereference --preserve=mode,links -v debian/config/brcm80211/cypress/* ${D}${nonarch_base_libdir}/firmware/cypress/
Patrick Williamsdb4c27e2022-08-05 08:10:29 -050043
Patrick Williams03907ee2022-05-01 06:28:52 -050044 rm ${D}${nonarch_base_libdir}/firmware/cypress/README.txt
Patrick Williamsdb4c27e2022-08-05 08:10:29 -050045
Andrew Geissler5c4154f2020-10-16 10:13:56 -050046 # add compat links. Fixes errors like
Andrew Geissler595f6302022-01-24 19:11:47 +000047 # brcmfmac mmc1:0001:1: Direct firmware load for brcm/brcmfmac43455-sdio.raspberrypi,4-model-compute-module.txt failed with error -2
Patrick Williams0ca19cc2021-08-16 14:03:13 -050048 ln -s brcmfmac43455-sdio.txt ${D}${nonarch_base_libdir}/firmware/brcm/brcmfmac43455-sdio.raspberrypi,4-compute-module.txt
Andrew Geisslerd5838332022-05-27 11:33:10 -050049 # brcmfmac mmc1:0001:1: Direct firmware load for brcm/brcmfmac43455-sdio.raspberrypi,4-model-b.bin failed with error -2
50 ln -s brcmfmac43455-sdio.bin ${D}${nonarch_base_libdir}/firmware/brcm/brcmfmac43455-sdio.raspberrypi,4-model-b.bin
Brad Bishop1a4b7ee2018-12-16 17:11:34 -080051}
52
53PACKAGES = "\
Brad Bishop1a4b7ee2018-12-16 17:11:34 -080054 ${PN}-bcm43430 \
Andrew Geissler595f6302022-01-24 19:11:47 +000055 ${PN}-bcm43436 \
56 ${PN}-bcm43436s \
Patrick Williamsdb4c27e2022-08-05 08:10:29 -050057 ${PN}-bcm43455 \
58 ${PN}-bcm43456 \
59 ${PN}-license \
Brad Bishop1a4b7ee2018-12-16 17:11:34 -080060"
61
Patrick Williamsdb4c27e2022-08-05 08:10:29 -050062LICENSE:${PN}-bcm43430 = "binary-redist-Cypress-rpidistro"
63LICENSE:${PN}-bcm43436 = "Synaptics-rpidistro"
64LICENSE:${PN}-bcm43436s = "Synaptics-rpidistro"
65LICENSE:${PN}-bcm43455 = "binary-redist-Cypress-rpidistro"
66LICENSE:${PN}-bcm43456 = "Synaptics-rpidistro"
67LICENSE:${PN}-license = "GPL-2.0-only"
68
69FILES:${PN}-bcm43430 = " \
70 ${nonarch_base_libdir}/firmware/brcm/brcmfmac43430* \
71 ${nonarch_base_libdir}/firmware/cypress/cyfmac43430-sdio.bin \
72 ${nonarch_base_libdir}/firmware/cypress/cyfmac43430-sdio.clm_blob \
73"
Andrew Geissler595f6302022-01-24 19:11:47 +000074FILES:${PN}-bcm43436 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43436-*"
75FILES:${PN}-bcm43436s = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43436s*"
Patrick Williamsdb4c27e2022-08-05 08:10:29 -050076FILES:${PN}-bcm43455 = " \
77 ${nonarch_base_libdir}/firmware/brcm/brcmfmac43455* \
78 ${nonarch_base_libdir}/firmware/cypress/cyfmac43455-sdio* \
79"
Patrick Williams213cb262021-08-07 19:21:33 -050080FILES:${PN}-bcm43456 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43456*"
Patrick Williamsdb4c27e2022-08-05 08:10:29 -050081FILES:${PN}-license = "${nonarch_base_libdir}/firmware/copyright.firmware-nonfree-rpidistro"
Andrew Geissler595f6302022-01-24 19:11:47 +000082
Patrick Williamsdb4c27e2022-08-05 08:10:29 -050083RDEPENDS:${PN}-bcm43430 += "${PN}-license"
84RDEPENDS:${PN}-bcm43436 += "${PN}-license"
85RDEPENDS:${PN}-bcm43436s += "${PN}-license"
86RDEPENDS:${PN}-bcm43455 += "${PN}-license"
87RDEPENDS:${PN}-bcm43456 += "${PN}-license"
Andrew Geissler595f6302022-01-24 19:11:47 +000088
Patrick Williamsdb4c27e2022-08-05 08:10:29 -050089RCONFLICTS:${PN}-bcm43430 = "linux-firmware-raspbian-bcm43430"
90RCONFLICTS:${PN}-bcm43436 = "linux-firmware-bcm43436"
91RCONFLICTS:${PN}-bcm43436s = "linux-firmware-bcm43436s"
92RCONFLICTS:${PN}-bcm43455 = "linux-firmware-bcm43455"
93RCONFLICTS:${PN}-bcm43456 = "linux-firmware-bcm43456"
Andrew Geissler595f6302022-01-24 19:11:47 +000094
Patrick Williamsdb4c27e2022-08-05 08:10:29 -050095RREPLACES:${PN}-bcm43430 = "linux-firmware-bcm43430"
96RREPLACES:${PN}-bcm43436 = "linux-firmware-bcm43436"
97RREPLACES:${PN}-bcm43436s = "linux-firmware-bcm43436s"
98RREPLACES:${PN}-bcm43455 = "linux-firmware-bcm43455"
99RREPLACES:${PN}-bcm43456 = "linux-firmware-bcm43456"
Brad Bishop1a4b7ee2018-12-16 17:11:34 -0800100
101# Firmware files are generally not run on the CPU, so they can be
102# allarch despite being architecture specific
103INSANE_SKIP = "arch"