mirror of
https://github.com/agherzan/meta-raspberrypi.git
synced 2025-12-06 14:19:12 +00:00
Compare commits
49 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
95f2cefa1f | ||
|
|
b667e177b1 | ||
|
|
558f3ac5e6 | ||
|
|
6f4c1d3297 | ||
|
|
846c1195e4 | ||
|
|
982bfa0670 | ||
|
|
df6164f7ae | ||
|
|
7439575078 | ||
|
|
9806b9981a | ||
|
|
161be949b9 | ||
|
|
0e56e2f1b3 | ||
|
|
e75c190de3 | ||
|
|
016b1cec8f | ||
|
|
6bfb571142 | ||
|
|
f2fd4b0ea2 | ||
|
|
90ce848980 | ||
|
|
bf065600bc | ||
|
|
33a3ab273d | ||
|
|
cd66341124 | ||
|
|
93375824f4 | ||
|
|
65eec6d4e8 | ||
|
|
b32d1172a3 | ||
|
|
5a2359bfa8 | ||
|
|
e145dc4d24 | ||
|
|
065874418d | ||
|
|
b21dd5cd60 | ||
|
|
bb660e9ec7 | ||
|
|
a3b23e5cb8 | ||
|
|
55cdc0341c | ||
|
|
03981f9365 | ||
|
|
3dedb92dcc | ||
|
|
7bff7365cf | ||
|
|
0a29a2b44c | ||
|
|
6d6f02ad1f | ||
|
|
77654bddba | ||
|
|
b9a4acca5f | ||
|
|
5aa62b1cf5 | ||
|
|
49a2d12489 | ||
|
|
c489c75260 | ||
|
|
b9d14e4289 | ||
|
|
2b05eb76b9 | ||
|
|
decad3c132 | ||
|
|
d4a80461c8 | ||
|
|
c4cb89e7c1 | ||
|
|
cdcbd825ec | ||
|
|
07ba2ff5fb | ||
|
|
c705e756e3 | ||
|
|
c300562cf8 | ||
|
|
8d57f35e44 |
2
.github/actions/docker-build/action.yml
vendored
2
.github/actions/docker-build/action.yml
vendored
@@ -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
|
||||
|
||||
2
.github/workflows/docker-images/README.md
vendored
2
.github/workflows/docker-images/README.md
vendored
@@ -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
|
||||
```
|
||||
|
||||
@@ -24,7 +24,9 @@ TEMP_DIR="$(mktemp -d)"
|
||||
cd "$TEMP_DIR"
|
||||
|
||||
REPOS=" \
|
||||
git://git.yoctoproject.org/poky.git \
|
||||
git://git.openembedded.org/openembedded-core \
|
||||
git://git.openembedded.org/bitbake \
|
||||
git://git.yoctoproject.org/meta-yocto \
|
||||
"
|
||||
for repo in $REPOS; do
|
||||
log "Cloning $repo on branch $BASE_REF..."
|
||||
@@ -32,7 +34,7 @@ for repo in $REPOS; do
|
||||
done
|
||||
|
||||
# shellcheck disable=SC1091,SC2240
|
||||
. ./poky/oe-init-build-env build
|
||||
. ./openembedded-core/oe-init-build-env build
|
||||
|
||||
# Build configuration
|
||||
printf "\n# ------ ci ------\n" >> conf/local.conf
|
||||
@@ -52,6 +54,8 @@ LICENSE_FLAGS_ACCEPTED = "synaptics-killswitch"
|
||||
EOCONF
|
||||
|
||||
# Add the BSP layer
|
||||
bitbake-layers add-layer "../meta-yocto/meta-poky"
|
||||
bitbake-layers add-layer "../meta-yocto/meta-yocto-bsp"
|
||||
bitbake-layers add-layer "$META_RASPBERRYPI_PATH"
|
||||
|
||||
# Log configs for debugging purposes
|
||||
|
||||
@@ -20,7 +20,8 @@ TEMP_DIR="$(mktemp -d)"
|
||||
cd "$TEMP_DIR"
|
||||
|
||||
REPOS=" \
|
||||
git://git.yoctoproject.org/poky.git \
|
||||
git://git.openembedded.org/openembedded-core \
|
||||
git://git.openembedded.org/bitbake \
|
||||
"
|
||||
for repo in $REPOS; do
|
||||
log "Cloning $repo on branch $BASE_REF..."
|
||||
@@ -28,6 +29,6 @@ for repo in $REPOS; do
|
||||
done
|
||||
|
||||
# shellcheck disable=SC1091,SC2240
|
||||
. ./poky/oe-init-build-env build
|
||||
. ./openembedded-core/oe-init-build-env build
|
||||
yocto-check-layer --with-software-layer-signature-check --debug \
|
||||
"$GIT_REPO_PATH"
|
||||
|
||||
1
.github/workflows/yocto-builds.yml
vendored
1
.github/workflows/yocto-builds.yml
vendored
@@ -20,6 +20,7 @@ jobs:
|
||||
- raspberrypi0-2w
|
||||
- raspberrypi0
|
||||
- raspberrypi0-wifi
|
||||
- raspberrypi2-64
|
||||
- raspberrypi2
|
||||
- raspberrypi3-64
|
||||
- raspberrypi3
|
||||
|
||||
18
README.md
18
README.md
@@ -53,14 +53,21 @@ Layers Program`. You can find details of that on the official Yocto Project
|
||||
## Dependencies
|
||||
|
||||
This layer depends on:
|
||||
* URI: https://git.openembedded.org/bitbake
|
||||
* branch: master
|
||||
* revision: HEAD
|
||||
|
||||
* URI: git://git.yoctoproject.org/poky
|
||||
* URI: https://git.openembedded.org/openembedded-core
|
||||
* branch: master
|
||||
* revision: HEAD
|
||||
|
||||
* URI: https://git.yoctoproject.org/meta-yocto
|
||||
* branch: master
|
||||
* revision: HEAD
|
||||
|
||||
## Quick Start
|
||||
|
||||
1. source poky/oe-init-build-env rpi-build
|
||||
1. source openembedded-core/oe-init-build-env rpi-build
|
||||
2. Add this layer to bblayers.conf and the dependencies above
|
||||
3. Set MACHINE in local.conf to one of the supported boards
|
||||
4. bitbake core-image-base
|
||||
@@ -70,9 +77,10 @@ This layer depends on:
|
||||
## Quick Start with kas
|
||||
|
||||
1. Install kas build tool from PyPi (sudo pip3 install kas)
|
||||
2. kas build meta-raspberrypi/kas-poky-rpi.yml
|
||||
3. Use bmaptool to copy the generated .wic.bz2 file to the SD card
|
||||
4. Boot your RPI
|
||||
2. Set the `machine: ` in kas-poky-rpi.yml to one of the supported boards (see conf/machine/*.conf)
|
||||
3. kas build meta-raspberrypi/kas-poky-rpi.yml
|
||||
4. Use bmaptool to copy the generated .wic.bz2 file to the SD card
|
||||
5. Boot your RPI
|
||||
|
||||
To adjust the build configuration with specific options (I2C, SPI, ...), simply add
|
||||
a section as follows:
|
||||
|
||||
@@ -9,7 +9,7 @@ BBFILE_COLLECTIONS += "raspberrypi"
|
||||
BBFILE_PATTERN_raspberrypi := "^${LAYERDIR}/"
|
||||
BBFILE_PRIORITY_raspberrypi = "9"
|
||||
|
||||
LAYERSERIES_COMPAT_raspberrypi = "styhead walnascar"
|
||||
LAYERSERIES_COMPAT_raspberrypi = "whinlatter"
|
||||
LAYERDEPENDS_raspberrypi = "core"
|
||||
|
||||
# Additional license directories.
|
||||
|
||||
@@ -51,6 +51,7 @@ RPI_KERNEL_DEVICETREE_OVERLAYS ?= " \
|
||||
overlays/iqaudio-dacplus.dtbo \
|
||||
overlays/mcp2515-can0.dtbo \
|
||||
overlays/mcp2515-can1.dtbo \
|
||||
overlays/seeed-can-fd-hat-v2.dtbo \
|
||||
overlays/mcp3008.dtbo \
|
||||
overlays/miniuart-bt.dtbo \
|
||||
overlays/pitft22.dtbo \
|
||||
@@ -77,8 +78,12 @@ RPI_KERNEL_DEVICETREE_OVERLAYS ?= " \
|
||||
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/vc4-kms-dsi-ili9881-5inch.dtbo \
|
||||
overlays/rpi-backlight.dtbo \
|
||||
overlays/w1-gpio.dtbo \
|
||||
overlays/w1-gpio-pullup.dtbo \
|
||||
overlays/w1-gpio-pi5.dtbo \
|
||||
overlays/wm8960-soundcard.dtbo \
|
||||
overlays/bcm2712d0.dtbo \
|
||||
"
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# RaspberryPi BSP default versions
|
||||
|
||||
PREFERRED_VERSION_linux-raspberrypi ??= "6.6.%"
|
||||
PREFERRED_VERSION_linux-raspberrypi ??= "6.12.%"
|
||||
PREFERRED_VERSION_linux-raspberrypi-v7 ??= "${PREFERRED_VERSION_linux-raspberrypi}"
|
||||
|
||||
@@ -23,6 +23,7 @@ MACHINE_EXTRA_RRECOMMENDS += "\
|
||||
"
|
||||
|
||||
RPI_KERNEL_DEVICETREE = " \
|
||||
broadcom/bcm2710-rpi-2-b.dtb \
|
||||
broadcom/bcm2710-rpi-3-b.dtb \
|
||||
broadcom/bcm2710-rpi-3-b-plus.dtb \
|
||||
broadcom/bcm2837-rpi-3-b.dtb \
|
||||
|
||||
30
conf/machine/raspberrypi2-64.conf
Normal file
30
conf/machine/raspberrypi2-64.conf
Normal file
@@ -0,0 +1,30 @@
|
||||
#@TYPE: Machine
|
||||
#@NAME: RaspberryPi 2 V1.2 Development Board
|
||||
#@DESCRIPTION: Machine configuration for the RaspberryPi 2 in 64 bits mode
|
||||
|
||||
MACHINEOVERRIDES =. "raspberrypi3-64:"
|
||||
|
||||
DEFAULTTUNE ?= "cortexa53-nocrypto"
|
||||
require conf/machine/include/arm/armv8a/tune-cortexa53.inc
|
||||
include conf/machine/include/rpi-base.inc
|
||||
|
||||
RPI_KERNEL_DEVICETREE = " \
|
||||
broadcom/bcm2710-rpi-2-b.dtb \
|
||||
broadcom/bcm2710-rpi-3-b.dtb \
|
||||
broadcom/bcm2710-rpi-3-b-plus.dtb \
|
||||
broadcom/bcm2837-rpi-3-b.dtb \
|
||||
broadcom/bcm2710-rpi-cm3.dtb \
|
||||
"
|
||||
|
||||
SDIMG_KERNELIMAGE ?= "kernel8.img"
|
||||
# When u-boot is enabled we need to use the "Image" format and the "booti"
|
||||
# command to load the kernel
|
||||
KERNEL_IMAGETYPE_UBOOT ?= "Image"
|
||||
# "zImage" not supported on arm64 and ".gz" images not supported by bootloader yet
|
||||
KERNEL_IMAGETYPE_DIRECT ?= "Image"
|
||||
KERNEL_BOOTCMD ?= "booti"
|
||||
UBOOT_MACHINE = "rpi_arm64_config"
|
||||
SERIAL_CONSOLES ?= "115200;ttyAMA0"
|
||||
|
||||
VC4DTBO ?= "vc4-fkms-v3d"
|
||||
ARMSTUB ?= "armstub8.bin"
|
||||
@@ -12,3 +12,19 @@ SERIAL_CONSOLES ?= "115200;ttyAMA0"
|
||||
UBOOT_MACHINE = "rpi_2_config"
|
||||
|
||||
ARMSTUB ?= "armstub7.bin"
|
||||
|
||||
#
|
||||
# Below are variables ONLY needed for running with Yocto/OE's runqemu script
|
||||
#
|
||||
IMAGE_CLASSES += "qemuboot"
|
||||
|
||||
QB_SYSTEM_NAME = "qemu-system-arm"
|
||||
QB_MACHINE = "-machine raspi2b"
|
||||
QB_MEM = "-m 1024"
|
||||
QB_DTB = "bcm2709-rpi-2-b.dtb"
|
||||
QB_NET = "none"
|
||||
QB_KERNEL_ROOT = "/dev/mmcblk0"
|
||||
QB_KERNEL_CMDLINE_APPEND = "rootwait"
|
||||
QB_RNG = ""
|
||||
QB_ROOTFS_OPT = "-drive id=disk0,file=@ROOTFS@,if=sd,format=raw"
|
||||
QB_DEFAULT_FSTYPE = "ext3"
|
||||
|
||||
@@ -11,10 +11,12 @@ MACHINE_EXTRA_RRECOMMENDS += "\
|
||||
bluez-firmware-rpidistro-bcm4345c0-hcd \
|
||||
"
|
||||
|
||||
DEFAULTTUNE ?= "cortexa53-nocrypto"
|
||||
require conf/machine/include/arm/armv8a/tune-cortexa53.inc
|
||||
include conf/machine/include/rpi-base.inc
|
||||
|
||||
RPI_KERNEL_DEVICETREE = " \
|
||||
broadcom/bcm2710-rpi-2-b.dtb \
|
||||
broadcom/bcm2710-rpi-3-b.dtb \
|
||||
broadcom/bcm2710-rpi-3-b-plus.dtb \
|
||||
broadcom/bcm2837-rpi-3-b.dtb \
|
||||
|
||||
@@ -12,6 +12,8 @@ MACHINE_EXTRA_RRECOMMENDS += "\
|
||||
bluez-firmware-rpidistro-bcm4345c5-hcd \
|
||||
"
|
||||
|
||||
DEFAULTTUNE = "cortexa72-nocrypto"
|
||||
|
||||
require conf/machine/include/arm/armv8a/tune-cortexa72.inc
|
||||
include conf/machine/include/rpi-base.inc
|
||||
|
||||
|
||||
@@ -354,6 +354,12 @@ Tested modules:
|
||||
* WaveShare RS485 CAN HAT (8 MHz or 12 MHz crystal): <https://www.waveshare.com/rs485-can-hat.htm>
|
||||
* PiCAN2 Duo (16 MHz crystal): <http://skpang.co.uk/catalog/pican2-duo-canbus-board-for-raspberry-pi-23-p-1480.html>
|
||||
|
||||
To enable the 2-Channel CAN-BUS(FD) Shield (MCP2518FD), set:
|
||||
|
||||
ENABLE_DUAL_CAN_SEED_FD_HAT_V2 = "1"
|
||||
|
||||
* Seed Studio (2-Channel CAN-BUS(FD) Shield): <https://wiki.seeedstudio.com/2-Channel-CAN-BUS-FD-Shield-for-Raspberry-Pi/>
|
||||
|
||||
## Enable infrared
|
||||
|
||||
Users who want to enable infrared support, for example for using LIRC (Linux
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
* raspberrypi0-wifi
|
||||
* raspberrypi0-2w-64
|
||||
* raspberrypi2
|
||||
* raspberrypi2-64 (64 bit kernel & userspace)
|
||||
* raspberrypi3
|
||||
* raspberrypi3-64 (64 bit kernel & userspace)
|
||||
* raspberrypi4
|
||||
@@ -15,6 +16,9 @@
|
||||
* raspberrypi-cm (dummy alias for raspberrypi)
|
||||
* raspberrypi-cm3
|
||||
|
||||
Note: The raspberrypi2-64 machine includes 64-bit support for Raspberry Pi 2B
|
||||
V1.2.
|
||||
|
||||
Note: The raspberrypi3 machines include support for Raspberry Pi 3B+.
|
||||
|
||||
## Multi-board Machines
|
||||
|
||||
@@ -1,271 +0,0 @@
|
||||
From 500f1e9eaeca29b255d0364e1383d70ade1d1177 Mon Sep 17 00:00:00 2001
|
||||
From: Martin Jansa <martin.jansa@gmail.com>
|
||||
Date: Tue, 30 Jan 2024 12:02:09 +0000
|
||||
Subject: [PATCH] Revert "Support compressed pixel formats when saving DNGs"
|
||||
|
||||
This reverts commit a85aed7603a0b69a6685d3f81ee860246d5b1621.
|
||||
|
||||
This requires rpi specific fork of libcamera to provide e.g.
|
||||
formats::RGGB16_PISP_COMP1
|
||||
added in:
|
||||
https://github.com/raspberrypi/libcamera/commit/fb3cb844f2117f30d3eeece99d6ce4d02624e492
|
||||
but not included in libcamera from meta-oe:
|
||||
https://git.openembedded.org/meta-openembedded/commit/?id=711c6fbce39df685225bca081c5f42bae2de658b
|
||||
|
||||
See https://github.com/raspberrypi/rpicam-apps/issues/627
|
||||
|
||||
Upstream-Status: Pending
|
||||
---
|
||||
image/dng.cpp | 205 ++++++++------------------------------------------
|
||||
1 file changed, 33 insertions(+), 172 deletions(-)
|
||||
|
||||
diff --git a/image/dng.cpp b/image/dng.cpp
|
||||
index 7692f92..fc10439 100644
|
||||
--- a/image/dng.cpp
|
||||
+++ b/image/dng.cpp
|
||||
@@ -33,47 +33,40 @@ struct BayerFormat
|
||||
int bits;
|
||||
char const *order;
|
||||
bool packed;
|
||||
- bool compressed;
|
||||
};
|
||||
|
||||
static const std::map<PixelFormat, BayerFormat> bayer_formats =
|
||||
{
|
||||
- { formats::SRGGB10_CSI2P, { "RGGB-10", 10, TIFF_RGGB, true, false } },
|
||||
- { formats::SGRBG10_CSI2P, { "GRBG-10", 10, TIFF_GRBG, true, false } },
|
||||
- { formats::SBGGR10_CSI2P, { "BGGR-10", 10, TIFF_BGGR, true, false } },
|
||||
- { formats::SGBRG10_CSI2P, { "GBRG-10", 10, TIFF_GBRG, true, false } },
|
||||
-
|
||||
- { formats::SRGGB10, { "RGGB-10", 10, TIFF_RGGB, false, false } },
|
||||
- { formats::SGRBG10, { "GRBG-10", 10, TIFF_GRBG, false, false } },
|
||||
- { formats::SBGGR10, { "BGGR-10", 10, TIFF_BGGR, false, false } },
|
||||
- { formats::SGBRG10, { "GBRG-10", 10, TIFF_GBRG, false, false } },
|
||||
-
|
||||
- { formats::SRGGB12_CSI2P, { "RGGB-12", 12, TIFF_RGGB, true, false } },
|
||||
- { formats::SGRBG12_CSI2P, { "GRBG-12", 12, TIFF_GRBG, true, false } },
|
||||
- { formats::SBGGR12_CSI2P, { "BGGR-12", 12, TIFF_BGGR, true, false } },
|
||||
- { formats::SGBRG12_CSI2P, { "GBRG-12", 12, TIFF_GBRG, true, false } },
|
||||
-
|
||||
- { formats::SRGGB12, { "RGGB-12", 12, TIFF_RGGB, false, false } },
|
||||
- { formats::SGRBG12, { "GRBG-12", 12, TIFF_GRBG, false, false } },
|
||||
- { formats::SBGGR12, { "BGGR-12", 12, TIFF_BGGR, false, false } },
|
||||
- { formats::SGBRG12, { "GBRG-12", 12, TIFF_GBRG, false, false } },
|
||||
-
|
||||
- { formats::SRGGB16, { "RGGB-16", 16, TIFF_RGGB, false, false } },
|
||||
- { formats::SGRBG16, { "GRBG-16", 16, TIFF_GRBG, false, false } },
|
||||
- { formats::SBGGR16, { "BGGR-16", 16, TIFF_BGGR, false, false } },
|
||||
- { formats::SGBRG16, { "GBRG-16", 16, TIFF_GBRG, false, false } },
|
||||
-
|
||||
- { formats::R10_CSI2P, { "BGGR-10", 10, TIFF_BGGR, true, false } },
|
||||
- { formats::R10, { "BGGR-10", 10, TIFF_BGGR, false, false } },
|
||||
+ { formats::SRGGB10_CSI2P, { "RGGB-10", 10, TIFF_RGGB, true } },
|
||||
+ { formats::SGRBG10_CSI2P, { "GRBG-10", 10, TIFF_GRBG, true } },
|
||||
+ { formats::SBGGR10_CSI2P, { "BGGR-10", 10, TIFF_BGGR, true } },
|
||||
+ { formats::SGBRG10_CSI2P, { "GBRG-10", 10, TIFF_GBRG, true } },
|
||||
+
|
||||
+ { formats::SRGGB10, { "RGGB-10", 10, TIFF_RGGB, false } },
|
||||
+ { formats::SGRBG10, { "GRBG-10", 10, TIFF_GRBG, false } },
|
||||
+ { formats::SBGGR10, { "BGGR-10", 10, TIFF_BGGR, false } },
|
||||
+ { formats::SGBRG10, { "GBRG-10", 10, TIFF_GBRG, false } },
|
||||
+
|
||||
+ { formats::SRGGB12_CSI2P, { "RGGB-12", 12, TIFF_RGGB, true } },
|
||||
+ { formats::SGRBG12_CSI2P, { "GRBG-12", 12, TIFF_GRBG, true } },
|
||||
+ { formats::SBGGR12_CSI2P, { "BGGR-12", 12, TIFF_BGGR, true } },
|
||||
+ { formats::SGBRG12_CSI2P, { "GBRG-12", 12, TIFF_GBRG, true } },
|
||||
+
|
||||
+ { formats::SRGGB12, { "RGGB-12", 12, TIFF_RGGB, false } },
|
||||
+ { formats::SGRBG12, { "GRBG-12", 12, TIFF_GRBG, false } },
|
||||
+ { formats::SBGGR12, { "BGGR-12", 12, TIFF_BGGR, false } },
|
||||
+ { formats::SGBRG12, { "GBRG-12", 12, TIFF_GBRG, false } },
|
||||
+
|
||||
+ { formats::SRGGB16, { "RGGB-16", 16, TIFF_RGGB, false } },
|
||||
+ { formats::SGRBG16, { "GRBG-16", 16, TIFF_GRBG, false } },
|
||||
+ { formats::SBGGR16, { "BGGR-16", 16, TIFF_BGGR, false } },
|
||||
+ { formats::SGBRG16, { "GBRG-16", 16, TIFF_GBRG, false } },
|
||||
+
|
||||
+ { formats::R10_CSI2P, { "BGGR-10", 10, TIFF_BGGR, true } },
|
||||
+ { formats::R10, { "BGGR-10", 10, TIFF_BGGR, false } },
|
||||
// Currently not in the main libcamera branch
|
||||
//{ formats::R12_CSI2P, { "BGGR-12", 12, TIFF_BGGR, true } },
|
||||
- { formats::R12, { "BGGR-12", 12, TIFF_BGGR, false, false } },
|
||||
-
|
||||
- /* PiSP compressed formats. */
|
||||
- { formats::RGGB16_PISP_COMP1, { "RGGB-16-PISP", 16, TIFF_RGGB, false, true } },
|
||||
- { formats::GRBG16_PISP_COMP1, { "GRBG-16-PISP", 16, TIFF_GRBG, false, true } },
|
||||
- { formats::GBRG16_PISP_COMP1, { "GBRG-16-PISP", 16, TIFF_GBRG, false, true } },
|
||||
- { formats::BGGR16_PISP_COMP1, { "BGGR-16-PISP", 16, TIFF_BGGR, false, true } },
|
||||
+ { formats::R12, { "BGGR-12", 12, TIFF_BGGR, false } },
|
||||
};
|
||||
|
||||
static void unpack_10bit(uint8_t const *src, StreamInfo const &info, uint16_t *dest)
|
||||
@@ -124,129 +117,6 @@ static void unpack_16bit(uint8_t const *src, StreamInfo const &info, uint16_t *d
|
||||
}
|
||||
}
|
||||
|
||||
-// We always use these compression parameters.
|
||||
-#define COMPRESS_OFFSET 2048
|
||||
-#define COMPRESS_MODE 1
|
||||
-
|
||||
-static uint16_t postprocess(uint16_t a)
|
||||
-{
|
||||
- if (COMPRESS_MODE & 2)
|
||||
- {
|
||||
- if (COMPRESS_MODE == 3 && a < 0x4000)
|
||||
- a = a >> 2;
|
||||
- else if (a < 0x1000)
|
||||
- a = a >> 4;
|
||||
- else if (a < 0x1800)
|
||||
- a = (a - 0x800) >> 3;
|
||||
- else if (a < 0x3000)
|
||||
- a = (a - 0x1000) >> 2;
|
||||
- else if (a < 0x6000)
|
||||
- a = (a - 0x2000) >> 1;
|
||||
- else if (a < 0xC000)
|
||||
- a = (a - 0x4000);
|
||||
- else
|
||||
- a = 2 * (a - 0x8000);
|
||||
- }
|
||||
-
|
||||
- return std::min(0xFFFF, a + COMPRESS_OFFSET);
|
||||
-}
|
||||
-
|
||||
-static uint16_t dequantize(uint16_t q, int qmode)
|
||||
-{
|
||||
- switch (qmode)
|
||||
- {
|
||||
- case 0:
|
||||
- return (q < 320) ? 16 * q : 32 * (q - 160);
|
||||
-
|
||||
- case 1:
|
||||
- return 64 * q;
|
||||
-
|
||||
- case 2:
|
||||
- return 128 * q;
|
||||
-
|
||||
- default:
|
||||
- return (q < 94) ? 256 * q : std::min(0xFFFF, 512 * (q - 47));
|
||||
- }
|
||||
-}
|
||||
-
|
||||
-static void subBlockFunction(uint16_t *d, uint32_t w)
|
||||
-{
|
||||
- int q[4];
|
||||
-
|
||||
- int qmode = (w & 3);
|
||||
- if (qmode < 3)
|
||||
- {
|
||||
- int field0 = (w >> 2) & 511;
|
||||
- int field1 = (w >> 11) & 127;
|
||||
- int field2 = (w >> 18) & 127;
|
||||
- int field3 = (w >> 25) & 127;
|
||||
- if (qmode == 2 && field0 >= 384)
|
||||
- {
|
||||
- q[1] = field0;
|
||||
- q[2] = field1 + 384;
|
||||
- }
|
||||
- else
|
||||
- {
|
||||
- q[1] = (field1 >= 64) ? field0 : field0 + 64 - field1;
|
||||
- q[2] = (field1 >= 64) ? field0 + field1 - 64 : field0;
|
||||
- }
|
||||
- int p1 = std::max(0, q[1] - 64);
|
||||
- if (qmode == 2)
|
||||
- p1 = std::min(384, p1);
|
||||
- int p2 = std::max(0, q[2] - 64);
|
||||
- if (qmode == 2)
|
||||
- p2 = std::min(384, p2);
|
||||
- q[0] = p1 + field2;
|
||||
- q[3] = p2 + field3;
|
||||
- }
|
||||
- else
|
||||
- {
|
||||
- int pack0 = (w >> 2) & 32767;
|
||||
- int pack1 = (w >> 17) & 32767;
|
||||
- q[0] = (pack0 & 15) + 16 * ((pack0 >> 8) / 11);
|
||||
- q[1] = (pack0 >> 4) % 176;
|
||||
- q[2] = (pack1 & 15) + 16 * ((pack1 >> 8) / 11);
|
||||
- q[3] = (pack1 >> 4) % 176;
|
||||
- }
|
||||
-
|
||||
- d[0] = dequantize(q[0], qmode);
|
||||
- d[2] = dequantize(q[1], qmode);
|
||||
- d[4] = dequantize(q[2], qmode);
|
||||
- d[6] = dequantize(q[3], qmode);
|
||||
-}
|
||||
-
|
||||
-static void uncompress(uint8_t const *src, StreamInfo const &info, uint16_t *dest)
|
||||
-{
|
||||
- // In all cases, the *decompressed* image must be a multiple of 8 columns wide.
|
||||
- unsigned int buf_stride_pixels = (info.width + 7) & ~7;
|
||||
- for (unsigned int y = 0; y < info.height; ++y)
|
||||
- {
|
||||
- uint16_t *dp = dest + y * buf_stride_pixels;
|
||||
- uint8_t const *sp = src + y * info.stride;
|
||||
-
|
||||
- for (unsigned int x = 0; x < info.width; x+=8)
|
||||
- {
|
||||
- if (COMPRESS_MODE & 1)
|
||||
- {
|
||||
- uint32_t w0 = 0, w1 = 0;
|
||||
- for (int b = 0; b < 4; ++b)
|
||||
- w0 |= (*sp++) << (b * 8);
|
||||
- for (int b = 0; b < 4; ++b)
|
||||
- w1 |= (*sp++) << (b * 8);
|
||||
- subBlockFunction(dp, w0);
|
||||
- subBlockFunction(dp + 1, w1);
|
||||
- for (int i = 0; i < 8; ++i, ++dp)
|
||||
- *dp = postprocess(*dp);
|
||||
- }
|
||||
- else
|
||||
- {
|
||||
- for (int i = 0; i < 8; ++i)
|
||||
- *dp++ = postprocess((*sp++) << 8);
|
||||
- }
|
||||
- }
|
||||
- }
|
||||
-}
|
||||
-
|
||||
struct Matrix
|
||||
{
|
||||
Matrix(float m0, float m1, float m2,
|
||||
@@ -307,16 +177,8 @@ void dng_save(std::vector<libcamera::Span<uint8_t>> const &mem, StreamInfo const
|
||||
BayerFormat const &bayer_format = it->second;
|
||||
LOG(1, "Bayer format is " << bayer_format.name);
|
||||
|
||||
- // Decompression will require a buffer that's 8 pixels aligned.
|
||||
- unsigned int buf_stride_pixels = info.width;
|
||||
- unsigned int buf_stride_pixels_padded = (buf_stride_pixels + 7) & ~7;
|
||||
- std::vector<uint16_t> buf(buf_stride_pixels_padded * info.height);
|
||||
- if (bayer_format.compressed)
|
||||
- {
|
||||
- uncompress(mem[0].data(), info, &buf[0]);
|
||||
- buf_stride_pixels = buf_stride_pixels_padded;
|
||||
- }
|
||||
- else if (bayer_format.packed)
|
||||
+ std::vector<uint16_t> buf(info.width * info.height);
|
||||
+ if (bayer_format.packed)
|
||||
{
|
||||
switch (bayer_format.bits)
|
||||
{
|
||||
@@ -444,9 +306,8 @@ void dng_save(std::vector<libcamera::Span<uint8_t>> const &mem, StreamInfo const
|
||||
{
|
||||
for (unsigned int x = 0; x < (info.width >> 4); x++)
|
||||
{
|
||||
- unsigned int off = (y * buf_stride_pixels + x) << 4;
|
||||
- uint32_t grey =
|
||||
- buf[off] + buf[off + 1] + buf[off + buf_stride_pixels] + buf[off + buf_stride_pixels + 1];
|
||||
+ unsigned int off = (y * info.width + x) << 4;
|
||||
+ uint32_t grey = buf[off] + buf[off + 1] + buf[off + info.width] + buf[off + info.width + 1];
|
||||
grey = (grey << 14) >> bayer_format.bits;
|
||||
grey = sqrt((double)grey); // simple "gamma correction"
|
||||
thumb_buf[3 * x] = thumb_buf[3 * x + 1] = thumb_buf[3 * x + 2] = grey;
|
||||
@@ -478,7 +339,7 @@ void dng_save(std::vector<libcamera::Span<uint8_t>> const &mem, StreamInfo const
|
||||
|
||||
for (unsigned int y = 0; y < info.height; y++)
|
||||
{
|
||||
- if (TIFFWriteScanline(tif, &buf[buf_stride_pixels * y], y, 0) != 1)
|
||||
+ if (TIFFWriteScanline(tif, &buf[info.width * y], y, 0) != 1)
|
||||
throw std::runtime_error("error writing DNG image data");
|
||||
}
|
||||
|
||||
@@ -0,0 +1,24 @@
|
||||
add missing header
|
||||
|
||||
When compiling with gcc15, compiliation fails with the following error:
|
||||
|
||||
| In file included from ../sources/libcamera-apps-1.9.0/post_processing_stages/segmentation_tf_stage.cpp:8:
|
||||
| ../sources/libcamera-apps-1.9.0/post_processing_stages/segmentation.hpp:15:82: error: 'uint8_t' was not declared in this scope
|
||||
| 15 | Segmentation(int w, int h, std::vector<std::string> l, const std::vector<uint8_t> &s)
|
||||
|
||||
To avoid it, add the cstdint header to the offending file.
|
||||
|
||||
Upstream-Status: Submitted [https://github.com/raspberrypi/rpicam-apps/pull/861]
|
||||
Signed-off-by: Gyorgy Sarvari <skandigraun@gmail.com>
|
||||
diff --git a/post_processing_stages/segmentation.hpp b/post_processing_stages/segmentation.hpp
|
||||
index ac87228..82d7939 100644
|
||||
--- a/post_processing_stages/segmentation.hpp
|
||||
+++ b/post_processing_stages/segmentation.hpp
|
||||
@@ -7,6 +7,7 @@
|
||||
|
||||
#pragma once
|
||||
|
||||
+#include <cstdint>
|
||||
#include <string>
|
||||
#include <vector>
|
||||
|
||||
@@ -0,0 +1,47 @@
|
||||
SUMMARY = "A suite of libcamera-based apps"
|
||||
DESCRIPTION = "This is a small suite of libcamera-based apps that aim to \
|
||||
copy the functionality of the existing \"raspicam\" apps."
|
||||
HOMEPAGE = "https://github.com/raspberrypi/rpicam-apps"
|
||||
SECTION = "console/utils"
|
||||
|
||||
LICENSE = "BSD-2-Clause"
|
||||
LIC_FILES_CHKSUM = "file://license.txt;md5=a0013d1b383d72ba4bdc5b750e7d1d77"
|
||||
|
||||
SRC_URI = "\
|
||||
git://github.com/raspberrypi/rpicam-apps.git;protocol=https;branch=main \
|
||||
file://0001-utils-version.py-use-usr-bin-env-in-shebang.patch \
|
||||
file://add-missing-header.patch \
|
||||
"
|
||||
|
||||
SRCREV = "eca9928b76c106141667288f1cef935d02ba59b3"
|
||||
|
||||
PROVIDES += "rpicam-apps"
|
||||
|
||||
DEPENDS = "libcamera libexif jpeg tiff libpng boost"
|
||||
|
||||
PACKAGECONFIG ??= "drm"
|
||||
PACKAGECONFIG[libav] = "-Denable_libav=enabled, -Denable_libav=disabled, libav"
|
||||
PACKAGECONFIG[drm] = "-Denable_drm=enabled, -Denable_drm=disabled, libdrm"
|
||||
PACKAGECONFIG[egl] = "-Denable_egl=enabled, -Denable_egl=disabled, virtual/egl"
|
||||
PACKAGECONFIG[qt] = "-Denable_qt=enabled, -Denable_qt=disabled, qtbase"
|
||||
PACKAGECONFIG[opencv] = "-Denable_opencv=enabled, -Denable_opencv=disabled, opencv"
|
||||
PACKAGECONFIG[tflite] = "-Denable_tflite=enabled, -Denable_tflite=disabled, tensorflow-lite"
|
||||
|
||||
inherit meson pkgconfig
|
||||
|
||||
NEON_FLAGS = ""
|
||||
NEON_FLAGS:aarch64 = "-Dneon_flags=arm64"
|
||||
NEON_FLAGS:arm:raspberrypi3 = "-Dneon_flags=armv8-neon"
|
||||
NEON_FLAGS:arm:raspberrypi4 = "-Dneon_flags=armv8-neon"
|
||||
EXTRA_OEMESON += "${NEON_FLAGS}"
|
||||
|
||||
# QA Issue: /usr/bin/camera-bug-report contained in package libcamera-apps requires /usr/bin/python3
|
||||
# QA Issue: File /usr/lib/pkgconfig/rpicam_app.pc in package libcamera-apps-dev contains reference to TMPDIR
|
||||
do_install:append() {
|
||||
rm -v ${D}/${bindir}/camera-bug-report
|
||||
sed -i "s,${RECIPE_SYSROOT}${libdir},$\{libdir},g" ${D}${libdir}/pkgconfig/rpicam_app.pc
|
||||
}
|
||||
|
||||
FILES:${PN} += "${libdir}/rpicam-apps-postproc \
|
||||
${libdir}/rpicam-apps-preview \
|
||||
${datadir}/rpi-camera-assets"
|
||||
@@ -1,44 +0,0 @@
|
||||
SUMMARY = "A suite of libcamera-based apps"
|
||||
DESCRIPTION = "This is a small suite of libcamera-based apps that aim to \
|
||||
copy the functionality of the existing \"raspicam\" apps."
|
||||
HOMEPAGE = "https://github.com/raspberrypi/libcamera-apps"
|
||||
SECTION = "console/utils"
|
||||
|
||||
LICENSE = "BSD-2-Clause"
|
||||
LIC_FILES_CHKSUM = "file://license.txt;md5=a0013d1b383d72ba4bdc5b750e7d1d77"
|
||||
|
||||
SRC_URI = "\
|
||||
git://github.com/raspberrypi/libcamera-apps.git;protocol=https;branch=main \
|
||||
file://0001-utils-version.py-use-usr-bin-env-in-shebang.patch \
|
||||
file://0002-Revert-Support-compressed-pixel-formats-when-saving-.patch \
|
||||
"
|
||||
PV = "1.4.2+git${SRCPV}"
|
||||
SRCREV = "9ae39f85ae6bee9761c36b9b5b80d675bc1fa369"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
DEPENDS = "libcamera libexif jpeg tiff libpng boost"
|
||||
|
||||
PACKAGECONFIG ??= "drm"
|
||||
PACKAGECONFIG[libav] = "-Denable_libav=true, -Denable_libav=false, libav"
|
||||
PACKAGECONFIG[drm] = "-Denable_drm=true, -Denable_drm=false, libdrm"
|
||||
PACKAGECONFIG[egl] = "-Denable_egl=true, -Denable_egl=false, virtual/egl"
|
||||
PACKAGECONFIG[qt] = "-Denable_qt=true, -Denable_qt=false, qtbase"
|
||||
PACKAGECONFIG[opencv] = "-Denable_opencv=true, -Denable_opencv=false, opencv"
|
||||
PACKAGECONFIG[tflite] = "-Denable_tflite=true, -Denable_tflite=false, tensorflow-lite"
|
||||
|
||||
inherit meson pkgconfig
|
||||
|
||||
NEON_FLAGS = ""
|
||||
NEON_FLAGS:aarch64 = "-Dneon_flags=arm64"
|
||||
NEON_FLAGS:arm:raspberrypi3 = "-Dneon_flags=armv8-neon"
|
||||
NEON_FLAGS:arm:raspberrypi4 = "-Dneon_flags=armv8-neon"
|
||||
EXTRA_OEMESON += "${NEON_FLAGS}"
|
||||
|
||||
# QA Issue: /usr/bin/camera-bug-report contained in package libcamera-apps requires /usr/bin/python3
|
||||
do_install:append() {
|
||||
rm -v ${D}/${bindir}/camera-bug-report
|
||||
}
|
||||
|
||||
# not picked automatically, because it's missing common 'lib' prefix
|
||||
FILES:${PN}-dev += "${libdir}/rpicam_app.so"
|
||||
@@ -1,3 +1,3 @@
|
||||
PACKAGECONFIG[raspberrypi] = "-Dpipelines=rpi/vc4 -Dipas=rpi/vc4"
|
||||
EXTRA_OEMESON:append:rpi = " -Dipas=rpi/vc4,rpi/pisp"
|
||||
PACKAGECONFIG:append:rpi = " raspberrypi"
|
||||
CXXFLAGS:append:rpi = " -Wno-unaligned-access "
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
DESCRIPTION = "A helper library to generate run-time configuration for the Raspberry Pi \
|
||||
ISP (PiSP), consisting of the Frontend and Backend hardware components."
|
||||
HOMEPAGE = "https://github.com/raspberrypi/libpisp"
|
||||
LICENSE = "BSD-2-Clause & GPL-2.0-only & GPL-2.0-or-later"
|
||||
LIC_FILES_CHKSUM = "file://LICENSE;md5=3417a46e992fdf62e5759fba9baef7a7 \
|
||||
file://LICENSES/GPL-2.0-only.txt;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
|
||||
file://LICENSES/GPL-2.0-or-later.txt;md5=fed54355545ffd980b814dab4a3b312c"
|
||||
|
||||
SRC_URI = "git://github.com/raspberrypi/libpisp.git;protocol=https;branch=main;tag=v${PV}"
|
||||
SRCREV = "9ba67e6680f03f31f2b1741a53e8fd549be82cbe"
|
||||
|
||||
DEPENDS = "nlohmann-json"
|
||||
|
||||
inherit meson pkgconfig
|
||||
@@ -32,8 +32,6 @@ SRC_URI = "\
|
||||
|
||||
SRCREV = "b276eb0d7bc3213363e97dbb681ef7c927be6c73"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
PROVIDES = "vlc"
|
||||
RPROVIDES:${PN} = "${PROVIDES}"
|
||||
DEPENDS = "coreutils-native fribidi libtool libgcrypt libgcrypt-native \
|
||||
|
||||
@@ -6,8 +6,6 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=660e614bc7efb0697cc793d8a22a55c2"
|
||||
SRC_URI = "git://github.com/adafruit/Adafruit_Blinka.git;branch=main;protocol=https"
|
||||
SRCREV = "dc688f354fe779c9267c208b99f310af87e79272"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
inherit setuptools3
|
||||
|
||||
DEPENDS += "python3-setuptools-scm-native"
|
||||
|
||||
@@ -6,8 +6,6 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=6ec69d6e9e6c85adfb7799d7f8cf044e"
|
||||
SRC_URI = "git://github.com/adafruit/Adafruit_CircuitPython_BusDevice.git;branch=main;protocol=https"
|
||||
SRCREV = "1bfe8005293205e2f7b2cc498ab5a946f1133b40"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
inherit setuptools3
|
||||
|
||||
DEPENDS += "python3-setuptools-scm-native"
|
||||
|
||||
@@ -6,8 +6,6 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=b72678307cc7c10910b5ef460216af07"
|
||||
SRC_URI = "git://github.com/adafruit/Adafruit_CircuitPython_Motor.git;branch=main;protocol=https"
|
||||
SRCREV = "2251bfc0501d0acfb96c0a43f4f2b4c6a10ca14e"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
inherit setuptools3
|
||||
|
||||
DEPENDS += "python3-setuptools-scm-native"
|
||||
|
||||
@@ -6,8 +6,6 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=6ad4a8854b39ad474755ef1aea813bac"
|
||||
SRC_URI = "git://github.com/adafruit/Adafruit_CircuitPython_MotorKit.git;branch=main;protocol=https"
|
||||
SRCREV = "8c1462b4129b21f6db156d1517abb017bb74b982"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
inherit setuptools3
|
||||
|
||||
DEPENDS += "python3-setuptools-scm-native"
|
||||
|
||||
@@ -6,8 +6,6 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=e7eb6b599fb0cfb06485c64cd4242f62"
|
||||
SRC_URI = "git://github.com/adafruit/Adafruit_CircuitPython_PCA9685.git;branch=main;protocol=https"
|
||||
SRCREV = "2780c4102f4c23fbab252aa1198b61ba7e2d1b2c"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
inherit setuptools3
|
||||
|
||||
DEPENDS += "python3-setuptools-scm-native"
|
||||
|
||||
@@ -9,12 +9,25 @@ target:
|
||||
repos:
|
||||
meta-raspberry:
|
||||
|
||||
poky:
|
||||
url: https://git.yoctoproject.org/git/poky
|
||||
path: layers/poky
|
||||
bitbake:
|
||||
url: https://git.openembedded.org/bitbake
|
||||
path: layers/bitbake
|
||||
branch: master
|
||||
layers:
|
||||
bitbake: disabled
|
||||
|
||||
openembedded-core:
|
||||
url: https://git.openembedded.org/openembedded-core
|
||||
path: layers/openembedded-core
|
||||
branch: master
|
||||
layers:
|
||||
meta:
|
||||
|
||||
meta-yocto:
|
||||
url: https://git.yoctoproject.org/meta-yocto
|
||||
path: layers/meta-yocto
|
||||
branch: master
|
||||
layers:
|
||||
meta-poky:
|
||||
meta-yocto-bsp:
|
||||
|
||||
|
||||
@@ -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."
|
||||
|
||||
@@ -5,14 +5,14 @@ LIC_FILES_CHKSUM = "file://LICENCE.broadcom;md5=c403841ff2837657b2ed8e5bb474ac8d
|
||||
|
||||
inherit deploy nopackages
|
||||
|
||||
RPIFW_DATE ?= "20240319"
|
||||
SRCREV = "9f24f4bc2bdd07ffd158cfbb4bce88a2efc4c1f5"
|
||||
RPIFW_DATE ?= "20250801"
|
||||
SRCREV = "95be71b8c0f63f03dc06dd0e4c2e5535e6fb4a93"
|
||||
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_S ?= "${WORKDIR}/raspberrypi-firmware-${SHORTREV}"
|
||||
RPIFW_SRC_URI ?= "https://api.github.com/repos/raspberrypi/firmware/tarball/${SRCREV};downloadfilename=raspberrypi-firmware-${SHORTREV}.tar.gz"
|
||||
RPIFW_S ?= "${UNPACKDIR}/raspberrypi-firmware-${SHORTREV}"
|
||||
|
||||
SRC_URI = "${RPIFW_SRC_URI}"
|
||||
SRC_URI[sha256sum] = "4b436f8946b139c6a1202375ef55d4848e3bcd8c1a9cb47000e06d7ecec828f7"
|
||||
SRC_URI[sha256sum] = "8b270b44b7702aae2d60e12b9bb4ea9ce0d9bc34662f7229092b8110d34ef7dd"
|
||||
|
||||
PV = "${RPIFW_DATE}"
|
||||
|
||||
|
||||
@@ -12,19 +12,17 @@ SRC_URI = "git://github.com/Evilpaul/RPi-config.git;protocol=https;branch=master
|
||||
file://0001-config.txt-reintroduce-start_x.patch \
|
||||
"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
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 +33,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 ??= ""
|
||||
|
||||
@@ -272,13 +270,16 @@ do_deploy() {
|
||||
echo "# Enable DUAL CAN" >>$CONFIG
|
||||
echo "dtoverlay=mcp2515-can0,oscillator=${CAN_OSCILLATOR},interrupt=${CAN0_INTERRUPT_PIN}" >>$CONFIG
|
||||
echo "dtoverlay=mcp2515-can1,oscillator=${CAN_OSCILLATOR},interrupt=${CAN1_INTERRUPT_PIN}" >>$CONFIG
|
||||
# Enable DUAL CAN FOR SEED CAN FD HAT V2
|
||||
elif [ "${ENABLE_DUAL_CAN_SEED_FD_HAT_V2}" = "1" ]; then
|
||||
echo "# Enable DUAL CAN FOR SEED CAN FD HAT V2" >>$CONFIG
|
||||
echo "dtoverlay=seeed-can-fd-hat-v2" >>$CONFIG
|
||||
# ENABLE CAN
|
||||
elif [ "${ENABLE_CAN}" = "1" ]; then
|
||||
echo "# Enable CAN" >>$CONFIG
|
||||
echo "dtoverlay=mcp2515-can0,oscillator=${CAN_OSCILLATOR},interrupt=${CAN0_INTERRUPT_PIN}" >>$CONFIG
|
||||
fi
|
||||
|
||||
|
||||
if [ "${ENABLE_GPIO_SHUTDOWN}" = "1" ]; then
|
||||
if ([ "${ENABLE_I2C}" = "1" ] || [ "${PITFT}" = "1" ]) && [ -z "${GPIO_SHUTDOWN_PIN}" ]; then
|
||||
# By default GPIO shutdown uses the same pin as the (master) I2C SCL.
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
RPIFW_DATE ?= "20230509~buster"
|
||||
|
||||
RPIFW_SRC_URI ?= "https://archive.raspberrypi.com/debian/pool/main/r/raspberrypi-firmware/raspberrypi-firmware_1.${RPIFW_DATE}.orig.tar.xz"
|
||||
RPIFW_S ?= "${WORKDIR}/raspberrypi-firmware-1.${RPIFW_DATE}"
|
||||
RPIFW_S ?= "${UNPACKDIR}/raspberrypi-firmware-1.${RPIFW_DATE}"
|
||||
|
||||
SRC_URI = "${RPIFW_SRC_URI}"
|
||||
SRC_URI[sha256sum] = "1d9eb83111826b708f461101766fd2000d45f1c171ad573936d000f623ca8098"
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
RPITOOLS_DATE ?= "20220711"
|
||||
SRCREV ?= "439b6198a9b340de5998dd14a26a0d9d38a6bcac"
|
||||
RPITOOLS_SRC_URI ?= "git://github.com/raspberrypi/tools;protocol=https;branch=master"
|
||||
RPITOOLS_S ?= "${WORKDIR}/git"
|
||||
RPITOOLS_S ?= "${UNPACKDIR}/${BP}"
|
||||
|
||||
SRC_URI = "${RPITOOLS_SRC_URI}"
|
||||
|
||||
|
||||
@@ -6,6 +6,8 @@ SRC_URI = "file://bind_gpio_shutdown.tab \
|
||||
file://gpio-shutdown-keymap.sh \
|
||||
"
|
||||
|
||||
S = "${UNPACKDIR}"
|
||||
|
||||
inherit update-rc.d
|
||||
|
||||
INITSCRIPT_NAME = "gpio-shutdown-keymap.sh"
|
||||
|
||||
@@ -1,17 +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"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
SRCREV = "2349daafacfb7a7abe2cfecf30a49ae837bdf2c6"
|
||||
PV = "v2025.07.17-2712"
|
||||
|
||||
RDEPENDS:${PN} += " \
|
||||
coreutils \
|
||||
|
||||
@@ -21,8 +21,7 @@ do_compile() {
|
||||
|
||||
inherit kernel-arch deploy nopackages
|
||||
|
||||
S = "${WORKDIR}/sources"
|
||||
UNPACKDIR = "${S}"
|
||||
S = "${UNPACKDIR}"
|
||||
|
||||
do_deploy() {
|
||||
install -d ${DEPLOYDIR}
|
||||
|
||||
@@ -1,52 +0,0 @@
|
||||
From: Mauro Salvini <m.salvini@koansoftware.com>
|
||||
To: u-boot@lists.denx.de
|
||||
Subject: [PATCH] rpi: always set fdt_addr with firmware-provided FDT address
|
||||
Date: Wed, 12 May 2021 14:39:45 +0200 [thread overview]
|
||||
Message-ID: <20210512123945.25649-1-m.salvini@koansoftware.com> (raw)
|
||||
|
||||
Raspberry firmware prepares the FDT blob in memory at an address
|
||||
that depends on both the memory size and the blob size [1].
|
||||
After commit ade243a211d6 ("rpi: passthrough of the firmware provided FDT
|
||||
blob") this FDT is passed to kernel through fdt_addr environment variable,
|
||||
handled in set_fdt_addr() function in board file.
|
||||
|
||||
When u-boot environment is persistently saved, if a change happens
|
||||
in loaded FDT (e.g. for a new overlay applied), firmware produces a FDT
|
||||
address different from the saved one, but u-boot still use the saved
|
||||
one because set_fdt_addr() function does not overwrite the fdt_addr
|
||||
variable. So, for example, if there is a script that uses fdt commands for
|
||||
e.g. manipulate the bootargs, boot hangs with error
|
||||
|
||||
libfdt fdt_check_header(): FDT_ERR_BADMAGIC
|
||||
|
||||
Removing the fdt_addr variable in saved environment allows to boot.
|
||||
|
||||
With this patch set_fdt_addr() function always overwrite fdt_addr value.
|
||||
|
||||
[1] https://www.raspberrypi.org/forums//viewtopic.php?f=107&t=134018
|
||||
|
||||
Signed-off-by: Mauro Salvini <m.salvini@koansoftware.com>
|
||||
Cc: C?dric Schieli <cschieli@gmail.com>
|
||||
Cc: Matthias Brugger <mbrugger@suse.com>
|
||||
---
|
||||
Upstream-Status: Pending
|
||||
|
||||
board/raspberrypi/rpi/rpi.c | 3 ---
|
||||
1 file changed, 3 deletions(-)
|
||||
|
||||
diff --git a/board/raspberrypi/rpi/rpi.c b/board/raspberrypi/rpi/rpi.c
|
||||
index df52a4689f..611013471e 100644
|
||||
--- a/board/raspberrypi/rpi/rpi.c
|
||||
+++ b/board/raspberrypi/rpi/rpi.c
|
||||
@@ -318,9 +318,6 @@ static void set_fdtfile(void)
|
||||
*/
|
||||
static void set_fdt_addr(void)
|
||||
{
|
||||
- if (env_get("fdt_addr"))
|
||||
- return;
|
||||
-
|
||||
if (fdt_magic(fw_dtb_pointer) != FDT_MAGIC)
|
||||
return;
|
||||
|
||||
--
|
||||
2.17.1
|
||||
@@ -4,7 +4,6 @@ SRC_URI:append:rpi = " \
|
||||
file://fw_env.config \
|
||||
"
|
||||
|
||||
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"
|
||||
|
||||
@@ -10,9 +10,7 @@ SRC_URI = "\
|
||||
git://github.com/RPi-Distro/pi-bluetooth;branch=master;protocol=https \
|
||||
file://0001-bthelper-correct-path-for-hciconfig-under-Yocto.patch \
|
||||
"
|
||||
SRCREV = "fd4775bf90e037551532fc214a958074830bb80d"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
SRCREV = "87248a382d1a81b80a62730975135d87fffd7ef1"
|
||||
|
||||
inherit ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd', 'update-rc.d', d)}
|
||||
# hciuart.service replaces what was brcm43438.service
|
||||
@@ -16,7 +16,6 @@ RDEPENDS:${PN} = "\
|
||||
raspi-gpio \
|
||||
rpio \
|
||||
rpi-gpio \
|
||||
pi-blaster \
|
||||
python3-adafruit-circuitpython-register \
|
||||
python3-adafruit-platformdetect \
|
||||
python3-adafruit-pureio \
|
||||
@@ -27,6 +26,9 @@ RDEPENDS:${PN} = "\
|
||||
bluez5 \
|
||||
"
|
||||
|
||||
RDEPENDS:${PN}:append:rpi:armv7a = " pi-blaster"
|
||||
RDEPENDS:${PN}:append:rpi:armv7ve = " pi-blaster"
|
||||
|
||||
RRECOMMENDS:${PN} = "\
|
||||
${@bb.utils.contains("BBFILE_COLLECTIONS", "meta-multimedia", "bigbuckbunny-1080p bigbuckbunny-480p bigbuckbunny-720p", "", d)} \
|
||||
${MACHINE_EXTRA_RRECOMMENDS} \
|
||||
|
||||
@@ -8,8 +8,6 @@ SRC_URI = " \
|
||||
"
|
||||
SRCREV = "5ce3ef2b7f377c23fea440ca9df0e30f3f8447cf"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
INHIBIT_DEFAULT_DEPS = "1"
|
||||
|
||||
do_install () {
|
||||
|
||||
@@ -3,6 +3,8 @@ LICENSE = "MIT"
|
||||
LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
|
||||
SRC_URI = "file://80-udisks-rpi.rules"
|
||||
|
||||
S = "${UNPACKDIR}"
|
||||
|
||||
INHIBIT_DEFAULT_DEPS = "1"
|
||||
|
||||
do_install () {
|
||||
|
||||
@@ -8,8 +8,6 @@ SRC_URI = "git://github.com/sarfata/pi-blaster;branch=master;protocol=https \
|
||||
file://remove-initscript-lsb-dependency.patch \
|
||||
"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
SRCREV = "fbba9a7dcef0f352a11f8a2a5f6cbc15b62c0829"
|
||||
|
||||
inherit update-rc.d autotools
|
||||
@@ -18,6 +16,10 @@ INITSCRIPT_PACKAGES = "${PN}"
|
||||
INITSCRIPT_NAME:${PN} = "${PN}.boot.sh"
|
||||
INITSCRIPT_PARAMS:${PN} = "defaults 15 85"
|
||||
|
||||
COMPATIBLE_MACHINE = "^rpi$"
|
||||
# only works on 32-bit targets
|
||||
# https://github.com/sarfata/pi-blaster/issues/114
|
||||
COMPATIBLE_MACHINE = "(^$)"
|
||||
COMPATIBLE_MACHINE:rpi:armv7a = "(.*)"
|
||||
COMPATIBLE_MACHINE:rpi:armv7ve = "(.*)"
|
||||
|
||||
PACKAGE_ARCH = "${MACHINE_ARCH}"
|
||||
|
||||
@@ -5,7 +5,6 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=6ec69d6e9e6c85adfb7799d7f8cf044e"
|
||||
|
||||
SRC_URI = "git://github.com/adafruit/Adafruit_CircuitPython_Register.git;branch=main;protocol=https"
|
||||
SRCREV = "d1e8ac7ad9dcd65ab83749db3e5c96ffee80ebb7"
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
DEPENDS += "python3-setuptools-scm-native"
|
||||
|
||||
|
||||
@@ -5,7 +5,6 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=fccd531dce4b989c05173925f0bbb76c"
|
||||
|
||||
SRC_URI = "git://github.com/adafruit/Adafruit_Python_PlatformDetect.git;branch=main;protocol=https"
|
||||
SRCREV = "e1460098eeca5ea573f92814691bb378e15530d9"
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
inherit setuptools3
|
||||
|
||||
|
||||
@@ -6,8 +6,6 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=2a21fcca821a506d4c36f7bbecc0d009"
|
||||
SRC_URI = "git://github.com/adafruit/Adafruit_Python_PureIO.git;branch=main;protocol=https"
|
||||
SRCREV = "383b615ce9ff5bbefdf77652799f380016fda353"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
inherit setuptools3
|
||||
|
||||
DEPENDS += "python3-setuptools-scm-native"
|
||||
|
||||
@@ -11,5 +11,5 @@ SRC_URI = "git://github.com/RPi-Distro/RTIMULib.git;protocol=http;branch=master;
|
||||
"
|
||||
SRCREV = "b949681af69b45f0f7f4bb53b6770037b5b02178"
|
||||
|
||||
S = "${WORKDIR}/git/Linux/python"
|
||||
S = "${UNPACKDIR}/${BP}/Linux/python"
|
||||
inherit setuptools3
|
||||
|
||||
@@ -9,7 +9,6 @@ SRC_URI = "\
|
||||
git://github.com/metachris/RPIO.git;protocol=https;branch=master \
|
||||
"
|
||||
SRCREV = "be1942a69b2592ddacd9dc833d2668a19aafd8d2"
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
inherit setuptools3
|
||||
|
||||
|
||||
@@ -12,5 +12,3 @@ SRCREV = "22b44e4765b4b78dc5b22394fff484e353d5914d"
|
||||
SRC_URI = "git://github.com/RPi-Distro/raspi-gpio.git;protocol=https;branch=master \
|
||||
"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
|
||||
@@ -2,21 +2,50 @@ SUMMARY = "A collection of scripts and simple applications"
|
||||
LICENSE = "BSD-3-Clause"
|
||||
LIC_FILES_CHKSUM = "file://LICENCE;md5=4c01239e5c3a3d133858dedacdbca63c"
|
||||
|
||||
RCONFLICTS:${PN} = "userland"
|
||||
DEPENDS:append = " dtc"
|
||||
PACKAGES =+ " ${PN}-raspinfo"
|
||||
PACKAGES =+ " ${PN}-ovmerge"
|
||||
RDEPENDS:${PN}-raspinfo += " bash"
|
||||
RDEPENDS:${PN}-ovmerge += " perl"
|
||||
|
||||
PV = "1.0+git"
|
||||
|
||||
SRC_URI = "git://github.com/raspberrypi/utils;protocol=https;branch=master"
|
||||
|
||||
SRCREV = "b9c63214c535d7df2b0fa6743b7b3e508363c25a"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
SRCREV = "e923ccad57d2a22f606c8fe0d1096e782a090fc9"
|
||||
|
||||
FILES:${PN}:append = " \
|
||||
${datadir}/bash-completion/completions/pinctrl \
|
||||
${datadir}/bash-completion/completions/vcgencmd \
|
||||
"
|
||||
FILES:${PN}-raspinfo += "${bindir}/raspinfo"
|
||||
FILES:${PN}-ovmerge += "${bindir}/ovmerge"
|
||||
|
||||
OECMAKE_TARGET_COMPILE = "\
|
||||
dtmerge/all \
|
||||
eeptools/all \
|
||||
otpset/all \
|
||||
overlaycheck/all \
|
||||
ovmerge/all \
|
||||
pinctrl/all \
|
||||
raspinfo/all \
|
||||
vcgencmd/all \
|
||||
vclog/all \
|
||||
vcmailbox/all \
|
||||
"
|
||||
|
||||
OECMAKE_TARGET_COMPILE = "pinctrl/all dtmerge/all"
|
||||
OECMAKE_TARGET_INSTALL = "pinctrl/install dtmerge/install"
|
||||
OECMAKE_TARGET_INSTALL = "\
|
||||
dtmerge/install \
|
||||
eeptools/install \
|
||||
otpset/install \
|
||||
overlaycheck/install \
|
||||
ovmerge/install \
|
||||
pinctrl/install \
|
||||
raspinfo/install \
|
||||
vcgencmd/install \
|
||||
vclog/install \
|
||||
vcmailbox/install \
|
||||
"
|
||||
|
||||
inherit cmake
|
||||
|
||||
@@ -1,6 +1 @@
|
||||
# DRI3 note:
|
||||
# With oe-core commit 8509e2e1a87578882b71948ccef3b50ccf1228b3 dri3 is set
|
||||
# as default. To state out clearly that Raspi needs dri3 and to avoid surprises
|
||||
# in case oe-core changes this default, we set dri3 explicitly.
|
||||
PACKAGECONFIG:append:rpi = " gallium vc4 v3d kmsro ${@bb.utils.contains('DISTRO_FEATURES', 'x11 opengl', 'x11 dri3', '', d)} ${@bb.utils.contains('DISTRO_FEATURES', 'vulkan', 'vulkan broadcom', '', d)}"
|
||||
DRIDRIVERS:class-target:rpi = ""
|
||||
PACKAGECONFIG:append:rpi = " gallium vc4 v3d ${@bb.utils.contains('DISTRO_FEATURES', 'vulkan', 'vulkan broadcom', '', d)}"
|
||||
|
||||
@@ -20,8 +20,6 @@ SRC_URI = "git://github.com/AndrewFromMelbourne/raspidmx;protocol=https;branch=m
|
||||
PV = "0.0+git${SRCPV}"
|
||||
SRCREV = "e2ee6faa0d01a5ece06bcc74a47f37d7e6837310"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
inherit pkgconfig
|
||||
|
||||
DEPENDS += "libpng userland"
|
||||
|
||||
@@ -51,8 +51,6 @@ SRC_URI = "\
|
||||
|
||||
SRC_URI:remove:toolchain-clang = "file://0021-cmake-Disable-format-overflow-warning-as-error.patch"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
inherit cmake pkgconfig
|
||||
|
||||
ASNEEDED = ""
|
||||
@@ -63,7 +61,6 @@ EXTRA_OECMAKE = "-DCMAKE_BUILD_TYPE=Release -DCMAKE_EXE_LINKER_FLAGS='-Wl,--no-a
|
||||
|
||||
EXTRA_OECMAKE:append:aarch64 = " -DARM64=ON "
|
||||
|
||||
|
||||
PACKAGECONFIG ?= "${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland', '', d)}"
|
||||
|
||||
PACKAGECONFIG[wayland] = "-DBUILD_WAYLAND=TRUE -DWAYLAND_SCANNER_EXECUTABLE:FILEPATH=${STAGING_BINDIR_NATIVE}/wayland-scanner,,wayland-native wayland"
|
||||
|
||||
@@ -0,0 +1,72 @@
|
||||
From 845682f33511da676bfe9237102b6979efa11f93 Mon Sep 17 00:00:00 2001
|
||||
From: Gyorgy Sarvari <skandigraun@gmail.com>
|
||||
Date: Fri, 21 Nov 2025 18:07:00 +0100
|
||||
Subject: [PATCH] Adapt weston to 64-bit plane IDs
|
||||
|
||||
The raspberry pi kernel has changed the plane IDs in their drm
|
||||
driver[1], which causes weston to crash upon mouse movement.
|
||||
|
||||
This patch adapts the relevant variable sizes from 32-bit to
|
||||
64-bit.
|
||||
|
||||
[1]: https://github.com/raspberrypi/linux/commit/8181e682d6f4ef209845ec24f0a1eb37764d6731
|
||||
|
||||
Upstream-Status: Submitted [https://gitlab.freedesktop.org/wayland/weston/-/merge_requests/1902]
|
||||
---
|
||||
libweston/backend-drm/drm-internal.h | 4 ++--
|
||||
libweston/backend-drm/state-propose.c | 10 +++++-----
|
||||
2 files changed, 7 insertions(+), 7 deletions(-)
|
||||
|
||||
--- a/libweston/backend-drm/drm-internal.h
|
||||
+++ b/libweston/backend-drm/drm-internal.h
|
||||
@@ -296,7 +296,7 @@ struct drm_fb {
|
||||
int width, height;
|
||||
int fd;
|
||||
|
||||
- uint32_t plane_mask;
|
||||
+ uint64_t plane_mask;
|
||||
|
||||
/* Used by gbm fbs */
|
||||
struct gbm_bo *bo;
|
||||
--- a/libweston/backend-drm/state-propose.c
|
||||
+++ b/libweston/backend-drm/state-propose.c
|
||||
@@ -412,7 +412,7 @@ drm_output_find_plane_for_view(struct dr
|
||||
current_lowest_zpos_overlay;
|
||||
|
||||
bool view_matches_entire_output, scanout_has_view_assigned;
|
||||
- uint32_t possible_plane_mask = 0;
|
||||
+ uint64_t possible_plane_mask = 0;
|
||||
|
||||
pnode->try_view_on_plane_failure_reasons = FAILURE_REASONS_NONE;
|
||||
|
||||
@@ -461,7 +461,7 @@ drm_output_find_plane_for_view(struct dr
|
||||
return NULL;
|
||||
}
|
||||
|
||||
- possible_plane_mask = (1 << output->cursor_plane->plane_idx);
|
||||
+ possible_plane_mask = (1UL << output->cursor_plane->plane_idx);
|
||||
} else {
|
||||
if (mode == DRM_OUTPUT_PROPOSE_STATE_RENDERER_ONLY) {
|
||||
drm_debug(b, "\t\t\t\t[view] not assigning view %p "
|
||||
@@ -474,7 +474,7 @@ drm_output_find_plane_for_view(struct dr
|
||||
continue;
|
||||
|
||||
if (drm_paint_node_transform_supported(pnode, plane))
|
||||
- possible_plane_mask |= 1 << plane->plane_idx;
|
||||
+ possible_plane_mask |= 1UL << plane->plane_idx;
|
||||
}
|
||||
|
||||
if (!possible_plane_mask) {
|
||||
@@ -508,10 +508,10 @@ drm_output_find_plane_for_view(struct dr
|
||||
if (possible_plane_mask == 0)
|
||||
break;
|
||||
|
||||
- if (!(possible_plane_mask & (1 << plane->plane_idx)))
|
||||
+ if (!(possible_plane_mask & (1UL << plane->plane_idx)))
|
||||
continue;
|
||||
|
||||
- possible_plane_mask &= ~(1 << plane->plane_idx);
|
||||
+ possible_plane_mask &= ~(1UL << plane->plane_idx);
|
||||
mm_has_underlay =
|
||||
drm_mixed_mode_check_underlay(mode, scanout_state, plane->zpos_max);
|
||||
|
||||
@@ -1,10 +1,4 @@
|
||||
PACKAGECONFIG:remove:rpi = "${@bb.utils.contains('MACHINE_FEATURES', 'vc4graphics', 'fbdev', 'egl clients', d)}"
|
||||
PACKAGECONFIG:remove:rpi = "${@bb.utils.contains('MACHINE_FEATURES', 'vc4graphics', '', 'egl clients', d)}"
|
||||
|
||||
EXTRA_OECONF:append:rpi = " \
|
||||
--disable-xwayland-test \
|
||||
--disable-simple-egl-clients \
|
||||
${@bb.utils.contains('MACHINE_FEATURES', 'vc4graphics', '', ' \
|
||||
--disable-resize-optimization \
|
||||
--disable-setuid-install \
|
||||
', d)} \
|
||||
"
|
||||
FILESEXTRAPATHS:prepend := "${THISDIR}/weston:"
|
||||
SRC_URI:append:rpi = " file://0001-Adapt-weston-to-64-bit-plane-IDs.patch"
|
||||
|
||||
@@ -29,8 +29,6 @@ SRC_URI = " \
|
||||
SRCREV = "78d6a07730e2d20c035899521ab67726dc028e1c"
|
||||
PV = "1.2-9+rpt3"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
inherit allarch
|
||||
|
||||
CLEANBROKEN = "1"
|
||||
|
||||
@@ -1,28 +0,0 @@
|
||||
From b9db43e36ad0942d33cb4db5b394abd722862568 Mon Sep 17 00:00:00 2001
|
||||
From: Andrei Gherzan <andrei.gherzan@huawei.com>
|
||||
Date: Fri, 9 Sep 2022 20:28:06 +0200
|
||||
Subject: [PATCH] Default 43455 firmware to standard variant
|
||||
|
||||
The firmware for 43455 is loaded as a symlink: brcmfmac43455-sdio.bin.
|
||||
This symlink is now broken as the debian package handles the right
|
||||
target of this symlink through a postinstall. We don't have that logic
|
||||
here so we default to the standard variant.
|
||||
|
||||
Upstream-Status: Inappropriate [issue reported at https://github.com/RPi-Distro/firmware-nonfree/issues/26]
|
||||
Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
|
||||
---
|
||||
debian/config/brcm80211/brcm/brcmfmac43455-sdio.bin | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/debian/config/brcm80211/brcm/brcmfmac43455-sdio.bin b/debian/config/brcm80211/brcm/brcmfmac43455-sdio.bin
|
||||
index 9c39208..b914838 120000
|
||||
--- a/debian/config/brcm80211/brcm/brcmfmac43455-sdio.bin
|
||||
+++ b/debian/config/brcm80211/brcm/brcmfmac43455-sdio.bin
|
||||
@@ -1 +1 @@
|
||||
-../cypress/cyfmac43455-sdio.bin
|
||||
\ No newline at end of file
|
||||
+../cypress/cyfmac43455-sdio-standard.bin
|
||||
\ No newline at end of file
|
||||
--
|
||||
2.25.1
|
||||
|
||||
@@ -0,0 +1,79 @@
|
||||
From 20741d848c32e0fb2e4841cf8bbc9ec3d198bb6b Mon Sep 17 00:00:00 2001
|
||||
From: Omri Sarig <omri.sarig@prevas.dk>
|
||||
Date: Thu, 9 Jan 2025 19:00:10 +0100
|
||||
Subject: [PATCH 2/2] Default all RPi 43455 boards to standard variant
|
||||
|
||||
As the patch above explains, the symlink that is being used by the
|
||||
brcmfmac43455-sdio.* files is one that is created by the Debian system,
|
||||
which we do not have in our implementation. Therefore, when the system
|
||||
tries to load these files, an error message is generated.
|
||||
|
||||
By changing the symlinks to be to the standard variant, the problem is
|
||||
solved for the build.
|
||||
|
||||
The code is also working without this patch - when the driver is unable
|
||||
to load the board-specific file (such as
|
||||
brcmfmac43455-sdio.raspberrypi,3-model-a-plus.bin), it reverts to using
|
||||
the base file (brcmfmac43455-sdio.bin), which is a correct link (as it
|
||||
is fixed in the patch above). However, the driver is still generating an
|
||||
error message in this case, which is being solved by linking the
|
||||
board-specific files to the standard variant as well.
|
||||
|
||||
Upstream-Status: Inappropriate [issue reported at https://github.com/RPi-Distro/firmware-nonfree/issues/26]
|
||||
Signed-off-by: Omri Sarig <omri.sarig@prevas.dk>
|
||||
---
|
||||
.../brcm/brcmfmac43455-sdio.raspberrypi,3-model-a-plus.bin | 2 +-
|
||||
.../brcm/brcmfmac43455-sdio.raspberrypi,3-model-b-plus.bin | 2 +-
|
||||
.../brcm/brcmfmac43455-sdio.raspberrypi,4-compute-module.bin | 2 +-
|
||||
.../brcm80211/brcm/brcmfmac43455-sdio.raspberrypi,4-model-b.bin | 2 +-
|
||||
.../brcm80211/brcm/brcmfmac43455-sdio.raspberrypi,5-model-b.bin | 2 +-
|
||||
5 files changed, 5 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/debian/config/brcm80211/brcm/brcmfmac43455-sdio.raspberrypi,3-model-a-plus.bin b/debian/config/brcm80211/brcm/brcmfmac43455-sdio.raspberrypi,3-model-a-plus.bin
|
||||
index 9c39208..b914838 120000
|
||||
--- a/debian/config/brcm80211/brcm/brcmfmac43455-sdio.raspberrypi,3-model-a-plus.bin
|
||||
+++ b/debian/config/brcm80211/brcm/brcmfmac43455-sdio.raspberrypi,3-model-a-plus.bin
|
||||
@@ -1 +1 @@
|
||||
-../cypress/cyfmac43455-sdio.bin
|
||||
\ No newline at end of file
|
||||
+../cypress/cyfmac43455-sdio-standard.bin
|
||||
\ No newline at end of file
|
||||
diff --git a/debian/config/brcm80211/brcm/brcmfmac43455-sdio.raspberrypi,3-model-b-plus.bin b/debian/config/brcm80211/brcm/brcmfmac43455-sdio.raspberrypi,3-model-b-plus.bin
|
||||
index 9c39208..b914838 120000
|
||||
--- a/debian/config/brcm80211/brcm/brcmfmac43455-sdio.raspberrypi,3-model-b-plus.bin
|
||||
+++ b/debian/config/brcm80211/brcm/brcmfmac43455-sdio.raspberrypi,3-model-b-plus.bin
|
||||
@@ -1 +1 @@
|
||||
-../cypress/cyfmac43455-sdio.bin
|
||||
\ No newline at end of file
|
||||
+../cypress/cyfmac43455-sdio-standard.bin
|
||||
\ No newline at end of file
|
||||
diff --git a/debian/config/brcm80211/brcm/brcmfmac43455-sdio.raspberrypi,4-compute-module.bin b/debian/config/brcm80211/brcm/brcmfmac43455-sdio.raspberrypi,4-compute-module.bin
|
||||
index 9c39208..b914838 120000
|
||||
--- a/debian/config/brcm80211/brcm/brcmfmac43455-sdio.raspberrypi,4-compute-module.bin
|
||||
+++ b/debian/config/brcm80211/brcm/brcmfmac43455-sdio.raspberrypi,4-compute-module.bin
|
||||
@@ -1 +1 @@
|
||||
-../cypress/cyfmac43455-sdio.bin
|
||||
\ No newline at end of file
|
||||
+../cypress/cyfmac43455-sdio-standard.bin
|
||||
\ No newline at end of file
|
||||
diff --git a/debian/config/brcm80211/brcm/brcmfmac43455-sdio.raspberrypi,4-model-b.bin b/debian/config/brcm80211/brcm/brcmfmac43455-sdio.raspberrypi,4-model-b.bin
|
||||
index 9c39208..b914838 120000
|
||||
--- a/debian/config/brcm80211/brcm/brcmfmac43455-sdio.raspberrypi,4-model-b.bin
|
||||
+++ b/debian/config/brcm80211/brcm/brcmfmac43455-sdio.raspberrypi,4-model-b.bin
|
||||
@@ -1 +1 @@
|
||||
-../cypress/cyfmac43455-sdio.bin
|
||||
\ No newline at end of file
|
||||
+../cypress/cyfmac43455-sdio-standard.bin
|
||||
\ No newline at end of file
|
||||
diff --git a/debian/config/brcm80211/brcm/brcmfmac43455-sdio.raspberrypi,5-model-b.bin b/debian/config/brcm80211/brcm/brcmfmac43455-sdio.raspberrypi,5-model-b.bin
|
||||
index 9c39208..b914838 120000
|
||||
--- a/debian/config/brcm80211/brcm/brcmfmac43455-sdio.raspberrypi,5-model-b.bin
|
||||
+++ b/debian/config/brcm80211/brcm/brcmfmac43455-sdio.raspberrypi,5-model-b.bin
|
||||
@@ -1 +1 @@
|
||||
-../cypress/cyfmac43455-sdio.bin
|
||||
\ No newline at end of file
|
||||
+../cypress/cyfmac43455-sdio-standard.bin
|
||||
\ No newline at end of file
|
||||
--
|
||||
2.34.1
|
||||
|
||||
@@ -7,7 +7,7 @@ SECTION = "kernel"
|
||||
|
||||
LICENSE = "GPL-2.0-only & binary-redist-Cypress-rpidistro & Synaptics-rpidistro"
|
||||
LIC_FILES_CHKSUM = "\
|
||||
file://debian/copyright;md5=291ee5385b4cf74b10c5fb5a46a7bbc6 \
|
||||
file://debian/copyright;md5=454e44c688dc909e16223e4aee63568c \
|
||||
"
|
||||
# Where these are no common licenses, set NO_GENERIC_LICENSE so that the
|
||||
# license files will be copied from the fetched source.
|
||||
@@ -16,11 +16,10 @@ NO_GENERIC_LICENSE[Synaptics-rpidistro] = "debian/copyright"
|
||||
LICENSE_FLAGS = "synaptics-killswitch"
|
||||
|
||||
SRC_URI = "git://github.com/RPi-Distro/firmware-nonfree;branch=bookworm;protocol=https \
|
||||
file://0001-Default-43455-firmware-to-standard-variant.patch \
|
||||
file://0002-Default-all-RPi-43455-boards-to-standard-variant.patch \
|
||||
"
|
||||
SRCREV = "4b356e134e8333d073bd3802d767a825adec3807"
|
||||
PV = "20230625-2+rpt3"
|
||||
S = "${WORKDIR}/git"
|
||||
SRCREV = "c9d3ae6584ab79d19a4f94ccf701e888f9f87a53"
|
||||
PV = "20240709-2~bpo12+1+rpt3"
|
||||
|
||||
inherit allarch
|
||||
|
||||
@@ -51,6 +50,9 @@ do_install() {
|
||||
ln -s cyfmac43455-sdio-${CYFMAC43455_SDIO_FIRMWARE}.bin ${D}${nonarch_base_libdir}/firmware/cypress/cyfmac43455-sdio.bin
|
||||
|
||||
rm ${D}${nonarch_base_libdir}/firmware/cypress/README.txt
|
||||
|
||||
install -d ${D}${sysconfdir}/modprobe.d
|
||||
install -m 0644 debian/rpi-brcmfmac.conf ${D}${sysconfdir}/modprobe.d/
|
||||
}
|
||||
|
||||
PACKAGES = "\
|
||||
@@ -61,6 +63,7 @@ PACKAGES = "\
|
||||
${PN}-bcm43455 \
|
||||
${PN}-bcm43456 \
|
||||
${PN}-license \
|
||||
${PN}-module-conf \
|
||||
"
|
||||
|
||||
LICENSE:${PN}-bcm43430 = "binary-redist-Cypress-rpidistro"
|
||||
@@ -91,13 +94,14 @@ FILES:${PN}-bcm43455 = " \
|
||||
"
|
||||
FILES:${PN}-bcm43456 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43456*"
|
||||
FILES:${PN}-license = "${nonarch_base_libdir}/firmware/copyright.firmware-nonfree-rpidistro"
|
||||
FILES:${PN}-module-conf = "${sysconfdir}/modprobe.d"
|
||||
|
||||
RDEPENDS:${PN}-bcm43430 += "${PN}-license"
|
||||
RDEPENDS:${PN}-bcm43436 += "${PN}-license"
|
||||
RDEPENDS:${PN}-bcm43436s += "${PN}-license"
|
||||
RDEPENDS:${PN}-bcm43439 += "${PN}-license"
|
||||
RDEPENDS:${PN}-bcm43455 += "${PN}-license"
|
||||
RDEPENDS:${PN}-bcm43456 += "${PN}-license"
|
||||
RDEPENDS:${PN}-bcm43430 += "${PN}-license ${PN}-module-conf"
|
||||
RDEPENDS:${PN}-bcm43436 += "${PN}-license ${PN}-module-conf"
|
||||
RDEPENDS:${PN}-bcm43436s += "${PN}-license ${PN}-module-conf"
|
||||
RDEPENDS:${PN}-bcm43439 += "${PN}-license ${PN}-module-conf"
|
||||
RDEPENDS:${PN}-bcm43455 += "${PN}-license ${PN}-module-conf"
|
||||
RDEPENDS:${PN}-bcm43456 += "${PN}-license ${PN}-module-conf"
|
||||
|
||||
RCONFLICTS:${PN}-bcm43430 = "linux-firmware-raspbian-bcm43430"
|
||||
RCONFLICTS:${PN}-bcm43436 = "linux-firmware-bcm43436"
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
LINUX_VERSION ?= "6.1.77"
|
||||
LINUX_VERSION ?= "6.1.93"
|
||||
LINUX_RPI_BRANCH ?= "rpi-6.1.y"
|
||||
LINUX_RPI_KMETA_BRANCH ?= "yocto-6.1"
|
||||
|
||||
SRCREV_machine = "77fc1fbcb5c013329af9583307dd1ff3cd4752aa"
|
||||
SRCREV_meta = "43d1723dbe0ce7b341cf32feeb35ecbe6b0ce29a"
|
||||
SRCREV_machine = "fbd8b3facb36ce888b1cdcf5f45a78475a8208f2"
|
||||
SRCREV_meta = "f20e1242da5967a295bbede2779abc8fd547906d"
|
||||
|
||||
KMETA = "kernel-meta"
|
||||
|
||||
|
||||
@@ -1,14 +1,14 @@
|
||||
LINUX_VERSION ?= "6.12.1"
|
||||
LINUX_RPI_BRANCH ?= ""
|
||||
LINUX_VERSION ?= "6.12.58"
|
||||
LINUX_RPI_BRANCH ?= "rpi-6.12.y"
|
||||
LINUX_RPI_KMETA_BRANCH ?= "yocto-6.12"
|
||||
|
||||
SRCREV_machine = "614fa9b0b1a21c0cc320b9915393bdaa31357de9"
|
||||
SRCREV_meta = "96ce9b7ee67702aec75816c4d44a527061c418c5"
|
||||
SRCREV_machine = "cf8f90deed1491b7ed365944b2a10799595373a6"
|
||||
SRCREV_meta = "6a551cd6cf63d4199bc51ef778692f23730dbcca"
|
||||
|
||||
KMETA = "kernel-meta"
|
||||
|
||||
SRC_URI = " \
|
||||
git://github.com/raspberrypi/linux.git;name=machine;nobranch=1;protocol=https \
|
||||
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 \
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
LINUX_VERSION ?= "6.6.63"
|
||||
LINUX_VERSION ?= "6.6.78"
|
||||
LINUX_RPI_BRANCH ?= "rpi-6.6.y"
|
||||
LINUX_RPI_KMETA_BRANCH ?= "yocto-6.6"
|
||||
|
||||
SRCREV_machine = "e442e5c1ab6bff5b5460b4fc949beb72aaf77970"
|
||||
SRCREV_meta = "52ff0d75713ce61962b325a2090bd55e216f0cf3"
|
||||
SRCREV_machine = "bba53a117a4a5c29da892962332ff1605990e17a"
|
||||
SRCREV_meta = "2a0755715e994658c580454e1292e11e11c1cc35"
|
||||
|
||||
KMETA = "kernel-meta"
|
||||
|
||||
|
||||
@@ -25,7 +25,7 @@ SRCREV_default = "1f1d0ccd65d3a1caa86dc79d2863a8f067c8e3f8"
|
||||
SRCREV_ffmpeg = "fcbd117df3077bad495e99e20f01cf93737bce76"
|
||||
|
||||
SRC_URI = "git://github.com/popcornmix/omxplayer.git;protocol=https;branch=master \
|
||||
git://github.com/FFmpeg/FFmpeg;branch=release/4.0;protocol=https;depth=1;name=ffmpeg;destsuffix=git/ffmpeg \
|
||||
git://github.com/FFmpeg/FFmpeg;branch=release/4.0;protocol=https;depth=1;name=ffmpeg;destsuffix=${BB_GIT_DEFAULT_DESTSUFFIX}/ffmpeg \
|
||||
file://0002-Libraries-and-headers-from-ffmpeg-are-installed-in-u.patch \
|
||||
file://0003-Remove-strip-step-in-Makefile.patch \
|
||||
file://0004-Add-FFMPEG_EXTRA_CFLAGS-and-FFMPEG_EXTRA_LDFLAGS.patch \
|
||||
@@ -40,8 +40,6 @@ SRC_URI = "git://github.com/popcornmix/omxplayer.git;protocol=https;branch=maste
|
||||
|
||||
SRC_URI:append = "${@bb.utils.contains("MACHINE_FEATURES", "vc4graphics", " file://0001-Fix-build-with-vc4-driver.patch ", "", d)}"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
COMPATIBLE_MACHINE = "^rpi$"
|
||||
COMPATIBLE_HOST:aarch64 = "null"
|
||||
|
||||
|
||||
@@ -14,8 +14,6 @@ RDEPENDS:${PN} = "python3-numbers \
|
||||
SRC_URI = "git://git@github.com/waveform80/picamera.git;protocol=ssh;branch=master"
|
||||
SRCREV = "7e4f1d379d698c44501fb84b886fadf3fc164b70"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
inherit setuptools3
|
||||
|
||||
COMPATIBLE_HOST = "null"
|
||||
|
||||
@@ -50,8 +50,6 @@ SRC_URI = "\
|
||||
|
||||
SRCREV = "1c363463c432c5ed492c7b759abb6e015b93b6b5"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
# libraries to build in addition to avutil
|
||||
PACKAGECONFIG[avdevice] = "--enable-avdevice,--disable-avdevice"
|
||||
PACKAGECONFIG[avfilter] = "--enable-avfilter,--disable-avfilter"
|
||||
|
||||
Reference in New Issue
Block a user