Zephyr 3.4.0 (Working Draft)

We are pleased to announce the release of Zephyr version 3.4.0.

Major enhancements with this release include:

The following sections provide detailed lists of changes by component.

API Changes

Changes in this release

Removed APIs in this release

Deprecated in this release

  • Configuring applications with prj_<board>.conf files has been deprecated, this should be replaced by using a prj.conf with the common configuration and board-specific configuration in board Kconfig fragments in the boards folder of the application.

Stable API changes in this release

New APIs in this release

Kernel

Architectures

  • ARM

  • ARM

  • ARM64

  • RISC-V

  • Xtensa

Bluetooth

  • Audio

  • Direction Finding

  • Host

  • Mesh

    • Added experimental support for Mesh Protocol d1.1r18 specification.

    • Added experimental support for Mesh Binary Large Object Transfer Model d1.0r04_PRr00 specification.

    • Added experimental support for Mesh Device Firmware Update Model d1.0r04_PRr00 specification.

  • Controller

  • HCI Driver

Boards & SoC Support

  • Added support for these SoC series:

  • Removed support for these SoC series:

  • Made these changes in other SoC series:

  • Added support for these ARC boards:

  • Added support for these ARM boards:

    • Seeed Studio Wio Terminal

  • Added support for these ARM64 boards:

  • Added support for these RISC-V boards:

  • Added support for these X86 boards:

  • Added support for these Xtensa boards:

  • Made these changes for ARC boards:

  • Made these changes for ARM boards:

  • Made these changes for ARM64 boards:

  • Made these changes for RISC-V boards:

  • Made these changes for X86 boards:

  • Made these changes for Xtensa boards:

  • Removed support for these ARC boards:

  • Removed support for these ARM boards:

  • Removed support for these ARM64 boards:

  • Removed support for these RISC-V boards:

    • BeagleV Starlight JH7100

  • Removed support for these X86 boards:

  • Removed support for these Xtensa boards:

  • Made these changes in other boards:

  • Added support for these following shields:

Build system and infrastructure

  • Fixed an issue whereby older versions of the Zephyr SDK toolchain were used instead of the latest compatible version.

  • Fixed an issue whereby building an application with sysbuild and specifying mcuboot’s verification to be checksum only did not build a bootable image.

  • Fixed an issue whereby if no prj.conf file was present then board configuration files would not be included by emitting a fatal error. As a result, prj.conf files are now mandatory in projects.

  • Introduced support for extending/replacing the signing mechanism in zephyr, see West extending signing for further details.

Drivers and Sensors

  • ADC

  • MCUX LPADC driver now uses the channel parameter to select a software channel configuration buffer. Use zephyr,input-positive and zephyr,input-negative devicetree properties to select the hardware channel(s) to link a software channel configuration to.

  • Battery-backed RAM

    • Added MCP7940N battery-backed RTC SRAM driver.

  • CAN

  • Clock control

  • Counter

  • Crypto

  • DAC

  • DFU

  • Disk

  • Display

  • DMA

  • EEPROM

  • Entropy

  • ESPI

  • Ethernet

  • Flash

    • Introduced new flash API call flash_ex_op() which calls ec_op() callback provided by a flash driver. This allows to perform extra operations on flash devices, defined by Zephyr Flash API or by vendor specific header files. CONFIG_FLASH_HAS_EX_OP should be selected by the driver to indicate that extra operations are supported. To enable extra operations user should select CONFIG_FLASH_EX_OP_ENABLED.

    • nrf_qspi_nor: Replaced custom API function nrf_qspi_nor_base_clock_div_force with nrf_qspi_nor_xip_enable which apart from forcing the clock divider prevents the driver from deactivating the QSPI peripheral so that the XIP operation is actually possible.

  • FPGA

  • Fuel Gauge

  • GPIO

    • Converted the gpio_keys driver to the input subsystem.

  • hwinfo

  • I2C

  • I2S

  • I3C

  • IEEE 802.15.4

  • Input

    • Introduced the Input subsystem.

  • Interrupt Controller

  • IPM

  • KSCAN

    • Added a zephyr,kscan-input input to kscan compatibility driver.

    • Converted the ft5336 and kscan_sdl drivers to the input subsystem.

  • LED

  • MBOX

  • MEMC

  • PCIE

  • PECI

  • Retained memory

    • Retained memory (retained_mem) driver has been added with backends for Nordic nRF GPREGRET, and uninitialised RAM.

Trusted Firmware-M

  • Pin control

  • PWM

  • Power domain

  • Regulators

  • Reset

  • SDHC

  • Sensor

  • Serial

  • SPI

  • Timer

    • Support added for stopping Nordic nRF RTC system timer, which fixes an issue when booting applications built in prior version of Zephyr.

  • USB

  • W1

  • Watchdog

  • WiFi

Networking

  • Wi-Fi

    • TWT intervals are changed from milli-seconds to micro-seconds, interval variables are also renamed.

USB

Devicetree

Libraries / Subsystems

  • File systems

    • Added CONFIG_FS_FATFS_REENTRANT to enable the FAT FS reentrant option.

    • With LittleFS as backend, fs_mount() return code was corrected to EFAULT when called with FS_MOUNT_FLAG_NO_FORMAT and the designated LittleFS area could not be mounted because it has not yet been mounted or it required reformatting.

  • Management

    • Added optional input expiration to shell MCUmgr transport, this allows returning the shell to normal operation if a complete MCUmgr packet is not received in a specific duration. Can be enabled with CONFIG_MCUMGR_TRANSPORT_SHELL_INPUT_TIMEOUT and timeout set with CONFIG_MCUMGR_TRANSPORT_SHELL_INPUT_TIMEOUT_TIME.

    • MCUmgr fs_mgmt upload and download now caches the file handle to improve throughput when transferring data, the file is no longer opened and closed for each part of a transfer. In addition, new functionality has been added that will allow closing file handles of uploaded/downloaded files if they are idle for a period of time, the timeout is set with MCUMGR_GRP_FS_FILE_AUTOMATIC_IDLE_CLOSE_TIME. There is a new command that can be used to close open file handles which can be used after a file upload is complete to ensure that the file handle is closed correctly, allowing other transports or other parts of the application code to use it.

  • RTIO

    • Added policy that every sqe will generate a cqe (previously an RTIO_SQE_TRANSACTION entry would only trigger a cqe on the last sqe in the transaction.

HALs

MCUboot

Storage

Trusted Firmware-M

zcbor

Documentation

Tests and Samples