Our contributions to Yocto 4.3

The Yocto Project is an open source collaboration project that provides templates, tools and methods to help you create custom Linux-based systems for embedded system deployments in connected edge devices, servers, or virtual environments, regardless of the hardware architecture. Yocto 4.3 (codename “nanbield”) was recently released. It includes Linux kernel 6.5 and 6.1, gcc 13, glibc 2.38, LLVM 17, and over 300 other recipe upgrades.

BayLibre engineers made the following contributions to Yocto 4.3:

openembedded-core

We contributed a total of 82 patches across several areas:

  • Eilís ‘pidge’ Ní Fhlannagáin
    • Provided fixes for nativesdk-intercept ownership logic and path setup
    • Added a workaround for update_mandb issues when populating the SDK
  • Julien Stephan
    • Added bblock, a tool for locking and unlocking recipes during build, along with associated selftests
    • Upgraded less recipe
    • Added ptest support for less and libexif recipes
    • Miscellaneous fixes for sstatesig, vulkan-samples, scripts.patch.py, and automake
  • Trevor Gamblin
    • Migrated core patchtest code into openembedded-core and refactored the test suite as part of the 2023 Yocto Project RFQ. Maintenance for patchtest is ongoing in openembedded-core master branch, and in meta-patchtest – Layer supporting the test framework for community patches.
    • Improvements to ptests and dependencies for python3 and glib-networking
    • Added new recipes for: python3-calver and python3-trove-classifiers
    • Upgraded numerous recipes: bind, diffoscope, git, icu, iproute2, linux-firmware, nfs-utils, p11-kit, pciutils, qemu, vim, xeyes, python3-cython, python3-dbusmock, python3-dtc, python3-dtschema, python3-git, python3-hatchling, python3-hypothesis, python3-more-itertools, python3-numpy, python3-poetry, python3-poetry-core, python3-pygments, python3-pytest, python3-setuptools, python3-sphinx, python3-trove-classifiers, python3-webcolors

bitbake

  • Julien Stephan
    • Added a new function to retrieve task signatures in bitbake

meta-openembedded

54 patches were contributed:

  • Trevor Gamblin
    • Added recipes for: python3-arrow, python3-git-pw, python3-platformdirs, python3-pytest-mock, python3-tomlkit, python3-versioneer
    • Ptest, dependency, and other metadata fixes for: python3-bandit, python3-bitstring, python3-blinker, python3-flask, python3-kivy, python3-py-cpuinfo, python3-pylint, python3-pytest-mock
    • Recipe upgrades for: python3-aiofiles, python3-alembic, python3-argcomplete, python3-arpeggio, python3-astroid, python3-autobahn, python3-awesomeversion, python3-bandit, python3-beautifulsoup4, python3-binwalk, python3-bitarray, python3-bitstring, python3-bitstruct, python3-blinker, python3-cppy, python3-django, python3-dnspython, python3-execnet, python3-fastjsonschema, python3-flask, python3-greenstalk, python3-humanize, python3-ipython, python3-jsonpatch, python3-m2crypto, python3-matplotlib, python3-pandas, python3-parse, python3-pyaudio, python3-pybind11, python3-pylint, python3-pyperf, python3-rdflib, python3-semver, python3-send2trash, python3-sh, python3-snagboot, python3-sqlalchemy, python3-sqlparse, python3-werkzeug

yocto-docs

  • Trevor Gamblin
    • Updated the dev-manual’s testimage instructions to match the new IMAGE_CLASSES approach

Our contributions to Zephyr v3.5

Zephyr is an open source RTOS (real-time operating system) project that is being widely adopted for resource-constrained systems, from environmental sensors to smart watches and IoT wireless gateways. BayLibre is a member of the Zephyr Project and has been a core contributor since the project began.  We have ported Zephyr to the 64-bit ARM and 64-bit RISC-V architectures. Our engineers also maintain core parts of Zephyr.

Zephyr v3.5 was released last month:

Zephyr 3.5 introduces numerous enhancements to its various connectivity options to keep them aligned with latest developments in the various standards (Wi-Fi, Bluetooth, etc.), secure, and easier to maintain going forward. This will greatly simplify the lives of connected product developers.

What’s more, whether you’re looking at building IoT devices or not, several significant improvements were made to help build applications that are small, modular, and well tested (and if this sounds like a pretty generic statement to you, it’s because I want you to read further to see what I mean by that!).

BayLibre engineers made the following contributions to this release:
 
Nicolas Pitre
  • Created a timepoint API for events (typically expiration deadlines) tied to absolute time. This replaces open coded implementations that were prone to mistakes and sometimes lacked coherency and efficiency.
  • Added 64-bits cycle reporting to the systick timer driver.
  • Improved the ability to configure the whole timer subsystem out when unneeded in order to reduce the final binary size.
Carlo Caione
  • Added support for the CLIC vectored mode on RISC-V
  • Added support for the stack unwinding on ARM64 at run-time
  • IPC service with the OpenAMP backend now takes into account the cache line size and alignment. This is done to align and pad structs in the cacheable shared memory so that invalidation operations can be performed safely.
  • There is a pretty complex work ongoing about adding a new `zephyr,memory-attr` property to the memory nodes in the DT. This new property is used to describe properties and capabilities of the associated memory region. A library helper can use this information to do several different things. Currently the library is only used to configure the MPU region associated to the memory region but the idea is to extend that to be able to allocate memory heaps with different capabilities (cacheable, non-cacheable memory, etc…)
Riadh Ghaddab
  • Fixed an issue in the IPC service which occured when it could not find enough memory.

If your team needs help with Zephyr or any other embedded software such as Linux or Android, then please don’t hesitate to reach out to the experts at BayLibre.

You can also follow BayLibre on TwitterLinkedIn and Mastodon for more.

Our contributions to Zephyr v3.0.0

BayLibre is a member of the Zephyr Project and has been a core contributor from the beginning with over 650 commits. Zephyr v3.0.0 is the most recent release, and these are the contributions from our team.

BayLibre at Linux Plumbers Conference 2023

BayLibre CTO Kevin Hilman, along with BayLibre engineers Alexandre Bailon, Nicolas Pitre and Drew Fustini, are attending Linux Plumbers Conference 2023 in Richmond, Virginia.

Alexandre will speak at the Power Management and Thermal Control micro-conference on Tuesday:

Sensors aggregation
Alexandre Bailon
Nov 14, 2023, 2:30 PM
Livestream: “James River Salon B” (Omni Richmond Hotel)

Nicolas Pitre will be speaking at the IoT micro-conference on Wednesday:

Shared FPU Support in Zephyr for ARM64 and RISC-V
Nicolas Pitre
Nov 15, 2023, 4:30 PM Eastern
Livestream: “James River Salon A” (Omni Richmond Hotel)

BayLibre is a live stream sponsor, and all the tracks at Linux Plumbers are streamed live on YouTube so everyone can view the content. The livestream URLs are now available on the Schedule Overview page. Find the track you want and click the paperclip on the upper right corner to bring up the Live Stream Link. You can also visit the Linux Plumbers Conference YouTube channel to view all the live streams: