65 Commits

Author SHA1 Message Date
Martin Jansa
5c540d5447 mesa, wayland-protocols: use separate recipe instead of bbappend
Fix
https://github.com/agherzan/meta-raspberrypi/pull/1484

Avoid llvm runtime dependency to avoid issues in builds with meta-clang:

ERROR: Multiple .bb files are due to be built which each provide llvm:
  meta-clang/recipes-devtools/clang/clang_git.bb
  oe-core/meta/recipes-devtools/llvm/llvm_18.1.6.bb
A list of tasks depending on these providers is shown and may help explain where the dependency comes from.
meta-clang/recipes-devtools/clang/clang_git.bb has unique dependees:
  oe-core/meta/recipes-graphics/mesa/mesa_24.0.7.bb:do_prepare_recipe_sysroot
  oe-core/meta/recipes-graphics/mesa/mesa_24.0.7.bb:do_package
  meta-atlas/meta-atlas/recipes-core/images/atlas-image-video.bb:do_populate_lic_deploy
  oe-core/meta/recipes-graphics/mesa/mesa_24.0.7.bb:do_collect_spdx_deps
  meta-atlas/meta-atlas/recipes-core/images/atlas-image-video.bb:do_populate_interfaces_deploy
oe-core/meta/recipes-devtools/llvm/llvm_18.1.6.bb has unique dependees:
  oe-core/meta/recipes-graphics/mesa/mesa_24.0.7.bb:do_package_qa
  oe-core/meta/recipes-graphics/mesa/mesa_24.0.7.bb:do_create_runtime_spdx
It could be that one recipe provides something the other doesn't and should. The following provider and runtime provider differences may be helpful.
meta-clang/recipes-devtools/clang/clang_git.bb has unique provides:
  clang
meta-clang/recipes-devtools/clang/clang_git.bb has unique rprovides:
  clang-dbg
  clang-libclang-cpp
  liblldb
  llvm-linker-tools
  ^clang-locale-.*
  clang-libllvm
  lldb
  clang-format
  clang
  clang-dev
  clang-locale
  clang-lldb-python
  libclang
  clang-src
  clang-doc
  clang-staticdev
  lldb-server
  clang-tidy
  clang-tools
oe-core/meta/recipes-devtools/llvm/llvm_18.1.6.bb has unique provides:

oe-core/meta/recipes-devtools/llvm/llvm_18.1.6.bb has unique rprovides:
  llvm
  llvm-dbg
  llvm-libllvm
  llvm-src
  llvm-dev
  llvm-liboptremarks
  llvm-locale
  llvm-llvmhello
  llvm-liblto
  llvm-staticdev
  llvm-bugpointpasses
  llvm-doc
  ^llvm-locale-.*

check_data_file_clashes: Package clang-libllvm wants to install file rootfs/usr/lib/libLLVM.so.18.1
But that file is already provided by package  * llvm

Also avoid:
  python __anonymous() {
      if d.getVar('SOC_FAMILY') == 'rpi' and d.getVar("PN") == d.getVar("BPN"):
          d.setVarFlag("SRC_URI", "sha256sum", "4d2b2a9e3e099d017dc8107bf1c334d27bb87d9e4aff19a0c8d856d17cd41ef0")
  }
This doesn't work for multilib builds where PN != BPN (e.g. lib32-wayland-protocols)

