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=nGitHub #93792 USB samples not working on
max32690evkitGitHub #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
nocachedata is included in ROM sectionGitHub #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()andnet_buf_get()API functions.Removed the deprecated
include/zephyr/net/buf.hheader file.Removed the
--disable-unrecognized-section-testTwister option. Test has been removed and the option became the default behavior.Removed the deprecated
kscansubsystem.Removed
meas,ms5837and replaced withmeas,ms5837-30baandmeas,ms5837-02ba.Removed the
get_ctrldriver API fromvideo_driver_api.Removed
CONFIG_I3C_USE_GROUP_ADDRand 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_SIMPLEandCONFIG_WAITQ_SIMPLEinstead.The
CONFIG_LWM2M_ENGINE_MESSAGE_HEADER_SIZEKconfig option has been removed. The required header size should be included in the message size, configured usingCONFIG_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_CERTIFICATEwas renamed and deprecated, useTLS_CREDENTIAL_PUBLIC_CERTIFICATEinstead.arduino_uno_r4_minimaandarduino_uno_r4_wifiboard targets have been deprecated in favor of a newarduino_uno_r4board with revisions (arduino_uno_r4@minimaandarduino_uno_r4@wifi).esp32c6_devkitcboard target has been deprecated and renamed toesp32c6_devkitc/esp32c6/hpcore.xiao_esp32c6board target has been deprecated and renamed toxiao_esp32c6/esp32c6/hpcore.CONFIG_HAWKBIT_DDI_NO_SECURITYKconfig 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_MAXKconfig option has been deprecated. The number of pending TX buffers is now aligned with theCONFIG_BT_BUF_ACL_TX_COUNTKconfig option.The
CONFIG_CRYPTO_TINYCRYPT_SHIMKconfig 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_TINYCRYPTKconfig option has been removed. It was deprecated since Zephyr 4.0. Users were advised to useCONFIG_BT_MESH_USES_MBEDTLS_PSAorCONFIG_BT_MESH_USES_TFM_PSAinstead.
Stable API changes in this release
The API signature of
net_mgmtevent handlernet_mgmt_event_handler_tand request handlernet_mgmt_request_handler_thas changed. The event value type is changed fromuint32_ttouint64_t.
New APIs and options
Architectures
NIOS2 Architecture was removed from Zephyr.
ARCH_HAS_VECTOR_TABLE_RELOCATIONCONFIG_SRAM_VECTOR_TABLEmoved fromzephyr/Kconfig.zephyrtozephyr/arch/Kconfigand added dependencies to it.
Bluetooth
Audio
Host
LE Connection Subrating is no longer experimental.
Remove deletion of the classic bonding information from
bt_unpair(), and addbt_br_unpair().Remove query of the classic bonding information from
bt_foreach_bond(), and addbt_br_foreach_bond().Add a new parameter
limitedtobt_br_set_discoverable()to support limited discoverable mode for the classic.Enable retransmission and flow control for the classic L2CAP, including
CONFIG_BT_L2CAP_RET,CONFIG_BT_L2CAP_FC,CONFIG_BT_L2CAP_ENH_RET, andCONFIG_BT_L2CAP_STREAM.Improve the classic hands-free unit, including
CONFIG_BT_HFP_HF_CODEC_NEG,CONFIG_BT_HFP_HF_ECNR,CONFIG_BT_HFP_HF_3WAY_CALL,CONFIG_BT_HFP_HF_ECS,CONFIG_BT_HFP_HF_ECC,CONFIG_BT_HFP_HF_VOICE_RECG_TEXT,CONFIG_BT_HFP_HF_ENH_VOICE_RECG,CONFIG_BT_HFP_HF_VOICE_RECG,CONFIG_BT_HFP_HF_HF_INDICATORS,CONFIG_BT_HFP_HF_HF_INDICATOR_ENH_SAFETY, andCONFIG_BT_HFP_HF_HF_INDICATOR_BATTERY.Improve the classic hands-free audio gateway, including
CONFIG_BT_HFP_AG_CODEC_NEG,CONFIG_BT_HFP_AG_ECNR,CONFIG_BT_HFP_AG_3WAY_CALL,CONFIG_BT_HFP_AG_ECS,CONFIG_BT_HFP_AG_ECC,CONFIG_BT_HFP_AG_VOICE_RECG_TEXT,CONFIG_BT_HFP_AG_ENH_VOICE_RECG,CONFIG_BT_HFP_AG_VOICE_TAG,CONFIG_BT_HFP_AG_HF_INDICATORS,CONFIG_BT_HFP_AG_HF_INDICATOR_ENH_SAFETY,CONFIG_BT_HFP_AG_HF_INDICATOR_BATTERY, andCONFIG_BT_HFP_AG_REJECT_CALL.Add a callback function
get_ongoing_call()tobt_hfp_ag_cb.Support the classic L2CAP signaling echo request and response feature, including
bt_l2cap_br_echo_cb,bt_l2cap_br_echo_cb_register(),bt_l2cap_br_echo_cb_unregister(),bt_l2cap_br_echo_req(), andbt_l2cap_br_echo_rsp().
Build system
Sysbuild
Firmware loader image setup/selection support added to sysbuild when using
SB_CONFIG_MCUBOOT_MODE_FIRMWARE_UPDATERviaSB_CONFIG_FIRMWARE_LOADERe.g.SB_CONFIG_FIRMWARE_LOADER_IMAGE_SMP_SVRfor selecting SMP server.Single app RAM load support added to sysbuild using
SB_CONFIG_MCUBOOT_MODE_SINGLE_APP_RAM_LOAD.
Counter
Debug
Core Dump
CONFIG_DEBUG_COREDUMP_THREAD_STACK_TOP, enabled by default for ARM Cortex M whenCONFIG_DEBUG_COREDUMP_MEMORY_DUMP_MINis selected.
Display
Added
display_clear()API to allow clearing the display content in a standardized way.Character Frame Buffer (CFB) subsystem now supports drawing circles via
cfb_draw_circle().
I2C
I3C
Kernel
LVGL (Light and Versatile Graphics Library)
The LVGL module was synchronized to v9.3, bringing numerous upstream improvements and new features.
LVGL subsystem now supports multiple simultaneous displays, including proper input device-to-display binding.
Added L8/Y8 pixel format support for displays such as SSD1327, SSD1320, SSD1322, and ST75256.
LoRaWAN
Management
MCUmgr
Firmware loader support added to image mgmt group using
CONFIG_MCUBOOT_BOOTLOADER_MODE_FIRMWARE_UPDATER.Optional boot mode (using retention boot mode) added to OS group reset command using
CONFIG_MCUMGR_GRP_OS_RESET_BOOT_MODE.
Networking:
CoAP
DHCPv4
DNS
HTTP
IPv4
LwM2M
Implemented Greater Than, Less Than and Step observe attributes handling (see
CONFIG_LWM2M_MAX_NOTIFIED_NUMERICAL_RES_TRACKED).
Misc
MQTT
OpenThread
Moved OpenThread-related Kconfig options from subsys/net/l2/openthread/Kconfig to modules/openthread/Kconfig.
Refactored OpenThread networking API, see the OpenThread section of the migration guide.
SNTP
Sockets
Added a new documentation page for Socket Services library.
New socket options:
Wi-Fi
Added a new section to the Wi-Fi Management documentation (
doc/connectivity/networking/api/wifi.rst) with step-by-step instructions for generating test certificates for Wi-Fi using FreeRADIUS scripts. This helps users reproduce the process for their own test environments.Changed the hostap IPC mechanism from socketpair to k_fifo. Depending on the enabled Wi-Fi configuration options, this can save up to 6-8 kB memory when using native Wi-Fi stack.
zperf
zperf_upload_params.data_loader
PCIe
Power management
SPI
Sensor
Stepper
Storage
Sys
USB
UpdateHub
Video
VIDEO_CID_AUTO_WHITE_BALANCEand other controls from the BASE control class.VIDEO_CID_EXPOSURE_ABSOLUTEand other controls from the CAMERA control class.VIDEO_PIX_FMT_Y10andY12,Y14,Y16variantsVIDEO_PIX_FMT_SRGGB10Pand12P,14Pvariants, for all 4 bayer variants.video_buffer.indexfieldVIDEO_MIPI_CSI2_DT_NULLand other MIPI standard values
ZBus
Zbus has achieved stable status with the release of API version v1.0.0.
Runtime observers can work without heap. Now it is possible to choose between static, dynamic, and none allocation for the runtime observers nodes.
Runtime observers using
CONFIG_ZBUS_RUNTIME_OBSERVERS_NODE_ALLOC_NONEmust use the new functionzbus_chan_add_obs_with_node().
New Boards
Adafruit Industries, LLC
Adafruit Feather ESP32S2 (
adafruit_feather_esp32s2)Adafruit Feather ESP32S2 TFT (
adafruit_feather_esp32s2_tft)Adafruit Feather ESP32S2 TFT Reverse (
adafruit_feather_esp32s2_tft_reverse)Adafruit Feather ESP32S3 (
adafruit_feather_esp32s3)Adafruit Feather ESP32S3 TFT (
adafruit_feather_esp32s3_tft)Adafruit ESP32-S3 Reverse TFT Feather (
adafruit_feather_esp32s3_tft_reverse)
Advanced Micro Devices (AMD), Inc.
Versal 2 RPU development board (
versal2_rpu)Versal NET RPU development board (
versalnet_rpu)
Aesc Silicon
ElemRV-N (
elemrv)
Ai-Thinker Co., Ltd.
Ai-Thinker WB2-12F development board (
ai_wb2_12f)
Ambiq Micro, Inc.
Apollo510 SOC Evaluation Board (
apollo510_evb)
Analog Devices, Inc.
max32657evkit (
max32657evkit)
Arduino
Arduino Nano Matter (
arduino_nano_matter)Arduino Portenta C33 (
arduino_portenta_c33)
ARM Ltd.
MPS4 (
mps4)
BeagleBoard.org Foundation
PocketBeagle 2 (
pocketbeagle_2)
Blues Wireless
Cygnet (
cygnet)
Bouffalo Lab (Nanjing) Co., Ltd.
BL604E IOT DVK development board (
bl604e_iot_dvk)
Doctors of Intelligence & Technology
DT-BL10 coexistence Module Development Kit (
dt_bl10_devkit)
ENE Technology, Inc.
ENE KB1062_EVB (
kb1062_evb)
Espressif Systems
ESP32-DevKitC (
esp32_devkitc)
Ezurio
BL54L15 DVK (
bl54l15_dvk)BL54L15u DVK (
bl54l15u_dvk)
FANKE Technology Co., Ltd.
FK743M5-XIH6 (
fk743m5_xih6)
IAR Systems AB
STM32F429II-ACA (
stm32f429ii_aca)
Infineon Technologies
XMC7200 Evaluation Kit (
kit_xmc72_evk)
Intel Corporation
Bartlett Lake P CRB (
intel_btl_s_crb)
ITE Tech. Inc.
IT51XXX series (
it515xx_evb)
KWS Computersysteme Gmbh
Lilygo Shenzhen Xinyuan Electronic Technology Co., Ltd
T-Dongle S3 (
tdongle_s3)TTGO TBeam (
ttgo_tbeam)TTGO T-OI-PLUS (
ttgo_toiplus)T-Watch S3 (
twatch_s3)
M5Stack
Fire (
m5stack_fire)
Microchip Technology Inc.
MEC17xxEVB ASSY6941 (
mec_assy6941)SAMA7G54 Evaluation Kit (
sama7g54_ek)
MikroElektronika d.o.o.
MikroE Quail (
mikroe_quail)
Nordic Semiconductor
nRF54LM20 DK (
nrf54lm20dk)
Nuvoton Technology Corporation
NPCK3M8K_EVB (
npck3m8k_evb)NUMAKER M55M1 (
numaker_m55m1)
NXP Semiconductors
FRDM-MCXA153 (
frdm_mcxa153)FRDM-MCXA166 (
frdm_mcxa166)FRDM-MCXA276 (
frdm_mcxa276)i.MX943 EVK (
imx943_evk)MCX-N9XX-EVK (
mcx_n9xx_evk)S32K148EVB-Q176 (
s32k148_evb)
Octavo Systems LLC
OSD32MP1-BRK (
osd32mp1_brk)
OpenHW Group
cv32a6_genesys_2 (
cv32a6_genesys_2)cv64a6_genesys_2 (
cv64a6_genesys_2)
Pimoroni Ltd.
Pimoroni Pico Plus2 (
pico_plus2)
QEMU
QEMU Emulation for Renesas RX (
qemu_rx)
Raytac Corporation
AN54L15Q-DB (
raytac_an54l15q_db)AN7002Q-DB-5340 (
raytac_an7002q_db)MDBT50Q-CX-40 Dongle (
raytac_mdbt50q_cx_40_dongle)
Renesas Electronics Corporation
RA8P1 Evaluation Kit (
ek_ra8p1)Renesas Starter Kit for RX130 (
rsk_rx130)RZ/A2M Evaluation Kit (
rza2m_evk)RZ/A3UL SMARC Evaluation Board Kit (
rza3ul_smarc)RZ/G2L SMARC Evaluation Board Kit (
rzg2l_smarc)RZ/G2LC SMARC Evaluation Board Kit (
rzg2lc_smarc)RZ/G2UL SMARC Evaluation Board Kit (
rzg2ul_smarc)Renesas Starter Kit+ for RZ/N2L (
rzn2l_rsk)Renesas Starter Kit+ for RZ/T2L (
rzt2l_rsk)Renesas Starter Kit+ for RZ/T2M (
rzt2m_rsk)RZ/V2H Evaluation Board Kit (
rzv2h_evk)RZ/V2L SMARC Evaluation Board Kit (
rzv2l_smarc)RZ/V2N Evaluation Board Kit (
rzv2n_evk)
Seeed Technology Co., Ltd
XIAO MG24 (
xiao_mg24)XIAO RA4M1 (
xiao_ra4m1)
sensry.io
Ganymed Starter Kit (SK) (
ganymed_sk)
Shanghai Ruiside Electronic Technology Co., Ltd.
ART-Pi2 (
art_pi2)RA8D1 Vision Board (
ra8d1_vision_board)
Silicon Laboratories
SiWx917 Wi-Fi 6 and Bluetooth LE 8 MB Flash + 8 MB ext PSRAM Radio Board (SLWRB4342A) (
siwx917_rb4342a)EFR32xG21 2.4 GHz 20 dBm (SLWRB4180B) (
slwrb4180b)
Space Cubics, LLC
SC-OBC Module A1 (
scobc_a1)
STMicroelectronics
Nucleo F439ZI (
nucleo_f439zi)Nucleo U385RG Q (
nucleo_u385rg_q)Nucleo WBA65RI (
nucleo_wba65ri)STM32H757I Eval (
stm32h757i_eval)STM32MP135F-DK Discovery (
stm32mp135f_dk)STM32MP257F-EV1 Evaluation Board (
stm32mp257f_ev1)STM32U5G9J Discovery Kit 1 (
stm32u5g9j_dk1)STM32U5G9J Discovery Kit (
stm32u5g9j_dk2)
Texas Instruments
TI AM243x-EVM (
am243x_evm)MSPM0G3507 Launchpad (
lp_mspm0g3507)SK-AM64 (
sk_am64)
u-blox
EVK-IRIS-W106-RW612 (
ubx_evk_iris_w1)
Variscite Ltd.
DART-MX8M-PLUS (
imx8mp_var_dart)VAR-SOM-MX8M-PLUS (
imx8mp_var_som)DART-MX93 (
imx93_var_dart)VAR-SOM-MX93 (
imx93_var_som)
Waveshare Electronics
ESP32-S3-Matrix (
esp32s3_matrix)RP2040-Plus (
rp2040_plus)
WeAct Studio
BluePill Plus CH32V203 (
bluepillplus_ch32v203)STM32F446 Core Board V1.1 (
weact_stm32f446_core)
WinChipHead
WCH CH32V003F4P6 Development Board (
ch32v003f4p6_dev_board)WCH CH32V006EVT (
ch32v006evt)WCH CH32V303VCT6_EVT (
ch32v303vct6_evt)WCH LinkW (
linkw)
WIZnet Co., Ltd.
W5500-EVB-Pico2 (
w5500_evb_pico2)
Würth Elektronik GmbH.
Ophelia-IV DK (
ophelia4ev)
New shields
New Drivers
ADC
Audio
Auxiliary Display
CAN
Charger
Clock control
Comparator
Counter
CPU
Cryptographic accelerator
DAC
Debug
Display
DMA
EDAC
eSPI
Ethernet
st,stm32-ethernet-controllerhas been introduced to ease interoperability withst,stm32-mdio.
Firmware
Flash controller
File system
Fuel gauge
GNSS
GPIO
IEEE 802.15.4 HDLC RCP interface
I2C
I2S
I3C
IEEE 802.15.4
Input
Interrupt controller
LED
LED strip
Mailbox
MDIO
Memory controller
MFD
MIPI DBI
Miscellaneous
Modem
Multi-bit SPI
MTD
Networking
Octal SPI
Pin control
Power management
Power domain
PSI5
PWM
Regulator
Reset controller
RNG
RTC
SDHC
Sensors
SENT
Serial controller
SPI
Stepper
System controller
Tachometer
TCPC
Timer
USB
Video
Virtio
Watchdog
Wi-Fi
New Samples
Other notable changes
Added support for Armv8.1-M MPU’s PXN (Privileged Execute Never) attribute. With this, the MPU attributes for
__ramfuncand__ram_text_relocwere modified such that, PXN attribute is set for these regions if compiled withCONFIG_ARM_MPU_PXNandCONFIG_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_i2cdevicetree 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.