456 Commits

Author SHA1 Message Date
Florin Sarbu
8e3cbfa598 udev-rules-rpi: Use 99-com.rules directly from upstream
Rather than have an unsynchronized copy of this file, let's use this
udev rule directly from upstream.

Signed-off-by: Florin Sarbu <florin@balena.io>
2023-05-30 15:01:39 +01:00
Martin Jansa
6f5771d2bc raspberrypi4-64: drop DEFAULTTUNE assignment
* it matches the default from tune-cortexa72.inc:
  $ grep DEFAULTTUNE openembedded-core/meta/conf/machine/include/arm/armv8a/tune-cortexa72.inc
  DEFAULTTUNE ?= "cortexa72"

* the assignment was introduced in:
  cd234925fa
  to switch to cortexa72-crc, but this change was effectively reverted in:
  42ef0f5046
  by setting it back to default "cortexa72".

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
2022-11-28 22:43:29 +00:00
Andrei Gherzan
2d4b29296a ci: Fix dco-check job with newer git versions
Due to https://nvd.nist.gov/vuln/detail/cve-2022-24765, git introduced a
feature where without explicitly allowing it, it won't parse or consider
hooks that are owned by another git user while erroring out with:

  fatal: detected dubious ownership in repository at [...]

This won't be an issue in our setup due to how we guard the code via PRs
so we configure git to avoid this check.

Signed-off-by: Andrei Gherzan <andrei@gherzan.com>
2022-11-28 22:43:29 +00:00
Andrei Gherzan
f581683ffc ci: Bump actions/checkout to v3
This addresses warnings like:

Node.js 12 actions are deprecated. [...] Please update the following
actions to use Node.js 16: actions/checkout, actions/checkout

Signed-off-by: Andrei Gherzan <andrei@gherzan.com>
2022-11-28 22:43:29 +00:00
Sung Gon Kim
9a5e649422 libcamera: rename bbappend to match any version
libcamera has been renamed in meta-openembedded in:
1032bce778

Signed-off-by: Sung Gon Kim <sunggon82.kim@lge.com>
2022-11-28 22:43:29 +00:00
Oliver Lang
722c51647c rpi-base.inc: handle empty/undefined KERNEL_DEVICETREE
This patch is based on an analog patch from Christopher Boyd <xpboyd@gmail.com> committed at meta-freescale.
(see 954d7a7d7a)

Signed-off-by: Oliver Lang <quantenkeks@gmail.com>
2022-10-20 10:11:38 +01:00
Zygmunt Krynicki
fc5f80a47e ci: fix apparent typo in file patterns
Signed-off-by: Zygmunt Krynicki <me@zygoon.pl>
2022-10-11 18:58:35 +01:00
Zygmunt Krynicki
c573499166 ci: fix typo: unconditionally
Signed-off-by: Zygmunt Krynicki <me@zygoon.pl>
2022-10-11 18:58:35 +01:00
Martin Jansa
757d88af9f lirc: rename bbappend to match 0.10.%
* lirc was upgraded in meta-oe in:
  https://git.openembedded.org/meta-openembedded/commit/?id=b1287c4ef25e416cbbea163930c3fd1df480f183

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
2022-10-11 13:03:38 +01:00
Devendra Tewari
acb2f73e58 rpi-libcamera-apps: add new recipe
Signed-off-by: Devendra Tewari <devendra.tewari@gmail.com>
2022-10-11 00:24:58 +01:00
Devendra Tewari
5edbd17c5b libcamera: Tweak to build for Raspberry Pi
Add Raspberry Pi pipeline handler and Image
Processing Algorithms.

Work around clang 14/15 build error:
field within 'v4l2_ext_control' is less aligned.
See
https://github.com/kbingham/libcamera/pull/40.

Signed-off-by: Devendra Tewari <devendra.tewari@gmail.com>
2022-10-11 00:24:58 +01:00
Devendra Tewari
d3cdc30958 rpi-cmdline: Leave cma value to kernel default
Fixes #1095 where setting cma to a lower value affects the ability of
libcamera-apps to capture higher resolution images.

Signed-off-by: Devendra Tewari <devendra.tewari@gmail.com>
2022-10-11 00:24:39 +01:00
Khem Raj
45d56d82b7 layers: Add langdale to LAYERSERIES_COMPAT
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2022-09-30 10:11:17 +01:00
Chris Blättermann
80441d263d meta-raspberrypi: Include the device tree for Raspberry Pi CM4S
Signed-off-by: Chris Blättermann <chris.blaettermann@voltstorage.com>
2022-09-25 08:01:23 +01:00
Andrei Gherzan
f38baedb86 ci: Add raspberrypi-armv8 to the build matrix
Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
2022-09-14 20:39:18 +01:00
Andrei Gherzan
2f43edae00 Add support for a ARMv8 machine supporting multiple Raspberry Pi boards
The new raspberrypi-armv8.conf aims at supporting all the ARMv8
Raspberry Pi boards.

This initial support was tested on:
* Raspberry Pi 4 Model B
* Raspberry Pi 3 Model B
* Raspberry Pi 0 2 WiFi

Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
2022-09-14 20:39:18 +01:00
Andrei Gherzan
fe96a4511f ci: Add raspberrypi-armv7 to the build matrix
Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
2022-09-14 20:39:18 +01:00
Andrei Gherzan
10b649bdb0 Add support for a ARMv7 machine supporting multiple Raspberry Pi boards
The new raspberrypi-armv7.conf aims at supporting all the ARMv7
Raspberry Pi boards.

This initial support was tested on:
* Raspberry Pi 4 Model B
* Raspberry Pi 3 Model B
* Raspberry Pi 0 2 WiFi

Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
2022-09-14 20:39:18 +01:00
Andrei Gherzan
f24c3bdc3c rpi-base.inc: Split IMAGE_BOOT_FILES for kernel image
The kernel image deployment is now defined in IMAGE_BOOT_FILES as a
separate variable: RPI_EXTRA_IMAGE_BOOT_FILES. This allows a custom
kernel image deployment by redefining this variable when needed.

Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
2022-09-14 20:39:18 +01:00
Andrei Gherzan
063ac5c919 raspberrypi0-2w.conf: Include the RPi 0-2w dtb for all 32-bit machines
All 32-bit machines are sharing the list of machine dtbs with the
exception of raspberrypi0-2w. Move this away too to unify the
machine configurations.

Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
2022-09-14 20:39:18 +01:00
Andrei Gherzan
1440ac8589 sdcard_image-rpi.bbclass: Move SDIMG_KERNELIMAGE definitions to their machines
This unifies the configuration of SDIMG_KERNELIMAGE across machines.

Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
2022-09-14 20:39:18 +01:00
Vincent Davis Jr
4b9c0dd543 docs: add info for raspberrypi distro vlc
Explains that PREFERRED_PROVIDER_ffmpeg/vlc
can be used to select an implementation of ffmpeg
or vlc. Also adds information on how vlc mmal_vout
plugin could be utilized. As well as how to expose
rpidistro-vlc.

Signed-off-by: Vincent Davis Jr <vince@underview.tech>
2022-09-14 20:38:30 +01:00
Khem Raj
1b598573be rpidistro-vlc,rpidistro-ffmpeg: Limit scope to just rpi machines
enable mmal only when using userland graphics

Fixes builds on non-rpi machines e.g.
ERROR: Nothing PROVIDES 'userland' (but /mnt/jenkins/workspace/yocto-world-glibc/sources/meta-raspberrypi/recipes-multimedia/rpidistro-ffmpeg/rpidistro-ffmpeg_4.3.2.bb DEPENDS on or otherwise requires it)
userland was skipped: incompatible with machine qemumips (not in COMPATIBLE_MACHINE)
NOTE: Runtime target 'rpidistro-ffmpeg' is unbuildable, removing...

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2022-09-13 22:15:08 +01:00
Andrei Gherzan
e9d70d6b77 linux-firmware-rpidistro: Fix wireless on Raspberry Pi 4
Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
2022-09-12 23:44:30 +01:00
Vinicius Aquino
9ea5daf9fc raspberrypi-firmware: Update to 20220830 snapshot
Signed-off-by: Vinicius Aquino <vinicius.aquino@ossystems.com.br>
2022-09-09 18:21:36 +01:00
Vincent Davis Jr
465c8106ff Add support for optional selection of vlc and ffmpeg
Adds ability to select rpidistro version of vlc and ffmpeg over oe-core version.
via the PREFERRED_PROVIDER_vlc & PREFERRED_PROVIDER_ffmpeg
variables.

Signed-off-by: Vincent Davis Jr <vince@underview.tech>
2022-09-06 03:32:59 +01:00
Vincent Davis Jr
8f88bfa824 rpidistro-vlc: add rpidistro VLC build (with MMAL enabled)
This adds support for building rpidistro version of VLC with hardware
acceleration through MMAL. The version of VLC located in
meta-openembedded/meta-multimedia/recipes-multimedia/vlc uses mainline
VLC and doesn't give all the proper flags. The series of patches attached
to commit gives necessarly vlc mmal flags.

* https://code.videolan.org/videolan/vlc/-/issues/24617
* https://bugs.gentoo.org/723006

The build fails with errors such as "multiple definition of `pf_enable_graphic_buffers'"
when omxil is enabled. The issue seems to be due to compiler flags. Adding -fcommon to
both cflags and cxxflags yields a full compile.

Signed-off-by: Vincent Davis Jr <vince@underview.tech>
2022-09-06 03:32:59 +01:00
Vincent Davis Jr
ba965e3b67 raspidistro-ffmpeg: add support for building raspidistro ffmpeg
Pulls the raspidistro version of ffmpeg down and applies the necessary
patches that are located in the debian/patches folder.

Signed-off-by: Vincent Davis Jr <vince@underview.tech>
2022-09-06 03:32:59 +01:00
Lluis Campos
c57b464b88 rpi-cmdline: do_compile: Use pure Python syntax to get CMDLINE
Otherwise the shell snippet fails with `bad syntax` when `CMDLINE`
contains special characters like `${...}` (useful to insert a U-Boot
variable in `cmdline.txt`).

Signed-off-by: Lluis Campos <lluis.campos@northern.tech>
2022-09-03 00:00:05 +01:00
Andrei Gherzan
b6a1645a97 Use a png with transparency for balena logo
Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
2022-07-31 02:18:20 +01:00
Andrei Gherzan
9a65a5cc18 Add initial version of CODE_OF_CONDUCT.md
Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
2022-07-31 02:18:20 +01:00
Andrei Gherzan
3bef4f04cc README.md: Refactor top table
Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
2022-07-31 02:18:20 +01:00
Andrei Gherzan
d9ea8f66d9 README.md: Mention Yocto Compatible Layer
Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
2022-07-31 02:18:20 +01:00
Andrei Gherzan
0ffe5110ec ci: Set LICENSE_FLAGS_ACCEPTED in builder docker container
Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
2022-07-31 02:16:37 +01:00
Andrei Gherzan
7c31b9b4b5 linux-firmware-rpidistro: Guard the recipe under a license flag
We do this as a result of an upstream issue[1].

Some of the firmware blobs are provided under the 'Synapse' license
including a clause that can (at least theoretically) be used as a
'killswitch'. To make sure users are aware of this, we guard this
behind a license flag.

Users of this recipe will need to add to their configuration:

    LICENSE_FLAGS_ACCEPTED = "synaptics-killswitch"

[1] https://github.com/RPi-Distro/firmware-nonfree/issues/29

Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
2022-07-31 02:16:37 +01:00
Andrei Gherzan
1b4215d5d0 linux-firmware-rpidistro: Revamp, cleanup and restructure recipe
Besides general cleanup and formatting (for example dropping the
conflicts and replaces on the raspbian packages which was deprecated
long ago) this also cleans up the license of the package as per the
updated upstream copyright file. This recipe now provides firmware files
of two different licenses.

bcm43430 bcm43455 - binary-redist-Cypress
bcm43436 bcm43436s bcm43456 - Synaptics

The license file itself is GPLv2 as other debian files.

Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
2022-07-31 02:16:37 +01:00
Andrei Gherzan
3122d5291d omxplayer: Bump to latest revision
Also, add a deprecation note as per the project's status:
https://github.com/popcornmix/omxplayer/blob/master/README.md

Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
2022-07-31 02:16:37 +01:00
Andrei Gherzan
263920a672 linux-firmware-rpidistro: Update to 1:20210315-3+rpt7 release
This new revision comes with a lot of changes around the license. We
have two issues raised against upstream to clarify them:

https://github.com/RPi-Distro/firmware-nonfree/issues/28
https://github.com/RPi-Distro/firmware-nonfree/issues/29

Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
2022-07-31 02:16:37 +01:00
Andrei Gherzan
8f8b8c9fee linux-raspberrypi: Update 5.10 recipe to latest revision
Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
2022-07-31 02:16:37 +01:00
Andrei Gherzan
73142a23e4 linux-raspberrypi: Update 5.15 recipe to 5.15.56
Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
2022-07-31 02:16:37 +01:00
Andrei Gherzan
18a11f59b8 bluez-firmware-rpidistro: Backport patch to fix CYW43455 and various CVEs
Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
2022-07-31 02:16:37 +01:00
Andrei Gherzan
38776890b7 userland: Bump revision to the current HEAD
Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
2022-07-31 02:16:37 +01:00
Andrei Gherzan
a087707b1f python3-adafruit-circuitpython-register: Bump to 1.9.10
Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
2022-07-31 02:16:37 +01:00
Andrei Gherzan
444f83221c python3-adafruit-platformdetect: Bump to 3.27.0
Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
2022-07-31 02:16:37 +01:00
Andrei Gherzan
356c0afee9 rpi-gpio: Bump to 0.7.1
Workaround not needed anymore as a fix was included from 0.7.1a[1].

[1] https://sourceforge.net/p/raspberry-gpio-python/tickets/187/#52f3

Also, this drops a patch merged upstream.

Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
2022-07-31 02:16:37 +01:00
Andrei Gherzan
4ede22cb67 raspberrypi-tools.inc: Bump to latest revision
Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
2022-07-31 02:16:37 +01:00
Vincent Davis Jr
3337b532eb docs: remove backticks
WM8960 soundcard support contains
markdown that's not needed.

Signed-off-by: Vincent Davis Jr <vince@underview.tech>
2022-07-30 04:06:28 +01:00
Andrei Gherzan
70191d3c87 ci: Don't run yocto builds on PRs that don't affect them
Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
2022-07-30 03:46:42 +01:00
Andrei Gherzan
05cafd056a ci: Run the mirror workflow on generic workers
No need to bottleneck on the self hosted worker(s) when this is a light
job.

Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
2022-07-30 03:46:42 +01:00
Andrei Gherzan
584785bf45 ci: Run the compliance workflow on generic workers
No need to bottleneck on the self hosted worker(s) when this is a light
job.

Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
2022-07-30 03:46:42 +01:00
Andrei Gherzan
1a15fefb27 ci: Run the cancel workflow on generic workers and update action
No need to bottleneck on the self hosted worker(s) when this is a light
job that needs to run as soon as possible so that it can cancel early.

Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
2022-07-30 03:46:42 +01:00
Andrei Gherzan
260b3b97d0 ci: Migrate worflow to using latest git-mirror-me-action revision
This has full support for env variables.

Signed-off-by: Andrei Gherzan <andrei@gherzan.com>
2022-07-27 11:27:00 +01:00
Khem Raj
62a84833d9 linux-raspberrypi: Upgrade to 5.15.38
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2022-05-13 15:10:34 +01:00
Khem Raj
a5c2bef10e linux-firmware-rpidistro: Create brcmfmac43455-sdio.raspberrypi,4-model-b.bin symlink
This fixes a boot time message on rpi4b
brcmfmac mmc1:0001:1: Direct firmware load for brcm/brcmfmac43455-sdio.raspberrypi,4-model-b.bin failed with error -2

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2022-05-07 12:37:11 +01:00
Andrei Gherzan
90448d7dd3 Revert "kmod: Enable xz compression"
This reverts commit c97a9e34ab.
2022-05-05 08:57:35 +01:00
Khem Raj
6afb32b00e rpi-config: Add option to enable One-wire interface
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2022-05-03 11:46:07 +01:00
Andrei Gherzan
c97a9e34ab kmod: Enable xz compression
The RaspberryPi default Linux kernel configuration uses xz for
compressing kernel modules[1]. This was introduced in 5.15. We need the
respective support in kmod too.

[1]https://github.com/raspberrypi/linux/pull/4991

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

Signed-off-by: Andrei Gherzan <andrei@gherzan.com>
2022-04-29 13:37:14 +01:00
Andrei Gherzan
0135a02ea5 rpi-base.inc: Add MCP3008 ADC overlay
Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
Signed-off-by: Jan <jan.claussen10@web.de>
2022-04-21 21:41:38 +01:00
Andrei Gherzan
ad6ebc053a docs: Bump copyright year
Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
2022-04-21 21:41:38 +01:00
Andrei Gherzan
785181f695 docs: Drop mention of deprecated images
Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
2022-04-21 21:41:38 +01:00
Davide Gardenal
901cb604b5 bluez-firmware-rpidistro: Add compatibility to oe-core/create-spdx
Add do_create_spdx dependency to fix error when LICENCE is not found

Signed-off-by: Davide Gardenal <davide.gardenal@huawei.com>
2022-04-21 21:41:38 +01:00
Meng Li
c3275986b6 u-boot: Remove the randundant patch
This patch had been merged into u-boot upstream. Its commit is
29f7d05a347a("dm: core: Move ofdata_to_platdata() call earlier").
So, remove the randundant patch to avoid building error.

Signed-off-by: Meng Li <Meng.Li@windriver.com>
2022-04-21 21:41:38 +01:00
Andrei Gherzan
993436b0fe ci: Use test builds with the test image
rpi-test-image is based on core-image-base but includes more packages
that this layer provides. In this way we can have CI test more recipe
updates.

Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
2022-04-21 21:41:38 +01:00
Andrei Gherzan
61ad24a65e packagegroup-rpi-test: Include more packages
Include more packages from this layer so we can test/CI the support
easier.

Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
2022-04-21 21:41:38 +01:00
Andrei Gherzan
258dcb3e15 rpi-hwup-image: Drop image
This was deprecated for a good while now so let's drop it.

Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
2022-04-21 21:41:38 +01:00
Andrei Gherzan
82871068c2 rpi-basic-image: Drop image
This was deprecated for a good while now so let's drop it.

Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
2022-04-21 21:41:38 +01:00
Andrei Gherzan
b90b06785c python3-adafruit-circuitpython-register: Upgrade to 1.9.8
Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
2022-04-21 21:41:38 +01:00
Andrei Gherzan
e6209f5671 python3-adafruit-platformdetect: Upgrade to 3.22.1
Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
2022-04-21 21:41:38 +01:00
Andrei Gherzan
7a3e4193f1 python3-adafruit-pureio: Uprade to 1.1.8
Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
2022-04-21 21:41:38 +01:00
Andrei Gherzan
34c1d4739d rpio: Upgrade to 0.10.1
Drop the 0001-include-sys-types.h-explicitly-for-getting-caddr_t-d.patch
patch as it was fixed in this version[1].

This switches the source from pypi to git (github) as the new version
wasn't published yet.

Lastly, we use the LICENSE.txt file for LIC_FILES_CHKSUM so we don't
have to deal with context lines in the README file.

[1] https://github.com/metachris/RPIO/pull/41

Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
2022-04-21 21:41:38 +01:00
Andrei Gherzan
cbb15c7a34 python3-rtimu: Upgrade to 7.2.1
Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
2022-04-21 21:41:38 +01:00
Andrei Gherzan
dda2c3a73e raspi-gpio: Uprev revision to current HEAD of master branch
Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
2022-04-21 21:41:38 +01:00
Andrei Gherzan
97101ee4fb linux-firmware-rpidistro: Update to 20210315-3+rpt4
The 43438 WLAN firmware doesn't include the clm_blob anymore which now
comes as a separate file: cyfmac43430-sdio.clm_blob.

The 43455 WLAN firmware now comes with a minimal build too. We make sure
that it is packaged and we dropped the associated README. In the future
we might want to introduce a build configuration for switching between
the two builds. For now we only deploy it on target and let users deal
with the symlink accordinly.

Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
2022-04-21 21:41:38 +01:00
Andrei Gherzan
a92429d950 pi-blaster: Uprev the recipe
This updates the recipe to the head of the master branch. Upstream
shifted the license section in the README file so this patch changes
LIC_FILES_CHKSUM accordingly.

Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
2022-04-21 21:41:38 +01:00
Andrei Gherzan
7da2c1886e bcm2835: Update to 1.71
This version is now released as GPLv3. It also adds an example that is
not a simple binary anymore - it is provided as a tiny library and an
associated tool (spiram/spiram_test). Restructure the compilation and
installation of all examples to cater for this case.

Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>

m
2022-04-21 21:41:38 +01:00
Andrei Gherzan
4f356af004 linux-raspberrypi: Update 5.10 recipe to 5.10.110
Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
2022-04-21 21:41:38 +01:00
Andrei Gherzan
49ad2d8bee linux-raspberrypi: Update 5.15 recipe to 5.15.34
Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
2022-04-21 21:41:38 +01:00
Andrei Gherzan
70ea7a678a raspberrypi-firmware: Update to 20220331
Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
2022-04-21 21:41:38 +01:00
Khem Raj
893aad8ce8 python3-sense-hat: Use specific BSD license
Fixes
WARNING: python3-sense-hat-2.2.0-r0 do_populate_lic: QA Issue: python3-sense-hat: No generic license file exists for: BSD in any provider [license-exists]

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2022-04-20 11:53:56 +01:00
Jan Vermaete
3a91ee04eb docs: link to latest documentation of kas
Version 1.0 of kas is not the latest anymore.

Signed-off-by: Jan Vermaete <jan.vermaete@gmail.com>
2022-04-14 10:37:30 +01:00
AJ Bagwell
83f5577d8d linux-raspberrypi: add UBOOT_ENTRYPOINT to match LOADADDR
This is so that uboot fit images have an entry point that matches the
LOADADDR that everything is expecting.

Signed-off-by: AJ Bagwell <anthony.bagwell@hivehome.com>
2022-04-11 17:15:30 +01:00
Khem Raj
cfbb192e5c omxplayer: Use internal version of ffmpeg
OE-Core's ffmpeg has moved to 5.x version whose headers are not directly
compatible with what omxplayer expects anymore. Therefore use captured
version of ffmpeg and point the header search paths accordingly.

Add missing dependency on alsa-lib for libasound headers

Fixes build with master/kirkstone

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2022-04-04 20:04:06 +01:00
Khem Raj
9f5aaa1a29 picamera-libs: Adjust sourcedir
After switching the SRC_URI for firmware, this adjustment was needed to
let this recipe find /opt/vc path in correct place

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2022-04-04 20:04:06 +01:00
Khem Raj
354e7153be userland: Update to latest as of 20220323
Fix build with clang

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2022-04-04 20:04:06 +01:00
Andrew Penner
8eff5d59ed extra-build-config: Add documentation for the ISOLATED_CPUS configuration variable
Signed-off-by: Andrew Penner <andrew.penner@protonmail.com>
2022-04-04 10:08:08 +01:00
Andrew Penner
2beae018fb rpi-cmdline: Add ability to specify CPUs to add to the isolcpus list
Signed-off-by: Andrew Penner <andrew.penner@protonmail.com>
2022-04-04 10:08:08 +01:00
Andrei Gherzan
1ea28cfb2a docs: Add information for RTC devices
The `rtc` machine feature is "considered" by default for all the
machines we provide until now. This can confuse people who would want an
RTC device attached to a RaspberryPi board[1]. Clarify this via
documentation.

[1] https://github.com/agherzan/meta-raspberrypi/issues/1010

Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
2022-04-02 22:04:31 +01:00
Jan Vermaete
8d7e6b533b docs: untabify the few tabs in the file
Signed-off-by: Jan Vermaete <jan.vermaete@gmail.com>
2022-04-02 21:48:17 +01:00
Khem Raj
31c33d155c armstubs: Upgrade to 20211101
- Switch to using git fetcher, avoid the QA issue

  ERROR: armstubs-20211101-r0 do_unpack: QA Issue: armstubs: SRC_URI uses unstable GitHub/GitLab archives, convert recipe to use git protocol [src-uri-bad]

- Use shallow clone to reduce size of cloned repo

  Normal archive tarball
  raspberrypi-tools-13474ee775d0c5ec8a7da4fb0a9fa84187abfc87.tar.gz - 324M

  Shallow clone achive tarball
  gitshallow_github.com.raspberrypi.tools_13474ee-1_master.tar.gz - 189M

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2022-03-31 12:03:32 +01:00
Khem Raj
03c6ab0cae raspberrypi-firmware: Update to match 5.15.32
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2022-03-31 12:03:32 +01:00
Khem Raj
b64df25754 linux-raspberrypi_5.15.bb: Upgrade to 5.15.32
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2022-03-31 12:03:32 +01:00
Matthias Klein
c06ae5eacf u-boot: always set fdt_addr with firmware-provided FDT address
The Raspberry firmware prepares the FDT blob in memory at an address that
depends on both the memory size and the blob size.
For details see description in the patch itself.

The patch is not yet upstream, but has already been submitted by the original
author: https://lore.kernel.org/all/20210512123945.25649-1-m.salvini@koansoftware.com/

For me, the described problem occurs in conjunction with RAUC, which uses the
following U-Boot script: https://github.com/rauc/meta-rauc-community/blob/master/meta-rauc-raspberrypi/recipes-bsp/rpi-u-boot-scr/files/boot.cmd.in

As soon as I add an overlay the fdt_addr changes and the system does not boot
anymore.

Signed-off-by: Matthias Klein <matthias@extraklein.de>
2022-03-27 22:59:24 +01:00
Andrei Gherzan
bc10842957 linux-raspberrypi: Bump 5.15 recipe to 5.15.30
Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
2022-03-24 21:06:09 +00:00
Khem Raj
7a9b2751f0 linux-raspberrypi: Update to 5.15.28
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2022-03-17 14:32:23 +00:00
Khem Raj
747f5f33f5 python: Unbolt wheel packaging PIP_INSTALL_PACKAGE band-aids
OE-Core has improved packaging the whl files therefore remove the
band-aids.

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2022-03-11 01:07:59 +00:00
Khem Raj
030bbc50b7 linux-raspberrypi: Update to 5.15.27
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2022-03-10 01:32:27 +00:00
Khem Raj
8096c3118a linux-raspberrypi_5.15.bb: Update to 5.15.26
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2022-03-06 05:47:38 +00:00
Khem Raj
c25f42074a rpi-gpio: Port to PEP-517 packaging
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2022-03-06 05:47:38 +00:00
Khem Raj
0637a85edd linux-raspberrypi_5.15.bb: Upgrade to 5.15.25
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2022-03-02 13:33:07 +00:00
Khem Raj
36e5cdd8bc python3-adafruit-platformdetect: Fix build with wheel
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2022-03-01 09:26:31 +00:00
Khem Raj
df8670fb5a python3-rtimu: Port to using setuptools and fix build with wheel
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2022-03-01 09:26:31 +00:00
Khem Raj
18345cfb4a python3-adafruit-pureio: Fix build with wheel
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2022-03-01 09:26:31 +00:00
Khem Raj
7474b7951a python3-adafruit-circuitpython-register: Define PIP_INSTALL_PACKAGE
Fixes build with wheel

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2022-03-01 09:26:31 +00:00
Andrei Gherzan
390b3f63cf docs: Update www.raspberrypi.com documentation links
www.raspberrypi.com restructured its documentation. Reflect the new
links in our docs.

Fixes #954

Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
2022-02-25 21:37:49 +00:00
Andrei Gherzan
9340e202d4 sdcard_image-rpi.bbclass: Use processed list of device trees
make_dtb_boot_files already creates the list of device trees with their
right destination. There is no need to redo a similar logic here. As a
matter of fact, the sdimg functionality had a bug because it didn't
treat overlay_map.dtb as an overlays file.

Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
2022-02-25 21:37:49 +00:00
Andrei Gherzan
906cf0ba2a rpi-base.inc: Cleanup redundant imgtyp variable
Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
2022-02-25 21:37:49 +00:00
Andrei Gherzan
1dfa0471ad raspberrypi-firmware.inc: Move to using tarballs from rpi deb repo
This helps to avoid unstable GitHub archives. It also silences the
associated build warning:

WARNING: rpi-bootfiles-20211007-r3 do_unpack: QA Issue: rpi-bootfiles:
SRC_URI uses unstable GitHub/GitLab archives, convert recipe to use git
protocol [src-uri-bad]

Fixes #1002

Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
2022-02-25 21:37:49 +00:00
Andrei Gherzan
559dd4240d linux-raspberrypi: linux-raspberrypi: Bump 5.15 revision
Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
2022-02-25 21:37:49 +00:00
Andrei Gherzan
122baacb82 linux-raspberrypi: linux-raspberrypi: Bump 5.10 to 5.10.95
Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
2022-02-25 21:37:49 +00:00
Andrei Gherzan
e39a0a570c ci: Use the current stable version for the mirror action
Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
2022-02-23 00:40:39 +01:00
Andrei Gherzan
0c5c1c9b76 ci: No need for checkout step in mirror workflow
The git-mirror-me-action handles the cloning of the source.

Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
2022-02-23 00:17:23 +01:00
Andrei Gherzan
45a7fd9c18 ci: Add git mirror workflow
This will resume syncing the Yocto git repository with the GitHub one.

Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
2022-02-22 22:16:51 +01:00
Martin Jansa
2bfbdd633c meta: update license names
* openembedded-core/scripts/contrib/convert-spdx-licenses.py .
  ...
  All files processed with version 0.01

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
2022-02-22 16:21:17 +00:00
Martin Jansa
3a8359693d meta: update variable names
* openembedded-core/scripts/contrib/convert-variable-renames.py .
  ...
  All files processed with version 0.1

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
2022-02-22 16:21:17 +00:00
Khem Raj
0bc1eac5a5 layers: Bump to use kirkstone
its not going to be backward ABI compatible with honister due to variable renaming.

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2022-02-22 14:17:20 +00:00
Khem Raj
157f72b808 rpi-default-versions: Use 5.15 as default kernel
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2022-02-21 00:16:17 +00:00
Khem Raj
50d8dc933e linux-raspberrypi: Add recipe for 5.15 LTS kernel
This is not default branch for linux-raspberrypi as well.

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2022-02-21 00:16:17 +00:00
Martin Jansa
076aa51c59 gstreamer1.0-plugins-bad: remove libmms PACKAGECONFIG and add gpl
* libmms was removed with 1.20.0 upgrade in:
  https://git.openembedded.org/openembedded-core/commit/?id=76433d3628cbad311b428a57b25b4e2701ee513b

* fixes:
  ERROR: gstreamer1.0-plugins-bad-1.20.0-r0 do_configure: QA Issue: gstreamer1.0-plugins-bad: invalid PACKAGECONFIG: libmms [invalid-packageconfig]

* faad now requires gpl to be enabled:
  | ../gst-plugins-bad-1.20.0/ext/faad/meson.build:1:0: ERROR: Feature faad cannot be enabled:
  |   Plugin faad explicitly required via options but GPL-licensed plugins disabled via options.
  |   Pass option -Dgpl=enabled to Meson to allow GPL-licensed plugins to be built.

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
2022-02-20 14:16:25 +00:00
Martin Jansa
e0fc6806ef sdcard_image-rpi: fix DeprecationWarning
* fixes:
classes/sdcard_image-rpi.bbclass:87: DeprecationWarning: invalid escape sequence \S
classes/sdcard_image-rpi.bbclass:88: DeprecationWarning: invalid escape sequence \S
classes/sdcard_image-rpi.bbclass:90: DeprecationWarning: invalid escape sequence \S
classes/sdcard_image-rpi.bbclass:91: DeprecationWarning: invalid escape sequence \S

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
2022-02-20 10:14:31 +00:00
Khem Raj
7a45b41810 python3-adafruit-blinka: Disable on musl
it provides prebuilts which are linked against glibc. so disable it for
musl

Fixes
microcontroller/bcm283x/pulseio/libgpiod_pulsein contained in package python3-adafruit-blinka requires libc.so.6(GLIBC_2.4), but no providers found in RDEPENDS:python3-adafruit-blinka? [file-rdeps]

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2022-02-20 09:20:54 +00:00
Bernhard Guillon
596b92e8d1 rpi-base.inc: enable i2c-gpio overlay
Adds support for software i2c controller on gpio pins

RPI_EXTRA_CONFIG += "\
dtoverlay=i2c-gpio,bus=7,i2c_gpio_sda=6,i2c_gpio_scl=5 \
"
Will configure a /dev/i2c-7 bus with sda=gpio#6 and slc=gpio#5

The overlay documentation can be found here:
https://github.com/raspberrypi/firmware/blob/master/boot/overlays/README

Signed-off-by: Bernhard Guillon <Bernhard.Guillon@begu.org>
2022-02-20 00:00:22 +00:00
Michal Toman
9bd5f90229 rpi-base.inc: Add vc4-fkms-v3d-pi4 overlay
Since RPi kernel commit 9e87248154a633b18b4900ee742d9894b49e019b FKMS overlay
for Pi4 family is split into a separate file. Not shipping the overlay means
FKMS does not load correctly on these devices and VC4 is not brought up.

Signed-off-by: Michal Toman <michal@toman.sk>
2022-02-19 14:19:12 +00:00
Andrei Gherzan
b7b34ecce7 ci: Add workflow to cancel redundant workflows
This is not yet baked into GitHub but can be achived using a public
action.

Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
2022-02-19 09:27:59 +00:00
Andrei Gherzan
218635ea9e ci: Introduce workflow Yocto operations/builds
We include a workflow for checking yocto compliance using the poky
provided script and also a matrix workflow for building the CI supported
build configurations.

Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
2022-02-19 09:27:59 +00:00
Andrei Gherzan
637393827d ci: Introduce workflow for compliance
It includes jobs for checking DCO and reuse. The latter is set to allow
fails as the repository is not yet reuse compliant. When that is done,
we can switch it.

Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
2022-02-19 09:27:59 +00:00
Andrei Gherzan
3786353f51 ci: Define an action for cleaning/removing an image
This is useful when cleaning up after a temporary built docker image.

Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
2022-02-19 09:27:59 +00:00
Andrei Gherzan
2906a95cff ci: Define an action for cleaning dangling image
Cleanup existing dangling docker images on the runner.

Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
2022-02-19 09:27:59 +00:00
Andrei Gherzan
8b1ab71006 ci: Define an action for building a local docker image
It provides support for building a locally defined image. It also
includes a retry logic to handle eventual concurrent cleanups on the
runner.

Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
2022-02-19 09:27:59 +00:00
Andrei Gherzan
2b81733c40 docs: Detail the merging process of patches sent through the mailing list
Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
2022-02-19 09:27:59 +00:00
Andrei Gherzan
9a2c13f822 README.md: Don't advertise meta-oe dependency
The dependencies to the meta-openembedded layers are handled through
dynamic layers so there is no need to advertise this in the
documentation. Especially that the layer configuration doesn't set that
either.

Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
2022-02-19 09:27:59 +00:00
Andrei Gherzan
221e048d54 Move the python3-adafruit recipes depending on meta-oe to dynamic layers
python3-adafruit-blinka depends on libgpiod which is provided by
meta-oe. To avoid this dependency at all times, we move the recipe under
the dynamic structure (along with the ones depending on it).

Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
2022-02-19 09:27:59 +00:00
Andrei Gherzan
b05c2bdf85 README.md: Add contributing section
This also fixes a check in the yocto project compatible script.
https://bugzilla.yoctoproject.org/show_bug.cgi?id=11131

Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
2022-02-19 09:27:59 +00:00
Aníbal Limón
a96a61c16d gstreamer1.0-plugins-good: Update bbappend to 1.20
Gstreamer upgraded to 1.20 see,

https://git.openembedded.org/openembedded-core/commit/?id=75891f361f3e9df9fc3e97c720a2ae57dda75888

Signed-off-by: Aníbal Limón <anibal@rzerosystems.com>
Signed-off-by: Aníbal Limón <limon.anibal@gmail.com>
2022-02-09 21:08:41 +00:00
Khem Raj
e1014d41ef rpi-gpio: Replace setuptool3 instead of distutils3
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2022-01-28 22:32:58 +00:00
Khem Raj
2e83546856 picamera-libs,python3-picamera: Limit visibility to 32 bit rpi machines
These recipes use prebuilt vc libs which are 32bit only libs

They also do not work on musl

https://github.com/agherzan/meta-raspberrypi/pull/983 introduced these
recipes however these are not generic packages that can be used on non-rpi machines
therefore mark them so. It helps in using this SOC layer with other SOC
layers in a distro

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2022-01-28 22:32:58 +00:00
bhargavthriler
bfac0b9ccb python3-picamera: Add picamera library
python3-picamera : recipe for python picamera library.
picamera-libs    : recipe raspberry pi firmware which are required
by picamera.

Closes: #959
Signed-off-by: Bhargav Das <bhargavthriler@gmail.com>
2022-01-25 16:25:49 +00:00
Paul Barker
42ef0f5046 raspberrypi4-64: Switch to cortexa72 tune
After commits ca50267ab568 & 03cebdd7ef92 in openembedded-core, the
`cortexa72-crc` tune is no longer available and the `cortexa72` tune
includes the crc extension by default. Update the raspberrypi4-64
machine config to handle these changes.

Signed-off-by: Paul Barker <paul.barker@sancloud.com>
2022-01-21 11:45:23 +00:00
Mingli Yu
6eebb58ef6 xserver-xorg: remove xshmfence configure option
After the commit [1] introduced in openembedded-core layer,
some configure options is't carried over include xshmfence
option, so remove the xshmfence configure option to silence
the below warning.
  WARNING: xserver-xorg-2_21.1.1-r0 do_configure: QA Issue: xserver-xorg: invalid PACKAGECONFIG: xshmfence [invalid-packageconfig]

[1] https://git.openembedded.org/openembedded-core/commit/?id=e05abd87ee5d23750c641d0129d9c83db68ee2e8

Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
2022-01-04 13:09:16 +01:00
Otto Esko
2e3ed68f9d Add documentation for gpio-shutdown
Signed-off-by: Otto Esko <otto.esko@gmail.com>
2022-01-04 11:39:18 +00:00
Otto Esko
bf2d2eae4e recipes-bsp: Add support for gpio-shutdown
- Feature is enabled with ENABLE_GPIO_SHUTDOWN variable
- Include the gpio-shutdown overlay
- If using SysV init include the additional keymap and inittab entries
  to bind the KEY_POWER event
- Systemd init does not require any additional bindings

Signed-off-by: Otto Esko <otto.esko@gmail.com>
2022-01-04 11:39:18 +00:00
Mauro Anjo
58cc662539 machine: add Pi Zero 2 W 32bits
Added new machine configuration for Raspberry Pi Zero 2 W in 32bit mode.

Signed-off-by: Mauro Anjo <maurosanjo@gmail.com>
2021-12-26 23:35:46 +00:00
Khem Raj
cd234925fa raspberrypi4-64: Switch to using cortexa72-crc default tune
rpi4 SOC does not have AES Crypto in H/W

Fixes Issue #964

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2021-12-10 08:36:10 +00:00
Devendra Tewari
ce12544b86 linux-raspberrypi: Upgrade to 5.10.83
Fixes #957

Signed-off-by: Devendra Tewari <devendra.tewari@gmail.com>
2021-12-08 10:02:16 +00:00
Joel Winarske
836755370f mesa: Enable building vulkan driver
Support to enable building Mesa Broadcom v3d Vulkan Driver

Upstream support Merged in master 2021-11-07
http://git.yoctoproject.org/cgit/cgit.cgi/poky/commit/?id=ddcaf3596227a32628b436f4130f4c0b1541a4be

Signed-off-by: Joel Winarske <joel.winarske@gmail.com>
2021-12-03 21:33:06 +00:00
Khem Raj
de1007b690 weston-init: Add --continue-without-input option to weston
launching with --continue-without-input helps starting weston
without keyboard/mouse

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2021-11-29 18:37:10 +00:00
Khem Raj
63a3d8cb17 linux-raspberrypi: Upgrade to 5.10.81
Also fixes
https://github.com/agherzan/meta-raspberrypi/issues/957

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2021-11-23 11:32:35 +00:00
Khem Raj
4a827bfff2 parselogs: Update the error regexps to 5.10 kernel
The old messages are no longer necessary

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2021-11-23 11:32:35 +00:00
Peter A. Bigot
54213e7127 conf/machine: add variant Wi-Fi/BT drivers for CM4 and Pi 400
These boards use a slightly different chip which requires additional
firmware to be present.

Signed-off-by: Peter A. Bigot <pab@pabigot.com>
2021-11-19 14:22:40 +00:00
Khem Raj
4c76dab6f0 linux-firmware-rpidistro: Use bullseye branch
Switch to using bullseye release 20210315-3+rpt3
License is pointed in different location in new repo structure WHENCE
file is gone too.

Fixes
https://github.com/YoeDistro/yoe-distro/issues/617

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2021-11-18 09:17:24 +00:00
Martin Jansa
7413c72dd5 rpi-config: don't trigger bbfatal for empty ENABLE_UART
Fixes https://github.com/agherzan/meta-raspberrypi/pull/941 not to
show fatal error for default configuration with ENABLE_UART being empty.

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
2021-11-17 11:08:55 +00:00
Cameron Kellough
c0dd1c9129 rpi-base.inc: Added gpio-poweroff overlay.
Some machines need to have the kernel toggle a gpio when an external
power source needs to shut off power to complete a shutdown and de-energize
the processor.  gpio-poweroff provides this functionality but was omitted
from the kernel overlays brought oveer by the rpi-layer from the kernel.
Signed-off-by: Cameron Kellough <cameron@telemetrak.com>
2021-11-14 15:40:25 +00:00
Andrei Gherzan
b1570cff21 rpi-config: Take into consideration ENABLE_UART value of 0
Also, validate if the value of it is not 0 or 1.

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

Signed-off-by: Andrei Gherzan <andrei@gherzan.com>
2021-11-14 15:39:42 +00:00
Andrei Gherzan
690b4a5e98 libwpe: Migrate build workaround from oe-core
This was removed from oe-core[1] so we pull in the change here where it
should have been in the first place.

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

[1] https://lists.openembedded.org/g/openembedded-core/topic/84653556

Signed-off-by: Andrei Gherzan <andrei@gherzan.com>
2021-11-14 15:39:24 +00:00
Andrei Gherzan
fed7688925 README.md: Fix the matrix chat link
matrix.org doesn't allow guest logins which is required by the shield.
Use a custom one to avoid a confusing badge warning.

Signed-off-by: Andrei Gherzan <andrei@gherzan.com>
2021-11-14 02:14:11 +00:00
Andrei Gherzan
da03175b91 Update references to Yocto mailing list
The mailing list infrastructure at Yocto project changed (for a good
while now) but we still reference the old address/links. Update them
accordingly.

Signed-off-by: Andrei Gherzan <andrei@gherzan.com>
2021-11-14 01:13:35 +00:00
Andrei Gherzan
cecf45083a docs: Advertise raspberrypi0-2w-64 supported machine
Signed-off-by: Andrei Gherzan <andrei@gherzan.com>
2021-11-14 01:04:00 +00:00
Andrei Gherzan
e1411c7520 docs: Add module dependency/requirement for RtD
myst_parser is not in the default Read The Docs container by default.
Pull it in as we use it for parsing the markdown files.

Signed-off-by: Andrei Gherzan <andrei@gherzan.com>
2021-11-14 01:03:59 +00:00
Andrei Gherzan
dc2c0b8197 docs: Fix RtD build
Markdown parser has changed[1].

[1] https://docs.readthedocs.io/en/stable/intro/getting-started-with-sphinx.html#using-markdown-with-sphinx

Signed-off-by: Andrei Gherzan <andrei@gherzan.com>
2021-11-14 00:32:53 +00:00
Andrei Gherzan
0737be26d2 README.md: Fix sponsor table take two
Signed-off-by: Andrei Gherzan <andrei@gherzan.com>
2021-11-14 00:27:03 +00:00
Andrei Gherzan
705faf1a74 README.md: Fix sponsor table
Signed-off-by: Andrei Gherzan <andrei@gherzan.com>
2021-11-14 00:25:17 +00:00
Andrei Gherzan
361df89060 docs: Bump copyright year
Signed-off-by: Andrei Gherzan <andrei@gherzan.com>
2021-11-14 00:19:58 +00:00
Andrei Gherzan
0892e309d3 README.md: Fix docs and minor tweaks
* Remove CI badges - I plan to move to github CI soon and they are broken
* anyway. So I might as well look into them when I migrate the CI.
* Update maintainer email.
* Drop temporary the sponsor logo - it breaks documentation builds in
  Read The Docs. I'll check it out when I revamp the docs.
* Update the matrix channel.

Signed-off-by: Andrei Gherzan <andrei@gherzan.com>
2021-11-14 00:19:25 +00:00
Alexandru Costache
0d0879dc37 linux-raspberrypi: Bump to 5.10.78
To include Pi Zero 2W device-tree changes
for brcmfmac firmware.

Signed-off-by: Alexandru Costache <alexandru@balena.io>
2021-11-13 23:30:28 +00:00
Alexandru Costache
edf90ee729 linux-firmware-rpidistro: Package bcm43436 and bcm43436s firmware
Signed-off-by: Alexandru Costache <alexandru@balena.io>
2021-11-13 23:30:28 +00:00
Alexandru Costache
f0a5f4944e conf/machine: Add Pi Zero 2 Wifi 64bit yocto machine
This inherits Pi3 64bit configuration

Signed-off-by: Alexandru Costache <alexandru@balena.io>
2021-11-13 23:30:28 +00:00
Marcel Hamer
e31fba4c96 recipes: Update SRC_URI protocols for github
Use protocols=https for GitHub SRC_URIs using the conversion script in
openembedded-core.

Signed-off-by: Marcel Hamer <marcel@solidxs.se>
2021-11-07 21:30:23 +00:00
Andrei Gherzan
316b017c53 linux-raspberrypi: Drop 5.4
The currently preferred version, 5.10 is the upstream stable, and an LTS
version so I don't see why anybody would want to go with 5.4 anymore.
Also, these two versions now diverged in terms of what device tree
overlays they provide making it more complicated to maintain. Until
there is a good reason to maintain that support, I propose to drop this
version.

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

Signed-off-by: Andrei Gherzan <andrei@gherzan.com>
2021-11-03 12:32:14 +00:00
Andrei Gherzan
7968de3b78 linux-raspberrypi: Bump 5.10 to 5.10.76
Signed-off-by: Andrei Gherzan <andrei@gherzan.com>
2021-10-30 21:27:43 +01:00
Andrei Gherzan
4a1340691e raspberrypi-firmware: Bump to 20211007
Signed-off-by: Andrei Gherzan <andrei@gherzan.com>
2021-10-30 21:27:43 +01:00
Zygmunt Krynicki
90b3ac6fb3 rpi-config: warn on config.txt lines exceeding 80 bytes
The Raspberry Pi firmware does not support lines exceeding 80 bytes.
This is documented at https://www.raspberrypi.com/documentation/computers/config_txt.html#file-format

It seems that comments can be longer but it's still best to avoid this
problem instead of debug it. Detect the situation in do_deploy_append
and bbwarn if the limit is exceeded.

Connected to #917

Signed-off-by: Zygmunt Krynicki <me@zygoon.pl>
2021-10-14 23:09:47 +01:00
Andrew Penner
9eb4879cf4 rpi-cmdline: Support ethernet over USB
Support ethernet over USB via config.txt and cmdline.txt

Signed-off-by: Andrew Penner <andrew.penner@protonmail.com>
2021-09-24 17:34:23 +01:00
Khem Raj
5f72ec0aa4 raspberrypi-firmware: Update to latest
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2021-09-17 11:36:53 +01:00
Khem Raj
937ca693a9 linux-raspberrypi: Update to 5.10.63
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2021-09-17 11:36:53 +01:00
Khem Raj
a6fa6b3aec raspberrypi4: Use full kms (vc4-kms-v3d) DT overlay
With latest 5.10 kernel fkms version fails to bring up VC4 and we do not
get dri device initialized ( /dev/dri ) is empty, which means we can not
launch wayland componsitors.

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2021-08-25 12:56:18 +01:00
Khem Raj
b488b4a194 raspberrypi-firmware: Update to latest
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2021-08-25 12:56:18 +01:00
Khem Raj
435720fffa linux-raspberrypi: Update to 5.10.59
Update metadata branch to latest 5.10 as well

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2021-08-25 12:56:18 +01:00
Khem Raj
d4ab9ca93c machines: Use tune files from new location in oe-core
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2021-08-20 11:22:56 +03:00
Marcus Comstedt
596907b3ba pi-bluetooth: Add compatibility with non-systemd builds
Signed-off-by: Marcus Comstedt <marcus@mc.pp.se>
2021-08-19 11:03:16 +03:00
Tom Rini
fcd7b67d9c xserver-xf86-config: Correctly append to FILES:${PN}
When updating FILES:${PN} based on an override you must use
FILES:${PN}:append:OVERRIDE as the syntax otherwise you will end up
replacing the contents of FILES:${PN} entirely.  Update to use this
syntax correctly and then only add "${sysconfdir}/X11/xorg.conf.d/*"

Reported-by: Quentin Schulz <quentin.schulz@theobroma-systems.com>
Signed-off-by: Tom Rini <trini@konsulko.com>
2021-08-19 11:01:49 +03:00
Omer Akram
32921fc9bd linux-firmware-rpidistro: fix wifi driver loading on cm4
Signed-off-by: Omer Akram <omer@thing.com>
2021-08-12 12:51:19 +03:00
Otavio Salvador
fc5d68f135 rpi-config: Allow setting hdmi_cvt
Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
2021-08-11 13:48:49 +03:00
Khem Raj
c7f4c739a3 sdcard_image-rpi.bbclass: Fix IMAGE_TYPEDEP override to use new syntax
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2021-08-09 15:28:18 +03:00
Martin Jansa
86015f0957 userland: package man pages in PN-doc
* last userland upgrade in:
  2a25b7ef8b
  brings this upstream commit:
  45a0022ac6

  which results in:
  ERROR: userland-20210623-r0 do_package: QA Issue: userland: Files/directories were installed but not shipped in any package:
    /usr/man
    /usr/man/man1
    /usr/man/man7
    /usr/man/man1/raspistill.1
    /usr/man/man1/raspividyuv.1
    /usr/man/man1/dtparam.1
    /usr/man/man1/raspivid.1
    /usr/man/man1/tvservice.1
    /usr/man/man1/vcmailbox.1
    /usr/man/man1/raspiyuv.1
    /usr/man/man1/dtoverlay.1
    /usr/man/man1/vcgencmd.1
    /usr/man/man1/dtmerge.1
    /usr/man/man7/raspicam.7
    /usr/man/man7/raspirev.7
    /usr/man/man7/raspiotp.7
    /usr/man/man7/vcmailbox.7
  Please set FILES such that these items are packaged. Alternatively if they are unneeded, avoid installing them or delete them within do_install.
  userland: 17 installed and not shipped files. [installed-vs-shipped]

  it's incorrectly installed in /usr/man by CMake as discussed in upstream
  move it to /usr/share/man where it's picked by default FILES:${PN}-doc

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
2021-08-09 15:25:46 +03:00
Pierre-Jean Texier
0df167c61f kas: local.conf: disable prelink
Keep configuration synchronized with OE-Core, see [1].

[1] - http://git.openembedded.org/openembedded-core/commit/?id=f9719cc1c3fe9d380336e7af418daf27473b2e8b

Signed-off-by: Pierre-Jean Texier <texier.pj2@gmail.com>
2021-08-09 15:23:22 +03:00
Khem Raj
3abe06359a raspberrypi-tools: Update to latest
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2021-08-06 00:35:47 +03:00
Khem Raj
72ab8dfb17 raspberrypi-firmware: Update to latest
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2021-08-06 00:35:47 +03:00
Khem Raj
2a25b7ef8b userland: Update to latest master branch
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2021-08-06 00:35:47 +03:00
Khem Raj
dea02a4b64 linux-raspberrypi: Upgrade to 5.10.52
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2021-08-06 00:35:47 +03:00
Pierre-Jean Texier
7fb784a402 kas: local.conf: bump CONF_VERSION variable
Since commit 5452f1ba337685cf89d3429e08255450ab90b96f ("local.conf.sample: Bump version so users update their config") in OE-Core,
we need to update the default local.conf due to the new syntax.

Fixes:

ERROR: Error executing a python function in exec_python_func() autogenerated:

The stack trace of python calls that resulted in this exception/failure was:
File: 'exec_python_func() autogenerated', lineno: 2, function: <module>
     0001:
 *** 0002:oecore_update_localconf(d)
     0003:
File: '/work/poky/meta/classes/sanity.bbclass', lineno: 56, function: oecore_update_localconf
     0052:
     0053:is a good way to visualise the changes."""
     0054:    failmsg = d.expand(failmsg)
     0055:
 *** 0056:    raise NotImplementedError(failmsg)
     0057:}
     0058:
     0059:SANITY_SITECONF_SAMPLE ?= "${COREBASE}/meta*/conf/site.conf.sample"
     0060:python oecore_update_siteconf() {
Exception: NotImplementedError: Your version of local.conf was generated from an older/newer version of
local.conf.sample and there have been updates made to this file. Please compare the two
files and merge any changes before continuing.

Matching the version numbers will remove this message.

"meld conf/local.conf /work/poky/meta*/conf/local.conf.sample"

is a good way to visualise the changes.

Signed-off-by: Pierre-Jean Texier <texier.pj2@gmail.com>
2021-08-04 21:36:05 +03:00
Martin Jansa
5689280cd8 layer.conf: Update to honister
This marks the layers as compatible with honister now they use the new override
syntax.

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
2021-08-04 12:30:12 +03:00
Martin Jansa
3f703e1b1d Manually fix conversion
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
2021-08-04 12:30:12 +03:00
Martin Jansa
9ea7aa2cd2 Convert to new override syntax
This is the result of automated script conversion:

oe-core/scripts/contrib/convert-overrides.py .

converting the metadata to use ":" as the override character instead of "_".

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
2021-08-04 12:30:12 +03:00
Andrei Gherzan
8dc3a31088 rpi-cmdline: Make rootfstype easier to customize
Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
2021-07-22 11:24:33 +03:00
Martin Jansa
a18a760d1e python3-adafruit-*: fix branch parameter
* master branch was renamed to main

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
2021-07-15 11:19:33 +03:00
Omer Akram
0e48785e15 Update raspberrypi firmware to 20210527
Signed-off-by: Omer Akram <omer@thing.com>
2021-07-09 11:26:39 +03:00
Paul Barker
17b56ab075 rpi-cmdline: Package is machine-specific
The cmdline.txt file generated by this recipe includes machine-specific
information so we should set PACKAGE_ARCH appropriately.

Signed-off-by: Paul Barker <paul@pbarker.dev>
2021-06-18 00:17:18 +01:00
Devendra Tewari
246555aea7 Add WM8960 soundcard support
Signed-off-by: Devendra Tewari <devendra.tewari@gmail.com>
2021-06-10 21:22:24 +01:00
Andreas Müller
7057d5dcbf pi-bluetooth: upgrade 0.1.12 -> 0.1.17
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
2021-06-08 14:05:13 +01:00
Pierre-Jean Texier
66d20862de kas: remove 'image-mklibs' from USER_CLASSES list
mklibs is no longer supported, see [1]

[1] - http://git.openembedded.org/openembedded-core/commit/meta/classes?id=908df863b419d1cad7317153101fc827e7e3a354

Signed-off-by: Pierre-Jean Texier <texier.pj2@gmail.com>
2021-06-07 12:59:23 +01:00
Martin Jansa
ffc402ef5e linux-raspberrypi-dev: use static SRCREV when not selected with PREFERRED_PROVIDER_virtual/kernel
* the anonymous python function was supposed to prevent AUTOREV
  being parsed when not selected, but that doesn't work, use
  the same trick with static SRCREV as linux-yocto-dev is using:
  https://git.openembedded.org/openembedded-core/commit/?id=5e8cf6e568ab90365894478a272b5c28dc941031

* Use LINUX_RPI_KMETA_BRANCH yocto-5.10 instead of master, because that's
  where static SRCREV_meta is contained.

* fixes "git ls-remote git://git.yoctoproject.org/yocto-kernel-cache"
  being called to resolve AUTOREV in SRCPV even when PREFERRED_PROVIDER_virtual/kernel
  is set to linux-raspberrypi not linux-raspberrypi-dev.

* I've noticed this in a build which was stuck in parsing for 15 minutes before
  the connection timeout:

Loaded 0 entries from dependency cache.
Parsing recipes...ERROR: ExpansionError during parsing /jenkins/home/workspace/jansa/webos-foxy-honister/webos-foxy-honister/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi-dev.bb
Traceback (most recent call last):
  File "/jenkins/home/workspace/jansa/webos-foxy-honister/webos-foxy-honister/bitbake/lib/bb/fetch2/__init__.py", line 1172, in srcrev_internal_helper(ud=<bb.fetch2.FetchData object at 0x7f8422a6ef60>, d=<bb.data_smart.DataSmart object at 0x7f8422b25a20>, name='meta'):
         if srcrev == "AUTOINC":
    >        srcrev = ud.method.latest_revision(ud, d, name)

  File "/jenkins/home/workspace/jansa/webos-foxy-honister/webos-foxy-honister/bitbake/lib/bb/fetch2/__init__.py", line 1581, in Git.latest_revision(ud=<bb.fetch2.FetchData object at 0x7f8422a6ef60>, d=<bb.data_smart.DataSmart object at 0x7f8422b25a20>, name='meta'):
             except KeyError:
    >            revs[key] = rev = self._latest_revision(ud, d, name)
                 return rev
  File "/jenkins/home/workspace/jansa/webos-foxy-honister/webos-foxy-honister/bitbake/lib/bb/fetch2/git.py", line 694, in Git._latest_revision(ud=<bb.fetch2.FetchData object at 0x7f8422a6ef60>, d=<bb.data_smart.DataSmart object at 0x7f8422b25a20>, name='meta'):
             """
    >        output = self._lsremote(ud, d, "")
             # Tags of the form ^{} may not work, need to fallback to other form
  File "/jenkins/home/workspace/jansa/webos-foxy-honister/webos-foxy-honister/bitbake/lib/bb/fetch2/git.py", line 683, in Git._lsremote(ud=<bb.fetch2.FetchData object at 0x7f8422a6ef60>, d=<bb.data_smart.DataSmart object at 0x7f8422b25a20>, search=''):
                     bb.fetch2.check_network_access(d, cmd, repourl)
    >            output = runfetchcmd(cmd, d, True)
                 if not output:
  File "/jenkins/home/workspace/jansa/webos-foxy-honister/webos-foxy-honister/bitbake/lib/bb/fetch2/__init__.py", line 889, in runfetchcmd(cmd='export PSEUDO_DISABLED=1; export PATH="/jenkins/home/workspace/jansa/webos-foxy-honister/webos-foxy-honister/meta-webosose/meta-webos/scripts:/jenkins/home/workspace/jansa/webos-foxy-honister/webos-foxy-honister/openembedded-core/scripts:/jenkins/home/workspace/jansa/webos-foxy-honister/webos-foxy-honister/tmp-glibc/work/raspberrypi4-webos-linux-gnueabi/linux-raspberrypi-dev/1_fetcheravoidrecurse-fetcheravoidrecurse/recipe-sysroot-native/usr/bin/arm-webos-linux-gnueabi:/jenkins/home/workspace/jansa/webos-foxy-honister/webos-foxy-honister/tmp-glibc/work/raspberrypi4-webos-linux-gnueabi/linux-raspberrypi-dev/1_fetcheravoidrecurse-fetcheravoidrecurse/recipe-sysroot/usr/bin/crossscripts:/jenkins/home/workspace/jansa/webos-foxy-honister/webos-foxy-honister/tmp-glibc/work/raspberrypi4-webos-linux-gnueabi/linux-raspberrypi-dev/1_fetcheravoidrecurse-fetcheravoidrecurse/recipe-sysroot-native/usr/sbin:/jenkins/home/workspace/jansa/webos-foxy-honister/webos-foxy-honister/tmp-glibc/work/raspberrypi4-webos-linux-gnueabi/linux-raspberrypi-dev/1_fetcheravoidrecurse-fetcheravoidrecurse/recipe-sysroot-native/usr/bin:/jenkins/home/workspace/jansa/webos-foxy-honister/webos-foxy-honister/tmp-glibc/work/raspberrypi4-webos-linux-gnueabi/linux-raspberrypi-dev/1_fetcheravoidrecurse-fetcheravoidrecurse/recipe-sysroot-native/sbin:/jenkins/home/workspace/jansa/webos-foxy-honister/webos-foxy-honister/tmp-glibc/work/raspberrypi4-webos-linux-gnueabi/linux-raspberrypi-dev/1_fetcheravoidrecurse-fetcheravoidrecurse/recipe-sysroot-native/bin:/jenkins/home/workspace/jansa/webos-foxy-honister/webos-foxy-honister/bitbake/bin:/jenkins/home/workspace/jansa/webos-foxy-honister/webos-foxy-honister/tmp-glibc/hosttools"; export HOME="/home/jenkins"; git -c core.fsyncobjectfiles=0 ls-remote git://git.yoctoproject.org/yocto-kernel-cache ', d=<bb.data_smart.DataSmart object at 0x7f8422b58e80>, quiet=True, cleanup=[], log=None, workdir=None):

    >        raise FetchError(error_message)

bb.data_smart.ExpansionError: Failure expanding variable SRCPV, expression was ${@bb.fetch2.get_srcrev(d)} which triggered exception FetchError: Fetcher failure: Fetch command export PSEUDO_DISABLED=1; export PATH="/jenkins/home/workspace/jansa/webos-foxy-honister/webos-foxy-honister/meta-webosose/meta-webos/scripts:/jenkins/home/workspace/jansa/webos-foxy-honister/webos-foxy-honister/openembedded-core/scripts:/jenkins/home/workspace/jansa/webos-foxy-honister/webos-foxy-honister/tmp-glibc/work/raspberrypi4-webos-linux-gnueabi/linux-raspberrypi-dev/1_fetcheravoidrecurse-fetcheravoidrecurse/recipe-sysroot-native/usr/bin/arm-webos-linux-gnueabi:/jenkins/home/workspace/jansa/webos-foxy-honister/webos-foxy-honister/tmp-glibc/work/raspberrypi4-webos-linux-gnueabi/linux-raspberrypi-dev/1_fetcheravoidrecurse-fetcheravoidrecurse/recipe-sysroot/usr/bin/crossscripts:/jenkins/home/workspace/jansa/webos-foxy-honister/webos-foxy-honister/tmp-glibc/work/raspberrypi4-webos-linux-gnueabi/linux-raspberrypi-dev/1_fetcheravoidrecurse-fetcheravoidrecurse/recipe-sysroot-native/usr/sbin:/jenkins/home/workspace/jansa/webos-foxy-honister/webos-foxy-honister/tmp-glibc/work/raspberrypi4-webos-linux-gnueabi/linux-raspberrypi-dev/1_fetcheravoidrecurse-fetcheravoidrecurse/recipe-sysroot-native/usr/bin:/jenkins/home/workspace/jansa/webos-foxy-honister/webos-foxy-honister/tmp-glibc/work/raspberrypi4-webos-linux-gnueabi/linux-raspberrypi-dev/1_fetcheravoidrecurse-fetcheravoidrecurse/recipe-sysroot-native/sbin:/jenkins/home/workspace/jansa/webos-foxy-honister/webos-foxy-honister/tmp-glibc/work/raspberrypi4-webos-linux-gnueabi/linux-raspberrypi-dev/1_fetcheravoidrecurse-fetcheravoidrecurse/recipe-sysroot-native/bin:/jenkins/home/workspace/jansa/webos-foxy-honister/webos-foxy-honister/bitbake/bin:/jenkins/home/workspace/jansa/webos-foxy-honister/webos-foxy-honister/tmp-glibc/hosttools"; export HOME="/home/jenkins"; git -c core.fsyncobjectfiles=0 ls-remote git://git.yoctoproject.org/yocto-kernel-cache  failed with exit code 128, output:
fatal: read error: Connection timed out

* it's easily reproducible locally by adding git.yoctoproject.org to /etc/hosts (e.g. in this case 127.0.1.1),
  then it refuses the connection immediately instead of getting stuck waiting for timeout:

oe-core$ bitbake -k linux-raspberrypi
Loading cache: 100% |                                                                                                                                                                                                                                                                 | ETA:  --:--:--
Loaded 0 entries from dependency cache.
ERROR: ExpansionError during parsing /OE/build/oe-core/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi-dev.bb                                                                                                                                                                  | ETA:  0:00:14
Traceback (most recent call last):
  File "/OE/bitbake/lib/bb/fetch2/__init__.py", line 1172, in srcrev_internal_helper(ud=<bb.fetch2.FetchData object at 0x7ff35e059430>, d=<bb.data_smart.DataSmart object at 0x7ff35dfd7760>, name='meta'):
         if srcrev == "AUTOINC":
    >        srcrev = ud.method.latest_revision(ud, d, name)

  File "/OE/bitbake/lib/bb/fetch2/__init__.py", line 1581, in Git.latest_revision(ud=<bb.fetch2.FetchData object at 0x7ff35e059430>, d=<bb.data_smart.DataSmart object at 0x7ff35dfd7760>, name='meta'):
             except KeyError:
    >            revs[key] = rev = self._latest_revision(ud, d, name)
                 return rev
  File "/OE/bitbake/lib/bb/fetch2/git.py", line 694, in Git._latest_revision(ud=<bb.fetch2.FetchData object at 0x7ff35e059430>, d=<bb.data_smart.DataSmart object at 0x7ff35dfd7760>, name='meta'):
             """
    >        output = self._lsremote(ud, d, "")
             # Tags of the form ^{} may not work, need to fallback to other form
  File "/OE/bitbake/lib/bb/fetch2/git.py", line 683, in Git._lsremote(ud=<bb.fetch2.FetchData object at 0x7ff35e059430>, d=<bb.data_smart.DataSmart object at 0x7ff35dfd7760>, search=''):
                     bb.fetch2.check_network_access(d, cmd, repourl)
    >            output = runfetchcmd(cmd, d, True)
                 if not output:
  File "/OE/bitbake/lib/bb/fetch2/__init__.py", line 889, in runfetchcmd(cmd='export PSEUDO_DISABLED=1; export DBUS_SESSION_BUS_ADDRESS="unix:path=/run/user/1000/bus"; export SSH_AUTH_SOCK="/run/user/1000/keyring/ssh"; export PATH="/OE/build/oe-core/openembedded-core/scripts:/OE/build/oe-core/tmp-glibc/work/raspberrypi4-oe-linux-gnueabi/linux-raspberrypi-dev/1_fetcheravoidrecurse-fetcheravoidrecurse/recipe-sysroot-native/usr/bin/arm-oe-linux-gnueabi:/OE/build/oe-core/tmp-glibc/work/raspberrypi4-oe-linux-gnueabi/linux-raspberrypi-dev/1_fetcheravoidrecurse-fetcheravoidrecurse/recipe-sysroot/usr/bin/crossscripts:/OE/build/oe-core/tmp-glibc/work/raspberrypi4-oe-linux-gnueabi/linux-raspberrypi-dev/1_fetcheravoidrecurse-fetcheravoidrecurse/recipe-sysroot-native/usr/sbin:/OE/build/oe-core/tmp-glibc/work/raspberrypi4-oe-linux-gnueabi/linux-raspberrypi-dev/1_fetcheravoidrecurse-fetcheravoidrecurse/recipe-sysroot-native/usr/bin:/OE/build/oe-core/tmp-glibc/work/raspberrypi4-oe-linux-gnueabi/linux-raspberrypi-dev/1_fetcheravoidrecurse-fetcheravoidrecurse/recipe-sysroot-native/sbin:/OE/build/oe-core/tmp-glibc/work/raspberrypi4-oe-linux-gnueabi/linux-raspberrypi-dev/1_fetcheravoidrecurse-fetcheravoidrecurse/recipe-sysroot-native/bin:/OE/build/oe-core/bitbake/bin:/OE/build/oe-core/tmp-glibc/hosttools"; export HOME="/home/martin"; git -c core.fsyncobjectfiles=0 ls-remote git://git.yoctoproject.org/yocto-kernel-cache ', d=<bb.data_smart.DataSmart object at 0x7ff35dfb4fa0>, quiet=True, cleanup=[], log=None, workdir=None):

    >        raise FetchError(error_message)

bb.data_smart.ExpansionError: Failure expanding variable SRCPV, expression was ${@bb.fetch2.get_srcrev(d)} which triggered exception FetchError: Fetcher failure: Fetch command export PSEUDO_DISABLED=1; export DBUS_SESSION_BUS_ADDRESS="unix:path=/run/user/1000/bus"; export SSH_AUTH_SOCK="/run/user/1000/keyring/ssh"; export PATH="/OE/build/oe-core/openembedded-core/scripts:/OE/build/oe-core/tmp-glibc/work/raspberrypi4-oe-linux-gnueabi/linux-raspberrypi-dev/1_fetcheravoidrecurse-fetcheravoidrecurse/recipe-sysroot-native/usr/bin/arm-oe-linux-gnueabi:/OE/build/oe-core/tmp-glibc/work/raspberrypi4-oe-linux-gnueabi/linux-raspberrypi-dev/1_fetcheravoidrecurse-fetcheravoidrecurse/recipe-sysroot/usr/bin/crossscripts:/OE/build/oe-core/tmp-glibc/work/raspberrypi4-oe-linux-gnueabi/linux-raspberrypi-dev/1_fetcheravoidrecurse-fetcheravoidrecurse/recipe-sysroot-native/usr/sbin:/OE/build/oe-core/tmp-glibc/work/raspberrypi4-oe-linux-gnueabi/linux-raspberrypi-dev/1_fetcheravoidrecurse-fetcheravoidrecurse/recipe-sysroot-native/usr/bin:/OE/build/oe-core/tmp-glibc/work/raspberrypi4-oe-linux-gnueabi/linux-raspberrypi-dev/1_fetcheravoidrecurse-fetcheravoidrecurse/recipe-sysroot-native/sbin:/OE/build/oe-core/tmp-glibc/work/raspberrypi4-oe-linux-gnueabi/linux-raspberrypi-dev/1_fetcheravoidrecurse-fetcheravoidrecurse/recipe-sysroot-native/bin:/OE/build/oe-core/bitbake/bin:/OE/build/oe-core/tmp-glibc/hosttools"; export HOME="/home/martin"; git -c core.fsyncobjectfiles=0 ls-remote git://git.yoctoproject.org/yocto-kernel-cache  failed with exit code 128, output:
fatal: unable to connect to git.yoctoproject.org:
git.yoctoproject.org[0: 127.0.1.1]: errno=Connection refused

Summary: There was 1 ERROR message shown, returning a non-zero exit code.

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
2021-05-28 13:19:39 +01:00
Martin Jansa
8ddcacc687 linux-raspberrypi-dev: drop protocol=git and add LINUX_RPI_KMETA_BRANCH
* update SRC_URI format to use the same as linux-raspberrypi_5.10.bb
  and linux-raspberrypi_5.4.bb by dropping protocol=git and using
  LINUX_RPI_KMETA_BRANCH

* protocol=git was dropped from other linux-raspberrypi recipes in:

  commit 0381ac4d08
  Author: Timm Eversmeyer <saeugetier@googlemail.com>
  Date:   Wed Sep 11 07:08:50 2019 +0200

    raspberrypi-linux: removed protocoll setting from SRC_URI

    Default protocoll for git will be used. Default setting is in the most case https.

    Signed-off-by: Timm Eversmeyer saeugetier@gmail.com

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
2021-05-28 13:19:39 +01:00
Martin Jansa
20abebb324 linux-raspberrypi: allow to change the yocto-kernel-cache branch with LINUX_RPI_KMETA_BRANCH
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
2021-05-28 13:19:39 +01:00
Andrei Gherzan
faf3f33e84 layer.conf: Define LAYERDEPENDS
We should currently only depend on core - everything should be handled
through dynamic layers.

Signed-off-by: Andrei Gherzan <andrei@gherzan.com>
2021-05-26 10:00:04 +01:00
sss22213
11209a4981 recipes-bsp: Add support for Raspberry Pi HD quality camera
Signed-off-by: Bohung-Nian <n0404.n0404@gmail.com>
2021-05-19 20:00:02 +01:00
matt-hammond-bbc
b601818301 libva: Fix for when using userland
https://github.com/agherzan/meta-raspberrypi/issues/842

Fixes failing build of libva when using `userland` recipe.
Same as: ac16b0e9d7

Signed-off-by: Matt Hammond <matt.hammond@bbc.co.uk>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2021-05-18 14:58:43 +01:00
SCVready
e4ab480630 rpi-config: comment updated
Updated the comment that indicates there is a possible file limitation
in config.txt affecting certain variables, at least the "start_x" var.

This issue was originally discussed and fixed in:
https://github.com/agherzan/meta-raspberrypi/pull/678
and this commit updates the comment added with the new info gathered from:
https://www.raspberrypi.org/forums/viewtopic.php?f=66&t=298129
and from a similar issue:
https://github.com/raspberrypi/firmware/issues/1012

Signed-off-by: SCVready <alejandro.solozabal@outlook.com>
2021-05-18 14:58:15 +01:00
Changqing Li
fb253346c2 99-com.rules: fix error invalid substitution type
fix below error:
/etc/udev/rules.d/99-com.rules:10 Invalid value "/bin/sh -c
'ALIASES=/proc/device-tree/aliases; if cmp -s $ALIASES/uart0
$ALIASES/serial0; then echo 0;elif cmp -s $ALIASES/uart0
$ALIASES/serial1; then echo 1; else exit 1; fi'" for PROGRAM (char 58:
invalid substitution type)

Signed-off-by: Changqing Li <changqing.li@windriver.com>
2021-05-16 01:45:23 +01:00
Khem Raj
4302d3a509 bluez-firmware-rpidistro: Update to 1.2-4+rpt8
Package new firmwares for cm43430b0 and bcm4345c5
License-update: Updates about new firmware added [1]

[1] 83921f41fe (diff-93467241211d3f9d253fb8ad341738fbda5e5d3ade4721326f2bba82525fbaee)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2021-05-16 01:43:18 +01:00
Khem Raj
73ed90a6ff linux-firmware-rpidistro: Update to 20190114-1+rpt11
Update CYW43455 firmware
    - brcm/brcmfmac43455-sdio.bin 7.45.229
    - See: https://github.com/raspberrypi/linux/issues/3849

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2021-05-16 01:43:18 +01:00
Pierre-Jean Texier
d4d1441bd2 rpi-base: make SPLASH overridable from outside
Signed-off-by: Pierre-Jean Texier <texier.pj2@gmail.com>
2021-05-11 16:18:24 +01:00
Khem Raj
8cffbf5e85 raspberrypi-firmware: Update to include 5.10.31 updates
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2021-04-26 09:02:04 +01:00
Khem Raj
ff6cda5d8f linux-raspberrypi: Update to 5.10.31
Update yocto kernel metadata to latest 5.10 as well.

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2021-04-26 09:02:04 +01:00
Persian Prince
bb974dc078 userland: Correct PV after SRCREV update 2021-04-12 17:11:03 +01:00
Khem Raj
f9a13f3b9a userland: Update to latest master
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2021-04-03 17:07:25 +01:00
Khem Raj
214c12870b raspberrypi-firmware: Update to 20210326
Includes prebuilts with 5.10.25 kernel

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2021-04-03 17:07:25 +01:00
Khem Raj
1e6e3222d9 linux-raspberrypi-5.10: Upgrade to 5.10.25
Detail changelog [1]

[1] ec967eb45f...d1fd8a5727
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2021-04-03 17:07:25 +01:00
Khem Raj
de51de5ca0 mesa-gl: Use GALLIUMDRIVERS instead of DRIDRIVERS for passing swrast
latest mesa errors out
../mesa-21.0.0/meson.build:21:0: ERROR: Options "swrast" are not in allowed choices: "auto, i915, i965, r100, r200, nouveau"

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2021-04-03 17:07:25 +01:00
Khem Raj
d1f191ed30 tune-arm1176jzf-s.inc: Rework to match oe-core
OE-core now uses -mcpu instead of mtune

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2021-03-24 16:32:03 +00:00
Khem Raj
3145390785 gitignore: Ignore .pyc files
They are generated, esepcially during test runs and selftests

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2021-03-24 10:07:46 +00:00
Khem Raj
8a149b63ab layer.conf: Drop gatesgarth and add honister to LAYERSERIES_COMPAT
master can only be validated with latest WIP oe-core releases so drop
gatesgrath which is now a dedicated release, soon hardknott will be out
too but for master needs its fine, while hear add honister ( fall 2021 )
release too

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2021-03-23 15:11:42 +00:00
Mike Looijmans
fdf02accfe rpi-base: Add missing overlay_map.dtb and vc4-kms-v3d-pi4.dtbo
overlay_map.dtb arranges that when config.txt requests "vc4-kms-v3d"
the rpi4 will actually load "vc4-kms-v3d-pi4" and fixups like that.
It is present on the official distros, and must be put into the
overlays subdirectory in the boot partition.
For a detailed description of the overlay_map.dts file see:
  https://www.raspberrypi.org/documentation/configuration/device-tree.md#part2.2.10

vc4-kms-v3d-pi4 is required for the arm based kms driver on the rpi4.

Signed-off-by: Mike Looijmans <mike.looijmans@topic.nl>
2021-03-09 19:44:16 +00:00
Mike Looijmans
ef04a3a523 linux-raspberrypi: Upgrade to 5.10.17
This fixes, amongst others, issues with I2C controller interrupts on the RPI4
that prevented a touch panel from functioning.

Signed-off-by: Mike Looijmans <mike.looijmans@topic.nl>
2021-03-09 19:44:16 +00:00
Mike Looijmans
0b4a73ebad raspberrypi-firmware: Update to 2021-02-25
This version is compatible with the 5.10.17 kernel
5985247fb7

Signed-off-by: Mike Looijmans <mike.looijmans@topic.nl>
2021-03-09 19:44:16 +00:00
Martin Jansa
853ccd7440 sdcard_image-rpi.bbclass: shorten the default BOOTDD_VOLUME_ID
* raspberrypi4-64 is 15 characters and with dosfstools-4.2 it breaks rootfs.rpi-sdimg with:
  mkfs.vfat: Label can be no longer than 11 characters
  mkfs.fat 4.2 (2021-01-31)

* introduced in:
  https://github.com/dosfstools/dosfstools/commit/c598354

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
2021-03-04 16:24:38 +00:00
Mike Looijmans
68976061c5 overlays: Add "vc4-kms-dsi-7inch.dtbo"
In theory, this would allow one to use the official 7-inch touchscreen
in combination with the (non-firmware) kms driver by adding the
following lines to config.txt:

ignore_lcd=1
dtoverlay=vc4-kms-v3d
dtoverlay=vc4-kms-dsi-7inch

Signed-off-by: Mike Looijmans <mike.looijmans@topic.nl>
2021-03-02 16:59:27 +00:00
Khem Raj
5e543bd817 python3-adafruit-blinka: Delete microcontroller/bcm283x for non arm32 machines
It has prebuilt binary libgpiod_pulsein for rpi machines and these binary is 32bit
therefore we can not include it for 64bit machines even if they are rpi
based unless they have multilib enabled.

This patch makes it visible only on 32bit rpi

Fixes QA errors like
ERROR: QA Issue: Architecture did not match (ARM, expected AArch64) in /usr/lib/python3.9/site-packages/adafruit_blinka/microcontroller/bcm283x/pulseio/.debug/libgpiod_pulsein [arch]

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2021-03-01 10:49:06 +00:00
Khem Raj
0a83508fac python3-adafruit-blinka: Make rpi-gpio dependency conditional
https://github.com/agherzan/meta-raspberrypi/pull/815

introduced python3-adafruit-blinka and this recipe has added rdep on rpi-gpio,
however rpi-gpio is rpi specific package, and therefore should only be added
when building rpi based platforms, this makes the layer work in a
multi-bsp setup work

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2021-02-27 20:26:29 +00:00
Jose Quaresma
0a89fb8dac gstreamer1.0-omx: drop config-files-path.patch
gstreamer1.0-omx receipe on OE-core sets:
core-name=${GSTREAMER_1_0_OMX_CORE_NAME} on the installed gstomx.conf
in this case it will set:
core-name="${libdir}/libopenmaxil.so" in ${sysconfdir}/xdg/gstomx.conf
this is done in set_omx_core_name that is a do_install[postfuncs]

Signed-off-by: Jose Quaresma <quaresma.jose@gmail.com>
2021-02-26 12:49:18 +00:00
Jose Quaresma
946fc1ee5f gstreamer1.0-omx: consolidate the append usage and only use one
move patches from gstreamer1.0-omx-1.18 => gstreamer1.0-omx
and use PN on FILESEXTRAPATHS

Signed-off-by: Jose Quaresma <quaresma.jose@gmail.com>
2021-02-26 12:49:18 +00:00
Jose Quaresma
45a9819a43 gstreamer1.0-omx: drop custom cflags
This is not need any more to build with gstreamer 1.18

Signed-off-by: Jose Quaresma <quaresma.jose@gmail.com>
2021-02-26 12:49:18 +00:00
Chris Laplante
f80b8d2dff python3-adafruit-pureio: add recipe
Signed-off-by: Chris Laplante <mostthingsweb@gmail.com>
2021-02-26 12:48:42 +00:00
Chris Laplante
0d0c563aa1 python3-adafruit-platformdetect: add recipe
Signed-off-by: Chris Laplante <mostthingsweb@gmail.com>
2021-02-26 12:48:42 +00:00
Chris Laplante
ca70494511 python3-adafruit-circuitpython-register: add recipe
Signed-off-by: Chris Laplante <mostthingsweb@gmail.com>
2021-02-26 12:48:42 +00:00
Chris Laplante
76656d27bb python3-adafruit-circuitpython-pca9685: add recipe
Signed-off-by: Chris Laplante <mostthingsweb@gmail.com>
2021-02-26 12:48:42 +00:00
Chris Laplante
0a58422984 python3-adafruit-circuitpython-motorkit: add recipe
Signed-off-by: Chris Laplante <mostthingsweb@gmail.com>
2021-02-26 12:48:42 +00:00
Chris Laplante
b29eb27c5b python3-adafruit-circuitpython-motor: add recipe
Signed-off-by: Chris Laplante <mostthingsweb@gmail.com>
2021-02-26 12:48:42 +00:00
Chris Laplante
823220e648 python3-adafruit-circuitpython-busdevice: add recipe
Signed-off-by: Chris Laplante <mostthingsweb@gmail.com>
2021-02-26 12:48:42 +00:00
Chris Laplante
c8f7eae1b8 python3-adafruit-blinka: add recipe
Signed-off-by: Chris Laplante <mostthingsweb@gmail.com>
2021-02-26 12:48:42 +00:00
Martin Jansa
10d21b8022 sdcard_image-rpi.bbclass: increase default boot partition size from 40MiB to 48MiB
* 5.10 kernel got a bit bigger especially for aarch64:
  5.10:   22M     deploy/images/raspberrypi4-64/Image-raspberrypi4-64.bin
  5.10:  7.0M     deploy/images/raspberrypi4/uImage-raspberrypi4.bin
  5.4:    16M     deploy/images/raspberrypi4-64/Image-raspberrypi4-64.bin
  5.4:   6.2M     deploy/images/raspberrypi4/uImage-raspberrypi4.bin

* and the space in fat boot partition was already tight:
  Filesystem      Size  Used Avail Use% Mounted on
  /dev/mmcblk0p1   40M   38M  1.7M  96% /

* increase the size to compensate for it, otherwise
  do_image_rpi_sdimg now fails with:

Creating filesystem with Boot partition 40960 KiB and RootFS 1822720 KiB
0+0 records in
0+0 records out
0 bytes copied, 0.000100992 s, 0.0 kB/s
Model:  (file)
Disk foo.rootfs.rpi-sdimg: 1913MB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:

Number  Start   End     Size    Type     File system  Flags
 1      4194kB  46.1MB  41.9MB  primary               boot, lba
 2      46.1MB  1913MB  1866MB  primary

mkfs.fat: warning - lowercase labels might not work properly with DOS or Windows
mkfs.fat 4.1 (2017-01-24)
Copying bootcode.bin
Copying cmdline.txt
Copying config.txt
Copying fixup.dat
Copying fixup4.dat
Copying fixup4cd.dat
Copying fixup4db.dat
Copying fixup4x.dat
Copying fixup_cd.dat
Copying fixup_db.dat
Copying fixup_x.dat
Copying rpi-bootfiles-20210205.stamp
Copying start.elf
Copying start4.elf
Copying start4cd.elf
Copying start4db.elf
Copying start4x.elf
Copying start_cd.elf
Copying start_db.elf
Copying start_x.elf
Copying bcm2711-rpi-4-b.dtb
Copying at86rf233.dtbo
Copying disable-bt.dtbo
Copying dwc2.dtbo
Copying gpio-ir.dtbo
Copying gpio-ir-tx.dtbo
Copying gpio-key.dtbo
Copying hifiberry-amp.dtbo
Copying hifiberry-dac.dtbo
Copying hifiberry-dacplus.dtbo
Copying hifiberry-digi.dtbo
Copying justboom-both.dtbo
Copying justboom-dac.dtbo
Copying justboom-digi.dtbo
Copying i2c-rtc.dtbo
Copying imx219.dtbo
Copying iqaudio-dac.dtbo
Copying iqaudio-dacplus.dtbo
Copying mcp2515-can0.dtbo
Copying mcp2515-can1.dtbo
Copying miniuart-bt.dtbo
Copying pitft22.dtbo
Copying pitft28-capacitive.dtbo
Copying pitft28-resistive.dtbo
Copying pitft35-resistive.dtbo
Copying pps-gpio.dtbo
Copying rpi-ft5406.dtbo
Copying rpi-poe.dtbo
Copying vc4-fkms-v3d.dtbo
Copying vc4-kms-v3d.dtbo
Copying w1-gpio.dtbo
Copying w1-gpio-pullup.dtbo
Copying kernel8.img
Copying boot.scr
Copying Image
Disk full
ERROR: mcopy cannot copy /OE/build/luneos-hardknott/webos-ports/tmp-glibc/deploy/images/raspberrypi4-64/Image into boot.img
WARNING: exit code 1 from a shell command.

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
2021-02-25 14:26:26 +00:00
Bartłomiej Burdukiewicz
f5fe02c30c rpi-cmdline: remove unnecessary spaces from cmdline.txt
With current recipe formatting CMDLINE variable contains
many unnecessary white spaces. This patch allow to drop
unnecessary spaces at the moment of writing them to
cmdline.txt. This will improve readability of cmdline.txt,
/proc/cmdline and dmesg output.

Signed-off-by: Bartłomiej Burdukiewicz <bartlomiej.burdukiewicz@gmail.com>
2021-02-08 17:37:46 +00:00
Aaron Shaw
509ff8c732 overlays: add missing device overlays
add overlays for pi zero, bcm2710 based rpi2 and rpi b rev 1

Change-type: patch
Signed-off-by: Aaron Shaw <aaron@balena.io>
2021-02-07 10:24:06 +00:00
Aaron Shaw
0c85f01506 overlays: add overlays for pi 400 and cm4
add overlays for pi 400 and cm4

Change-type: patch
Signed-off-by: Aaron Shaw <aaron@balena.io>
2021-02-07 10:24:06 +00:00
Aaron Shaw
fc11c5d95c overlays: add overlay to allow 64 bit usage with CM3
add overlay to allow 64 bit usage with CM3

Change-type: patch
Signed-off-by: Aaron Shaw <aaron@balena.io>
2021-02-07 10:24:06 +00:00
Martin Jansa
b52d47c048 raspberrypi-firmware.inc: upgrade to latest for 5.10.13 kernel
7d91570f20

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
2021-02-06 13:23:34 +00:00
Martin Jansa
b947ce2148 rpi-default-versions: Switch default kernel to 5.10
* 5.10.11 is now considered stable:
  https://github.com/raspberrypi/firmware/blob/stable/extra/uname_string7
  8572bb50bf

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
2021-02-06 13:23:34 +00:00
Martin Jansa
7565931e23 linux-raspberrypi: update LIC_FILES_CHKSUM in .inc file and drop from 5.10 and dev recipe
* COPYING was changed only 4 times (last time in 5.6 with:
  https://github.com/torvalds/linux/commit/74835c7db0322 )
  so hopefully it will last for a while

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
2021-02-06 13:23:34 +00:00
Martin Jansa
dd163e0856 linux-raspberrypi: add recipe for 5.10 version
* 5.10.11 is now considered stable:
  https://github.com/raspberrypi/firmware/blob/stable/extra/uname_string7
  8572bb50bf

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
2021-02-06 13:23:34 +00:00
Aurelian Zanoschi
48d081265d [documentation]Add USB host support in documentation
Signed-off-by: Aurelian Zanoschi <aurelian17@gmail.com>
2021-02-04 19:36:22 +00:00
Aurelian Zanoschi
7193857284 rpi-config: Add support for CM4 host USB
By default in case of CM4 IO board, the USB ports (header + built-in)
are disabled. In order to enable them the DWC2 mode needs to be set to
host.

Signed-off-by: Aurelian Zanoschi <aurelian17@gmail.com>
2021-02-04 19:36:22 +00:00
Ovidiu Panait
f24de44790 linux-raspberrypi: pass dtc flags via KERNEL_DTC_FLAGS
Currently, the do_compile log is cluttered with dtc warnings that should only
be printed when compiling with W="123":
...
/soc: node has a reg or ranges property, but no unit name
/soc/gpu: missing or empty reg/ranges property
/soc/firmware/gpio: missing or empty reg/ranges property
...

This happens because we pass dtc flags via KERNEL_EXTRA_ARGS directly on the
make command line, preventing scripts/Makefile.lib logic from appending flags
that silence dtc warnings (all assignments done from within a makefile, to a
variable specified on the command line, are ignored).

oe-core commit [1] introduced the dedicated KERNEL_DTC_FLAGS variable to pass
dtc flags via the environment. Use this variable to get rid of the do_compile
log noise.

The md5sums of the generated dtbs for raspberrypi3-64 and raspberrypi4-64 do
not change with this patch applied.

[1] https://github.com/openembedded/openembedded-core/commit/063b5de86624

Signed-off-by: Ovidiu Panait <ovidiu.panait@windriver.com>
2021-01-26 13:02:59 +00:00
Jonas Vautherin
56ab926557 linux-raspberrypi: Superfluous 'inherit kernel'
'recipes-kernel/linux/linux-yocto.inc' already inherits 'kernel'.
This commit removes the superfluous one in 'linux-raspberrypi.inc'.

Signed-off-by: Jonas Vautherin <jonas.vautherin@protonmail.ch>
2021-01-26 10:07:51 +00:00
Paul Barker
16eef23486 kas-poky-rpi.yml: Make git ignore layers cloned by kas
Move the layer paths used by kas into a `layers` subdirectory and add
this to the git ignore list.

Signed-off-by: Paul Barker <pbarker@konsulko.com>
2021-01-21 21:09:49 +00:00
Paul Barker
5570f2f55d linux-raspberrypi: Uprev yocto-kernel-cache
Signed-off-by: Paul Barker <pbarker@konsulko.com>
2021-01-21 21:09:49 +00:00
Paul Barker
b1d38437f5 linux-raspberrypi: Uprev to v5.4.83
Signed-off-by: Paul Barker <pbarker@konsulko.com>
2021-01-21 21:09:49 +00:00
Paul Barker
2a9c3bb551 raspberrypi4-64: No need to force arm_64bit=1
This workaround is no longer needed with recent firmware.

Signed-off-by: Paul Barker <pbarker@konsulko.com>
2021-01-21 21:09:49 +00:00
Paul Barker
a4a8ce9af4 conf: Use unified u-boot config for 64-bit targets
The rpi_arm64 configuration supports both Raspberry Pi 3 & 4 in 64-bit
mode. Switching to this config is a small step towards supporting a
unified build for these targets.

Signed-off-by: Paul Barker <pbarker@konsulko.com>
2021-01-21 21:09:49 +00:00
Aaron Shaw
9165aa52b6 overlays: add justboom overlays
add justboom overlays

Change-type: patch
Signed-off-by: Aaron Shaw <shawaj@gmail.com>
2021-01-19 09:24:51 +00:00
Aaron Shaw
1c66732627 overlays: reorder in alphabetical order
reorder list to be in alphabetical order

Change-type: patch
Signed-off-by: Aaron Shaw <aaron@balena.io>
2021-01-19 09:24:51 +00:00
Matt Spencer
881e603ca2 linux-raspberrypi: Enable use of 'RPI_EXTRA_CONFIG += ...' in local.conf
Before this patch, use of RPI_EXTRA_CONFIG += in a local.conf would overwrite
the needed 'arm_64bit=1' defined in the core recipes. The net result would be
a system that did not boot.

This patch fixes the assignment of 'arm_64bit=1' even if RPI_EXTRA_CONFIG
has been set elsewhere.

Signed-off-by: matthew@thespencers.me.uk
2021-01-19 09:24:09 +00:00
Martin Jansa
17eb1a2f00 rpi-config: use CONFIG shell variable
* instead of repeating //config.txt
  so many times, to make it a bit less error prone (as shown in previous commit)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
2021-01-18 15:31:54 +00:00
Martin Jansa
5c9309de87 rpi-config: fix do_deploy
* in https://github.com/agherzan/meta-raspberrypi/pull/678 this line was acidentally changed
  from "${BOOTFILES_DIR_NAME}" to "bcm2835-bootfiles", causing do_deploy to fail finding config.txt

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
2021-01-18 15:31:54 +00:00
SCVready
74deec51de rpi-config: Relocated "start_x=1" in config.txt
It seems like "start_x=1" needs to be earlier in the file to work properly on the Rapberry Pi 4 B.

Fixes: #670
Signed-off-by: SCVready <alejandro.solozabal@outlook.com>
2021-01-12 20:57:04 +00:00
Christopher Clark
e0b4b8c5df machine: use weak default for kernel and KERNEL_DEVICETREE settings
To allow other layers to easily provide a default kernel preference to
use with the Raspberry Pi MACHINEs, switch to use the ??= assignment
operator for setting the default kernel and the device tree value in
this layer.

This change is motivated by enabling Xen support in meta-virtualization
to use the raspberrypi4-64 MACHINE definition from this layer with the
Yocto Linux kernels.

Signed-off-by: Christopher Clark <christopher.w.clark@gmail.com>
2021-01-12 20:43:49 +00:00
Ovidiu Panait
a7cc636d4e linux-raspberry: Drop 64-bit specific do_compile_append()
The functionality provided by this compile append is already present in
kernel-devicetree.bbclass since oe-core commit:
https://github.com/openembedded/openembedded-core/commit/74619de02774

The md5sums of the generated dtbs for raspberrypi3-64 and raspberrypi4-64 do
not change with this patch applied.

Signed-off-by: Ovidiu Panait <ovidiu.panait@windriver.com>
2020-12-24 17:52:49 +00:00
Khem Raj
3e2a8534a6 initramfs-image-bundle: Add MTD_UBI
CONFIG_UBIFS_FS is used as 'm' in defconfig and depends on MTD and MTD_UBI which
is also 'm', inorder for it to include in kernel proper, set MTD_UBI=y
and MTD=y as well.

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2020-12-18 22:44:47 +00:00
Andrei Gherzan
3fe1f79ea2 README.md: Mention build server sponsor
balena.io has been sponsoring the project with a build server for a
while now. It's only fair for us to mention this somewhere in our
README.

Signed-off-by: Andrei Gherzan <andrei@gherzan.ro>
2020-12-18 22:44:13 +00:00
Khem Raj
361f42e346 raspidmx: Disable for all non-rpi hosts
Currently its only disabled when vc4graphics is in use but this recipe
actually needs userland and therefore can not be used for non-rpi
machines as well.

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2020-12-14 23:20:22 +00:00
Trevor Woerner
e4f5c32925 raspidmx: add
Add a recipe to build a set of dispmanx examples.

Signed-off-by: Trevor Woerner <twoerner@gmail.com>
2020-12-13 20:34:11 +00:00
Trevor Woerner
4b89f63699 userland: fix invalid packageconfig
Fix the "allapps" PACKAGECONFIG to avoid the QA warning/error:

	userland-20201027-r0 do_configure: QA Issue: userland: invalid PACKAGECONFIG: allapps [invalid-packageconfig]

Signed-off-by: Trevor Woerner <twoerner@gmail.com>
2020-12-11 17:00:15 +00:00
Aaron Shaw
f82376c444 linux-firmware-rpidistro: Added firmware for BCM43456
The new Raspberry Pi 400 (and perhaps the CM4 as well) use the BCM43456 chip from Broadcom/Synaptics. This adds the necessary firmware.

Signed-off-by: Aaron Shaw <aaron@balena.io>
2020-12-09 00:17:10 +00:00
Khem Raj
1ae52a743c libglu: Fix build with userland graphics
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2020-12-04 11:18:40 +00:00
Khem Raj
80bcc2e0ed userland: Fix weston build with userland graphics
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2020-12-04 11:18:40 +00:00
Tobias Off
8e35fbffb0 linux-firmware-rpidistro: Missing link to firmware causes wifi not working on raspberrypi zero w
The link the brcmfmac is looking for was not created by the recipe for the raspberrypi zero w,
so the wifi was not working for this board. Adding link creation in the recipe solved the issue.

Signed-off-by: Tobias Off <sebastianoff@web.de>
2020-12-03 09:37:38 +00:00
Khem Raj
6c1c9ff4ee mesa-gl: Enable swrast dri backend for rpi/userland
After mesa switched build system to meson, the logic to generate dri
related artifacts changed too, which means when no dri backend is
enabled then dri drivers and corresponding headers dont get generated
and hence we end up with missing pkgconfig files e.g. dri.pc which
usually will come from full mesa3d package, but in rpi when userland is
used we only build GL pieces of mesa.

This patch therefore enables swrast dri backend when using userland,
which gives us the needed header and .pc files to build packages like
Xorg server, since EGL driver will come from userland, the dri backend
would be unused and hence should not be effective at runtime.

Addresses issue report with https://github.com/agherzan/meta-raspberrypi/pull/773

there is no need to check for graphics stack since mesa-gl is only used
with userland graphics

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Cc: Trevor Woerner <twoerner@gmail.com>
2020-12-02 22:10:03 +00:00
Trevor Woerner
3a1fec22c0 userland: add knob for ALL_APPS
The userland sources include a bunch of sample applications. Add an "allapps"
PACKAGECONFIG to allow the user to build the additional optional applications.

Signed-off-by: Trevor Woerner <twoerner@gmail.com>
2020-11-30 16:16:29 +00:00
Jose Quaresma
1da8814f8a gstreamer1.0-plugins-base: drop custom cppflags
This is not need any more to build with gstreamer 1.18

Signed-off-by: Jose Quaresma <quaresma.jose@gmail.com>
2020-11-30 16:14:04 +00:00
Paul Barker
7a6759e242 linux-raspberrypi-dev: Update for testing v5.10.y
Linux 5.10 series will be the next LTS kernel so it's likely to be the
new stable branch for linux-raspberrypi within a couple of months. Let's
get set up to test it now.

Signed-off-by: Paul Barker <pbarker@konsulko.com>
2020-11-27 14:29:55 +00:00
Paul Barker
8c5809ebbb linux-raspberrypi: Merge v5.4 recipe & inc file
There is no need for a separate inc file for the v5.4 kernel recipe.

Variable assignments are simplified where possible after merging.

Signed-off-by: Paul Barker <pbarker@konsulko.com>
2020-11-27 14:29:55 +00:00
Paul Barker
64f6a1b7cc linux-raspberrypi: Drop unused rpi-kernel-misc config fragment
This config fragment was unconditionally disabled for the v5.4 kernel
so it can be dropped.

Signed-off-by: Paul Barker <pbarker@konsulko.com>
2020-11-27 14:29:55 +00:00
Paul Barker
2afeee9b82 linux-raspberrypi: Remove obsolete kernel versions
Signed-off-by: Paul Barker <pbarker@konsulko.com>
2020-11-27 14:29:55 +00:00
Paul Barker
ba3a417fbb rpi-bootfiles: Rename recipe to avoid ambiguity
The name `bootfiles` is too generic, we should use `rpi-bootfiles`
instead.

Signed-off-by: Paul Barker <pbarker@konsulko.com>
2020-11-27 14:29:55 +00:00
Paul Barker
b8440b3d26 bootfiles: Use BOOTFILES_DIR_NAME variable
This variable is set in rpi-base.inc and referenced by other recipes
which need to know the location of the bootfiles. If this is overridden
for any reason we need to ensure that the bootfiles recipe deploys to
the correct path.

Signed-off-by: Paul Barker <pbarker@konsulko.com>
2020-11-27 14:29:55 +00:00
Paul Barker
8827040d9c rpi-cmdline: Move cmdline.txt generation to a separate recipe
Instead of generating cmdline.txt in the kernel recipe, it is generated
in a standalone recipe and pulled in as a dependency of the bootfiles
recipe. This simplifies the process of using a linux-yocto,
linux-mainline or similiar kernel recipe instead of linux-raspberrypi.

In the rpi-cmdline recipe the command line is built from fragments which
can all be easily overridden. The variables `SERIAL` and `CMA` are
renamed to `CMDLINE_SERIAL` and `CMDLINE_CMA` for consistency. The
cmdline.txt file is created in the do_compile step to allow further
customisation via do_compile_append if needed.

Signed-off-by: Paul Barker <pbarker@konsulko.com>
2020-11-27 14:29:55 +00:00
Paul Barker
ba6a809a55 sdcard_image-rpi: Drop redundant dependency on rpi-config:do_deploy
The bootfiles:do_deploy task already depends on rpi-config:do_deploy so
we do not explicitly need to list the dependency again in the
sdcard_image-rpi class.

Signed-off-by: Paul Barker <pbarker@konsulko.com>
2020-11-27 14:29:55 +00:00
Paul Barker
1c8ad80861 linux-raspberrypi: Convert dynamic config patching to config fragments
This allows us to drop all of the custom config patching in
linux-raspberrypi.inc. It also allows the kernel config to be checked
during the build for any discrepancies between the selected config
options and the resulting .config file - this identified that
`CONFIG_DRM_VC4` depends on `CONFIG_SND` and `CONFIG_SND_SOC`.

Signed-off-by: Paul Barker <pbarker@konsulko.com>
2020-11-27 14:29:55 +00:00
Ming Liu
26a888d669 rpi-u-boot-scr: drop hard-coded 'arm'
Let's inherit kernel-arch and use ${UBOOT_ARCH} to replace the
hard-coded 'arm'.

Signed-off-by: Ming Liu <liu.ming50@gmail.com>
2020-11-27 12:39:12 +00:00
Khem Raj
25d1eb4146 packagegroup-rpi-test: Add python3-sense-hat in a meta-python specific bbappend
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2020-11-25 17:57:12 +00:00
Khem Raj
5db97b41a8 armstubs: Always use gcc compiler
it uses assembly files .S which needs to be processed with gcc alone
until they are made portable use gcc

Fixes
| armstub7.S:175:2: error: instruction requires: thumb
|  cbz r6, 9f @ Skip this section if we are core 0
|  ^

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2020-11-25 17:57:12 +00:00
Khem Raj
dcdd0e4a20 raspberrypi-tools: Update to latest on master
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2020-11-25 17:57:12 +00:00
Khem Raj
fd83102af7 userland: Upgrade to latest as of 20201027
refresh patches

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2020-11-25 17:57:12 +00:00
Khem Raj
6a53db2fb6 raspberrypi-firmware: Update to latest to take 5.4.79 prebuilts
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2020-11-25 17:57:12 +00:00
Khem Raj
07a4d28f1d linux-raspberrypi_5.4.bb: Update to 5.4.79
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2020-11-25 17:57:12 +00:00
Khem Raj
a06878118c layer.conf: Add hardknott (3.3) to acceptable releases
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2020-11-25 17:57:12 +00:00
Khem Raj
08d27cd799 python3-sense-hat: Move to dynamic-layers
Only active when meta-python is in layermix, this recipe rdeps on
python3-pillow, which comes from meta-python, until that moves to
oe-core lets hide this recipe unless meta-python is used

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2020-11-25 17:57:12 +00:00
Jan-Simon Moeller
07fc972c60 python3-sense-hat: Switch to using pillow instead of imaging module
while meta-python does rprovide python3-imaging via python3-pillow, its
better to not rely on that bridge, since this might disappear in future

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2020-11-25 17:57:12 +00:00
Martin Jansa
9e9746f5a7 Revert "gstreamer1.0-plugins-good: add package config knob to enable rpicamsrc plugin"
This reverts commit 0ecec6a1f9.

The patch as well as PACKAGECONFIG were merged to oe-core recipe in:
https://git.openembedded.org/openembedded-core/commit/?id=fe828754467db0a09bbc5d6fd54bf6245bd0a747
2020-11-19 12:25:15 +00:00
Jose Quaresma
3db2e1e967 gstreamer1.0-plugins-good: enable rpicamsrc plugin
enable the plugin when vc4graphics is not on machine features
as it needs userland.

Signed-off-by: Jose Quaresma <quaresma.jose@gmail.com>
2020-11-17 15:31:30 +00:00
Jose Quaresma
0ecec6a1f9 gstreamer1.0-plugins-good: add package config knob to enable rpicamsrc plugin
Signed-off-by: Jose Quaresma <quaresma.jose@gmail.com>
2020-11-17 15:31:30 +00:00
Khem Raj
2e0b2d41cf linux-raspberrypi: Do not use += with append
append operator and += when used together results in undefined behaviour
in bitbake

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2020-11-14 23:27:08 +00:00
Madhavan Krishnan
b70c7b9021 libcamera: Enabled camera overlays define based
Added imx219.dtbo file in the overlays, and added dtoverlay in
/boot/config.txt define based.

To enable Sony Raspberry pi camera imx219 sensor, need to set
the variable RASPBERRYPI_CAMERA_V2 as 1.

In future, we can add any camera overlays here to support and
use them with libcamera.

Signed-off-by: Madhavan Krishnan <madhavan.krishnan@linaro.org>
2020-11-14 23:26:39 +00:00
Martin Jansa
15739db1ed layer.conf: Remove older releases from LAYERSERIES_COMPAT
* with gstreamer1.0-omx_1.18%.bbappend it won't even parse with
  dunfell and older
* and since
  36c3c2e7ca
  which renamed gstreamer1.0-omx_1.14%.bbappend to gstreamer1.0-omx_1.16%.bbappend it didn't
  parse with zeus and older

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
2020-11-03 17:33:56 +00:00
Martin Jansa
393af232a7 gstreamer1.0-omx: rename bbappend to match new 1.18.0 version from oe-core
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
2020-11-03 17:33:56 +00:00
Khem Raj
09a3c11696 userland: Apply format-overflow warning patch for gcc alone
This warning is gcc specific and causes build failures when building
with clang, lets therefore remove it when build is using clang compiler

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2020-10-21 17:56:14 +01:00
Marek Belisko
a8085558b5 u-boot: Fix booting raspberrypi CM3 module
With stock u-boot v2020.01 which we use from poky CM3 module won't boot.
We need to apply this patch in order to have platform again working.

Add it only for cm3 to not break anything else.

Signed-off-by: Marek Belisko <marek.belisko@open-nandra.com>
2020-10-21 17:39:43 +01:00
Khem Raj
6ca9b2f9f7 linux-raspberrypi: Fix build regression from last update
This patch is now backported into 5.4 stable

commit bc79abf4afea97d5ce682aa2bd1095fb74400916

so it should have been
deleted, otherwise its causing build/patch failures now as expected

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2020-10-20 20:09:55 +01:00
Eino Juhani Oltedal
2be75e2ef3 linux-raspberrypi: bump to Linux version 5.4.72
Fixes: "Bleeding Tooth" Bluetooth Vulnerability.

Signed-off-by: Eino Juhani Oltedal <einoju@gmail.com>
2020-10-20 16:39:25 +01:00
Khem Raj
6f85611576 layer.conf: Add gatesgarth to LAYERSERIES_COMPAT
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2020-10-15 20:47:33 +01:00
Alex Gonzalez
2324089fef linux-raspberrypi: Only deploy cmdline.txt for the main kernel
When multiple kernels are being built, not all of them can deploy the
same file.

Signed-off-by: Alex Gonzalez <alexg@balena.io>
2020-10-12 10:05:48 +01:00
Martin Jansa
6ed1b4ca64 python3-rtimu: don't use trailing slash in S
* see oe-core base.bbclass changes from:
  https://lists.openembedded.org/g/openembedded-core/message/143159
  https://lists.openembedded.org/g/openembedded-core/message/143161

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
2020-10-11 20:27:56 +01:00
Martin Jansa
e13d6a2188 linux-raspberrypi-5.4: bump SRCREV to fix raspberrypi3-64 builds
* fixes:
  https://github.com/raspberrypi/linux/issues/3885

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
2020-10-09 19:53:43 +01:00
Khem Raj
0355ceef76 rpi-default-settings: Replace default parselogs with parselogs_rpi
rpi kernel spits out additional errors in kernel logs which should be
ignored, there is no easy way to extend parselogs testcase other than
inheriting it into another testcase and use that testcase instead

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2020-10-09 19:53:43 +01:00
Khem Raj
a5626b6189 oeqa: Add 5.4 specific error messages to ignore list
with 5.4 fd580000.genet has been replaced with fd580000.ethernet in the
error text

Fixes
https://github.com/raspberrypi/linux/issues/3884

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2020-10-09 19:53:43 +01:00
Khem Raj
4606cf4831 raspberrypi-tools: Update to latest snapshot as of 20200803
Use date in PV, makes is good candidate for always increasing PV

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2020-10-05 18:39:54 +01:00
Khem Raj
a66e679f00 raspberrypi-firmware: Update to 20201002 snapshot
Brings in fixes for errors seen in kernel boot log
e.g.

https://github.com/raspberrypi/linux/issues/3878

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2020-10-05 18:39:54 +01:00
Khem Raj
f762c8d9f5 linux-raspberrypi_5.4.bb: Update to 5.4.69
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2020-10-05 18:39:54 +01:00
Madhavan Krishnan
6f4446bffc libcamera: Define packageconfig to enable rpi pipeline
libcamera middleware has supported many pipelines for video frames capturing.
So defined the packageconfig, to enable the rpi pipeline and to capture frames
using the rpi camera sensor.

Signed-off-by: Madhavan Krishnan <madhavan.krishnan@linaro.org>
2020-10-05 18:19:50 +01:00
Murat Kilivan
329b50f252 linux-raspberrypi_5.4.bb: Add kernel-cache source
Fixes the following error:
ERROR. input file "cfg/virtio.scc" does not exist

Signed-off-by: Murat Kilivan <murat.kilivan@gmail.com>
2020-10-05 12:05:39 +01:00
Khem Raj
165845b95d linux-firmware-rpidistro: Update to 20190114-1+rpt8
* Update brcmfmac43455-sdio.bin to 7.45.206
* Add BCM43456 firmware
  - brcm/brcmfmac43456-sdio.bin 7.84.17.1
  - brcm/brcmfmac43456-sdio.clm_blob
  - brcm/brcmfmac43456-sdio.txt

* Add compatibility links for direct firmware download to work properly
  Fixes
  brcmfmac mmc1:0001:1: Direct firmware load for brcm/brcmfmac43455-sdio.raspberrypi,4-model-b.txt failed with error -2

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2020-10-05 11:44:07 +01:00
Martin Jansa
0e9c32c816 Revert "linux-raspberrypi-5.4: revert 1 commit from upstream to fix lttng-modules build"
This reverts commit d1257fc127.

Now lttng-modules in oe-core were updated in:
https://git.openembedded.org/openembedded-core/commit/?id=62c87d1a68c4f7c8f30c3c5330dcda9cbcbbbaa7
and the backported patch:
https://git.openembedded.org/openembedded-core/diff/meta/recipes-kernel/lttng/lttng-modules/0009-fix-version-ranges-for-ext4_discard_preallocations-a.patch?id=62c87d1a68c4f7c8f30c3c5330dcda9cbcbbbaa7
now expects new writeback_queue_io API being available in LTTNG_KERNEL_RANGE(5,4,62, 5,5,0)
so we need to re-enable it.
2020-09-18 09:53:18 +01:00
Luis Alfredo da Silva
c5633df788 Revert "mesa: querying dma_buf modifiers for specific formats"
This reverts commit 84cb8538cd.

Fixes:
    - https://gitlab.gnome.org/GNOME/mutter/-/issues/1421
    - #711
2020-09-17 15:25:39 +01:00
Martin Jansa
60b4bcbae5 raspberrypi-{firmware,tools}: set downloadfilename
* otherwise we end with big archives in downloads directory without clear
  indication from where they came
* e.g. in one of my jenkins builds I've noticed:
  -rw-rw-r-- 1 jenkins jenkins 178M Jun 30 15:45 downloads/23548e550a757d368d3d5220373fe829b5961c42.tar.gz
  -rw-rw-r-- 1 jenkins jenkins 152M Sep  5  2019 downloads/7163480fff007dc98978899b556dcf06f8a462c8.tar.gz
  -rw-rw-r-- 1 jenkins jenkins 179M Jul 23 01:34 downloads/7e74bcb4f9706f36f752d1c3d3164628ccf2aae5.tar.gz
  -rw-rw-r-- 1 jenkins jenkins 178M Jun  5 12:34 downloads/7eff9f6774bb43bfd61e749a0b45ffddc98c2311.tar.gz
  -rw-rw-r-- 1 jenkins jenkins 177M Apr 23 14:49 downloads/84523e0b9a9e78aa69fca1f1a8d75b2bdb5155fc.tar.gz
  -rw-rw-r-- 1 jenkins jenkins 178M Jan 13  2020 downloads/9d6be5b07e81bdfb9c4b9a560e90fbc7477fdc6e.tar.gz

  -rw-rw-r-- 1 jenkins jenkins  463 Jul  1 03:58 downloads/23548e550a757d368d3d5220373fe829b5961c42.tar.gz.done
  -rw-rw-r-- 1 jenkins jenkins  141 Jan 16  2020 downloads/7163480fff007dc98978899b556dcf06f8a462c8.tar.gz.done
  -rw-rw-r-- 1 jenkins jenkins  463 Aug  1 15:40 downloads/7e74bcb4f9706f36f752d1c3d3164628ccf2aae5.tar.gz.done
  -rw-rw-r-- 1 jenkins jenkins  463 Jun  6 09:54 downloads/7eff9f6774bb43bfd61e749a0b45ffddc98c2311.tar.gz.done
  -rw-rw-r-- 1 jenkins jenkins  463 May 16 03:35 downloads/84523e0b9a9e78aa69fca1f1a8d75b2bdb5155fc.tar.gz.done
  -rw-rw-r-- 2 jenkins jenkins  141 Aug  7 22:10 downloads/9d6be5b07e81bdfb9c4b9a560e90fbc7477fdc6e.tar.gz.done

* unfortunately using git fetcher is still problematic because of git repo size:
  15G   firmware
  1,6G  tools

  -rw-rw-r-- 1 jenkins jenkins 180M Sep 17 13:59 downloads/raspberrypi-firmware-a490197f0672d948860b2b807884ae65eabc4d4f.tar.gz
  -rw-rw-r-- 1 jenkins jenkins  463 Sep 17 14:09 downloads/raspberrypi-firmware-a490197f0672d948860b2b807884ae65eabc4d4f.tar.gz.done
  -rw-rw-r-- 1 jenkins jenkins 324M Sep 17 14:10 downloads/raspberrypi-tools-b0c869bc929587a7e1d20a98e2dc828a24ca396a.tar.gz
  -rw-rw-r-- 1 jenkins jenkins  463 Sep 17 14:10 downloads/raspberrypi-tools-b0c869bc929587a7e1d20a98e2dc828a24ca396a.tar.gz.done

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
2020-09-17 13:14:41 +01:00
Martin Jansa
d1257fc127 linux-raspberrypi-5.4: revert 1 commit from upstream to fix lttng-modules build
* fixes:
  lttng-modules/2.12.2-r0/lttng-modules-2.12.2/probes/../probes/lttng-tracepoint-event-impl.h:131:6: error: conflicting types for 'trace_writeback_queue_io'

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
2020-09-14 15:59:27 +01:00
Pierre-Jean Texier
9f013e3cd1 linux-raspberrypi: bump to Linux version 5.4.64
Signed-off-by: Pierre-Jean Texier <pjtexier@koncepto.io>
2020-09-12 21:38:16 +01:00
Pierre-Jean Texier
16a6e0b4ea raspberrypi-firmware: update to current HEAD
Signed-off-by: Pierre-Jean Texier <pjtexier@koncepto.io>
2020-09-12 21:38:16 +01:00
Andrzej Bednarski
61bea92793 docs: Correct minor spelling issues
Correct spelling issues in the 'extra-build-config.md' file.

Signed-off-by: Andrzej Bednarski <andrzej.bednarski@gmail.com>
2020-09-11 15:30:59 +01:00
Khem Raj
a34a6d9eaf README: Mention Yoe distro in supported distro list
Remove angstrom as it is no longer uptodate

Fixes Issue #563

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2020-09-03 14:43:34 +01:00
Khem Raj
5013a063d5 linux-raspberrypi_5.4.bb: Build ashmem and binder drivers
These are android drivers, which help in running anbox on top of
raspberrypi machines

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2020-09-03 14:43:10 +01:00
Martin Jansa
46f4028e6f rpi-gpio: add -fcommon temporarily
* until the fix is available upstream

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
2020-09-02 21:43:09 +01:00
Martin Jansa
1991ef8283 linux-raspberrypi-5.4: backport a fix for perf build with -fno-common from gcc-10
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
2020-09-02 21:43:09 +01:00
Khem Raj
968dcd3f40 libsdl2: Add userland dependency when not using vc4graphics
Needed to provide KHR/khrplatform.h header

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2020-08-28 14:59:43 +01:00
Khem Raj
979fb504c3 xserver-xorg: Depend on userland when vc4graphics is disabled
This helps in getting right headers, we have made a choice to let
userland provide KHR/khrplatform.h when using it instead of mesa-gl
which could have been another provider, xserver-xorg's glx
implementation depends on virtual/libgl which in case of rpi-without-vc4
driver is provided by mesa-gl, as a result, compilation fails since no
one is providing this header in this case.

Fixes errors like
usr/include/GL/glext.h:56:10: fatal error: KHR/khrplatform.h: No such file or directory
|    56 | #include <KHR/khrplatform.h>
|       |          ^~~~~~~~~~~~~~~~~~~

Fixes issue #391

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2020-08-28 14:59:43 +01:00
Khem Raj
0433b69889 raspberrypi-firmware: Upgrade to 20200819
Includes 5.4.59 bumps

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2020-08-24 22:59:04 +01:00
Khem Raj
c61ccdbb93 linux-raspberrypi: Update to 5.4.59
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2020-08-24 22:59:04 +01:00
Martin Jansa
cc6074c660 linux-raspberrypi-5.4: bump SRCREV to latest to fix perf build
Needs some fixes from newer 5.4 kernel, e.g.:
1b940bbc5c55 Linux 5.4.56
df35e878d0a5 perf bench: Share some global variables to fix build with gcc 10
702d1b287fd2 perf env: Do not return pointers to local variables
73d2d6b421df perf tests bp_account: Make global variable static

to fix:
  LINK     perf/1.0-r9/perf-1.0/perf
perf/1.0-r9/recipe-sysroot-native/usr/bin/arm-oe-linux-gnueabi/../../libexec/arm-oe-linux-gnueabi/gcc/arm-oe-linux-gnueabi/10.1.0/ld: error: perf/1.0-r9/perf-1.0/plugins/libtraceevent-dynamic-list:2:15: invalid character
perf/1.0-r9/recipe-sysroot-native/usr/bin/arm-oe-linux-gnueabi/../../libexec/arm-oe-linux-gnueabi/gcc/arm-oe-linux-gnueabi/10.1.0/ld: error: perf/1.0-r9/perf-1.0/plugins/libtraceevent-dynamic-list:2:15: syntax error, unexpected end of file, expecting ';'
perf/1.0-r9/recipe-sysroot-native/usr/bin/arm-oe-linux-gnueabi/../../libexec/arm-oe-linux-gnueabi/gcc/arm-oe-linux-gnueabi/10.1.0/ld: fatal error: unable to parse dynamic-list script file perf/1.0-r9/perf-1.0/plugins/libtraceevent-dynamic-list
collect2: error: ld returned 1 exit status
Makefile.perf:609: recipe for target 'perf/1.0-r9/perf-1.0/perf' failed
make[2]: *** [perf/1.0-r9/perf-1.0/perf] Error 1
make[2]: *** Waiting for unfinished jobs....
perf/1.0-r9/recipe-sysroot-native/usr/bin/arm-oe-linux-gnueabi/../../libexec/arm-oe-linux-gnueabi/gcc/arm-oe-linux-gnueabi/10.1.0/ld: error: perf/1.0-r9/perf-1.0/plugins/libtraceevent-dynamic-list:2:15: invalid character
perf/1.0-r9/recipe-sysroot-native/usr/bin/arm-oe-linux-gnueabi/../../libexec/arm-oe-linux-gnueabi/gcc/arm-oe-linux-gnueabi/10.1.0/ld: error: perf/1.0-r9/perf-1.0/plugins/libtraceevent-dynamic-list:2:15: syntax error, unexpected end of file, expecting ';'
perf/1.0-r9/recipe-sysroot-native/usr/bin/arm-oe-linux-gnueabi/../../libexec/arm-oe-linux-gnueabi/gcc/arm-oe-linux-gnueabi/10.1.0/ld: fatal error: unable to parse dynamic-list script file perf/1.0-r9/perf-1.0/plugins/libtraceevent-dynamic-list
collect2: error: ld returned 1 exit status
error: command 'arm-oe-linux-gnueabi-gcc' failed with exit status 1
cp: cannot stat 'perf/1.0-r9/perf-1.0/python_ext_build/lib/perf*.so': No such file or directory
Makefile.perf:571: recipe for target 'perf/1.0-r9/perf-1.0/python/perf.so' failed

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
2020-08-18 20:19:23 +01:00
Pierre-Jean Texier
f5c39711c4 linux-raspberrypi: bump to revision 4b945d5
Signed-off-by: Pierre-Jean Texier <pjtexier@koncepto.io>
2020-08-13 17:09:44 +01:00
Pierre-Jean Texier
42e4b4b889 raspberrypi-firmware: update to current HEAD
Signed-off-by: Pierre-Jean Texier <pjtexier@koncepto.io>
2020-08-13 17:09:44 +01:00
Pierre-Jean Texier
9adb9b81b2 rpi-default-versions: Switch defaults to 5.4
Linux Kernel 5.4 is now considered stable.

See [1] to check the current apt stable kernel.

[1] - https://github.com/raspberrypi/firmware/blob/stable/extra/uname_string7

Signed-off-by: Pierre-Jean Texier <pjtexier@koncepto.io>
2020-08-13 17:09:44 +01:00
Andrei Gherzan
5c3bda2acb sdcard_image-rpi.bbclass: Fix when RPI_SDIMG_EXTRA_DEPENDS not defined
If the variable is not defined, bitbake will fail:

[...]
Task 'depends' should be specified in the form 'packagename:task'
[...]

This is because not expanding the variable leaves an invalid entry.

Signed-off-by: Andrei Gherzan <andrei@gherzan.ro>
2020-08-10 11:09:45 +01:00
Jeff Ithier
f046b4128c Generalize the naming of the bootfiles deploy directory
The raspberry pi 4 variant has a BCM2711 chip, however it still
uses the same boot files as the BCM2835 used in previous generations.
This change generalizes the naming of the directory generated in the
$DEPLOY_DIR to avoid the implication that the files are only
meant for the BCM2835.

Signed-off-by: Jeff Ithier <ithijme@gmail.com>
2020-08-06 11:00:29 +01:00
Christopher Clark
11318d2da1 docs/extra-build-config.md: document vars to add to boot partition
FATPAYLOAD, DEPLOYPAYLOAD and RPI_SDIMG_EXTRA_DEPENDS

Signed-off-by: Christopher Clark <christopher.w.clark@gmail.com>
2020-07-29 11:54:14 +01:00
Christopher Clark
c883daa802 sdcard_image-rpi.bbclass: enable extensible inclusion into boot
Add DEPLOYPAYLOAD, similar to the existing FATPAYLOAD, to enable
adding files to the boot partition from the image deploy directory.
Files such as hypervisor binaries may not be present (and in fact
unwanted) within the root filesystem, so FATPAYLOAD is not sufficient.

DEPLOYPAYLOAD is implemented with support for file renaming from the
source file in the image deploy directory to the filename written into
the boot image. DEPLOYPAYLOAD is a space-separated list of entries for
additions, each of which can optionally be colon-separated:
    <image deploy directory file>:<destination filename>

If the colon separator is omitted, the source deploy directory filename
is used as the destination filename.

The support for specifying the destination filename is used for
including Xen, which produces a machine-specific file in the image
deploy directory, and is written to the image partition with its
expected filename: xen.

Files that are to be included from the image deploy directory will
be produced by tasks that the do_image_rpi_sdimg[depends] must list,
so enable adding entries to that via a new variable:
RPI_SDIMG_EXTRA_DEPENDS.

These changes enable retiring a Xen-specific Raspberry Pi SD card
bbclass from meta-virtualization and have been tested on the
Raspberry Pi 4.

Signed-off-by: Christopher Clark <christopher.w.clark@gmail.com>
2020-07-29 11:54:14 +01:00
Jakub Luzny
eaf4a5f17e docs/extra-build-config.md: Document CAN_OSCILLATOR variable
Add instructions how to use CAN_OSCILLATOR variable and declare support
for the Waveshare RS485 CAN HAT.

Signed-off-by: Jakub Luzny <jakub@luzny.cz>
2020-07-29 11:52:09 +01:00
Jakub Luzny
603f3891fe rpi-config: Add CAN_OSCILLATOR variable to set mcp2515 crystal frequency
Current configuration (16MHz) is made for the PiCAN2 board that uses 16MHz crystal. This setting allows for use of Waveshare RS485 CAN HAT that has 8MHz crystal soldered (although according to Waveshare there is also a 12MHz crystal version of the board).

Signed-off-by: Jakub Luzny <jakub@luzny.cz>
2020-07-29 11:52:09 +01:00
Fabio Berton
fc72c06141 u-boot: Move fw_env.config to u-boot append
The u-boot-env is provided by u-boot recipe and not by libubootenv, so
right recipe to append is the u-boot.

Adding the rpi-u-boot-scr in DEPENDS variable is wrong because it is
forcing rpi-u-boot-scr to be a dependency, but it'll fail if I have
another recipe that provides bootscript, once both recipes provide the
same file. The default value of u-boot-default-script is rpi-u-boot-scr,
so right way is to use u-boot-default-script and change the
PREFERRED_PROVIDER_u-boot-default-script if needed.

Signed-off-by: Fabio Berton <fabio.berton@ossystems.com.br>
2020-07-27 15:34:17 +01:00
colin
e2c1992955 docs: Added documentation for Pican2 Duo support
Added documentation for ENABLE_DUAL_CAN build configuration and support
for Pican2 Duo board.

Signed-off-by: Colin McAllister <colinmca242@gmail.com>
2020-07-23 13:03:23 +01:00
colin
85d3dd81c5 rpi-config_git: Added ENABLE_DUAL_CAN build configuration
Currently ENABLE_CAN adds mcp2525-can0 to the dtoverlay.

ENABLE_DUAL_CAN was added to also add mcp2515-can1 to the dtoverlay.
This will allow a user to enable dual CAN when using a hat like the
PiCAN 2 Duo board.

Signed-off-by: Colin McAllister <colinmca242@gmail.com>
2020-07-23 13:03:23 +01:00
colin
73c686a70a conf/machine/include/rpi-base.inc: Added can1 interface to bsp
The device tree only supports a single CAN interface.  This prevents
compatiblity with dual-CAN boards like the PiCAN2 Duo.

The mcp2515-can1 device tree blob for overlay was added to RPI_KERNEL_DEVICETREE_OVERLAYS in order to support dual-CAN hats.

Signed-off-by: Colin McAllister <colinmca242@gmail.com>
2020-07-23 13:03:23 +01:00
Christopher Clark
e28d6b83ea rpi-base: add SERIAL_CONSOLES_CHECK to default to SERIAL_CONSOLES
As per the example in the bsp-guide, and the qemu and other machine
configs. Assists when running virtualized, where serial console
device can differ.

Signed-off-by: Christopher Clark <christopher.w.clark@gmail.com>
2020-07-17 01:03:27 +01:00
Khem Raj
497a90a220 userland: Update to 2020-06-24 top commit
Forward port patches

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2020-07-14 17:16:50 +01:00
Pierre-Jean Texier
372dc40ae3 raspberrypi-firmware: update to current HEAD
Signed-off-by: Pierre-Jean Texier <pjtexier@koncepto.io>
2020-07-14 17:15:50 +01:00
Pierre-Jean Texier
32eb4bd8ad linux-raspberrypi: bump to Linux version 5.4.51
Fixes:

ERROR: linux-raspberrypi-1_5.4.50+gitAUTOINC+856e83151c-r0 do_fetch: Fetcher failure: Unable to find revision 856e83151cf3f802c495585ac176bb135a08030f in branch rpi-5.4.y even from upstream
ERROR: linux-raspberrypi-1_5.4.50+gitAUTOINC+856e83151c-r0 do_fetch: Fetcher failure for URL: 'git://github.com/raspberrypi/linux.git;branch=rpi-5.4.y'. Unable to fetch URL from any source.

Signed-off-by: Pierre-Jean Texier <pjtexier@koncepto.io>
2020-07-14 17:15:50 +01:00
Christopher Clark
0d398a3b71 linux-raspberrypi: bump to 5.4.50 since upstream was force-pushed
Signed-off-by: Christopher Clark <christopher.w.clark@gmail.com>
2020-07-08 14:09:28 +01:00
Leon Anavi
27d0016b6b libubootenv_%.bbappend: Add fw_env.config
Add fw_env.config that uses at run-time /boot/uboot.env generated
through the boot scripts (specifically boot.cmd.in) from recipe
rpi-u-boot-scr. This configuration file is required to
successfully run fw_printenv from the user space.

Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
2020-07-03 20:49:32 +01:00
Leon Anavi
64bd47fe58 rpi-u-boot-scr: Create uboot.env via boot.cmd.in
Modify boot.cmd.in from recipe rpi-u-boot-scr to create uboot.env
in the /boot partition when using U-Boot. This change is required
to successfully run fw_printenv from the user space.

Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
2020-07-03 20:49:32 +01:00
Leon Anavi
a6f1233d52 lirc: Rename bbappend to match only version 0.10.1
Rename LIRC bbappend file to match only version 0.10.1 because the
applied patch is not compatible with older LIRC versions.

Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
2020-06-25 10:36:13 +01:00
Leon Anavi
260b89ecd1 docs/extra-build-config.md: Infrared
Add instructions how to use variable ENABLE_IR for infrared
support, for example with LIRC.

Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
2020-06-24 17:01:17 +01:00
Leon Anavi
770a69f18d lirc_%.bbappend: Use lircd.service as in Raspbian
Use lircd systemd service similar to the one in Raspbian. Start
lircd with argument --nodaemon after lircd-setup.service.

Edit device in /etc/lirc/lirc_options.conf to switch between
receive and transmit modes (lircd must be restarted after such
change).

Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
2020-06-24 17:01:17 +01:00
Leon Anavi
cdee89b0a0 rpi-base.inc: Include modules if IR is enabled
Add kernel modules gpio-ir and gpio-ir-tx to variable
MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS if ENABLE_IR is set to 1.
Variable ENABLE_IR enables infrared support (for LIRC). This
change affects images based on packagegroup-core-boot, including
the core-image-minimal image.

For other images (based on packagegroup-base) kernel modules
are provide through variable MACHINE_EXTRA_RRECOMMENDS.

Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
2020-06-24 17:01:17 +01:00
Leon Anavi
c482e2cc7c rpi-config: Add ENABLE_IR variable for infrared
Users who want infrared device tree overlays gpio-ir and
gpio-ir-tx to be set in config.txt can now easily do it through
variable ENABLE_IR, for example in local.conf:

ENABLE_IR = "1"

By default the GPIO pin for gpio-ir is set to 18 and the pin for
gpio-ir-tx is 17. Both pins can be easily changed by modifying
variables GPIO_IR and GPIO_IR_TX (for example in local.conf).

Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
2020-06-24 17:01:17 +01:00
Leon Anavi
4499d60e60 lirc: Move to dynamic-layers
Move lirc to dynamic-layers/meta-python/recipes-connectivity/ to
avoid related issues while building rpi-basic-image.

Reported-by: Alan <engineer@iotexpert.com>
Suggested-by:  Khem Raj <raj.khem@gmail.com>
Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
2020-06-24 17:01:17 +01:00
Jon Magnuson
aa47ab631d packagegroup-rpi-test: resolve wireless-regdb conflict
Replaces `wireless-regdb` with `wireless-regdb-static` provided by poky.

Fixes #639.

Signed-off-by: Jon Magnuson <jon.magnuson@gmail.com>
2020-06-24 14:15:27 +01:00
M. ter Woord
5576a22061 Update layer-contents.md to include pi4
Signed-off-by: Matthijs ter Woord <matthijsterwoord@gmail.com>
2020-06-21 19:29:47 +01:00
Khem Raj
5ac6f01333 linux-raspberrypi_5.4.bb: Upgrade to 5.4.47
Drop backported patches which are already in this release

Fixes Issue #658

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2020-06-21 10:45:14 +01:00
Leon Anavi
f927dcd8c6 lirc_%.bbappend: Fix for gpio-ir
Apply Raspberry Pi specific fix to use LIRC with gpio-ir kernel
module with which the signal from /dev/lircX is slightly different
from that of lirc_dev (which was used with older LIRC and kernel
versions). The patch has been published by neuralassembly and he
has shared more details in the Raspberry Pi community forum:
https://www.raspberrypi.org/forums/viewtopic.php?f=28&t=235256

LIRC ticket #359 tracks the upstreaming of this issue:
https://sourceforge.net/p/lirc/tickets/359/

Co-authored-by: neuralassembly <neuralassembly@gmail.com>
Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
2020-06-17 14:50:02 +01:00
Khem Raj
39cf54c3cb linux-raspberrypi_5.4.bb: Move to 5.4.45
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2020-06-13 14:10:23 +01:00
Pierre-Jean Texier
e589e0f3fd linux-raspberrypi: bump to Linux version 4.19.126
Signed-off-by: Pierre-Jean Texier <pjtexier@koncepto.io>
2020-06-05 13:13:07 +01:00
Pierre-Jean Texier
e4ed884688 raspberrypi-firmware: update to current HEAD
Signed-off-by: Pierre-Jean Texier <pjtexier@koncepto.io>
2020-06-05 13:13:07 +01:00
Leon Anavi
dc8638c979 rpi-base.inc: Add infrared dtbo
Add device tree binary overlays gpio-ir-tx and gpio-ir-tx to
support peripherals for sending and receiving infrared signals.

Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
2020-06-04 18:13:08 +01:00
Brandon Verkamp
4982da8d48 docs: Remove reference to xz-compressed sdimg 2020-05-22 15:42:12 +01:00
Brandon Verkamp
a50651ef74 docs: Correct Quick Start instructions to show the new .wic.bz2 extension
Corrects README.md to indicate that the new generated image extension is
.wic.bz2 rather than sdimg as previously stated.

Signed-off-by: Brandon Verkamp <jadelclemens@gmail.com>
2020-05-22 15:42:12 +01:00
Khem Raj
f9b9181521 linux-raspberrypi: Update to latest on 5.4 release
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2020-05-20 12:10:11 +01:00
Khem Raj
6f85d3f665 linux-raspberrypi_5.4.bb: Update to 5.4.35
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2020-05-09 12:17:54 +01:00
Pierre-Jean Texier
aba412e034 linux-raspberrypi: bump to Linux version 4.19.120
Signed-off-by: Pierre-Jean Texier <pjtexier@koncepto.io>
2020-05-09 12:16:52 +01:00
Pierre-Jean Texier
3cda39cda2 raspberrypi-firmware: update to current HEAD
Signed-off-by: Pierre-Jean Texier <pjtexier@koncepto.io>
2020-05-09 12:16:52 +01:00
Leon Anavi
45ee64377b rpi-base.inc: Include modules if I2C is enaled
Add kernel modules i2c-dev and i2c-bcm2708 to variable
MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS if ENABLE_I2C is set to 1.
This affects images based on packagegroup-core-boot, including
the core-image-minimal image.

For other images (based on packagegroup-base) kernel modules
are provide through variable MACHINE_EXTRA_RRECOMMENDS.

Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
2020-04-28 15:13:45 +01:00
Khem Raj
87a44aa75b linux-raspberrypi_5.4.bb: Update to latest
brings in some pinmux and dtoverlays

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2020-04-28 10:36:19 +01:00
Bartłomiej Burdukiewicz
6149445010 linux-raspberrypi_5.4.bb: Update to latest
Signed-off-by: Bartłomiej Burdukiewicz <bartlomiej.burdukiewicz@gmail.com>
2020-04-27 11:56:59 +01:00
Khem Raj
9dd58b1bf2 psplash: Do not define ALTERNATIVE_PRIORITY for non-existing provider
This simply causes build warnings about priority of two packages being
same, but infact this is redundant, therefore remove setting ALTERNATIVE_PRIORITY
for psplash-raspberrypi

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2020-04-20 11:07:49 +01:00
Khem Raj
8c4980db54 linux-firmware-rpidistro: Upgrade to 20190114-1+rpt6
Adjust PV to reflect the release and make it a bit meaningful

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2020-04-20 11:06:25 +01:00
Pierre-Jean Texier
9e67048f32 linux-raspberrypi: bump to Linux version 4.19.115
Signed-off-by: Pierre-Jean Texier <pjtexier@koncepto.io>
2020-04-18 15:56:39 +01:00
Pierre-Jean Texier
7671f666b2 raspberrypi-firmware: update to current HEAD
Signed-off-by: Pierre-Jean Texier <pjtexier@koncepto.io>
2020-04-18 15:56:39 +01:00
Khem Raj
9816a45604 linux-raspberrypi_5.4.bb: Update to latest
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2020-04-16 12:45:04 +01:00
Leon Anavi
0917b60527 rpi-base.inc: Add kernel modules to all images
Add kernel modules, including i2c-dev and i2c-bcm2708, to variable
MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS. This way kernel modules will
be present in all images based on packagegroup-core-boot,
including the core-image-minimal image.

Otherwise, if modules, are in variable MACHINE_EXTRA_RRECOMMENDS
they will be added only in images based on packagegroup-base,
which does not include the core-image-minimal or
core-image-full-cmdline images.

Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
2020-04-15 11:46:58 +01:00
Drew Moseley
c7bc97c97e raspberrypi3: Switch to vc4-fkms-v3d.
This seems to be required to have a functional DSI display.

Signed-off-by: Drew Moseley <drew.moseley@northern.tech>
2020-04-15 11:45:48 +01:00
Khem Raj
3b2ded5ae7 linux-raspberrypi_5.4.bb: Backport the patch to use CHECK macro instead of RET_IF
Revert couple of regressions for selftest

Fixes

| /usr/src/debug/kernel-selftest/1.0-r0/kernel-selftest-1.0/tools/testing/selftests/bpf/test_select_reuseport.c:671: undefined reference to `RET_IF'

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2020-04-15 11:35:23 +01:00
Khem Raj
8d163dd844 linux-raspberrypi_5.4.bb: Enable powersave options in kconfig
Will let system hibernate and suspend, its initial setup, there is more
work needed to get it going fully without problems in userspace, which
will follow

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2020-04-08 22:31:24 +01:00
Khem Raj
9f47df580e linux-raspberrypi_5.4.bb: Update to latest and fix build with binutils 2.34
perf fails to build without bfd patch still, therefore apply it to 5.4
as well.

Update to latest on 5.4 branch

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2020-04-08 22:31:24 +01:00
Khem Raj
d50c60ee28 linux-raspberrypi: Add recipes for kernel 5.4
5.4 is slated to be next hop for linux-raspberrypi, here add the
recipes, default is still 4.19, we can switch that later

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2020-04-08 11:38:35 +01:00
Khem Raj
01b162388e 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: Khem Raj <raj.khem@gmail.com>
2020-04-08 11:38:35 +01:00
Khem Raj
025a2025ea userland: Fix build with gcc10
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2020-04-03 17:34:07 +01:00
Khem Raj
909a962fe1 userland: Update to 20200316 snapshot
- Refresh patches

- userland now needs to create symlinks for egl.pc,glesv2.pc and vg.pc
  when vc4 is not used

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2020-04-03 17:34:07 +01:00
Khem Raj
eaa1314259 qtbase: Drop xkb packageconfig
meta-qt5 master has dropped it too

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2020-04-03 17:34:07 +01:00
Fabio Berton
44d7dd0e4a rpi-u-boot-scr: Set u-boot-default-script as provider
Add u-boot-default-script to the PROVIDES variable to make easier to
replace boot script in another layer just by changing
PREFERRED_PROVIDER_u-boot-default-script variable. Set rpi-u-boot-scr as
the default provider for meta-raspberrypi.

Signed-off-by: Fabio Berton <fabio.berton@ossystems.com.br>
2020-04-03 17:32:19 +01:00
Leon Anavi
acca2a00eb docs/extra-build-config.md: Auto-load I2C modules
Add instructions how to auto-load I2C kernel modules with
KERNEL_MODULE_AUTOLOAD when I2C is enabled.

Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
2020-04-03 14:02:29 +01:00
Khem Raj
12641489df qtbase: Append userland to rdeps iff vc4graphics is not enabled
This avoids adding unnessary dependency at runtime on userland graphics
package when vc4 driver is used

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2020-03-31 11:59:27 +01:00
Orne Brocaar
b7d3f86687 rpi-base.conf: add disable-bt.dtbo and miniuart-bt.dtbo overlays.
Closes #602.

Signed-off-by: Orne Brocaar <info@brocaar.com>
2020-03-31 11:58:30 +01:00
Pierre-Jean Texier
4d5c6edc2c README.md: add status badge for raspberrypi4
Signed-off-by: Pierre-Jean Texier <pjtexier@koncepto.io>
2020-03-30 11:52:34 +01:00
Pierre-Jean Texier
d96ed84212 linux-raspberrypi: bump to Linux version 4.19.113
Signed-off-by: Pierre-Jean Texier <pjtexier@koncepto.io>
2020-03-27 10:32:29 +00:00
Pierre-Jean Texier
5e56eff64f raspberrypi-firmware: update to current HEAD
Signed-off-by: Pierre-Jean Texier <pjtexier@koncepto.io>
2020-03-27 10:32:29 +00:00
Khem Raj
d05d418419 linux-raspberrypi: Get PMU fixes on top of 4.19.108
This fixes Issue #593

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2020-03-20 11:29:27 +00:00
Khem Raj
e1bd6d31dc oeqa: Add rpi specific kernel dmesg parser
These errors are harmless on rpi3/rpi4 [1]

[1] https://github.com/raspberrypi/linux/issues/3195

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2020-03-17 10:33:56 +00:00
Khem Raj
2aab60f22c linux-raspberrypi: Fix building selftest/bpf
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2020-03-16 19:10:44 +00:00
Pierre-Jean Texier
e9d258ec59 layer.conf: add dunfell to compat layer
Signed-off-by: Pierre-Jean Texier <pjtexier@koncepto.io>
2020-03-16 19:09:59 +00:00
Khem Raj
ac5e346167 mesa: Fix patch fuzz
Fixes
ERROR: mesa-2_20.0.1-r0 do_patch: Fuzz detected:

Applying patch 0001-dri2-query-dma-buf-modifiers.patch
patching file src/gallium/state_trackers/dri/dri2.c
Hunk #1 succeeded at 1366 with fuzz 1 (offset -2 lines).

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2020-03-12 16:57:44 +00:00
rkhan467
84cb8538cd mesa: querying dma_buf modifiers for specific formats
mesa wl_drm protocol is the backend for wayland server side which requires
the dmabuf modifiers for some DRM formats on specific devices like RPI.
Currently there is no support of giving any dmabuf modifiers on wl_drm protocol.
This dma_buf modifiers allows EGL implementations to add extra attributes
to drm_fourcc format.

Upstream-Status: Pending

Signed-off-by: Balaji Velmurugan <balaji.velmurugan@ltts.com>
2020-03-10 17:49:23 +00:00
Madhavan Krishnan
c5bc556873 gstreamer: Fix the compilation issue in meta multimedia image
When we tried to build the meta-multimedia-image, we faced the
compilation issue with faad component.

Since faad component has commercial license, we could not able
to build with multimedia image. So we have modified the faad
component to be included when commercial licenese is supported.

Signed-off-by: Madhavan Krishnan <madhavan.krishnan@linaro.org>
2020-03-10 17:24:09 +00:00
Pierre-Jean Texier
bf15756322 raspberrypi-firmware: update to current HEAD
Signed-off-by: Pierre-Jean Texier <pjtexier@koncepto.io>
2020-03-08 20:59:57 +00:00
Pierre-Jean Texier
1ff7696e09 linux-raspberrypi: bump to Linux version 4.19.108
Signed-off-by: Pierre-Jean Texier <pjtexier@koncepto.io>
2020-03-08 20:59:57 +00:00
Martin Jansa
b422a0ae50 linux-raspberrypi: fix perf build with latest binutils
* fixes:
|   LINK     /OE/build/oe-core/tmp-glibc/work/raspberrypi4-oe-linux-gnueabi/perf/1.0-r9/perf-1.0/perf
| /OE/build/oe-core/tmp-glibc/work/raspberrypi4-oe-linux-gnueabi/perf/1.0-r9/perf-1.0/libperf.a(libperf-in.o):srcline.c:function find_address_in_section: error: undefined reference to 'bfd_get_section_flags'
| /OE/build/oe-core/tmp-glibc/work/raspberrypi4-oe-linux-gnueabi/perf/1.0-r9/perf-1.0/libperf.a(libperf-in.o):srcline.c:function find_address_in_section: error: undefined reference to 'bfd_get_section_vma'
| /OE/build/oe-core/tmp-glibc/work/raspberrypi4-oe-linux-gnueabi/perf/1.0-r9/perf-1.0/libperf.a(libperf-in.o):srcline.c:function find_address_in_section: error: undefined reference to 'bfd_get_section_size'
| collect2: error: ld returned 1 exit status
| make[2]: *** [Makefile.perf:519: /OE/build/oe-core/tmp-glibc/work/raspberrypi4-oe-linux-gnueabi/perf/1.0-r9/perf-1.0/perf] Error 1
| make[1]: *** [Makefile.perf:206: sub-make] Error 2
| make: *** [Makefile:70: all] Error 2
| make: Leaving directory '/OE/build/oe-core/tmp-glibc/work/raspberrypi4-oe-linux-gnueabi/perf/1.0-r9/perf-1.0/tools/perf'
| WARNING: exit code 1 from a shell command.

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
2020-02-25 19:55:21 +00:00
Pierre-Jean Texier
7a8c76f056 raspberrypi-firmware: update to current HEAD
Signed-off-by: Pierre-Jean Texier <pjtexier@koncepto.io>
2020-02-24 11:47:53 +00:00
Pierre-Jean Texier
42c0a4d315 linux-raspberrypi: bump to Linux version 4.19.105
Signed-off-by: Pierre-Jean Texier <pjtexier@koncepto.io>
2020-02-21 12:18:38 +00:00
Pierre-Jean Texier
251a351fc3 linux-raspberrypi: bump to Linux version 4.19.102
Signed-off-by: Pierre-Jean Texier <pjtexier@koncepto.io>
2020-02-08 14:19:01 +00:00
Khem Raj
a60d182bf0 gstreamer1.0-plugins-base: Adjust for meson conversion
OE-core now uses meson to build gstreamer

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2020-02-08 14:16:56 +00:00
Pierre-Jean Texier
06c8537bcc raspberrypi-firmware: bump to version 20200205
Signed-off-by: Pierre-Jean Texier <pjtexier@koncepto.io>
2020-02-08 14:15:48 +00:00
Martin Jansa
4801ca3f03 packagegroup-rpi-test: use MACHINE_ARCH
* fixes this error reported by sstate-diff-machines.sh:
   === Comparing signatures for task do_package_write_ipk.sigdata between raspberrypi2 and raspberrypi3 ===                                                                                                                                                              |
  ERROR: packagegroup-rpi-test different signature for task do_package_write_ipk.sigdata between raspberrypi2 and raspberrypi3                                                                                                                                           |
  NOTE: Starting bitbake server...                                                                                                                                                                                                                                       |
  Hash for dependent task packagegroups/packagegroup-rpi-test.bb:do_package changed from 90d4d6b4f44b5c02560c4fd3a1d6143d7c79e75a110db351c99d393a58b5cf26 to 32d7a96f98179695ff0dce057a8501a6920ce7f053a47c3bd6bd50613bd2618b                                            |
  Unable to find matching sigdata for /OE/build/luneos-master/webos-ports/meta-raspberrypi/recipes-core/packagegroups/packagegroup-rpi-test.bb:do_package with hashes 90d4d6b4f44b5c02560c4fd3a1d6143d7c79e75a110db351c99d393a58b5cf26 or 32d7a96f98179695ff0dce057a8501a|
  6920ce7f053a47c3bd6bd50613bd2618b                                                                                                                                                                                                                                      |

* MACHINE_EXTRA_RRECOMMENDS in RRECOMMENDS_${PN} is MACHINE specific, e.g. between raspberrypi2 and raspberrypi3:

  tmp-glibc/sstate-diff/1580322520/raspberrypi2/all-webos-linux/packagegroup-rpi-test/1.0-r0.do_package.sigdata.90d4d6b4f44b5c02560c4fd3a1d6143d7c79e75a110db351c99d393a58b5cf26
  tmp-glibc/sstate-diff/1580322520/raspberrypi3/all-webos-linux/packagegroup-rpi-test/1.0-r0.do_package.sigdata.32d7a96f98179695ff0dce057a8501a6920ce7f053a47c3bd6bd50613bd2618b

  bitbake-diffsigs tmp-glibc/sstate-diff/1580322520/raspberrypi*/*/packagegroup-rpi-test*/*do_package.sig*                                                                                                    |
  NOTE: Starting bitbake server...
  basehash changed from ee2d20ddb4aa98ffefe5c4c56ba2e59833ba94ed3a4523d3e52683209626aa23 to ca3df8d8ef86b298f57c41ffba278dd0330ffb00e7e25943c272c8b3c57a6dc3
  Variable MACHINE_EXTRA_RRECOMMENDS value changed:
  "  kernel-modules udev-rules-rpi {+    linux-firmware-rpidistro-bcm43430     linux-firmware-rpidistro-bcm43455     bluez-firmware-rpidistro-bcm43430a1-hcd     bluez-firmware-rpidistro-bcm4345c0-hcd +}"

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
2020-01-30 16:08:58 +00:00
Martin Jansa
55069cb633 packagegroup-rpi-test: include bigbuckbunny in RRECOMMENDS_${PN} only with meta-multimedia
* resolves:
  ERROR: Nothing RPROVIDES 'bigbuckbunny-480p' (but meta-raspberrypi/recipes-core/packagegroups/packagegroup-rpi-test.bb RDEPENDS on or otherwise requires it)
  NOTE: Runtime target 'bigbuckbunny-480p' is unbuildable, removing...
  Missing or unbuildable dependency chain was: ['bigbuckbunny-480p']
  ERROR: Required build target 'meta-world-pkgdata' has no buildable providers.
  Missing or unbuildable dependency chain was: ['meta-world-pkgdata', 'packagegroup-rpi-test', 'bigbuckbunny-480p']

  when building without meta-multimedia layer included

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
2020-01-30 16:08:58 +00:00
Martin Jansa
3c8fdb4a7a omxplayer: respect virtual/libomxil
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
2020-01-28 10:02:02 +00:00
Pierre-Jean Texier
37d3dd955d linux-raspberrypi: bump to Linux version 4.19.97
Signed-off-by: Pierre-Jean Texier <pjtexier@koncepto.io>
2020-01-24 17:55:20 +00:00
Pierre-Jean Texier
722d837612 rpi-base.inc: use wic.bz2 for all rpi machines by default
This change moves the default image for all rpi machines.
We moved from rpi-sdimg to wic.bz2.

Also enable wic.bmap image generation.

From the documentation in [1], Bmaptool is a generic tool
for creating the block map (bmap) for a file and copying
files using the block map. The idea is that large files,
like raw system image files, can be copied or flashed a
lot faster and more reliably with bmaptool than with
traditional tools, like "dd" or "cp".

Example:

$: sudo bmaptool copy <image-name>.wic.xz /dev/<your-block-device>

[1] - https://github.com/intel/bmap-tools

Signed-off-by: Pierre-Jean Texier <pjtexier@koncepto.io>
2020-01-24 12:09:42 +00:00
Khem Raj
2a1a8e396a rpio: Use python3 during build
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2020-01-24 12:09:42 +00:00
Martin Jansa
2faf9cab72 gstreamer1.0-omx: let virtual/libomxil dependency to pull userland
* and adjust VIRTUAL-RUNTIME_libomxil to pull runtime provider for libomxil

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
2020-01-24 12:09:42 +00:00
Martin Jansa
51bb38b728 gstreamer1.0-plugins-base: adapt to gstreamer1.0 now using meson
* depends on oe-core changes which adds dispmanx PACKAGECONFIG to gstreamer1.0-plugins-base

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
2020-01-24 12:09:42 +00:00
Martin Jansa
30eedfa095 userland: add pkg-config for openmaxil and add virtual/libomxil to PROVIDES
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
2020-01-24 12:09:42 +00:00
Pierre-Jean Texier
d058d2a2cf kas-poky-rpi: add kas file
The kas tool provides an easy mechanism to setup bitbake based projects.

As explained in [1] the key features provided by kas are:

- clone and checkout bitbake layers
- create default bitbake settings (machine, arch, ...)
- launch minimal build environment, reducing risk of host contamination
- initiate bitbake build process

So, let's create a minimal example in this layer to build an image with a
small effort. This seems interesting for new users of the meta-raspberrypi.

For example:

$: sudo pip3 install kas
$: mkdir rpi
$: cd rpi
$: git clone https://github.com/agherzan/meta-raspberrypi.git
$: kas build meta-raspberrypi/kas-poky-rpi.yml

and that's all !

To adjust the construction with specific options (I2C, SPI, ...), simply add
a section as follows:

local_conf_header:
  rpi-specific: |
    ENABLE_I2C = "1"
    RPI_EXTRA_CONFIG = "dtoverlay=pi3-disable-bt"

To configure the machine, the user have to update the 'machine' variable.
And the same for the 'distro'.

[1] - https://kas.readthedocs.io/en/1.0/userguide.html

Signed-off-by: Pierre-Jean Texier <pjtexier@koncepto.io>
2020-01-22 18:09:10 +00:00
Paul Barker
05c86e3160 README: Add documentation badge
Signed-off-by: Paul Barker <pbarker@konsulko.com>
2020-01-20 15:30:24 +00:00
Erik Botö
e7c856ee7b Add support for PiTFT 2.8" with capacitive touch
Add support for the Adafruit PiTFT Plus 320x240 2.8" TFT with
Capacitive Touchscreen, using the same patterns used for the other
versions of the PiTFT screens.

Signed-off-by: Erik Botö <erik.boto@gmail.com>
2020-01-14 16:17:04 +00:00
Andrei Gherzan
09f35259a2 armstubs: Define the new symbols use in Makefile
The tools repository renamed the CC, LD etc symbols to CC7, LD7 etc.
See:
b0c869bc92

Signed-off-by: Andrei Gherzan <andrei@gherzan.ro>
2020-01-14 16:16:46 +00:00
Andrei Gherzan
a9ecd32ae4 raspberrypi-tools: Update to current HEAD
Signed-off-by: Andrei Gherzan <andrei@gherzan.ro>
2020-01-14 16:16:46 +00:00
Andrei Gherzan
adccf43655 pi-bluetooth: Fix signature failures
After bc7b654fee, we made this package
depend on a package that is not allarch while this is. Let's drop it for
this package as well to avoid these sstate signature issues.

Signed-off-by: Andrei Gherzan <andrei@gherzan.ro>
2020-01-14 16:16:20 +00:00
Martin Jansa
6e84890e8c gstreamer1.0-plugins-base: respect opengl DISTRO_FEATURES when vc4graphics is in MACHINE_FEATURES
No virtual/egl provider is available in the default setup with
vc4graphics enabled and neither opengl nor vulkan in DISTRO_FEATURES:

$ bitbake -e virtual/egl | tee env.egl
ERROR: Nothing PROVIDES 'virtual/egl'
vc-graphics-hardfp PROVIDES virtual/egl but was skipped: PREFERRED_PROVIDER_virtual/libgles2 set to mesa, not vc-graphics-hardfp
vc-graphics PROVIDES virtual/egl but was skipped: PREFERRED_PROVIDER_virtual/libgles2 set to mesa, not vc-graphics

$ bitbake -e userland 2>&1 | tee env.userland
ERROR: Nothing RPROVIDES 'libegl-mesa' (but /jenkins/mjansa/build-ros/ros2-dashing-warrior/meta-raspberrypi/recipes-graphics/userland/userland_git.bb RDEPENDS on or otherwise requires it)
NOTE: Runtime target 'libegl-mesa' is unbuildable, removing...
Missing or unbuildable dependency chain was: ['libegl-mesa']
ERROR: Required build target 'userland' has no buildable providers.
Missing or unbuildable dependency chain was: ['userland', 'libegl-mesa']

$ bitbake -e mesa 2>&1 | tee env.mesa
ERROR: Nothing PROVIDES 'mesa'
mesa was skipped: one of 'vulkan opengl' needs to be in DISTRO_FEATURES

$ bitbake -e vc-graphics-hardfp 2>&1 | tee env.vc-graphics-hardfp
ERROR: Nothing PROVIDES 'vc-graphics-hardfp'
vc-graphics-hardfp was skipped: PREFERRED_PROVIDER_virtual/libgles2 set to mesa, not vc-graphics-hardfp

There is unbuildable dependency on virtual/egl from gstreamer1.0-plugins-base because:
1) gstreamer1.0-plugins-base depends on virtual/egl because of "egl" PACKAGECONFIG

2) "egl" PACKAGECONFIG is enabled by
   meta-raspberrypi/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_%.bbappend
   PACKAGECONFIG_GL_rpi = "egl gles2"

   without respecting the "opengl" in DISTRO_FEATURES like the recipe in oe-core does
   openembedded-core/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.14.4.bb:
   PACKAGECONFIG_GL ?= "${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'gles2 egl', '', d)}"

3) virtual/egl is provided either by:
   - userland (only without vc4graphics in MACHINE_FEATURES):
     meta-raspberrypi/recipes-graphics/userland/userland_git.bb:PROVIDES += "${@bb.utils.contains("MACHINE_FEATURES", "vc4graphics", "", "virtual/libgles2 virtual/egl", d)}"
   - mesa (selected with vc4graphics in MACHINE_FEATURES)
     meta-raspberrypi/conf/machine/include/rpi-default-providers.inc:PREFERRED_PROVIDER_virtual/egl ?= "${@bb.utils.contains("MACHINE_FEATURES", "vc4graphics", "mesa", "userland", d)}"
   - vc-graphics(-hardfp)
     meta-raspberrypirecipes-graphics/vc-graphics/vc-graphics.inc:PROVIDES = "virtual/libgles2 virtual/egl"

4) vc-graphics(-hardfp) recipe are skipped in default setup, because with vc4graphics being
   in MACHINE_FEATURES by default since:
   690bdca574
   the PREFERRED_PROVIDER_virtual/libgles2 is set to mesa in:
   conf/machine/include/rpi-default-providers.inc:PREFERRED_PROVIDER_virtual/libgles2 ?= "${@bb.utils.contains("MACHINE_FEATURES", "vc4graphics", "mesa", "userland", d)}"

   resulting in skipping the other virtual/libgles2 providers:
   vc-graphics-hardfp PROVIDES virtual/egl but was skipped: PREFERRED_PROVIDER_virtual/libgles2 set to mesa, not vc-graphics-hardfp
   vc-graphics PROVIDES virtual/egl but was skipped: PREFERRED_PROVIDER_virtual/libgles2 set to mesa, not vc-graphics

5) mesa is skipped when neither opengl nor vulkan are in DISTRO_FEATURES

6) userland doesn't provide virtual/egl because we have the default vc4graphics
   meta-raspberrypi/recipes-graphics/userland/userland_git.bb:PROVIDES += "${@bb.utils.contains("MACHINE_FEATURES", "vc4graphics", "", "virtual/libgles2 virtual/egl", d)}"
   and it cannot be built anyway, because with the default vc4graphics it depends on libegl-mesa:
   meta-raspberrypi/recipes-graphics/userland/userland_git.bb:RDEPENDS_${PN} += "${@bb.utils.contains("MACHINE_FEATURES", "vc4graphics", "libegl-mesa", "", d)}"
   and libegl-mesa is provided only by mesa recipe from oe-core which in turn
   requires either "opengl" or "vulkan" to be in DISTRO_FEATURES

This causes a lot of unresolved dependencies in default setup with vc4graphics but without opengl.
- with Yocto 2.6 Thud and older it worked, because vc4graphics wasn't enabled by default before:
  690bdca574

To build gstreamer1.0-plugins-base with egl PACKAGECONFIG enabled you have 2 options:
A) Just add "opengl" to DISTRO_FEATURES and use the default vc4graphics with mesa providing virtual/egl
B) Use DISABLE_VC4GRAPHICS added in
   96c8459c93
   to explicitly disable vc4graphics and use userland to provide virtual/egl

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
2020-01-13 18:23:28 +00:00
Pierre-Jean Texier
29fd4d430a linux-raspberrypi: bump to Linux version 4.19.93
Signed-off-by: Pierre-Jean Texier <pjtexier@koncepto.io>
2020-01-13 18:00:50 +00:00
Ricardo Salveti
c3b3cd6efd raspberrypi-cm3.conf: drop KBUILD_DEFCONFIG definition
KBUILD_DEFCONFIG should be defined by the kernel recipe instead, such as
linux-raspberrypi.

Signed-off-by: Ricardo Salveti <ricardo@foundries.io>
2020-01-08 11:24:51 +00:00
Ricardo Salveti
12bbdd91b2 linux-raspberrypi: define kbuild defconfig for rpi cm3
Also define a default kbuild defconfig value for rpi cm3.

Signed-off-by: Ricardo Salveti <ricardo@foundries.io>
2020-01-08 11:24:51 +00:00
Allen Wild
a4c8118676 conf/machine: add pci to MACHINE_FEATURES for Pi4
This pulls in the pciutils package (including `lspci`) via
packagegroup-base.

Signed-off-by: Allen Wild <allenwild93@gmail.com>
2020-01-07 10:16:54 +00:00
Pierre-Jean Texier
a953fc0f9b raspi-gpio: bump to revision 4edfde1
This includes the following changes:

4edfde1 Update raw output to show pull registers on 2711

Signed-off-by: Pierre-Jean Texier <pjtexier@koncepto.io>
2019-12-31 13:13:53 +00:00
Pierre-Jean Texier
e57d33298c rpi-gpio: bump to version 0.7.0
Also:
  - update the HOMEPAGE location
  - refresh patch
  - use 'distutils3' to support python3 -> python2 is now deprecated

Signed-off-by: Pierre-Jean Texier <pjtexier@koncepto.io>
2019-12-31 13:12:48 +00:00
Pierre-Jean Texier
d059288fa0 linux-raspberrypi-rt: bump to revision e2e9cec
This version includes a fix for the USB part.

Fixes:

[    2.988098] CPU: 3 PID: 79 Comm: irq/56-dwc_otg_ Not tainted 4.19.71-rt24 #1
[    2.988102] Hardware name: BCM2835
[    2.988134] [<801120a8>] (unwind_backtrace) from [<8010d260>] (show_stack+0x20/0x24)
[    2.988151] [<8010d260>] (show_stack) from [<8085340c>] (dump_stack+0xbc/0x100)
[    2.988167] [<8085340c>] (dump_stack) from [<80121160>] (__warn.part.0+0xcc/0xe8)
[    2.988182] [<80121160>] (__warn.part.0) from [<80121314>] (warn_slowpath_null+0x54/0x5c)
[    2.988197] [<80121314>] (warn_slowpath_null) from [<8014f120>] (migrate_disable+0x220/0x

Signed-off-by: Pierre-Jean Texier <pjtexier@koncepto.io>
2019-12-24 21:09:51 +00:00
Michael Baisch
ef6555c09a linux-raspberrypi.inc: no longer set CONFIG_LOCALVERSION to empty string
Fixes: #533

Signed-off-by: Michael Baisch <baisch@tau-tec.com>
2019-12-23 14:13:18 +00:00
Leon Anavi
bc7b654fee pi-bluetooth: Runtime depends on udev-rules-rpi
Add udev-rules-rpi as a runtime dependency. It brings udev rules
for creating /dev/serial1. This way hciuart.service, provided by
pi-bluetooth, will be successfully started because it depends
on dev-serial1.device. As a result the Bluetooth module will
be properly attached via UART HCI to BlueZ stack.

Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
2019-12-23 14:12:39 +00:00
Andrei Gherzan
a0a5d3848e linux-raspberrypi: Bump to 4.19 recipe to 4.19.88
Signed-off-by: Andrei Gherzan <andrei@gherzan.ro>
2019-12-20 19:08:31 +00:00
Andrei Gherzan
655dbf3de8 raspberrypi-firmware: Update to current HEAD
This RaspberryPi firmware update includes a change in the license file
as well[1]. This change is for supporting customisation program.

[1] dd9e9ebb5d

As a result of this change, we update the hash in the bcm2835-bootfiles
recipe as well.

Signed-off-by: Andrei Gherzan <andrei@gherzan.ro>
2019-12-20 19:08:31 +00:00
Francois Retief
3ae288aa38 sdcard_image-rpi.bbclass: Use IMAGE_NAME_SUFFIX variable in SDIMG
Use the IMAGE_NAME_SUFFIX variable to build the SDIMG name. Some layers,
notably meta-mender, change the IMAGE_NAME_SUFFIX variable to something
other that ".rootfs", causing build failures.

Signed-off-by: Francois Retief <fgretief@gmail.com>
2019-12-05 12:45:02 +00:00
Pierre-Jean Texier
ed6b75ba69 pi-blaster: bump to revision befd8ef
Also:
 - remove upstreamed patch.
 - update LIC_FILES_CHKSUM: License in the README was moved a
   couple of lines below

Signed-off-by: Pierre-Jean Texier <pjtexier@koncepto.io>
2019-11-12 17:07:36 +00:00
Pierre-Jean Texier
a430f1e50a wiringpi: remove obsolete files
Since commit e050601 ("wiringpi: Delete"), wiringpi does not
exits anymore.

Signed-off-by: Pierre-Jean Texier <pjtexier@koncepto.io>
2019-11-11 10:55:27 +00:00
Pierre-Jean Texier
8672b8656d raspi-gpio: bump to revision 2eaa8b8
This includes the following changes:

2eaa8b8 Initialise hwbase so that access without /dev/gpiomem works again
f36777c Whitespace tidyup (and re-ran astyle). No functional changes.
80fa7d0 Add support for 2711
bf7f4c8 Reformat with astyle (cosmetic change)
aa55bbd Autoreconf for Buster
5e453d0 raspi-gpio: Fix handling of "funcs" mode

Signed-off-by: Pierre-Jean Texier <pjtexier@koncepto.io>
2019-11-08 11:15:39 +01:00
Andrei Gherzan
b0600bf1ee linux-raspberrypi: Bump to 4.19 recipe to 4.19.81
Signed-off-by: Andrei Gherzan <andrei@gherzan.ro>
2019-11-08 11:15:04 +01:00
Andrei Gherzan
55b9bd6ef3 linux-firmware-rpidistro: Bump revision
This reverts the last firmware update where enabling WiFi breaks
Bluetooth connectivity[1].

[1] https://github.com/RPi-Distro/firmware-nonfree/issues/7

Signed-off-by: Andrei Gherzan <andrei@gherzan.ro>
2019-11-08 11:15:04 +01:00
Andrei Gherzan
b721933013 raspberrypi-tools: Update to current HEAD
Signed-off-by: Andrei Gherzan <andrei@gherzan.ro>
2019-11-08 11:15:04 +01:00
Andrei Gherzan
7f78604c4c raspberrypi-firmware: Update to current HEAD
Signed-off-by: Andrei Gherzan <andrei@gherzan.ro>
2019-11-08 11:15:04 +01:00
Andrei Gherzan
018683d24b pi-bluetooth: Update to latest version (0.1.12)
Signed-off-by: Andrei Gherzan <andrei@gherzan.ro>
2019-11-08 11:15:04 +01:00
Paul Barker
254c9366b9 vc-graphics: Clarify license conditions
The license text matches the 'Broadcom-RPi' custom license used in
bcm2835-bootfiles.

Signed-off-by: Paul Barker <paul@betafive.co.uk>
2019-10-24 14:08:16 +01:00
Paul Barker
ae6611ea46 bcm2835-bootfiles: Clarify license conditions
We define a new 'Broadcom-RPi' license and include the full text in our
custom-licenses directory.

Signed-off-by: Paul Barker <paul@betafive.co.uk>
2019-10-24 14:08:16 +01:00
Paul Barker
55d521a888 armstubs: License is BSD-3-Clause
All source files in the armstubs directory have a 3-clause BSD license.
The Makefile doesn't appear to use any files from outside this directory
during the build.

Signed-off-by: Paul Barker <paul@betafive.co.uk>
2019-10-24 14:08:16 +01:00
Paul Barker
a4bbd10d46 licenses: Drop unused Broadcom license file
Signed-off-by: Paul Barker <paul@betafive.co.uk>
2019-10-24 14:08:16 +01:00
Martin Jansa
baba59dc28 linux-raspberrypi=4.19.80 bcm2835-bootfiles=20191021
* Upgrade the kernel to latest with corresponding firmware.

* This VC4 firmware is compatible with network boot described here:
  https://github.com/raspberrypi/rpi-eeprom/blob/master/firmware/raspberry_pi4_network_boot_beta.md

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
2019-10-24 14:07:52 +01:00
Patrick Vacek
4776ecc532 u-boot: drop patches for RPi4 merged upstream.
Signed-off-by: Patrick Vacek <patrickvacek@gmail.com>
2019-10-23 11:35:53 +01:00
229 changed files with 80404 additions and 2190 deletions

7
.github/CODE_OF_CONDUCT.md vendored Normal file
View File

@@ -0,0 +1,7 @@
## Code of Conduct
This project has adopted the [Contributor
Covenant](https://www.contributor-covenant.org/). For details, see the full
text [here](https://www.contributor-covenant.org/version/2/1/code_of_conduct/).
For more information, additional questions or comments contact the project's
maintainers.

47
.github/actions/docker-build/action.yml vendored Normal file
View File

@@ -0,0 +1,47 @@
# SPDX-FileCopyrightText: Andrei Gherzan <andrei.gherzan@huawei.com>
#
# SPDX-License-Identifier: MIT
name: "Build a docker image"
inputs:
docker_image:
required: true
description: "The name of the docker image"
id:
required: true
description: "Namespace for the image"
runs:
using: "composite"
steps:
- name: Build the ${{ inputs.docker_image }} docker image
shell: bash
# We run this unconditionally even if the change doesn't touch the
# relevant docker files because there is a chance that another PR (or
# something else) rebuilt the local image. For example if the first
# version of the PR included change for the relevant docker image but a
# subsequent push to the PR branch dropped them. In this way we rebuild
# the image to avoid using the changes from the previous push.
run: |
cd .github/workflows/docker-images/
# We build a temporary image namespaced by the PR number so we can
# handle multiple runners on the same host using the same docker
# storage.
tries=3
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
# 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
# untagged image first (dangling) before tagging it at the end.
# If between these two operations a dangling cleanup happens,
# build fails.
break
fi
n=$((n+1))
done
[ "$n" -lt "$tries" ]
echo "Temporary image built in ${{ inputs.docker_image }}."

View File

@@ -0,0 +1,18 @@
# SPDX-FileCopyrightText: Andrei Gherzan <andrei.gherzan@huawei.com>
#
# SPDX-License-Identifier: MIT
name: "Cleanup dangling docker images"
runs:
using: "composite"
steps:
- name: Cleanup dangling images
shell: bash
run: |
echo -n "Cleanup dangling images... "
if ! docker rmi $(docker images --filter "dangling=true" -q --no-trunc) > /dev/null 2>&1; then
echo "no dangling images found."
else
echo "done."
fi

View File

@@ -0,0 +1,19 @@
# SPDX-FileCopyrightText: Andrei Gherzan <andrei.gherzan@huawei.com>
#
# SPDX-License-Identifier: MIT
name: "Cleanup docker storage"
inputs:
docker_image:
required: true
description: "The name of the docker image"
runs:
using: "composite"
steps:
- name: Cleanup temporary image
shell: bash
run: |
echo "Cleanup ${{ inputs.docker_image }} image..."
docker rmi "${{ inputs.docker_image }}" || true

View File

@@ -0,0 +1,23 @@
# SPDX-FileCopyrightText: Andrei Gherzan <andrei.gherzan@huawei.com>
#
# SPDX-License-Identifier: MIT
name: Cancel redundant workflows
on:
workflow_run:
workflows:
- "Builds"
- "Compliance"
- "Yocto Compatible"
types:
- requested
jobs:
cancel-redundant-workflows:
runs-on: ubuntu-latest
steps:
- uses: styfle/cancel-workflow-action@0.10.0
with:
all_but_latest: true
workflow_id: ${{ github.event.workflow.id }}

47
.github/workflows/compliance.yml vendored Normal file
View File

@@ -0,0 +1,47 @@
# SPDX-FileCopyrightText: Andrei Gherzan <andrei.gherzan@huawei.com>
#
# SPDX-License-Identifier: MIT
name: Compliance
on:
pull_request:
jobs:
dco:
name: DCO
runs-on: ubuntu-latest
steps:
- name: Checkout the code
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Build a temporary DCO image
uses: ./.github/actions/docker-build
with:
docker_image: dco-check
id: ${{ github.event.number }}
- name: Do DCO check
run: |
docker run --rm -v "$GITHUB_WORKSPACE:/work:ro" \
--env "BASE_REF=$GITHUB_BASE_REF" \
"dco-check-${{ github.event.number }}"
- name: Cleanup temporary docker image
uses: ./.github/actions/docker-clean-image
with:
docker_image: dco-check-${{ github.event.number }}
if: always()
- name: Cleanup dangling docker images
uses: ./.github/actions/docker-clean-dangling
if: always()
reuse:
name: reuse
runs-on: ubuntu-latest
steps:
- name: Checkout the code
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Do reuse check
continue-on-error: true
uses: fsfe/reuse-action@v1

View File

@@ -0,0 +1,21 @@
<!--
SPDX-FileCopyrightText: Andrei Gherzan <andrei.gherzan@huawei.com>
SPDX-License-Identifier: MIT
-->
# Docker images for CI
Each directory contains the files for a docker image.
## Building an image
When building a docker image, the build context is expected to be where this
`README.md` file resides. This means that building the images will require
passing the appropriate `-f` argument.
Here is an example for building the `dco-check` image:
```
docker build . -f dco-check/Dockerfile -t dco-check
```

View File

@@ -0,0 +1,13 @@
# SPDX-FileCopyrightText: Andrei Gherzan <andrei.gherzan@huawei.com>
#
# SPDX-License-Identifier: MIT
FROM christophebedard/dco-check:latest
# Run under normal user called 'ci'
RUN useradd --create-home --uid 1000 --shell /usr/bin/bash ci
USER ci
COPY ./dco-check/entrypoint.sh /
COPY ./utils.sh /
ENTRYPOINT ["/entrypoint.sh"]

View File

@@ -0,0 +1,16 @@
<!--
SPDX-FileCopyrightText: Andrei Gherzan <andrei.gherzan@huawei.com>
SPDX-License-Identifier: MIT
-->
# Docker image for DCO checks
This image provides the environment and the logic of running a DCO check
against a repository.
## Configuration
The `entrypoint.sh` script assumes at runtime that the repository to be checked
is available under `/work`. This path is to be populated via bind mounts when
running the container.

View File

@@ -0,0 +1,29 @@
#!/bin/sh
# SPDX-FileCopyrightText: Andrei Gherzan <andrei.gherzan@huawei.com>
#
# SPDX-License-Identifier: MIT
set -e
# shellcheck disable=SC1091
. /utils.sh
GIT_REPO_PATH="/work"
[ -n "$BASE_REF" ] ||
error "DCO checks needs to know the target branch. Make sure that is set in BASE_REF."
[ -d "$GIT_REPO_PATH/.git" ] ||
error "Can't find a git checkout under $GIT_REPO_PATH ."
cd "$GIT_REPO_PATH"
# The GitHub runner user and the container user might differ making git error
# out with:
# error: fatal: detected dubious ownership in repository at '/work'
# Avoid this as the security risk is minimum here while guarding the git hooks
# via PRs.
git config --global --add safe.directory /work
dco-check \
--verbose \
--default-branch "origin/$BASE_REF"

View File

@@ -0,0 +1,28 @@
#!/bin/sh
# SPDX-FileCopyrightText: Andrei Gherzan <andrei.gherzan@huawei.com>
#
# SPDX-License-Identifier: MIT
_log() {
_level="$1"
_msg="$2"
echo "[$_level] $_msg"
}
error() {
_msg="$1"
_log "ERR" "$1"
exit 1
}
warn() {
_msg="$1"
_log "WRN" "$1"
exit 1
}
log() {
_msg="$1"
_log "LOG" "$1"
}

View File

@@ -0,0 +1,39 @@
# SPDX-FileCopyrightText: Andrei Gherzan <andrei.gherzan@huawei.com>
#
# SPDX-License-Identifier: MIT
FROM ubuntu:20.04
ARG DEBIAN_FRONTEND="noninteractive"
RUN apt-get update -qq
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
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
# en_US.UTF-8 is required by the build system
RUN eatmydata apt-get install -qq -y locales \
&& echo "en_US.UTF-8 UTF-8" > /etc/locale.gen \
&& locale-gen
ENV LANG en_US.utf8
RUN eatmydata apt-get clean && rm -rf /var/lib/apt/lists/*
# Have bash as shell
RUN echo "dash dash/sh boolean false" | debconf-set-selections \
&& dpkg-reconfigure dash
# Run under normal user called 'ci'
RUN useradd --create-home --uid 1000 --shell /usr/bin/bash ci
USER ci
WORKDIR /home/ci
COPY ./yocto-builder/entrypoint-yocto-check-layer.sh /
COPY ./yocto-builder/entrypoint-build.sh /
COPY ./utils.sh /

View File

@@ -0,0 +1,16 @@
<!--
SPDX-FileCopyrightText: Andrei Gherzan <andrei.gherzan@huawei.com>
SPDX-License-Identifier: MIT
-->
# Docker image for builds
This defines the docker image for running Yocto/OE based operations/builds. It
privides multiple scripts for driving different operations.
## Configuration
The `entrypoint` scripts assumes at runtime that the repository to drive the
operation against is available under `/work`. This path is to be populated via
bind mounts when running the container.

View File

@@ -0,0 +1,62 @@
#!/bin/sh
# SPDX-FileCopyrightText: Andrei Gherzan <andrei.gherzan@huawei.com>
#
# SPDX-License-Identifier: MIT
set -ex
# shellcheck disable=SC1091
. /utils.sh
META_RASPBERRYPI_PATH="/work"
[ -n "$BASE_REF" ] ||
error "Target branch is needed. Make sure that is set in BASE_REF."
[ -d "$META_RASPBERRYPI_PATH/.git" ] ||
error "Can't find a git checkout under $META_RASPBERRYPI_PATH ."
[ -n "$MACHINE" ] ||
error "Machine to be used for build not provided."
[ -n "$IMAGE" ] ||
error "Image to build not provided."
TEMP_DIR="$(mktemp -d)"
cd "$TEMP_DIR"
REPOS=" \
git://git.yoctoproject.org/poky.git \
"
for repo in $REPOS; do
log "Cloning $repo on branch $BASE_REF..."
git clone --depth 1 --branch "$BASE_REF" "$repo"
done
# shellcheck disable=SC1091,SC2240
. ./poky/oe-init-build-env build
# Build configuration
printf "\n# ------ ci ------\n" >> conf/local.conf
[ -z "$SSTATE_DIR" ] || echo SSTATE_DIR = \""$SSTATE_DIR"\" >> conf/local.conf
[ -z "$DL_DIR" ] || echo DL_DIR = \""$DL_DIR"\" >> conf/local.conf
[ -z "$DISTRO" ] || echo DISTRO = \""$DISTRO"\" >> conf/local.conf
cat <<EOCONF >>conf/local.conf
BB_NUMBER_THREADS = "6"
PARALLEL_MAKE = "-j 6"
DISTRO_FEATURES:append = " systemd"
VIRTUAL-RUNTIME_init_manager = "systemd"
DISTRO_FEATURES_BACKFILL_CONSIDERED:append = " sysvinit"
VIRTUAL-RUNTIME_initscripts = "systemd-compat-units"
LICENSE_FLAGS_ACCEPTED = "synaptics-killswitch"
EOCONF
# Add the BSP layer
bitbake-layers add-layer "$META_RASPBERRYPI_PATH"
# Log configs for debugging purposes
for f in 'conf/local.conf' 'conf/bblayers.conf'; do
printf "\n------ %s ------\n" "$f"
cat "$f"
done
# Fire!
MACHINE="$MACHINE" bitbake "$IMAGE"

View File

@@ -0,0 +1,33 @@
#!/bin/sh
# SPDX-FileCopyrightText: Andrei Gherzan <andrei.gherzan@huawei.com>
#
# SPDX-License-Identifier: MIT
set -ex
# shellcheck disable=SC1091
. /utils.sh
GIT_REPO_PATH="/work"
[ -n "$BASE_REF" ] ||
error "Target branch is needed. Make sure that is set in BASE_REF."
[ -d "$GIT_REPO_PATH/.git" ] ||
error "Can't find a git checkout under $GIT_REPO_PATH ."
TEMP_DIR="$(mktemp -d)"
cd "$TEMP_DIR"
REPOS=" \
git://git.yoctoproject.org/poky.git \
"
for repo in $REPOS; do
log "Cloning $repo on branch $BASE_REF..."
git clone --depth 1 --branch "$BASE_REF" "$repo"
done
# shellcheck disable=SC1091,SC2240
. ./poky/oe-init-build-env build
yocto-check-layer --with-software-layer-signature-check --debug \
"$GIT_REPO_PATH"

22
.github/workflows/mirror.yml vendored Normal file
View File

@@ -0,0 +1,22 @@
# SPDX-FileCopyrightText: Andrei Gherzan <andrei.gherzan@huawei.com>
#
# SPDX-License-Identifier: MIT
name: Mirrors
on: [ push, delete, create ]
concurrency:
group: git-mirror-me
jobs:
yocto-mirror:
name: Yocto Git Mirror
runs-on: ubuntu-latest
steps:
- uses: agherzan/git-mirror-me-action@11f54c7186724daafbe5303b5075954f1a19a63e
env:
GMM_SSH_PRIVATE_KEY: ${{ secrets.YOCTO_META_RASPBERRYPI_SSH_PRIVATE_KEY }}
GMM_SSH_KNOWN_HOSTS: ${{ secrets.YOCTO_META_RASPBERRYPI_SSH_KNOWN_HOSTS }}
GMM_DST_REPO: "ssh://git@push.yoctoproject.org/meta-raspberrypi"
GMM_DEBUG: "1"

88
.github/workflows/yocto-builds.yml vendored Normal file
View File

@@ -0,0 +1,88 @@
# SPDX-FileCopyrightText: Andrei Gherzan <andrei.gherzan@huawei.com>
#
# SPDX-License-Identifier: MIT
---
name: Builds
on:
pull_request:
jobs:
build:
strategy:
fail-fast: true
matrix:
machine:
- raspberrypi
- raspberrypi0-2w-64
- raspberrypi0-2w
- raspberrypi0
- raspberrypi0-wifi
- raspberrypi2
- raspberrypi3-64
- raspberrypi3
- raspberrypi4-64
- raspberrypi4
- raspberrypi-cm3
- raspberrypi-cm
- raspberrypi-armv7
- raspberrypi-armv8
image: [rpi-test-image]
distro: [poky]
runs-on: [self-hosted, Linux]
name: ${{ matrix.machine }}/${{ matrix.image }}/poky/systemd
env:
DL_DIR: /var/lib/ci/yocto/downloads
SSTATE_DIR: /var/lib/ci/yocto/sstate
steps:
- name: Checkout the code
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Define Yocto build files
id: changed-files-specific
uses: tj-actions/changed-files@v24
with:
files: |
.github/actions/**
.github/workflows/docker-images/yocto-builder/**
.github/workflows/docker-images/*.sh
.github/workflows/yocto-builds.yml
classes/**
conf/**
dynamic-layers/**
files/**
lib/**
recipes-**
wic/**
- name: Build a temporary yocto-builder image
uses: ./.github/actions/docker-build
with:
docker_image: yocto-builder
id: ${{ github.event.number }}
if: steps.changed-files-specific.outputs.any_changed == 'true'
- name: Build the image
run: |
docker run --rm \
-v "$GITHUB_WORKSPACE:/work:ro" \
-v "$DL_DIR:$DL_DIR:rw" \
-v "$SSTATE_DIR:$SSTATE_DIR:rw" \
--env "BASE_REF=$GITHUB_BASE_REF" \
--env "MACHINE=${{ matrix.machine }}" \
--env "DISTRO=${{ matrix.distro }}" \
--env "IMAGE=${{ matrix.image }}" \
--env "DL_DIR=$DL_DIR" \
--env "SSTATE_DIR=$SSTATE_DIR" \
"yocto-builder-${{ github.event.number }}" \
/entrypoint-build.sh
if: steps.changed-files-specific.outputs.any_changed == 'true'
- name: Cleanup temporary docker image
uses: ./.github/actions/docker-clean-image
with:
docker_image: yocto-builder-${{ github.event.number }}
if: always()
- name: Cleanup dangling docker images
uses: ./.github/actions/docker-clean-dangling
if: always()

57
.github/workflows/yocto-layer.yml vendored Normal file
View File

@@ -0,0 +1,57 @@
# SPDX-FileCopyrightText: Andrei Gherzan <andrei.gherzan@huawei.com>
#
# SPDX-License-Identifier: MIT
---
name: Yocto Compatible
on:
pull_request:
jobs:
yocto-check-layer:
name: Validate with yocto-check-layer
runs-on: [self-hosted, Linux]
steps:
- name: Checkout the code
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Define Yocto build files
id: changed-files-specific
uses: tj-actions/changed-files@v24
with:
files: |
.github/actions/**
.github/workflows/docker-images/yocto-builder/**
.github/workflows/docker-images/*.sh
.github/workflows/yocto-builds.yml
classes/**
conf/**
dynamic-layers/**
files/**
lib/**
recipes-**
wic/**
- name: Build a temporary yocto-builder image
uses: ./.github/actions/docker-build
with:
docker_image: yocto-builder
id: ${{ github.event.number }}
if: steps.changed-files-specific.outputs.any_changed == 'true'
- name: Run yocto-check-layer
run: |
docker run --rm -v "$GITHUB_WORKSPACE:/work:ro" \
--env "BASE_REF=$GITHUB_BASE_REF" \
"yocto-builder-${{ github.event.number }}" \
/entrypoint-yocto-check-layer.sh
if: steps.changed-files-specific.outputs.any_changed == 'true'
- name: Cleanup temporary docker image
uses: ./.github/actions/docker-clean-image
with:
docker_image: yocto-builder-${{ github.event.number }}
if: always()
- name: Cleanup dangling docker images
uses: ./.github/actions/docker-clean-dangling
if: always()

2
.gitignore vendored
View File

@@ -5,3 +5,5 @@ build*
*.rej
*.log
docs/_build
/layers
*.pyc

6
.readthedocs.yaml Normal file
View File

@@ -0,0 +1,6 @@
version: 2
python:
version: "3.7"
install:
- requirements: docs/requirements.txt

View File

@@ -2,16 +2,31 @@
Yocto BSP layer for the Raspberry Pi boards - <http://www.raspberrypi.org/>.
[![Build Status](https://yocto-ci.resin.io/job/meta-raspberrypi1/badge/icon)](https://yocto-ci.resin.io/job/meta-raspberrypi1)
[![Build Status](https://yocto-ci.resin.io/job/meta-raspberrypi2/badge/icon)](https://yocto-ci.resin.io/job/meta-raspberrypi2)
[![Build Status](https://yocto-ci.resin.io/job/meta-raspberrypi3/badge/icon)](https://yocto-ci.resin.io/job/meta-raspberrypi3)
[![Matrix](https://img.shields.io/matrix/meta-raspberrypi:cub.icu.svg?server_fqdn=matrix.cub.icu)](https://matrix.to/#/#meta-raspberrypi:cub.icu)
[![Documentation Status](https://readthedocs.org/projects/meta-raspberrypi/badge/?version=latest)](https://meta-raspberrypi.readthedocs.io/en/latest/?badge=latest)
[![Matrix](https://img.shields.io/badge/chat-meta--raspberrypi-brightgreen)](https://matrix.to/#/#meta-raspberrypi:matrix.org)
<table border="0" rules="none">
<tr border="0">
<td width="140" height="100" align="center">
<br />
<a href="https://www.yoctoproject.org/ecosystem/branding/">
<img alt="Yocto Project Layer Compatible" src="img/LF_17_02_Yocto-Badge-Update_Compatible_Final_Blank.png">
</a>
</td>
<td width="150" height="100" align="center">
Sponsored by:<br />
<a href="https://balena.io">
<img alt="balena.io" src="img/balena.png">
</a>
</td>
</tr>
</table>
## Quick links
* Git repository web frontend:
<https://github.com/agherzan/meta-raspberrypi>
* Mailing list (yocto mailing list): <yocto@yoctoproject.org>
* Mailing list (yocto mailing list): <yocto@lists.yoctoproject.org>
* Issues management (Github Issues):
<https://github.com/agherzan/meta-raspberrypi/issues>
* Documentation: <http://meta-raspberrypi.readthedocs.io/en/latest/>
@@ -26,9 +41,15 @@ The core BSP part of meta-raspberrypi should work with different
OpenEmbedded/Yocto distributions and layer stacks, such as:
* Distro-less (only with OE-Core).
* Angstrom.
* Yoe Disto (Video and Camera Products).
* Yocto/Poky (main focus of testing).
## Yocto Project Compatible Layer
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).
## Dependencies
This layer depends on:
@@ -37,20 +58,44 @@ This layer depends on:
* branch: master
* revision: HEAD
* URI: git://git.openembedded.org/meta-openembedded
* layers: meta-oe, meta-multimedia, meta-networking, meta-python
* branch: master
* revision: HEAD
## Quick Start
1. source poky/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
5. dd to a SD card the generated sdimg file (use xzcat if rpi-sdimg.xz is used)
6. Boot your RPI.
5. Use bmaptool to copy the generated .wic.bz2 file to the SD card
6. Boot your RPI
## 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
To adjust the build configuration with specific options (I2C, SPI, ...), simply add
a section as follows:
```
local_conf_header:
rpi-specific: |
ENABLE_I2C = "1"
RPI_EXTRA_CONFIG = "dtoverlay=pi3-disable-bt"
```
To configure the machine, you have to update the `machine` variable.
And the same for the `distro`.
For further information, you can read more at <https://kas.readthedocs.io/en/latest/index.html>
## Contributing
You can send patches using the GitHub pull request process or/and through the
Yocto mailing list. Refer to the
[documentation](https://meta-raspberrypi.readthedocs.io/en/latest/contributing.html)
for more information.
## Maintainers
* Andrei Gherzan `<andrei at gherzan.ro>`
* Andrei Gherzan `<andrei at gherzan.com>`

View File

@@ -13,31 +13,25 @@ inherit image_types
# Default Free space = 1.3x
# Use IMAGE_OVERHEAD_FACTOR to add more space
# <--------->
# 4MiB 40MiB SDIMG_ROOTFS
# 4MiB 48MiB SDIMG_ROOTFS
# <-----------------------> <----------> <---------------------->
# ------------------------ ------------ ------------------------
# | IMAGE_ROOTFS_ALIGNMENT | BOOT_SPACE | ROOTFS_SIZE |
# ------------------------ ------------ ------------------------
# ^ ^ ^ ^
# | | | |
# 0 4MiB 4MiB + 40MiB 4MiB + 40Mib + SDIMG_ROOTFS
# 0 4MiB 4MiB + 48MiB 4MiB + 48Mib + SDIMG_ROOTFS
# This image depends on the rootfs image
IMAGE_TYPEDEP_rpi-sdimg = "${SDIMG_ROOTFS_TYPE}"
# Set kernel and boot loader
IMAGE_BOOTLOADER ?= "bcm2835-bootfiles"
# Kernel image name
SDIMG_KERNELIMAGE_raspberrypi ?= "kernel.img"
SDIMG_KERNELIMAGE_raspberrypi2 ?= "kernel7.img"
SDIMG_KERNELIMAGE_raspberrypi3-64 ?= "kernel8.img"
IMAGE_TYPEDEP:rpi-sdimg = "${SDIMG_ROOTFS_TYPE}"
# Boot partition volume id
BOOTDD_VOLUME_ID ?= "${MACHINE}"
# Shorten raspberrypi to just rpi to keep it under 11 characters
# now enforced by mkfs.vfat from dosfstools-4.2
BOOTDD_VOLUME_ID ?= "${@d.getVar('MACHINE').replace('raspberrypi', 'rpi')}"
# Boot partition size [in KiB] (will be rounded up to IMAGE_ROOTFS_ALIGNMENT)
BOOT_SPACE ?= "40960"
BOOT_SPACE ?= "49152"
# Set alignment to 4MB [in KiB]
IMAGE_ROOTFS_ALIGNMENT = "4096"
@@ -49,22 +43,24 @@ SDIMG_ROOTFS = "${IMGDEPLOYDIR}/${IMAGE_LINK_NAME}.${SDIMG_ROOTFS_TYPE}"
# For the names of kernel artifacts
inherit kernel-artifact-names
RPI_SDIMG_EXTRA_DEPENDS ?= ""
do_image_rpi_sdimg[depends] = " \
parted-native:do_populate_sysroot \
mtools-native:do_populate_sysroot \
dosfstools-native:do_populate_sysroot \
virtual/kernel:do_deploy \
${IMAGE_BOOTLOADER}:do_deploy \
rpi-config:do_deploy \
rpi-bootfiles:do_deploy \
${@bb.utils.contains('MACHINE_FEATURES', 'armstub', 'armstubs:do_deploy', '' ,d)} \
${@bb.utils.contains('RPI_USE_U_BOOT', '1', 'u-boot:do_deploy', '',d)} \
${@bb.utils.contains('RPI_USE_U_BOOT', '1', 'rpi-u-boot-scr:do_deploy', '',d)} \
${@bb.utils.contains('RPI_USE_U_BOOT', '1', 'u-boot-default-script:do_deploy', '',d)} \
${RPI_SDIMG_EXTRA_DEPENDS} \
"
do_image_rpi_sdimg[recrdeps] = "do_build"
# SD card image name
SDIMG = "${IMGDEPLOYDIR}/${IMAGE_NAME}.rootfs.rpi-sdimg"
SDIMG = "${IMGDEPLOYDIR}/${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.rpi-sdimg"
# Additional files and/or directories to be copied into the vfat partition from the IMAGE_ROOTFS.
FATPAYLOAD ?= ""
@@ -74,19 +70,7 @@ SDIMG_VFAT_DEPLOY ?= "${RPI_USE_U_BOOT}"
SDIMG_VFAT = "${IMAGE_NAME}.vfat"
SDIMG_LINK_VFAT = "${IMGDEPLOYDIR}/${IMAGE_LINK_NAME}.vfat"
def split_overlays(d, out, ver=None):
dts = d.getVar("KERNEL_DEVICETREE")
# Device Tree Overlays are assumed to be suffixed by '-overlay.dtb' (4.1.x) or by '.dtbo' (4.4.9+) string and will be put in a dedicated folder
if out:
overlays = oe.utils.str_filter_out('\S+\-overlay\.dtb$', dts, d)
overlays = oe.utils.str_filter_out('\S+\.dtbo$', overlays, d)
else:
overlays = oe.utils.str_filter('\S+\-overlay\.dtb$', dts, d) + \
" " + oe.utils.str_filter('\S+\.dtbo$', dts, d)
return overlays
IMAGE_CMD_rpi-sdimg () {
IMAGE_CMD:rpi-sdimg () {
# Align partitions
BOOT_SPACE_ALIGNED=$(expr ${BOOT_SPACE} + ${IMAGE_ROOTFS_ALIGNMENT} - 1)
@@ -96,7 +80,7 @@ IMAGE_CMD_rpi-sdimg () {
echo "Creating filesystem with Boot partition ${BOOT_SPACE_ALIGNED} KiB and RootFS $ROOTFS_SIZE KiB"
# Check if we are building with device tree support
DTS="${KERNEL_DEVICETREE}"
DTS="${@make_dtb_boot_files(d)}"
# Initialize sdcard image file
dd if=/dev/zero of=${SDIMG} bs=1024 count=0 seek=${SDIMG_SIZE}
@@ -114,22 +98,25 @@ IMAGE_CMD_rpi-sdimg () {
BOOT_BLOCKS=$(LC_ALL=C parted -s ${SDIMG} unit b print | awk '/ 1 / { print substr($4, 1, length($4 -1)) / 512 /2 }')
rm -f ${WORKDIR}/boot.img
mkfs.vfat -F32 -n "${BOOTDD_VOLUME_ID}" -S 512 -C ${WORKDIR}/boot.img $BOOT_BLOCKS
mcopy -v -i ${WORKDIR}/boot.img -s ${DEPLOY_DIR_IMAGE}/bcm2835-bootfiles/* ::/ || bbfatal "mcopy cannot copy ${DEPLOY_DIR_IMAGE}/bcm2835-bootfiles/* into boot.img"
mcopy -v -i ${WORKDIR}/boot.img -s ${DEPLOY_DIR_IMAGE}/${BOOTFILES_DIR_NAME}/* ::/ || bbfatal "mcopy cannot copy ${DEPLOY_DIR_IMAGE}/${BOOTFILES_DIR_NAME}/* into boot.img"
if [ "${@bb.utils.contains("MACHINE_FEATURES", "armstub", "1", "0", d)}" = "1" ]; then
mcopy -v -i ${WORKDIR}/boot.img -s ${DEPLOY_DIR_IMAGE}/armstubs/${ARMSTUB} ::/ || bbfatal "mcopy cannot copy ${DEPLOY_DIR_IMAGE}/armstubs/${ARMSTUB} into boot.img"
fi
if test -n "${DTS}"; then
# Copy board device trees to root folder
for dtbf in ${@split_overlays(d, True)}; do
dtb=`basename $dtbf`
mcopy -v -i ${WORKDIR}/boot.img -s ${DEPLOY_DIR_IMAGE}/$dtb ::$dtb || bbfatal "mcopy cannot copy ${DEPLOY_DIR_IMAGE}/$dtb into boot.img"
done
# Copy device tree overlays to dedicated folder
# Copy board device trees (including overlays)
# There is an assumption here - no DTB in other directories than root
# and root/overlays. mmd/mcopy are not very flexible tools.
mmd -i ${WORKDIR}/boot.img overlays
for dtbf in ${@split_overlays(d, False)}; do
dtb=`basename $dtbf`
mcopy -v -i ${WORKDIR}/boot.img -s ${DEPLOY_DIR_IMAGE}/$dtb ::overlays/$dtb || bbfatal "mcopy cannot copy ${DEPLOY_DIR_IMAGE}/$dtb into boot.img"
for entry in ${DTS} ; do
# Split entry at optional ';'
if [ $(echo "$entry" | grep -c \;) = "0" ] ; then
DEPLOY_FILE="$entry"
DEST_FILENAME="$entry"
else
DEPLOY_FILE="$(echo "$entry" | cut -f1 -d\;)"
DEST_FILENAME="$(echo "$entry" | cut -f2- -d\;)"
fi
mcopy -v -i ${WORKDIR}/boot.img -s ${DEPLOY_DIR_IMAGE}/${DEPLOY_FILE} ::${DEST_FILENAME} || bbfatal "mcopy cannot copy ${DEPLOY_DIR_IMAGE}/${DEPLOY_FILE} into boot.img"
done
fi
if [ "${RPI_USE_U_BOOT}" = "1" ]; then
@@ -148,6 +135,22 @@ IMAGE_CMD_rpi-sdimg () {
fi
fi
# Add files (eg. hypervisor binaries) from the deploy dir
if [ -n "${DEPLOYPAYLOAD}" ] ; then
echo "Copying deploy file payload into VFAT"
for entry in ${DEPLOYPAYLOAD} ; do
# Split entry at optional ':' to enable file renaming for the destination
if [ $(echo "$entry" | grep -c :) = "0" ] ; then
DEPLOY_FILE="$entry"
DEST_FILENAME="$entry"
else
DEPLOY_FILE="$(echo "$entry" | cut -f1 -d:)"
DEST_FILENAME="$(echo "$entry" | cut -f2- -d:)"
fi
mcopy -v -i ${WORKDIR}/boot.img -s ${DEPLOY_DIR_IMAGE}/${DEPLOY_FILE} ::${DEST_FILENAME} || bbfatal "mcopy cannot copy ${DEPLOY_DIR_IMAGE}/${DEPLOY_FILE} into boot.img"
done
fi
if [ -n "${FATPAYLOAD}" ] ; then
echo "Copying payload into VFAT"
for entry in ${FATPAYLOAD} ; do

View File

@@ -9,7 +9,8 @@ BBFILE_COLLECTIONS += "raspberrypi"
BBFILE_PATTERN_raspberrypi := "^${LAYERDIR}/"
BBFILE_PRIORITY_raspberrypi = "9"
LAYERSERIES_COMPAT_raspberrypi = "sumo thud warrior zeus"
LAYERSERIES_COMPAT_raspberrypi = "kirkstone langdale"
LAYERDEPENDS_raspberrypi = "core"
# Additional license directories.
LICENSE_PATH += "${LAYERDIR}/files/custom-licenses"
@@ -31,4 +32,9 @@ BBFILES_DYNAMIC += " \
networking-layer:${LAYERDIR}/dynamic-layers/networking-layer/*/*/*.bbappend \
qt5-layer:${LAYERDIR}/dynamic-layers/qt5-layer/*/*/*.bb \
qt5-layer:${LAYERDIR}/dynamic-layers/qt5-layer/*/*/*.bbappend \
multimedia-layer:${LAYERDIR}/dynamic-layers/multimedia-layer/*/*/*.bb \
multimedia-layer:${LAYERDIR}/dynamic-layers/multimedia-layer/*/*/*.bbappend \
"
DEFAULT_TEST_SUITES:remove:rpi = "parselogs"
DEFAULT_TEST_SUITES:append:rpi = " parselogs_rpi"

View File

@@ -5,7 +5,7 @@ include conf/machine/include/rpi-default-providers.inc
SOC_FAMILY = "rpi"
include conf/machine/include/soc-family.inc
IMAGE_FSTYPES ?= "tar.bz2 ext3 rpi-sdimg"
IMAGE_FSTYPES ?= "tar.bz2 ext3 wic.bz2 wic.bmap"
WKS_FILE ?= "sdimage-raspberrypi.wks"
XSERVER = " \
@@ -15,44 +15,69 @@ XSERVER = " \
"
RPI_KERNEL_DEVICETREE_OVERLAYS ?= " \
overlays/overlay_map.dtb \
overlays/at86rf233.dtbo \
overlays/disable-bt.dtbo \
overlays/dwc2.dtbo \
overlays/gpio-ir.dtbo \
overlays/gpio-ir-tx.dtbo \
overlays/gpio-key.dtbo \
overlays/gpio-poweroff.dtbo \
overlays/gpio-shutdown.dtbo \
overlays/hifiberry-amp.dtbo \
overlays/hifiberry-dac.dtbo \
overlays/hifiberry-dacplus.dtbo \
overlays/hifiberry-digi.dtbo \
overlays/justboom-both.dtbo \
overlays/justboom-dac.dtbo \
overlays/justboom-digi.dtbo \
overlays/i2c-gpio.dtbo \
overlays/i2c-rtc.dtbo \
overlays/imx219.dtbo \
overlays/imx477.dtbo \
overlays/iqaudio-dac.dtbo \
overlays/iqaudio-dacplus.dtbo \
overlays/mcp2515-can0.dtbo \
overlays/pi3-disable-bt.dtbo \
overlays/pi3-miniuart-bt.dtbo \
overlays/mcp2515-can1.dtbo \
overlays/mcp3008.dtbo \
overlays/miniuart-bt.dtbo \
overlays/pitft22.dtbo \
overlays/pitft28-capacitive.dtbo \
overlays/pitft28-resistive.dtbo \
overlays/pitft35-resistive.dtbo \
overlays/pps-gpio.dtbo \
overlays/rpi-ft5406.dtbo \
overlays/rpi-poe.dtbo \
overlays/vc4-kms-v3d.dtbo \
overlays/vc4-fkms-v3d.dtbo \
overlays/w1-gpio-pullup.dtbo \
overlays/vc4-fkms-v3d-pi4.dtbo \
overlays/vc4-kms-v3d.dtbo \
overlays/vc4-kms-v3d-pi4.dtbo \
overlays/vc4-kms-dsi-7inch.dtbo \
overlays/w1-gpio.dtbo \
overlays/w1-gpio-pullup.dtbo \
overlays/wm8960-soundcard.dtbo \
"
RPI_KERNEL_DEVICETREE ?= " \
bcm2708-rpi-zero.dtb \
bcm2708-rpi-zero-w.dtb \
bcm2708-rpi-b.dtb \
bcm2708-rpi-b-rev1.dtb \
bcm2708-rpi-b-plus.dtb \
bcm2709-rpi-2-b.dtb \
bcm2710-rpi-2-b.dtb \
bcm2710-rpi-3-b.dtb \
bcm2710-rpi-3-b-plus.dtb \
bcm2710-rpi-zero-2.dtb \
bcm2711-rpi-4-b.dtb \
bcm2711-rpi-400.dtb \
bcm2708-rpi-cm.dtb \
bcm2710-rpi-cm3.dtb \
bcm2711-rpi-cm4.dtb \
bcm2711-rpi-cm4s.dtb \
"
KERNEL_DEVICETREE ?= " \
KERNEL_DEVICETREE ??= " \
${RPI_KERNEL_DEVICETREE} \
${RPI_KERNEL_DEVICETREE_OVERLAYS} \
"
@@ -75,42 +100,57 @@ MACHINE_FEATURES += "apm usbhost keyboard vfat ext2 screen touchscreen alsa blue
# Raspberry Pi has no hardware clock
MACHINE_FEATURES_BACKFILL_CONSIDERED = "rtc"
MACHINE_EXTRA_RRECOMMENDS += " kernel-modules udev-rules-rpi"
MACHINE_EXTRA_RRECOMMENDS += "kernel-modules udev-rules-rpi"
MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS += "${@oe.utils.conditional('ENABLE_I2C', '1', 'kernel-module-i2c-dev kernel-module-i2c-bcm2708', '', d)}"
MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS += "${@oe.utils.conditional('ENABLE_IR', '1', 'kernel-module-gpio-ir kernel-module-gpio-ir-tx', '', d)}"
MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS += "${@oe.utils.conditional('ENABLE_GPIO_SHUTDOWN', '1', 'gpio-shutdown kernel-module-gpio-keys', '', d)}"
SERIAL_CONSOLES_CHECK ??= "${SERIAL_CONSOLES}"
# The name of the deploy directory for raspberry pi boot files.
# This variable is referred to by recipes fetching / generating the files.
BOOTFILES_DIR_NAME ?= "bootfiles"
# Set Raspberrypi splash image
SPLASH = "psplash-raspberrypi"
SPLASH ?= "psplash-raspberrypi"
def make_dtb_boot_files(d):
# Generate IMAGE_BOOT_FILES entries for device tree files listed in
# KERNEL_DEVICETREE.
alldtbs = d.getVar('KERNEL_DEVICETREE')
imgtyp = d.getVar('KERNEL_IMAGETYPE')
# DTBs may be built out of kernel with devicetree.bbclass
if not alldtbs:
return ''
def transform(dtb):
base = os.path.basename(dtb)
if dtb.endswith('dtb'):
# eg: whatever/bcm2708-rpi-b.dtb has:
# DEPLOYDIR file: bcm2708-rpi-b.dtb
# destination: bcm2708-rpi-b.dtb
return base
elif dtb.endswith('dtbo'):
if dtb.endswith('dtbo') or base == 'overlay_map.dtb':
# overlay dtb:
# eg: overlays/hifiberry-amp.dtbo has:
# DEPLOYDIR file: hifiberry-amp.dtbo
# destination: overlays/hifiberry-amp.dtbo
return '{};{}'.format(base, dtb)
elif dtb.endswith('dtb'):
# eg: whatever/bcm2708-rpi-b.dtb has:
# DEPLOYDIR file: bcm2708-rpi-b.dtb
# destination: bcm2708-rpi-b.dtb
return base
return ' '.join([transform(dtb) for dtb in alldtbs.split(' ') if dtb])
IMAGE_BOOT_FILES ?= "bcm2835-bootfiles/* \
${@make_dtb_boot_files(d)} \
RPI_EXTRA_IMAGE_BOOT_FILES ?= " \
${@bb.utils.contains('RPI_USE_U_BOOT', '1', \
'${KERNEL_IMAGETYPE} u-boot.bin;${SDIMG_KERNELIMAGE} boot.scr', \
'${KERNEL_IMAGETYPE};${SDIMG_KERNELIMAGE}', d)} \
"
IMAGE_BOOT_FILES ?= "${BOOTFILES_DIR_NAME}/* \
${@make_dtb_boot_files(d)} \
${RPI_EXTRA_IMAGE_BOOT_FILES} \
"
do_image_wic[depends] += " \
bcm2835-bootfiles:do_deploy \
rpi-bootfiles:do_deploy \
${@bb.utils.contains('RPI_USE_U_BOOT', '1', 'u-boot:do_deploy', '',d)} \
"
@@ -118,4 +158,4 @@ do_image_wic[recrdeps] = "do_build"
# The kernel image is installed into the FAT32 boot partition and does not need
# to also be installed into the rootfs.
RDEPENDS_${KERNEL_PACKAGE_NAME}-base = ""
RDEPENDS:${KERNEL_PACKAGE_NAME}-base = ""

View File

@@ -1,10 +1,17 @@
# RaspberryPi BSP default providers
PREFERRED_PROVIDER_virtual/kernel ?= "linux-raspberrypi"
PREFERRED_PROVIDER_virtual/kernel ??= "linux-raspberrypi"
PREFERRED_PROVIDER_virtual/xserver ?= "xserver-xorg"
PREFERRED_PROVIDER_virtual/egl ?= "${@bb.utils.contains("MACHINE_FEATURES", "vc4graphics", "mesa", "userland", d)}"
PREFERRED_PROVIDER_virtual/libgles2 ?= "${@bb.utils.contains("MACHINE_FEATURES", "vc4graphics", "mesa", "userland", d)}"
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_jpeg ?= "jpeg"
PREFERRED_PROVIDER_virtual/libomxil ?= "userland"
VIRTUAL-RUNTIME_libomxil = "userland"
PREFERRED_PROVIDER_u-boot-default-script ??= "rpi-u-boot-scr"

View File

@@ -1,3 +1,9 @@
# RaspberryPi BSP default settings
IMAGE_CLASSES += "sdcard_image-rpi"
# RPI kernel has errors of its own which should be filtered
# therefore use parselogs_rpi test instead of parselogs from oe-core
#
DEFAULT_TEST_SUITES:append:rpi = " parselogs_rpi"
DEFAULT_TEST_SUITES:remove:rpi = " parselogs"

View File

@@ -1,3 +1,4 @@
# RaspberryPi BSP default versions
PREFERRED_VERSION_linux-raspberrypi ??= "4.19.%"
PREFERRED_VERSION_linux-raspberrypi ??= "5.15.%"
PREFERRED_VERSION_linux-raspberrypi-v7 ??= "${PREFERRED_VERSION_linux-raspberrypi}"

View File

@@ -1,15 +1,17 @@
DEFAULTTUNE ?= "armv6"
DEFAULTTUNE ?= "arm1176jzfshf"
require conf/machine/include/arm/arch-armv6.inc
TUNEVALID[arm1176jzfs] = "Enable arm1176jzfs specific processor optimizations"
TUNE_CCARGS += "${@bb.utils.contains("TUNE_FEATURES", "arm1176jzfs", "-mtune=arm1176jzf-s", "", d)}"
TUNE_CCARGS += "${@bb.utils.contains("TUNE_FEATURES", "vfp", "-mfpu=vfp", "", d)}"
TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'arm1176jzfs', ' -mcpu=arm1176jzf-s', '', d)}"
MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'arm1176jzfs', 'armv6:', '', d)}"
AVAILTUNES += "arm1176jzfs arm1176jzfshf"
ARMPKGARCH_tune-arm1176jzfs = "arm1176jzfs"
ARMPKGARCH_tune-arm1176jzfshf = "arm1176jzfs"
TUNE_FEATURES_tune-arm1176jzfs = "${TUNE_FEATURES_tune-armv6} arm1176jzfs"
TUNE_FEATURES_tune-arm1176jzfshf = "${TUNE_FEATURES_tune-arm1176jzfs} callconvention-hard"
PACKAGE_EXTRA_ARCHS_tune-arm1176jzfs = "${PACKAGE_EXTRA_ARCHS_tune-armv6}"
PACKAGE_EXTRA_ARCHS_tune-arm1176jzfshf = "${PACKAGE_EXTRA_ARCHS_tune-armv6hf} arm1176jzfshf-vfp"
AVAILTUNES += "arm1176jzfs"
ARMPKGARCH:tune-arm1176jzfs = "arm1176jzfs"
TUNE_FEATURES:tune-arm1176jzfs = "arm thumb vfp arm1176jzfs"
PACKAGE_EXTRA_ARCHS:tune-arm1176jzfs = "${PACKAGE_EXTRA_ARCHS:tune-armv6} arm1176jzfs"
AVAILTUNES += "arm1176jzfshf"
ARMPKGARCH:tune-arm1176jzfshf = "${ARMPKGARCH:tune-arm1176jzfs}"
TUNE_FEATURES:tune-arm1176jzfshf = "${TUNE_FEATURES:tune-arm1176jzfs} callconvention-hard"
PACKAGE_EXTRA_ARCHS:tune-arm1176jzfshf = "${PACKAGE_EXTRA_ARCHS:tune-armv6thf} arm1176jzfshf-vfp"

View File

@@ -0,0 +1,39 @@
# SPDX-FileCopyrightText: Andrei Gherzan <andrei.gherzan@huawei.com>
#
# SPDX-License-Identifier: MIT
#@TYPE: Machine
#@NAME: RaspberryPi Development Boards (32bit)
#@DESCRIPTION: Machine configuration for the RaspberryPi boards in 32 bit mode
DEFAULTTUNE ?= "cortexa7thf-neon-vfpv4"
require conf/machine/include/arm/armv7a/tune-cortexa7.inc
include conf/machine/include/rpi-base.inc
# This machine includes by default the kernel for v7l. We hook in support for
# v7.
RASPBERRYPI_v7_KERNEL = "linux-raspberrypi-v7"
RASPBERRYPI_v7_KERNEL_PACKAGE_NAME = "kernel-v7"
RASPBERRYPI_v7_KERNEL_FILE ?= "kernel7.img"
# We don't need a lot for v7l because it is the default provider,
# virtual/kernel.
RASPBERRYPI_v7l_KERNEL_FILE ?= "kernel7l.img"
MACHINE_FEATURES += "pci"
MACHINE_EXTRA_RRECOMMENDS += "\
linux-firmware-rpidistro-bcm43430 \
linux-firmware-rpidistro-bcm43436 \
linux-firmware-rpidistro-bcm43436s \
linux-firmware-rpidistro-bcm43455 \
linux-firmware-rpidistro-bcm43456 \
bluez-firmware-rpidistro-bcm43430a1-hcd \
bluez-firmware-rpidistro-bcm43430b0-hcd \
bluez-firmware-rpidistro-bcm4345c0-hcd \
bluez-firmware-rpidistro-bcm4345c5-hcd \
"
# FIXME: This machine doesn't support u-boot (yet)
RPI_EXTRA_IMAGE_BOOT_FILES = " \
${KERNEL_IMAGETYPE};${RASPBERRYPI_v7l_KERNEL_FILE} \
${RASPBERRYPI_v7_KERNEL_PACKAGE_NAME}/${KERNEL_IMAGETYPE};${RASPBERRYPI_v7_KERNEL_FILE} \
"

View File

@@ -0,0 +1,44 @@
# SPDX-FileCopyrightText: Andrei Gherzan <andrei.gherzan@huawei.com>
#
# SPDX-License-Identifier: MIT
#@TYPE: Machine
#@NAME: RaspberryPi Development Boards (64bit)
#@DESCRIPTION: Machine configuration for the RaspberryPi boards in 64 bit mode
require conf/machine/include/arm/armv8a/tune-cortexa53.inc
include conf/machine/include/rpi-base.inc
MACHINE_FEATURES += "pci"
MACHINE_EXTRA_RRECOMMENDS += "\
linux-firmware-rpidistro-bcm43430 \
linux-firmware-rpidistro-bcm43455 \
linux-firmware-rpidistro-bcm43456 \
linux-firmware-rpidistro-bcm43436 \
linux-firmware-rpidistro-bcm43436s \
bluez-firmware-rpidistro-bcm43430a1-hcd \
bluez-firmware-rpidistro-bcm43430b0-hcd \
bluez-firmware-rpidistro-bcm4345c0-hcd \
bluez-firmware-rpidistro-bcm4345c5-hcd \
"
RPI_KERNEL_DEVICETREE = " \
broadcom/bcm2710-rpi-3-b.dtb \
broadcom/bcm2710-rpi-3-b-plus.dtb \
broadcom/bcm2837-rpi-3-b.dtb \
broadcom/bcm2710-rpi-cm3.dtb \
broadcom/bcm2710-rpi-zero-2.dtb \
broadcom/bcm2711-rpi-4-b.dtb \
broadcom/bcm2711-rpi-400.dtb \
broadcom/bcm2711-rpi-cm4.dtb \
broadcom/bcm2711-rpi-cm4s.dtb \
"
SDIMG_KERNELIMAGE ?= "kernel8.img"
KERNEL_IMAGETYPE_UBOOT ?= "Image"
KERNEL_IMAGETYPE_DIRECT ?= "Image"
KERNEL_BOOTCMD ?= "booti"
UBOOT_MACHINE = "rpi_arm64_config"
SERIAL_CONSOLES ?= "115200;ttyS0"
VC4DTBO ?= "vc4-fkms-v3d"

View File

@@ -3,10 +3,9 @@
#@DESCRIPTION: Machine configuration for the RaspberryPi Compute Module 3 (CM3)
DEFAULTTUNE ?= "cortexa7thf-neon-vfpv4"
require conf/machine/include/tune-cortexa7.inc
require conf/machine/include/arm/armv7a/tune-cortexa7.inc
include conf/machine/include/rpi-base.inc
KBUILD_DEFCONFIG ?= "bcm2709_defconfig"
SDIMG_KERNELIMAGE ?= "kernel7.img"
UBOOT_MACHINE = "rpi_3_32b_config"
SERIAL_CONSOLES ?= "115200;ttyAMA0"

View File

@@ -7,8 +7,8 @@ DEFAULTTUNE ?= "arm1176jzfshf"
require conf/machine/include/tune-arm1176jzf-s.inc
include conf/machine/include/rpi-base.inc
SDIMG_KERNELIMAGE ?= "kernel.img"
UBOOT_MACHINE = "rpi_config"
SERIAL_CONSOLES ?= "115200;ttyAMA0"
UBOOT_MACHINE = "rpi_config"
ARMSTUB ?= "armstub.bin"

View File

@@ -0,0 +1,17 @@
#@TYPE: Machine
#@NAME: RaspberryPi0 2 Wifi Development Board
#@DESCRIPTION: Machine configuration for the RaspberryPi0 2 Wifi in 64 bits mode
include conf/machine/raspberrypi3-64.conf
MACHINEOVERRIDES := "${@'${MACHINEOVERRIDES}'.replace(':${MACHINE}',':raspberrypi3-64:${MACHINE}')}"
MACHINE_EXTRA_RRECOMMENDS += "\
linux-firmware-rpidistro-bcm43436 \
linux-firmware-rpidistro-bcm43436s \
bluez-firmware-rpidistro-bcm43430b0-hcd \
"
RPI_KERNEL_DEVICETREE = " \
broadcom/bcm2710-rpi-zero-2.dtb \
"

View File

@@ -0,0 +1,13 @@
#@TYPE: Machine
#@NAME: RaspberryPi0 2 Wifi Development Board
#@DESCRIPTION: Machine configuration for the RaspberryPi0 2 Wifi in 32 bits mode
include conf/machine/raspberrypi3.conf
MACHINEOVERRIDES := "${@'${MACHINEOVERRIDES}'.replace(':${MACHINE}',':raspberrypi3:${MACHINE}')}"
MACHINE_EXTRA_RRECOMMENDS += "\
linux-firmware-rpidistro-bcm43436 \
linux-firmware-rpidistro-bcm43436s \
bluez-firmware-rpidistro-bcm43430b0-hcd \
"

View File

@@ -4,11 +4,11 @@
DEFAULTTUNE ?= "cortexa7thf-neon-vfpv4"
require conf/machine/include/tune-cortexa7.inc
require conf/machine/include/arm/armv7a/tune-cortexa7.inc
include conf/machine/include/rpi-base.inc
SDIMG_KERNELIMAGE ?= "kernel7.img"
SERIAL_CONSOLES ?= "115200;ttyAMA0"
UBOOT_MACHINE = "rpi_2_config"
ARMSTUB ?= "armstub7.bin"

View File

@@ -11,24 +11,25 @@ MACHINE_EXTRA_RRECOMMENDS += "\
bluez-firmware-rpidistro-bcm4345c0-hcd \
"
require conf/machine/include/tune-cortexa53.inc
require conf/machine/include/arm/armv8a/tune-cortexa53.inc
include conf/machine/include/rpi-base.inc
RPI_KERNEL_DEVICETREE = " \
broadcom/bcm2710-rpi-3-b.dtb \
broadcom/bcm2710-rpi-3-b-plus.dtb \
broadcom/bcm2837-rpi-3-b.dtb \
broadcom/bcm2710-rpi-cm3.dtb \
"
SERIAL_CONSOLES ?= "115200;ttyS0"
UBOOT_MACHINE = "rpi_3_config"
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;ttyS0"
VC4DTBO ?= "vc4-fkms-v3d"
ARMSTUB ?= "armstub8.bin"

View File

@@ -3,7 +3,7 @@
#@DESCRIPTION: Machine configuration for the RaspberryPi 3 in 32 bits mode
DEFAULTTUNE ?= "cortexa7thf-neon-vfpv4"
require conf/machine/include/tune-cortexa7.inc
require conf/machine/include/arm/armv7a/tune-cortexa7.inc
include conf/machine/include/rpi-base.inc
MACHINE_EXTRA_RRECOMMENDS += "\
@@ -17,4 +17,5 @@ SDIMG_KERNELIMAGE ?= "kernel7.img"
UBOOT_MACHINE = "rpi_3_32b_config"
SERIAL_CONSOLES ?= "115200;ttyS0"
VC4DTBO ?= "vc4-fkms-v3d"
ARMSTUB ?= "armstub7.bin"

View File

@@ -4,24 +4,30 @@
MACHINEOVERRIDES = "raspberrypi4:${MACHINE}"
MACHINE_FEATURES += "pci"
MACHINE_EXTRA_RRECOMMENDS += "\
linux-firmware-rpidistro-bcm43455 \
bluez-firmware-rpidistro-bcm4345c0-hcd \
linux-firmware-rpidistro-bcm43456 \
bluez-firmware-rpidistro-bcm4345c5-hcd \
"
require conf/machine/include/tune-cortexa72.inc
require conf/machine/include/arm/armv8a/tune-cortexa72.inc
include conf/machine/include/rpi-base.inc
RPI_KERNEL_DEVICETREE = " \
broadcom/bcm2711-rpi-4-b.dtb \
broadcom/bcm2711-rpi-400.dtb \
broadcom/bcm2711-rpi-cm4.dtb \
broadcom/bcm2711-rpi-cm4s.dtb \
"
SDIMG_KERNELIMAGE ?= "kernel8.img"
SERIAL_CONSOLES ?= "115200;ttyS0"
UBOOT_MACHINE = "rpi_4_config"
UBOOT_MACHINE = "rpi_arm64_config"
VC4DTBO ?= "vc4-fkms-v3d"
VC4DTBO ?= "vc4-kms-v3d"
# When u-boot is enabled we need to use the "Image" format and the "booti"
# command to load the kernel
@@ -30,6 +36,4 @@ KERNEL_IMAGETYPE_UBOOT ?= "Image"
KERNEL_IMAGETYPE_DIRECT ?= "Image"
KERNEL_BOOTCMD ?= "booti"
RPI_EXTRA_CONFIG ?= "\n# Force arm in 64bit mode. See: https://github.com/raspberrypi/firmware/issues/1193.\narm_64bit=1"
ARMSTUB ?= "armstub8-gic.bin"

View File

@@ -3,12 +3,15 @@
#@DESCRIPTION: Machine configuration for the RaspberryPi 4 in 32 bit mode
DEFAULTTUNE ?= "cortexa7thf-neon-vfpv4"
require conf/machine/include/tune-cortexa7.inc
require conf/machine/include/arm/armv7a/tune-cortexa7.inc
include conf/machine/include/rpi-base.inc
MACHINE_FEATURES += "pci"
MACHINE_EXTRA_RRECOMMENDS += "\
linux-firmware-rpidistro-bcm43455 \
bluez-firmware-rpidistro-bcm4345c0-hcd \
linux-firmware-rpidistro-bcm43456 \
bluez-firmware-rpidistro-bcm4345c5-hcd \
"
# 'l' stands for LPAE
@@ -16,5 +19,5 @@ SDIMG_KERNELIMAGE ?= "kernel7l.img"
UBOOT_MACHINE = "rpi_4_32b_config"
SERIAL_CONSOLES ?= "115200;ttyS0"
VC4DTBO ?= "vc4-fkms-v3d"
VC4DTBO ?= "vc4-kms-v3d"
ARMSTUB ?= "armstub7.bin"

View File

@@ -30,7 +30,7 @@
# Add any Sphinx extension module names here, as strings. They can be
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
# ones.
extensions = []
extensions = ['myst_parser']
# Add any paths that contain templates here, relative to this directory.
templates_path = ['_templates']
@@ -50,7 +50,7 @@ master_doc = 'index'
# General information about the project.
project = 'meta-raspberrypi'
copyright = '2017, meta-raspberrypi contributors'
copyright = '2022, meta-raspberrypi contributors'
author = 'meta-raspberrypi contributors'
# The version info for the project you're documenting, acts as replacement for
@@ -154,7 +154,7 @@ todo_include_todos = False
# Add any paths that contain custom static files (such as style sheets) here,
# relative to this directory. They are copied after the builtin static files,
# so a file named "default.css" will overwrite the builtin "default.css".
html_static_path = ['_static']
#html_static_path = ['_static']
# Add any extra paths that contain custom files (such as robots.txt or
# .htaccess) here, relative to this directory. These files are copied
@@ -337,7 +337,3 @@ texinfo_documents = [
# If true, do not generate a @detailmenu in the "Top" node's menu.
#
# texinfo_no_detailmenu = False
source_parsers = {
'.md': 'recommonmark.parser.CommonMarkParser',
}

View File

@@ -4,8 +4,8 @@
The main communication tool in use is the Yocto Project mailing list:
* <yocto@yoctoproject.org>
* <https://lists.yoctoproject.org/listinfo/yocto>
* <yocto@lists.yoctoproject.org>
* <https://lists.yoctoproject.org/g/yocto>
Feel free to ask any kind of questions but please always prepend your email
subject with `[meta-raspberrypi]` as this is the global *Yocto* mailing
@@ -84,7 +84,11 @@ sure to use the following formatting for the message subject:
Then, for sending patches to the mailing list, you may use this command:
git send-email --to yocto@yoctoproject.org <generated patch>
git send-email --to yocto@lists.yoctoproject.org <generated patch>
When patches are sent through the mailing list, the maintainer will include
them in a GitHub pull request that will take the patches through the CI
workflows. This process happens periodically.
## GitHub issues

View File

@@ -6,4 +6,4 @@ omxplayer depends on libav which has a commercial license. So in order to be
able to compile omxplayer you will need to whiteflag the commercial
license in your local.conf:
LICENSE_FLAGS_WHITELIST = "commercial"
LICENSE_FLAGS_ACCEPTED = "commercial"

View File

@@ -1,6 +1,6 @@
# Optional build configuration
There are a set of ways in which a user can influence different paramenters of
There are a set of ways in which a user can influence different parameters of
the build. We list here the ones that are closely related to this BSP or
specific to it. For the rest please check:
<http://www.yoctoproject.org/docs/latest/ref-manual/ref-manual.html>
@@ -29,7 +29,7 @@ Accommodate the values above to your own needs (ex: ext3 / ext4).
* `GPU_MEM_1024`: GPU memory in megabyte for the 1024MB Raspberry Pi. Ignored by
the 256MB/512MB RP. Overrides gpu_mem. Max 944. Default not set.
See: <https://www.raspberrypi.org/documentation/configuration/config-txt/memory.md>
See: <https://www.raspberrypi.com/documentation/computers/config_txt.html#memory-options>
## VC4
@@ -37,7 +37,7 @@ By default, each machine uses `vc4` for graphics. This will in turn sets mesa as
## Add purchased license codecs
To add you own licenses use variables `KEY_DECODE_MPG2` and `KEY_DECODE_WVC1` in
To add your own licenses use variables `KEY_DECODE_MPG2` and `KEY_DECODE_WVC1` in
local.conf. Example:
KEY_DECODE_MPG2 = "12345678"
@@ -47,7 +47,7 @@ You can supply more licenses separated by comma. Example:
KEY_DECODE_WVC1 = "0x12345678,0xabcdabcd,0x87654321"
See: <https://www.raspberrypi.org/documentation/configuration/config-txt/codeclicence.md>
See: <https://www.raspberrypi.com/documentation/computers/config_txt.html#licence-key-and-codec-options>
## Disable overscan
@@ -77,7 +77,7 @@ To remove (or adjust) this delay set these variables in local.conf:
## Set overclocking options
The Raspberry Pi can be overclocked. As of now overclocking up to the "Turbo
Mode" is officially supported by the raspbery and does not void warranty. Check
Mode" is officially supported by the Raspberry Pi and does not void warranty. Check
the config.txt for a detailed description of options and modes. The following
variables are supported in local.conf: `ARM_FREQ`, `GPU_FREQ`, `CORE_FREQ`,
`SDRAM_FREQ` and `OVER_VOLTAGE`.
@@ -89,7 +89,7 @@ Example official settings for Turbo Mode in Raspberry Pi 2:
SDRAM_FREQ = "500"
OVER_VOLTAGE = "6"
See: <https://www.raspberrypi.org/documentation/configuration/config-txt/overclocking.md>
See: <https://www.raspberrypi.com/documentation/computers/config_txt.html#overclocking-options>
## HDMI and composite video options
@@ -99,14 +99,14 @@ selected according to the connected monitor's EDID information and the composite
mode is defaulted to NTSC using a 4:3 aspect ratio. Check the config.txt for a
detailed description of options and modes. The following variables are supported in
local.conf: `HDMI_FORCE_HOTPLUG`, `HDMI_DRIVE`, `HDMI_GROUP`, `HDMI_MODE`,
`CONFIG_HDMI_BOOST`, `SDTV_MODE`, `SDTV_ASPECT` and `DISPLAY_ROTATE`.
`HDMI_CVT`, `CONFIG_HDMI_BOOST`, `SDTV_MODE`, `SDTV_ASPECT` and `DISPLAY_ROTATE`.
Example to force HDMI output to 720p in CEA mode:
HDMI_GROUP = "1"
HDMI_MODE = "4"
See: <https://www.raspberrypi.org/documentation/configuration/config-txt/video.md>
See: <https://www.raspberrypi.com/documentation/computers/configuration.html#hdmi-configuration>
## Video camera support with V4L2 drivers
@@ -159,7 +159,7 @@ command (eg. bootz) to be used.
To build an initramfs image:
* Set this 3 kernel variables (in kernel's do_configure_prepend in linux-raspberrypi.inc after the line kernel_configure_variable LOCALVERSION "\"\""
* Set this 3 kernel variables (in kernel's do_configure:prepend in linux-raspberrypi.inc after the line kernel_configure_variable LOCALVERSION "\"\""
)
- kernel_configure_variable BLK_DEV_INITRD y
- kernel_configure_variable INITRAMFS_SOURCE ""
@@ -172,6 +172,31 @@ To build an initramfs image:
- `INITRAMFS_MAXSIZE = "315400"`
- `IMAGE_FSTYPES_pn-${INITRAMFS_IMAGE} = "${INITRAMFS_FSTYPES}"`
## Including additional files in the SD card image boot partition
The SD card image class supports adding extra files into the boot
partition, where the files are copied from either the image root
partition or from the build image deploy directory.
To copy files that are present in the root partition into boot,
FATPAYLOAD is a simple space-separated list of files to be copied:
FATPAYLOAD = "/boot/example1 /boot/example2"
To copy files from the image deploy directory, the files should be
listed in the DEPLOYPAYLOAD as a space-separated list of entries.
Each entry lists a file to be copied, and an optional destination
filename can be specified by supplying it after a colon separator.
DEPLOYPAYLOAD = "example1-${MACHINE}:example1 example2"
Files that are to be included from the deploy directory will be produced
by tasks that image building task must depend upon, to ensure that the
files are available when they are needed, so these component deploy
tasks must be added to: RPI_SDIMG_EXTRA_DEPENDS.
RPI_SDIMG_EXTRA_DEPENDS:append = " example:do_deploy"
## Enable SPI bus
When using device tree kernels, set this variable to enable the SPI bus:
@@ -184,6 +209,10 @@ When using device tree kernels, set this variable to enable I2C:
ENABLE_I2C = "1"
Furthermore, to auto-load I2C kernel modules set:
KERNEL_MODULE_AUTOLOAD:rpi += "i2c-dev i2c-bcm2708"
## Enable PiTFT support
Basic support for using PiTFT screens can be enabled by adding below in
@@ -204,6 +233,7 @@ modelname should be added as a MACHINE_FEATURES in local.conf like below:
List of currently supported models:
* pitft22
* pitft28r
* pitft28c
* pitft35r
## Misc. display
@@ -219,7 +249,7 @@ Screen LCD, HDMI interface (<http://www.waveshare.com/7inch-HDMI-LCD-C.htm>) Rev
RaspberryPi 0, 1, 2 and CM will have UART console enabled by default.
RaspberryPi 0 WiFi and 3 does not have the UART enabled by default because this
needs a fixed core frequency and enable_uart wil set it to the minimum. Certain
needs a fixed core frequency and enable_uart will set it to the minimum. Certain
operations - 60fps h264 decode, high quality deinterlace - which aren't
performed on the ARM may be affected, and we wouldn't want to do that to users
who don't want to use the serial port. Users who want serial console support on
@@ -239,6 +269,27 @@ local.conf:
ENABLE_DWC2_PERIPHERAL = "1"
## Enable USB host support
By default in case of the Compute Module 4 IO Board the standard USB driver
that usually supports host mode operations is disabled for power saving reasons.
Users who want to use the 2 USB built-in ports or the other ports provided via
the header extension should set the following in local.conf:
ENABLE_DWC2_HOST = "1"
## Set CPUs to be isolated from the standard Linux scheduler
By default Linux will use all available CPUs for scheduling tasks. For real time
purposes there can be an advantage to isolating one or more CPUs from the
standard scheduler. It should be noted that CPU 0 is special, it is the only CPU
available during the early stages of the boot process and cannot be isolated.
The string assigned to this variable may be a single CPU number, a comma
separated list ("1,2"), a range("1-3"), or a mixture of these ("1,3-5")
ISOLATED_CPUS = "1-2"
## Enable Openlabs 802.15.4 radio module
When using device tree kernels, set this variable to enable the 802.15.4 hat:
@@ -247,14 +298,71 @@ When using device tree kernels, set this variable to enable the 802.15.4 hat:
See: <https://openlabs.co/OSHW/Raspberry-Pi-802.15.4-radio>
## Enable CAN with Pican2
## Enable CAN
In order to use Pican2 CAN module, set the following variables:
In order to use CAN with an MCP2515-based module, set the following variables:
ENABLE_SPI_BUS = "1"
ENABLE_CAN = "1"
See: <http://skpang.co.uk/catalog/pican2-canbus-board-for-raspberry-pi-23-p-1475.html>
In case of dual CAN module (e.g. PiCAN2 Duo), set following variables instead:
ENABLE_SPI_BUS = "1"
ENABLE_DUAL_CAN = "1"
Some modules may require setting the frequency of the crystal oscillator used on the particular board. The frequency is usually marked on the package of the crystal. By default, it is set to 16 MHz. To change that to 8 MHz, the following variable also has to be set:
CAN_OSCILLATOR="8000000"
Tested modules:
* PiCAN2 (16 MHz crystal): <http://skpang.co.uk/catalog/pican2-canbus-board-for-raspberry-pi-23-p-1475.html>
* 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>
## Enable infrared
Users who want to enable infrared support, for example for using LIRC (Linux
Infrared Remote Control), have to explicitly set in local.conf:
ENABLE_IR = "1"
This will add device tree overlays gpio-ir and gpio-ir-tx to config.txt.
Appropriate kernel modules will be also included in the image. By default the
GPIO pin for gpio-ir is set to 18 and the pin for gpio-ir-tx is 17. Both pins
can be easily changed by modifying variables `GPIO_IR` and `GPIO_IR_TX`.
## Enable gpio-shutdown
When using device tree kernels, set this variable to enable gpio-shutdown:
ENABLE_GPIO_SHUTDOWN = "1"
This will add the corresponding device tree overlay to config.txt and include
the gpio-keys kernel module in the image. If System V init is used, additional
mapping is applied to bind the button event to shutdown command. Systemd init
should handle the event out of the box.
By default the feature uses gpio pin 3 (except RPi 1 Model B rev 1 enumerates
the pin as gpio 1). This conflicts with the I2C bus. If you set `ENABLE_I2C`
to `1` or enabled `PiTFT` support, or otherwise want to use another pin, use
`GPIO_SHUTDOWN_PIN` to assign another pin. Example using gpio pin 25:
GPIO_SHUTDOWN_PIN = "25"
## Enable One-Wire Interface
One-wire is a single-wire communication bus typically used to connect sensors
to the RaspberryPi. The Raspberry Pi supports one-wire on any GPIO pin, but
the default is GPIO 4. To enable the one-wire interface explicitly set it in
`local.conf`
ENABLE_W1 = "1"
Once discovery is complete you can list the devices that your Raspberry Pi has
discovered via all 1-Wire busses check the interface with this command
`ls /sys/bus/w1/devices/`
## Manual additions to config.txt
@@ -271,3 +379,85 @@ option:
# Raspberry Pi 7\" display/touch screen \n \
lcd_rotate=2 \n \
'
## Enable Raspberrypi Camera V2
RaspberryPi does not have the unicam device ( RaspberryPi Camera ) enabled by default.
Because this unicam device ( bcm2835-unicam ) as of now is used by libcamera opensource.
So we have to explicitly set in local.conf.
RASPBERRYPI_CAMERA_V2 = "1"
This will add the device tree overlays imx219 ( RaspberryPi Camera sensor V2 driver ) to config.txt.
Also, this will enable adding Contiguous Memory Allocation value in the cmdline.txt.
Ref.:
* <https://github.com/raspberrypi/documentation/blob/master/linux/software/libcamera/README.md>
* <https://www.raspberrypi.org/blog/an-open-source-camera-stack-for-raspberry-pi-using-libcamera/>
## WM8960 soundcard support
Support for WM8960 based sound cards such as the WM8960 Hi-Fi Sound Card HAT for Raspberry Pi from Waveshare, and ReSpeaker 2 / 4 / 6 Mics Pi HAT from Seeed Studio, can be enabled in `local.conf`
MACHINE_FEATURES += "wm8960"
You may need to adjust volume and toggle switches that are off by default
amixer -c1 sset 'Headphone',0 80%,80%
amixer -c1 sset 'Speaker',0 80%,80%
amixer -c1 sset 'Left Input Mixer Boost' toggle
amixer -c1 sset 'Left Output Mixer PCM' toggle
amixer -c1 sset 'Right Input Mixer Boost' toggle
amixer -c1 sset 'Right Output Mixer PCM' toggle
Audio capture on ReSpeaker 2 / 4 / 6 Mics Pi HAT from Seeed Studio is very noisy.
## Support for RTC devices
The RaspberryPi boards don't feature an RTC module and the machine
configurations provided in this BSP layer have this assumption (until, if at
all, some later boards will come with one).
`rtc` is handled as a `MACHINE_FEATURES` in the context of the build system
which means that if an attached device is provided for which support is needed,
the recommended way forward is to write a new machine configuration based on an
existing one. Check the documentation for
`MACHINE_FEATURES_BACKFILL_CONSIDERED` for how this is disabled for the
relevant machines.
Even when `MACHINE_FEATURES` is tweaked to include the needed `rtc` string,
make sure that your kernel configuration is supporting the attached device and
the device tree is properly tweaked. Also, mind the runtime components that
take advantage of your RTC device. You can do that by checking what is
included/configured in the build system based on the inclusion of `rtc` in
`MACHINE_FEATURES`.
## Raspberry Pi Distro VLC
To enable Raspberry Pi Distro VLC, the `meta-openembedded/meta-multimedia` layer must be
included in your `bblayers.conf`.
VLC does not support HW accelerated video decode through MMAL on a 64-bit OS.
See:
* <https://forums.raspberrypi.com/viewtopic.php?t=275370>
* <https://forums.raspberrypi.com/viewtopic.php?t=325218#p1946169>
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:
PREFERRED_PROVIDER_ffmpeg = "ffmpeg"
PREFERRED_PROVIDER_vlc = "vlc"
Usage example: Start VLC with mmal_vout plugin and without an active display server.
DISPLAYNUM=$(tvservice -l | tail -c 2)
MMAL_DISPLAY=$(expr $DISPLAYNUM + 1)
VLC_SETTINGS="-I dummy --vout=mmal_vout --mmal-resize --mmal-display hdmi-$MMAL_DISPLAY --no-dbus"
cvlc $VLC_SETTINGS <video/playlist>

View File

@@ -15,6 +15,7 @@ Contents:
layer-contents
extra-build-config
extra-apps
ipcompliance
contributing
Indices and tables

23
docs/ipcompliance.md Normal file
View File

@@ -0,0 +1,23 @@
# IP Compliance
## linux-firmware-rpidistro
By default, some of the machine configurations recommend packages for the
WiFi/BT firmware, provided by
[linux-firmware-rpidistro](https://github.com/RPi-Distro/firmware-nonfree).
This package includes some firmware blobs under the `Synaptics` license which
could carry a legal risk: one of the clauses can be (at least theoretically)
used as a `killswitch`. This was
[reported](https://github.com/RPi-Distro/firmware-nonfree/issues/29) in the
upstream repository.
You can find the full license text body in the content of the above mentioned
package.
Due to the above, the build system will only allow this recipe to be built if
the user acknowledges this risk by adding the following configuration:
LICENSE_FLAGS_ACCEPTED = "synaptics-killswitch"
You can provide this configuration as part of your `local.conf`, `distro.conf`,
etc.

View File

@@ -5,14 +5,39 @@
* raspberrypi
* raspberrypi0
* raspberrypi0-wifi
* raspberrypi0-2w-64
* raspberrypi2
* raspberrypi3
* raspberrypi3-64 (64 bit kernel & userspace)
* raspberrypi4
* raspberrypi4-64 (64 bit kernel & userspace)
* raspberrypi-cm (dummy alias for raspberrypi)
* raspberrypi-cm3
Note: The raspberrypi3 machines include support for Raspberry Pi 3B+.
## Multi-board Machines
This layer generally provides support for machines that are targetting a single
Raspberry Pi board (or a very few subsets of them). This is so that the build
infrastructure can tune and tweak the configuration with the flexibility to
optimise for both runtime performance and disk storage.
For usecases where compatibility of more boards is required, the layer provides
machines that are tagetting a wider support of Raspberry Pi boards.
### raspberrypi-armv7
This machine targets support for all the ARMv7-based Raspberry Pi boards. It
will pull in the firmware and deploy the kernel image and kernel modules for
all the relevant boards.
### raspberrypi-armv8
This machine targets support for all the ARMv8-based Raspberry Pi boards. It
will pull in the firmware and deploy the kernel image and kernel modules for
all the relevant boards.
## Images
* rpi-test-image
@@ -20,8 +45,7 @@ Note: The raspberrypi3 machines include support for Raspberry Pi 3B+.
layer and some media samples.
For other uses it's recommended to base images on `core-image-minimal` or
`core-image-base` as appropriate. The old image names (`rpi-hwup-image` and
`rpi-basic-image`) are deprecated.
`core-image-base` as appropriate.
## WiFi and Bluetooth Firmware

1
docs/requirements.txt Normal file
View File

@@ -0,0 +1 @@
myst_parser

View File

@@ -0,0 +1,175 @@
diff -ruN lirc-0.10.1.orig/lib/config_file.c lirc-0.10.1/lib/config_file.c
--- lirc-0.10.1.orig/lib/config_file.c 2017-09-10 17:52:19.000000000 +0900
+++ lirc-0.10.1/lib/config_file.c 2019-06-26 00:39:45.734320696 +0900
@@ -71,7 +71,7 @@
typedef void* (*array_guest_func)(void* item, void* arg);
-#define LINE_LEN 1024
+#define LINE_LEN 4096
#define MAX_INCLUDES 10
const char* whitespace = " \t";
diff -ruN lirc-0.10.1.orig/lib/ir_remote.h lirc-0.10.1/lib/ir_remote.h
--- lirc-0.10.1.orig/lib/ir_remote.h 2017-09-10 17:52:19.000000000 +0900
+++ lirc-0.10.1/lib/ir_remote.h 2019-06-26 00:39:45.714321224 +0900
@@ -110,12 +110,17 @@
static inline int is_pulse(lirc_t data)
{
- return data & PULSE_BIT ? 1 : 0;
+ return ((data & LIRC_MODE2_MASK)==LIRC_MODE2_PULSE) ? 1 : 0;
}
static inline int is_space(lirc_t data)
{
- return !is_pulse(data);
+ return ((data & LIRC_MODE2_MASK)==LIRC_MODE2_SPACE) ? 1 : 0;
+}
+
+static inline int is_timeout(lirc_t data)
+{
+ return ((data & LIRC_MODE2_MASK)==LIRC_MODE2_TIMEOUT) ? 1 : 0;
}
static inline int has_repeat(const struct ir_remote* remote)
diff -ruN lirc-0.10.1.orig/lib/irrecord.c lirc-0.10.1/lib/irrecord.c
--- lirc-0.10.1.orig/lib/irrecord.c 2017-09-10 17:52:19.000000000 +0900
+++ lirc-0.10.1/lib/irrecord.c 2019-06-26 00:39:45.724320960 +0900
@@ -1398,9 +1398,16 @@
state->retval = 0;
return STS_LEN_TIMEOUT;
}
+ if (is_timeout(state->data)) {
+ return STS_LEN_AGAIN;
+ }
state->count++;
if (state->mode == MODE_GET_GAP) {
- state->sum += state->data & PULSE_MASK;
+ if (state->sum != 0 || is_pulse(state->data)) {
+ state->sum += state->data & PULSE_MASK;
+ }else{
+ return STS_LEN_AGAIN;
+ }
if (state->average == 0 && is_space(state->data)) {
if (state->data > 100000) {
state->sum = 0;
@@ -1472,6 +1479,10 @@
state->keypresses = lastmaxcount;
return STS_LEN_AGAIN;
} else if (state->mode == MODE_HAVE_GAP) {
+ if (state->count==1 && is_space(state->data)) {
+ state->count = 0;
+ return STS_LEN_AGAIN;
+ }
if (state->count <= MAX_SIGNALS) {
signals[state->count - 1] = state->data & PULSE_MASK;
} else {
@@ -1510,7 +1521,7 @@
/* such long pulses may appear with
* crappy hardware (receiver? / remote?)
*/
- else {
+ else if(is_pulse(state->data)) {
remote->gap = 0;
return STS_LEN_NO_GAP_FOUND;
}
@@ -1811,22 +1822,24 @@
static int raw_data_ok(struct button_state* btn_state)
{
- int r;
+ int r = 0;
int ref;
- if (!is_space(btn_state->data)) {
+ if (is_pulse(btn_state->data)) {
r = 0;
- } else if (is_const(&remote)) {
- if (remote.gap > btn_state->sum) {
- ref = (remote.gap - btn_state->sum);
- ref *= (100 - remote.eps);
- ref /= 100;
+ } else if (is_space(btn_state->data)) {
+ if (is_const(&remote)) {
+ if (remote.gap > btn_state->sum) {
+ ref = (remote.gap - btn_state->sum);
+ ref *= (100 - remote.eps);
+ ref /= 100;
+ } else {
+ ref = 0;
+ }
+ r = btn_state->data > ref;
} else {
- ref = 0;
+ r = btn_state->data > (remote.gap * (100 - remote.eps)) / 100;
}
- r = btn_state->data > ref;
- } else {
- r = btn_state->data > (remote.gap * (100 - remote.eps)) / 100;
}
return r;
}
@@ -1970,7 +1983,7 @@
btn_state->data = remote.gap;
}
if (btn_state->count == 0) {
- if (!is_space(btn_state->data)
+ if (is_pulse(btn_state->data)
|| btn_state->data <
remote.gap - remote.gap * remote.eps /
100) {
diff -ruN lirc-0.10.1.orig/lib/lirc/ir_remote.h lirc-0.10.1/lib/lirc/ir_remote.h
--- lirc-0.10.1.orig/lib/lirc/ir_remote.h 2017-09-10 17:52:58.000000000 +0900
+++ lirc-0.10.1/lib/lirc/ir_remote.h 2019-06-26 00:39:45.724320960 +0900
@@ -110,12 +110,17 @@
static inline int is_pulse(lirc_t data)
{
- return data & PULSE_BIT ? 1 : 0;
+ return ((data & LIRC_MODE2_MASK)==LIRC_MODE2_PULSE) ? 1 : 0;
}
static inline int is_space(lirc_t data)
{
- return !is_pulse(data);
+ return ((data & LIRC_MODE2_MASK)==LIRC_MODE2_SPACE) ? 1 : 0;
+}
+
+static inline int is_timeout(lirc_t data)
+{
+ return ((data & LIRC_MODE2_MASK)==LIRC_MODE2_TIMEOUT) ? 1 : 0;
}
static inline int has_repeat(const struct ir_remote* remote)
diff -ruN lirc-0.10.1.orig/tools/mode2.cpp lirc-0.10.1/tools/mode2.cpp
--- lirc-0.10.1.orig/tools/mode2.cpp 2017-09-10 17:52:19.000000000 +0900
+++ lirc-0.10.1/tools/mode2.cpp 2019-06-26 00:45:38.840404976 +0900
@@ -326,12 +326,24 @@
void print_mode2_data(unsigned int data)
{
static int bitno = 1;
+ static bool leading_space = true;
+ unsigned int msg = data & LIRC_MODE2_MASK;
switch (opt_dmode) {
case 0:
- printf("%s %u\n", (
- data & PULSE_BIT) ? "pulse" : "space",
- (uint32_t)(data & PULSE_MASK));
+ if (leading_space && msg == LIRC_MODE2_SPACE ) {
+ break;
+ } else {
+ leading_space = false;
+ }
+ if (msg == LIRC_MODE2_PULSE) {
+ printf("pulse %u\n", (__u32)(data & PULSE_MASK));
+ } else if (msg == LIRC_MODE2_SPACE) {
+ printf("space %u\n", (__u32)(data & PULSE_MASK));
+ } else if (msg == LIRC_MODE2_TIMEOUT) {
+ printf("timeout %u\n", (__u32)(data & PULSE_MASK));
+ leading_space = true;
+ }
break;
case 1: {
/* print output like irrecord raw config file data */

View File

@@ -0,0 +1,11 @@
[Unit]
Description=LIRC Infrared Signal Decoder
Wants=lircd-setup.service
After=network.target lircd-setup.service
[Service]
Type=simple
ExecStart=/usr/sbin/lircd --nodaemon
[Install]
WantedBy=multi-user.target

View File

@@ -0,0 +1,6 @@
FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:"
SRC_URI:append:rpi = " \
file://lirc-gpio-ir-0.10.patch \
file://lircd.service \
"

View File

@@ -0,0 +1,4 @@
FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:"
RDEPENDS:${PN} += "python3-sense-hat"

View File

@@ -1,7 +1,7 @@
SUMMARY = "Python module to control the Raspberry Pi Sense HAT used in the Astro Pi mission"
HOMEPAGE = "https://github.com/RPi-Distro/python-sense-hat"
SECTION = "devel/python"
LICENSE = "BSD"
LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://LICENCE.txt;md5=d80fe312e1ff5fbd97369b093bf21cda"
inherit setuptools3 pypi
@@ -17,8 +17,8 @@ DEPENDS += " \
freetype \
"
RDEPENDS_${PN} += " \
RDEPENDS:${PN} += " \
${PYTHON_PN}-numpy \
${PYTHON_PN}-rtimu \
${PYTHON_PN}-imaging \
${PYTHON_PN}-pillow \
"

View File

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

View File

@@ -0,0 +1,19 @@
From: =?utf-8?q?R=C3=A9mi_Denis-Courmont?= <remi@remlab.net>
Date: Sat, 16 Jun 2018 21:31:45 +0300
Subject: configure: fix linking on RISC-V ISA
Upstream-status: Pending
---
configure.ac | 1 +
1 file changed, 1 insertion(+)
--- a/configure.ac
+++ b/configure.ac
@@ -113,6 +113,7 @@ case "${host_os}" in
;;
linux*)
SYS=linux
+ test "${host_cpu}" = "riscv64" && CFLAGS="${CFLAGS} -pthread"
;;
bsdi*)
SYS=bsdi

View File

@@ -0,0 +1,22 @@
From: Sebastian Ramacher <sramacher@debian.org>
Date: Mon, 19 Aug 2019 21:08:26 +0200
Subject: Revert "configure: Require libmodplug >= 0.8.9"
This reverts commit 48f014768dc22ecad23d0e9f53c38805a3aff832.
Upstream-status: Pending
---
configure.ac | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--- a/configure.ac
+++ b/configure.ac
@@ -2207,7 +2207,7 @@ AC_ARG_ENABLE(mod,
[AS_HELP_STRING([--disable-mod],
[do not use libmodplug (default auto)])])
if test "${enable_mod}" != "no" ; then
- PKG_CHECK_MODULES(LIBMODPLUG, [libmodplug >= 0.8.9.0], [
+ PKG_CHECK_MODULES(LIBMODPLUG, [libmodplug >= 0.8.4 libmodplug != 0.8.8], [
VLC_ADD_PLUGIN([mod])
VLC_ADD_CXXFLAGS([mod],[$LIBMODPLUG_CFLAGS])
VLC_ADD_CFLAGS([mod],[$LIBMODPLUG_CFLAGS]) #modules/demux/mod.c needs CFLAGS_mod, not CXXFLAGS_mod

View File

@@ -0,0 +1,16 @@
Upstream-status: Pending
--- a/bin/vlc.c
+++ b/bin/vlc.c
@@ -106,7 +106,10 @@ static void vlc_kill (void *data)
static void exit_timeout (int signum)
{
(void) signum;
- signal (SIGINT, SIG_DFL);
+// This doesn't seem to be strong enough to reliably kill us if we fail to exit
+// in a timely fashion - so upgrade to _exit().
+// signal (SIGINT, SIG_DFL);
+ _exit(0);
}
/*****************************************************************************

View File

@@ -0,0 +1,16 @@
Upstream-status: Pending
--- a/modules/video_chroma/chain.c
+++ b/modules/video_chroma/chain.c
@@ -280,8 +280,9 @@ static int BuildTransformChain( filter_t
return VLC_SUCCESS;
/* Lets try resize+chroma first, then transform */
- msg_Dbg( p_filter, "Trying to build chroma+resize" );
- EsFormatMergeSize( &fmt_mid, &p_filter->fmt_out, &p_filter->fmt_in );
+ msg_Dbg( p_filter, "Trying to build chroma+resize, then transform" );
+ es_format_Copy( &fmt_mid, &p_filter->fmt_out );
+ video_format_TransformTo(&fmt_mid.video, p_filter->fmt_in.video.orientation);
i_ret = CreateChain( p_filter, &fmt_mid );
es_format_Clean( &fmt_mid );
if( i_ret == VLC_SUCCESS )

View File

@@ -0,0 +1,56 @@
From: Vincent Davis Jr <vince@underview.tech>
Date: Fri, 07 Jan 2022 07:10:47 PM CST
Subject: [PATCH] Use packageconfig to acquire mmal flags
Need to use userland graphics libraries package files as it's best to not assume /opt/vc is where
all libs and headers are installed per distro. Also, needed to include $BCMHOST_MMAL_LIBS variable as
AC_CHECK_LIB(bcm_host) fails to find `vc_tv_unregister_callback_full`. Adding $BCMHOST_MMAL_LIBS uses all
libs inside bcm_host,mmal,vcsm,openmaxil .pc files when checking for `vc_tv_unregister_callback_full`
function.
Upstream-status: Pending
Signed-off-by: Vincent Davis Jr <vince@underview.tech>
diff --git a/configure.ac b/configure.ac
index bff220510..4d487409d 100644
--- a/configure.ac
+++ b/configure.ac
@@ -3483,23 +3483,25 @@ AC_ARG_ENABLE(mmal_avcodec,
[Use MMAL enabled avcodec libs (default disable)]))
if test "${enable_mmal}" != "no"; then
VLC_SAVE_FLAGS
- LDFLAGS="${LDFLAGS} -L/opt/vc/lib -lvchostif"
- CPPFLAGS="${CPPFLAGS} -isystem /opt/vc/include -isystem /opt/vc/include/interface/vcos/pthreads -isystem /opt/vc/include/interface/vmcs_host/linux"
- AC_CHECK_HEADERS(interface/mmal/mmal.h,
- [ AC_CHECK_LIB(bcm_host, vc_tv_unregister_callback_full, [
+ PKG_CHECK_MODULES(BCMHOST_MMAL, [bcm_host mmal vcsm openmaxil egl], [
+ HAVE_MMAL=yes
+ AC_CHECK_HEADERS(interface/mmal/mmal.h,
+ [ AC_CHECK_LIB(bcm_host $BCMHOST_MMAL_LIBS, vc_tv_unregister_callback_full, [
have_mmal="yes"
- VLC_ADD_PLUGIN([mmal])
- VLC_ADD_LDFLAGS([mmal],[ -L/opt/vc/lib ])
- VLC_ADD_CFLAGS([mmal],[ -isystem /opt/vc/include -isystem /opt/vc/include/interface/vcos/pthreads -isystem /opt/vc/include/interface/vmcs_host/linux ])
- VLC_ADD_LIBS([mmal],[ -lbcm_host -lmmal -lmmal_core -lmmal_components -lmmal_util -lvchostif -lvchiq_arm -lvcsm ]) ], [
+ VLC_ADD_PLUGIN([bcm_host mmal vcsm openmaxil egl])
+ VLC_ADD_CFLAGS([bcm_host mmal vcsm openmaxil egl],[$BCMHOST_MMAL_CFLAGS])
+ VLC_ADD_LIBS([bcm_host mmal vcsm openmaxil egl],[$BCMHOST_MMAL_LIBS]) ], [
AS_IF([test "${enable_mmal}" = "yes"],
[ AC_MSG_ERROR([Cannot find bcm library...]) ],
[ AC_MSG_WARN([Cannot find bcm library...]) ])
- ],
- [])
- ] , [ AS_IF([test "${enable_mmal}" = "yes"],
- [ AC_MSG_ERROR([Cannot find development headers for mmal...]) ],
- [ AC_MSG_WARN([Cannot find development headers for mmal...]) ]) ])
+ ],[])
+ ],[ AS_IF([test "${enable_mmal}" = "yes"],
+ [ AC_MSG_ERROR([Cannot find development headers for mmal...]) ],
+ [ AC_MSG_WARN([Cannot find development headers for mmal...]) ]) ])
+ ],:[
+ AC_MSG_WARN([${BCMHOST_PKG_ERRORS}: userland graphics not available.])
+ HAVE_MMAL=no
+ ])
VLC_RESTORE_FLAGS
fi
AM_CONDITIONAL([HAVE_MMAL], [test "${have_mmal}" = "yes"])

View File

@@ -0,0 +1,18 @@
* tremor provides libvorbisidec, use it instead of libvorbisdec
Upstream-status: Pending
Signed-off-by: Tim Orling <TicoTimo@gmail.com>
Index: vlc-2.2.1/modules/codec/Makefile.am
===================================================================
--- vlc-2.2.1.orig/modules/codec/Makefile.am
+++ vlc-2.2.1/modules/codec/Makefile.am
@@ -234,7 +234,7 @@ codec_LTLIBRARIES += $(LTLIBtheora)
libtremor_plugin_la_SOURCES = codec/vorbis.c
libtremor_plugin_la_CPPFLAGS = $(AM_CPPFLAGS) -DMODULE_NAME_IS_tremor
libtremor_plugin_la_LDFLAGS = $(AM_LDFLAGS) -rpath '$(codecdir)'
-libtremor_plugin_la_LIBADD = -lvorbisdec -logg
+libtremor_plugin_la_LIBADD = -lvorbisidec -logg
EXTRA_LTLIBRARIES += libtremor_plugin.la
codec_LTLIBRARIES += $(LTLIBtremor)

View File

@@ -0,0 +1,233 @@
* luaL_checkint and luaL_optint were deprecated in lua 5.3
* replacement functions are luaL_checkinteger and luaL_optinteger
Upstream-status: Pending
Signed-off-by: Tim Orling <TicoTimo@gmail.com>
--- a/modules/lua/demux.c
+++ b/modules/lua/demux.c
@@ -52,7 +52,7 @@ struct vlclua_playlist
static int vlclua_demux_peek( lua_State *L )
{
stream_t *s = (stream_t *)vlclua_get_this(L);
- int n = luaL_checkint( L, 1 );
+ int n = luaL_checkinteger( L, 1 );
const uint8_t *p_peek;
ssize_t val = vlc_stream_Peek(s->p_source, &p_peek, n);
@@ -66,7 +66,7 @@ static int vlclua_demux_peek( lua_State
static int vlclua_demux_read( lua_State *L )
{
stream_t *s = (stream_t *)vlclua_get_this(L);
- int n = luaL_checkint( L, 1 );
+ int n = luaL_checkinteger( L, 1 );
char *buf = malloc(n);
if (buf != NULL)
--- a/modules/lua/libs/net.c
+++ b/modules/lua/libs/net.c
@@ -179,7 +179,7 @@ static int vlclua_net_listen_tcp( lua_St
{
vlc_object_t *p_this = vlclua_get_this( L );
const char *psz_host = luaL_checkstring( L, 1 );
- int i_port = luaL_checkint( L, 2 );
+ int i_port = luaL_checkinteger( L, 2 );
int *pi_fd = net_ListenTCP( p_this, psz_host, i_port );
if( pi_fd == NULL )
return luaL_error( L, "Cannot listen on %s:%d", psz_host, i_port );
@@ -251,7 +251,7 @@ static int vlclua_net_connect_tcp( lua_S
{
vlc_object_t *p_this = vlclua_get_this( L );
const char *psz_host = luaL_checkstring( L, 1 );
- int i_port = luaL_checkint( L, 2 );
+ int i_port = luaL_checkinteger( L, 2 );
int i_fd = net_ConnectTCP( p_this, psz_host, i_port );
lua_pushinteger( L, vlclua_fd_map_safe( L, i_fd ) );
return 1;
@@ -259,14 +259,14 @@ static int vlclua_net_connect_tcp( lua_S
static int vlclua_net_close( lua_State *L )
{
- int i_fd = luaL_checkint( L, 1 );
+ int i_fd = luaL_checkinteger( L, 1 );
vlclua_fd_unmap_safe( L, i_fd );
return 0;
}
static int vlclua_net_send( lua_State *L )
{
- int fd = vlclua_fd_get( L, luaL_checkint( L, 1 ) );
+ int fd = vlclua_fd_get( L, luaL_checkinteger( L, 1 ) );
size_t i_len;
const char *psz_buffer = luaL_checklstring( L, 2, &i_len );
@@ -278,7 +278,7 @@ static int vlclua_net_send( lua_State *L
static int vlclua_net_recv( lua_State *L )
{
- int fd = vlclua_fd_get( L, luaL_checkint( L, 1 ) );
+ int fd = vlclua_fd_get( L, luaL_checkinteger( L, 1 ) );
size_t i_len = (size_t)luaL_optinteger( L, 2, 1 );
char psz_buffer[i_len];
@@ -312,7 +312,7 @@ static int vlclua_net_poll( lua_State *L
lua_pushnil( L );
for( int i = 0; lua_next( L, 1 ); i++ )
{
- luafds[i] = luaL_checkint( L, -2 );
+ luafds[i] = luaL_checkinteger( L, -2 );
p_fds[i].fd = vlclua_fd_get( L, luafds[i] );
p_fds[i].events = luaL_checkinteger( L, -1 );
p_fds[i].events &= POLLIN | POLLOUT | POLLPRI;
@@ -360,7 +360,7 @@ static int vlclua_fd_open( lua_State *L
#ifndef _WIN32
static int vlclua_fd_write( lua_State *L )
{
- int fd = vlclua_fd_get( L, luaL_checkint( L, 1 ) );
+ int fd = vlclua_fd_get( L, luaL_checkinteger( L, 1 ) );
size_t i_len;
const char *psz_buffer = luaL_checklstring( L, 2, &i_len );
@@ -371,7 +371,7 @@ static int vlclua_fd_write( lua_State *L
static int vlclua_fd_read( lua_State *L )
{
- int fd = vlclua_fd_get( L, luaL_checkint( L, 1 ) );
+ int fd = vlclua_fd_get( L, luaL_checkinteger( L, 1 ) );
size_t i_len = (size_t)luaL_optinteger( L, 2, 1 );
char psz_buffer[i_len];
--- a/modules/lua/libs/osd.c
+++ b/modules/lua/libs/osd.c
@@ -154,7 +154,7 @@ static int vlc_osd_slider_type_from_stri
static int vlclua_osd_slider( lua_State *L )
{
- int i_position = luaL_checkint( L, 1 );
+ int i_position = luaL_checkinteger( L, 1 );
const char *psz_type = luaL_checkstring( L, 2 );
int i_type = vlc_osd_slider_type_from_string( psz_type );
int i_chan = (int)luaL_optinteger( L, 3, VOUT_SPU_CHANNEL_OSD );
@@ -198,7 +198,7 @@ static int vlclua_spu_channel_register(
static int vlclua_spu_channel_clear( lua_State *L )
{
- int i_chan = luaL_checkint( L, 1 );
+ int i_chan = luaL_checkinteger( L, 1 );
input_thread_t *p_input = vlclua_get_input_internal( L );
if( !p_input )
return luaL_error( L, "Unable to find input." );
--- a/modules/lua/libs/playlist.c
+++ b/modules/lua/libs/playlist.c
@@ -69,7 +69,7 @@ static int vlclua_playlist_next( lua_Sta
static int vlclua_playlist_skip( lua_State * L )
{
- int i_skip = luaL_checkint( L, 1 );
+ int i_skip = luaL_checkinteger( L, 1 );
playlist_t *p_playlist = vlclua_get_playlist_internal( L );
playlist_Skip( p_playlist, i_skip );
return 0;
@@ -127,7 +127,7 @@ static int vlclua_playlist_random( lua_S
static int vlclua_playlist_gotoitem( lua_State * L )
{
- int i_id = luaL_checkint( L, 1 );
+ int i_id = luaL_checkinteger( L, 1 );
playlist_t *p_playlist = vlclua_get_playlist_internal( L );
PL_LOCK;
playlist_ViewPlay( p_playlist, NULL,
@@ -138,7 +138,7 @@ static int vlclua_playlist_gotoitem( lua
static int vlclua_playlist_delete( lua_State * L )
{
- int i_id = luaL_checkint( L, 1 );
+ int i_id = luaL_checkinteger( L, 1 );
playlist_t *p_playlist = vlclua_get_playlist_internal( L );
PL_LOCK;
@@ -152,8 +152,8 @@ static int vlclua_playlist_delete( lua_S
static int vlclua_playlist_move( lua_State * L )
{
- int i_item = luaL_checkint( L, 1 );
- int i_target = luaL_checkint( L, 2 );
+ int i_item = luaL_checkinteger( L, 1 );
+ int i_target = luaL_checkinteger( L, 2 );
playlist_t *p_playlist = vlclua_get_playlist_internal( L );
PL_LOCK;
playlist_item_t *p_item = playlist_ItemGetById( p_playlist, i_item );
--- a/modules/lua/libs/stream.c
+++ b/modules/lua/libs/stream.c
@@ -123,7 +123,7 @@ static int vlclua_stream_read( lua_State
{
int i_read;
stream_t **pp_stream = (stream_t **)luaL_checkudata( L, 1, "stream" );
- int n = luaL_checkint( L, 2 );
+ int n = luaL_checkinteger( L, 2 );
uint8_t *p_read = malloc( n );
if( !p_read ) return vlclua_error( L );
--- a/modules/lua/libs/volume.c
+++ b/modules/lua/libs/volume.c
@@ -48,7 +48,7 @@
static int vlclua_volume_set( lua_State *L )
{
playlist_t *p_this = vlclua_get_playlist_internal( L );
- int i_volume = luaL_checkint( L, 1 );
+ int i_volume = luaL_checkinteger( L, 1 );
if( i_volume < 0 )
i_volume = 0;
int i_ret = playlist_VolumeSet( p_this, i_volume/(float)AOUT_VOLUME_DEFAULT );
--- a/modules/lua/libs/dialog.c
+++ b/modules/lua/libs/dialog.c
@@ -382,7 +382,7 @@ static int lua_GetDialogUpdate( lua_Stat
/* Read entry in the Lua registry */
lua_pushlightuserdata( L, (void*) &key_update );
lua_gettable( L, LUA_REGISTRYINDEX );
- return luaL_checkint( L, -1 );
+ return luaL_checkinteger( L, -1 );
}
/** Manually update a dialog
@@ -573,22 +573,22 @@ static int vlclua_create_widget_inner( l
/* Set common arguments: col, row, hspan, vspan, width, height */
if( lua_isnumber( L, arg ) )
- p_widget->i_column = luaL_checkint( L, arg );
+ p_widget->i_column = luaL_checkinteger( L, arg );
else goto end_of_args;
if( lua_isnumber( L, ++arg ) )
- p_widget->i_row = luaL_checkint( L, arg );
+ p_widget->i_row = luaL_checkinteger( L, arg );
else goto end_of_args;
if( lua_isnumber( L, ++arg ) )
- p_widget->i_horiz_span = luaL_checkint( L, arg );
+ p_widget->i_horiz_span = luaL_checkinteger( L, arg );
else goto end_of_args;
if( lua_isnumber( L, ++arg ) )
- p_widget->i_vert_span = luaL_checkint( L, arg );
+ p_widget->i_vert_span = luaL_checkinteger( L, arg );
else goto end_of_args;
if( lua_isnumber( L, ++arg ) )
- p_widget->i_width = luaL_checkint( L, arg );
+ p_widget->i_width = luaL_checkinteger( L, arg );
else goto end_of_args;
if( lua_isnumber( L, ++arg ) )
- p_widget->i_height = luaL_checkint( L, arg );
+ p_widget->i_height = luaL_checkinteger( L, arg );
else goto end_of_args;
end_of_args:
--- a/modules/lua/libs/io.c
+++ b/modules/lua/libs/io.c
@@ -139,7 +139,7 @@ static int vlclua_io_file_seek( lua_Stat
const char* psz_mode = luaL_optstring( L, 2, NULL );
if ( psz_mode != NULL )
{
- long i_offset = luaL_optlong( L, 3, 0 );
+ long i_offset = (long)luaL_optinteger( L, 3, 0 );
int i_mode;
if ( !strcmp( psz_mode, "set" ) )
i_mode = SEEK_SET;

View File

@@ -0,0 +1,58 @@
From: Vincent Davis Jr <vince@underview.tech>
Date: Fri, 07 Jan 2022 07:01:47 PM CST
Subject: [PATCH] Fix EGL macro undeclared and EGLImageKHR
* Fixes compiler issues related to EGL macro constant/enum value type not being defined
* Updates EGLImage to EGLImageKHR
Upstream-status: Pending
Signed-off-by: Vincent Davis Jr <vince@underview.tech>
diff --git a/modules/hw/mmal/converter_mmal.c b/modules/hw/mmal/converter_mmal.c
index f31cb81d8..426af668b 100644
--- a/modules/hw/mmal/converter_mmal.c
+++ b/modules/hw/mmal/converter_mmal.c
@@ -28,6 +28,34 @@
#define TRACE_ALL 0
+// Pass Yocto related build errors
+#define EGL_LINUX_DMA_BUF_EXT 0x3270
+#define EGL_LINUX_DRM_FOURCC_EXT 0x3271
+#define EGL_DMA_BUF_PLANE0_FD_EXT 0x3272
+#define EGL_DMA_BUF_PLANE0_OFFSET_EXT 0x3273
+#define EGL_DMA_BUF_PLANE0_PITCH_EXT 0x3274
+#define EGL_DMA_BUF_PLANE1_FD_EXT 0x3275
+#define EGL_DMA_BUF_PLANE1_OFFSET_EXT 0x3276
+#define EGL_DMA_BUF_PLANE1_PITCH_EXT 0x3277
+#define EGL_DMA_BUF_PLANE2_FD_EXT 0x3278
+#define EGL_DMA_BUF_PLANE2_OFFSET_EXT 0x3279
+#define EGL_DMA_BUF_PLANE2_PITCH_EXT 0x327A
+#define EGL_YUV_COLOR_SPACE_HINT_EXT 0x327B
+#define EGL_SAMPLE_RANGE_HINT_EXT 0x327C
+#define EGL_YUV_CHROMA_HORIZONTAL_SITING_HINT_EXT 0x327D
+#define EGL_YUV_CHROMA_VERTICAL_SITING_HINT_EXT 0x327E
+#define EGL_DMA_BUF_PLANE0_MODIFIER_LO_EXT 0x3443
+#define EGL_DMA_BUF_PLANE0_MODIFIER_HI_EXT 0x3444
+#define EGL_DMA_BUF_PLANE1_MODIFIER_LO_EXT 0x3445
+#define EGL_DMA_BUF_PLANE1_MODIFIER_HI_EXT 0x3446
+#define EGL_DMA_BUF_PLANE2_MODIFIER_LO_EXT 0x3447
+#define EGL_DMA_BUF_PLANE2_MODIFIER_HI_EXT 0x3448
+#define EGL_DMA_BUF_PLANE3_FD_EXT 0x3440
+#define EGL_DMA_BUF_PLANE3_OFFSET_EXT 0x3441
+#define EGL_DMA_BUF_PLANE3_PITCH_EXT 0x3442
+#define EGL_DMA_BUF_PLANE3_MODIFIER_LO_EXT 0x3449
+#define EGL_DMA_BUF_PLANE3_MODIFIER_HI_EXT 0x344A
+
typedef struct mmal_gl_converter_s
{
EGLint drm_fourcc;
@@ -199,7 +227,7 @@ static tex_context_t * get_tex_context(const opengl_tex_converter_t * const tc,
*a = EGL_NONE;
- const EGLImage image = tc->gl->egl.createImageKHR(tc->gl, EGL_LINUX_DMA_BUF_EXT, NULL, attribs);
+ const EGLImageKHR image = tc->gl->egl.createImageKHR(tc->gl, EGL_LINUX_DMA_BUF_EXT, NULL, attribs);
if (!image) {
msg_Err(tc, "Failed to import fd %d: Err=%#x", fd, tc->vt->GetError());
goto fail;

View File

@@ -0,0 +1,35 @@
From: Vincent Davis Jr <vince@underview.tech>
Date: Fri, 07 Jan 2022 07:10:47 PM CST
Subject: [PATCH] Fix numeric limits not a member
* Fixes bellow compiler issue:
../../git/modules/demux/adaptive/playlist/SegmentInformation.cpp:397:23: error: 'numeric_limits' is not a member of 'std'
397 | if(number == std::numeric_limits<uint64_t>::max())
Upstream-status: Pending
Signed-off-by: Vincent Davis Jr <vince@underview.tech>
diff --git a/modules/demux/adaptive/playlist/SegmentInformation.cpp b/modules/demux/adaptive/playlist/SegmentInformation.cpp
index 344e155c7..8eeb05439 100644
--- a/modules/demux/adaptive/playlist/SegmentInformation.cpp
+++ b/modules/demux/adaptive/playlist/SegmentInformation.cpp
@@ -34,6 +34,7 @@
#include <algorithm>
#include <cassert>
+#include <limits>
using namespace adaptive::playlist;
diff --git a/modules/demux/hls/playlist/Parser.cpp b/modules/demux/hls/playlist/Parser.cpp
index 67110e4cd..743969922 100644
--- a/modules/demux/hls/playlist/Parser.cpp
+++ b/modules/demux/hls/playlist/Parser.cpp
@@ -42,6 +42,7 @@
#include <map>
#include <cctype>
#include <algorithm>
+#include <limits>
using namespace adaptive;
using namespace adaptive::playlist;

View File

@@ -0,0 +1,159 @@
DESCRIPTION = "Video player and streamer - davinci edition"
HOMEPAGE = "http://www.videolan.org"
SECTION = "multimedia"
LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
SRC_URI = "\
git://git@github.com/RPi-Distro/vlc;protocol=https;branch=buster-rpt \
file://0001-configure-fix-linking-on-RISC-V-ISA.patch \
file://0002-Revert-configure-Require-libmodplug-0.8.9.patch \
file://0003-mmal_20.patch \
file://0004-mmal_exit_fix.patch \
file://0005-mmal_chain.patch \
file://0006-Use-packageconfig-to-detect-mmal-support.patch \
file://0007-use-vorbisidec.patch \
file://0008-fix-luaL-checkint.patch \
file://0009-fix-EGL-macro-undeclared-and-EGLImageKHR.patch \
file://0010-fix-numeric_limits-is-not-a-member-of-std.patch \
"
SRCREV = "f7fd69f12a3b89d03768fa3bd468e8f33cd1dc7c"
S = "${WORKDIR}/git"
PROVIDES = "vlc"
RPROVIDES:${PN} = "${PROVIDES}"
DEPENDS = "coreutils-native fribidi libtool libgcrypt libgcrypt-native \
dbus libxml2 gnutls tremor faad2 ffmpeg flac alsa-lib libidn \
jpeg xz libmodplug mpeg2dec libmtp libopus orc libsamplerate0 \
avahi libusb1 schroedinger taglib tiff"
inherit autotools gettext pkgconfig mime-xdg
export BUILDCC = "${BUILD_CC} -std=c11"
EXTRA_OECONF = "\
--enable-run-as-root \
--enable-xvideo \
--disable-lua \
--disable-screen --disable-caca \
--enable-vlm \
--enable-tremor \
--disable-aa --disable-faad \
--enable-dbus \
--without-contrib \
--without-kde-solid \
--enable-realrtsp \
--disable-libtar \
--enable-avcodec \
"
PACKAGECONFIG ?= "\
${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', '', d)} \
${@bb.utils.contains('MACHINE_FEATURES', 'vc4graphics', '', 'mmal', d)} \
live555 dv1394 notify fontconfig fluidsynth freetype dvdread png udev \
x264 alsa harfbuzz jack neon fribidi dvbpsi a52 v4l2 gles2 \
"
PACKAGECONFIG[mmal] = "--enable-omxil --enable-omxil-vout --enable-rpi-omxil --enable-mmal --enable-mmal-avcodec,,userland"
PACKAGECONFIG[x264] = "--enable-x264,--disable-x264,x264"
PACKAGECONFIG[mad] = "--enable-mad,--disable-mad,libmad"
PACKAGECONFIG[a52] = "--enable-a52,--disable-a52,liba52"
PACKAGECONFIG[jack] = "--enable-jack,--disable-jack,jack"
PACKAGECONFIG[live555] = "--enable-live555 LIVE555_PREFIX=${STAGING_DIR_HOST}${prefix},--disable-live555,live555"
PACKAGECONFIG[libass] = "--enable-libass,--disable-libass,libass"
PACKAGECONFIG[postproc] = "--enable-postproc,--disable-postproc,libpostproc"
PACKAGECONFIG[libva] = "--enable-libva,--disable-libva,libva"
PACKAGECONFIG[opencv] = "--enable-opencv,--disable-opencv,opencv"
PACKAGECONFIG[speex] = "--enable-speex,--disable-speex,speex"
PACKAGECONFIG[gstreamer] = "--enable-gst-decode,--disable-gst-decode,gstreamer1.0 gstreamer1.0-plugins-base gstreamer1.0-plugins-bad"
PACKAGECONFIG[vpx] = "--enable-vpx,--disable-vpx, libvpx"
PACKAGECONFIG[freerdp] = "--enable-freerdp,--disable-freerdp, freerdp"
PACKAGECONFIG[dvbpsi] = "--enable-dvbpsi,--disable-dvbpsi, libdvbpsi"
PACKAGECONFIG[samba] = "--enable-smbclient,--disable-smbclient, samba"
PACKAGECONFIG[upnp] = "--enable-upnp,--disable-upnp,libupnp"
PACKAGECONFIG[dvdnav] = "--enable-dvdnav,--disable-dvdnav,libdvdnav libdvdcss"
PACKAGECONFIG[sftp] = "--enable-sftp,--disable-sftp,libssh2"
PACKAGECONFIG[vorbis] = "--enable-vorbis,--disable-vorbis,libvorbis libogg"
PACKAGECONFIG[ogg] = "--enable-ogg,--disable-ogg,libvorbis libogg"
PACKAGECONFIG[dc1394] = "--enable-dc1394,--disable-dc1394,libdc1394"
PACKAGECONFIG[dv1394] = "--enable-dv1394,--disable-dv1394,libraw1394 libavc1394"
PACKAGECONFIG[svg] = "--enable-svg,--disable-svg,librsvg"
PACKAGECONFIG[svgdec] = "--enable-svgdec,--disable-svgdec,librsvg cairo"
PACKAGECONFIG[notify] = "--enable-notify,--disable-notify, libnotify gtk+3"
PACKAGECONFIG[fontconfig] = "--enable-fontconfig,--disable-fontconfig, fontconfig"
PACKAGECONFIG[freetype] = "--enable-freetype,--disable-freetype, freetype"
PACKAGECONFIG[dvdread] = "--enable-dvdread,--disable-dvdread, libdvdread libdvdcss"
PACKAGECONFIG[vnc] = "--enable-vnc,--disable-vnc, libvncserver"
PACKAGECONFIG[x11] = "--with-x --enable-xcb,--without-x --disable-xcb, xcb-util-keysyms libxpm libxinerama"
PACKAGECONFIG[png] = "--enable-png,--disable-png,libpng"
PACKAGECONFIG[vdpau] = "--enable-vdpau,--disable-vdpau,libvdpau"
PACKAGECONFIG[wayland] = "--enable-wayland,--disable-wayland,wayland wayland-native"
PACKAGECONFIG[gles2] = "--enable-gles2,--disable-gles2,virtual/libgles2"
PACKAGECONFIG[dca] = "--enable-dca,,"
PACKAGECONFIG[fribidi] = "--enable-fribidi,,fribidi"
PACKAGECONFIG[gnutls] = "--enable-gnutls,,gnutls"
PACKAGECONFIG[fluidsynth] = "--enable-fluidsynth,,fluidsynth"
PACKAGECONFIG[harfbuzz] = "--enable-harfbuzz,--disable-harfbuzz,harfbuzz"
PACKAGECONFIG[udev] = "--enable-udev,--disable-udev,udev"
PACKAGECONFIG[neon] = "--enable-neon,--disable-neon,"
PACKAGECONFIG[opus] = "--enable-opus,--disable-opus,libopus libogg"
PACKAGECONFIG[ncurses] = "--enable-ncurses,--disable-ncurses,ncurses"
PACKAGECONFIG[alsa] = "--enable-alsa,--disable-alsa,alsa-lib"
PACKAGECONFIG[pulseaudio] = "--enable-pulse,--disable-pulse,pulseaudio"
PACKAGECONFIG[sdl-image] = "--enable-sdl-image,,libsdl-image"
PACKAGECONFIG[v4l2] = "--enable-v4l2,,v4l-utils"
# Workaround for modules/codec/omxil/omxil_core.h
# multiple definition of `pf_enable_graphic_buffers'
# multiple definition of `pf_get_graphic_buffer_usage'
# multiple definition of `pf_get_hal_format'
TARGET_CFLAGS:append = " -fcommon"
TARGET_CXXFLAGS:append = " -fcommon"
# Ensures the --enable-mmal-avcodec flag is available for usage
do_configure:prepend() {
olddir=`pwd`
cd ${S}
./bootstrap
cd $olddir
}
do_configure:append() {
# https://forums.raspberrypi.com/viewtopic.php?p=1601535
sed -i "/GLAPI void APIENTRY glShaderSource (/d" ${STAGING_INCDIR}/GL/glext.h
#sed -i -e s:'${top_builddir_slash}libtool':'${top_builddir_slash}'${TARGET_SYS}-libtool:g ${B}/doltlibtool
}
# This recipe packages vlc as a library as well, so qt4 dependencies
# can be avoided when only the library is installed.
PACKAGES =+ "libvlc"
LEAD_SONAME_libvlc = "libvlc.so.5"
FILES:libvlc = "${libdir}/lib*.so.*"
FILES:${PN} += "\
${bindir}/vlc \
${libdir}/vlc \
${datadir}/applications \
${datadir}/vlc \
${datadir}/icons \
${datadir}/metainfo/vlc.appdata.xml \
"
FILES:${PN}-dbg += "\
${libdir}/vlc/*/.debug \
${libdir}/vlc/plugins/*/.debug \
"
FILES:${PN}-staticdev += "\
${libdir}/vlc/plugins/*/*.a \
${libdir}/vlc/libcompat.a \
"
# Only enable it for rpi class of machines
COMPATIBLE_HOST = "null"
COMPATIBLE_HOST:rpi = "'(.*)'"
INSANE_SKIP:${PN} = "dev-so"

View File

@@ -1,3 +1,3 @@
FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:"
COMPATIBLE_MACHINE_rpi = "(null)"
COMPATIBLE_MACHINE:rpi = "(null)"

View File

@@ -1 +1 @@
RDEPENDS_packagegroup-meta-oe-kernel_remove_rpi = "bpftool"
RDEPENDS:packagegroup-meta-oe-kernel:remove:rpi = "bpftool"

View File

@@ -0,0 +1,33 @@
SUMMARY = "CircuitPython APIs for non-CircuitPython versions of Python such as CPython on Linux and MicroPython."
HOMEPAGE = "https://github.com/adafruit/Adafruit_Blinka"
LICENSE = "MIT"
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"
do_install:append() {
# it ships ./bcm283x/pulseio/libgpiod_pulsein which is a prebuilt
# 32bit binary therefore we should make this specific to 32bit rpi machines (based on bcm283x) only
if [ ${@bb.utils.contains('TUNE_FEATURES', 'callconvention-hard', '1', '0', d)} = "0" ]; then
rm -rf ${D}${PYTHON_SITEPACKAGES_DIR}/adafruit_blinka/microcontroller/bcm283x
fi
}
RDEPENDS:${PN} += " \
libgpiod \
python3-adafruit-platformdetect \
python3-adafruit-pureio \
python3-core \
"
RDEPENDS:${PN}:append:rpi = " rpi-gpio"
COMPATIBLE_HOST:libc-musl:class-target = "null"

View File

@@ -0,0 +1,19 @@
SUMMARY = "CircuitPython bus device classes to manage bus sharing."
HOMEPAGE = "https://github.com/adafruit/Adafruit_CircuitPython_BusDevice"
LICENSE = "MIT"
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"
RDEPENDS:${PN} += " \
python3-adafruit-blinka \
python3-core \
"
COMPATIBLE_HOST:libc-musl:class-target = "null"

View File

@@ -0,0 +1,19 @@
SUMMARY = "CircuitPython helper library provides higher level objects to control motors and servos."
HOMEPAGE = "https://github.com/adafruit/Adafruit_CircuitPython_Motor"
LICENSE = "MIT"
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"
RDEPENDS:${PN} += " \
python3-adafruit-blinka \
python3-core \
"
COMPATIBLE_HOST:libc-musl:class-target = "null"

View File

@@ -0,0 +1,23 @@
SUMMARY = "CircuitPython helper library for DC & Stepper Motor FeatherWing, Shield, and Pi Hat kits."
HOMEPAGE = "https://github.com/adafruit/Adafruit_CircuitPython_MotorKit"
LICENSE = "MIT"
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"
RDEPENDS:${PN} += " \
python3-adafruit-blinka \
python3-adafruit-circuitpython-busdevice \
python3-adafruit-circuitpython-motor \
python3-adafruit-circuitpython-pca9685 \
python3-adafruit-circuitpython-register \
python3-core \
"
COMPATIBLE_HOST:libc-musl:class-target = "null"

View File

@@ -0,0 +1,21 @@
SUMMARY = "CircuitPython driver for motor, stepper, and servo based on PCA9685."
HOMEPAGE = "https://github.com/adafruit/Adafruit_CircuitPython_PCA9685"
LICENSE = "MIT"
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"
RDEPENDS:${PN} += " \
python3-adafruit-blinka \
python3-adafruit-circuitpython-busdevice \
python3-adafruit-circuitpython-register \
python3-core \
"
COMPATIBLE_HOST:libc-musl:class-target = "null"

View File

@@ -1,19 +1,19 @@
PACKAGECONFIG_GL_rpi = "${@bb.utils.contains('DISTRO_FEATURES', 'x11 opengl', 'gl', \
PACKAGECONFIG_GL:rpi = "${@bb.utils.contains('DISTRO_FEATURES', 'x11 opengl', 'gl', \
bb.utils.contains('DISTRO_FEATURES', 'opengl', 'eglfs gles2', \
'', d), d)}"
PACKAGECONFIG_GL_append_rpi = "${@bb.utils.contains('MACHINE_FEATURES', 'vc4graphics', ' kms', '', d)}"
PACKAGECONFIG_GL_append_rpi = " gbm"
PACKAGECONFIG_FONTS_rpi = "fontconfig"
PACKAGECONFIG_append_rpi = " libinput examples tslib xkb xkbcommon"
PACKAGECONFIG_remove_rpi = "tests"
PACKAGECONFIG_GL:append:rpi = "${@bb.utils.contains('MACHINE_FEATURES', 'vc4graphics', ' kms', '', d)}"
PACKAGECONFIG_GL:append:rpi = " gbm"
PACKAGECONFIG_FONTS:rpi = "fontconfig"
PACKAGECONFIG:append:rpi = " libinput examples tslib xkbcommon"
PACKAGECONFIG:remove:rpi = "tests"
OE_QTBASE_EGLFS_DEVICE_INTEGRATION_rpi = "${@bb.utils.contains('MACHINE_FEATURES', 'vc4graphics', '', 'eglfs_brcm', d)}"
OE_QTBASE_EGLFS_DEVICE_INTEGRATION:rpi = "${@bb.utils.contains('MACHINE_FEATURES', 'vc4graphics', '', 'eglfs_brcm', d)}"
do_configure_prepend_rpi() {
do_configure:prepend:rpi() {
# Add the appropriate EGLFS_DEVICE_INTEGRATION
if [ "${@d.getVar('OE_QTBASE_EGLFS_DEVICE_INTEGRATION')}" != "" ]; then
echo "EGLFS_DEVICE_INTEGRATION = ${OE_QTBASE_EGLFS_DEVICE_INTEGRATION}" >> ${S}/mkspecs/oe-device-extra.pri
fi
}
RDEPENDS_${PN}_append_rpi = " userland"
DEPENDS_append_rpi = "${@bb.utils.contains('MACHINE_FEATURES', 'vc4graphics', '', ' userland', d)}"
RDEPENDS:${PN}:append:rpi = "${@bb.utils.contains('MACHINE_FEATURES', 'vc4graphics', '', ' userland', d)}"
DEPENDS:append:rpi = "${@bb.utils.contains('MACHINE_FEATURES', 'vc4graphics', '', ' userland', d)}"

View File

@@ -1,25 +0,0 @@
Copyright (c) 2012, Broadcom Europe Ltd
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
* Neither the name of the copyright holder nor the
names of its contributors may be used to endorse or promote products
derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

View File

@@ -0,0 +1,29 @@
Copyright (c) 2006, Broadcom Corporation.
Copyright (c) 2015, Raspberry Pi (Trading) Ltd
All rights reserved.
Redistribution. Redistribution and use in binary form, without
modification, are permitted provided that the following conditions are
met:
* This software may only be used for the purposes of developing for,
running or using a Raspberry Pi device.
* Redistributions must reproduce the above copyright notice and the
following disclaimer in the documentation and/or other materials
provided with the distribution.
* Neither the name of Broadcom Corporation nor the names of its suppliers
may be used to endorse or promote products derived from this software
without specific prior written permission.
DISCLAIMER. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
DAMAGE.

Binary file not shown.

After

Width:  |  Height:  |  Size: 271 KiB

BIN
img/balena.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.7 KiB

61
kas-poky-rpi.yml Normal file
View File

@@ -0,0 +1,61 @@
header:
version: 8
machine: raspberrypi4
distro: poky
target:
- core-image-base
repos:
meta-raspberry:
poky:
url: https://git.yoctoproject.org/git/poky
path: layers/poky
refspec: master
layers:
meta:
meta-poky:
meta-yocto-bsp:
meta-openembedded:
url: http://git.openembedded.org/meta-openembedded
path: layers/meta-openembedded
refspec: master
layers:
meta-oe:
meta-python:
meta-networking:
meta-perl:
meta-qt5:
url: https://github.com/meta-qt5/meta-qt5/
path: layers/meta-qt5
refspec: master
bblayers_conf_header:
standard: |
POKY_BBLAYERS_CONF_VERSION = "2"
BBPATH = "${TOPDIR}"
BBFILES ?= ""
local_conf_header:
reduce_diskspace: |
INHERIT += "rm_work_and_downloads"
standard: |
CONF_VERSION = "2"
PACKAGE_CLASSES = "package_rpm"
SDKMACHINE = "x86_64"
USER_CLASSES = "buildstats"
PATCHRESOLVE = "noop"
debug-tweaks: |
EXTRA_IMAGE_FEATURES = "debug-tweaks"
diskmon: |
BB_DISKMON_DIRS = "\
STOPTASKS,${TMPDIR},1G,100K \
STOPTASKS,${DL_DIR},1G,100K \
STOPTASKS,${SSTATE_DIR},1G,100K \
STOPTASKS,/tmp,100M,100K \
ABORT,${TMPDIR},100M,1K \
ABORT,${DL_DIR},100M,1K \
ABORT,${SSTATE_DIR},100M,1K \
ABORT,/tmp,10M,1K"

View File

@@ -0,0 +1,12 @@
from oeqa.runtime.cases.parselogs import *
rpi_errors = [
]
ignore_errors['raspberrypi4'] = rpi_errors + common_errors
ignore_errors['raspberrypi4-64'] = rpi_errors + common_errors
ignore_errors['raspberrypi3'] = rpi_errors + common_errors
ignore_errors['raspberrypi3-64'] = rpi_errors + common_errors
class ParseLogsTestRpi(ParseLogsTest):
pass

View File

@@ -1,5 +1,5 @@
DESCRIPTION = "Boot strap code that the GPU puts on memory to start running the boot loader"
LICENSE = "Proprietary"
LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://armstub.S;beginline=1;endline=26;md5=9888f34ac06a676129416c952a6a521e"
@@ -11,6 +11,10 @@ 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}"
@@ -30,3 +34,5 @@ addtask deploy before do_build after do_install
do_deploy[dirs] += "${DEPLOYDIR}/${PN}"
PACKAGE_ARCH = "${MACHINE_ARCH}"
TOOLCHAIN = "gcc"

View File

@@ -1,43 +0,0 @@
DESCRIPTION = "Closed source binary files to help boot the ARM on the BCM2835."
LICENSE = "Proprietary"
LIC_FILES_CHKSUM = "file://LICENCE.broadcom;md5=4a4d169737c0786fb9482bb6d30401d1"
inherit deploy nopackages
include recipes-bsp/common/raspberrypi-firmware.inc
INHIBIT_DEFAULT_DEPS = "1"
DEPENDS = "rpi-config"
COMPATIBLE_MACHINE = "^rpi$"
S = "${RPIFW_S}/boot"
PR = "r3"
do_deploy() {
install -d ${DEPLOYDIR}/${PN}
for i in ${S}/*.elf ; do
cp $i ${DEPLOYDIR}/${PN}
done
for i in ${S}/*.dat ; do
cp $i ${DEPLOYDIR}/${PN}
done
for i in ${S}/*.bin ; do
cp $i ${DEPLOYDIR}/${PN}
done
# Add stamp in deploy directory
touch ${DEPLOYDIR}/${PN}/${PN}-${PV}.stamp
}
do_deploy[depends] += "rpi-config:do_deploy"
addtask deploy before do_build after do_install
do_deploy[dirs] += "${DEPLOYDIR}/${PN}"
PACKAGE_ARCH = "${MACHINE_ARCH}"

View File

@@ -0,0 +1,43 @@
DESCRIPTION = "Closed source binary files to help boot all raspberry pi devices."
LICENSE = "Broadcom-RPi"
LIC_FILES_CHKSUM = "file://LICENCE.broadcom;md5=c403841ff2837657b2ed8e5bb474ac8d"
inherit deploy nopackages
include recipes-bsp/common/raspberrypi-firmware.inc
INHIBIT_DEFAULT_DEPS = "1"
DEPENDS = "rpi-config rpi-cmdline"
COMPATIBLE_MACHINE = "^rpi$"
S = "${RPIFW_S}/boot"
PR = "r3"
do_deploy() {
install -d ${DEPLOYDIR}/${BOOTFILES_DIR_NAME}
for i in ${S}/*.elf ; do
cp $i ${DEPLOYDIR}/${BOOTFILES_DIR_NAME}
done
for i in ${S}/*.dat ; do
cp $i ${DEPLOYDIR}/${BOOTFILES_DIR_NAME}
done
for i in ${S}/*.bin ; do
cp $i ${DEPLOYDIR}/${BOOTFILES_DIR_NAME}
done
# Add stamp in deploy directory
touch ${DEPLOYDIR}/${BOOTFILES_DIR_NAME}/${PN}-${PV}.stamp
}
do_deploy[depends] += "rpi-config:do_deploy rpi-cmdline:do_deploy"
addtask deploy before do_build after do_install
do_deploy[dirs] += "${DEPLOYDIR}/${BOOTFILES_DIR_NAME}"
PACKAGE_ARCH = "${MACHINE_ARCH}"

View File

@@ -0,0 +1,72 @@
SUMMARY = "cmdline.txt file used to boot the kernel on a Raspberry Pi device"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
COMPATIBLE_MACHINE = "^rpi$"
INHIBIT_DEFAULT_DEPS = "1"
inherit deploy nopackages
CMDLINE_DWC_OTG ?= "dwc_otg.lpm_enable=0"
CMDLINE_ROOT_FSTYPE ?= "rootfstype=ext4"
CMDLINE_ROOTFS ?= "root=/dev/mmcblk0p2 ${CMDLINE_ROOT_FSTYPE} rootwait"
CMDLINE_SERIAL ?= "${@oe.utils.conditional("ENABLE_UART", "1", "console=serial0,115200", "", d)}"
CMDLINE_PITFT ?= "${@bb.utils.contains("MACHINE_FEATURES", "pitft", "fbcon=map:10 fbcon=font:VGA8x8", "", d)}"
# Add the kernel debugger over console kernel command line option if enabled
CMDLINE_KGDB ?= '${@oe.utils.conditional("ENABLE_KGDB", "1", "kgdboc=serial0,115200", "", d)}'
# Disable rpi logo on boot
CMDLINE_LOGO ?= '${@oe.utils.conditional("DISABLE_RPI_BOOT_LOGO", "1", "logo.nologo", "", d)}'
# You can define CMDLINE_DEBUG as "debug" in your local.conf or distro.conf
# to enable kernel debugging.
CMDLINE_DEBUG ?= ""
# Add a request to isolate processors from the Linux scheduler. ISOLATED_CPUS
# may have the form of a comma separated list of processor numbers "0,1,3", a
# range "0-2", a combination of the two "0-1,3", or a single processor you may
# not specify ALL processors simultaneously
def setup_isolcpus(d):
string = ""
if d.getVar('ISOLATED_CPUS'):
string = 'isolcpus=' + d.getVar('ISOLATED_CPUS')
return string
CMDLINE_ISOL_CPUS ?= "${@setup_isolcpus(d)}"
# Add RNDIS capabilities (must be after rootwait)
# example:
# CMDLINE_RNDIS = "modules-load=dwc2,g_ether g_ether.host_addr=<some MAC
# address> g_ether.dev_addr=<some MAC address>"
# if the MAC addresses are omitted, random values will be used
CMDLINE_RNDIS ?= ""
CMDLINE = " \
${CMDLINE_ISOL_CPUS} \
${CMDLINE_DWC_OTG} \
${CMDLINE_SERIAL} \
${CMDLINE_ROOTFS} \
${CMDLINE_CMA} \
${CMDLINE_KGDB} \
${CMDLINE_LOGO} \
${CMDLINE_PITFT} \
${CMDLINE_DEBUG} \
${CMDLINE_RNDIS} \
"
do_compile() {
echo "${@' '.join(d.getVar('CMDLINE').split())}" > "${WORKDIR}/cmdline.txt"
}
do_deploy() {
install -d "${DEPLOYDIR}/${BOOTFILES_DIR_NAME}"
install -m 0644 "${WORKDIR}/cmdline.txt" "${DEPLOYDIR}/${BOOTFILES_DIR_NAME}"
}
addtask deploy before do_build after do_install
do_deploy[dirs] += "${DEPLOYDIR}/${BOOTFILES_DIR_NAME}"
PACKAGE_ARCH = "${MACHINE_ARCH}"

View File

@@ -8,7 +8,7 @@ LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda
COMPATIBLE_MACHINE = "^rpi$"
SRCREV = "648ffc470824c43eb0d16c485f4c24816b32cd6f"
SRC_URI = "git://github.com/Evilpaul/RPi-config.git;protocol=git;branch=master \
SRC_URI = "git://github.com/Evilpaul/RPi-config.git;protocol=https;branch=master \
"
S = "${WORKDIR}/git"
@@ -20,199 +20,299 @@ 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)}"
VC4GRAPHICS="${@bb.utils.contains("MACHINE_FEATURES", "vc4graphics", "1", "0", d)}"
VC4DTBO ?= "vc4-kms-v3d"
GPIO_IR ?= "18"
GPIO_IR_TX ?= "17"
CAN_OSCILLATOR ?= "16000000"
ENABLE_UART ??= ""
WM8960="${@bb.utils.contains("MACHINE_FEATURES", "wm8960", "1", "0", d)}"
GPIO_SHUTDOWN_PIN ??= ""
inherit deploy nopackages
do_deploy() {
install -d ${DEPLOYDIR}/bcm2835-bootfiles
install -d ${DEPLOYDIR}/${BOOTFILES_DIR_NAME}
CONFIG=${DEPLOYDIR}/${BOOTFILES_DIR_NAME}/config.txt
cp ${S}/config.txt ${DEPLOYDIR}/bcm2835-bootfiles/
cp ${S}/config.txt $CONFIG
if [ -n "${KEY_DECODE_MPG2}" ]; then
sed -i '/#decode_MPG2=/ c\decode_MPG2=${KEY_DECODE_MPG2}' ${DEPLOYDIR}/bcm2835-bootfiles/config.txt
sed -i '/#decode_MPG2=/ c\decode_MPG2=${KEY_DECODE_MPG2}' $CONFIG
fi
if [ -n "${KEY_DECODE_WVC1}" ]; then
sed -i '/#decode_WVC1=/ c\decode_WVC1=${KEY_DECODE_WVC1}' ${DEPLOYDIR}/bcm2835-bootfiles/config.txt
sed -i '/#decode_WVC1=/ c\decode_WVC1=${KEY_DECODE_WVC1}' $CONFIG
fi
if [ -n "${DISABLE_OVERSCAN}" ]; then
sed -i '/#disable_overscan=/ c\disable_overscan=${DISABLE_OVERSCAN}' ${DEPLOYDIR}/bcm2835-bootfiles/config.txt
sed -i '/#disable_overscan=/ c\disable_overscan=${DISABLE_OVERSCAN}' $CONFIG
fi
if [ "${DISABLE_SPLASH}" = "1" ]; then
sed -i '/#disable_splash=/ c\disable_splash=${DISABLE_SPLASH}' ${DEPLOYDIR}/bcm2835-bootfiles/config.txt
sed -i '/#disable_splash=/ c\disable_splash=${DISABLE_SPLASH}' $CONFIG
fi
# Set overclocking options
if [ -n "${ARM_FREQ}" ]; then
sed -i '/#arm_freq=/ c\arm_freq=${ARM_FREQ}' ${DEPLOYDIR}/bcm2835-bootfiles/config.txt
sed -i '/#arm_freq=/ c\arm_freq=${ARM_FREQ}' $CONFIG
fi
if [ -n "${GPU_FREQ}" ]; then
sed -i '/#gpu_freq=/ c\gpu_freq=${GPU_FREQ}' ${DEPLOYDIR}/bcm2835-bootfiles/config.txt
sed -i '/#gpu_freq=/ c\gpu_freq=${GPU_FREQ}' $CONFIG
fi
if [ -n "${CORE_FREQ}" ]; then
sed -i '/#core_freq=/ c\core_freq=${CORE_FREQ}' ${DEPLOYDIR}/bcm2835-bootfiles/config.txt
sed -i '/#core_freq=/ c\core_freq=${CORE_FREQ}' $CONFIG
fi
if [ -n "${SDRAM_FREQ}" ]; then
sed -i '/#sdram_freq=/ c\sdram_freq=${SDRAM_FREQ}' ${DEPLOYDIR}/bcm2835-bootfiles/config.txt
sed -i '/#sdram_freq=/ c\sdram_freq=${SDRAM_FREQ}' $CONFIG
fi
if [ -n "${OVER_VOLTAGE}" ]; then
sed -i '/#over_voltage=/ c\over_voltage=${OVER_VOLTAGE}' ${DEPLOYDIR}/bcm2835-bootfiles/config.txt
sed -i '/#over_voltage=/ c\over_voltage=${OVER_VOLTAGE}' $CONFIG
fi
# GPU memory
if [ -n "${GPU_MEM}" ]; then
sed -i '/#gpu_mem=/ c\gpu_mem=${GPU_MEM}' ${DEPLOYDIR}/bcm2835-bootfiles/config.txt
sed -i '/#gpu_mem=/ c\gpu_mem=${GPU_MEM}' $CONFIG
fi
if [ -n "${GPU_MEM_256}" ]; then
sed -i '/#gpu_mem_256=/ c\gpu_mem_256=${GPU_MEM_256}' ${DEPLOYDIR}/bcm2835-bootfiles/config.txt
sed -i '/#gpu_mem_256=/ c\gpu_mem_256=${GPU_MEM_256}' $CONFIG
fi
if [ -n "${GPU_MEM_512}" ]; then
sed -i '/#gpu_mem_512=/ c\gpu_mem_512=${GPU_MEM_512}' ${DEPLOYDIR}/bcm2835-bootfiles/config.txt
sed -i '/#gpu_mem_512=/ c\gpu_mem_512=${GPU_MEM_512}' $CONFIG
fi
if [ -n "${GPU_MEM_1024}" ]; then
sed -i '/#gpu_mem_1024=/ c\gpu_mem_1024=${GPU_MEM_1024}' ${DEPLOYDIR}/bcm2835-bootfiles/config.txt
sed -i '/#gpu_mem_1024=/ c\gpu_mem_1024=${GPU_MEM_1024}' $CONFIG
fi
# Set boot delay
if [ -n "${BOOT_DELAY}" ]; then
sed -i '/#boot_delay=/ c\boot_delay=${BOOT_DELAY}' ${DEPLOYDIR}/bcm2835-bootfiles/config.txt
sed -i '/#boot_delay=/ c\boot_delay=${BOOT_DELAY}' $CONFIG
fi
if [ -n "${BOOT_DELAY_MS}" ]; then
sed -i '/#boot_delay_ms=/ c\boot_delay_ms=${BOOT_DELAY_MS}' ${DEPLOYDIR}/bcm2835-bootfiles/config.txt
sed -i '/#boot_delay_ms=/ c\boot_delay_ms=${BOOT_DELAY_MS}' $CONFIG
fi
# Set HDMI and composite video options
if [ -n "${HDMI_FORCE_HOTPLUG}" ]; then
sed -i '/#hdmi_force_hotplug=/ c\hdmi_force_hotplug=${HDMI_FORCE_HOTPLUG}' ${DEPLOYDIR}/bcm2835-bootfiles/config.txt
sed -i '/#hdmi_force_hotplug=/ c\hdmi_force_hotplug=${HDMI_FORCE_HOTPLUG}' $CONFIG
fi
if [ -n "${HDMI_DRIVE}" ]; then
sed -i '/#hdmi_drive=/ c\hdmi_drive=${HDMI_DRIVE}' ${DEPLOYDIR}/bcm2835-bootfiles/config.txt
sed -i '/#hdmi_drive=/ c\hdmi_drive=${HDMI_DRIVE}' $CONFIG
fi
if [ -n "${HDMI_GROUP}" ]; then
sed -i '/#hdmi_group=/ c\hdmi_group=${HDMI_GROUP}' ${DEPLOYDIR}/bcm2835-bootfiles/config.txt
sed -i '/#hdmi_group=/ c\hdmi_group=${HDMI_GROUP}' $CONFIG
fi
if [ -n "${HDMI_MODE}" ]; then
sed -i '/#hdmi_mode=/ c\hdmi_mode=${HDMI_MODE}' ${DEPLOYDIR}/bcm2835-bootfiles/config.txt
sed -i '/#hdmi_mode=/ c\hdmi_mode=${HDMI_MODE}' $CONFIG
fi
if [ -n "${HDMI_CVT}" ]; then
echo 'hdmi_cvt=${HDMI_CVT}' >> $CONFIG
fi
if [ -n "${CONFIG_HDMI_BOOST}" ]; then
sed -i '/#config_hdmi_boost=/ c\config_hdmi_boost=${CONFIG_HDMI_BOOST}' ${DEPLOYDIR}/bcm2835-bootfiles/config.txt
sed -i '/#config_hdmi_boost=/ c\config_hdmi_boost=${CONFIG_HDMI_BOOST}' $CONFIG
fi
if [ -n "${SDTV_MODE}" ]; then
sed -i '/#sdtv_mode=/ c\sdtv_mode=${SDTV_MODE}' ${DEPLOYDIR}/bcm2835-bootfiles/config.txt
sed -i '/#sdtv_mode=/ c\sdtv_mode=${SDTV_MODE}' $CONFIG
fi
if [ -n "${SDTV_ASPECT}" ]; then
sed -i '/#sdtv_aspect=/ c\sdtv_aspect=${SDTV_ASPECT}' ${DEPLOYDIR}/bcm2835-bootfiles/config.txt
sed -i '/#sdtv_aspect=/ c\sdtv_aspect=${SDTV_ASPECT}' $CONFIG
fi
if [ -n "${DISPLAY_ROTATE}" ]; then
sed -i '/#display_rotate=/ c\display_rotate=${DISPLAY_ROTATE}' ${DEPLOYDIR}/bcm2835-bootfiles/config.txt
sed -i '/#display_rotate=/ c\display_rotate=${DISPLAY_ROTATE}' $CONFIG
fi
# Video camera support
if [ "${VIDEO_CAMERA}" = "1" ]; then
echo "# Enable video camera" >>${DEPLOYDIR}/bcm2835-bootfiles/config.txt
echo "start_x=1" >>${DEPLOYDIR}/bcm2835-bootfiles/config.txt
# It has been observed that Raspberry Pi 4B 4GB may fail to enable the
# camera if "start_x=1" is at the end of the file. Therefore,
# "start_x=1" has been set to replace the original occurrence in
# config.txt, which is at the middle of the file.
# The exact underlying cause is unknown. There are similar issues
# reported in the raspberrypi/firware repo and the conclusion reached
# was that there could be a file size limitation affecting certain
# variables. It was commented that this limitation could be 4k but
# not proved.
sed -i '/#start_x=/ c\start_x=1' $CONFIG
fi
# Offline compositing support
if [ "${DISPMANX_OFFLINE}" = "1" ]; then
echo "# Enable offline compositing" >>${DEPLOYDIR}/bcm2835-bootfiles/config.txt
echo "dispmanx_offline=1" >>${DEPLOYDIR}/bcm2835-bootfiles/config.txt
echo "# Enable offline compositing" >>$CONFIG
echo "dispmanx_offline=1" >>$CONFIG
fi
# SPI bus support
if [ "${ENABLE_SPI_BUS}" = "1" ] || [ "${PITFT}" = "1" ]; then
echo "# Enable SPI bus" >>${DEPLOYDIR}/bcm2835-bootfiles/config.txt
echo "dtparam=spi=on" >>${DEPLOYDIR}/bcm2835-bootfiles/config.txt
echo "# Enable SPI bus" >>$CONFIG
echo "dtparam=spi=on" >>$CONFIG
fi
# I2C support
if [ "${ENABLE_I2C}" = "1" ] || [ "${PITFT}" = "1" ]; then
echo "# Enable I2C" >>${DEPLOYDIR}/bcm2835-bootfiles/config.txt
echo "dtparam=i2c1=on" >>${DEPLOYDIR}/bcm2835-bootfiles/config.txt
echo "dtparam=i2c_arm=on" >>${DEPLOYDIR}/bcm2835-bootfiles/config.txt
echo "# Enable I2C" >>$CONFIG
echo "dtparam=i2c1=on" >>$CONFIG
echo "dtparam=i2c_arm=on" >>$CONFIG
fi
# PiTFT22 display support
if [ "${PITFT22}" = "1" ]; then
echo "# Enable PITFT22 display" >>${DEPLOYDIR}/bcm2835-bootfiles/config.txt
echo "dtoverlay=pitft22,rotate=270,speed=32000000,txbuflen=32768" >>${DEPLOYDIR}/bcm2835-bootfiles/config.txt
echo "# Enable PITFT22 display" >>$CONFIG
echo "dtoverlay=pitft22,rotate=270,speed=32000000,txbuflen=32768" >>$CONFIG
fi
if [ "${PITFT28r}" = "1" ]; then
echo "# Enable PITFT28r display" >>${DEPLOYDIR}/bcm2835-bootfiles/config.txt
echo "dtoverlay=pitft28-resistive,rotate=90,speed=32000000,txbuflen=32768" >>${DEPLOYDIR}/bcm2835-bootfiles/config.txt
echo "# Enable PITFT28r display" >>$CONFIG
echo "dtoverlay=pitft28-resistive,rotate=90,speed=32000000,txbuflen=32768" >>$CONFIG
fi
if [ "${PITFT28c}" = "1" ]; then
echo "# Enable PITFT28c display" >>$CONFIG
echo "dtoverlay=pitft28-capacitive,rotate=90,speed=32000000,txbuflen=32768" >>$CONFIG
echo "dtoverlay=pitft28-capacitive,touch-swapxy,touch-invx" >>$CONFIG
fi
if [ "${PITFT35r}" = "1" ]; then
echo "# Enable PITFT35r display" >>${DEPLOYDIR}/bcm2835-bootfiles/config.txt
echo "dtoverlay=pitft35-resistive,rotate=90,speed=42000000,fps=20" >>${DEPLOYDIR}/bcm2835-bootfiles/config.txt
echo "# Enable PITFT35r display" >>$CONFIG
echo "dtoverlay=pitft35-resistive,rotate=90,speed=42000000,fps=20" >>$CONFIG
fi
# UART support
if [ "${ENABLE_UART}" = "1" ]; then
echo "# Enable UART" >>${DEPLOYDIR}/bcm2835-bootfiles/config.txt
echo "enable_uart=1" >>${DEPLOYDIR}/bcm2835-bootfiles/config.txt
if [ "${ENABLE_UART}" = "1" ] || [ "${ENABLE_UART}" = "0" ] ; then
echo "# Enable UART" >>$CONFIG
echo "enable_uart=${ENABLE_UART}" >>$CONFIG
elif [ -n "${ENABLE_UART}" ]; then
bbfatal "Invalid value for ENABLE_UART [${ENABLE_UART}]. The value for ENABLE_UART can be 0 or 1."
fi
# Infrared support
if [ "${ENABLE_IR}" = "1" ]; then
echo "# Enable infrared" >>$CONFIG
echo "dtoverlay=gpio-ir,gpio_pin=${GPIO_IR}" >>$CONFIG
echo "dtoverlay=gpio-ir-tx,gpio_pin=${GPIO_IR_TX}" >>$CONFIG
fi
# VC4 Graphics support
if [ "${VC4GRAPHICS}" = "1" ]; then
echo "# Enable VC4 Graphics" >> ${DEPLOYDIR}/bcm2835-bootfiles/config.txt
echo "dtoverlay=${VC4DTBO}" >> ${DEPLOYDIR}/bcm2835-bootfiles/config.txt
echo "# Enable VC4 Graphics" >> $CONFIG
echo "dtoverlay=${VC4DTBO}" >> $CONFIG
fi
# Choose Camera Sensor to be used, default imx219 sensor
if [ "${RASPBERRYPI_CAMERA_V2}" = "1" ]; then
echo "# Enable Sony RaspberryPi Camera(imx219)" >> $CONFIG
echo "dtoverlay=imx219" >> $CONFIG
fi
# Choose Camera Sensor to be used, default imx477 sensor
#if [ "${RASPBERRYPI_HD_CAMERA}" = "1" ]; then
# echo "# Enable Sony RaspberryPi Camera(imx477)" >> $CONFIG
# echo "dtoverlay=imx477" >> $CONFIG
#fi
# Waveshare "C" 1024x600 7" Rev2.1 IPS capacitive touch (http://www.waveshare.com/7inch-HDMI-LCD-C.htm)
if [ "${WAVESHARE_1024X600_C_2_1}" = "1" ]; then
echo "# Waveshare \"C\" 1024x600 7\" Rev2.1 IPS capacitive touch screen" >> ${DEPLOYDIR}/bcm2835-bootfiles/config.txt
echo "max_usb_current=1" >> ${DEPLOYDIR}/bcm2835-bootfiles/config.txt
echo "hdmi_group=2" >> ${DEPLOYDIR}/bcm2835-bootfiles/config.txt
echo "hdmi_mode=87" >> ${DEPLOYDIR}/bcm2835-bootfiles/config.txt
echo "hdmi_cvt 1024 600 60 6 0 0 0" >> ${DEPLOYDIR}/bcm2835-bootfiles/config.txt
echo "hdmi_drive=1" >> ${DEPLOYDIR}/bcm2835-bootfiles/config.txt
echo "# Waveshare \"C\" 1024x600 7\" Rev2.1 IPS capacitive touch screen" >> $CONFIG
echo "max_usb_current=1" >> $CONFIG
echo "hdmi_group=2" >> $CONFIG
echo "hdmi_mode=87" >> $CONFIG
echo "hdmi_cvt 1024 600 60 6 0 0 0" >> $CONFIG
echo "hdmi_drive=1" >> $CONFIG
fi
# DWC2 USB peripheral support
if [ "${ENABLE_DWC2_PERIPHERAL}" = "1" ]; then
echo "# Enable USB peripheral mode" >> ${DEPLOYDIR}/bcm2835-bootfiles/config.txt
echo "dtoverlay=dwc2,dr_mode=peripheral" >> ${DEPLOYDIR}/bcm2835-bootfiles/config.txt
if ([ "${ENABLE_DWC2_PERIPHERAL}" = "1" ] && [ "${ENABLE_DWC2_OTG}" != "1" ]); then
echo "# Enable USB peripheral mode" >> $CONFIG
echo "dtoverlay=dwc2,dr_mode=peripheral" >> $CONFIG
fi
# DWC2 USB host mode support
if [ "${ENABLE_DWC2_HOST}" = "1" ]; then
echo "# Enable USB host mode" >> $CONFIG
echo "dtoverlay=dwc2,dr_mode=host" >> $CONFIG
fi
# DWC2 USB OTG support
if ([ "${ENABLE_DWC2_OTG}" = "1" ] && [ "${ENABLE_DWC2_PERIPHERAL}" != "1" ]); then
echo "# Enable USB OTG mode" >> $CONFIG
echo "dtoverlay=dwc2,dr_mode=otg" >> $CONFIG
fi
# AT86RF23X support
if [ "${ENABLE_AT86RF}" = "1" ]; then
echo "# Enable AT86RF23X" >>${DEPLOYDIR}/bcm2835-bootfiles/config.txt
echo "dtoverlay=at86rf233,speed=3000000" >>${DEPLOYDIR}/bcm2835-bootfiles/config.txt
echo "# Enable AT86RF23X" >>$CONFIG
echo "dtoverlay=at86rf233,speed=3000000" >>$CONFIG
fi
# ENABLE DUAL CAN
if [ "${ENABLE_DUAL_CAN}" = "1" ]; then
echo "# Enable DUAL CAN" >>$CONFIG
echo "dtoverlay=mcp2515-can0,oscillator=${CAN_OSCILLATOR},interrupt=25" >>$CONFIG
echo "dtoverlay=mcp2515-can1,oscillator=${CAN_OSCILLATOR},interrupt=24" >>$CONFIG
# ENABLE CAN
if [ "${ENABLE_CAN}" = "1" ]; then
echo "# Enable CAN" >>${DEPLOYDIR}/bcm2835-bootfiles/config.txt
echo "dtoverlay=mcp2515-can0,oscillator=16000000,interrupt=25" >>${DEPLOYDIR}/bcm2835-bootfiles/config.txt
elif [ "${ENABLE_CAN}" = "1" ]; then
echo "# Enable CAN" >>$CONFIG
echo "dtoverlay=mcp2515-can0,oscillator=${CAN_OSCILLATOR},interrupt=25" >>$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.
# If I2C is configured and an alternative pin is not configured for
# gpio-shutdown, there is a configuration conflict.
bbfatal "I2C and gpio-shutdown are both enabled and using the same pins!"
fi
echo "# Enable gpio-shutdown" >> $CONFIG
if [ -z "${GPIO_SHUTDOWN_PIN}" ]; then
echo "dtoverlay=gpio-shutdown" >> $CONFIG
else
echo "dtoverlay=gpio-shutdown,gpio_pin=${GPIO_SHUTDOWN_PIN}" >> $CONFIG
fi
fi
# Append extra config if the user has provided any
printf "${RPI_EXTRA_CONFIG}\n" >> ${DEPLOYDIR}/bcm2835-bootfiles/config.txt
printf "${RPI_EXTRA_CONFIG}\n" >> $CONFIG
# Handle setup with armstub file
if [ "${@bb.utils.contains("MACHINE_FEATURES", "armstub", "1", "0", d)}" = "1" ]; then
echo "\n# ARM stub configuration" >> ${DEPLOYDIR}/bcm2835-bootfiles/config.txt
echo "armstub=${ARMSTUB}" >> ${DEPLOYDIR}/bcm2835-bootfiles/config.txt
echo "\n# ARM stub configuration" >> $CONFIG
echo "armstub=${ARMSTUB}" >> $CONFIG
case "${ARMSTUB}" in
*-gic.bin)
echo "enable_gic=1" >> ${DEPLOYDIR}/bcm2835-bootfiles/config.txt
echo "enable_gic=1" >> $CONFIG
;;
esac
fi
# WM8960 support
if [ "${WM8960}" = "1" ]; then
echo "# Enable WM8960" >> $CONFIG
echo "dtoverlay=wm8960-soundcard" >> $CONFIG
fi
# W1-GPIO - One-Wire Interface
if [ "${ENABLE_W1}" = "1" ]; then
echo "# Enable One-Wire Interface" >> $CONFIG
echo "dtoverlay=w1-gpio" >> $CONFIG
fi
}
do_deploy_append_raspberrypi3-64() {
echo "# have a properly sized image" >> ${DEPLOYDIR}/bcm2835-bootfiles/config.txt
echo "disable_overscan=1" >> ${DEPLOYDIR}/bcm2835-bootfiles/config.txt
do_deploy:append:raspberrypi3-64() {
echo "# have a properly sized image" >> $CONFIG
echo "disable_overscan=1" >> $CONFIG
echo "# Enable audio (loads snd_bcm2835)" >> ${DEPLOYDIR}/bcm2835-bootfiles/config.txt
echo "dtparam=audio=on" >> ${DEPLOYDIR}/bcm2835-bootfiles/config.txt
echo "# Enable audio (loads snd_bcm2835)" >> $CONFIG
echo "dtparam=audio=on" >> $CONFIG
}
do_deploy:append() {
if grep -q -E '^.{80}.$' ${DEPLOYDIR}/${BOOTFILES_DIR_NAME}/config.txt; then
bbwarn "config.txt contains lines longer than 80 characters, this is not supported"
fi
}
addtask deploy before do_build after do_install
do_deploy[dirs] += "${DEPLOYDIR}/bcm2835-bootfiles"
do_deploy[dirs] += "${DEPLOYDIR}/${BOOTFILES_DIR_NAME}"
PACKAGE_ARCH = "${MACHINE_ARCH}"

View File

@@ -1,10 +1,9 @@
RPIFW_DATE ?= "20190823"
SRCREV ?= "7163480fff007dc98978899b556dcf06f8a462c8"
RPIFW_SRC_URI ?= "https://github.com/raspberrypi/firmware/archive/${SRCREV}.tar.gz"
RPIFW_S ?= "${WORKDIR}/firmware-${SRCREV}"
RPIFW_DATE ?= "20220830"
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}"
SRC_URI = "${RPIFW_SRC_URI}"
SRC_URI[md5sum] = "b10044aa637ed170eef2ca6c1dcc8aba"
SRC_URI[sha256sum] = "012bc542157d03d19c52dfb2ff9e828905d1991a8b33420f1a2e3730040c167f"
SRC_URI[sha256sum] = "2b27e4b3c4d2664a0a1d0dd8602bd80ea41dd006eb0ad9c67d7b659c9c8bb4e5"
PV = "${RPIFW_DATE}"

View File

@@ -1,9 +1,11 @@
SRCREV ?= "76f64a28dc4685507d12f57fe5cfc89f6c32f8e6"
RPITOOLS_SRC_URI ?= "https://github.com/raspberrypi/tools/archive/${SRCREV}.tar.gz"
RPITOOLS_S ?= "${WORKDIR}/tools-${SRCREV}"
RPITOOLS_DATE ?= "20220711"
SRCREV ?= "439b6198a9b340de5998dd14a26a0d9d38a6bcac"
RPITOOLS_SRC_URI ?= "git://github.com/raspberrypi/tools;protocol=https;branch=master"
RPITOOLS_S ?= "${WORKDIR}/git"
SRC_URI = "${RPITOOLS_SRC_URI}"
SRC_URI[md5sum] = "e2d4709b62e1536aeaaeabcbae82a03e"
SRC_URI[sha256sum] = "5f1c5eb8af9dff71b7cae30ffa6541d689d269a7b86013b365215adfb4c1c27d"
PV = "0.0+git${SRCREV}"
PV = "${RPITOOLS_DATE}"
BB_GIT_SHALLOW = "1"

View File

@@ -1 +1 @@
FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:"

View File

@@ -0,0 +1,2 @@
# Action on special keypress (Key Power)
kb::kbrequest:/sbin/shutdown -t1 -a -h -P now

View File

@@ -0,0 +1,13 @@
#!/bin/sh
##
# Bind the gpio-shutdown keycode as Keyboard signal and load it to the
# keymap during startup.
##
case "$1" in
start)
# Inject the gpio keycode to keymap
echo "keycode 116 = KeyboardSignal" | loadkeys
;;
*)
;;
esac

View File

@@ -0,0 +1,31 @@
SUMMARY = "GPIO shutdown bindings for SysV init"
LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/GPL-2.0-only;md5=801f80980d171dd6425610833a22dbe6"
SRC_URI = "file://bind_gpio_shutdown.tab \
file://gpio-shutdown-keymap.sh \
"
inherit update-rc.d
INITSCRIPT_NAME = "gpio-shutdown-keymap.sh"
# Run only once during startup
INITSCRIPT_PARAMS = "start 99 S ."
do_install() {
# The files are only needed if using SysV init.
if ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'true', 'false', d)}; then
install -d ${D}${sysconfdir} \
${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/
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.
install -d ${D}${sysconfdir}
else
bbwarn "Not using sysvinit or systemd. The gpio-shutdown may require additional configuration."
fi
}

View File

@@ -1,3 +1,4 @@
fdt addr ${fdt_addr} && fdt get value bootargs /chosen bootargs
fatload mmc 0:1 ${kernel_addr_r} @@KERNEL_IMAGETYPE@@
if test ! -e mmc 0:1 uboot.env; then saveenv; fi;
@@KERNEL_BOOTCMD@@ ${kernel_addr_r} - ${fdt_addr}

View File

@@ -13,10 +13,10 @@ do_compile() {
sed -e 's/@@KERNEL_IMAGETYPE@@/${KERNEL_IMAGETYPE}/' \
-e 's/@@KERNEL_BOOTCMD@@/${KERNEL_BOOTCMD}/' \
"${WORKDIR}/boot.cmd.in" > "${WORKDIR}/boot.cmd"
mkimage -A arm -T script -C none -n "Boot script" -d "${WORKDIR}/boot.cmd" boot.scr
mkimage -A ${UBOOT_ARCH} -T script -C none -n "Boot script" -d "${WORKDIR}/boot.cmd" boot.scr
}
inherit deploy nopackages
inherit kernel-arch deploy nopackages
do_deploy() {
install -d ${DEPLOYDIR}
@@ -24,3 +24,5 @@ do_deploy() {
}
addtask do_deploy after do_compile before do_build
PROVIDES += "u-boot-default-script"

View File

@@ -0,0 +1,50 @@
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>
---
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

View File

@@ -0,0 +1 @@
/boot/uboot.env 0x0000 0x4000

View File

@@ -1,104 +0,0 @@
From 5bf85d04b440ce874310e701abded823dc1864bc Mon Sep 17 00:00:00 2001
From: Andrei Gherzan <andrei@balena.io>
Date: Wed, 17 Jul 2019 15:32:11 +0100
Subject: [PATCH 1/7] configs: rpi4: Add defconfigs for rpi4 (32/64)
This defines a minimum defconfig for each of the two Raspberry Pi 4
variants. One notable difference is that we don't have a embedded dt for
this board given that the fw supplies us with one which we can reuse.
Furthermore, the ram size is not queryable through mbox interface as the
maximum reported size is 1G. The fw patches the dt with the right
memory configuration and uboot uses it as it is. We avoid u-boot
touching this configuration by making sure CONFIG_ARCH_FIXUP_FDT_MEMORY
is deactivated.
Signed-off-by: Andrei Gherzan <andrei@balena.io>
Upstream-status: Pending
---
configs/rpi_4_32b_defconfig | 33 +++++++++++++++++++++++++++++++++
configs/rpi_4_defconfig | 33 +++++++++++++++++++++++++++++++++
2 files changed, 66 insertions(+)
create mode 100644 configs/rpi_4_32b_defconfig
create mode 100644 configs/rpi_4_defconfig
diff --git a/configs/rpi_4_32b_defconfig b/configs/rpi_4_32b_defconfig
new file mode 100644
index 0000000000..a31a617a5f
--- /dev/null
+++ b/configs/rpi_4_32b_defconfig
@@ -0,0 +1,33 @@
+CONFIG_ARM=y
+CONFIG_ARCH_BCM283X=y
+CONFIG_SYS_TEXT_BASE=0x00008000
+CONFIG_TARGET_RPI_4_32B=y
+CONFIG_SYS_MALLOC_F_LEN=0x2000
+CONFIG_DISTRO_DEFAULTS=y
+CONFIG_NR_DRAM_BANKS=1
+# CONFIG_ARCH_FIXUP_FDT_MEMORY is not set
+CONFIG_OF_BOARD=y
+CONFIG_OF_BOARD_SETUP=y
+CONFIG_MISC_INIT_R=y
+# CONFIG_DISPLAY_CPUINFO is not set
+# CONFIG_DISPLAY_BOARDINFO is not set
+CONFIG_SYS_PROMPT="U-Boot> "
+# CONFIG_CMD_FLASH is not set
+CONFIG_CMD_GPIO=y
+CONFIG_CMD_MMC=y
+CONFIG_CMD_FS_UUID=y
+CONFIG_ENV_FAT_INTERFACE="mmc"
+CONFIG_ENV_FAT_DEVICE_AND_PART="0:1"
+CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y
+CONFIG_DM_KEYBOARD=y
+CONFIG_DM_MMC=y
+CONFIG_MMC_SDHCI=y
+CONFIG_MMC_SDHCI_BCM2835=y
+CONFIG_PINCTRL=y
+# CONFIG_PINCTRL_GENERIC is not set
+# CONFIG_REQUIRE_SERIAL_CONSOLE is not set
+CONFIG_DM_VIDEO=y
+CONFIG_SYS_WHITE_ON_BLACK=y
+CONFIG_CONSOLE_SCROLL_LINES=10
+CONFIG_PHYS_TO_BUS=y
+CONFIG_OF_LIBFDT_OVERLAY=y
diff --git a/configs/rpi_4_defconfig b/configs/rpi_4_defconfig
new file mode 100644
index 0000000000..da8c960a2a
--- /dev/null
+++ b/configs/rpi_4_defconfig
@@ -0,0 +1,33 @@
+CONFIG_ARM=y
+CONFIG_ARCH_BCM283X=y
+CONFIG_SYS_TEXT_BASE=0x00080000
+CONFIG_TARGET_RPI_4=y
+CONFIG_SYS_MALLOC_F_LEN=0x2000
+CONFIG_DISTRO_DEFAULTS=y
+CONFIG_NR_DRAM_BANKS=1
+# CONFIG_ARCH_FIXUP_FDT_MEMORY is not set
+CONFIG_OF_BOARD=y
+CONFIG_OF_BOARD_SETUP=y
+CONFIG_MISC_INIT_R=y
+# CONFIG_DISPLAY_CPUINFO is not set
+# CONFIG_DISPLAY_BOARDINFO is not set
+CONFIG_SYS_PROMPT="U-Boot> "
+# CONFIG_CMD_FLASH is not set
+CONFIG_CMD_GPIO=y
+CONFIG_CMD_MMC=y
+CONFIG_CMD_FS_UUID=y
+CONFIG_ENV_FAT_INTERFACE="mmc"
+CONFIG_ENV_FAT_DEVICE_AND_PART="0:1"
+CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y
+CONFIG_DM_KEYBOARD=y
+CONFIG_DM_MMC=y
+CONFIG_MMC_SDHCI=y
+CONFIG_MMC_SDHCI_BCM2835=y
+CONFIG_PINCTRL=y
+# CONFIG_PINCTRL_GENERIC is not set
+# CONFIG_REQUIRE_SERIAL_CONSOLE is not set
+CONFIG_DM_VIDEO=y
+CONFIG_SYS_WHITE_ON_BLACK=y
+CONFIG_CONSOLE_SCROLL_LINES=10
+CONFIG_PHYS_TO_BUS=y
+CONFIG_OF_LIBFDT_OVERLAY=y
--
2.22.0

View File

@@ -1,105 +0,0 @@
From df2aa4c6be33b468adc09de337a055556d1f37fb Mon Sep 17 00:00:00 2001
From: Matthias Brugger <mbrugger@suse.com>
Date: Fri, 12 Jul 2019 18:20:53 +0200
Subject: [PATCH 2/7] ARM: bcm283x: Add BCM283x_BASE define
Devices of bcm283x have different base address, depending if they are on
bcm2835 or bcm2836/7. Use BCM283x_BASE depending on the SoC you want to
build and only add the offset in the header files.
Signed-off-by: Matthias Brugger <mbrugger@suse.com>
Signed-off-by: Andrei Gherzan <andrei@balena.io>
Upstream-status: Pending
---
arch/arm/mach-bcm283x/Kconfig | 5 +++++
arch/arm/mach-bcm283x/include/mach/mbox.h | 6 +-----
arch/arm/mach-bcm283x/include/mach/sdhci.h | 6 +-----
arch/arm/mach-bcm283x/include/mach/timer.h | 6 +-----
arch/arm/mach-bcm283x/include/mach/wdog.h | 6 +-----
5 files changed, 9 insertions(+), 20 deletions(-)
diff --git a/arch/arm/mach-bcm283x/Kconfig b/arch/arm/mach-bcm283x/Kconfig
index 3eb5a9a897..8e69914a83 100644
--- a/arch/arm/mach-bcm283x/Kconfig
+++ b/arch/arm/mach-bcm283x/Kconfig
@@ -141,4 +141,9 @@ config SYS_SOC
config SYS_CONFIG_NAME
default "rpi"
+config BCM283x_BASE
+ hex
+ default "0x20000000" if BCM2835
+ default "0x3f000000" if BCM2836 || BCM2837
+
endmenu
diff --git a/arch/arm/mach-bcm283x/include/mach/mbox.h b/arch/arm/mach-bcm283x/include/mach/mbox.h
index e3a893e49c..e44c7577da 100644
--- a/arch/arm/mach-bcm283x/include/mach/mbox.h
+++ b/arch/arm/mach-bcm283x/include/mach/mbox.h
@@ -37,11 +37,7 @@
/* Raw mailbox HW */
-#ifndef CONFIG_BCM2835
-#define BCM2835_MBOX_PHYSADDR 0x3f00b880
-#else
-#define BCM2835_MBOX_PHYSADDR 0x2000b880
-#endif
+#define BCM2835_MBOX_PHYSADDR (CONFIG_BCM283x_BASE + 0x0000b880)
struct bcm2835_mbox_regs {
u32 read;
diff --git a/arch/arm/mach-bcm283x/include/mach/sdhci.h b/arch/arm/mach-bcm283x/include/mach/sdhci.h
index 5cb6ec3340..b443c379d8 100644
--- a/arch/arm/mach-bcm283x/include/mach/sdhci.h
+++ b/arch/arm/mach-bcm283x/include/mach/sdhci.h
@@ -6,11 +6,7 @@
#ifndef _BCM2835_SDHCI_H_
#define _BCM2835_SDHCI_H_
-#ifndef CONFIG_BCM2835
-#define BCM2835_SDHCI_BASE 0x3f300000
-#else
-#define BCM2835_SDHCI_BASE 0x20300000
-#endif
+#define BCM2835_SDHCI_BASE (CONFIG_BCM283x_BASE + 0x00300000)
int bcm2835_sdhci_init(u32 regbase, u32 emmc_freq);
diff --git a/arch/arm/mach-bcm283x/include/mach/timer.h b/arch/arm/mach-bcm283x/include/mach/timer.h
index 56b0c356bb..014355e759 100644
--- a/arch/arm/mach-bcm283x/include/mach/timer.h
+++ b/arch/arm/mach-bcm283x/include/mach/timer.h
@@ -6,11 +6,7 @@
#ifndef _BCM2835_TIMER_H
#define _BCM2835_TIMER_H
-#ifndef CONFIG_BCM2835
-#define BCM2835_TIMER_PHYSADDR 0x3f003000
-#else
-#define BCM2835_TIMER_PHYSADDR 0x20003000
-#endif
+#define BCM2835_TIMER_PHYSADDR (CONFIG_BCM283x_BASE + 0x00003000)
#define BCM2835_TIMER_CS_M3 (1 << 3)
#define BCM2835_TIMER_CS_M2 (1 << 2)
diff --git a/arch/arm/mach-bcm283x/include/mach/wdog.h b/arch/arm/mach-bcm283x/include/mach/wdog.h
index 99c88e5df7..00b5e06c3a 100644
--- a/arch/arm/mach-bcm283x/include/mach/wdog.h
+++ b/arch/arm/mach-bcm283x/include/mach/wdog.h
@@ -6,11 +6,7 @@
#ifndef _BCM2835_WDOG_H
#define _BCM2835_WDOG_H
-#ifndef CONFIG_BCM2835
-#define BCM2835_WDOG_PHYSADDR 0x3f100000
-#else
-#define BCM2835_WDOG_PHYSADDR 0x20100000
-#endif
+#define BCM2835_WDOG_PHYSADDR (CONFIG_BCM283x_BASE + 0x00100000)
struct bcm2835_wdog_regs {
u32 unknown0[7];
--
2.22.0

View File

@@ -1,108 +0,0 @@
From c03f551cab8fe38de8f0e1781f0e2e339419b003 Mon Sep 17 00:00:00 2001
From: Andrei Gherzan <andrei@balena.io>
Date: Wed, 17 Jul 2019 15:33:01 +0100
Subject: [PATCH 3/7] arm: mach-bcm283x: Define configs for RaspberryPi 4
Define two target configs for Raspberry Pi 4 (32 and 64bit) and the
corresponding BCM2838* configs.
Be aware of the current limitation in firmware which requires an
explicit configuration to force the arm in 64bit mode when the
respective target is used.
Signed-off-by: Andrei Gherzan <andrei@balena.io>
Signed-off-by: Matthias Brugger <mbrugger@suse.com>
Upstream-status: Pending
---
arch/arm/mach-bcm283x/Kconfig | 62 +++++++++++++++++++++++++++++++++++
1 file changed, 62 insertions(+)
diff --git a/arch/arm/mach-bcm283x/Kconfig b/arch/arm/mach-bcm283x/Kconfig
index 8e69914a83..09a5b42bbb 100644
--- a/arch/arm/mach-bcm283x/Kconfig
+++ b/arch/arm/mach-bcm283x/Kconfig
@@ -26,6 +26,23 @@ config BCM2837_64B
select BCM2837
select ARM64
+config BCM2838
+ bool "Broadcom BCM2838 SoC support"
+ depends on ARCH_BCM283X
+
+config BCM2838_32B
+ bool "Broadcom BCM2838 SoC 32-bit support"
+ depends on ARCH_BCM283X
+ select BCM2838
+ select ARMV7_LPAE
+ select CPU_V7A
+
+config BCM2838_64B
+ bool "Broadcom BCM2838 SoC 64-bit support"
+ depends on ARCH_BCM283X
+ select BCM2838
+ select ARM64
+
menu "Broadcom BCM283X family"
depends on ARCH_BCM283X
@@ -127,6 +144,50 @@ config TARGET_RPI_3
This option creates a build targeting the ARMv8/AArch64 ISA.
select BCM2837_64B
+config TARGET_RPI_4_32B
+ bool "Raspberry Pi 4 32-bit build"
+ help
+ Support for all BCM2838-based Raspberry Pi variants, such as
+ the RPi 4 model B, in AArch32 (32-bit) mode.
+
+ This option assumes the VideoCore firmware is configured to use the
+ mini UART (rather than PL011) for the serial console. This is the
+ default on the RPi 4. To enable the UART console, the following non-
+ default option must be present in config.txt: enable_uart=1. This is
+ required for U-Boot to operate correctly, even if you only care
+ about the HDMI/usbkbd console.
+
+ Due to hardware incompatibilities, this can't be used with
+ BCM283/5/6/7.
+
+ This option creates a build targeting the ARMv7/AArch32 ISA.
+ select BCM2838_32B
+
+config TARGET_RPI_4
+ bool "Raspberry Pi 4 64-bit build"
+ help
+ Support for all BCM2838-based Raspberry Pi variants, such as
+ the RPi 4 model B, in AArch64 (64-bit) mode.
+
+ This option assumes the VideoCore firmware is configured to use the
+ mini UART (rather than PL011) for the serial console. This is the
+ default on the RPi 4. To enable the UART console, the following non-
+ default option must be present in config.txt: enable_uart=1. This is
+ required for U-Boot to operate correctly, even if you only care
+ about the HDMI/usbkbd console.
+
+ Due to hardware incompatibilities, this can't be used with
+ BCM283/5/6/7.
+
+ Also, due to a bug in firmware, switching to 64bit mode doesn't
+ happen automatically based on the kernel's image filename. See
+ https://github.com/raspberrypi/firmware/issues/1193 for more details.
+ Until that is resolved, the configuration (config.txt) needs to
+ explicitly set: arm_64bit=1.
+
+ This option creates a build targeting the ARMv8/AArch64 ISA.
+ select BCM2838_64B
+
endchoice
config SYS_BOARD
@@ -145,5 +206,6 @@ config BCM283x_BASE
hex
default "0x20000000" if BCM2835
default "0x3f000000" if BCM2836 || BCM2837
+ default "0xfe000000" if BCM2838
endmenu
--
2.22.0

View File

@@ -1,33 +0,0 @@
From 12fbbd5bc12e225b19d3b4cb193a1bf3d9fa752a Mon Sep 17 00:00:00 2001
From: Andrei Gherzan <andrei@balena.io>
Date: Wed, 17 Jul 2019 15:34:18 +0100
Subject: [PATCH 4/7] rpi: Add entry for Raspberry Pi 4 model B
The Raspebrry Pi 4 uses the new revision code scheme as documented by
the foundation. This change adds an entry for this board as well.
Signed-off-by: Andrei Gherzan <andrei@balena.io>
Upstream-status: Pending
---
board/raspberrypi/rpi/rpi.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/board/raspberrypi/rpi/rpi.c b/board/raspberrypi/rpi/rpi.c
index 617c892dde..92c6534da6 100644
--- a/board/raspberrypi/rpi/rpi.c
+++ b/board/raspberrypi/rpi/rpi.c
@@ -148,6 +148,11 @@ static const struct rpi_model rpi_models_new_scheme[] = {
DTB_DIR "bcm2837-rpi-cm3.dtb",
false,
},
+ [0x11] = {
+ "4 Model B",
+ DTB_DIR "bcm2838-rpi-4-b.dtb",
+ true,
+ },
};
static const struct rpi_model rpi_models_old_scheme[] = {
--
2.22.0

View File

@@ -1,30 +0,0 @@
From fd99a249e6faf234066a6b5da2ed34aaead3d6d9 Mon Sep 17 00:00:00 2001
From: Andrei Gherzan <andrei@balena.io>
Date: Fri, 12 Jul 2019 11:26:10 +0100
Subject: [PATCH 5/7] arm: bcm283x: Include definition for additional emmc
clock
This clock has a different mbox ID so have this included in the relevant
header file.
Signed-off-by: Andrei Gherzan <andrei@balena.io>
Upstream-status: Pending
---
arch/arm/mach-bcm283x/include/mach/mbox.h | 1 +
1 file changed, 1 insertion(+)
diff --git a/arch/arm/mach-bcm283x/include/mach/mbox.h b/arch/arm/mach-bcm283x/include/mach/mbox.h
index e44c7577da..f2a98acddd 100644
--- a/arch/arm/mach-bcm283x/include/mach/mbox.h
+++ b/arch/arm/mach-bcm283x/include/mach/mbox.h
@@ -230,6 +230,7 @@ struct bcm2835_mbox_tag_set_power_state {
#define BCM2835_MBOX_CLOCK_ID_SDRAM 8
#define BCM2835_MBOX_CLOCK_ID_PIXEL 9
#define BCM2835_MBOX_CLOCK_ID_PWM 10
+#define BCM2835_MBOX_CLOCK_ID_EMMC2 12
struct bcm2835_mbox_tag_get_clock_rate {
struct bcm2835_mbox_tag_hdr tag_hdr;
--
2.22.0

View File

@@ -1,53 +0,0 @@
From 1f42758fe69648340cfae6cae98e667b88923cf6 Mon Sep 17 00:00:00 2001
From: Matthias Brugger <mbrugger@suse.com>
Date: Wed, 10 Jul 2019 13:24:36 +0200
Subject: [PATCH 6/7] mmc: bcm2835_sdhci: Add support for bcm2711 device
The bcm2711 has two emmc controller. The difference is the clocks
they use. Add support for the second emmc contoller.
Signed-off-by: Matthias Brugger <mbrugger@suse.com>
Signed-off-by: Andrei Gherzan <andrei@balena.io>
Upstream-status: Pending
---
drivers/mmc/bcm2835_sdhci.c | 12 ++++++++++--
1 file changed, 10 insertions(+), 2 deletions(-)
diff --git a/drivers/mmc/bcm2835_sdhci.c b/drivers/mmc/bcm2835_sdhci.c
index 08bddd410e..e68dec3be7 100644
--- a/drivers/mmc/bcm2835_sdhci.c
+++ b/drivers/mmc/bcm2835_sdhci.c
@@ -178,12 +178,13 @@ static int bcm2835_sdhci_probe(struct udevice *dev)
fdt_addr_t base;
int emmc_freq;
int ret;
+ int clock_id = (int)dev_get_driver_data(dev);
base = devfdt_get_addr(dev);
if (base == FDT_ADDR_T_NONE)
return -EINVAL;
- ret = bcm2835_get_mmc_clock(BCM2835_MBOX_CLOCK_ID_EMMC);
+ ret = bcm2835_get_mmc_clock(clock_id);
if (ret < 0) {
debug("%s: Failed to set MMC clock (err=%d)\n", __func__, ret);
return ret;
@@ -228,7 +229,14 @@ static int bcm2835_sdhci_probe(struct udevice *dev)
}
static const struct udevice_id bcm2835_sdhci_match[] = {
- { .compatible = "brcm,bcm2835-sdhci" },
+ {
+ .compatible = "brcm,bcm2835-sdhci",
+ .data = BCM2835_MBOX_CLOCK_ID_EMMC
+ },
+ {
+ .compatible = "brcm,bcm2711-emmc2",
+ .data = BCM2835_MBOX_CLOCK_ID_EMMC2
+ },
{ /* sentinel */ }
};
--
2.22.0

View File

@@ -1,62 +0,0 @@
From 76b656349a6786fa81cf69ac7762c31675cd567e Mon Sep 17 00:00:00 2001
From: Andrei Gherzan <andrei@balena.io>
Date: Fri, 12 Jul 2019 14:27:31 +0100
Subject: [PATCH 7/7] rpi: Add memory map for bcm2838
Define the memory map for the BCM2838 based on the dt configuration
available in the Raspberry Pi kernel fork.
Signed-off-by: Andrei Gherzan <andrei@balena.io>
Upstream-status: Pending
---
board/raspberrypi/rpi/rpi.c | 27 ++++++++++++++++++++++++---
1 file changed, 24 insertions(+), 3 deletions(-)
diff --git a/board/raspberrypi/rpi/rpi.c b/board/raspberrypi/rpi/rpi.c
index 92c6534da6..bddf2a578d 100644
--- a/board/raspberrypi/rpi/rpi.c
+++ b/board/raspberrypi/rpi/rpi.c
@@ -249,7 +249,8 @@ static uint32_t rev_type;
static const struct rpi_model *model;
#ifdef CONFIG_ARM64
-static struct mm_region bcm2837_mem_map[] = {
+#ifndef CONFIG_BCM2838
+static struct mm_region bcm283x_mem_map[] = {
{
.virt = 0x00000000UL,
.phys = 0x00000000UL,
@@ -268,8 +269,28 @@ static struct mm_region bcm2837_mem_map[] = {
0,
}
};
-
-struct mm_region *mem_map = bcm2837_mem_map;
+#else
+static struct mm_region bcm283x_mem_map[] = {
+ {
+ .virt = 0x00000000UL,
+ .phys = 0x00000000UL,
+ .size = 0xfe000000UL,
+ .attrs = PTE_BLOCK_MEMTYPE(MT_NORMAL) |
+ PTE_BLOCK_INNER_SHARE
+ }, {
+ .virt = 0xfe000000UL,
+ .phys = 0xfe000000UL,
+ .size = 0x01800000UL,
+ .attrs = PTE_BLOCK_MEMTYPE(MT_DEVICE_NGNRNE) |
+ PTE_BLOCK_NON_SHARE |
+ PTE_BLOCK_PXN | PTE_BLOCK_UXN
+ }, {
+ /* List terminator */
+ 0,
+ }
+};
+#endif
+struct mm_region *mem_map = bcm283x_mem_map;
#endif
int dram_init(void)
--
2.22.0

Some files were not shown because too many files have changed in this diff Show More