It is easier to just add separate recipes with COMPATIBLE_MACHINE
restriction instead of modifying the recipes for all MACHINEs with
bbappend and then trying to limit it to rpi MACHINEs with overrides
(e.g. why is whole recipe duplicated in wayland-protocols bbappend
doesn't make any sense to me).

breakage like this in stable branches is bad, these bbappends are hard
to avoid (without BBMASKing them and then reintroducing the necessary
part of original mesa bbappend). Now with separate recipes people can
at least opt-out by setting P_V to original scarthgap versions:

PREFERRED_VERSION_mesa:rpi = "24.%"
PREFERRED_VERSION_wayland-protocols:rpi = "1.33"

Signed-off-by: Martin Jansa <martin2.jansa@lgepartner.com>
2025-09-17 11:27:08 +01:00
Leon Anavi
3a39209118 mesa: wayland-protocols: Fix signatures
Make the upgrade bbappends conditional for Raspberry Pi to fix
issues with signatures. This way the layer passes successfully
test_signatures from:

yocto-check-layer --with-software-layer-signature-check

This work was sponsored by GOVCERT.LU.

Suggested-by: Denys Dmytriyenko <denys@konsulko.com>
Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
2025-09-17 11:27:08 +01:00
Leon Anavi
1cdcc4fc24 mesa_%.bbappend: DISTRO_FEATURES for wayland
Conditionally add wayland-protocols to DEPENDS and RDEPENDS if
variable DISTRO_FEATURES includes wayland.

This work was sponsored by GOVCERT.LU.

Suggested-by: Daniel F. Dickinson <daniel@d-f-d.ca>
Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
2025-09-17 11:27:08 +01:00
Leon Anavi
ac7cff3702 mesa: Upgrade 25.1.3 -> 25.1.6
Upgrade to release 25.1.6:

- v3dv: regression in vkAllocateMemory importing gbm bo
- Vulkan WSI (and zink) use threads on X11 even when the X
  connection isn't thread-safe
- sddm-greeter-qt segfault when using nvk+zink
- [regression][bisected] [FirePro W4100]: crashing/rebooting
- Descriptor set layout with binding flags fails due to indices
  not matching bindings
- piglit bindless texture tests crash
- [radeonsi] Artifacts in Team Fortress 2 (bisected)
- eglgears_wayland segfault on zink+nvk with PRIME
- vn_renderer_virtgpu.c:13:10: fatal error: 'xf86drm.h' file not
  found
- brw: mad instruction printing broken on Gfx11
- radv: RGB9E5 rendering does not ignore alpha write mask

This work was sponsored by GOVCERT.LU.

Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
2025-09-17 11:27:08 +01:00
Leon Anavi
16c5f1d0f2 mesa: Upgrade 24.3.1 -> 25.1.3
Upgrade to release 25.1.3:

- A bug fix release which fixes bugs found since the 25.1.2 release
- Implements the OpenGL 4.6 API, but the version reported by
  glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
  glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver
  being used. Some drivers don't support all the features required
  in OpenGL 4.6. OpenGL 4.6 is only available if requested at
  context creation. Compatibility contexts may report a lower
  version depending on each driver.
- Implements the Vulkan 1.4 API, but the version reported by the
  apiVersion property of the VkPhysicalDeviceProperties struct
  depends on the particular driver being used.

For Raspberry Pi this upgrade brings the following fixes:

- v3dv: vkcube-wayland crashes on raspberry pi 5 kernel 6.12

This work was sponsored by GOVCERT.LU.

Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
2025-09-17 11:27:08 +01:00
Leon Anavi
5edde73409 wayland-protocols: Upgrade 1.38 -> 1.45
Upgrade wayland-protocols to version 1.45 following the upstream:
https://git.openembedded.org/openembedded-core/commit/meta/recipes-graphics/wayland/wayland-protocols_1.45.bb?id=6d158db297a1b790fdf7f201eb3a1e47bb9bc272

This work was sponsored by GOVCERT.LU.

Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
2025-09-17 11:27:08 +01:00
Bassem Nomany
7a699af78e mesa: update to 24.3.1
Upgrade to latest official mesa release.

Fixes DRM DSI linking to missing and non exisiting library
drm-rp1-dsi_dri.so on mesa 24.0.7 from poky scarthgap
and styhead.

    https://github.com/agherzan/meta-raspberrypi/issues/1389

Signed-off-by: Bassem Nomany <bassem.nomany@id8-engineering.io>
Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
Signed-off-by: Adrian Ratiu <adrian.ratiu@collabora.com>
2025-09-17 11:27:08 +01:00
Martin Jansa
1ff318c32b Revert "rpi-default-versions: Switch default kernel to 6.12"
This reverts commit 8c916b683d.

Change like this doesn't belong to stable branch, people who
want to use 6.12 can easily switch the P_V in their config.

Signed-off-by: Martin Jansa <martin2.jansa@lgepartner.com>
2025-08-09 08:41:53 -07:00
Leon Anavi
388c37d1f6 rpi-base.inc: vc4-kms-dsi-ili9881-7inch.dtbo
Add vc4-kms-dsi-ili9881-7inch.dtbo for the Raspberry Pi Touch
Display 2 to RPI_KERNEL_DEVICETREE_OVERLAYS.

This work was sponsored by GOVCERT.LU.

Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
2025-07-23 12:34:18 -07:00
Florin Sarbu
f20ae60d7c linux-raspberrypi.inc: Change defconfig for RPi3 64 bits
Switch to bcm2711_defconfig for RPi3 64 bits as per
https://github.com/raspberrypi/linux/pull/6688

Signed-off-by: Florin Sarbu <florin@balena.io>
2025-07-23 12:34:18 -07:00
Martin Jansa
6465f798d4 armstubs, rpi-config: add whitespace around assignments
With:
https://lists.openembedded.org/g/bitbake-devel/message/17508
there are WARNINGs like:

WARNING: meta-raspberrypi/recipes-bsp/bootfiles/rpi-config_git.bb: meta-raspberrypi/recipes-bsp/bootfiles/rpi-config_git.bb:21 has a lack of whitespace around the assignment: 'PITFT="${@bb.utils.contains("MACHINE_FEATURES", "pitft", "1", "0", d)}"'
WARNING: meta-raspberrypi/recipes-bsp/bootfiles/rpi-config_git.bb: meta-raspberrypi/recipes-bsp/bootfiles/rpi-config_git.bb:22 has a lack of whitespace around the assignment: 'PITFT22="${@bb.utils.contains("MACHINE_FEATURES", "pitft22", "1", "0", d)}"'
WARNING: meta-raspberrypi/recipes-bsp/bootfiles/rpi-config_git.bb: meta-raspberrypi/recipes-bsp/bootfiles/rpi-config_git.bb:23 has a lack of whitespace around the assignment: 'PITFT28r="${@bb.utils.contains("MACHINE_FEATURES", "pitft28r", "1", "0", d)}"'
WARNING: meta-raspberrypi/recipes-bsp/bootfiles/rpi-config_git.bb: meta-raspberrypi/recipes-bsp/bootfiles/rpi-config_git.bb:24 has a lack of whitespace around the assignment: 'PITFT28c="${@bb.utils.contains("MACHINE_FEATURES", "pitft28c", "1", "0", d)}"'
WARNING: meta-raspberrypi/recipes-bsp/bootfiles/rpi-config_git.bb: meta-raspberrypi/recipes-bsp/bootfiles/rpi-config_git.bb:25 has a lack of whitespace around the assignment: 'PITFT35r="${@bb.utils.contains("MACHINE_FEATURES", "pitft35r", "1", "0", d)}"'
WARNING: meta-raspberrypi/recipes-bsp/bootfiles/rpi-config_git.bb: meta-raspberrypi/recipes-bsp/bootfiles/rpi-config_git.bb:27 has a lack of whitespace around the assignment: 'VC4GRAPHICS="${@bb.utils.contains("MACHINE_FEATURES", "vc4graphics", "1", "0", d)}"'
WARNING: meta-raspberrypi/recipes-bsp/bootfiles/rpi-config_git.bb: meta-raspberrypi/recipes-bsp/bootfiles/rpi-config_git.bb:38 has a lack of whitespace around the assignment: 'WM8960="${@bb.utils.contains("MACHINE_FEATURES", "wm8960", "1", "0", d)}"'
WARNING: meta-raspberrypi/recipes-bsp/armstubs/armstubs.bb: meta-raspberrypi/recipes-bsp/armstubs/armstubs.bb:14 has a lack of whitespace around the assignment: 'export CC7="${CC}"'
WARNING: meta-raspberrypi/recipes-bsp/armstubs/armstubs.bb: meta-raspberrypi/recipes-bsp/armstubs/armstubs.bb:15 has a lack of whitespace around the assignment: 'export LD7="${LD}"'
WARNING: meta-raspberrypi/recipes-bsp/armstubs/armstubs.bb: meta-raspberrypi/recipes-bsp/armstubs/armstubs.bb:16 has a lack of whitespace around the assignment: 'export OBJCOPY7="${OBJCOPY}"'
WARNING: meta-raspberrypi/recipes-bsp/armstubs/armstubs.bb: meta-raspberrypi/recipes-bsp/armstubs/armstubs.bb:17 has a lack of whitespace around the assignment: 'export OBJDUMP7="${OBJDUMP}"'
WARNING: meta-raspberrypi/recipes-bsp/armstubs/armstubs.bb: meta-raspberrypi/recipes-bsp/armstubs/armstubs.bb:18 has a lack of whitespace around the assignment: 'export CC8="${CC}"'
WARNING: meta-raspberrypi/recipes-bsp/armstubs/armstubs.bb: meta-raspberrypi/recipes-bsp/armstubs/armstubs.bb:19 has a lack of whitespace around the assignment: 'export LD8="${LD}"'
WARNING: meta-raspberrypi/recipes-bsp/armstubs/armstubs.bb: meta-raspberrypi/recipes-bsp/armstubs/armstubs.bb:20 has a lack of whitespace around the assignment: 'export OBJCOPY8="${OBJCOPY}"'
WARNING: meta-raspberrypi/recipes-bsp/armstubs/armstubs.bb: meta-raspberrypi/recipes-bsp/armstubs/armstubs.bb:21 has a lack of whitespace around the assignment: 'export OBJDUMP8="${OBJDUMP} -maarch64"'

Signed-off-by: Martin Jansa <martin.jansa@gmail.com>
2025-07-23 12:34:18 -07:00
Markus Volk
cd2dfa02c0 rpi-bootfiles: update to latest release
Signed-off-by: Markus Volk <f_l_k@t-online.de>
2025-07-23 12:34:18 -07:00
Markus Volk
ba5252c166 rpi-default-versions: Switch default kernel to 6.12
Signed-off-by: Markus Volk <f_l_k@t-online.de>
2025-07-23 12:34:18 -07:00
Markus Volk
c467dd28de linux-raspberrypi: update 6.12.2 -> 6.12.25
6.12 is now the default in RPiOS and firmware switched to 6.12 initially in raspberrypi/firmware@fe200a5
now it's on 6.12.25

Signed-off-by: Markus Volk <f_l_k@t-online.de>
2025-07-23 12:34:18 -07:00
Damiano Ferrari
0619c2e7bf rpi-bootfiles: Update to latest release
Signed-off-by: Damiano Ferrari <damiano.ferrari@ferrarigrowtech.com>
2025-07-23 12:34:18 -07:00
Damiano Ferrari
c54018e6a1 rpi-eeprom: Update to latest release
Signed-off-by: Damiano Ferrari <damiano.ferrari@ferrarigrowtech.com>
2025-07-23 12:34:18 -07:00
Martin Jansa
75ac34a338 docker-build: use --no-cache
* --no-cache is needed to actually call apt update instead of using it
  from docker cache and then failing to fetch pruned packages as shown:
  https://github.com/agherzan/meta-raspberrypi/actions/runs/16327036376/job/46119768952?pr=1491

Signed-off-by: Martin Jansa <martin.jansa@gmail.com>
2025-07-18 20:14:56 -07:00
Leon Anavi
1059a239ca .github/workflows: seccomp=unconfined
Run docker without the default seccomp profile

Suggested-by: Martin Steegmanns <martin.steegmanns@govcert.etat.lu>
Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
2025-05-09 08:35:55 -07:00
Leon Anavi
2aa34651a7 .github/workflows: Disable apparmor
Add --security-opt apparmor=unconfined to docker cmdline.

Suggested-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
2025-05-09 08:35:55 -07:00
Leon Anavi
48c571a537 Dockerfile: Increase vm.max_map_count
Fix the resource exhaustion problem on the build infrastructure.

Suggested-by: Stu Westerman @stu-spp
Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
2025-05-09 08:35:55 -07:00
Leon Anavi
dcf586cb7b yocto-builds.yml: Set ulimit
Add --ulimit "nofile=1024:1048576" to yocto-builds.yml.

Suggested-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
2025-05-09 08:35:55 -07:00
Leon Anavi
54ed1f7c65 yocto-builder/Dockerfile: Ubuntu 22.04
Upgrade to Ubuntu 22.04 because it is compatible with the Yocto
Project release Walnascar and provides a newer Python version.

Fixes:

RuntimeError: Sorry, python 3.9.0 or later is required for this version of bitbake

This work was sponsored by GOVCERT.LU.

Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
2025-05-09 08:35:55 -07:00
Jan Vermaete
3ba4438d9d doc: added raspberrypi5 to the list of supported machines
Signed-off-by: Jan Vermaete <jan.vermaete@gmail.com>
2025-04-12 11:25:01 -07:00
Leon Anavi
cd558f77b6 u-boot_%.bbappend: Increase CONFIG_SYS_BOOTM_LEN
Increase CONFIG_SYS_BOOTM_LEN for machine raspberrypi4 (32-bit)
because the kernel size has increased. This fixes the following
issue when booting an image with U-Boot:

   Image Name:   Linux-6.6.63-v7l
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    8559752 Bytes = 8.2 MiB
   Load Address: 00008000
   Entry Point:  00008000
   Verifying Checksum ... OK
   Booting using the fdt blob at 0x2eff2000
Working FDT set to 2eff2000
   Loading Kernel Image to 8000
Image too large: increase CONFIG_SYS_BOOTM_LEN
Must RESET board to recover

Fixes: https://github.com/agherzan/meta-raspberrypi/issues/1306

Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
2025-03-12 02:12:30 -07:00
Joshua Watt
d605ed7ae7 linux-firmware-rpidistro: Fix WiFi on Raspberry Pi 5
Switches the Raspberry Pi 5 to use the standard cyfman43455-sdio
firmware by default. The minimal firmware on this device is unable to
connect to a WiFi access point.

This also matches the behavior of Raspberry Pi OS, which defaults to the
standard firmware

Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
2025-02-27 16:54:47 -08:00
Khem Raj
7494a37818 udev-rules-rpi: Delete fb.rules
OE-core has added fb.rules to psplash via [1] so avoid adding it here

This effectively reverts commit e9e5efa750

[1] https://git.yoctoproject.org/poky/commit/?id=af38235305fc2ac59a82f0413a1fe4cc5161ff86

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Cc: Bastian Wanner <bastian.wanner@inovex.de>
2025-02-21 10:11:43 -08:00
Gyorgy Sarvari
923ac579c7 libcamera: fix c++ flags and failed buildpaths QA check
Building libcamera from the latest version of meta-or fails
the buildpaths qa check with a number of generated binaries.

Looking into the logs, it seemed that the -f*-prefix-map
flags were present to gcc invocations, but the used flags
were quite off for g++ invocations. It seems that using
the cpp_args meson option overwrites (at least most of)
the CXXFLAGS set by Yocto, including the -f*-prefix-map
flags.

To avoid this, append the extra compile flag to the
CXXFLAGS variable instead of using meson's cpp_args option.

Signed-off-by: Gyorgy Sarvari <skandigraun@gmail.com>
2025-02-14 11:28:31 +00:00
Markus Volk
4f934c0ed1 linux-raspberrypi: add recipe for 6.12
This release is tagged outside of branch.
Use 'nobranch=1' to still be able to fetch the code.
https://github.com/raspberrypi/linux/releases/tag/rpi-6.12.y_20241206_2

The kernel was tested to run on raspberrypi4-64

Signed-off-by: Markus Volk <f_l_k@t-online.de>
2025-02-12 13:41:42 +00:00
Gijs Peskens
810f1a2395 rpi-base: Fix CM5 boot panic
Compute module 5 depends on the bcm2712d0 overlay, and will
panic during boot without it.

Signed-off-by: Gijs Peskens <gijs.peskens@munisense.com>
2025-02-12 03:13:24 +00:00
Gijs Peskens
51f06365f3 raspberrypi5.conf: Add CM5 dtb's
Add new dtb's required for raspberry compute module 5

Signed-off-by: Gijs Peskens <gijs.peskens@munisense.com>
2025-02-12 03:13:24 +00:00
Andrei Gherzan
b58e2af859 docs: Fix ReadTheDocs sphinx.configuration requirement
Deprecation of projects using Sphinx or MkDocs without an explicit
configuration file:

https://about.readthedocs.com/blog/2024/12/deprecate-config-files-without-sphinx-or-mkdocs-config/

Signed-off-by: Andrei Gherzan <andrei@gherzan.com>
2025-02-03 20:45:15 +00:00
Jan Vermaete
880d36b7c2 kas: debug-tweaks as IMAGE_FEATURE is removed
And replaced it by the features that was below it.

see:
  commit 43b8b3fa72d75d8d82a478613a4d9bf4645b5389
  Author: Ross Burton <ross.burton@arm.com>
  Date:   Thu Nov 7 13:47:52 2024 +0000

      classes-recipe/core-image: drop debug-tweaks IMAGE_FEATURE

      Remove the 'debug-tweaks' IMAGE_FEATURE. It sounds friendly and kind to
      developers, but it results primarily in an image which root can login
      remotely without a password.  This is incredibly useful for local
      development and testing purposes, but we really want to be explicit that
      this is what is happening instead of hiding it behind a vague "debug
      tweaks" statement.

      To preserve the eixsting behaviour, debug-tweaks should be replaced with
      these features:

        allow-empty-password empty-root-password allow-root-login post-install-logging

      (From OE-Core rev: 2c229f9542c6ba608912e14c9c3f783c3fa89349)

      Signed-off-by: Ross Burton <ross.burton@arm.com>
      Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>

Signed-off-by: Jan Vermaete <jan.vermaete@gmail.com>
2025-01-17 10:23:07 +00:00
Jan Vermaete
38c6930a8e kas: added the synaptics-killswitch license in comment
I leave it to the user to allow the license by uncomment it.

Signed-off-by: Jan Vermaete <jan.vermaete@gmail.com>
2025-01-17 10:23:07 +00:00
Anibal Limon
6e1d838b18 linux-firmware-rpidistro: Add cyfmac43455-sdio.bin symlink to minimal
According to the README on rpi-distro firmware-nonfree [1] this symlink
needs to exists.

Fixes,

```
[    6.794584] brcmfmac mmc1:0001:1: Direct firmware load for brcm/brcmfmac43455-sdio.raspberrypi,4-model-b.bin failed with error -2
```

There are previous reported stability issues with 802.11r [2] and
choosing minimal removes this support and indirectly fixes the issues.

[1] https://github.com/RPi-Distro/firmware-nonfree/blob/bookworm/debian/config/brcm80211/cypress/README.txt
[2] https://github.com/raspberrypi/linux/issues/3849

Signed-off-by: Anibal Limon <anibal@limonsoftware.com>
2025-01-17 06:27:29 +00:00
Luca Carlon
97d7a6b5ec picamera-libs: removed unused libraries from python3-picamera
Apparently the recipe for python3 picamera is installing some libraries
from /opt/vc/lib that are not necessary to the picamera module. The
gles2 library, in particular, overwrites a symlink to another version
of the gles2 library. The result is that two different gles2 libs are
placed in /usr/lib.

This commit removes a few unneeded libraries, leaving libmmal and its
dependencies, that are instead required.

Signed-off-by: Luca Carlon <carlon.luca@gmail.com>
2024-12-13 11:36:32 +00:00
Khem Raj
a2f8a64bc6 SECURITY.md: Add instructions for reporting security issues
Fixes Issues like https://github.com/agherzan/meta-raspberrypi/pull/1390#issuecomment-2522661895

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2024-12-12 22:47:13 +00:00
Khem Raj
57fa41ae95 rpi-base: Remove bcm2712-rpi-5-b.dtb from RPI_KERNEL_DEVICETREE target
All bcm2712 are built for arm64 builds alone and rpi-base.inc is included
by 32-bit machine configs as well. Recently, kernel moved thesr dts files
into arch/arm64/boot/dts/broadcom/ folder [1]

[1] 10c77e119e

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2024-12-12 22:44:39 +00:00
Khem Raj
aea022fbc6 linux-raspberrypi-6.6: Upgrade to 6.6.63
supersedes https://github.com/agherzan/meta-raspberrypi/pull/1374

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2024-12-12 22:44:39 +00:00
Garrett Brown
aea47ad612 linux: Enable CONFIG_I2C_BRCMSTB for proper HDMI I2C support
This patch enables the CONFIG_I2C_BRCMSTB option in vc4graphics.cfg to
ensure proper support for the `brcm,bcm2711-hdmi-i2c` device node. Without
this configuration, the I2C bus associated with HDMI on Broadcom
BCM2711-based systems may fail to probe, causing issues with HDMI
communication and display initialization.

Additionally, this resolves potential deferred probe issues observed in
the kernel logs, ensuring the correct initialization of the HDMI I2C bus.

Signed-off-by: Garrett Brown <garrett.brown@aclima.io>
2024-12-05 20:09:29 +00:00
Jan Vermaete
f1fe818543 extra-build-config.md: added a white line
There was in the rendered MarkDown no new line between the bullet list and the next line.

Signed-off-by: Jan Vermaete <jan.vermaete@gmail.com>
2024-12-05 10:38:52 +00:00
Jan Vermaete
1aeda3f52a raspi-utils: added new recipe
For now only the 'dtmerge' (including 'dtoverlay' and 'dtparam') and 'pinctrl' utilities are included.

Added the 'raspi-' prefix to make it less conflicting with other 'utils' recipes.

Signed-off-by: Jan Vermaete <jan.vermaete@gmail.com>
2024-11-06 08:59:42 +01:00
Robert Yang
1b6de69afd conf/layer.conf: Remove duplicated BBFILES
The following line doubles BBFILES for all layers in BBFILE_COLLECTIONS:
BBFILES += "${@' '.join('${LAYERDIR}/dynamic-layers/%s/recipes*/*/*.bb' % layer \
               for layer in BBFILE_COLLECTIONS.split())}"

And most of them are invalid, use BBFILES_DYNAMIC is the correct solution.

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
2024-10-30 09:07:39 +01:00
Khem Raj
91868fb83f layer.conf: Update to walnascar (5.2) layer/release series
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2024-10-29 17:58:50 +01:00
Leon Anavi
fe96d4ddc3 conf/layer.conf: Remove meta-lts-mixins
Remove layer dependency from meta-lts-mixins 'scarthgap/u-boot'
because now the BSP supports styhead which brings U-Boot 2024.07.

Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
2024-10-29 17:49:53 +01:00
Matthias Klein
d5ffe135c7 linux-firmware-rpidistro: Upgrade to bookworm/20230625-2+rpt3
The upgrade was necessary to get WLAN running on a CM4 (under scarthgap).
Otherwise I continuously got the following kernel messages when trying to connect:
[   31.907395] brcmfmac: brcmf_set_channel: set chanspec 0xd022 fail, reason -52
[   32.023434] brcmfmac: brcmf_set_channel: set chanspec 0xd026 fail, reason -52
[   32.135403] brcmfmac: brcmf_set_channel: set chanspec 0xd02a fail, reason -52
[   32.247392] brcmfmac: brcmf_set_channel: set chanspec 0xd02e fail, reason -52
[   33.919395] brcmfmac: brcmf_set_channel: set chanspec 0xd090 fail, reason -52
[   33.926940] brcmfmac: brcmf_set_channel: set chanspec 0xd095 fail, reason -52
[   33.935151] brcmfmac: brcmf_set_channel: set chanspec 0xd099 fail, reason -52
[   33.942691] brcmfmac: brcmf_set_channel: set chanspec 0xd09d fail, reason -52
[   33.950338] brcmfmac: brcmf_set_channel: set chanspec 0xd0a1 fail, reason -52
[   33.957903] brcmfmac: brcmf_set_channel: set chanspec 0xd0a5 fail, reason -52

Firmware version before:  BCM4345/6 wl0: Apr 15 2021 03:03:20 version 7.45.234 (4ca95bb CY) FWID 01-996384e2
Firmware version current: BCM4345/6 wl0: Aug 29 2023 01:47:08 version 7.45.265 (28bca26 CY) FWID 01-b677b91b

Signed-off-by: Matthias Klein <matthias@extraklein.de>
2024-09-21 11:50:51 +01:00
Victor Löfgren
f44832bcdd README.md: Update link to compatible layers
The previous link pointing to Yocto Project Compatible Layers was no
longer valid.

Signed-off-by: Victor Löfgren <victor.l0fgr3n@gmail.com>
2024-09-09 13:59:04 +01:00
Pierrick Curt
e49de22873 rpi-base: build uart dts overlays by default
We need the uart dts overlays to enable a specific uart peripheral.
For example if you use the disable-bt overlay, you have to enable
the uart0 dts overlay to be able to use uart0 peripheral.

Signed-off-by: Pierrick Curt <pierrickcurt@gmail.com>
2024-09-05 09:09:52 +01:00
Andrew Lalaev
f6c79cde63 rpi-base.inc: add the disable-wifi-pi5 overlay
For RPi5 we need to use a different overlay to disable built-in WiFi.

Signed-off-by: Andrew Lalaev <andrey.lalaev@gmail.com>
2024-09-05 00:51:04 +01:00
Vincent Davis Jr
43dada0771 docs: include PREFERRED_PROVIDER_ffmpeg,vlc change
Signed-off-by: Vincent Davis Jr <vince@underview.tech>
2024-09-04 10:49:54 +01:00
Vincent Davis Jr
2b97daf196 rpi-default-providers: remove vlc,ffmpeg PREFFERED_PROVIDER
Switch to defaulting to OE core ffmpeg &
meta-openembedded vlc.

Upgrades to newer rpi-distro VLC version
in an OE environment have proven to be
tedious due to all the PI foundation patches.

Some patches aren't fully pushed into github
and require updates to build.

Maintaining patches have also proven to be unstable.

Defualt to stable builds of both so that.

Peoples builds aren't broken. If rpi-distro
rpi-distro version of ffmpeg & vlc wanted
users may switch by setting PREFFERED_PROVIDER.

Signed-off-by: Vincent Davis Jr <vince@underview.tech>
2024-09-04 10:49:54 +01:00
Martin Jansa
ec745772dc mesa: rename bbappend to match new recipe name from oe-core
Otherwise it will fail to parse.

Renamed in:
https://git.openembedded.org/openembedded-core/commit/?id=f5cfb3e23603cefb2f3f6bfe776afaedefd10808

Signed-off-by: Martin Jansa <martin.jansa@gmail.com>
2024-08-28 14:14:28 +01:00
Bastian Wanner
e9e5efa750 udev-rules-rpi.bb: Fix psplash systemd connection
Add udev rule to notify systemd of available framebuffer

Using psplash in combination with systemd the splash screen is not
shown. The dependency to sys-devices-platform-gpu-graphics-fb0.device
will terminate psplash-start.service because systemd is not aware of the
existing framebuffer device node.
See https://lists.yoctoproject.org/g/yocto/topic/91286438#57156

Signed-off-by: Bastian Wanner <bastian.wanner@inovex.de>
2024-08-03 07:35:56 +01:00
Khem Raj
3d6873db6b weston-init.bbappend: Delete
These options are now part of weston.ini since yocto 4.0 [1]

[1] https://git.yoctoproject.org/poky/commit/?id=5c95402ff95

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2024-07-30 13:20:11 +01:00
Jan Vermaete
633e51f4bc rpi-base.inc: added the disable-bt-pi5 device tree overlay
The overlay to disable Bluetooth is different for Raspberry Pi 5.

Signed-off-by: Jan Vermaete <jan.vermaete@gmail.com>
2024-07-19 00:21:26 +01:00
Leon Anavi
434ed33c90 rpi-u-boot-scr: WORKDIR -> UNPACKDIR transition
This adapts to the oe-core rework to enforce a separate directory
for unpacking local sources (UNPACKDIR) instead of directly using
WORKDIR.

Follows the preliminary guideline from:
https://lists.openembedded.org/g/openembedded-architecture/message/2007

Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
2024-07-18 11:51:41 +01:00
Jan Vermaete
065d5a457f README.md: pi3-disable-bt is renamed to disable-bt in kas example
in commit 01b162388e
with commit message:

  rpi-base: Drop old dtbo names

  pi3-disable-bt is renamed to disable-bt and pi3-miniuart-bt is renamed
  to miniuart-bt in 2014, now with 5.4 these are not recognised anymore
  and miniuart-bt and disable-bt are already part of RPI_KERNEL_DEVICETREE_OVERLAYS

Signed-off-by: Jan Vermaete <jan.vermaete@gmail.com>
2024-07-17 22:16:29 +01:00
Jaeyoon Jung
cc529a811d linux-raspberrypi: Drop deprecated configs from android-driver.cfg
CONFIG_ASHMEM has been deprecated since 5.18 by:
    commit 721412ed3d819e767cac2b06646bf03aa158aaec
    Author: Christoph Hellwig <hch@lst.de>
    Date:   Tue Mar 15 13:34:57 2022 +0100

        staging: remove ashmem

        The mainline replacement for ashmem is memfd, so remove the legacy
        code from drivers/staging/

so has CONFIG_ANDROID since 6.1 by:
    commit 1045a06724f322ed61f1ffb994427c7bdbe64647
    Author: Christoph Hellwig <hch@lst.de>
    Date:   Wed Jun 29 17:01:02 2022 +0200

        remove CONFIG_ANDROID

        The ANDROID config symbol is only used to guard the binder config
        symbol and to inject completely random config changes.  Remove it
        as it is obviously a bad idea.

As now master has 6.1 or later, both should be dropped.

Signed-off-by: Jaeyoon Jung <jaeyoon.jung@lge.com>
2024-07-17 22:13:21 +01:00
Khem Raj
6bf0b1874b linux-raspberrypi: Upgrade kernel to 6.6.36
Also bring matching linux-yocto kernel metadata

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2024-07-09 10:44:00 +01:00
Jan Vermaete
da35d1f663 kas: updated the refspec syntax of the kas file
Fixed the warning from kas:
  WARNING  - Using deprecated refspec for repository "poky". You should migrate to commit/tag/branch.
  WARNING  - Using deprecated refspec for repository "meta-openembedded". You should migrate to commit/tag/branch.
  WARNING  - Using deprecated refspec for repository "meta-qt5". You should migrate to commit/tag/branch.

Signed-off-by: Jan Vermaete <jan.vermaete@gmail.com>
2024-07-08 13:41:52 +01:00
Vincent Davis Jr
eb8ffc4e63 rpidistro-ffmpeg: upgrade 4.3.4 -> 5.1.4
Reduce amount of patches applied as they
are no longer required for building.

From older commit no longer required

* 0001-avcodec-arm-sbcenc-avoid-callee-preserved-vfp-regist.patch
* 0002-Fix-build-on-powerpc-and-ppc64.patch
* 0003-avcodec-pngenc-remove-monowhite-from-apng-formats.patch
* 0004-ffmpeg-4.3.4-rpi_14.patc
* 0005-fix-flags.diff

Created by OE community to fix builds and are no longer required

* 2002-libavdevice-opengl_enc-update-dynamic-function-loader.patch
* 2003-libavcodec-fix-v4l2_req_devscan.patch

rpidistro-ffmpeg updates:

* removal of avresample flag. No longer exists
* removal of rpi flag. No longer exists
* include vout-egl and epoxy if opengl or x11 included
  in DISTRO_FEATURES.

Signed-off-by: Vincent Davis Jr <vince@underview.tech>
2024-06-18 09:15:20 +01:00
Matthias Klein
b7fa9b4ba1 linux-firmware-rpidistro: Fix wireless on model Zero 2 W
Firmware links for model Zero 2 W were missing.

This patch sets the necessary links for brcmfmac firmware. Without the
links, the firmware cannot be loaded without causing boot messages like:
brcmfmac mmc1:0001:1: Direct firmware load for brcm/brcmfmac43430b0-sdio.raspberrypi,model-zero-2-w.bin failed with error -2

Fixes agherzan/meta-raspberrypi#1324

Signed-off-by: Matthias Klein <matthias@extraklein.de>
2024-06-04 11:39:47 +01:00
Martin Jansa
380d2fc255 gstreamer1.0-omx: remove the .bbappend
oe-core upgrade 1.22.11 -> 1.24.3:
9c21815339

be aware that this also dropped gstreamer1.0-omx recipe as upstream has removed it:
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4976
and similarly for libomxil:
63535ce551

So now meta-raspberrypi doesn't parse again due to this .bbappend

Remove it to unblock parsing, but there will be other improvements
or cleanups needed later (preferrably by someone who was using that
I'm just seeing parsing failure in world builds). e.g.:

conf/machine/include/rpi-default-providers.inc:PREFERRED_PROVIDER_virtual/libomxil ?= "userland"
conf/machine/include/rpi-default-providers.inc:VIRTUAL-RUNTIME_libomxil = "userland"
dynamic-layers/multimedia-layer/recipes-multimedia/rpidistro-vlc/rpidistro-vlc_3.0.17.bb:    file://3003-codec-omxil_core-replace-opt-vc-path-with-usr-lib.patch \
dynamic-layers/multimedia-layer/recipes-multimedia/rpidistro-vlc/rpidistro-vlc_3.0.17.bb:    file://3006-codec-omxil_core.h-fix-multiple-definition-of.patch \
dynamic-layers/multimedia-layer/recipes-multimedia/rpidistro-vlc/rpidistro-vlc_3.0.17.bb:PACKAGECONFIG[mmal] = "--enable-omxil --enable-omxil-vout --enable-rpi-omxil --enable-mmal --enable-mmal-avcodec,,userland"
recipes-graphics/userland/userland_git.bb:PROVIDES += "virtual/libomxil"
recipes-multimedia/omxplayer/omxplayer_git.bb:DEPENDS = "alsa-lib libpcre virtual/egl boost freetype dbus openssl libssh virtual/libomxil coreutils-native curl-native userland"

Signed-off-by: Martin Jansa <martin.jansa@gmail.com>
2024-06-03 22:38:53 +01:00
Martin Jansa
2174bfd0b2 layer.conf: declare compatibility only with styhead
* we don't know yet what changes will be needed to stay compatible with
  final styhead, but we already know that the last changes for UNPACKDIR
  aren't compatible with scarthgap or nanbield.

Signed-off-by: Martin Jansa <martin.jansa@gmail.com>
2024-05-30 00:33:12 +01:00
Martin Jansa
c39c2b165e rpi-u-boot-scr: use UNPACKDIR
* see:
  https://lists.openembedded.org/g/openembedded-architecture/message/2007

* fixes:
  sed: can't read TOPDIR/BUILD/work/raspberrypi4_64-webos-linux/rpi-u-boot-scr/1.0/boot.cmd.in: No such file or directory

Signed-off-by: Martin Jansa <martin.jansa@gmail.com>
2024-05-30 00:33:12 +01:00
Khem Raj
ee5ae72808 recipes: Switch to using UNPACKDIR instead of WORKDIR
UNPACKDIR is new contruct for do_unpack things in latest master
we should be using that instead of WORKDIR for referencing those
files

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2024-05-28 23:52:53 +01:00
64 changed files with 24925 additions and 69167 deletions

View File

@@ -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

View File

@@ -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

View File

@@ -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
```

View File

@@ -2,7 +2,7 @@
#
# SPDX-License-Identifier: MIT
FROM ubuntu:20.04
FROM ubuntu:22.04
ARG DEBIAN_FRONTEND="noninteractive"
RUN apt-get update -qq
@@ -10,12 +10,13 @@ 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

View File

@@ -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'

View File

@@ -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

View File

@@ -1,5 +1,7 @@
version: 2
sphinx:
configuration: docs/conf.py
build:
os: ubuntu-22.04
tools:

View File

@@ -48,7 +48,7 @@ OpenEmbedded/Yocto distributions and layer stacks, such as:
This layer is officially approved as part of the `Yocto Project Compatible
Layers Program`. You can find details of that on the official Yocto Project
[website](https://www.yoctoproject.org/software-overview/layers/?searchTerm=meta-raspberrypi).
[website](https://www.yoctoproject.org/development/yocto-project-compatible-layers/).
## Dependencies
@@ -81,7 +81,7 @@ a section as follows:
local_conf_header:
rpi-specific: |
ENABLE_I2C = "1"
RPI_EXTRA_CONFIG = "dtoverlay=pi3-disable-bt"
RPI_EXTRA_CONFIG = "dtoverlay=disable-bt"
```
To configure the machine, you have to update the `machine` variable.

20
SECURITY.md Normal file
View File

@@ -0,0 +1,20 @@
How to Report a Potential Vulnerability?
========================================
If you would like to report a public issue (for example, one with a released
CVE number), please report it via GitHub issues:
https://github.com/agherzan/meta-raspberrypi/issues/new/choose
If you are dealing with a not-yet released or urgent issue, please send a
message to one of the maintainers listed in the [README.md](https://github.com/agherzan/meta-raspberrypi/blob/master/README.md). Include as many
details as possible:
- the layer or software module affected
- the recipe and its version
- any example code, if available
Branches maintained with security fixes
---------------------------------------
See https://wiki.yoctoproject.org/wiki/Releases for the list of current
releases. We only accept patches for the LTS releases and the master branch.

View File

@@ -9,11 +9,8 @@ BBFILE_COLLECTIONS += "raspberrypi"
BBFILE_PATTERN_raspberrypi := "^${LAYERDIR}/"
BBFILE_PRIORITY_raspberrypi = "9"
LAYERSERIES_COMPAT_raspberrypi = "nanbield scarthgap"
LAYERSERIES_COMPAT_raspberrypi = "styhead walnascar"
LAYERDEPENDS_raspberrypi = "core"
# Recommended for u-boot support for raspberrypi5
# https://git.yoctoproject.org/meta-lts-mixins 'scarthgap/u-boot' branch
LAYERRECOMMENDS_raspberrypi = "lts-u-boot-mixin"
# Additional license directories.
LICENSE_PATH += "${LAYERDIR}/files/custom-licenses"
@@ -23,11 +20,6 @@ LICENSE_PATH += "${LAYERDIR}/files/custom-licenses"
#
# The .bbappend and .bb files are included if the respective layer
# collection is available.
BBFILES += "${@' '.join('${LAYERDIR}/dynamic-layers/%s/recipes*/*/*.bbappend' % layer \
for layer in BBFILE_COLLECTIONS.split())}"
BBFILES += "${@' '.join('${LAYERDIR}/dynamic-layers/%s/recipes*/*/*.bb' % layer \
for layer in BBFILE_COLLECTIONS.split())}"
BBFILES_DYNAMIC += " \
openembedded-layer:${LAYERDIR}/dynamic-layers/openembedded-layer/*/*/*.bb \
openembedded-layer:${LAYERDIR}/dynamic-layers/openembedded-layer/*/*/*.bbappend \
@@ -37,6 +29,8 @@ BBFILES_DYNAMIC += " \
qt5-layer:${LAYERDIR}/dynamic-layers/qt5-layer/*/*/*.bbappend \
multimedia-layer:${LAYERDIR}/dynamic-layers/multimedia-layer/*/*/*.bb \
multimedia-layer:${LAYERDIR}/dynamic-layers/multimedia-layer/*/*/*.bbappend \
meta-python:${LAYERDIR}/dynamic-layers/meta-python/*/*/*.bb \
meta-python:${LAYERDIR}/dynamic-layers/meta-python/*/*/*.bbappend \
"
DEFAULT_TEST_SUITES:remove:rpi = "parselogs"

View File

@@ -18,7 +18,9 @@ RPI_KERNEL_DEVICETREE_OVERLAYS ?= " \
overlays/overlay_map.dtb \
overlays/at86rf233.dtbo \
overlays/disable-bt.dtbo \
overlays/disable-bt-pi5.dtbo \
overlays/disable-wifi.dtbo \
overlays/disable-wifi-pi5.dtbo \
overlays/dwc2.dtbo \
overlays/gpio-ir.dtbo \
overlays/gpio-ir-tx.dtbo \
@@ -58,15 +60,28 @@ 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/w1-gpio.dtbo \
overlays/w1-gpio-pullup.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 ??= " \

View File

@@ -7,10 +7,6 @@ PREFERRED_PROVIDER_virtual/libgles2 ?= "${@bb.utils.contains("MACHINE_FEATURES",
PREFERRED_PROVIDER_virtual/libgl ?= "${@bb.utils.contains("MACHINE_FEATURES", "vc4graphics", "mesa", "mesa-gl", d)}"
PREFERRED_PROVIDER_virtual/mesa ?= "${@bb.utils.contains("MACHINE_FEATURES", "vc4graphics", "mesa", "mesa-gl", d)}"
PREFERRED_PROVIDER_virtual/libgbm ?= "${@bb.utils.contains("MACHINE_FEATURES", "vc4graphics", "mesa", "mesa-gl", d)}"
PREFERRED_PROVIDER_vlc ?= "rpidistro-vlc"
PREFERRED_PROVIDER_ffmpeg ?= "rpidistro-ffmpeg"
PREFERRED_PROVIDER_libav ?= "rpidistro-ffmpeg"
PREFERRED_PROVIDER_libpostproc ?= "rpidistro-ffmpeg"
PREFERRED_PROVIDER_jpeg ?= "jpeg"
PREFERRED_PROVIDER_virtual/libomxil ?= "userland"

View File

@@ -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"

View File

@@ -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"

View File

@@ -178,6 +178,7 @@ the following boards:
* Raspberry Pi 3 64-bit
* Raspberry Pi 4 32-bit
* Raspberry Pi 4 64-bit
It means that, for those boards, `RPI_USE_U_BOOT = "1"` is not compatible with
`ENABLE_UART = "0"`.
@@ -487,14 +488,15 @@ MMAL is not enabled by default. To enable it add
DISABLE_VC4GRAPHICS = "1"
to `local.conf`. Adding `vlc` to `IMAGE_INSTALL` will then default to building the Raspberry
Pi's Distro implementation of VLC with HW accelerated video decode through MMAL into the system
image. It also defaults to building VLC with Raspberry PI's Distro implementation of ffmpeg. The
oe-core implementation of ffmpeg and the meta-openembedded/meta-multimedia implementation of VLC
can however be selected via:
to `local.conf`. Adding `vlc` to `IMAGE_INSTALL` will then default to building the oe-core
implementation of ffmpeg and the meta-openembedded/meta-multimedia implementation of VLC.
The Raspberry Pi's Distro implementation of VLC with HW accelerated video decode through
MMAL and the Raspberry PI's Distro implementation of ffmpeg. Can however be selected via:
PREFERRED_PROVIDER_ffmpeg = "ffmpeg"
PREFERRED_PROVIDER_vlc = "vlc"
PREFERRED_PROVIDER_vlc = "rpidistro-vlc"
PREFERRED_PROVIDER_ffmpeg = "rpidistro-ffmpeg"
PREFERRED_PROVIDER_libav = "rpidistro-ffmpeg"
PREFERRED_PROVIDER_libpostproc = "rpidistro-ffmpeg"
Usage example: Start VLC with mmal_vout plugin and without an active display server.

View File

@@ -11,6 +11,7 @@
* raspberrypi3-64 (64 bit kernel & userspace)
* raspberrypi4
* raspberrypi4-64 (64 bit kernel & userspace)
* raspberrypi5
* raspberrypi-cm (dummy alias for raspberrypi)
* raspberrypi-cm3

View File

@@ -1,2 +1,3 @@
PACKAGECONFIG[raspberrypi] = "-Dpipelines=rpi/vc4 -Dipas=rpi/vc4 -Dcpp_args=-Wno-unaligned-access"
PACKAGECONFIG[raspberrypi] = "-Dpipelines=rpi/vc4 -Dipas=rpi/vc4"
PACKAGECONFIG:append:rpi = " raspberrypi"
CXXFLAGS:append:rpi = " -Wno-unaligned-access "

View File

@@ -12,7 +12,7 @@ repos:
poky:
url: https://git.yoctoproject.org/git/poky
path: layers/poky
refspec: master
branch: master
layers:
meta:
meta-poky:
@@ -21,7 +21,7 @@ repos:
meta-openembedded:
url: http://git.openembedded.org/meta-openembedded
path: layers/meta-openembedded
refspec: master
branch: master
layers:
meta-oe:
meta-python:
@@ -31,7 +31,7 @@ repos:
meta-qt5:
url: https://github.com/meta-qt5/meta-qt5/
path: layers/meta-qt5
refspec: master
branch: master
bblayers_conf_header:
standard: |
@@ -48,7 +48,7 @@ local_conf_header:
USER_CLASSES = "buildstats"
PATCHRESOLVE = "noop"
debug-tweaks: |
EXTRA_IMAGE_FEATURES = "debug-tweaks"
IMAGE_FEATURES += "empty-root-password allow-empty-password allow-root-login post-install-logging"
diskmon: |
BB_DISKMON_DIRS = "\
STOPTASKS,${TMPDIR},1G,100K \
@@ -59,3 +59,7 @@ local_conf_header:
HALT,${DL_DIR},100M,1K \
HALT,${SSTATE_DIR},100M,1K \
HALT,/tmp,10M,1K"
license: |
# Uncomment next line to allow the license
# See: linux-firmware-rpidistro in docs/ipcompliance.md
#LICENSE_FLAGS_ACCEPTED = "synaptics-killswitch"

View File

@@ -11,14 +11,14 @@ COMPATIBLE_MACHINE = "^rpi$"
S = "${RPITOOLS_S}/armstubs"
export CC7="${CC}"
export LD7="${LD}"
export OBJCOPY7="${OBJCOPY}"
export OBJDUMP7="${OBJDUMP}"
export CC8="${CC}"
export LD8="${LD}"
export OBJCOPY8="${OBJCOPY}"
export OBJDUMP8="${OBJDUMP} -maarch64"
export CC7 = "${CC}"
export LD7 = "${LD}"
export OBJCOPY7 = "${OBJCOPY}"
export OBJDUMP7 = "${OBJDUMP}"
export CC8 = "${CC}"
export LD8 = "${LD}"
export OBJCOPY8 = "${OBJCOPY}"
export OBJDUMP8 = "${OBJDUMP} -maarch64"
do_compile() {
[ -z "${ARMSTUB}" ] && bbfatal "No ARMSTUB defined for your machine."

View File

@@ -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}"

View File

@@ -18,13 +18,13 @@ PR = "r5"
INHIBIT_DEFAULT_DEPS = "1"
PITFT="${@bb.utils.contains("MACHINE_FEATURES", "pitft", "1", "0", d)}"
PITFT22="${@bb.utils.contains("MACHINE_FEATURES", "pitft22", "1", "0", d)}"
PITFT28r="${@bb.utils.contains("MACHINE_FEATURES", "pitft28r", "1", "0", d)}"
PITFT28c="${@bb.utils.contains("MACHINE_FEATURES", "pitft28c", "1", "0", d)}"
PITFT35r="${@bb.utils.contains("MACHINE_FEATURES", "pitft35r", "1", "0", d)}"
PITFT = "${@bb.utils.contains("MACHINE_FEATURES", "pitft", "1", "0", d)}"
PITFT22 = "${@bb.utils.contains("MACHINE_FEATURES", "pitft22", "1", "0", d)}"
PITFT28r = "${@bb.utils.contains("MACHINE_FEATURES", "pitft28r", "1", "0", d)}"
PITFT28c = "${@bb.utils.contains("MACHINE_FEATURES", "pitft28c", "1", "0", d)}"
PITFT35r = "${@bb.utils.contains("MACHINE_FEATURES", "pitft35r", "1", "0", d)}"
VC4GRAPHICS="${@bb.utils.contains("MACHINE_FEATURES", "vc4graphics", "1", "0", d)}"
VC4GRAPHICS = "${@bb.utils.contains("MACHINE_FEATURES", "vc4graphics", "1", "0", d)}"
VC4DTBO ?= "vc4-kms-v3d"
GPIO_IR ?= "18"
GPIO_IR_TX ?= "17"
@@ -35,7 +35,7 @@ CAN1_INTERRUPT_PIN ?= "24"
ENABLE_UART ??= ""
WM8960="${@bb.utils.contains("MACHINE_FEATURES", "wm8960", "1", "0", d)}"
WM8960 = "${@bb.utils.contains("MACHINE_FEATURES", "wm8960", "1", "0", d)}"
GPIO_SHUTDOWN_PIN ??= ""

View File

@@ -19,8 +19,8 @@ do_install() {
${D}${sysconfdir}/inittab.d \
${D}${sysconfdir}/init.d
install -m 0755 ${WORKDIR}/gpio-shutdown-keymap.sh ${D}${sysconfdir}/init.d/
install -m 0755 ${WORKDIR}/bind_gpio_shutdown.tab ${D}${sysconfdir}/inittab.d/
install -m 0755 ${UNPACKDIR}/gpio-shutdown-keymap.sh ${D}${sysconfdir}/init.d/
install -m 0755 ${UNPACKDIR}/bind_gpio_shutdown.tab ${D}${sysconfdir}/inittab.d/
elif ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
# Systemd init does not require any configuration.
# Note: cannot have an empty branch, hence the redundant dir install.

View File

@@ -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"

View File

@@ -15,12 +15,15 @@ do_compile() {
sed -e 's/@@KERNEL_IMAGETYPE@@/${KERNEL_IMAGETYPE}/' \
-e 's/@@KERNEL_BOOTCMD@@/${KERNEL_BOOTCMD}/' \
-e 's/@@BOOT_MEDIA@@/${BOOT_MEDIA}/' \
"${WORKDIR}/boot.cmd.in" > "${WORKDIR}/boot.cmd"
"${UNPACKDIR}/boot.cmd.in" > "${WORKDIR}/boot.cmd"
mkimage -A ${UBOOT_ARCH} -T script -C none -n "Boot script" -d "${WORKDIR}/boot.cmd" boot.scr
}
inherit kernel-arch deploy nopackages
S = "${WORKDIR}/sources"
UNPACKDIR = "${S}"
do_deploy() {
install -d ${DEPLOYDIR}
install -m 0644 boot.scr ${DEPLOYDIR}

View File

@@ -0,0 +1 @@
CONFIG_SYS_BOOTM_LEN=0x1000000

View File

@@ -5,10 +5,11 @@ 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"
do_install:append:rpi () {
install -d ${D}${sysconfdir}
install -m 0644 ${WORKDIR}/fw_env.config ${D}${sysconfdir}/fw_env.config
install -m 0644 ${UNPACKDIR}/fw_env.config ${D}${sysconfdir}/fw_env.config
}

View File

@@ -5,7 +5,7 @@ SRC_URI:append:rpi = " file://framebuf.conf"
do_install:append:rpi() {
if [ "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}" ]; then
install -Dm 0644 ${WORKDIR}/framebuf.conf ${D}${systemd_system_unitdir}/psplash-start.service.d/framebuf.conf
install -Dm 0644 ${UNPACKDIR}/framebuf.conf ${D}${systemd_system_unitdir}/psplash-start.service.d/framebuf.conf
fi
}

View File

@@ -15,5 +15,5 @@ INHIBIT_DEFAULT_DEPS = "1"
do_install () {
install -d ${D}${sysconfdir}/udev/rules.d
install -m 0644 ${S}/etc.armhf/udev/rules.d/99-com.rules ${D}${sysconfdir}/udev/rules.d/
install -m 0644 ${WORKDIR}/can.rules ${D}${sysconfdir}/udev/rules.d/
install -m 0644 ${UNPACKDIR}/can.rules ${D}${sysconfdir}/udev/rules.d/
}

View File

@@ -7,7 +7,7 @@ INHIBIT_DEFAULT_DEPS = "1"
do_install () {
install -d ${D}${base_libdir}/udev/rules.d
install -m 644 ${WORKDIR}/80-udisks-rpi.rules ${D}${base_libdir}/udev/rules.d
install -m 644 ${UNPACKDIR}/80-udisks-rpi.rules ${D}${base_libdir}/udev/rules.d
}
FILES:${PN} = "${base_libdir}/udev/rules.d"

View File

@@ -0,0 +1,22 @@
SUMMARY = "A collection of scripts and simple applications"
LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://LICENCE;md5=4c01239e5c3a3d133858dedacdbca63c"
DEPENDS:append = " dtc"
PV = "1.0+git"
SRC_URI = "git://github.com/raspberrypi/utils;protocol=https;branch=master"
SRCREV = "b9c63214c535d7df2b0fa6743b7b3e508363c25a"
S = "${WORKDIR}/git"
FILES:${PN}:append = " \
${datadir}/bash-completion/completions/pinctrl \
"
OECMAKE_TARGET_COMPILE = "pinctrl/all dtmerge/all"
OECMAKE_TARGET_INSTALL = "pinctrl/install dtmerge/install"
inherit cmake

View File

@@ -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')

View File

@@ -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;

View File

@@ -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

View File

@@ -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>

View File

@@ -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"

View File

@@ -33,10 +33,10 @@ do_install () {
cp -R include/* ${D}${includedir}
install -d ${D}${libdir}/pkgconfig
install -m 0644 ${WORKDIR}/egl.pc ${D}${libdir}/pkgconfig/
install -m 0644 ${UNPACKDIR}/egl.pc ${D}${libdir}/pkgconfig/
install -d ${D}/${sysconfdir}/init.d
install -m 0755 ${WORKDIR}/vchiq.sh ${D}${sysconfdir}/init.d/
install -m 0755 ${UNPACKDIR}/vchiq.sh ${D}${sysconfdir}/init.d/
}
# These are proprietary binaries generated elsewhere so don't check ldflags

View File

@@ -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$"

View File

@@ -1,10 +0,0 @@
FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:"
do_install:append:rpi() {
if [ -e ${D}/${sysconfdir}/init.d/weston ]; then
sed -i 's#weston-start --#weston-start -- --continue-without-input#' ${D}/${sysconfdir}/init.d/weston
fi
if [ -e ${D}${systemd_system_unitdir}/weston.service ]; then
sed -i 's#ExecStart=/usr/bin/weston#ExecStart=/usr/bin/weston --continue-without-input#' ${D}${systemd_system_unitdir}/weston.service
fi
}

View File

@@ -8,8 +8,8 @@ do_install:append:rpi () {
PITFT="${@bb.utils.contains("MACHINE_FEATURES", "pitft", "1", "0", d)}"
if [ "${PITFT}" = "1" ]; then
install -d ${D}/${sysconfdir}/X11/xorg.conf.d/
install -m 0644 ${WORKDIR}/xorg.conf.d/98-pitft.conf ${D}/${sysconfdir}/X11/xorg.conf.d/
install -m 0644 ${WORKDIR}/xorg.conf.d/99-calibration.conf ${D}/${sysconfdir}/X11/xorg.conf.d/
install -m 0644 ${UNPACKDIR}/xorg.conf.d/98-pitft.conf ${D}/${sysconfdir}/X11/xorg.conf.d/
install -m 0644 ${UNPACKDIR}/xorg.conf.d/99-calibration.conf ${D}/${sysconfdir}/X11/xorg.conf.d/
fi
}

View File

@@ -18,8 +18,8 @@ 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 \
"
SRCREV = "223ccf3a3ddb11b3ea829749fbbba4d65b380897"
PV = "20230625-2+rpt2"
SRCREV = "4b356e134e8333d073bd3802d767a825adec3807"
PV = "20230625-2+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
@@ -34,6 +39,7 @@ do_install() {
for fw in \
brcmfmac43430-sdio \
brcmfmac43430b0-sdio \
brcmfmac43436-sdio \
brcmfmac43436s-sdio \
brcmfmac43455-sdio \
@@ -42,6 +48,7 @@ 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
}
@@ -69,7 +76,10 @@ FILES:${PN}-bcm43430 = " \
${nonarch_base_libdir}/firmware/cypress/cyfmac43430-sdio.bin \
${nonarch_base_libdir}/firmware/cypress/cyfmac43430-sdio.clm_blob \
"
FILES:${PN}-bcm43436 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43436-*"
FILES:${PN}-bcm43436 = " \
${nonarch_base_libdir}/firmware/brcm/brcmfmac43436-* \
${nonarch_base_libdir}/firmware/brcm/brcmfmac43430b0-* \
"
FILES:${PN}-bcm43436s = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43436s*"
FILES:${PN}-bcm43439 = " \
${nonarch_base_libdir}/firmware/cypress/43439A0-7.95.49.00.combined \

View File

@@ -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

View File

@@ -1,4 +1,5 @@
CONFIG_I2C_BCM2835=y
CONFIG_I2C_BRCMSTB=y
CONFIG_DRM=y
CONFIG_DRM_FBDEV_EMULATION=y
CONFIG_DRM_VC4=y

View File

@@ -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

View File

@@ -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"

View File

@@ -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}"

View File

@@ -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"

View File

@@ -1,50 +0,0 @@
From 160181edf5fc73288abfe99fa04de4a550cd9c65 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Thu, 11 Feb 2016 12:53:20 -0800
Subject: [PATCH] Don't try to acquire buffer when src pad isn't active
From: =?UTF-8?q?Enrique=20Oca=C3=B1a=20Gonz=C3=A1lez?= <eocanha@igalia.com>
This solves a race condition when setting the pipeline from PAUSE to
NULL while the decoder loop is still running. Without this patch, the
thread which interacts with the decode sink pad gets blocked here:
gst_element_change_state()
gst_element_change_state_func()
gst_element_pads_activate() --> Deactivating pads
activate_pads()
gst_pad_set_active()
gst_pad_activate_mode()
post_activate()
GST_PAD_STREAM_LOCK()
while gst_omx_port_acquire_buffer() gets stalled forever in
gst_omx_component_wait_message() waiting for a message that will never
arrive:
gst_omx_video_dec_loop()
gst_omx_port_acquire_buffer()
gst_omx_component_wait_message()
---
Upstream-Status: Pending
omx/gstomxvideodec.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/omx/gstomxvideodec.c b/omx/gstomxvideodec.c
index abe6e30..c4dc33f 100644
--- a/omx/gstomxvideodec.c
+++ b/omx/gstomxvideodec.c
@@ -1598,6 +1598,11 @@ gst_omx_video_dec_loop (GstOMXVideoDec * self)
GstOMXAcquireBufferReturn acq_return;
OMX_ERRORTYPE err;
+ if (!gst_pad_is_active(GST_VIDEO_DECODER_SRC_PAD (self))) {
+ GST_DEBUG_OBJECT (self, "Src pad not active, not acquiring buffer and flushing instead");
+ goto flushing;
+ }
+
#if defined (USE_OMX_TARGET_RPI) && defined (HAVE_GST_GL)
port = self->eglimage ? self->egl_out_port : self->dec_out_port;
#else

View File

@@ -1,26 +0,0 @@
From 21f776bff596bc0bd09708efa6497f8bdcd065c0 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Sat, 13 Feb 2016 11:42:29 -0800
---
Upstream-Status: Pending
omx/gstomxvideodec.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/omx/gstomxvideodec.c b/omx/gstomxvideodec.c
index c4dc33f..ba5304f 100644
--- a/omx/gstomxvideodec.c
+++ b/omx/gstomxvideodec.c
@@ -2021,9 +2021,9 @@ gst_omx_video_dec_stop (GstVideoDecoder * decoder)
g_cond_broadcast (&self->drain_cond);
g_mutex_unlock (&self->drain_lock);
- gst_omx_component_get_state (self->dec, 5 * GST_SECOND);
+ gst_omx_component_get_state (self->dec, 0);
#if defined (USE_OMX_TARGET_RPI) && defined (HAVE_GST_GL)
- gst_omx_component_get_state (self->egl_render, 1 * GST_SECOND);
+ gst_omx_component_get_state (self->egl_render, 0);
#endif
gst_buffer_replace (&self->codec_data, NULL);

View File

@@ -1,32 +0,0 @@
From 140bf8548843a98b0af2ddc1765ab59c16c8994c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Enrique=20Oca=C3=B1a=20Gonz=C3=A1lez?= <eocanha@igalia.com>
Date: Tue, 17 Nov 2015 16:51:27 +0000
Subject: [PATCH] Properly handle drain requests while flushing
Without this commit the decoder streaming thread stops without ever attending
the drain request, leaving the decoder input thread waiting forever.
---
Upstream-Status: Pending
omx/gstomx.c | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/omx/gstomx.c b/omx/gstomx.c
index 038ce32..5202d33 100644
--- a/omx/gstomx.c
+++ b/omx/gstomx.c
@@ -1011,6 +1011,13 @@ gst_omx_component_new (GstObject * parent, const gchar * core_name,
g_mutex_lock (&comp->lock);
gst_omx_component_handle_messages (comp);
+
+ if (err != OMX_ErrorNone && comp->last_error == OMX_ErrorNone) {
+ GST_ERROR_OBJECT (comp->parent,
+ "Last operation returned an error. Setting last_error manually.");
+ comp->last_error = err;
+ }
+
g_mutex_unlock (&comp->lock);
return comp;

View File

@@ -1,36 +0,0 @@
From cf6cf2060c5a7a7ddc0396a0c20c234fc56c79b6 Mon Sep 17 00:00:00 2001
From: Andrei Gherzan <andrei@gherzan.ro>
Date: Tue, 28 May 2019 18:02:24 +0100
Subject: [PATCH] Don't abort gst_omx_video_dec_set_format() if there's a
timeout releasing the buffers taken by the egl_render out port
From 0d2ad639e6158c8023c157e206ef3ff7abdc089c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Enrique=20Oca=C3=B1a=20Gonz=C3=A1lez?=
<eocanha@igalia.com>
Date: Fri, 4 Dec 2015 18:39:59 +0100
Subject: [PATCH] Don't abort gst_omx_video_dec_set_format() if there's a
timeout releasing the buffers taken by the egl_render out port
Upstream-Status: Pending
Signed-off-by: Andrei Gherzan <andrei@gherzan.ro>
---
omx/gstomxvideodec.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/omx/gstomxvideodec.c b/omx/gstomxvideodec.c
index ba5304f..8bd5d3d 100644
--- a/omx/gstomxvideodec.c
+++ b/omx/gstomxvideodec.c
@@ -2229,7 +2229,9 @@ gst_omx_video_dec_disable (GstOMXVideoDec * self)
return FALSE;
if (gst_omx_port_wait_buffers_released (out_port,
1 * GST_SECOND) != OMX_ErrorNone)
+#if !(defined (USE_OMX_TARGET_RPI) && defined (HAVE_GST_GL))
return FALSE;
+#endif
if (!gst_omx_video_dec_deallocate_output_buffers (self))
return FALSE;
if (gst_omx_port_wait_enabled (out_port, 1 * GST_SECOND) != OMX_ErrorNone)
--
2.17.1

View File

@@ -1,12 +0,0 @@
FILESEXTRAPATHS:prepend:rpi := "${THISDIR}/${PN}:"
SRC_URI:append:rpi = " \
file://0001-Don-t-try-to-acquire-buffer-when-src-pad-isn-t-activ.patch \
file://0003-no-timeout-on-get-state.patch \
file://0004-Properly-handle-drain-requests-while-flushing.patch \
file://0005-Don-t-abort-gst_omx_video_dec_set_format-if-there-s-.patch \
"
GSTREAMER_1_0_OMX_TARGET:rpi = "rpi"
GSTREAMER_1_0_OMX_CORE_NAME:rpi = "${libdir}/libopenmaxil.so"
EXTRA_OEMESON:append:rpi = " -Dheader_path=${STAGING_DIR_TARGET}/usr/include/IL"

View File

@@ -11,6 +11,7 @@ S = "${RPIFW_S}"
do_install(){
install -m 0755 -d ${D}${libdir}
install -m 0755 ${S}/opt/vc/lib/*.so ${D}${libdir}
rm -f ${D}${libdir}/libGLES* ${D}${libdir}/libEGL* ${D}${libdir}/libWFC.so ${D}${libdir}/libOpenVG.so
}
FILES:${PN} = "${libdir}"

View File

@@ -1,292 +0,0 @@
From: James Cowgill <jcowgill@debian.org>
Date: Sun, 11 Aug 2019 16:50:56 +0100
Subject: avcodec/arm/sbcenc: avoid callee preserved vfp registers
Upstream-Status: Inappropriate
RPI-Distro repo clones original ffmpeg and applies patches to enable
raspiberry pi support.
When compiling FFmpeg with GCC-9, some very random segfaults were
observed in code which had previously called down into the SBC encoder
NEON assembly routines. This was caused by these functions clobbering
some of the vfp callee saved registers (d8 - d15 aka q4 - q7). GCC was
using these registers to save local variables, but after these
functions returned, they would contain garbage.
Fix by reallocating the registers in the two affected functions in
the following way:
ff_sbc_analyze_4_neon: q2-q5 => q8-q11, then q1-q4 => q8-q11
ff_sbc_analyze_8_neon: q2-q9 => q8-q15
The reason for using these replacements is to keep closely related
sets of registers consecutively numbered which hopefully makes the
code more easy to follow. Since this commit only reallocates
registers, it should have no performance impact.
Signed-off-by: James Cowgill <jcowgill@debian.org>
---
libavcodec/arm/sbcdsp_neon.S | 220 +++++++++++++++++++++----------------------
1 file changed, 110 insertions(+), 110 deletions(-)
diff --git a/libavcodec/arm/sbcdsp_neon.S b/libavcodec/arm/sbcdsp_neon.S
index d83d21d..914abfb 100644
--- a/libavcodec/arm/sbcdsp_neon.S
+++ b/libavcodec/arm/sbcdsp_neon.S
@@ -38,49 +38,49 @@ function ff_sbc_analyze_4_neon, export=1
/* TODO: merge even and odd cases (or even merge all four calls to this
* function) in order to have only aligned reads from 'in' array
* and reduce number of load instructions */
- vld1.16 {d4, d5}, [r0, :64]!
- vld1.16 {d8, d9}, [r2, :128]!
+ vld1.16 {d16, d17}, [r0, :64]!
+ vld1.16 {d20, d21}, [r2, :128]!
- vmull.s16 q0, d4, d8
- vld1.16 {d6, d7}, [r0, :64]!
- vmull.s16 q1, d5, d9
- vld1.16 {d10, d11}, [r2, :128]!
+ vmull.s16 q0, d16, d20
+ vld1.16 {d18, d19}, [r0, :64]!
+ vmull.s16 q1, d17, d21
+ vld1.16 {d22, d23}, [r2, :128]!
- vmlal.s16 q0, d6, d10
- vld1.16 {d4, d5}, [r0, :64]!
- vmlal.s16 q1, d7, d11
- vld1.16 {d8, d9}, [r2, :128]!
+ vmlal.s16 q0, d18, d22
+ vld1.16 {d16, d17}, [r0, :64]!
+ vmlal.s16 q1, d19, d23
+ vld1.16 {d20, d21}, [r2, :128]!
- vmlal.s16 q0, d4, d8
- vld1.16 {d6, d7}, [r0, :64]!
- vmlal.s16 q1, d5, d9
- vld1.16 {d10, d11}, [r2, :128]!
+ vmlal.s16 q0, d16, d20
+ vld1.16 {d18, d19}, [r0, :64]!
+ vmlal.s16 q1, d17, d21
+ vld1.16 {d22, d23}, [r2, :128]!
- vmlal.s16 q0, d6, d10
- vld1.16 {d4, d5}, [r0, :64]!
- vmlal.s16 q1, d7, d11
- vld1.16 {d8, d9}, [r2, :128]!
+ vmlal.s16 q0, d18, d22
+ vld1.16 {d16, d17}, [r0, :64]!
+ vmlal.s16 q1, d19, d23
+ vld1.16 {d20, d21}, [r2, :128]!
- vmlal.s16 q0, d4, d8
- vmlal.s16 q1, d5, d9
+ vmlal.s16 q0, d16, d20
+ vmlal.s16 q1, d17, d21
vpadd.s32 d0, d0, d1
vpadd.s32 d1, d2, d3
vrshrn.s32 d0, q0, SBC_PROTO_FIXED_SCALE
- vld1.16 {d2, d3, d4, d5}, [r2, :128]!
+ vld1.16 {d16, d17, d18, d19}, [r2, :128]!
vdup.i32 d1, d0[1] /* TODO: can be eliminated */
vdup.i32 d0, d0[0] /* TODO: can be eliminated */
- vmull.s16 q3, d2, d0
- vmull.s16 q4, d3, d0
- vmlal.s16 q3, d4, d1
- vmlal.s16 q4, d5, d1
+ vmull.s16 q10, d16, d0
+ vmull.s16 q11, d17, d0
+ vmlal.s16 q10, d18, d1
+ vmlal.s16 q11, d19, d1
- vpadd.s32 d0, d6, d7 /* TODO: can be eliminated */
- vpadd.s32 d1, d8, d9 /* TODO: can be eliminated */
+ vpadd.s32 d0, d20, d21 /* TODO: can be eliminated */
+ vpadd.s32 d1, d22, d23 /* TODO: can be eliminated */
vst1.32 {d0, d1}, [r1, :128]
@@ -91,57 +91,57 @@ function ff_sbc_analyze_8_neon, export=1
/* TODO: merge even and odd cases (or even merge all four calls to this
* function) in order to have only aligned reads from 'in' array
* and reduce number of load instructions */
- vld1.16 {d4, d5}, [r0, :64]!
- vld1.16 {d8, d9}, [r2, :128]!
-
- vmull.s16 q6, d4, d8
- vld1.16 {d6, d7}, [r0, :64]!
- vmull.s16 q7, d5, d9
- vld1.16 {d10, d11}, [r2, :128]!
- vmull.s16 q8, d6, d10
- vld1.16 {d4, d5}, [r0, :64]!
- vmull.s16 q9, d7, d11
- vld1.16 {d8, d9}, [r2, :128]!
-
- vmlal.s16 q6, d4, d8
- vld1.16 {d6, d7}, [r0, :64]!
- vmlal.s16 q7, d5, d9
- vld1.16 {d10, d11}, [r2, :128]!
- vmlal.s16 q8, d6, d10
- vld1.16 {d4, d5}, [r0, :64]!
- vmlal.s16 q9, d7, d11
- vld1.16 {d8, d9}, [r2, :128]!
-
- vmlal.s16 q6, d4, d8
- vld1.16 {d6, d7}, [r0, :64]!
- vmlal.s16 q7, d5, d9
- vld1.16 {d10, d11}, [r2, :128]!
- vmlal.s16 q8, d6, d10
- vld1.16 {d4, d5}, [r0, :64]!
- vmlal.s16 q9, d7, d11
- vld1.16 {d8, d9}, [r2, :128]!
-
- vmlal.s16 q6, d4, d8
- vld1.16 {d6, d7}, [r0, :64]!
- vmlal.s16 q7, d5, d9
- vld1.16 {d10, d11}, [r2, :128]!
- vmlal.s16 q8, d6, d10
- vld1.16 {d4, d5}, [r0, :64]!
- vmlal.s16 q9, d7, d11
- vld1.16 {d8, d9}, [r2, :128]!
-
- vmlal.s16 q6, d4, d8
- vld1.16 {d6, d7}, [r0, :64]!
- vmlal.s16 q7, d5, d9
- vld1.16 {d10, d11}, [r2, :128]!
-
- vmlal.s16 q8, d6, d10
- vmlal.s16 q9, d7, d11
-
- vpadd.s32 d0, d12, d13
- vpadd.s32 d1, d14, d15
- vpadd.s32 d2, d16, d17
- vpadd.s32 d3, d18, d19
+ vld1.16 {d16, d17}, [r0, :64]!
+ vld1.16 {d20, d21}, [r2, :128]!
+
+ vmull.s16 q12, d16, d20
+ vld1.16 {d18, d19}, [r0, :64]!
+ vmull.s16 q13, d17, d21
+ vld1.16 {d22, d23}, [r2, :128]!
+ vmull.s16 q14, d18, d22
+ vld1.16 {d16, d17}, [r0, :64]!
+ vmull.s16 q15, d19, d23
+ vld1.16 {d20, d21}, [r2, :128]!
+
+ vmlal.s16 q12, d16, d20
+ vld1.16 {d18, d19}, [r0, :64]!
+ vmlal.s16 q13, d17, d21
+ vld1.16 {d22, d23}, [r2, :128]!
+ vmlal.s16 q14, d18, d22
+ vld1.16 {d16, d17}, [r0, :64]!
+ vmlal.s16 q15, d19, d23
+ vld1.16 {d20, d21}, [r2, :128]!
+
+ vmlal.s16 q12, d16, d20
+ vld1.16 {d18, d19}, [r0, :64]!
+ vmlal.s16 q13, d17, d21
+ vld1.16 {d22, d23}, [r2, :128]!
+ vmlal.s16 q14, d18, d22
+ vld1.16 {d16, d17}, [r0, :64]!
+ vmlal.s16 q15, d19, d23
+ vld1.16 {d20, d21}, [r2, :128]!
+
+ vmlal.s16 q12, d16, d20
+ vld1.16 {d18, d19}, [r0, :64]!
+ vmlal.s16 q13, d17, d21
+ vld1.16 {d22, d23}, [r2, :128]!
+ vmlal.s16 q14, d18, d22
+ vld1.16 {d16, d17}, [r0, :64]!
+ vmlal.s16 q15, d19, d23
+ vld1.16 {d20, d21}, [r2, :128]!
+
+ vmlal.s16 q12, d16, d20
+ vld1.16 {d18, d19}, [r0, :64]!
+ vmlal.s16 q13, d17, d21
+ vld1.16 {d22, d23}, [r2, :128]!
+
+ vmlal.s16 q14, d18, d22
+ vmlal.s16 q15, d19, d23
+
+ vpadd.s32 d0, d24, d25
+ vpadd.s32 d1, d26, d27
+ vpadd.s32 d2, d28, d29
+ vpadd.s32 d3, d30, d31
vrshr.s32 q0, q0, SBC_PROTO_FIXED_SCALE
vrshr.s32 q1, q1, SBC_PROTO_FIXED_SCALE
@@ -153,38 +153,38 @@ function ff_sbc_analyze_8_neon, export=1
vdup.i32 d1, d0[1] /* TODO: can be eliminated */
vdup.i32 d0, d0[0] /* TODO: can be eliminated */
- vld1.16 {d4, d5}, [r2, :128]!
- vmull.s16 q6, d4, d0
- vld1.16 {d6, d7}, [r2, :128]!
- vmull.s16 q7, d5, d0
- vmull.s16 q8, d6, d0
- vmull.s16 q9, d7, d0
-
- vld1.16 {d4, d5}, [r2, :128]!
- vmlal.s16 q6, d4, d1
- vld1.16 {d6, d7}, [r2, :128]!
- vmlal.s16 q7, d5, d1
- vmlal.s16 q8, d6, d1
- vmlal.s16 q9, d7, d1
-
- vld1.16 {d4, d5}, [r2, :128]!
- vmlal.s16 q6, d4, d2
- vld1.16 {d6, d7}, [r2, :128]!
- vmlal.s16 q7, d5, d2
- vmlal.s16 q8, d6, d2
- vmlal.s16 q9, d7, d2
-
- vld1.16 {d4, d5}, [r2, :128]!
- vmlal.s16 q6, d4, d3
- vld1.16 {d6, d7}, [r2, :128]!
- vmlal.s16 q7, d5, d3
- vmlal.s16 q8, d6, d3
- vmlal.s16 q9, d7, d3
-
- vpadd.s32 d0, d12, d13 /* TODO: can be eliminated */
- vpadd.s32 d1, d14, d15 /* TODO: can be eliminated */
- vpadd.s32 d2, d16, d17 /* TODO: can be eliminated */
- vpadd.s32 d3, d18, d19 /* TODO: can be eliminated */
+ vld1.16 {d16, d17}, [r2, :128]!
+ vmull.s16 q12, d16, d0
+ vld1.16 {d18, d19}, [r2, :128]!
+ vmull.s16 q13, d17, d0
+ vmull.s16 q14, d18, d0
+ vmull.s16 q15, d19, d0
+
+ vld1.16 {d16, d17}, [r2, :128]!
+ vmlal.s16 q12, d16, d1
+ vld1.16 {d18, d19}, [r2, :128]!
+ vmlal.s16 q13, d17, d1
+ vmlal.s16 q14, d18, d1
+ vmlal.s16 q15, d19, d1
+
+ vld1.16 {d16, d17}, [r2, :128]!
+ vmlal.s16 q12, d16, d2
+ vld1.16 {d18, d19}, [r2, :128]!
+ vmlal.s16 q13, d17, d2
+ vmlal.s16 q14, d18, d2
+ vmlal.s16 q15, d19, d2
+
+ vld1.16 {d16, d17}, [r2, :128]!
+ vmlal.s16 q12, d16, d3
+ vld1.16 {d18, d19}, [r2, :128]!
+ vmlal.s16 q13, d17, d3
+ vmlal.s16 q14, d18, d3
+ vmlal.s16 q15, d19, d3
+
+ vpadd.s32 d0, d24, d25 /* TODO: can be eliminated */
+ vpadd.s32 d1, d26, d27 /* TODO: can be eliminated */
+ vpadd.s32 d2, d28, d29 /* TODO: can be eliminated */
+ vpadd.s32 d3, d30, d31 /* TODO: can be eliminated */
vst1.32 {d0, d1, d2, d3}, [r1, :128]

File diff suppressed because it is too large Load Diff

View File

@@ -1,34 +0,0 @@
From: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>
Date: Tue, 19 Jan 2021 20:35:29 +0100
Subject: Fix build on powerpc and ppc64
Upstream-Status: Inappropriate
RPI-Distro repo clones original ffmpeg and applies patches to enable
raspiberry pi support.
---
libswscale/ppc/yuv2rgb_altivec.c | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/libswscale/ppc/yuv2rgb_altivec.c b/libswscale/ppc/yuv2rgb_altivec.c
index 5365452..930ef6b 100644
--- a/libswscale/ppc/yuv2rgb_altivec.c
+++ b/libswscale/ppc/yuv2rgb_altivec.c
@@ -283,6 +283,16 @@ static inline void cvtyuvtoRGB(SwsContext *c, vector signed short Y,
* ------------------------------------------------------------------------------
*/
+#if !HAVE_VSX
+static inline vector unsigned char vec_xl(signed long long offset, const ubyte *addr)
+{
+ const vector unsigned char *v_addr = (const vector unsigned char *) (addr + offset);
+ vector unsigned char align_perm = vec_lvsl(offset, addr);
+
+ return (vector unsigned char) vec_perm(v_addr[0], v_addr[1], align_perm);
+}
+#endif /* !HAVE_VSX */
+
#define DEFCSP420_CVT(name, out_pixels) \
static int altivec_ ## name(SwsContext *c, const unsigned char **in, \
int *instrides, int srcSliceY, int srcSliceH, \

View File

@@ -1,30 +0,0 @@
From: Paul B Mahol <onemda@gmail.com>
Date: Sun, 14 Feb 2021 17:20:03 +0100
Subject: avcodec/pngenc: remove monowhite from apng formats
Upstream-Status: Inappropriate
RPI-Distro repo clones original ffmpeg and applies patches to enable
raspiberry pi support.
Monowhite pixel format is not supported, and it does not make sense
to add support for it.
Fixes #7989
---
libavcodec/pngenc.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/libavcodec/pngenc.c b/libavcodec/pngenc.c
index efcae8c..eebb164 100644
--- a/libavcodec/pngenc.c
+++ b/libavcodec/pngenc.c
@@ -1174,7 +1174,7 @@ AVCodec ff_apng_encoder = {
AV_PIX_FMT_PAL8,
AV_PIX_FMT_GRAY8, AV_PIX_FMT_GRAY8A,
AV_PIX_FMT_GRAY16BE, AV_PIX_FMT_YA16BE,
- AV_PIX_FMT_MONOBLACK, AV_PIX_FMT_NONE
+ AV_PIX_FMT_NONE
},
.priv_class = &apngenc_class,
};

View File

@@ -1,22 +0,0 @@
Upstream-Status: Inappropriate
RPI-Distro repo clones original ffmpeg and applies patches to enable
raspiberry pi support.
--- a/configure
+++ b/configure
@@ -6471,11 +6471,9 @@ enabled mbedtls && { check_pkg
die "ERROR: mbedTLS not found"; }
enabled mediacodec && { enabled jni || die "ERROR: mediacodec requires --enable-jni"; }
( enabled rpi ||
- enabled mmal ) && { check_lib mmal interface/mmal/mmal.h mmal_port_connect -lmmal_core -lmmal_util -lmmal_vc_client -lbcm_host ||
- { ! enabled cross_compile &&
- add_cflags -isystem/opt/vc/include/ -isystem/opt/vc/include/interface/vmcs_host/linux -isystem/opt/vc/include/interface/vcos/pthreads -fgnu89-inline &&
- add_ldflags -L/opt/vc/lib/ &&
- check_lib mmal interface/mmal/mmal.h mmal_port_connect -lmmal_core -lmmal_util -lmmal_vc_client -lbcm_host -lvcos -lvcsm -lvchostif -lvchiq_arm; } ||
+ enabled mmal ) && { { add_cflags -isystem/opt/vc/include/ -isystem/opt/vc/include/interface/vmcs_host/linux -isystem/opt/vc/include/interface/vcos/pthreads -fgnu89-inline &&
+ add_ldflags -L/opt/vc/lib/ &&
+ check_lib mmal interface/mmal/mmal.h mmal_port_connect -lmmal_core -lmmal_util -lmmal_vc_client -lbcm_host -lvcsm -lvchostif -lvchiq_arm -lvcos; } ||
die "ERROR: mmal not found" &&
check_func_headers interface/mmal/mmal.h "MMAL_PARAMETER_VIDEO_MAX_NUM_CALLBACKS"; }
enabled openal && { { for al_extralibs in "${OPENAL_LIBS}" "-lopenal" "-lOpenAL32"; do

View File

@@ -1,6 +1,6 @@
From 01e738a8f1414acd0102e432bbc15b4e603fd956 Mon Sep 17 00:00:00 2001
From 702742f9575c87ac8c496d76daf51af7d4aaebd7 Mon Sep 17 00:00:00 2001
From: Vincent Davis Jr <vince@underview.tech>
Date: Thu, 8 Dec 2022 10:34:20 -0600
Date: Sun, 9 Jun 2024 18:09:25 -0400
Subject: [PATCH] configure: setup for OE-core usage
Upstream-Status: Inappropriate
@@ -17,66 +17,63 @@ exists and we also should be using GLESv2.
Update where compiler finds OMX_Core.h
Only check that sdl2 version greater than 2.0.1
Only check that sdl2 version greater than 3.0.0
Signed-off-by: Vincent Davis Jr <vince@underview.tech>
---
configure | 16 +++++++++-------
1 file changed, 9 insertions(+), 7 deletions(-)
configure | 14 +++++++++-----
1 file changed, 9 insertions(+), 5 deletions(-)
diff --git a/configure b/configure
index 723b81f1..0c7f2654 100755
index 7214c221..7a541e63 100755
--- a/configure
+++ b/configure
@@ -5746,6 +5746,9 @@ enable_weak_pic() {
@@ -5898,6 +5898,9 @@ enable_weak_pic() {
}
enabled pic && enable_weak_pic
+# Set CFLAGS and LDFLAGS globally
+add_cflags -I${sysroot}/usr/include/ -I${sysroot}/usr/include/IL -I${sysroot}/usr/include/drm
+add_ldflags -L${sysroot}/usr/lib/
+add_ldflags -L${sysroot}/usr/lib
test_cc <<EOF || die "Symbol mangling check failed."
int ff_extern;
@@ -6471,8 +6474,7 @@ enabled mbedtls && { check_pkg_config mbedtls mbedtls mbedtls/x509_crt
die "ERROR: mbedTLS not found"; }
@@ -6716,8 +6719,8 @@ enabled mbedtls && { check_pkg_config mbedtls mbedtls mbedtls/x509_crt
enabled mediacodec && { enabled jni || die "ERROR: mediacodec requires --enable-jni"; }
( enabled rpi ||
- enabled mmal ) && { { add_cflags -isystem/opt/vc/include/ -isystem/opt/vc/include/interface/vmcs_host/linux -isystem/opt/vc/include/interface/vcos/pthreads -fgnu89-inline &&
- add_ldflags -L/opt/vc/lib/ &&
+ enabled mmal ) && { { add_cflags -I${sysroot}/usr/include/interface/vmcs_host/linux -I${sysroot}/usr/include/interface/vcos/pthreads -fgnu89-inline &&
check_lib mmal interface/mmal/mmal.h mmal_port_connect -lmmal_core -lmmal_util -lmmal_vc_client -lbcm_host -lvcsm -lvchostif -lvchiq_arm -lvcos; } ||
enabled mmal && { check_lib mmal interface/mmal/mmal.h mmal_port_connect -lmmal_core -lmmal_util -lmmal_vc_client -lbcm_host ||
{ ! enabled cross_compile &&
- add_cflags -isystem/opt/vc/include/ -isystem/opt/vc/include/interface/vmcs_host/linux -isystem/opt/vc/include/interface/vcos/pthreads -fgnu89-inline &&
- add_ldflags -L/opt/vc/lib/ &&
+ add_cflags -I${sysroot}/usr/include -I${sysroot}/usr/include/interface/vmcs_host/linux -I${sysroot}/usr/include/interface/vcos/pthreads -fgnu89-inline &&
+ add_ldflags -L${sysroot}/usr/lib &&
check_lib mmal interface/mmal/mmal.h mmal_port_connect -lmmal_core -lmmal_util -lmmal_vc_client -lbcm_host; } ||
die "ERROR: mmal not found" &&
check_func_headers interface/mmal/mmal.h "MMAL_PARAMETER_VIDEO_MAX_NUM_CALLBACKS"; }
@@ -6492,15 +6494,15 @@ enabled opengl && { check_lib opengl GL/glx.h glXGetProcAddress "-lGL
@@ -6737,12 +6740,13 @@ enabled opengl && { check_lib opengl GL/glx.h glXGetProcAddress "-lGL
check_lib opengl windows.h wglGetProcAddress "-lopengl32 -lgdi32" ||
check_lib opengl OpenGL/gl3.h glGetError "-Wl,-framework,OpenGL" ||
check_lib opengl ES2/gl.h glGetError "-isysroot=${sysroot} -Wl,-framework,OpenGLES" ||
+ check_lib opengl GLES2/gl2.h glGetError "-lGLESv2" ||
+ check_lib opengl GLES2/gl2.h glGetError "-lGLESv2" ||
die "ERROR: opengl not found."
}
-enabled omx_rpi && { test_code cc OMX_Core.h OMX_IndexConfigBrcmVideoRequestIFrame ||
+enabled omx_rpi && { test_code cc IL/OMX_Core.h OMX_IndexConfigBrcmVideoRequestIFrame ||
enabled omx_rpi && { test_code cc OMX_Core.h OMX_IndexConfigBrcmVideoRequestIFrame ||
{ ! enabled cross_compile &&
- add_cflags -isystem/opt/vc/include/IL &&
- test_code cc OMX_Core.h OMX_IndexConfigBrcmVideoRequestIFrame; } ||
+ add_cflags -I${sysroot}/usr/include/IL &&
+ test_code cc IL/OMX_Core.h OMX_IndexConfigBrcmVideoRequestIFrame; } ||
die "ERROR: OpenMAX IL headers from raspberrypi/firmware not found"; } &&
enable omx
-enabled omx && require_headers OMX_Core.h
+enabled omx && require_headers IL/OMX_Core.h
enabled openssl && { check_pkg_config openssl openssl openssl/ssl.h OPENSSL_init_ssl ||
check_pkg_config openssl openssl openssl/ssl.h SSL_library_init ||
check_lib openssl openssl/ssl.h OPENSSL_init_ssl -lssl -lcrypto ||
@@ -6540,7 +6542,7 @@ fi
enabled omx && require_headers OMX_Core.h
@@ -6788,7 +6792,7 @@ fi
if enabled sdl2; then
SDL2_CONFIG="${cross_prefix}sdl2-config"
- test_pkg_config sdl2 "sdl2 >= 2.0.1 sdl2 < 2.1.0" SDL_events.h SDL_PollEvent
- test_pkg_config sdl2 "sdl2 >= 2.0.1 sdl2 < 3.0.0" SDL_events.h SDL_PollEvent
+ test_pkg_config sdl2 "sdl2 >= 2.0.1" SDL_events.h SDL_PollEvent
if disabled sdl2 && "${SDL2_CONFIG}" --version > /dev/null 2>&1; then
sdl2_cflags=$("${SDL2_CONFIG}" --cflags)
sdl2_extralibs=$("${SDL2_CONFIG}" --libs)
--
2.38.1
2.34.1

View File

@@ -1,111 +0,0 @@
From be426ad76c3e486f1364dd292cf8e1c633c80e91 Mon Sep 17 00:00:00 2001
From: Vincent Davis Jr <vince@underview.tech>
Date: Thu, 8 Dec 2022 10:39:47 -0600
Subject: [PATCH] libavdevice: opengl_enc.c update dynamic function loader
Upstream-Status: Inappropriate
RPI-Distro repo clones original ffmpeg and applies patches to enable
raspiberry pi support.
For meta-raspberrypi ffmpeg builds, when opengl
is enabled do_compile will fail. Reasion is that
glGetProcAddress is undefined in either GLES2/gl2.h
or GLES2/gl2ext.h.
define SelectedGetProcAddress to SDL_GL_GetProcAddress
if sdl2 is included. If not included, define function
pointers at compile time versus runtime.
Signed-off-by: Vincent Davis Jr <vince@underview.tech>
---
libavdevice/opengl_enc.c | 44 ++++++++++++++++++++++++++++++++++++----
1 file changed, 40 insertions(+), 4 deletions(-)
diff --git a/libavdevice/opengl_enc.c b/libavdevice/opengl_enc.c
index 2bdb8da7..eabc1bf8 100644
--- a/libavdevice/opengl_enc.c
+++ b/libavdevice/opengl_enc.c
@@ -37,12 +37,13 @@
#include <OpenGL/gl3.h>
#elif HAVE_ES2_GL_H
#include <ES2/gl.h>
-#else
-#include <GL/gl.h>
-#include <GL/glext.h>
#endif
#if HAVE_GLXGETPROCADDRESS
#include <GL/glx.h>
+#else
+#define GL_GLEXT_PROTOTYPES
+#include <GLES2/gl2.h>
+#include <GLES2/gl2ext.h>
#endif
#if CONFIG_SDL2
@@ -493,8 +494,14 @@ static int av_cold opengl_load_procedures(OpenGLContext *opengl)
#if HAVE_GLXGETPROCADDRESS
#define SelectedGetProcAddress glXGetProcAddress
+#define CAN_DYNAMIC_LOAD 1
#elif HAVE_WGLGETPROCADDRESS
#define SelectedGetProcAddress wglGetProcAddress
+#elif CONFIG_SDL2
+#define SelectedGetProcAddress SDL_GL_GetProcAddress
+#define CAN_DYNAMIC_LOAD 1
+#else
+#define CAN_DYNAMIC_LOAD 0
#endif
#define LOAD_OPENGL_FUN(name, type) \
@@ -504,7 +511,8 @@ static int av_cold opengl_load_procedures(OpenGLContext *opengl)
return AVERROR(ENOSYS); \
}
-#if CONFIG_SDL2
+#if CAN_DYNAMIC_LOAD
+#if CONFIG_SDL2
if (!opengl->no_window)
return opengl_sdl_load_procedures(opengl);
#endif
@@ -534,9 +542,37 @@ static int av_cold opengl_load_procedures(OpenGLContext *opengl)
LOAD_OPENGL_FUN(glGetShaderInfoLog, FF_PFNGLGETSHADERINFOLOGPROC)
LOAD_OPENGL_FUN(glEnableVertexAttribArray, FF_PFNGLENABLEVERTEXATTRIBARRAYPROC)
LOAD_OPENGL_FUN(glVertexAttribPointer, FF_PFNGLVERTEXATTRIBPOINTERPROC)
+#else
+ procs->glActiveTexture = glActiveTexture;
+ procs->glGenBuffers = glGenBuffers;
+ procs->glDeleteBuffers = glDeleteBuffers;
+ procs->glBufferData = glBufferData;
+ procs->glBindBuffer = glBindBuffer;
+ procs->glGetAttribLocation = glGetAttribLocation;
+ procs->glGetUniformLocation = glGetUniformLocation;
+ procs->glUniform1f = glUniform1f;
+ procs->glUniform1i = glUniform1i;
+ procs->glUniformMatrix4fv = glUniformMatrix4fv;
+ procs->glCreateProgram = glCreateProgram;
+ procs->glDeleteProgram = glDeleteProgram;
+ procs->glUseProgram = glUseProgram;
+ procs->glLinkProgram = glLinkProgram;
+ procs->glGetProgramiv = glGetProgramiv;
+ procs->glGetProgramInfoLog = glGetProgramInfoLog;
+ procs->glAttachShader = glAttachShader;
+ procs->glCreateShader = glCreateShader;
+ procs->glDeleteShader = glDeleteShader;
+ procs->glCompileShader = glCompileShader;
+ procs->glShaderSource = glShaderSource;
+ procs->glGetShaderiv = glGetShaderiv;
+ procs->glGetShaderInfoLog = glGetShaderInfoLog;
+ procs->glEnableVertexAttribArray = glEnableVertexAttribArray;
+ procs->glVertexAttribPointer = (FF_PFNGLVERTEXATTRIBPOINTERPROC) glVertexAttribPointer;
+#endif
return 0;
+#undef CAN_DYNAMIC_LOAD
#undef SelectedGetProcAddress
#undef LOAD_OPENGL_FUN
}
--
2.38.1

View File

@@ -1,45 +0,0 @@
From 62c2f041890a6e20770350721a0a2138d0b38634 Mon Sep 17 00:00:00 2001
From: Vincent Davis Jr <vince@underview.tech>
Date: Sat, 3 Dec 2022 23:35:51 -0600
Subject: [PATCH] libavcodec: fix v4l2_req_devscan.h
Upstream-Status: Inappropriate
RPI-Distro repo clones original ffmpeg and applies patches to enable
raspiberry pi support.
Fixes minor differences between v4l2_req_devscan.c
and v4l2_req_devscan.h after all patches have been
applied.
Signed-off-by: Vincent Davis Jr <vince@underview.tech>
---
libavcodec/v4l2_req_devscan.h | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/libavcodec/v4l2_req_devscan.h b/libavcodec/v4l2_req_devscan.h
index 0baef365..cd9c49ac 100644
--- a/libavcodec/v4l2_req_devscan.h
+++ b/libavcodec/v4l2_req_devscan.h
@@ -1,6 +1,8 @@
#ifndef _DEVSCAN_H_
#define _DEVSCAN_H_
+#include <stdint.h>
+
struct devscan;
struct decdev;
enum v4l2_buf_type;
@@ -13,7 +15,8 @@ const char *decdev_video_path(const struct decdev *const dev);
enum v4l2_buf_type decdev_src_type(const struct decdev *const dev);
uint32_t decdev_src_pixelformat(const struct decdev *const dev);
-const struct decdev *devscan_find(struct devscan *const scan, const uint32_t src_fmt_v4l2);
+const struct decdev *devscan_find(struct devscan *const scan,
+ const uint32_t src_fmt_v4l2);
int devscan_build(void * const dc, struct devscan **pscan);
void devscan_delete(struct devscan **const pScan);
--
2.38.1

View File

@@ -33,27 +33,22 @@ RPROVIDES:${PN} = "${PROVIDES}"
DEPENDS = "nasm-native"
inherit autotools pkgconfig
PACKAGECONFIG ??= "avdevice avfilter avcodec avformat swresample swscale postproc avresample ffplay \
PACKAGECONFIG ??= "avdevice avfilter avcodec avformat swresample swscale postproc ffplay \
v4l2 drm udev alsa bzlib lzma pic pthreads shared theora zlib libvorbis x264 gpl \
${@bb.utils.contains('MACHINE_FEATURES', 'vc4graphics', '', 'mmal rpi sand vout-drm', d)} \
${@bb.utils.contains('MACHINE_FEATURES', 'vc4graphics', '', 'mmal sand vout-drm', d)} \
${@bb.utils.contains('AVAILTUNES', 'mips32r2', 'mips32r2', '', d)} \
${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'opengl', '', d)} \
${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'xv xcb vout-egl epoxy', '', d)}"
${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'xv xcb', '', d)} \
${@bb.utils.contains('DISTRO_FEATURES', 'x11 opengl', 'epoxy vout-egl', '', d)}"
SRC_URI = "\
git://git@github.com/RPi-Distro/ffmpeg;protocol=https;branch=pios/bullseye \
file://0001-avcodec-arm-sbcenc-avoid-callee-preserved-vfp-regist.patch \
file://0002-Fix-build-on-powerpc-and-ppc64.patch \
file://0003-avcodec-pngenc-remove-monowhite-from-apng-formats.patch \
file://0004-ffmpeg-4.3.4-rpi_14.patch \
file://0005-fix-flags.diff \
git://git@github.com/RPi-Distro/ffmpeg;protocol=https;branch=pios/bookworm \
file://0001-ffmpeg-5.1.4-rpi_24.patch \
file://2001-configure-setup-for-OE-core-usage.patch \
file://2002-libavdevice-opengl_enc-update-dynamic-function-loader.patch \
file://2003-libavcodec-fix-v4l2_req_devscan.patch \
file://2004-libavcodec-omx-replace-opt-vc-path-with-usr-lib.patch \
"
SRCREV = "246e1a55a0eca931537d8706acd8b133c07beb05"
SRCREV = "1c363463c432c5ed492c7b759abb6e015b93b6b5"
S = "${WORKDIR}/git"
@@ -65,7 +60,7 @@ PACKAGECONFIG[avformat] = "--enable-avformat,--disable-avformat"
PACKAGECONFIG[swresample] = "--enable-swresample,--disable-swresample"
PACKAGECONFIG[swscale] = "--enable-swscale,--disable-swscale"
PACKAGECONFIG[postproc] = "--enable-postproc,--disable-postproc"
PACKAGECONFIG[avresample] = "--enable-avresample,--disable-avresample"
#PACKAGECONFIG[avresample] = "--enable-avresample,--disable-avresample"
# features to support
PACKAGECONFIG[ffplay] = "--enable-ffplay,--disable-ffplay"
@@ -101,7 +96,6 @@ PACKAGECONFIG[epoxy] = "--enable-epoxy,--disable-epoxy,libepoxy"
PACKAGECONFIG[v4l2] = "--enable-libv4l2 --enable-v4l2-m2m,,v4l-utils"
PACKAGECONFIG[mmal] = "--enable-omx --enable-omx-rpi --enable-mmal,,userland"
PACKAGECONFIG[sand] = "--enable-sand,,"
PACKAGECONFIG[rpi] = "--enable-rpi,,"
PACKAGECONFIG[vout-drm] = "--enable-vout-drm,,libdrm"
PACKAGECONFIG[vout-egl] = "--enable-vout-egl,,virtual/egl"