Zephyr 4.2.1

This is a bugfix release for Zephyr 4.2.0. The following issues are addressed by this release:

  • GitHub #96197 gPTP sample does not boot with NUCLEO-H563ZI

  • GitHub #92393 LIS2DUX12 setting incorrect ODR configuration

  • GitHub #93011 stm32u0: interrupt vectors for lpuart1 and lpuart2 are wrong in device tree

  • GitHub #93220 Twister tests with coverage enabled crash during startup

  • GitHub #93265 Stm32u5x: clock disable in sleep mode fix causing USB HS device initialization stalls

  • GitHub #93342 doc: Documentation issue in ‘connectivity/networking/api/tftp’

  • GitHub #93350 net: tcp: keep-alive “pings” are no longer acknowledged with v4.2.0

  • GitHub #93364 tests/subsys/llext fails after tagging 4.2

  • GitHub #93424 Missing break after IPV6_MULTICAST_IF option processing

  • GitHub #93445 STM32U535/545: dtc error for node wkup-pin@8 referencing non-existent port gpiof

  • GitHub #93519 drivers: nxp_lpspi: Large performance degradation

  • GitHub #93594 Nicla Vision has bad I2C address for VL53L1X sensor

  • GitHub #93611 doc: Documentation issue in ‘releases/release-notes-4.2’

  • GitHub #93790 drivers: console: posix_arch_console: build warning with CONFIG_PRINTK=n

  • GitHub #93792 USB samples not working on max32690evkit

  • GitHub #93831 drivers: can: nrf: fix invalid pointer leading to undef behavior

  • GitHub #93839 I3C: STM32: Has a Mutex deadlock on DAA Failure

  • GitHub #94000 EXT2 fs_stat on mount point fails with a NULL pointer dereference.

  • GitHub #94047 Shell device name tab completion for regulator parents show incorrect names

  • GitHub #94063 SPI loopback tests failing on MAX32 SoCs.

  • GitHub #94083 stm32: u3: low clock frequency for the RNG periphera

  • GitHub #94093 Build error when OCRAM node is disabled in device tree (status = “disabled”) [NXP RT1061]

  • GitHub #94107 ppp link-layer address configuration is wrong

  • GitHub #94325 iar: incorrect assembler optimzation flag

  • GitHub #94473 LVGL Widgets Demo stopped working in v4.1 on mimxrt1060_evk@A

  • GitHub #94702 Locally Administered Address (LAA) bit missing for STM32 ethernet driver

  • GitHub #94703 Locally Administered Address (LAA) bit set on wrong index for NXP i.MX ethernet driver

  • GitHub #94774 modules/picolibc: Roll back unnecessary changes, synchronize with SDK 0.17.4

  • GitHub #94812 nocache data is included in ROM section

  • GitHub #94842 iar: Zephyr 4.2 fails with IAR EWARM 9.70.1

  • GitHub #94954 Spurious error log “No valid legacy adv to resume” in bt_hci_le_enh_conn_complete when using bt_le_ext_adv_start()

  • GitHub #95113 gpio_pin_get_config for STM32 returns wrong flags value for input pins

  • GitHub #95146 i2c: stm32: non-RTIO driver fixes on PM and on STM32F7 from Zephyr v4.3

  • GitHub #95297 Links to the pyOCD repository are outdated

  • GitHub #95456 Zephyr Netstack buffer leaks

  • GitHub #95580 Picolibc module and SDK are not in sync for Zephyr 4.2.0

  • GitHub #95721 Boards documentation: “arm” Architecture not specified at least for STM32MP13 and STM32N6 boards

  • GitHub #95724 drivers: i2c: stm32: build error when using DMAs with st,stm32-i2c-v2 driver

  • GitHub #95768 Possible TCP connection leak when creating a socket

  • GitHub #95850 Applications do not watch MCUboot key file for changes

  • GitHub #96087 TCP connection sends an incorrect seqnum FIN message

  • GitHub #96172 arch: arm: switch to privilege stack in SVC handler

  • GitHub #96768 incorrect i2c3 base address on stm32f303Xe

Zephyr 4.2.0

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

Major enhancements with this release include:

Initial Support for Renesas RX

The Renesas RX architecture is now supported, including a QEMU-based board target.

USB Video Class Driver

The USB device stack now supports USB Video Class (UVC) allowing camera devices and other image/video sources to be exposed as standard USB video devices. See USB Video webcam to get started.

Twister Power Harness

A new Twister harness enables measurement of the power consumption of the device under test and ensures it remains within a given tolerance.

MQTT 5.0

The networking stack now includes full support for the MQTT 5.0 protocol.

Bluetooth Classic improvements

The Bluetooth Classic stack now includes support for Hands-Free Profile (HFP) for both Audio Gateway (AG) and Hands-Free (HF) roles.

Zbus

The Zbus library graduates to stable status with the release of API version v1.0.0.

