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.
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
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
New Drivers
Input
Interrupt controller
STM32 EXTI interrupt/event controller (
st,stm32-exti
) has a dedicated driver and API now, separate from STM32 GPIO Interrupt Control driver.
- MFD
IRQ support has been added for X-Power AXP2101 MFD device. It gets automatically enabled as soon as device-tree property
int-gpios
is defined on the device node.Support for the power button found on the X-Power AXP2101 MFD is added and can be enabled via
MFD_AXP2101_POWER_BUTTON
. This feature requires interrupt support to be enabled.
RTC
STM32 RTC driver has been updated to use the new STM32 EXTI interrupt controller API
Sensors
New Samples
Added a new sample Operational Amplifier (OPAMP) output measure sample showing how to use the opamp device driver.
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.
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
).