diff --git a/.github/workflows/yocto-builds.yml b/.github/workflows/yocto-builds.yml index 93f9f46d6..408d25ea2 100644 --- a/.github/workflows/yocto-builds.yml +++ b/.github/workflows/yocto-builds.yml @@ -25,6 +25,7 @@ jobs: - raspberrypi3 - raspberrypi4-64 - raspberrypi4 + - raspberrypi5 - raspberrypi-cm3 - raspberrypi-cm - raspberrypi-armv7 diff --git a/conf/machine/include/rpi-base.inc b/conf/machine/include/rpi-base.inc index 472f18efa..c87ab97d8 100644 --- a/conf/machine/include/rpi-base.inc +++ b/conf/machine/include/rpi-base.inc @@ -54,6 +54,7 @@ RPI_KERNEL_DEVICETREE_OVERLAYS ?= " \ overlays/vc4-fkms-v3d-pi4.dtbo \ overlays/vc4-kms-v3d.dtbo \ overlays/vc4-kms-v3d-pi4.dtbo \ + overlays/vc4-kms-v3d-pi5.dtbo \ overlays/vc4-kms-dsi-7inch.dtbo \ overlays/w1-gpio.dtbo \ overlays/w1-gpio-pullup.dtbo \ @@ -77,6 +78,7 @@ RPI_KERNEL_DEVICETREE ?= " \ bcm2710-rpi-cm3.dtb \ bcm2711-rpi-cm4.dtb \ bcm2711-rpi-cm4s.dtb \ + bcm2712-rpi-5-b.dtb \ " KERNEL_DEVICETREE ??= " \ diff --git a/conf/machine/raspberrypi-armv8.conf b/conf/machine/raspberrypi-armv8.conf index 8d412ba18..0128bdc71 100644 --- a/conf/machine/raspberrypi-armv8.conf +++ b/conf/machine/raspberrypi-armv8.conf @@ -32,6 +32,7 @@ RPI_KERNEL_DEVICETREE = " \ broadcom/bcm2711-rpi-400.dtb \ broadcom/bcm2711-rpi-cm4.dtb \ broadcom/bcm2711-rpi-cm4s.dtb \ + broadcom/bcm2712-rpi-5-b.dtb \ " SDIMG_KERNELIMAGE ?= "kernel8.img" diff --git a/conf/machine/raspberrypi5.conf b/conf/machine/raspberrypi5.conf new file mode 100644 index 000000000..8c38637a2 --- /dev/null +++ b/conf/machine/raspberrypi5.conf @@ -0,0 +1,26 @@ +#@TYPE: Machine +#@NAME: RaspberryPi 5 Development Board (64bit) +#@DESCRIPTION: Machine configuration for the RaspberryPi 5 in 64 bits mode + +require conf/machine/include/arm/armv8-2a/tune-cortexa76.inc +include conf/machine/include/rpi-base.inc + +MACHINE_FEATURES += "pci" +MACHINE_EXTRA_RRECOMMENDS += "\ + linux-firmware-rpidistro-bcm43455 \ + bluez-firmware-rpidistro-bcm4345c0-hcd \ + linux-firmware-rpidistro-bcm43456 \ + bluez-firmware-rpidistro-bcm4345c5-hcd \ +" + +RPI_KERNEL_DEVICETREE = " \ + broadcom/bcm2712-rpi-5-b.dtb \ +" + +SDIMG_KERNELIMAGE ?= "kernel_2712.img" +SERIAL_CONSOLES ?= "115200;ttyAMA10" + +VC4DTBO ?= "vc4-kms-v3d" + +# "zImage" not supported on arm64 and ".gz" images not supported by bootloader yet +KERNEL_IMAGETYPE_DIRECT ?= "Image" diff --git a/recipes-bsp/bootfiles/rpi-config_git.bb b/recipes-bsp/bootfiles/rpi-config_git.bb index ee0f407be..737815977 100644 --- a/recipes-bsp/bootfiles/rpi-config_git.bb +++ b/recipes-bsp/bootfiles/rpi-config_git.bb @@ -317,6 +317,13 @@ do_deploy() { echo "# Enable One-Wire Interface" >> $CONFIG echo "dtoverlay=w1-gpio" >> $CONFIG fi + + # Reduce config.txt file size to avoid corruption and + # to boot successfully Raspberry Pi 5. The issue has + # been reported to related projects: + # https://github.com/raspberrypi/firmware/issues/1848 + # https://github.com/Evilpaul/RPi-config/issues/9 + sed -i '/^##/d' $CONFIG } do_deploy:append:raspberrypi3-64() { diff --git a/recipes-bsp/u-boot/u-boot_%.bbappend b/recipes-bsp/u-boot/u-boot_%.bbappend index e50acf5fb..78b3e484a 100644 --- a/recipes-bsp/u-boot/u-boot_%.bbappend +++ b/recipes-bsp/u-boot/u-boot_%.bbappend @@ -12,3 +12,6 @@ do_install:append:rpi () { install -d ${D}${sysconfdir} install -m 0644 ${WORKDIR}/fw_env.config ${D}${sysconfdir}/fw_env.config } + +# Temporary avoid Raspberry Pi 5 because U-Boot has not been ported yet +COMPATIBLE_MACHINE:raspberrypi5 = "(-)" diff --git a/recipes-kernel/linux/linux-raspberrypi.inc b/recipes-kernel/linux/linux-raspberrypi.inc index b77d1c4cf..e62ff3ff7 100644 --- a/recipes-kernel/linux/linux-raspberrypi.inc +++ b/recipes-kernel/linux/linux-raspberrypi.inc @@ -33,6 +33,7 @@ KBUILD_DEFCONFIG:raspberrypi4 ?= "bcm2711_defconfig" KBUILD_DEFCONFIG:raspberrypi4-64 ?= "bcm2711_defconfig" KBUILD_DEFCONFIG:raspberrypi-armv7 ?= "bcm2711_defconfig" KBUILD_DEFCONFIG:raspberrypi-armv8 ?= "bcm2711_defconfig" +KBUILD_DEFCONFIG:raspberrypi5 ?= "bcm2712_defconfig" LINUX_VERSION_EXTENSION ?= ""