diff --git a/conf/machine/include/rpi-default-versions.inc b/conf/machine/include/rpi-default-versions.inc index 8ff2839..a29fd5e 100644 --- a/conf/machine/include/rpi-default-versions.inc +++ b/conf/machine/include/rpi-default-versions.inc @@ -1,3 +1,4 @@ # RaspberryPi BSP default versions PREFERRED_VERSION_linux-raspberrypi ??= "5.15.%" +PREFERRED_VERSION_linux-raspberrypi-v7 ??= "${PREFERRED_VERSION_linux-raspberrypi}" diff --git a/conf/machine/raspberrypi-armv7.conf b/conf/machine/raspberrypi-armv7.conf new file mode 100644 index 0000000..cb2e5a2 --- /dev/null +++ b/conf/machine/raspberrypi-armv7.conf @@ -0,0 +1,39 @@ +# SPDX-FileCopyrightText: Andrei Gherzan +# +# SPDX-License-Identifier: MIT + +#@TYPE: Machine +#@NAME: RaspberryPi Development Boards (32bit) +#@DESCRIPTION: Machine configuration for the RaspberryPi boards in 32 bit mode + +DEFAULTTUNE ?= "cortexa7thf-neon-vfpv4" +require conf/machine/include/arm/armv7a/tune-cortexa7.inc +include conf/machine/include/rpi-base.inc + +# This machine includes by default the kernel for v7l. We hook in support for +# v7. +RASPBERRYPI_v7_KERNEL = "linux-raspberrypi-v7" +RASPBERRYPI_v7_KERNEL_PACKAGE_NAME = "kernel-v7" +RASPBERRYPI_v7_KERNEL_FILE ?= "kernel7.img" +# We don't need a lot for v7l because it is the default provider, +# virtual/kernel. +RASPBERRYPI_v7l_KERNEL_FILE ?= "kernel7l.img" + +MACHINE_FEATURES += "pci" +MACHINE_EXTRA_RRECOMMENDS += "\ + linux-firmware-rpidistro-bcm43430 \ + linux-firmware-rpidistro-bcm43436 \ + linux-firmware-rpidistro-bcm43436s \ + linux-firmware-rpidistro-bcm43455 \ + linux-firmware-rpidistro-bcm43456 \ + bluez-firmware-rpidistro-bcm43430a1-hcd \ + bluez-firmware-rpidistro-bcm43430b0-hcd \ + bluez-firmware-rpidistro-bcm4345c0-hcd \ + bluez-firmware-rpidistro-bcm4345c5-hcd \ +" + +# FIXME: This machine doesn't support u-boot (yet) +RPI_EXTRA_IMAGE_BOOT_FILES = " \ + ${KERNEL_IMAGETYPE};${RASPBERRYPI_v7l_KERNEL_FILE} \ + ${RASPBERRYPI_v7_KERNEL_PACKAGE_NAME}/${KERNEL_IMAGETYPE};${RASPBERRYPI_v7_KERNEL_FILE} \ +" diff --git a/docs/layer-contents.md b/docs/layer-contents.md index d12cb88..aa28a23 100644 --- a/docs/layer-contents.md +++ b/docs/layer-contents.md @@ -16,6 +16,22 @@ Note: The raspberrypi3 machines include support for Raspberry Pi 3B+. +## Multi-board Machines + +This layer generally provides support for machines that are targetting a single +Raspberry Pi board (or a very few subsets of them). This is so that the build +infrastructure can tune and tweak the configuration with the flexibility to +optimise for both runtime performance and disk storage. + +For usecases where compatibility of more boards is required, the layer provides +machines that are tagetting a wider support of Raspberry Pi boards. + +### raspberrypi-armv7 + +This machine targets support for all the ARMv7-based Raspberry Pi boards. It +will pull in the firmware and deploy the kernel image and kernel modules for +all the relevant boards. + ## Images * rpi-test-image diff --git a/recipes-kernel/linux/linux-raspberrypi-v7.inc b/recipes-kernel/linux/linux-raspberrypi-v7.inc new file mode 100644 index 0000000..77debc4 --- /dev/null +++ b/recipes-kernel/linux/linux-raspberrypi-v7.inc @@ -0,0 +1,13 @@ +# SPDX-FileCopyrightText: Andrei Gherzan +# +# SPDX-License-Identifier: MIT + +KBUILD_DEFCONFIG:raspberrypi-armv7 = "bcm2709_defconfig" +KERNEL_PACKAGE_NAME = "${RASPBERRYPI_v7_KERNEL_PACKAGE_NAME}" +PROVIDES:remove = "virtual/kernel" + +KERNEL_IMAGETYPE_DIRECT ?= "zImage" + +COMPATIBLE_MACHINE = "^raspberrypi-armv7$" + +KERNEL_DEVICETREE = "" diff --git a/recipes-kernel/linux/linux-raspberrypi-v7_5.10.bb b/recipes-kernel/linux/linux-raspberrypi-v7_5.10.bb new file mode 100644 index 0000000..d594b61 --- /dev/null +++ b/recipes-kernel/linux/linux-raspberrypi-v7_5.10.bb @@ -0,0 +1,6 @@ +# SPDX-FileCopyrightText: Andrei Gherzan +# +# SPDX-License-Identifier: MIT + +require linux-raspberrypi-v7.inc +require linux-raspberrypi_5.10.bb diff --git a/recipes-kernel/linux/linux-raspberrypi-v7_5.15.bb b/recipes-kernel/linux/linux-raspberrypi-v7_5.15.bb new file mode 100644 index 0000000..7883985 --- /dev/null +++ b/recipes-kernel/linux/linux-raspberrypi-v7_5.15.bb @@ -0,0 +1,6 @@ +# SPDX-FileCopyrightText: Andrei Gherzan +# +# SPDX-License-Identifier: MIT + +require linux-raspberrypi-v7.inc +require linux-raspberrypi_5.15.bb diff --git a/recipes-kernel/linux/linux-raspberrypi.inc b/recipes-kernel/linux/linux-raspberrypi.inc index 6362a73..2a651bd 100644 --- a/recipes-kernel/linux/linux-raspberrypi.inc +++ b/recipes-kernel/linux/linux-raspberrypi.inc @@ -26,6 +26,7 @@ KBUILD_DEFCONFIG:raspberrypi3 ?= "bcm2709_defconfig" KBUILD_DEFCONFIG:raspberrypi3-64 ?= "bcmrpi3_defconfig" KBUILD_DEFCONFIG:raspberrypi4 ?= "bcm2711_defconfig" KBUILD_DEFCONFIG:raspberrypi4-64 ?= "bcm2711_defconfig" +KBUILD_DEFCONFIG:raspberrypi-armv7 ?= "bcm2711_defconfig" LINUX_VERSION_EXTENSION ?= "" diff --git a/recipes-kernel/linux/linux-raspberrypi_5.15.bb b/recipes-kernel/linux/linux-raspberrypi_5.15.bb index db93537..468737c 100644 --- a/recipes-kernel/linux/linux-raspberrypi_5.15.bb +++ b/recipes-kernel/linux/linux-raspberrypi_5.15.bb @@ -17,3 +17,15 @@ SRC_URI = " \ require linux-raspberrypi.inc KERNEL_DTC_FLAGS += "-@ -H epapr" + +RDEPENDS:${KERNEL_PACKAGE_NAME}:raspberrypi-armv7:append = " ${RASPBERRYPI_v7_KERNEL_PACKAGE_NAME}" +RDEPENDS:${KERNEL_PACKAGE_NAME}-base:raspberrypi-armv7:append = " ${RASPBERRYPI_v7_KERNEL_PACKAGE_NAME}-base" +RDEPENDS:${KERNEL_PACKAGE_NAME}-image:raspberrypi-armv7:append = " ${RASPBERRYPI_v7_KERNEL_PACKAGE_NAME}-image" +RDEPENDS:${KERNEL_PACKAGE_NAME}-dev:raspberrypi-armv7:append = " ${RASPBERRYPI_v7_KERNEL_PACKAGE_NAME}-dev" +RDEPENDS:${KERNEL_PACKAGE_NAME}-vmlinux:raspberrypi-armv7:append = " ${RASPBERRYPI_v7_KERNEL_PACKAGE_NAME}-vmlinux" +RDEPENDS:${KERNEL_PACKAGE_NAME}-modules:raspberrypi-armv7:append = " ${RASPBERRYPI_v7_KERNEL_PACKAGE_NAME}-modules" +RDEPENDS:${KERNEL_PACKAGE_NAME}-dbg:raspberrypi-armv7:append = " ${RASPBERRYPI_v7_KERNEL_PACKAGE_NAME}-dbg" + +DEPLOYDEP = "" +DEPLOYDEP:raspberrypi-armv7 = "${RASPBERRYPI_v7_KERNEL}:do_deploy" +do_deploy[depends] += "${DEPLOYDEP}"