Skip to main content
BlogZephyr Developer Summit

Deep Dive into Zephyr Subsystems

By August 31, 2023No Comments

The Zephyr Developer Summit, hosted under the first-ever Embedded Open Source Summit in Prague, Czech Republic, on June 27-30 included presentations, BoFs, and training designed for real time problem solving and deep discussions. More than 1,300 people registered for the EOSS conference – representing 375 organizations across 56 countries around the globe. Zephyr had 75+ technical sessions (in-person and on-demand) for 3 tracks focused on users of Zephyr, developers contributing upstream, and maintainer-specific topics.

All of the videos from the Zephyr Developer Summit can be found on the Zephyr Youtube Channel. Each week, we’ll highlight a few videos in a blog for easy access. Today, we’re featuring a few sessions focused on Zephyr’s subsystems including: “AP Power Sequence Subsystem,” “Introducing the Zephyr Input Subsystem,” “Reworking the Zephyr Clock Control Subsystem,” “High Bandwidth Sensors,” and “Introducing a New Zephyr Sensing Subsystem.

AP Power Sequence Subsystem – Bernardo Salvador Perez Priego, Intel Corporation

This video introduces a subsystem API in Zephyr to manage the ACPI power sleep states of a connected application processor (AP). Users of this API will be able to query and receive notifications upon AP power state transitions. The AP power sequence subsystem is built on Zephyr’s State Machine Framework (SMF), providing flexibility for AP architecture, chipset, and application specific requirements. ACPI’s global state (G3) and its six sleep power states (S0, S1, S2, S3, S4, S5) are present within the state machine domain.

All these ACPI states have three hierarchical levels:

  • Architecture: is the highest level of the hierarchy, SMF states at this level perform operations that are shared by all designs based on a specific AP CPU architecture.
  • Chipset: these SMF states drive the power of components and monitor power good signals that are required for a specific AP chipset.
  • Application: is the bottom level of the hierarchy and these SMF states are reserved for action handlers intended to address platform or application specific computations. Utility macros and functions are also provided to easily follow hierarchy early described. Allowing implementation to register state action handlers, and safely perform state transitions.

Introducing the Zephyr Input Subsystem – Fabio Baltieri, Google

An introduction to the Zephyr Input Subsystem: background, design decisions, modes of operation and intended use cases for different type of applications.
The Zephyr DT based clock description works for a subset of existing drivers that fall broadly into two categories: Those supporting input clocks with compile-time known frequencies and those that use the clock control API to configure clocks. In this panel after briefly describing the status quo, and attempts I made at fixing the status quo, I’d like to have a discussion with the community on how we can move forward unifying the API such that all drivers can work with both fixed-clocks and dynamic clocks by making Zephyr’s clock control API look and behave more like Linux’ clock subsystem.
High Bandwidth Sensors – Yuval Peress, Google
Developing a sensor heavy application in Zephyr comes with special considerations and caveats. During this video, Yuval takes people through a stress test application we’re working on based on the TDK Robokit1 and what it takes to get high sample rates (above 10kHz) from multiple sensors in Zephyr. Highlights will include: bottle necks, data pipeline, threading, and system design.
Introducing a New Zephyr Sensing Subsystem – Hebo Hu & Ke Han, Intel
The Zephyr sensor driver API has existed since the very early days of the Zephyr Project and grown to over 100 driver implementations in more recent releases, supporting a variety of sensor types (accelerometers, magnetometers, temperature sensors, and more). A proposed new sensing subsystem builds upon the sensor driver API to add sensor hub functionality, arbitrating sensor configuration (sample rate, sensitivity) and managing data delivery to multiple clients in a Zephyr application. This video covers the architecture and design of the new sensing subsystem, as well as Intel’s use-cases in client computing platforms.

Watch the rest of the Zephyr Developer Summit videos here. The schedule and links to the PPT presentations can be found here. Photos from the EOSS can be found here.

For more information about the 2024 event, stay tuned by subscribing to the Zephyr quarterly newsletter or connect with us on @ZephyrIoTZephyr Project LinkedIn or the Zephyr Discord Channel to talk with community and TSC members.

Zephyr Project