diff options
Diffstat (limited to 'meta-raspberrypi/recipes-kernel')
6 files changed, 193 insertions, 75 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" diff --git a/meta-raspberrypi/recipes-kernel/linux-firmware-rpidistro/linux-firmware-rpidistro_git.bb b/meta-raspberrypi/recipes-kernel/linux-firmware-rpidistro/linux-firmware-rpidistro_git.bb new file mode 100644 index 000000000..1f63c329c --- /dev/null +++ b/meta-raspberrypi/recipes-kernel/linux-firmware-rpidistro/linux-firmware-rpidistro_git.bb @@ -0,0 +1,96 @@ +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" +SRCREV = "b518de45ced519e8f7a499f4778100173402ae43" +PV = "0.0+git${SRCPV}" + +S = "${WORKDIR}/git" + +inherit allarch + +CLEANBROKEN = "1" + +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" diff --git a/meta-raspberrypi/recipes-kernel/linux-firmware/linux-firmware_%.bbappend b/meta-raspberrypi/recipes-kernel/linux-firmware/linux-firmware_%.bbappend deleted file mode 100644 index c0f9e1704..000000000 --- a/meta-raspberrypi/recipes-kernel/linux-firmware/linux-firmware_%.bbappend +++ /dev/null @@ -1,69 +0,0 @@ -# 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 - -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 -} - -# NB: Must prepend, else these become empty and their content is left in -# the roll-up package which precedes them. -PACKAGES_prepend_rpi = "\ - ${PN}-bcm43430a1-hcd \ - ${PN}-bcm4345c0-hcd \ -" - -# ${PN}-bcm43455 package and brcmfmac43455-sdio from linux-firmware -# is already included in the oe-core recipe, so don't add it to PACKAGES -# again, the version from raspbian-nf seems a bit newer: -# $ strings ./1_0.0+gitAUTOINC+d114732723+86e88fbf03+e28cd7ee86-r0/git/brcm/brcmfmac43455-sdio.bin | grep Ver -# Version: 7.45.18.0 CRC: d7226371 Date: Sun 2015-03-01 07:31:57 PST Ucode Ver: 1026.2 FWID: 01-6a2c8ad4 -# $ strings ./1_0.0+gitAUTOINC+d114732723+86e88fbf03+e28cd7ee86-r0/raspbian-nf/brcm/brcmfmac43455-sdio.bin | grep Ver -# Version: 7.45.154 (r684107 CY) CRC: b1f79383 Date: Tue 2018-02-27 03:18:17 PST Ucode Ver: 1043.2105 FWID 01-4fbe0b04 - -# 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" - -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" diff --git a/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi-rt_4.14.bb b/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi-rt_4.14.bb new file mode 100644 index 000000000..1a990fe0f --- /dev/null +++ b/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi-rt_4.14.bb @@ -0,0 +1,9 @@ +LINUX_VERSION ?= "4.14.81" + +SRCREV = "acf578d07d57480674d5361df9171fe9528765cb" +SRC_URI = " \ + git://github.com/raspberrypi/linux.git;branch=rpi-4.14.y-rt \ + file://0001-menuconfig-check-lxdiaglog.sh-Allow-specification-of.patch \ + " + +require linux-raspberrypi.inc diff --git a/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi.inc b/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi.inc index 03acfb410..01f2425ed 100644 --- a/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi.inc +++ b/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi.inc @@ -35,8 +35,6 @@ CMDLINE_append += ' ${@oe.utils.conditional("DISABLE_RPI_BOOT_LOGO", "1", "logo. CMDLINE_DEBUG ?= "" CMDLINE_append = " ${CMDLINE_DEBUG}" -KERNEL_INITRAMFS ?= '${@oe.utils.conditional("INITRAMFS_IMAGE_BUNDLE", "1", "1", "", d)}' - KERNEL_MODULE_AUTOLOAD += "${@bb.utils.contains("MACHINE_FEATURES", "pitft28r", "stmpe-ts", "", d)}" # A LOADADDR is needed when building a uImage format kernel. This value is not @@ -101,7 +99,7 @@ do_configure_prepend() { # Localversion kernel_configure_variable LOCALVERSION "\"\"" - if [ ! -z "${KERNEL_INITRAMFS}" ]; then + if [ "${INITRAMFS_IMAGE_BUNDLE}" = "1" ]; then kernel_configure_variable OVERLAY_FS y kernel_configure_variable SQUASHFS y kernel_configure_variable UBIFS_FS y @@ -109,7 +107,7 @@ do_configure_prepend() { # Activate the configuration options for VC4 VC4GRAPHICS="${@bb.utils.contains("MACHINE_FEATURES", "vc4graphics", "1", "0", d)}" - if [ ${VC4GRAPHICS} = "1" ]; then + if [ "${VC4GRAPHICS}" = "1" ]; then kernel_configure_variable I2C_BCM2835 y kernel_configure_variable DRM y kernel_configure_variable DRM_FBDEV_EMULATION y diff --git a/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi_4.14.bb b/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi_4.14.bb index 54936fa79..d11b59926 100644 --- a/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi_4.14.bb +++ b/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi_4.14.bb @@ -1,6 +1,6 @@ -LINUX_VERSION ?= "4.14.68" +LINUX_VERSION ?= "4.14.79" -SRCREV = "8c8666ff6c1254d325cfa300d16f9928b3f31fc0" +SRCREV = "9ca74c53cbda1f104bce3b33850fd3bf33eb3793" SRC_URI = " \ git://github.com/raspberrypi/linux.git;branch=rpi-4.14.y \ file://0001-menuconfig-check-lxdiaglog.sh-Allow-specification-of.patch \ |