diff options
Diffstat (limited to 'meta-raspberrypi')
30 files changed, 864 insertions, 69 deletions
diff --git a/meta-raspberrypi/.github/actions/docker-build/action.yml b/meta-raspberrypi/.github/actions/docker-build/action.yml index b91668e366..c1a37f602b 100644 --- a/meta-raspberrypi/.github/actions/docker-build/action.yml +++ b/meta-raspberrypi/.github/actions/docker-build/action.yml @@ -32,7 +32,7 @@ runs: n=1 until [ "$n" -gt "$tries" ]; do echo "Building the docker image ${{ inputs.docker_image }}-${{ inputs.id }}... try $n..." - if docker build . -f "${{ inputs.docker_image }}/Dockerfile" -t "${{ inputs.docker_image }}-${{ inputs.id }}"; then + if docker build --no-cache . -f "${{ inputs.docker_image }}/Dockerfile" -t "${{ inputs.docker_image }}-${{ inputs.id }}"; then # This can fail if a dangling images cleaning job runs in # parallel. So we try this a couple of times to minimize # conflict. This is because while building, docker creates a diff --git a/meta-raspberrypi/.github/workflows/compliance.yml b/meta-raspberrypi/.github/workflows/compliance.yml index ec489f0095..1207acbdd3 100644 --- a/meta-raspberrypi/.github/workflows/compliance.yml +++ b/meta-raspberrypi/.github/workflows/compliance.yml @@ -23,7 +23,9 @@ jobs: id: ${{ github.event.number }} - name: Do DCO check run: | - docker run --rm -v "$GITHUB_WORKSPACE:/work:ro" \ + docker run --rm --security-opt apparmor=unconfined \ + --security-opt seccomp=unconfined \ + -v "$GITHUB_WORKSPACE:/work:ro" \ --env "BASE_REF=$GITHUB_BASE_REF" \ "dco-check-${{ github.event.number }}" - name: Cleanup temporary docker image diff --git a/meta-raspberrypi/.github/workflows/docker-images/README.md b/meta-raspberrypi/.github/workflows/docker-images/README.md index 86cfddc191..7b8fce8b24 100644 --- a/meta-raspberrypi/.github/workflows/docker-images/README.md +++ b/meta-raspberrypi/.github/workflows/docker-images/README.md @@ -17,5 +17,5 @@ passing the appropriate `-f` argument. Here is an example for building the `dco-check` image: ``` -docker build . -f dco-check/Dockerfile -t dco-check +docker build --no-cache . -f dco-check/Dockerfile -t dco-check ``` diff --git a/meta-raspberrypi/.github/workflows/docker-images/yocto-builder/Dockerfile b/meta-raspberrypi/.github/workflows/docker-images/yocto-builder/Dockerfile index 87221b9e79..728b473d62 100644 --- a/meta-raspberrypi/.github/workflows/docker-images/yocto-builder/Dockerfile +++ b/meta-raspberrypi/.github/workflows/docker-images/yocto-builder/Dockerfile @@ -2,20 +2,21 @@ # # SPDX-License-Identifier: MIT -FROM ubuntu:20.04 +FROM ubuntu:22.04 ARG DEBIAN_FRONTEND="noninteractive" -RUN apt-get update -qq +RUN apt-get update -q -y RUN apt-get install -y eatmydata # Yocto/OE build host dependencies # Keep this in sync with -# https://git.yoctoproject.org/poky/tree/documentation/poky.yaml +# https://git.yoctoproject.org/poky/tree/documentation/poky.yaml.in +# https://git.yoctoproject.org/poky/tree/documentation/tools/host_packages_scripts/ubuntu_essential.sh RUN eatmydata apt-get install -qq -y \ - gawk wget git diffstat unzip texinfo gcc build-essential chrpath \ - socat cpio python3 python3-pip python3-pexpect xz-utils debianutils \ - iputils-ping python3-git python3-jinja2 libegl1-mesa libsdl1.2-dev \ - pylint3 xterm python3-subunit mesa-common-dev zstd liblz4-tool + build-essential chrpath cpio debianutils diffstat file gawk gcc \ + git iputils-ping libacl1 liblz4-tool locales python3 python3-git \ + python3-jinja2 python3-pexpect python3-pip python3-subunit socat \ + texinfo unzip wget xz-utils zstd # en_US.UTF-8 is required by the build system RUN eatmydata apt-get install -qq -y locales \ @@ -29,6 +30,9 @@ RUN eatmydata apt-get clean && rm -rf /var/lib/apt/lists/* RUN echo "dash dash/sh boolean false" | debconf-set-selections \ && dpkg-reconfigure dash +# Fix the resource exhaustion problem on the build infrastructure +RUN echo 'vm.max_map_count = 4048576' >> /etc/sysctl.conf + # Run under normal user called 'ci' RUN useradd --create-home --uid 1000 --shell /usr/bin/bash ci USER ci diff --git a/meta-raspberrypi/.github/workflows/yocto-builds.yml b/meta-raspberrypi/.github/workflows/yocto-builds.yml index 408d25ea29..87b009b0a8 100644 --- a/meta-raspberrypi/.github/workflows/yocto-builds.yml +++ b/meta-raspberrypi/.github/workflows/yocto-builds.yml @@ -66,7 +66,8 @@ jobs: if: steps.changed-files-specific.outputs.any_changed == 'true' - name: Build the image run: | - docker run --rm \ + docker run --rm --security-opt apparmor=unconfined \ + --security-opt seccomp=unconfined \ -v "$GITHUB_WORKSPACE:/work:ro" \ -v "$DL_DIR:$DL_DIR:rw" \ -v "$SSTATE_DIR:$SSTATE_DIR:rw" \ @@ -76,6 +77,7 @@ jobs: --env "IMAGE=${{ matrix.image }}" \ --env "DL_DIR=$DL_DIR" \ --env "SSTATE_DIR=$SSTATE_DIR" \ + --ulimit "nofile=1024:1048576" \ "yocto-builder-${{ github.event.number }}" \ /entrypoint-build.sh if: steps.changed-files-specific.outputs.any_changed == 'true' diff --git a/meta-raspberrypi/.github/workflows/yocto-layer.yml b/meta-raspberrypi/.github/workflows/yocto-layer.yml index fa11815f1e..555241b105 100644 --- a/meta-raspberrypi/.github/workflows/yocto-layer.yml +++ b/meta-raspberrypi/.github/workflows/yocto-layer.yml @@ -42,7 +42,8 @@ jobs: if: steps.changed-files-specific.outputs.any_changed == 'true' - name: Run yocto-check-layer run: | - docker run --rm -v "$GITHUB_WORKSPACE:/work:ro" \ + docker run --rm --security-opt apparmor=unconfined \ + -v "$GITHUB_WORKSPACE:/work:ro" \ --env "BASE_REF=$GITHUB_BASE_REF" \ "yocto-builder-${{ github.event.number }}" \ /entrypoint-yocto-check-layer.sh diff --git a/meta-raspberrypi/.readthedocs.yaml b/meta-raspberrypi/.readthedocs.yaml index 5e8dc2074d..1438e1750d 100644 --- a/meta-raspberrypi/.readthedocs.yaml +++ b/meta-raspberrypi/.readthedocs.yaml @@ -1,5 +1,7 @@ version: 2 +sphinx: + configuration: docs/conf.py build: os: ubuntu-22.04 tools: diff --git a/meta-raspberrypi/conf/machine/include/rpi-base.inc b/meta-raspberrypi/conf/machine/include/rpi-base.inc index a5fd1a4578..9a8cadec92 100644 --- a/meta-raspberrypi/conf/machine/include/rpi-base.inc +++ b/meta-raspberrypi/conf/machine/include/rpi-base.inc @@ -58,15 +58,30 @@ RPI_KERNEL_DEVICETREE_OVERLAYS ?= " \ overlays/pps-gpio.dtbo \ overlays/rpi-ft5406.dtbo \ overlays/rpi-poe.dtbo \ + overlays/uart0.dtbo \ + overlays/uart0-pi5.dtbo \ + overlays/uart1.dtbo \ + overlays/uart1-pi5.dtbo \ + overlays/uart2.dtbo \ + overlays/uart2-pi5.dtbo \ + overlays/uart3.dtbo \ + overlays/uart3-pi5.dtbo \ + overlays/uart4.dtbo \ + overlays/uart4-pi5.dtbo \ + overlays/uart5.dtbo \ overlays/vc4-fkms-v3d.dtbo \ 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/vc4-kms-dsi-ili9881-7inch.dtbo \ + overlays/rpi-backlight.dtbo \ overlays/w1-gpio.dtbo \ overlays/w1-gpio-pullup.dtbo \ + overlays/w1-gpio-pi5.dtbo \ overlays/wm8960-soundcard.dtbo \ + overlays/bcm2712d0.dtbo \ " RPI_KERNEL_DEVICETREE ?= " \ @@ -86,7 +101,6 @@ RPI_KERNEL_DEVICETREE ?= " \ broadcom/bcm2710-rpi-cm3.dtb \ broadcom/bcm2711-rpi-cm4.dtb \ broadcom/bcm2711-rpi-cm4s.dtb \ - broadcom/bcm2712-rpi-5-b.dtb \ " KERNEL_DEVICETREE ??= " \ diff --git a/meta-raspberrypi/conf/machine/raspberrypi-armv8.conf b/meta-raspberrypi/conf/machine/raspberrypi-armv8.conf index 0128bdc712..0b42309245 100644 --- a/meta-raspberrypi/conf/machine/raspberrypi-armv8.conf +++ b/meta-raspberrypi/conf/machine/raspberrypi-armv8.conf @@ -33,6 +33,10 @@ RPI_KERNEL_DEVICETREE = " \ broadcom/bcm2711-rpi-cm4.dtb \ broadcom/bcm2711-rpi-cm4s.dtb \ broadcom/bcm2712-rpi-5-b.dtb \ + broadcom/bcm2712-rpi-cm5-cm5io.dtb \ + broadcom/bcm2712-rpi-cm5-cm4io.dtb \ + broadcom/bcm2712-rpi-cm5l-cm5io.dtb \ + broadcom/bcm2712-rpi-cm5l-cm4io.dtb \ " SDIMG_KERNELIMAGE ?= "kernel8.img" diff --git a/meta-raspberrypi/conf/machine/raspberrypi5.conf b/meta-raspberrypi/conf/machine/raspberrypi5.conf index 03f15c35fb..636c965af5 100644 --- a/meta-raspberrypi/conf/machine/raspberrypi5.conf +++ b/meta-raspberrypi/conf/machine/raspberrypi5.conf @@ -15,6 +15,10 @@ MACHINE_EXTRA_RRECOMMENDS += "\ RPI_KERNEL_DEVICETREE = " \ broadcom/bcm2712-rpi-5-b.dtb \ + broadcom/bcm2712-rpi-cm5-cm5io.dtb \ + broadcom/bcm2712-rpi-cm5-cm4io.dtb \ + broadcom/bcm2712-rpi-cm5l-cm5io.dtb \ + broadcom/bcm2712-rpi-cm5l-cm4io.dtb \ " SDIMG_KERNELIMAGE ?= "kernel_2712.img" diff --git a/meta-raspberrypi/recipes-bsp/bootfiles/rpi-bootfiles.bb b/meta-raspberrypi/recipes-bsp/bootfiles/rpi-bootfiles.bb index b04f24be22..eb31d54003 100644 --- a/meta-raspberrypi/recipes-bsp/bootfiles/rpi-bootfiles.bb +++ b/meta-raspberrypi/recipes-bsp/bootfiles/rpi-bootfiles.bb @@ -5,14 +5,14 @@ LIC_FILES_CHKSUM = "file://LICENCE.broadcom;md5=c403841ff2837657b2ed8e5bb474ac8d inherit deploy nopackages -RPIFW_DATE ?= "20240319" -SRCREV = "9f24f4bc2bdd07ffd158cfbb4bce88a2efc4c1f5" +RPIFW_DATE ?= "20250430" +SRCREV = "bc7f439c234e19371115e07b57c366df59cc1bc7" SHORTREV = "${@d.getVar("SRCREV", False).__str__()[:7]}" -RPIFW_SRC_URI ?= "https://api.github.com/repos/raspberrypi/firmware/tarball/9f24f4bc2bdd07ffd158cfbb4bce88a2efc4c1f5;downloadfilename=raspberrypi-firmware-${SHORTREV}.tar.gz" +RPIFW_SRC_URI ?= "https://api.github.com/repos/raspberrypi/firmware/tarball/${SRCREV};downloadfilename=raspberrypi-firmware-${SHORTREV}.tar.gz" RPIFW_S ?= "${WORKDIR}/raspberrypi-firmware-${SHORTREV}" SRC_URI = "${RPIFW_SRC_URI}" -SRC_URI[sha256sum] = "4b436f8946b139c6a1202375ef55d4848e3bcd8c1a9cb47000e06d7ecec828f7" +SRC_URI[sha256sum] = "2c027debbef53c86c9ff9197d056d501b95f6ad214ad4db00a8a59b947574eb1" PV = "${RPIFW_DATE}" diff --git a/meta-raspberrypi/recipes-bsp/rpi-eeprom/rpi-eeprom_git.bb b/meta-raspberrypi/recipes-bsp/rpi-eeprom/rpi-eeprom_git.bb index 2e10253e90..f3ca5e31a9 100644 --- a/meta-raspberrypi/recipes-bsp/rpi-eeprom/rpi-eeprom_git.bb +++ b/meta-raspberrypi/recipes-bsp/rpi-eeprom/rpi-eeprom_git.bb @@ -1,15 +1,15 @@ SUMMARY = "Installation scripts and binaries for the Raspberry Pi 4 EEPROM" -DESCRIPTION = "This repository contains the rpi4 bootloader and scripts \ +DESCRIPTION = "This repository contains the rpi4/rpi5 bootloader and scripts \ for updating it in the spi eeprom" LICENSE = "BSD-3-Clause & Broadcom-RPi" -LIC_FILES_CHKSUM = "file://LICENSE;md5=f546ed4f47e9d4c1fe954ecc9d3ef4f3" +LIC_FILES_CHKSUM = "file://LICENSE;md5=a6c5149578a16272119f3f9c13d6549b" SRC_URI = " \ git://github.com/raspberrypi/rpi-eeprom.git;protocol=https;branch=master \ " -SRCREV = "36e58db5c2a2656e553441f4f48f32227809105d" -PV = "v.2024.02.16-2712" +SRCREV = "1bd0a1052b2e74d7af04de18d30b5edb12d8a423" +PV = "v2025.03.10-2712" S = "${WORKDIR}/git" diff --git a/meta-raspberrypi/recipes-bsp/u-boot/files/maxsize.cfg b/meta-raspberrypi/recipes-bsp/u-boot/files/maxsize.cfg new file mode 100644 index 0000000000..1b09831dbf --- /dev/null +++ b/meta-raspberrypi/recipes-bsp/u-boot/files/maxsize.cfg @@ -0,0 +1 @@ +CONFIG_SYS_BOOTM_LEN=0x1000000 diff --git a/meta-raspberrypi/recipes-bsp/u-boot/u-boot_%.bbappend b/meta-raspberrypi/recipes-bsp/u-boot/u-boot_%.bbappend index e50acf5fb3..e575569a57 100644 --- a/meta-raspberrypi/recipes-bsp/u-boot/u-boot_%.bbappend +++ b/meta-raspberrypi/recipes-bsp/u-boot/u-boot_%.bbappend @@ -5,6 +5,7 @@ SRC_URI:append:rpi = " \ " SRC_URI:append:rpi = " file://0001-rpi-always-set-fdt_addr-with-firmware-provided-FDT-address.patch" +SRC_URI:append:raspberrypi4 = " file://maxsize.cfg" DEPENDS:append:rpi = " u-boot-default-script" diff --git a/meta-raspberrypi/recipes-devtools/raspi-utils/raspi-utils_git.bb b/meta-raspberrypi/recipes-devtools/raspi-utils/raspi-utils_git.bb new file mode 100644 index 0000000000..7c31620426 --- /dev/null +++ b/meta-raspberrypi/recipes-devtools/raspi-utils/raspi-utils_git.bb @@ -0,0 +1,53 @@ +SUMMARY = "A collection of scripts and simple applications" +LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM = "file://LICENCE;md5=4c01239e5c3a3d133858dedacdbca63c" + +RCONFLICTS:${PN} = "userland" +DEPENDS:append = " dtc" +PACKAGES =+ " ${PN}-raspinfo" +PACKAGES =+ " ${PN}-ovmerge" +RDEPENDS:${PN}-raspinfo += " bash" +RDEPENDS:${PN}-ovmerge += " perl" + +PV = "1.0+git" + +SRC_URI = "git://github.com/raspberrypi/utils;protocol=https;branch=master" + +SRCREV = "b9c63214c535d7df2b0fa6743b7b3e508363c25a" + +FILES:${PN}:append = " \ + ${datadir}/bash-completion/completions/pinctrl \ + ${datadir}/bash-completion/completions/vcgencmd \ +" +FILES:${PN}-raspinfo += "${bindir}/raspinfo" +FILES:${PN}-ovmerge += "${bindir}/ovmerge" + +S = "${WORKDIR}/git" + +OECMAKE_TARGET_COMPILE = "\ + dtmerge/all \ + eeptools/all \ + otpset/all \ + overlaycheck/all \ + ovmerge/all \ + pinctrl/all \ + raspinfo/all \ + vcgencmd/all \ + vclog/all \ + vcmailbox/all \ +" + +OECMAKE_TARGET_INSTALL = "\ + dtmerge/install \ + eeptools/install \ + otpset/install \ + overlaycheck/install \ + ovmerge/install \ + pinctrl/install \ + raspinfo/install \ + vcgencmd/install \ + vclog/install \ + vcmailbox/install \ +" + +inherit cmake
\ No newline at end of file diff --git a/meta-raspberrypi/recipes-graphics/mesa/mesa/0001-dont-build-clover-frontend.patch b/meta-raspberrypi/recipes-graphics/mesa/mesa/0001-dont-build-clover-frontend.patch new file mode 100644 index 0000000000..5f45f94fea --- /dev/null +++ b/meta-raspberrypi/recipes-graphics/mesa/mesa/0001-dont-build-clover-frontend.patch @@ -0,0 +1,29 @@ +From: Markus Volk <f_l_k@t-online.de> +Date: Sun, 19 Mai 2025 15:34:46 +0100 +Subject: [PATCH] dont build clover frontend + +The clover frontend is deprecated and is always built with opencl, even if +using rusticl. Additionally it adds a reproducibility issue. + +Upstream-Status: Inappropriate [oe-specific] +Signed-off-by: Markus Volk <f_l_k@t-online.de> + +--- a/src/gallium/meson.build 2025-05-07 18:35:10.000000000 +0200 ++++ b/src/gallium/meson.build 2025-05-18 17:05:23.677694272 +0200 +@@ -195,15 +195,11 @@ + else + driver_d3d12 = declare_dependency() + endif +-if with_gallium_clover or with_tests ++if with_tests + # At the moment, clover and gallium/tests are the only two consumers + # for pipe-loader + subdir('targets/pipe-loader') + endif +-if with_gallium_clover +- subdir('frontends/clover') +- subdir('targets/opencl') +-endif + if with_gallium_rusticl + subdir('frontends/rusticl') + subdir('targets/rusticl') diff --git a/meta-raspberrypi/recipes-graphics/mesa/mesa/0001-fix-FTBFS-clc-switch-to-new-non-owned-TargetOptions-.patch b/meta-raspberrypi/recipes-graphics/mesa/mesa/0001-fix-FTBFS-clc-switch-to-new-non-owned-TargetOptions-.patch new file mode 100644 index 0000000000..2633869625 --- /dev/null +++ b/meta-raspberrypi/recipes-graphics/mesa/mesa/0001-fix-FTBFS-clc-switch-to-new-non-owned-TargetOptions-.patch @@ -0,0 +1,39 @@ +From 531c6696d42953cd642dea7bf70153285c7949ae Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Kai=20Wasserb=C3=A4ch?= <kai@dev.carbon-project.org> +Date: Tue, 6 May 2025 14:36:57 +0200 +Subject: [PATCH] fix(FTBFS): clc: switch to new non-owned `TargetOptions` for + LLVM 21 +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Upstream hid the `TargetOptions` in commit 985410f87f2d19910a8d327527fd30062b042b63 + +Use the new `getTargetOpts()` to obtain the `TargetOptions` for +`setTarget()`. + +Upstream-Status: Backport [https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34835] + +Signed-off-by: Kai Wasserbäch <kai@dev.carbon-project.org> +Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/13079 +Reference: https://github.com/llvm/llvm-project/commit/985410f87f2d19910a8d327527fd30062b042b63 +Reviewed-by: Karol Herbst <kherbst@redhat.com> +Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34835> +--- + src/compiler/clc/clc_helpers.cpp | 4 ++++ + 1 file changed, 4 insertions(+) + +--- a/src/compiler/clc/clc_helpers.cpp ++++ b/src/compiler/clc/clc_helpers.cpp +@@ -874,7 +874,11 @@ clc_compile_to_llvm_module(LLVMContext & + diag_opts)); + + c->setTarget(clang::TargetInfo::CreateTargetInfo( ++#if LLVM_VERSION_MAJOR >= 21 ++ c->getDiagnostics(), c->getInvocation().getTargetOpts())); ++#else + c->getDiagnostics(), c->getInvocation().TargetOpts)); ++#endif + + c->getFrontendOpts().ProgramAction = clang::frontend::EmitLLVMOnly; + diff --git a/meta-raspberrypi/recipes-graphics/mesa/mesa/0001-freedreno-don-t-encode-build-path-into-binaries.patch b/meta-raspberrypi/recipes-graphics/mesa/mesa/0001-freedreno-don-t-encode-build-path-into-binaries.patch new file mode 100644 index 0000000000..953a724dc0 --- /dev/null +++ b/meta-raspberrypi/recipes-graphics/mesa/mesa/0001-freedreno-don-t-encode-build-path-into-binaries.patch @@ -0,0 +1,110 @@ +From 027ac36756cc75eea9ed4fee135a351af30b35fd Mon Sep 17 00:00:00 2001 +From: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> +Date: Tue, 16 Jul 2024 12:32:47 +0300 +Subject: [PATCH] freedreno: don't encode build path into binaries + +Encoding build-specific path into installed binaries is generally +frowned upon. It harms the reproducibility of the build and e.g. +OpenEmbedded now considers that to be an error. + +Instead of hardcoding rnn_src_path into the RNN_DEF_PATH define specify +it manually when running the tests. + +Upstream-Status: Submitted [https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30206] +Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> +--- + src/freedreno/afuc/meson.build | 4 ++++ + src/freedreno/decode/meson.build | 4 +++- + src/freedreno/meson.build | 2 +- + 3 files changed, 8 insertions(+), 2 deletions(-) + +diff --git a/src/freedreno/afuc/meson.build b/src/freedreno/afuc/meson.build +index bb7cebf5a748..351cc31ef2de 100644 +--- a/src/freedreno/afuc/meson.build ++++ b/src/freedreno/afuc/meson.build +@@ -56,10 +56,12 @@ if with_tests + asm_fw = custom_target('afuc_test.fw', + output: 'afuc_test.fw', + command: [asm, files('../.gitlab-ci/traces/afuc_test.asm'), '@OUTPUT@'], ++ env: {'RNN_PATH': rnn_src_path}, + ) + asm_fw_a7xx = custom_target('afuc_test_a7xx.fw', + output: 'afuc_test_a7xx.fw', + command: [asm, files('../.gitlab-ci/traces/afuc_test_a7xx.asm'), '@OUTPUT@'], ++ env: {'RNN_PATH': rnn_src_path}, + ) + test('afuc-asm', + diff, +@@ -120,11 +122,13 @@ if cc.sizeof('size_t') > 4 + disasm_fw = custom_target('afuc_test.asm', + output: 'afuc_test.asm', + command: [disasm, '-u', files('../.gitlab-ci/reference/afuc_test.fw')], ++ env: {'RNN_PATH': rnn_src_path}, + capture: true + ) + disasm_fw_a7xx = custom_target('afuc_test_a7xx.asm', + output: 'afuc_test_a7xx.asm', + command: [disasm, '-u', files('../.gitlab-ci/reference/afuc_test_a7xx.fw')], ++ env: {'RNN_PATH': rnn_src_path}, + capture: true + ) + test('afuc-disasm', +diff --git a/src/freedreno/decode/meson.build b/src/freedreno/decode/meson.build +index 469eeb4eb597..dfa1c12d0d9f 100644 +--- a/src/freedreno/decode/meson.build ++++ b/src/freedreno/decode/meson.build +@@ -194,6 +194,7 @@ if dep_lua.found() and dep_libarchive.found() + log = custom_target(name + '.log', + output: name + '.log', + command: [cffdump, '--unit-test', args, files('../.gitlab-ci/traces/' + name + '.rd.gz')], ++ env: {'RNN_PATH': rnn_src_path}, + capture: true, + ) + test('cffdump-' + name, +@@ -247,7 +248,8 @@ if with_tests + output: name + '.log', + command: [crashdec, args, files('../.gitlab-ci/traces/' + name + '.devcore')], + capture: true, +- env: {'GALLIUM_DUMP_CPU': 'false'}, ++ env: {'GALLIUM_DUMP_CPU': 'false', ++ 'RNN_PATH': rnn_src_path}, + ) + + test('crashdec-' + name, +diff --git a/src/freedreno/meson.build b/src/freedreno/meson.build +index 98e49b8fcf0e..145e72597eb9 100644 +--- a/src/freedreno/meson.build ++++ b/src/freedreno/meson.build +@@ -6,7 +6,7 @@ inc_freedreno_rnn = include_directories('rnn') + + rnn_src_path = dir_source_root + '/src/freedreno/registers' + rnn_install_path = get_option('datadir') + '/freedreno/registers' +-rnn_path = rnn_src_path + ':' + get_option('prefix') + '/' + rnn_install_path ++rnn_path = get_option('prefix') + '/' + rnn_install_path + + dep_libarchive = dependency('libarchive', allow_fallback: true, required: false) + dep_libxml2 = dependency('libxml-2.0', allow_fallback: true, required: false) +diff --git a/src/freedreno/registers/gen_header.py b/src/freedreno/registers/gen_header.py +--- a/src/freedreno/registers/gen_header.py ++++ b/src/freedreno/registers/gen_header.py +@@ -885,13 +885,14 @@ The rules-ng-ng source files this header + """) + maxlen = 0 + for filepath in p.xml_files: +- maxlen = max(maxlen, len(filepath)) ++ maxlen = max(maxlen, len(os.path.basename(filepath))) + for filepath in p.xml_files: +- pad = " " * (maxlen - len(filepath)) ++ filename = os.path.basename(filepath) ++ pad = " " * (maxlen - len(filename)) + filesize = str(os.path.getsize(filepath)) + filesize = " " * (7 - len(filesize)) + filesize + filetime = time.ctime(os.path.getmtime(filepath)) +- print("- " + filepath + pad + " (" + filesize + " bytes, from " + filetime + ")") ++ print("- " + filename + pad + " (" + filesize + " bytes, from " + filetime + ")") + if p.copyright_year: + current_year = str(datetime.date.today().year) + print() +--- +2.39.2 + diff --git a/meta-raspberrypi/recipes-graphics/mesa/mesa/0001-meson-misdetects-64bit-atomics-on-mips-clang.patch b/meta-raspberrypi/recipes-graphics/mesa/mesa/0001-meson-misdetects-64bit-atomics-on-mips-clang.patch new file mode 100644 index 0000000000..baa98a0d46 --- /dev/null +++ b/meta-raspberrypi/recipes-graphics/mesa/mesa/0001-meson-misdetects-64bit-atomics-on-mips-clang.patch @@ -0,0 +1,24 @@ +From 02cc21800fe29f566add525e63f619c0536d6e7b Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Mon, 13 Jan 2020 15:23:47 -0800 +Subject: [PATCH] meson misdetects 64bit atomics on mips/clang + +Upstream-Status: Pending +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + src/util/u_atomic.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/util/u_atomic.c b/src/util/u_atomic.c +index 5a5eab4..e499516 100644 +--- a/src/util/u_atomic.c ++++ b/src/util/u_atomic.c +@@ -21,7 +21,7 @@ + * IN THE SOFTWARE. + */ + +-#if defined(MISSING_64BIT_ATOMICS) && defined(HAVE_PTHREAD) ++#if !defined(__clang__) && defined(MISSING_64BIT_ATOMICS) && defined(HAVE_PTHREAD) + + #include <stdint.h> + #include <pthread.h> diff --git a/meta-raspberrypi/recipes-graphics/mesa/mesa_25.1.6.bb b/meta-raspberrypi/recipes-graphics/mesa/mesa_25.1.6.bb new file mode 100644 index 0000000000..b09a5e172e --- /dev/null +++ b/meta-raspberrypi/recipes-graphics/mesa/mesa_25.1.6.bb @@ -0,0 +1,383 @@ +SUMMARY = "A free implementation of the OpenGL API" +DESCRIPTION = "Mesa is an open-source implementation of the OpenGL specification - \ +a system for rendering interactive 3D graphics. \ +A variety of device drivers allows Mesa to be used in many different environments \ +ranging from software emulation to complete hardware acceleration for modern GPUs. \ +Mesa is used as part of the overall Direct Rendering Infrastructure and X.org \ +environment." + +HOMEPAGE = "http://mesa3d.org" +BUGTRACKER = "https://bugs.freedesktop.org" +SECTION = "x11" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://docs/license.rst;md5=ffe678546d4337b732cfd12262e6af11" + +PE = "2" + +SRC_URI = "https://archive.mesa3d.org/mesa-${PV}.tar.xz \ + file://0001-meson-misdetects-64bit-atomics-on-mips-clang.patch \ + file://0001-freedreno-don-t-encode-build-path-into-binaries.patch \ + file://0001-dont-build-clover-frontend.patch \ + file://0001-fix-FTBFS-clc-switch-to-new-non-owned-TargetOptions-.patch \ +" + +SRC_URI[sha256sum] = "9f2b69eb39d2d8717d30a9868fdda3e0c0d3708ba32778bbac8ddb044538ce84" +PV = "25.1.6" + +UPSTREAM_CHECK_GITTAGREGEX = "mesa-(?P<pver>\d+(\.\d+)+)" + +#because we cannot rely on the fact that all apps will use pkgconfig, +#make eglplatform.h independent of MESA_EGL_NO_X11_HEADER +do_install:append() { + # sed can't find EGL/eglplatform.h as it doesn't get installed when glvnd enabled. + # So, check if EGL/eglplatform.h exists before running sed. + if ${@bb.utils.contains('PACKAGECONFIG', 'egl', 'true', 'false', d)} && [ -f ${D}${includedir}/EGL/eglplatform.h ]; then + sed -i -e 's/^#elif defined(__unix__) && defined(EGL_NO_X11)$/#elif defined(__unix__) \&\& defined(EGL_NO_X11) || ${@bb.utils.contains('PACKAGECONFIG', 'x11', '0', '1', d)}/' ${D}${includedir}/EGL/eglplatform.h + fi + # These are ICDs, apps are not supposed to link against them + if ${@bb.utils.contains('PACKAGECONFIG', 'glvnd', 'true', 'false', d)} ; then + rm -f ${D}${libdir}/libEGL_mesa.so ${D}${libdir}/libGLX_mesa.so + fi +} + +DEPENDS = "expat makedepend-native flex-native bison-native libxml2-native zlib chrpath-replacement-native python3-mako-native gettext-native python3-pyyaml-native" +EXTRANATIVEPATH += "chrpath-native" +GLPROVIDES = " \ + ${@bb.utils.contains('PACKAGECONFIG', 'opengl', 'virtual/libgl', '', d)} \ + ${@bb.utils.contains('PACKAGECONFIG', 'gles', 'virtual/libgles1 virtual/libgles2 virtual/libgles3', '', d)} \ + ${@bb.utils.contains('PACKAGECONFIG', 'egl', 'virtual/egl', '', d)} \ +" +PROVIDES = " \ + ${@bb.utils.contains('PACKAGECONFIG', 'glvnd', '', d.getVar('GLPROVIDES'), d)} \ + ${@bb.utils.contains('PACKAGECONFIG', 'gbm', 'virtual/libgbm', '', d)} \ + virtual/mesa \ + " + +inherit meson pkgconfig python3native gettext features_check rust + +BBCLASSEXTEND = "native nativesdk" + +ANY_OF_DISTRO_FEATURES = "opengl vulkan" + +PLATFORMS ??= "${@bb.utils.filter('PACKAGECONFIG', 'x11 wayland', d)}" + +# set the MESA_BUILD_TYPE to either 'release' (default) or 'debug' +# by default the upstream mesa sources build a debug release +# here we assume the user will want a release build by default +MESA_BUILD_TYPE ?= "release" +def check_buildtype(d): + _buildtype = d.getVar('MESA_BUILD_TYPE') + if _buildtype not in ['release', 'debug']: + bb.fatal("unknown build type (%s), please set MESA_BUILD_TYPE to either 'release' or 'debug'" % _buildtype) + if _buildtype == 'debug': + return 'debugoptimized' + return 'plain' +MESON_BUILDTYPE = "${@check_buildtype(d)}" + +EXTRA_OEMESON = " \ + -Dglx-read-only-text=true \ + -Dplatforms='${@",".join("${PLATFORMS}".split())}' \ +" + +def strip_comma(s): + return s.strip(',') + +PACKAGECONFIG = " \ + gallium \ + video-codecs \ + ${@bb.utils.filter('DISTRO_FEATURES', 'x11 vulkan wayland glvnd', d)} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'opengl egl gles gbm virgl', '', d)} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'vulkan', 'zink', '', d)} \ +" + +# skip all Rust dependencies if we are not building OpenCL" +INHIBIT_DEFAULT_RUST_DEPS = "${@bb.utils.contains('PACKAGECONFIG', 'opencl', '', '1', d)}" + +PACKAGECONFIG:append:x86 = " libclc gallium-llvm intel amd nouveau svga" +PACKAGECONFIG:append:x86-64 = " libclc gallium-llvm intel amd nouveau svga" +PACKAGECONFIG:append:i686 = " libclc gallium-llvm intel amd nouveau svga" +PACKAGECONFIG:append:class-native = " libclc gallium-llvm amd nouveau svga" + +# "gbm" requires "opengl" +PACKAGECONFIG[gbm] = "-Dgbm=enabled,-Dgbm=disabled" + +X11_DEPS = "xorgproto virtual/libx11 libxext libxxf86vm libxdamage libxfixes xrandr xorgproto libxshmfence" +# "x11" requires "opengl" +PACKAGECONFIG[x11] = ",-Dglx=disabled,${X11_DEPS}" +PACKAGECONFIG[wayland] = ",,wayland-native wayland libdrm wayland-protocols" + +VULKAN_DRIVERS_AMD = "${@bb.utils.contains('PACKAGECONFIG', 'amd', ',amd', '', d)}" +VULKAN_DRIVERS_ASAHI = "${@bb.utils.contains('PACKAGECONFIG', 'asahi libclc opencl', ',asahi', '', d)}" +VULKAN_DRIVERS_INTEL = "${@bb.utils.contains('PACKAGECONFIG', 'intel libclc', ',intel', '', d)}" +VULKAN_DRIVERS_SWRAST = ",swrast" +# Crashes on x32 +VULKAN_DRIVERS_SWRAST:x86-x32 = "" +VULKAN_DRIVERS_LLVM = "${VULKAN_DRIVERS_SWRAST}${VULKAN_DRIVERS_AMD}${VULKAN_DRIVERS_ASAHI}${VULKAN_DRIVERS_INTEL}" + +VULKAN_DRIVERS = "" +VULKAN_DRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG', 'freedreno', ',freedreno', '', d)}" +VULKAN_DRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG', 'broadcom', ',broadcom', '', d)}" +VULKAN_DRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG', 'gallium-llvm', '${VULKAN_DRIVERS_LLVM}', '', d)}" +VULKAN_DRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG', 'imagination', ',imagination-experimental', '', d)}" +VULKAN_DRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG', 'panfrost', ',panfrost', '', d)}" +PACKAGECONFIG[vulkan] = "-Dvulkan-drivers=${@strip_comma('${VULKAN_DRIVERS}')}, -Dvulkan-drivers='',glslang-native vulkan-loader vulkan-headers" + +# mesa development and testing tools support, per driver +TOOLS = "" +TOOLS_DEPS = "" +TOOLS:append = "${@bb.utils.contains('PACKAGECONFIG', 'etnaviv', ',etnaviv', '', d)}" +TOOLS:append = "${@bb.utils.contains('PACKAGECONFIG', 'freedreno', ',freedreno', '', d)}" +TOOLS:append = "${@bb.utils.contains('PACKAGECONFIG', 'lima', ',lima', '', d)}" +TOOLS:append = "${@bb.utils.contains('PACKAGECONFIG', 'panfrost', ',panfrost', '', d)}" +TOOLS:append = "${@bb.utils.contains('PACKAGECONFIG', 'imagination', ',imagination', '', d)}" + +# dependencies for tools. +TOOLS_DEPS:append = "${@bb.utils.contains('PACKAGECONFIG', 'freedreno', ' ncurses libxml2 ', '', d)}" + +# the fdperf tool requires libconfig (a part of meta-oe) so it needs special +# treatment in addition to the usual 'freedreno tools'. +PACKAGECONFIG[freedreno-fdperf] = ",,libconfig" + +PACKAGECONFIG[tools] = "-Dtools=${@strip_comma('${TOOLS}')}, -Dtools='', ${TOOLS_DEPS}" + +PACKAGECONFIG[opengl] = "-Dopengl=true, -Dopengl=false" +PACKAGECONFIG[glvnd] = "-Dglvnd=enabled, -Dglvnd=disabled, libglvnd" + +# "gles" requires "opengl" +PACKAGECONFIG[gles] = "-Dgles1=enabled -Dgles2=enabled, -Dgles1=disabled -Dgles2=disabled" + +# "egl" requires "opengl" +PACKAGECONFIG[egl] = "-Degl=enabled, -Degl=disabled" + +# "opencl" also requires libclc and gallium-llvm to be present in PKGCONFIG! +# Be sure to enable them both for the target and for the native build. +PACKAGECONFIG[opencl] = "-Dgallium-rusticl=true, -Dgallium-rusticl=false, bindgen-cli-native" + +PACKAGECONFIG[broadcom] = "" +PACKAGECONFIG[etnaviv] = ",,python3-pycparser-native" +PACKAGECONFIG[freedreno] = "" +PACKAGECONFIG[vc4] = "" +PACKAGECONFIG[v3d] = "" +PACKAGECONFIG[zink] = "" + +GALLIUMDRIVERS = "softpipe" +# gallium swrast was found to crash Xorg on startup in x32 qemu +GALLIUMDRIVERS:x86-x32 = "" + +GALLIUMDRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG', 'etnaviv', ',etnaviv', '', d)}" +GALLIUMDRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG', 'freedreno', ',freedreno', '', d)}" +GALLIUMDRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG', 'vc4', ',vc4', '', d)}" +GALLIUMDRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG', 'v3d', ',v3d', '', d)}" +GALLIUMDRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG', 'zink', ',zink', '', d)}" + +GALLIUMDRIVERS_ASAHI = "${@bb.utils.contains('PACKAGECONFIG', 'asahi libclc opencl', ',asahi', '', d)}" +GALLIUMDRIVERS_AMD = "${@bb.utils.contains('PACKAGECONFIG', 'amd', ',r300', '', d)}" +GALLIUMDRIVERS_IRIS = "${@bb.utils.contains('PACKAGECONFIG', 'intel libclc', ',iris', '', d)}" +GALLIUMDRIVERS_NOUVEAU = "${@bb.utils.contains('PACKAGECONFIG', 'nouveau', ',nouveau', '', d)}" +GALLIUMDRIVERS_RADEONSI = "${@bb.utils.contains('PACKAGECONFIG', 'amd', ',radeonsi', '', d)}" +GALLIUMDRIVERS_LLVMPIPE = ",llvmpipe" +# llvmpipe crashes on x32 +GALLIUMDRIVERS_LLVMPIPE:x86-x32 = "" +GALLIUMDRIVERS_SVGA = "${@bb.utils.contains('PACKAGECONFIG', 'svga', ',svga', '', d)}" +GALLIUMDRIVERS_LLVM = "${GALLIUMDRIVERS_LLVMPIPE}${GALLIUMDRIVERS_AMD}${GALLIUMDRIVERS_ASAHI}${GALLIUMDRIVERS_IRIS}${GALLIUMDRIVERS_NOUVEAU}${GALLIUMDRIVERS_RADEONSI}${GALLIUMDRIVERS_SVGA}" + +PACKAGECONFIG[amd] = "" +PACKAGECONFIG[nouveau] = "" +PACKAGECONFIG[svga] = "" +PACKAGECONFIG[virgl] = "" + +GALLIUMDRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG', 'gallium-llvm', '${GALLIUMDRIVERS_LLVM}', '', d)}" +GALLIUMDRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG', 'amd', ',r600', '', d)}" +GALLIUMDRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG', 'virgl', ',virgl', '', d)}" + +MESA_CLC = "system" +MESA_CLC:class-native = "enabled" +INSTALL_MESA_CLC = "false" +INSTALL_MESA_CLC:class-native = "true" +MESA_NATIVE = "mesa-native" +MESA_NATIVE:class-native = "" + +PACKAGECONFIG[gallium] = "-Dgallium-drivers=${@strip_comma('${GALLIUMDRIVERS}')}, -Dgallium-drivers='', libdrm" +PACKAGECONFIG[gallium-llvm] = "-Dllvm=enabled -Dshared-llvm=enabled, -Dllvm=disabled, llvm llvm-native elfutils" +PACKAGECONFIG[libclc] = "-Dmesa-clc=${MESA_CLC} -Dinstall-mesa-clc=${INSTALL_MESA_CLC} -Dmesa-clc-bundle-headers=enabled,,libclc spirv-tools spirv-llvm-translator ${MESA_NATIVE}" +PACKAGECONFIG[va] = "-Dgallium-va=enabled,-Dgallium-va=disabled,libva-initial" +PACKAGECONFIG[vdpau] = "-Dgallium-vdpau=enabled,-Dgallium-vdpau=disabled,libvdpau" + +PACKAGECONFIG[imagination] = "-Dimagination-srv=true,-Dimagination-srv=false" + +PACKAGECONFIG[asahi] = "" + +PACKAGECONFIG[intel] = "" +GALLIUMDRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG', 'intel', ',i915,crocus', '', d)}" + +PACKAGECONFIG[lima] = "" +GALLIUMDRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG', 'lima', ',lima', '', d)}" + +PACKAGECONFIG[panfrost] = "" +GALLIUMDRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG', 'panfrost', ',panfrost', '', d)}" + +PACKAGECONFIG[tegra] = "" +GALLIUMDRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG', 'tegra', ',tegra,nouveau', '', d)}" + +PACKAGECONFIG[vulkan-beta] = "-Dvulkan-beta=true,-Dvulkan-beta=false" + +PACKAGECONFIG[perfetto] = "-Dperfetto=true,-Dperfetto=false,libperfetto" + +PACKAGECONFIG[unwind] = "-Dlibunwind=enabled,-Dlibunwind=disabled,libunwind" + +PACKAGECONFIG[lmsensors] = "-Dlmsensors=enabled,-Dlmsensors=disabled,lmsensors" + +VIDEO_CODECS ?= "${@bb.utils.contains('LICENSE_FLAGS_ACCEPTED', 'commercial', 'all', 'all_free', d)}" +PACKAGECONFIG[video-codecs] = "-Dvideo-codecs=${VIDEO_CODECS}, -Dvideo-codecs=''" + +PACKAGECONFIG[teflon] = "-Dteflon=true, -Dteflon=false" + +# llvmpipe is slow if compiled with -fomit-frame-pointer (e.g. -O2) +FULL_OPTIMIZATION:append = " -fno-omit-frame-pointer" + +CFLAGS:append:armv5 = " -DMISSING_64BIT_ATOMICS" +CFLAGS:append:armv6 = " -DMISSING_64BIT_ATOMICS" + +# Remove the mesa dependency on mesa-dev, as mesa is empty +DEV_PKG_DEPENDENCY = "" + +# GLES2 and GLES3 implementations are packaged in a single library in libgles2-mesa. +# Add a dependency so the GLES3 dev package is associated with its implementation. +RPROVIDES:libgles2-mesa += "libgles3-mesa" +RPROVIDES:libgles2-mesa-dev += "libgles3-mesa-dev" + +RDEPENDS:libopencl-mesa += "${@bb.utils.contains('PACKAGECONFIG', 'opencl', 'libclc spirv-tools spirv-llvm-translator', '', d)}" + +PACKAGES =+ "libegl-mesa libegl-mesa-dev \ + libgallium \ + libgl-mesa libgl-mesa-dev \ + libglx-mesa libglx-mesa-dev \ + libglapi libglapi-dev \ + libgbm libgbm-dev \ + libgles1-mesa libgles1-mesa-dev \ + libgles2-mesa libgles2-mesa-dev \ + libopencl-mesa \ + libteflon \ + mesa-megadriver mesa-vulkan-drivers \ + mesa-vdpau-drivers mesa-tools \ + " + +do_install:append () { + # libwayland-egl has been moved to wayland 1.15+ + rm -f ${D}${libdir}/libwayland-egl* + rm -f ${D}${libdir}/pkgconfig/wayland-egl.pc +} + +# For the packages that make up the OpenGL interfaces, inject variables so that +# they don't get Debian-renamed (which would remove the -mesa suffix), and +# RPROVIDEs/RCONFLICTs on the generic libgl name. +python __anonymous() { + pkgconfig = (d.getVar('PACKAGECONFIG') or "").split() + mlprefix = d.getVar("MLPREFIX") + suffix = "" + if "-native" in d.getVar("PN"): + suffix = "-native" + + for p in ("libegl", "libgl", "libglx", "libgles1", "libgles2", "libgles3", "libopencl"): + fullp = mlprefix + p + "-mesa" + suffix + d.appendVar("RRECOMMENDS:" + fullp, " ${MLPREFIX}mesa-megadriver" + suffix) + + d.setVar("DEBIAN_NOAUTONAME:%slibopencl-mesa%s" % (mlprefix, suffix), "1") + + if 'glvnd' in pkgconfig: + for p in ("libegl", "libglx"): + fullp = mlprefix + p + "-mesa" + suffix + d.appendVar("RPROVIDES:" + fullp, ' virtual-%s-icd' % p) + else: + for p in (("egl", "libegl", "libegl1"), + ("opengl", "libgl", "libgl1"), + ("gles", "libgles1", "libglesv1-cm1"), + ("gles", "libgles2", "libglesv2-2", "libgles3")): + if not p[0] in pkgconfig: + continue + fullp = mlprefix + p[1] + "-mesa" + suffix + pkgs = " " + " ".join(mlprefix + x + suffix for x in p[1:]) + d.setVar("DEBIAN_NOAUTONAME:" + fullp, "1") + d.appendVar("RREPLACES:" + fullp, pkgs) + d.appendVar("RPROVIDES:" + fullp, pkgs) + d.appendVar("RCONFLICTS:" + fullp, pkgs) + + # For -dev, the first element is both the Debian and original name + fullp = mlprefix + p[1] + "-mesa-dev" + suffix + pkgs = " " + mlprefix + p[1] + "-dev" + suffix + d.setVar("DEBIAN_NOAUTONAME:" + fullp, "1") + d.appendVar("RREPLACES:" + fullp, pkgs) + d.appendVar("RPROVIDES:" + fullp, pkgs) + d.appendVar("RCONFLICTS:" + fullp, pkgs) +} + +python mesa_populate_packages() { + pkgs = ['mesa', 'mesa-dev', 'mesa-dbg'] + for pkg in pkgs: + d.setVar("RPROVIDES:%s" % pkg, pkg.replace("mesa", "mesa-dri", 1)) + d.setVar("RCONFLICTS:%s" % pkg, pkg.replace("mesa", "mesa-dri", 1)) + d.setVar("RREPLACES:%s" % pkg, pkg.replace("mesa", "mesa-dri", 1)) + + import re + dri_drivers_root = oe.path.join(d.getVar('PKGD'), d.getVar('libdir'), "dri") + if os.path.isdir(dri_drivers_root): + dri_pkgs = sorted(os.listdir(dri_drivers_root)) + lib_name = d.expand("${MLPREFIX}mesa-megadriver") + for p in dri_pkgs: + m = re.match(r'^(.*)_dri\.so$', p) + if m: + pkg_name = " ${MLPREFIX}mesa-driver-%s" % legitimize_package_name(m.group(1)) + d.appendVar("RPROVIDES:%s" % lib_name, pkg_name) + d.appendVar("RCONFLICTS:%s" % lib_name, pkg_name) + d.appendVar("RREPLACES:%s" % lib_name, pkg_name) +} + +PACKAGESPLITFUNCS =+ "mesa_populate_packages" + +PACKAGES_DYNAMIC += "^mesa-driver-.*" +PACKAGES_DYNAMIC:class-native = "^mesa-driver-.*-native" + +FILES:mesa-megadriver = "${libdir}/dri/* ${datadir}/drirc.d" +FILES:mesa-vulkan-drivers = "${libdir}/libvulkan_*.so ${libdir}/libpowervr_rogue.so ${datadir}/vulkan" +FILES:${PN}-vdpau-drivers = "${libdir}/vdpau/*.so.*" +FILES:libegl-mesa = "${libdir}/libEGL*.so.* ${datadir}/glvnd/egl_vendor.d" +FILES:libgbm = "${libdir}/libgbm.so.* ${libdir}/gbm/*_gbm.so" +FILES:libgallium = "${libdir}/libgallium-*.so" +FILES:libgles1-mesa = "${libdir}/libGLESv1*.so.*" +FILES:libgles2-mesa = "${libdir}/libGLESv2.so.*" +FILES:libgl-mesa = "${libdir}/libGL.so.*" +FILES:libglx-mesa = "${libdir}/libGLX*.so.*" +FILES:libopencl-mesa = "${libdir}/lib*OpenCL.so* ${sysconfdir}/OpenCL/vendors/*.icd" +FILES:libglapi = "${libdir}/libglapi.so.*" + +FILES:${PN}-dev = "${libdir}/pkgconfig/dri.pc ${includedir}/GL/internal/dri_interface.h ${includedir}/vulkan ${libdir}/vdpau/*.so" +FILES:libegl-mesa-dev = "${libdir}/libEGL*.* ${includedir}/EGL ${includedir}/KHR ${libdir}/pkgconfig/egl.pc" +FILES:libgbm-dev = "${libdir}/libgbm.* ${libdir}/pkgconfig/gbm.pc ${includedir}/gbm.h ${includedir}/gbm_backend_abi.h" +FILES:libgl-mesa-dev = "${libdir}/libGL.* ${includedir}/GL/*.h ${libdir}/pkgconfig/gl.pc" +FILES:libglapi-dev = "${libdir}/libglapi.*" +FILES:libgles1-mesa-dev = "${libdir}/libGLESv1*.* ${includedir}/GLES ${libdir}/pkgconfig/glesv1*.pc" +FILES:libgles2-mesa-dev = "${libdir}/libGLESv2.* ${includedir}/GLES2 ${includedir}/GLES3 ${libdir}/pkgconfig/glesv2.pc" +FILES:libteflon = "${libdir}/libteflon.so" +# catch all to get all the tools and data +FILES:${PN}-tools = "${bindir} ${datadir}" +ALLOW_EMPTY:${PN}-tools = "1" + +# All DRI drivers are symlinks to libdril_dri.so +INSANE_SKIP:${PN}-megadriver += "dev-so" + +# OpenCL ICDs package also ship correspondig .so files, there is no -dev package +INSANE_SKIP:libopencl-mesa += "dev-so" + +# Fix upgrade path from mesa to mesa-megadriver +RREPLACES:mesa-megadriver = "mesa" +RCONFLICTS:mesa-megadriver = "mesa" +RPROVIDES:mesa-megadriver = "mesa" + +# Use this newer version only for rpi MACHINEs +COMPATIBLE_MACHINE = "^rpi$" +# This version doesn't have kmsro and dri3 added by +# recipes-graphics/mesa/mesa_%.bbappend +# already removed in master branch with: +# https://github.com/agherzan/meta-raspberrypi/pull/1456 +# https://github.com/agherzan/meta-raspberrypi/pull/1472 +PACKAGECONFIG:remove:rpi = "kmsro dri3" diff --git a/meta-raspberrypi/recipes-graphics/wayland/wayland-protocols_1.45.bb b/meta-raspberrypi/recipes-graphics/wayland/wayland-protocols_1.45.bb new file mode 100644 index 0000000000..7ef86e11c0 --- /dev/null +++ b/meta-raspberrypi/recipes-graphics/wayland/wayland-protocols_1.45.bb @@ -0,0 +1,27 @@ +SUMMARY = "Collection of additional Wayland protocols" +DESCRIPTION = "Wayland protocols that add functionality not \ +available in the Wayland core protocol. Such protocols either add \ +completely new functionality, or extend the functionality of some other \ +protocol either in Wayland core, or some other protocol in \ +wayland-protocols." +HOMEPAGE = "http://wayland.freedesktop.org" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://COPYING;md5=c7b12b6702da38ca028ace54aae3d484 \ + file://stable/presentation-time/presentation-time.xml;endline=26;md5=4646cd7d9edc9fa55db941f2d3a7dc53" + +SRC_URI = "https://gitlab.freedesktop.org/wayland/wayland-protocols/-/releases/${PV}/downloads/wayland-protocols-${PV}.tar.xz" +SRC_URI[sha256sum] = "4d2b2a9e3e099d017dc8107bf1c334d27bb87d9e4aff19a0c8d856d17cd41ef0" + +UPSTREAM_CHECK_URI = "https://gitlab.freedesktop.org/wayland/wayland-protocols/-/tags" +UPSTREAM_CHECK_REGEX = "releases/(?P<pver>.+)" + +DEPENDS += "wayland-native" + +inherit meson pkgconfig allarch + +EXTRA_OEMESON += "-Dtests=false" + +BBCLASSEXTEND = "native nativesdk" + +# Use this newer version only for rpi MACHINEs +COMPATIBLE_MACHINE = "^rpi$" diff --git a/meta-raspberrypi/recipes-kernel/linux-firmware-rpidistro/linux-firmware-rpidistro/0001-Default-43455-firmware-to-standard-variant.patch b/meta-raspberrypi/recipes-kernel/linux-firmware-rpidistro/linux-firmware-rpidistro/0001-Default-43455-firmware-to-standard-variant.patch deleted file mode 100644 index f67d95b22c..0000000000 --- a/meta-raspberrypi/recipes-kernel/linux-firmware-rpidistro/linux-firmware-rpidistro/0001-Default-43455-firmware-to-standard-variant.patch +++ /dev/null @@ -1,28 +0,0 @@ -From b9db43e36ad0942d33cb4db5b394abd722862568 Mon Sep 17 00:00:00 2001 -From: Andrei Gherzan <andrei.gherzan@huawei.com> -Date: Fri, 9 Sep 2022 20:28:06 +0200 -Subject: [PATCH] Default 43455 firmware to standard variant - -The firmware for 43455 is loaded as a symlink: brcmfmac43455-sdio.bin. -This symlink is now broken as the debian package handles the right -target of this symlink through a postinstall. We don't have that logic -here so we default to the standard variant. - -Upstream-Status: Inappropriate [issue reported at https://github.com/RPi-Distro/firmware-nonfree/issues/26] -Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com> ---- - debian/config/brcm80211/brcm/brcmfmac43455-sdio.bin | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/debian/config/brcm80211/brcm/brcmfmac43455-sdio.bin b/debian/config/brcm80211/brcm/brcmfmac43455-sdio.bin -index 9c39208..b914838 120000 ---- a/debian/config/brcm80211/brcm/brcmfmac43455-sdio.bin -+++ b/debian/config/brcm80211/brcm/brcmfmac43455-sdio.bin -@@ -1 +1 @@ --../cypress/cyfmac43455-sdio.bin -\ No newline at end of file -+../cypress/cyfmac43455-sdio-standard.bin -\ No newline at end of file --- -2.25.1 - diff --git a/meta-raspberrypi/recipes-kernel/linux-firmware-rpidistro/linux-firmware-rpidistro/0002-Default-all-RPi-43455-boards-to-standard-variant.patch b/meta-raspberrypi/recipes-kernel/linux-firmware-rpidistro/linux-firmware-rpidistro/0002-Default-all-RPi-43455-boards-to-standard-variant.patch new file mode 100644 index 0000000000..745fdb629e --- /dev/null +++ b/meta-raspberrypi/recipes-kernel/linux-firmware-rpidistro/linux-firmware-rpidistro/0002-Default-all-RPi-43455-boards-to-standard-variant.patch @@ -0,0 +1,79 @@ +From 20741d848c32e0fb2e4841cf8bbc9ec3d198bb6b Mon Sep 17 00:00:00 2001 +From: Omri Sarig <omri.sarig@prevas.dk> +Date: Thu, 9 Jan 2025 19:00:10 +0100 +Subject: [PATCH 2/2] Default all RPi 43455 boards to standard variant + +As the patch above explains, the symlink that is being used by the +brcmfmac43455-sdio.* files is one that is created by the Debian system, +which we do not have in our implementation. Therefore, when the system +tries to load these files, an error message is generated. + +By changing the symlinks to be to the standard variant, the problem is +solved for the build. + +The code is also working without this patch - when the driver is unable +to load the board-specific file (such as +brcmfmac43455-sdio.raspberrypi,3-model-a-plus.bin), it reverts to using +the base file (brcmfmac43455-sdio.bin), which is a correct link (as it +is fixed in the patch above). However, the driver is still generating an +error message in this case, which is being solved by linking the +board-specific files to the standard variant as well. + +Upstream-Status: Inappropriate [issue reported at https://github.com/RPi-Distro/firmware-nonfree/issues/26] +Signed-off-by: Omri Sarig <omri.sarig@prevas.dk> +--- + .../brcm/brcmfmac43455-sdio.raspberrypi,3-model-a-plus.bin | 2 +- + .../brcm/brcmfmac43455-sdio.raspberrypi,3-model-b-plus.bin | 2 +- + .../brcm/brcmfmac43455-sdio.raspberrypi,4-compute-module.bin | 2 +- + .../brcm80211/brcm/brcmfmac43455-sdio.raspberrypi,4-model-b.bin | 2 +- + .../brcm80211/brcm/brcmfmac43455-sdio.raspberrypi,5-model-b.bin | 2 +- + 5 files changed, 5 insertions(+), 5 deletions(-) + +diff --git a/debian/config/brcm80211/brcm/brcmfmac43455-sdio.raspberrypi,3-model-a-plus.bin b/debian/config/brcm80211/brcm/brcmfmac43455-sdio.raspberrypi,3-model-a-plus.bin +index 9c39208..b914838 120000 +--- a/debian/config/brcm80211/brcm/brcmfmac43455-sdio.raspberrypi,3-model-a-plus.bin ++++ b/debian/config/brcm80211/brcm/brcmfmac43455-sdio.raspberrypi,3-model-a-plus.bin +@@ -1 +1 @@ +-../cypress/cyfmac43455-sdio.bin +\ No newline at end of file ++../cypress/cyfmac43455-sdio-standard.bin +\ No newline at end of file +diff --git a/debian/config/brcm80211/brcm/brcmfmac43455-sdio.raspberrypi,3-model-b-plus.bin b/debian/config/brcm80211/brcm/brcmfmac43455-sdio.raspberrypi,3-model-b-plus.bin +index 9c39208..b914838 120000 +--- a/debian/config/brcm80211/brcm/brcmfmac43455-sdio.raspberrypi,3-model-b-plus.bin ++++ b/debian/config/brcm80211/brcm/brcmfmac43455-sdio.raspberrypi,3-model-b-plus.bin +@@ -1 +1 @@ +-../cypress/cyfmac43455-sdio.bin +\ No newline at end of file ++../cypress/cyfmac43455-sdio-standard.bin +\ No newline at end of file +diff --git a/debian/config/brcm80211/brcm/brcmfmac43455-sdio.raspberrypi,4-compute-module.bin b/debian/config/brcm80211/brcm/brcmfmac43455-sdio.raspberrypi,4-compute-module.bin +index 9c39208..b914838 120000 +--- a/debian/config/brcm80211/brcm/brcmfmac43455-sdio.raspberrypi,4-compute-module.bin ++++ b/debian/config/brcm80211/brcm/brcmfmac43455-sdio.raspberrypi,4-compute-module.bin +@@ -1 +1 @@ +-../cypress/cyfmac43455-sdio.bin +\ No newline at end of file ++../cypress/cyfmac43455-sdio-standard.bin +\ No newline at end of file +diff --git a/debian/config/brcm80211/brcm/brcmfmac43455-sdio.raspberrypi,4-model-b.bin b/debian/config/brcm80211/brcm/brcmfmac43455-sdio.raspberrypi,4-model-b.bin +index 9c39208..b914838 120000 +--- a/debian/config/brcm80211/brcm/brcmfmac43455-sdio.raspberrypi,4-model-b.bin ++++ b/debian/config/brcm80211/brcm/brcmfmac43455-sdio.raspberrypi,4-model-b.bin +@@ -1 +1 @@ +-../cypress/cyfmac43455-sdio.bin +\ No newline at end of file ++../cypress/cyfmac43455-sdio-standard.bin +\ No newline at end of file +diff --git a/debian/config/brcm80211/brcm/brcmfmac43455-sdio.raspberrypi,5-model-b.bin b/debian/config/brcm80211/brcm/brcmfmac43455-sdio.raspberrypi,5-model-b.bin +index 9c39208..b914838 120000 +--- a/debian/config/brcm80211/brcm/brcmfmac43455-sdio.raspberrypi,5-model-b.bin ++++ b/debian/config/brcm80211/brcm/brcmfmac43455-sdio.raspberrypi,5-model-b.bin +@@ -1 +1 @@ +-../cypress/cyfmac43455-sdio.bin +\ No newline at end of file ++../cypress/cyfmac43455-sdio-standard.bin +\ No newline at end of file +-- +2.34.1 + 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 index 1b4305820e..df5dcd92d3 100644 --- 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 @@ -7,7 +7,7 @@ SECTION = "kernel" LICENSE = "GPL-2.0-only & binary-redist-Cypress-rpidistro & Synaptics-rpidistro" LIC_FILES_CHKSUM = "\ - file://debian/copyright;md5=291ee5385b4cf74b10c5fb5a46a7bbc6 \ + file://debian/copyright;md5=454e44c688dc909e16223e4aee63568c \ " # Where these are no common licenses, set NO_GENERIC_LICENSE so that the # license files will be copied from the fetched source. @@ -16,10 +16,10 @@ NO_GENERIC_LICENSE[Synaptics-rpidistro] = "debian/copyright" LICENSE_FLAGS = "synaptics-killswitch" SRC_URI = "git://github.com/RPi-Distro/firmware-nonfree;branch=bookworm;protocol=https \ - file://0001-Default-43455-firmware-to-standard-variant.patch \ + file://0002-Default-all-RPi-43455-boards-to-standard-variant.patch \ " -SRCREV = "223ccf3a3ddb11b3ea829749fbbba4d65b380897" -PV = "20230625-2+rpt2" +SRCREV = "c9d3ae6584ab79d19a4f94ccf701e888f9f87a53" +PV = "20240709-2~bpo12+1+rpt3" S = "${WORKDIR}/git" inherit allarch @@ -27,6 +27,11 @@ inherit allarch do_configure[noexec] = "1" do_compile[noexec] = "1" +# The minimal firmware doesn't work with Raspberry Pi 5, so default to the +# standard firmware +CYFMAC43455_SDIO_FIRMWARE ??= "minimal" +CYFMAC43455_SDIO_FIRMWARE:raspberrypi5 ??= "standard" + do_install() { install -d ${D}${nonarch_base_libdir}/firmware/brcm ${D}${nonarch_base_libdir}/firmware/cypress @@ -43,8 +48,12 @@ do_install() { done cp -R --no-dereference --preserve=mode,links -v debian/config/brcm80211/cypress/* ${D}${nonarch_base_libdir}/firmware/cypress/ + ln -s cyfmac43455-sdio-${CYFMAC43455_SDIO_FIRMWARE}.bin ${D}${nonarch_base_libdir}/firmware/cypress/cyfmac43455-sdio.bin rm ${D}${nonarch_base_libdir}/firmware/cypress/README.txt + + install -d ${D}${sysconfdir}/modprobe.d + install -m 0644 debian/rpi-brcmfmac.conf ${D}${sysconfdir}/modprobe.d/ } PACKAGES = "\ @@ -55,6 +64,7 @@ PACKAGES = "\ ${PN}-bcm43455 \ ${PN}-bcm43456 \ ${PN}-license \ + ${PN}-module-conf \ " LICENSE:${PN}-bcm43430 = "binary-redist-Cypress-rpidistro" @@ -85,13 +95,14 @@ FILES:${PN}-bcm43455 = " \ " FILES:${PN}-bcm43456 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43456*" FILES:${PN}-license = "${nonarch_base_libdir}/firmware/copyright.firmware-nonfree-rpidistro" - -RDEPENDS:${PN}-bcm43430 += "${PN}-license" -RDEPENDS:${PN}-bcm43436 += "${PN}-license" -RDEPENDS:${PN}-bcm43436s += "${PN}-license" -RDEPENDS:${PN}-bcm43439 += "${PN}-license" -RDEPENDS:${PN}-bcm43455 += "${PN}-license" -RDEPENDS:${PN}-bcm43456 += "${PN}-license" +FILES:${PN}-module-conf = "${sysconfdir}/modprobe.d" + +RDEPENDS:${PN}-bcm43430 += "${PN}-license ${PN}-module-conf" +RDEPENDS:${PN}-bcm43436 += "${PN}-license ${PN}-module-conf" +RDEPENDS:${PN}-bcm43436s += "${PN}-license ${PN}-module-conf" +RDEPENDS:${PN}-bcm43439 += "${PN}-license ${PN}-module-conf" +RDEPENDS:${PN}-bcm43455 += "${PN}-license ${PN}-module-conf" +RDEPENDS:${PN}-bcm43456 += "${PN}-license ${PN}-module-conf" RCONFLICTS:${PN}-bcm43430 = "linux-firmware-raspbian-bcm43430" RCONFLICTS:${PN}-bcm43436 = "linux-firmware-bcm43436" diff --git a/meta-raspberrypi/recipes-kernel/linux/files/android-drivers.cfg b/meta-raspberrypi/recipes-kernel/linux/files/android-drivers.cfg index f74ac0e1c7..f1259a1653 100644 --- a/meta-raspberrypi/recipes-kernel/linux/files/android-drivers.cfg +++ b/meta-raspberrypi/recipes-kernel/linux/files/android-drivers.cfg @@ -1,8 +1,3 @@ -CONFIG_ANDROID=y - #CONFIG_ANDROID_BINDERFS is not set CONFIG_ANDROID_BINDER_IPC=y CONFIG_ANDROID_BINDER_DEVICES="binder" - -CONFIG_ASHMEM=y - diff --git a/meta-raspberrypi/recipes-kernel/linux/files/vc4graphics.cfg b/meta-raspberrypi/recipes-kernel/linux/files/vc4graphics.cfg index 0b4ba48434..3e5c19b7b8 100644 --- a/meta-raspberrypi/recipes-kernel/linux/files/vc4graphics.cfg +++ b/meta-raspberrypi/recipes-kernel/linux/files/vc4graphics.cfg @@ -1,4 +1,5 @@ CONFIG_I2C_BCM2835=y +CONFIG_I2C_BRCMSTB=y CONFIG_DRM=y CONFIG_DRM_FBDEV_EMULATION=y CONFIG_DRM_VC4=y diff --git a/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi-v7_6.12.bb b/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi-v7_6.12.bb new file mode 100644 index 0000000000..f5677085c1 --- /dev/null +++ b/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi-v7_6.12.bb @@ -0,0 +1,6 @@ +# SPDX-FileCopyrightText: Andrei Gherzan <andrei.gherzan@huawei.com> +# +# SPDX-License-Identifier: MIT + +require linux-raspberrypi-v7.inc +require linux-raspberrypi_6.12.bb diff --git a/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi.inc b/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi.inc index e62ff3ff7c..036ff220c1 100644 --- a/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi.inc +++ b/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi.inc @@ -28,7 +28,7 @@ KBUILD_DEFCONFIG:raspberrypi ?= "bcmrpi_defconfig" KBUILD_DEFCONFIG:raspberrypi-cm3 ?= "bcm2709_defconfig" KBUILD_DEFCONFIG:raspberrypi2 ?= "bcm2709_defconfig" KBUILD_DEFCONFIG:raspberrypi3 ?= "bcm2709_defconfig" -KBUILD_DEFCONFIG:raspberrypi3-64 ?= "bcmrpi3_defconfig" +KBUILD_DEFCONFIG:raspberrypi3-64 ?= "bcm2711_defconfig" KBUILD_DEFCONFIG:raspberrypi4 ?= "bcm2711_defconfig" KBUILD_DEFCONFIG:raspberrypi4-64 ?= "bcm2711_defconfig" KBUILD_DEFCONFIG:raspberrypi-armv7 ?= "bcm2711_defconfig" diff --git a/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi_6.12.bb b/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi_6.12.bb new file mode 100644 index 0000000000..e9b7951684 --- /dev/null +++ b/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi_6.12.bb @@ -0,0 +1,31 @@ +LINUX_VERSION ?= "6.12.25" +LINUX_RPI_BRANCH ?= "rpi-6.12.y" +LINUX_RPI_KMETA_BRANCH ?= "yocto-6.12" + +SRCREV_machine = "3dd2c2c507c271d411fab2e82a2b3b7e0b6d3f16" +SRCREV_meta = "1f6ab68a1d86836bf1b82b791df03da3cfeacb3f" + +KMETA = "kernel-meta" + +SRC_URI = " \ + git://github.com/raspberrypi/linux.git;name=machine;branch=${LINUX_RPI_BRANCH};protocol=https \ + git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=${LINUX_RPI_KMETA_BRANCH};destsuffix=${KMETA} \ + file://powersave.cfg \ + file://android-drivers.cfg \ + " + +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}" diff --git a/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi_6.6.bb b/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi_6.6.bb index b4d9953e1e..3b67f16542 100644 --- a/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi_6.6.bb +++ b/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi_6.6.bb @@ -1,9 +1,9 @@ -LINUX_VERSION ?= "6.6.22" +LINUX_VERSION ?= "6.6.63" LINUX_RPI_BRANCH ?= "rpi-6.6.y" LINUX_RPI_KMETA_BRANCH ?= "yocto-6.6" -SRCREV_machine = "c04af98514c26014a4f29ec87b3ece95626059bd" -SRCREV_meta = "6a24861d6504575a4a9f92366285332d47c7e111" +SRCREV_machine = "e442e5c1ab6bff5b5460b4fc949beb72aaf77970" +SRCREV_meta = "52ff0d75713ce61962b325a2090bd55e216f0cf3" KMETA = "kernel-meta" |
