Zephyr 4.3.0 (Working Draft)
We are pleased to announce the release of Zephyr version 4.3.0.
Major enhancements with this release include:
An overview of the changes required or recommended when migrating your application from Zephyr v4.2.0 to Zephyr v4.3.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
The TinyCrypt library was removed as the upstream version is no longer maintained. PSA Crypto API is now the recommended cryptographic library for Zephyr.
The legacy pipe object API was removed. Use the new pipe API instead.
bt_le_set_auto_conn
CONFIG_BT_BUF_ACL_RX_COUNT
ok
enum value has now been removed completely frombase.yaml
bindingstatus
property in devicetree.STM32 LPTIM clock source selection through Kconfig was removed. Device Tree must now be used instead. Affected Kconfig symbols:
CONFIG_STM32_LPTIM_CLOCK_LSI
/CONFIG_STM32_LPTIM_CLOCK_LSI
Deprecated APIs and options
maxim,ds3231
is deprecated in favor ofmaxim,ds3231-rtc
.Providing a third agument to
SPI_CONFIG_DT
,SPI_CONFIG_DT_INST
,SPI_DT_SPEC_GET
,SPI_DT_SPEC_INST_GET
is deprecated. Providing a second argument toSPI_CS_CONTROL_INIT
is deprecated. Use new DT propertiesspi-cs-setup-delay-ns
andspi-cs-hold-delay-ns
to specify delay instead.bt_hci_bus
was deprecated as it was not used.BT_DT_HCI_BUS_GET
should be used instead.CONFIG_BT_AUTO_PHY_UPDATE
was deprecated and has been replaced with role-specific (central vs peripheral) options that allow specifying exactly which PHY is preferred for automatic updates.CONFIG_POSIX_READER_WRITER_LOCKS
is deprecated. UseCONFIG_POSIX_RW_LOCKS
instead.bt_ctlr_set_public_addr()
is deprecated in favor of usingbt_hci_cp_vs_write_bd_addr
for setting the public Bluetooth device address.
New APIs and options
Architectures
CONFIG_ARCH_HAS_HW_SHADOW_STACK
x86 Intel CET support
ARM (Cortex-M) system state save/restore primitives
z_arm_save_scb_context()
/z_arm_restore_scb_context()
z_arm_save_mpu_context()
/z_arm_restore_mpu_context()
Existing
z_arm_save_fp_context()
andz_arm_save_fp_context()
have also been updated
Bluetooth
Audio
bt_audio_codec_cfg
now contains a target_latency and a target_phy optionbt_bap_stream
now contains aniso
field as a reference to the ISO channel
Host
bt_iso_unicast_info
now contains acig_id
and acis_id
fieldbt_iso_broadcaster_info
now contains abig_handle
and abis_number
fieldbt_iso_sync_receiver_info
now contains abig_handle
and abis_number
fieldbt_le_ext_adv_info
now contains ansid
field with the Advertising Set ID.
CPUFreq
Introduced experimental dynamic CPU frequency scaling subsystem
Crypto
Display
Kernel
K_THREAD_HW_SHADOW_STACK_SIZE
K_THREAD_HW_SHADOW_STACK_ATTACH
k_thread_hw_shadow_stack_attach
LVGL (Light and Versatile Graphics Library)
Logging:
Added options to skip timestamp and level in log backends.
Added rate-limited logging macros to prevent log flooding when messages are generated frequently.
LOG_ERR_RATELIMIT
- Rate-limited error logging macro (convenience)LOG_WRN_RATELIMIT
- Rate-limited warning logging macro (convenience)LOG_INF_RATELIMIT
- Rate-limited info logging macro (convenience)LOG_DBG_RATELIMIT
- Rate-limited debug logging macro (convenience)LOG_HEXDUMP_ERR_RATELIMIT
- Rate-limited error hexdump macro (convenience)LOG_HEXDUMP_WRN_RATELIMIT
- Rate-limited warning hexdump macro (convenience)LOG_HEXDUMP_INF_RATELIMIT
- Rate-limited info hexdump macro (convenience)LOG_HEXDUMP_DBG_RATELIMIT
- Rate-limited debug hexdump macro (convenience)LOG_ERR_RATELIMIT_RATE
- Rate-limited error logging macro (explicit rate)LOG_WRN_RATELIMIT_RATE
- Rate-limited warning logging macro (explicit rate)LOG_INF_RATELIMIT_RATE
- Rate-limited info logging macro (explicit rate)LOG_DBG_RATELIMIT_RATE
- Rate-limited debug logging macro (explicit rate)LOG_HEXDUMP_ERR_RATELIMIT_RATE
- Rate-limited error hexdump macro (explicit rate)LOG_HEXDUMP_WRN_RATELIMIT_RATE
- Rate-limited warning hexdump macro (explicit rate)LOG_HEXDUMP_INF_RATELIMIT_RATE
- Rate-limited info hexdump macro (explicit rate)LOG_HEXDUMP_DBG_RATELIMIT_RATE
- Rate-limited debug hexdump macro (explicit rate)
Management
hawkBit
Modem
NVMEM
Introduced Non-Volatile Memory (NVMEM) subsystem
NVMEM_CELL_GET_BY_NAME
- and variantsNVMEM_CELL_GET_BY_IDX
- and variants
Networking
CoAP
Sockets
zsock_listen()
now implements thebacklog
parameter support. The TCP server socket will limit the number of pending incoming connections to that value.
Newlib
Opamp
Introduced opamp device driver APIs selected with
CONFIG_OPAMP
. It supports initial configuration through Devicetree and runtime configuration through vendor specific APIs.Added support for NXP OPAMP
nxp,opamp
.Added support for NXP OPAMP_FAST
nxp,opamp_fast
.
Power management
CONFIG_PM_S2RAM
has been refactored to be promptless. The application now only needs to enable any “suspend-to-ram” power state in the devicetree.The
PM_S2RAM_CUSTOM_MARKING
has been renamed toHAS_PM_S2RAM_CUSTOM_MARKING
and refactored to be promptless. This option is now selected by SoCs if they need it for their “suspend-to-ram” implementations.
Settings
Shell
State Machine Framework
Storage
Sys
Task Watchdog
Toolchain
__deprecated_version
Video
New Boards
Adafruit Industries, LLC
Feather RP2040 Adalogger (
adafruit_feather_adalogger_rp2040
)Feather RP2040 CAN bus (
adafruit_feather_canbus_rp2040
)Adafruit Feather ESP32 (
adafruit_feather_esp32
)Feather RP2040 RFM95 Lora (
adafruit_feather_rfm95_rp2040
)Feather RP2040 (
adafruit_feather_rp2040
)Itsybitsy RP2040 (
adafruit_itsybitsy_rp2040
)Metro RP2040 (
adafruit_metro_rp2040
)Adafruit Metro RP2350 (
adafruit_metro_rp2350
)Trinkey QT2040 (
adafruit_trinkey_qt2040
)
Advanced Micro Devices (AMD), Inc.
versalnet_apu (
versalnet_apu
)
Ai-Thinker Co., Ltd.
Ai-Thinker M62-12F development board (
ai_m62_12f
)Ai-Thinker ESP32-CAM (
esp32_cam
)
Ambiq Micro, Inc.
Apollo2 EVB (
apollo2_evb
)
Arduino
Arduino UNO Q (
arduino_uno_q
)
DFRobot
DFRobot Beetle RP2040 (
beetle_rp2040
)
Doctors of Intelligence & Technology
XT-ZB1 Zigbee 3.0 and BLE 5.0 Coexistence Module Development Kit (
dt_xt_zb1_devkit
)
Egis Technology Inc
ET171 Development Board (
egis_et171
)
Espressif Systems
ESP32-H2-DevKitM (
esp32h2_devkitm
)
FANKE Technology Co., Ltd.
FK723M1-ZGT6 (
fk723m1_zgt6
)
Firefly
ROC-RK3588-PC (Quad-core Cortex-A55) (
roc_rk3588_pc
)
FoBE Studio
Quill nRF52840 Mesh (
quill_nrf52840_mesh
)
Guangdong Embedsky Technology Co., Ltd.
TQ H503A (
tq_h503a
)
Infineon Technologies
PSOC Control C3M5 Evaluation Kit (
kit_psc3m5_evk
)kit_pse84_eval (
kit_pse84_eval
)
Intel Corporation
Panther Lake H CRB (
intel_ptl_h_crb
)
Microchip Technology Inc.
PIC32CM JH01 Curiosity Nano+ Touch Evaluation Kit (
pic32cm_jh01_cnano
)PIC32CM JH01 Curiosity Pro (
pic32cm_jh01_cpro
)SAM E54 Xplained Pro (
sam_e54_xpro
)
Nuvoton Technology Corporation
NUMAKER M5531 (
numaker_m5531
)
NXP Semiconductors
FRDM-IMX91 (
frdm_imx91
)FRDM-IMX93 (
frdm_imx93
)FRDM-K32L2B3 (
frdm_k32l2b3
)FRDM-MCXA266 (
frdm_mcxa266
)FRDM-MCXA346 (
frdm_mcxa346
)FRDM-MCXA366 (
frdm_mcxa366
)FRDM-MCXW23 (
frdm_mcxw23
)i.MX91 QSB (
imx91_qsb
)i.MX95 15x15 EVK (
imx95_evk_15x15
)MCX-N9XX-EVK (
mcx_n9xx_evk
)MCX-N5XX-EVK (
mcx_n5xx_evk
)MCXW23-EVK (
mcxw23_evk
)
Panasonic Corporation
PAN B611 Evaluation Board (
panb611evb
)
Raspberry Pi Foundation
Raspberry Pi Debug Probe (
rpi_debug_probe
)
Renesas Electronics Corporation
RA4C1 Evaluation Kit (
ek_ra4c1
)RX261 Evaluation Kit (
ek_rx261
)RX261 Fast Prototyping Board (
fpb_rx261
)RX26T Motor Control Board (
mcb_rx26t
)RA8T2 Motor Control Kit (
mck_ra8t2
)Capacitive Touch Evaluation System for RA2L1 (
rssk_ra2l1
)
Seeed Technology Co., Ltd
Wio-WM1110 Dev Kit (
wio_wm1110_dev_kit
)XIAO NRF54L15 (
xiao_nrf54l15
)
Shanghai Ruiside Electronic Technology Co., Ltd.
ART-Pi (
art_pi
)
Shenzhen Holyiot Technology Co., Ltd.
YJ-17095 (
holyiot_yj17095
)
SiFli Technologies(Nanjing) Co., Ltd
SF32LB52-DevKit-LCD (
sf32lb52_devkit_lcd
)
Silicon Laboratories
BGM220 Explorer Kit (BGM220-EK4314A) (
bgm220_ek4314a
)EFM32PG23 Pro Kit (PG23-PK2504A) (
pg23_pk2504a
)EFM32PG28 Pro Kit (PG28-PK2506A) (
pg28_pk2506a
)SiWx917 Wi-Fi 6 and Bluetooth LE SoC Dev Kit (BRD2605A) (
siwx917_dk2605a
)EFR32xG22E Explorer Kit (xG22-EK2710A) (
xg22_ek2710a
)EFR32BG29 Bluetooth LE 4 dBm DCDC Boost WLCSP (BG29-RB4420A) (
bg29_rb4420a
)EFR32xG24 2.4 GHz 10 dBm (xG24-RB4186C) (
xg24_rb4186c
)EFR32xG24 2.4 GHz 20 dBm (xG24-RB4187C) (
xg24_rb4187c
)xGM240P 10 dBm Module Radio Board (xGM240-RB4316A) (
xgm240_rb4316a
)xGM240P 20 dBm Module Radio Board (xGM240-RB4317A) (
xgm240_rb4317a
)EFR32BG27 2.4 GHz 4 dBm DCDC Buck CSP (BG27-RB4110B) (
bg27_rb4110b
)EFR32BG27 2.4 GHz 4 dBm DCDC Boost CSP (BG27-RB4111B) (
bg27_rb4111b
)EFR32xG27 2.4 GHz 8 dBm (xG27-RB4194A) (
xg27_rb4194a
)EFR32xG28 868-915 MHz 20 dBm (xG28-RB4401C) (
xg28_rb4401c
)
SteelSeries
Apex Pro Mini (
apex_pro_mini
)
STMicroelectronics
Nucleo C092RC (
nucleo_c092rc
)STM32MP257F-DK Discovery Kit (
stm32mp257f_dk
)STM32WBA65I Discovery kit (
stm32wba65i_dk1
)
Texas Instruments
MSPM0G3519 Launchpad (
lp_mspm0g3519
)MSPM0L2228 Launchpad (
lp_mspm0l2228
)
Toradex AG
Verdin AM62 (
verdin_am62
)
Waveshare Electronics
RP2040-GEEK (
rp2040_geek
)RP2040-Keyboard-3 (
rp2040_keyboard_3
)RP2040-Matrix (
rp2040_matrix
)
WeAct Studio
Black Pill STM32H523 (
blackpill_h523ce
)WeAct Studio Black Pill STM32U585 Core Board (
blackpill_u585ci
)STM32WB55 Core Board V1.0 (
weact_stm32wb55_core
)WeAct Studio ESP32-S3-B (
weact_esp32s3_b
)
New Shields
New Drivers
ADC
ARM architecture
Cache
Charger
Clock control
Comparator
Counter
CPU
CRC
Cryptographic accelerator
DAC
Debug
Display
DMA
Ethernet
Flash controller
File system
Fuel gauge
GPIO
Hardware information
I2C
I3C
IEEE 802.15.4
Input
Interrupt controller
LED
LED strip
Mailbox
MDIO
Memory controller
sifli,sf32lb-mpi
MFD
Miscellaneous
Modem
MTD
OPAMP
Pin control
Power management
Power domain
PWM
Quad SPI
Regulator
Reserved memory
Reset controller
Retained memory
RNG
RTC
SDHC
Sensors
Serial controller
SPI
System controller
Timer
USB
Video
Watchdog
Wi-Fi
New Samples
Libraries / Subsystems
Logging:
Added hybrid rate-limited logging macros to prevent log flooding when messages are generated frequently. The system provides both convenience macros (using default rate from
CONFIG_LOG_RATELIMIT_INTERVAL_MS
) and explicit rate macros (with custom rate parameter). This follows Linux’sprintk_ratelimited
pattern while providing more flexibility. The rate limiting is per-macro-call-site, meaning that each unique call to a rate-limited macro has its own independent rate limit. Rate-limited logging can be globally enabled/disabled viaCONFIG_LOG_RATELIMIT
. When rate limiting is disabled, the behavior can be controlled viaCONFIG_LOG_RATELIMIT_FALLBACK
to either log all messages or drop them completely. For more details, see Rate-limited logging.
Mbed TLS
Kconfig
CONFIG_PSA_CRYPTO
is added to simplify the enablement of a PSA Crypto API provider. This is TF-M ifCONFIG_BUILD_WITH_TFM
is enabled, or Mbed TLS otherwise.CONFIG_PSA_CRYPTO_PROVIDER_TFM
is set in the former case whileCONFIG_PSA_CRYPTO_PROVIDER_MBEDTLS
is set in the latter.CONFIG_PSA_CRYPTO_PROVIDER_CUSTOM
is also added to allow end users to provide a custom solution.
Secure storage
The experimental status has been removed. (GitHub #96483)
Other notable changes
Nordic Semiconductor nRF54L09 PDK (
nrf54l09pdk
), which only targeted an emulator, has been removed from the tree. It will be replaced with a proper board definition as soon as it’s available.Removed support for Nordic Semiconductor nRF54L20 PDK (
nrf54l20pdk
) since it is replaced with nRF54LM20 DK (nrf54lm20dk
).