Expanded Board Support

Support for 96 new boards and 22 new shields has been added in this release.

An overview of the changes required or recommended when migrating your application from Zephyr v4.1.0 to Zephyr v4.2.0 can be found in the separate migration guide.

The following sections provide detailed lists of changes by component.

API Changes

Removed APIs and options

  • Removed the deprecated net_buf_put() and net_buf_get() API functions.

  • Removed the deprecated include/zephyr/net/buf.h header file.

  • Removed the --disable-unrecognized-section-test Twister option. Test has been removed and the option became the default behavior.

  • Removed the deprecated kscan subsystem.

  • Removed meas,ms5837 and replaced with meas,ms5837-30ba and meas,ms5837-02ba.

  • Removed the get_ctrl driver API from video_driver_api.

  • Removed CONFIG_I3C_USE_GROUP_ADDR and support for group addresses for I3C devices.

Deprecated APIs and options

  • The scheduler Kconfig options CONFIG_SCHED_DUMB and CONFIG_WAITQ_DUMB were renamed and deprecated. Use CONFIG_SCHED_SIMPLE and CONFIG_WAITQ_SIMPLE instead.

  • The CONFIG_LWM2M_ENGINE_MESSAGE_HEADER_SIZE Kconfig option has been removed. The required header size should be included in the message size, configured using CONFIG_LWM2M_COAP_MAX_MSG_SIZE. Special care should be taken to ensure that the CoAP block size used (CONFIG_LWM2M_COAP_BLOCK_SIZE) can fit the given message size with headers. Previous headroom was 48 bytes.

  • TLS credential type TLS_CREDENTIAL_SERVER_CERTIFICATE was renamed and deprecated, use TLS_CREDENTIAL_PUBLIC_CERTIFICATE instead.

  • arduino_uno_r4_minima and arduino_uno_r4_wifi board targets have been deprecated in favor of a new arduino_uno_r4 board with revisions (arduino_uno_r4@minima and arduino_uno_r4@wifi).

  • esp32c6_devkitc board target has been deprecated and renamed to esp32c6_devkitc/esp32c6/hpcore.

  • xiao_esp32c6 board target has been deprecated and renamed to xiao_esp32c6/esp32c6/hpcore.

  • CONFIG_HAWKBIT_DDI_NO_SECURITY Kconfig option has been deprecated, because support for anonymous authentication had been removed from the hawkBit server in version 0.8.0.

  • The CONFIG_BT_CONN_TX_MAX Kconfig option has been deprecated. The number of pending TX buffers is now aligned with the CONFIG_BT_BUF_ACL_TX_COUNT Kconfig option.

  • The CONFIG_CRYPTO_TINYCRYPT_SHIM Kconfig option has been removed. It was deprecated since Zephyr 4.0, and users were advised to migrate to alternative crypto backends.

  • The CONFIG_BT_MESH_USES_TINYCRYPT Kconfig option has been removed. It was deprecated since Zephyr 4.0. Users were advised to use CONFIG_BT_MESH_USES_MBEDTLS_PSA or CONFIG_BT_MESH_USES_TFM_PSA instead.

Stable API changes in this release

New APIs and options

New Boards

New shields

New Drivers

New Samples

Other notable changes

  • Added support for Armv8.1-M MPU’s PXN (Privileged Execute Never) attribute. With this, the MPU attributes for __ramfunc and __ram_text_reloc were modified such that, PXN attribute is set for these regions if compiled with CONFIG_ARM_MPU_PXN and CONFIG_USERSPACE. This results in a change in behavior for code being executed from these regions because, if these regions have pxn attribute set in them, they cannot be executed in privileged mode.

  • Removed support for Nucleo WBA52CG board (nucleo_wba52cg) since it is NRND (Not Recommended for New Design) and is no longer supported in the STM32CubeWBA from version 1.1.0 (July 2023). The migration to Nucleo WBA55CG (nucleo_wba55cg) is recommended instead.

  • Updated Mbed TLS to version 3.6.4 (from 3.6.2). Release notes for 3.6.3 and 3.6.4 can be found below:

  • Updated TF-M to version 2.1.2 (from 2.1.1). The release notes can be found at: https://trustedfirmware-m.readthedocs.io/en/tf-mv2.1.2/releases/2.1.2.html

  • Updated all boards with an external I2C connectors (Qwiic, Stemma, Grove…) to use the zephyr_i2c devicetree label. This allows using the existing Shields build system feature (west build --shield) to interface any connectorized i2c module to any board with a compatible i2c port, regardless of the specific i2c connector branding.

  • Reverted deprecation of receiver option in Nordic UART driver. Receiver mode which is using additional TIMER peripheral to count received bytes was previously deprecated (e.g. CONFIG_CONFIG_UART_0_NRF_HW_ASYNC). However, it turned out that this previously mode is the only one that is capable of reliably receive data without Hardware Flow Control so it should stay in the driver.