The driver in tree is for u-blox M8 devices, not M10. The M10 series devices (from Protocol Version 23.01) use a different, non backwards compatible interface for configuring the modem behaviour. Of the two boards tested in the original PR, the "VMU RT1170" is explicitly listed as having a u-blox NEO-M8N modem, while I have been unable to find any information online about the "FMURT6" board. Leaving the naming as-is will cause problems when M10 drivers are contributed. Signed-off-by: Jordan Yates <jordan@embeint.com>
2043 lines
90 KiB
ReStructuredText
2043 lines
90 KiB
ReStructuredText
:orphan:
|
||
|
||
.. _zephyr_3.7:
|
||
|
||
Zephyr 3.7.0
|
||
############
|
||
|
||
We are pleased to announce the release of Zephyr version 3.7.0.
|
||
|
||
This release is the last non-maintenance 3.x release and, as such, will be the next
|
||
:ref:`Long Term Support (LTS) release <release_process_lts>`.
|
||
|
||
Major enhancements with this release include:
|
||
|
||
* A new, completely :ref:`overhauled hardware model <hw_model_v2>` has been introduced.
|
||
It changes the way both SoCs and boards are named, defined and constructed in Zephyr.
|
||
Additional information can be found in the :ref:`board_porting_guide`.
|
||
* A long-awaited :ref:`HTTP Server <http_server_interface>` library, and associated service API,
|
||
allow to easily implement HTTP/1.1 and HTTP/2 servers in Zephyr. Resources can be registered
|
||
statically or dynamically, and WebSocket support is included.
|
||
* :ref:`POSIX support <posix_support>` has been extended, with most Options of the IEEE 1003-2017
|
||
:ref:`System Interfaces <posix_system_interfaces_required>` receiving support, as well as most
|
||
Options and Option groups required for :ref:`PSE51 <posix_aep_pse51>`,
|
||
:ref:`PSE52 <posix_aep_pse52>`, and :ref:`PSE53 <posix_aep_pse53>`.
|
||
* Bluetooth Host has been extended with support for the Nordic UART Service (NUS), Hands-free Audio
|
||
Gateway (AG), Advanced Audio Distribution Profile (A2DP), and Audio/Video Distribution Transport
|
||
Protocol (AVDTP).
|
||
* Sensor abstraction model has been overhauled to adopt a
|
||
:ref:`read-then-decode approach <sensor-read-and-decode>` that enables more types of sensors and
|
||
data flows than the previous fetch/get APIs.
|
||
* A new :ref:`LLEXT Extension Developer Kit (EDK) <llext_build_edk>` makes it easier to develop and
|
||
integrate custom extensions into Zephyr, including outside of the Zephyr tree.
|
||
* :ref:`Native simulator <native_sim>` now supports leveraging the native host networking stack
|
||
without having to rely on a complex setup of the host environment.
|
||
* Trusted Firmware-M (TF-M) 2.1.0 and Mbed TLS 3.6.0 have been integrated into Zephyr.
|
||
Both of these versions are LTS releases. What's more, :ref:`psa_crypto` has been adopted as a replacement
|
||
for TinyCrypt and provides enhanced security and performance.
|
||
* A new experimental implementation of the :ref:`Precision Time Protocol <ptp_interface>` (PTP, IEEE
|
||
1588) allows to synchronize time across devices with sub-microsecond accuracy.
|
||
* New documentation pages have been introduced to help developers setup their local development
|
||
environment for :ref:`vscode_ide` and :ref:`clion_ide`.
|
||
|
||
An overview of the changes required or recommended when migrating your application from Zephyr
|
||
v3.6.0 to Zephyr v3.7.0 can be found in the separate :ref:`migration guide<migration_3.7>`.
|
||
|
||
While you may refer to release notes from previous 3.x releases for a full change log, other major
|
||
enhancements and changes since previous LTS release, Zephyr 2.7.0, include:
|
||
|
||
* Added support for Picolibc as the new default C library.
|
||
* Added support for the following types of hardware peripherals:
|
||
|
||
* 1-Wire
|
||
* Battery Charger
|
||
* Cellular Modem
|
||
* Fuel Gauge
|
||
* GNSS
|
||
* Hardware Spinlock
|
||
* I3C
|
||
* RTC (Real Time Clock)
|
||
* SMBus
|
||
|
||
* Added support for snippets. Snippets are common configuration settings that can be used across
|
||
platforms.
|
||
* Added support for Linkable Loadable Extensions (LLEXT).
|
||
* Summary of breaking changes (refer to release notes and migration guides from previous release
|
||
notes for more details):
|
||
|
||
* All Zephyr public headers have been moved to :file:`include/zephyr`, meaning they need to be
|
||
prefixed with ``<zephyr/...>`` when included.
|
||
* Pinmux API has been removed. Pin control needs to be used as its replacement, refer to
|
||
:ref:`pinctrl-guide` for more details.
|
||
|
||
* The following deprecated or experimental features have been removed:
|
||
|
||
* 6LoCAN
|
||
* civetweb module. See Zephyr 3.7's new :ref:`http_server_interface` as a replacement.
|
||
* tinycbor module. You may use zcbor as a replacement.
|
||
|
||
The following sections provide detailed lists of changes by component.
|
||
|
||
Security Vulnerability Related
|
||
******************************
|
||
The following CVEs are addressed by this release:
|
||
|
||
More detailed information can be found in:
|
||
https://docs.zephyrproject.org/latest/security/vulnerabilities.html
|
||
|
||
* CVE-2024-3077 `Zephyr project bug tracker GHSA-gmfv-4vfh-2mh8
|
||
<https://github.com/zephyrproject-rtos/zephyr/security/advisories/GHSA-gmfv-4vfh-2mh8>`_
|
||
|
||
* CVE-2024-3332 `Zephyr project bug tracker GHSA-jmr9-xw2v-5vf4
|
||
<https://github.com/zephyrproject-rtos/zephyr/security/advisories/GHSA-jmr9-xw2v-5vf4>`_
|
||
|
||
* CVE-2024-4785: Under embargo until 2024-08-07
|
||
|
||
* CVE-2024-5754: Under embargo until 2024-09-04
|
||
|
||
* CVE-2024-5931: Under embargo until 2024-09-10
|
||
|
||
* CVE-2024-6135: Under embargo until 2024-09-11
|
||
|
||
* CVE-2024-6137: Under embargo until 2024-09-11
|
||
|
||
* CVE-2024-6258: Under embargo until 2024-09-05
|
||
|
||
* CVE-2024-6259: Under embargo until 2024-09-12
|
||
|
||
* CVE-2024-6442: Under embargo until 2024-09-22
|
||
|
||
* CVE-2024-6443: Under embargo until 2024-09-22
|
||
|
||
* CVE-2024-6444: Under embargo until 2024-09-22
|
||
|
||
API Changes
|
||
***********
|
||
|
||
Removed APIs in this release
|
||
============================
|
||
|
||
* The Bluetooth subsystem specific debug symbols are removed. They have been replaced with the
|
||
Zephyr logging ones.
|
||
|
||
* Removed deprecated ``pcie_probe`` and ``pcie_bdf_lookup`` functions from the PCIe APIs.
|
||
|
||
* Removed deprecated ``CONFIG_EMUL_EEPROM_AT2X`` Kconfig option.
|
||
|
||
* Removed ``pm_device_state_lock``, ``pm_device_state_is_locked`` and ``pm_device_state_unlock``
|
||
functions from the Device PM APIs.
|
||
|
||
* Removed deprecated MCUmgr transport API functions: ``zephyr_smp_rx_req``,
|
||
``zephyr_smp_alloc_rsp`` and ``zephyr_smp_free_buf``.
|
||
|
||
Deprecated in this release
|
||
==========================
|
||
|
||
* Bluetooth advertiser options :code:`BT_LE_ADV_OPT_USE_NAME` and
|
||
:code:`BT_LE_ADV_OPT_FORCE_NAME_IN_AD` are now deprecated. That means the following macro are
|
||
deprecated:
|
||
|
||
* :c:macro:`BT_LE_ADV_CONN_NAME`
|
||
* :c:macro:`BT_LE_ADV_CONN_NAME_AD`
|
||
* :c:macro:`BT_LE_ADV_NCONN_NAME`
|
||
* :c:macro:`BT_LE_EXT_ADV_CONN_NAME`
|
||
* :c:macro:`BT_LE_EXT_ADV_SCAN_NAME`
|
||
* :c:macro:`BT_LE_EXT_ADV_NCONN_NAME`
|
||
* :c:macro:`BT_LE_EXT_ADV_CODED_NCONN_NAME`
|
||
|
||
Application developers will now need to set the advertised name themselves by updating the
|
||
advertising data or the scan response data.
|
||
|
||
* CAN
|
||
|
||
* Deprecated the :c:func:`can_calc_prescaler` API function, as it allows for bitrate
|
||
errors. Bitrate errors between nodes on the same network leads to them drifting apart after the
|
||
start-of-frame (SOF) synchronization has taken place, leading to bus errors.
|
||
* Deprecated the :c:func:`can_get_min_bitrate` and :c:func:`can_get_max_bitrate` API functions in
|
||
favor of :c:func:`can_get_bitrate_min` and :c:func:`can_get_bitrate_max`.
|
||
* Deprecated the :c:macro:`CAN_MAX_STD_ID` and :c:macro:`CAN_MAX_EXT_ID` macros in favor of
|
||
:c:macro:`CAN_STD_ID_MASK` and :c:macro:`CAN_EXT_ID_MASK`.
|
||
|
||
* PM
|
||
|
||
* Deprecated :kconfig:option:`CONFIG_PM_DEVICE_RUNTIME_EXCLUSIVE`. Similar behavior can be achieved
|
||
using :kconfig:option:`CONFIG_PM_DEVICE_SYSTEM_MANAGED`.
|
||
|
||
.. _zephyr_3.7_posix_api_deprecations:
|
||
|
||
* POSIX API
|
||
|
||
* Deprecated :c:macro:`PTHREAD_BARRIER_DEFINE` has been removed.
|
||
* Deprecated :c:macro:`EFD_IN_USE` and :c:macro:`EFD_FLAGS_SET` have been removed.
|
||
|
||
* In efforts to use Kconfig options that map directly to the Options and Option Groups in
|
||
IEEE 1003.1-2017, the following Kconfig options have been deprecated (replaced by):
|
||
|
||
* :kconfig:option:`CONFIG_EVENTFD_MAX` (:kconfig:option:`CONFIG_ZVFS_EVENTFD_MAX`)
|
||
* :kconfig:option:`CONFIG_FNMATCH` (:kconfig:option:`CONFIG_POSIX_C_LIB_EXT`)
|
||
* :kconfig:option:`CONFIG_GETOPT` (:kconfig:option:`CONFIG_POSIX_C_LIB_EXT`)
|
||
* :kconfig:option:`CONFIG_MAX_PTHREAD_COUNT` (:kconfig:option:`CONFIG_POSIX_THREAD_THREADS_MAX`)
|
||
* :kconfig:option:`CONFIG_MAX_PTHREAD_KEY_COUNT` (:kconfig:option:`CONFIG_POSIX_THREAD_KEYS_MAX`)
|
||
* :kconfig:option:`CONFIG_MAX_TIMER_COUNT` (:kconfig:option:`CONFIG_POSIX_TIMER_MAX`)
|
||
* :kconfig:option:`CONFIG_POSIX_LIMITS_RTSIG_MAX` (:kconfig:option:`CONFIG_POSIX_RTSIG_MAX`)
|
||
* :kconfig:option:`CONFIG_POSIX_CLOCK` (:kconfig:option:`CONFIG_POSIX_CLOCK_SELECTION`,
|
||
:kconfig:option:`CONFIG_POSIX_CPUTIME`, :kconfig:option:`CONFIG_POSIX_MONOTONIC_CLOCK`,
|
||
:kconfig:option:`CONFIG_POSIX_TIMERS`, and :kconfig:option:`CONFIG_POSIX_TIMEOUTS`)
|
||
* :kconfig:option:`CONFIG_POSIX_FS` (:kconfig:option:`CONFIG_POSIX_FILE_SYSTEM`)
|
||
* :kconfig:option:`CONFIG_POSIX_MAX_FDS` (:kconfig:option:`CONFIG_POSIX_OPEN_MAX` and
|
||
:kconfig:option:`CONFIG_ZVFS_OPEN_MAX`)
|
||
* :kconfig:option:`CONFIG_POSIX_MAX_OPEN_FILES` (:kconfig:option:`CONFIG_POSIX_OPEN_MAX` and
|
||
:kconfig:option:`CONFIG_ZVFS_OPEN_MAX`)
|
||
* :kconfig:option:`CONFIG_POSIX_MQUEUE` (:kconfig:option:`CONFIG_POSIX_MESSAGE_PASSING`)
|
||
* :kconfig:option:`CONFIG_POSIX_PUTMSG` (:kconfig:option:`CONFIG_XOPEN_STREAMS`)
|
||
* :kconfig:option:`CONFIG_POSIX_SIGNAL` (:kconfig:option:`CONFIG_POSIX_SIGNALS`)
|
||
* :kconfig:option:`CONFIG_POSIX_SYSCONF` (:kconfig:option:`CONFIG_POSIX_SINGLE_PROCESS`)
|
||
* :kconfig:option:`CONFIG_POSIX_UNAME` (:kconfig:option:`CONFIG_POSIX_SINGLE_PROCESS`)
|
||
* :kconfig:option:`CONFIG_PTHREAD` (:kconfig:option:`CONFIG_POSIX_THREADS`)
|
||
* :kconfig:option:`CONFIG_PTHREAD_BARRIER` (:kconfig:option:`CONFIG_POSIX_BARRIERS`)
|
||
* :kconfig:option:`CONFIG_PTHREAD_COND` (:kconfig:option:`CONFIG_POSIX_THREADS`)
|
||
* :kconfig:option:`CONFIG_PTHREAD_IPC` (:kconfig:option:`CONFIG_POSIX_THREADS`)
|
||
* :kconfig:option:`CONFIG_PTHREAD_KEY` (:kconfig:option:`CONFIG_POSIX_THREADS`)
|
||
* :kconfig:option:`CONFIG_PTHREAD_MUTEX` (:kconfig:option:`CONFIG_POSIX_THREADS`)
|
||
* :kconfig:option:`CONFIG_PTHREAD_RWLOCK` (:kconfig:option:`CONFIG_POSIX_READER_WRITER_LOCKS`)
|
||
* :kconfig:option:`CONFIG_PTHREAD_SPINLOCK` (:kconfig:option:`CONFIG_POSIX_SPIN_LOCKS`)
|
||
* :kconfig:option:`CONFIG_SEM_NAMELEN_MAX` (:kconfig:option:`CONFIG_POSIX_SEM_NAMELEN_MAX`)
|
||
* :kconfig:option:`CONFIG_SEM_VALUE_MAX` (:kconfig:option:`CONFIG_POSIX_SEM_VALUE_MAX`)
|
||
* :kconfig:option:`CONFIG_TIMER` (:kconfig:option:`CONFIG_POSIX_TIMERS`)
|
||
* :kconfig:option:`CONFIG_TIMER_DELAYTIMER_MAX` (:kconfig:option:`CONFIG_POSIX_DELAYTIMER_MAX`)
|
||
|
||
Please see the :ref:`POSIX API migration guide <zephyr_3.7_posix_api_migration>`.
|
||
|
||
* SPI
|
||
|
||
* Deprecated :c:func:`spi_is_ready` API function has been removed.
|
||
* Deprecated :c:func:`spi_transceive_async` API function has been removed.
|
||
* Deprecated :c:func:`spi_read_async` API function has been removed.
|
||
* Deprecated :c:func:`spi_write_async` API function has been removed.
|
||
|
||
Architectures
|
||
*************
|
||
|
||
* ARC
|
||
|
||
* Added ARC MWDT toolchain support for ARC-V targets
|
||
* Added HW memory barrier API support for multicore targets
|
||
* Enabled TLS by default if C++ is used in case of ARC MWDT toolchain
|
||
* Fixed the issue when mbedtls failed to build with ARC MWDT toolchain & minimal LibC due to
|
||
incorrect define which mark support of bounds-checking interfaces C library extension
|
||
* Fixed device deferred initialization in case of ARC MWDT toolchain
|
||
|
||
* ARM
|
||
|
||
* Added initial support for Cortex-M85 Core
|
||
|
||
* ARM64
|
||
|
||
* Implemented symbol names in the backtraces, enable by selecting :kconfig:option:`CONFIG_SYMTAB`
|
||
|
||
* Add compiler tuning for Cortex-R82
|
||
|
||
* RISC-V
|
||
|
||
* The fatal error message triggered from a fault now contains the callee-saved-registers states.
|
||
|
||
* Implemented stack unwinding
|
||
|
||
* Frame-pointer can be selected to enable precise stack traces at the expense of slightly
|
||
increased size and decreased speed.
|
||
|
||
* Symbol names can be enabled by selecting :kconfig:option:`CONFIG_EXCEPTION_STACK_TRACE_SYMTAB`
|
||
|
||
* Xtensa
|
||
|
||
* Added support to save/restore HiFi AudioEngine registers.
|
||
|
||
* Added support to utilize MPU.
|
||
|
||
* Added support to automatically generate interrupt handlers.
|
||
|
||
* Added support to generate vector table at build time to be included in the linker script.
|
||
|
||
* Added kconfig :kconfig:option:`CONFIG_XTENSA_BREAK_ON_UNRECOVERABLE_EXCEPTIONS` to guard
|
||
using break instruction for unrecoverable exceptions. Enabling the break instruction via
|
||
this kconfig may result in an infinite interrupt storm which may hinder debugging efforts.
|
||
|
||
* Fixed an issue where passing the 7th argument via syscall was handled incorrectly.
|
||
|
||
* Fixed an issue where :c:func:`arch_user_string_nlen` accessing unmapped memory resulted
|
||
in an unrecoverable exception.
|
||
|
||
Kernel
|
||
******
|
||
|
||
* Added :c:func:`k_uptime_seconds` function to simplify ``k_uptime_get() / 1000`` usage.
|
||
|
||
* Added :c:func:`k_realloc`, that uses kernel heap to implement traditional :c:func:`realloc`
|
||
semantics.
|
||
|
||
* Devices can now store devicetree metadata such as nodelabels by turning on
|
||
:kconfig:option:`CONFIG_DEVICE_DT_METADATA`. This option may be useful in
|
||
e.g. shells as devices can be obtained using human-friendly names thanks to
|
||
APIs like :c:func:`device_get_by_dt_nodelabel`.
|
||
|
||
* Any device initialization can be deferred if its associated devicetree node
|
||
has the special ``zephyr,deferred-init`` property set. The device can be
|
||
initialized later in time by using :c:func:`device_init`.
|
||
|
||
* The declaration of statically allocated thread stacks has been updated to utilize
|
||
:c:macro:`K_THREAD_STACK_LEN` for both single thread stack declaration and array thread
|
||
stack declarations. This ensures correct alignment for all thread stacks. For user
|
||
threads, this may increase the size of the statically allocated stack objects depending
|
||
on architecture alignment requirements.
|
||
|
||
* Fix an edge case deadlock in :c:func:`k_thread_abort` (and join)
|
||
where racing ISRs on SMP systems could become stuck spinning to
|
||
signal each other's interrupted threads.
|
||
|
||
* Fix a bug where :kconfig:option:`CONFIG_SCHED_SCALABLE` and
|
||
:kconfig:option:`CONFIG_SCHED_DEADLINE` would corrupt the
|
||
scheduling queue when used together.
|
||
|
||
Bluetooth
|
||
*********
|
||
|
||
* Audio
|
||
|
||
* Removed ``err`` from :c:struct:`bt_bap_broadcast_assistant_cb.recv_state_removed` as it was
|
||
redundant.
|
||
|
||
* The broadcast_audio_assistant sample has been renamed to bap_broadcast_assistant.
|
||
The broadcast_audio_sink sample has been renamed to bap_broadcast_sink.
|
||
The broadcast_audio_source sample has been renamed to bap_broadcast_source.
|
||
The unicast_audio_client sample has been renamed to bap_unicast_client.
|
||
The unicast_audio_server sample has been renamed to bap_unicast_server.
|
||
The public_broadcast_sink sample has been renamed to pbp_public_broadcast_sink.
|
||
The public_broadcast_source sample has been renamed to pbp_public_broadcast_source.
|
||
|
||
* The CAP Commander and CAP Initiator now no longer require CAS to be discovered for
|
||
:code:`BT_CAP_SET_TYPE_AD_HOC` sets. This allows applications to use these APIs on e.g.
|
||
BAP Unicast Servers that do not implement the CAP Acceptor role.
|
||
|
||
* Host
|
||
|
||
* Added Nordic UART Service (NUS), enabled by the :kconfig:option:`CONFIG_BT_ZEPHYR_NUS`.
|
||
This Service exposes the ability to declare multiple instances of the GATT service,
|
||
allowing multiple serial endpoints to be used for different purposes.
|
||
|
||
* Implemented Hands-free Audio Gateway (AG), enabled by the :kconfig:option:`CONFIG_BT_HFP_AG`.
|
||
It works as a device that is the gateway of the audio. The typical device acting as Audio
|
||
Gateway is a cellular phone. It controls the device (Hands-free Unit), that is the remote
|
||
audio input and output mechanism.
|
||
|
||
* Implemented Advanced Audio Distribution Profile (A2DP) and Audio/Video Distribution Transport
|
||
Protocol (AVDTP), A2DP is enabled by :kconfig:option:`CONFIG_BT_A2DP`, AVDTP is enabled
|
||
by :kconfig:option:`CONFIG_BT_AVDTP`. They implement the protocols and procedures that
|
||
realize distribution of audio content of high quality in mono, stereo, or multi-channel modes.
|
||
A typical use case is the streaming of music content from a stereo music player to headphones
|
||
or speakers. The audio data is compressed in a proper format for efficient use of the limited
|
||
bandwidth.
|
||
|
||
* Reworked the transmission path for data and commands. The "BT TX" thread has been removed, along
|
||
with the buffer pools for HCI fragments and L2CAP segments. All communication with the
|
||
Controller is now exclusively done in the system workqueue context.
|
||
|
||
* :kconfig:option:`CONFIG_BT_PER_ADV_SYNC_TRANSFER_RECEIVER` and
|
||
:kconfig:option:`CONFIG_BT_PER_ADV_SYNC_TRANSFER_SENDER` now depend on
|
||
:kconfig:option:`CONFIG_BT_CONN` as they do not work without connections.
|
||
|
||
* Improve :c:func:`bt_foreach_bond` to support Bluetooth Classic key traversal.
|
||
|
||
* HCI Drivers
|
||
|
||
* Completely redesigned HCI driver interface. See the Bluetooth HCI section in
|
||
:ref:`migration_3.7` for more information.
|
||
* Added support for Ambiq Apollo3 Blue series.
|
||
* Added support for NXP RW61x.
|
||
* Added support for Infineon CYW208XX.
|
||
* Added support for Renesas SmartBond DA1469x.
|
||
* Removed unmaintained B91 driver.
|
||
* Added support for NXP IW612 on boards mimxrt1170_evkb and mimxrt1040_evk.
|
||
It can be enabled by :kconfig:option:`CONFIG_BT_NXP_NW612`.
|
||
|
||
Boards & SoC Support
|
||
********************
|
||
|
||
* Added support for these SoC series:
|
||
|
||
* Added support for Ambiq Apollo3 Blue and Apollo3 Blue Plus SoC series.
|
||
* Added support for Synopsys ARC-V RMX1xx simulation platform.
|
||
* Added support for STM32H7R/S SoC series.
|
||
* Added support for NXP mke15z7, mke17z7, mke17z9, MCXNx4x, RW61x
|
||
* Added support for Analog Devices MAX32 SoC series.
|
||
* Added support for Infineon Technologies AIROC |trade| CYW20829 Bluetooth LE SoC series.
|
||
* Added support for MediaTek MT8195 Audio DSPs
|
||
* Added support for Nuvoton Numaker M2L31X SoC series.
|
||
* Added support for the Microchip PolarFire ICICLE Kit SMP variant.
|
||
* Added support for Renesas RA8 series SoC.
|
||
|
||
* Made these changes in other SoC series:
|
||
|
||
* Intel ACE Audio DSP: Use dedicated registers to report boot status instead of arbitrary memory.
|
||
* ITE: Rename the Kconfig symbol for all ITE SoC variants.
|
||
* STM32: Enabled ART Accelerator, I-cache, D-cache and prefetch on compatible series.
|
||
* STM32H5: Added support for Stop mode and :kconfig:option:`CONFIG_PM`.
|
||
* STM32WL: Decreased Sub-GHz SPI frequency from 12 to 8MHz.
|
||
* STM32C0: Added support for :kconfig:option:`CONFIG_POWEROFF`.
|
||
* STM32U5: Added support for Stop3 mode.
|
||
* Synopsys:
|
||
|
||
* nsim: split nsim platform for arc_classic (ARCv2 and ARCv3 ISA based) and arc_v (RISC-V ISA based)
|
||
* nsim/nsim_hs5x/smp: align sys clock frequency with other SMP nSIM configs
|
||
|
||
* NXP IMX8M: added resource domain controller support
|
||
* NXP s32k146: set RTC clock source to internal oscillator
|
||
* GD32F4XX: Fixed an incorrect uart4 irq number.
|
||
* Nordic nRF54L: Added support for the FLPR (fast lightweight processor) RISC-V CPU.
|
||
* Espressif: Removed idf-bootloader dependency from all ESP32 SoC variants.
|
||
* Espressif: Added Simple boot support for ESP32 SoC variants, which allows loading application
|
||
using a single binary image without a 2nd stage bootloader.
|
||
* Espressif: Re-worked and optimized all SoCs memory map.
|
||
* LiteX:
|
||
|
||
* Added support for :c:func:`sys_arch_reboot()`.
|
||
* :kconfig:option:`CONFIG_RISCV_ISA_EXT_A` is no longer erroneously y-selected.
|
||
* rp2040: The proprietary UART driver has been discontinued and replaced with PL011.
|
||
|
||
* Renesas RZ/T2M: Added default values for System Clock Control register.
|
||
|
||
* Added support for these boards:
|
||
|
||
* Added support for :ref:`Ambiq Apollo3 Blue board <apollo3_evb>`: ``apollo3_evb``.
|
||
* Added support for :ref:`Ambiq Apollo3 Blue Plus board <apollo3p_evb>`: ``apollo3p_evb``.
|
||
* Added support for :ref:`Raspberry Pi 5 board <rpi_5>`: ``rpi_5``.
|
||
* Added support for :ref:`Seeed Studio XIAO RP2040 board <xiao_rp2040>`: ``xiao_rp2040``.
|
||
* Added support for :ref:`Mikroe RA4M1 Clicker board <mikroe_clicker_ra4m1>`: ``mikroe_clicker_ra4m1``.
|
||
* Added support for :ref:`Arduino UNO R4 WiFi board <arduino_uno_r4>`: ``arduino_uno_r4_wifi``.
|
||
* Added support for :ref:`Renesas EK-RA8M1 board <ek_ra8m1>`: ``ek_ra8m1``.
|
||
* Added support for :ref:`ST Nucleo H533RE <nucleo_h533re_board>`: ``nucleo_h533re``.
|
||
* Added support for :ref:`ST STM32C0116-DK Discovery Kit <stm32c0116_dk_board>`: ``stm32c0116_dk``.
|
||
* Added support for :ref:`ST STM32H745I Discovery <stm32h745i_disco_board>`: ``stm32h745i_disco``.
|
||
* Added support for :ref:`ST STM32H7S78-DK Discovery <stm32h7s78_dk_board>`: ``stm32h7s78_dk``.
|
||
* Added support for :ref:`ST STM32L152CDISCOVERY board <stm32l1_disco_board>`: ``stm32l152c_disco``.
|
||
* Added support for :ref:`ST STEVAL STWINBX1 Development kit <steval_stwinbx1_board>`: ``steval_stwinbx1``.
|
||
* Added support for NXP boards: ``frdm_mcxn947``, ``ke17z512``, ``rd_rw612_bga``, ``frdm_rw612``, ``frdm_ke15z``, ``frdm_ke17z``
|
||
* Added support for :ref:`Synopsys ARC-V RMX1xx nSIM-based simulation platform <nsim_arc_v>`: ``nsim_arc_v/rmx100``.
|
||
* Added support for :ref:`Analog Devices MAX32690EVKIT <max32690_evkit>`: ``max32690evkit``.
|
||
* Added support for :ref:`Analog Devices MAX32680EVKIT <max32680_evkit>`: ``max32680evkit``.
|
||
* Added support for :ref:`Analog Devices MAX32672EVKIT <max32672_evkit>`: ``max32672evkit``.
|
||
* Added support for :ref:`Analog Devices MAX32672FTHR <max32672_fthr>`: ``max32672fthr``.
|
||
* Added support for :ref:`Analog Devices MAX32670EVKIT <max32670_evkit>`: ``max32670evkit``.
|
||
* Added support for :ref:`Analog Devices MAX32655EVKIT <max32655_evkit>`: ``max32655evkit``.
|
||
* Added support for :ref:`Analog Devices MAX32655FTHR <max32655_fthr>`: ``max32655fthr``.
|
||
* Added support for :ref:`Analog Devices AD-APARD32690-SL <ad_apard32690_sl>`: ``ad_apard32690_sl``.
|
||
* Added support for :ref:`Infineon Technologies CYW920829M2EVK-02 <cyw920829m2evk_02>`: ``cyw920829m2evk_02``.
|
||
* Added support for :ref:`Nuvoton Numaker M2L31KI board <nuvoton_m2l31ki>`: ``numaker_m2l31ki``.
|
||
* Added support for :ref:`Espressif ESP32-S2 DevKit-C <esp32s2_devkitc>`: ``esp32s2_devkitc``.
|
||
* Added support for :ref:`Espressif ESP32-S3 DevKit-C <esp32s3_devkitc>`: ``esp32s3_devkitc``.
|
||
* Added support for :ref:`Espressif ESP32-C6 DevKit-C <esp32c6_devkitc>`: ``esp32c6_devkitc``.
|
||
* Added support for :ref:`Waveshare ESP32-S3-Touch-LCD-1.28 <esp32s3_touch_lcd_1_28>`: ``esp32s3_touch_lcd_1_28``.
|
||
* Added support for :ref:`M5Stack ATOM Lite <m5stack_atom_lite>`: ``m5stack_atom_lite``.
|
||
* Added support for :ref:`CTHINGS.CO Connectivity Card nRF52840 <ctcc_nrf52840>`: ``ctcc_nrf52840``.
|
||
|
||
* Made these board changes:
|
||
|
||
* On :ref:`ST STM32H7B3I Discovery Kit <stm32h7b3i_dk_board>`: ``stm32h7b3i_dk_board``,
|
||
enabled full cache management, Chrom-ART, double frame buffer and full refresh for
|
||
optimal LVGL performance.
|
||
* On ST STM32 boards, stm32cubeprogrammer runner can now be used to program external
|
||
flash using ``--extload`` option.
|
||
* Add HEX file support for Linkserver to all NXP boards
|
||
* Updated the Linkserver west runner to reflect changes to the CLI of LinkServer v1.5.xx
|
||
* Add LinkServer support to NXP ``mimxrt1010_evk``, ``mimxrt1160_evk``, ``frdm_rw612``, ``rd_rw612_bga``, ``frdm_mcxn947``
|
||
* Introduced the simulated :ref:`nrf54l15bsim<nrf54l15bsim>` target.
|
||
* The nrf5x bsim targets now support BT LE Coded PHY.
|
||
* LLVM fuzzing support has been refactored while adding support for it in native_sim.
|
||
* nRF54H20 PDK (pre-release) converted to :ref:`nrf54h20dk_nrf54h20`
|
||
* PPR core target in :ref:`nrf54h20dk_nrf54h20` runs from RAM by default. A
|
||
new ``xip`` variant has been introduced which runs from MRAM (XIP).
|
||
* Refactored :ref:`beagleconnect_freedom` external antenna switch handling.
|
||
* Added Arduino dts node labels for the nRF5340 Audio DK.
|
||
* Changed the default revision of the nRF54L15 PDK from 0.2.1 to 0.3.0.
|
||
* In boards based on the nRF5340 SoC, replaced direct accesses to the register
|
||
that controls the network core Force-OFF signal with a module that uses an
|
||
on-off manager to keep track of the network core use and exposes its API
|
||
in ``<nrf53_cpunet_mgmt.h>``.
|
||
* Laird Connectivity boards are rebranded to Ezurio.
|
||
|
||
* Added support for the following shields:
|
||
|
||
* :ref:`adafruit_2_8_tft_touch_v2` (``adafruit_2_8_tft_touch_v2``)
|
||
* :ref:`adafruit_neopixel_grid_bff` (``adafruit_neopixel_grid_bff``)
|
||
* :ref:`arduino_uno_click` (``arduino_uno_click``)
|
||
* :ref:`dvp_fpc24_mt9m114` (``dvp_fpc24_mt9m114``)
|
||
* :ref:`lcd_par_s035` (``lcd_par_s035``)
|
||
* :ref:`mikroe_weather_click` (``mikroe_weather_click``)
|
||
* :ref:`nxp_btb44_ov5640` (``nxp_btb44_ov5640``)
|
||
* :ref:`reyax_lora` (``reyax_lora``)
|
||
* :ref:`rk043fn02h_ct` (``rk043fn02h_ct``)
|
||
* :ref:`rk043fn66hs_ctg` (``rk043fn66hs_ctg``)
|
||
* :ref:`rpi_pico_uno_flexypin` (``rpi_pico_uno_flexypin``)
|
||
* :ref:`seeed_xiao_expansion_board` (``seeed_xiao_expansion_board``)
|
||
* :ref:`seeed_xiao_round_display` (``seeed_xiao_round_display``)
|
||
* :ref:`sparkfun_carrier_asset_tracker` (``sparkfun_carrier_asset_tracker``)
|
||
* :ref:`st_b_lcd40_dsi1_mb1166` (``st_b_lcd40_dsi1_mb1166``)
|
||
* :ref:`waveshare_epaper` (``waveshare_epaper``)
|
||
* :ref:`x_nucleo_bnrg2a1` (``x_nucleo_bnrg2a1``)
|
||
|
||
Build system and Infrastructure
|
||
*******************************
|
||
|
||
* CI-enabled blackbox tests were added to verify the correctness of most Twister flags.
|
||
|
||
* A ``socs`` folder for applications has been introduced that allows for Kconfig fragments and
|
||
devicetree overlays that should apply to any board target using a particular SoC and board
|
||
qualifier (:github:`70418`). Support has also been added to sysbuild (:github:`71320`).
|
||
|
||
* :ref:`Board/SoC flashing configuration<flashing-soc-board-config>` settings have been added
|
||
(:github:`69748`).
|
||
|
||
* Deprecated the global CSTD cmake property in favor of the :kconfig:option:`CONFIG_STD_C`
|
||
choice to select the C Standard version. Additionally, subsystems can select a minimum
|
||
required C Standard version, with, for example, :kconfig:option:`CONFIG_REQUIRES_STD_C11`.
|
||
|
||
* Fixed issue with passing UTF-8 configs to applications using sysbuild (:github:`74152`).
|
||
|
||
* Fixed issue whereby domain file in sysbuild projects would be loaded and used with outdated
|
||
information if sysbuild configuration was changed, and ``west flash`` was ran directly after
|
||
(:github:`73864`).
|
||
|
||
* Fixed issue with Zephyr modules not being listed in sysbuild if they did not have a Kconfig
|
||
file set (:github:`72070`).
|
||
|
||
* Added sysbuild ``SB_CONFIG_COMPILER_WARNINGS_AS_ERRORS`` Kconfig option to turn on
|
||
"warning as error" toolchain flags for all images, if set (:github:`70217`).
|
||
|
||
* Fixed issue whereby files used in a project (e.g. devicetree overlays or Kconfig fragments)
|
||
were not correctly watched and CMake would not reconfigure if they were changed
|
||
(:github:`74655`).
|
||
|
||
* Added flash support for Intel Hex files for the LinkServer runner.
|
||
|
||
* Added sysbuild ``sysbuild/CMakeLists.txt`` entry point and added support for
|
||
``APPLICATION_CONFIG_DIR`` which allows for adjusting how sysbuild functions (:github:`72923`).
|
||
|
||
* Fixed issue with armfvp find path if it contained a colon-separated list (:github:`74868`).
|
||
|
||
* Fixed issue with version.cmake field sizes not being enforced (:github:`74357`).
|
||
|
||
* Fixed issue with sysbuild not clearing ``EXTRA_CONF_FILE`` before processing images which
|
||
prevented this option being passed on to the image (:github:`74082`).
|
||
|
||
* Added sysbuild root support which works similarly to the existing root module, adjusting paths
|
||
relative to ``APP_DIR`` (:github:`73390`).
|
||
|
||
* Added warning/error message for blobs that are missing (:github:`73051`).
|
||
|
||
* Fixed issue with correct python executable detection on some systems (:github:`72232`).
|
||
|
||
* Added support for enabling LTO for whole application (:github:`69519`).
|
||
|
||
* Fixed ``FILE_SUFFIX`` issues relating to double application of suffixes, non-application in
|
||
sysbuild and variable name clashes in CMake functions (:github:`70124`, :github:`71280`).
|
||
|
||
* Added support for new aggressive size optimisation flag (for GCC and Clang) using
|
||
:kconfig:option:`CONFIG_SIZE_OPTIMIZATIONS_AGGRESSIVE` (:github:`70511`).
|
||
|
||
* Fixed issue with printing out ``BUILD_VERSION`` if it was empty (:github:`70970`).
|
||
|
||
* Fixed sysbuild issue of ``sysbuild_cache_set()`` cmake function wrongly detecting partial
|
||
matches for de-duplication (:github:`71381`).
|
||
|
||
* Fixed issue with detecting wrong ``VERSION`` file (:github:`71385`).
|
||
|
||
* Added support for disabling output disassembly having the source code in using
|
||
:kconfig:option:`CONFIG_OUTPUT_DISASSEMBLY_WITH_SOURCE` (:github:`71535`).
|
||
|
||
* Twister now supports ``--flash-before`` parameter that allows flashing DUT before
|
||
opening serial port (:github:`47037`).
|
||
|
||
Drivers and Sensors
|
||
*******************
|
||
|
||
* ADC
|
||
|
||
* Added ``ADC_DT_SPEC_*BY_NAME()`` macros to get ADC IO-channel information from DT by name.
|
||
* Added support for voltage biasing:
|
||
|
||
* Added a :kconfig:option:`CONFIG_ADC_CONFIGURABLE_VBIAS_PIN` selected by drivers that support
|
||
voltage biasing.
|
||
* Added a ``zephyr,vbias-pins`` property to the adc-controller base binding to describe voltage
|
||
bias pins.
|
||
* Implemented for the TI ADC114s08 ADC driver.
|
||
* Sample changes
|
||
|
||
* Renamed existing ADC sample to adc_dt.
|
||
* Added a new sample called adc_sequence that shows more of the runtime
|
||
:c:struct:`adc_sequence` features.
|
||
* New ADC Drivers
|
||
|
||
* Added driver for the ENE KB1200.
|
||
* Added driver for the NXP GAU ADC.
|
||
* ADI AD559x changes
|
||
|
||
* Added support for ADI's ad5593.
|
||
* Added I2C bus support for ADI ad559x.
|
||
* Added configuration of internal reference voltage value to ad559x to support
|
||
calls of :c:func:`adc_raw_to_millivolts()`.
|
||
* Fixed issue with driver initialization causing improper operation in the ad559x driver
|
||
regarding the availability of :kconfig:option:`CONFIG_THREAD_NAME`.
|
||
* Improved the ADC read efficiency and validation in ad559x driver.
|
||
* ESP32 changes
|
||
|
||
* Updated ESP32 ADC driver to work with version 5.1 of hal_espressif.
|
||
* Added support for DMA mode operation for ESP32S3 and ESP32C3.
|
||
* nRF changes
|
||
|
||
* Added support for nRF54L15 and nRF54H20 in the nrfx_saadc driver.
|
||
* Improved the nRF SAADC driver by disabling burst mode on unused channels, avoiding freezes.
|
||
* Fixed issue which allowed negative ADC readings in single-ended mode using the
|
||
``adc_nrfx_saadc.c`` device driver.
|
||
Note that this fix prevents the nRF54H and nRF54L series from performing
|
||
8-bit resolution single-ended readings due to hardware limitations.
|
||
* NXP LPADC changes
|
||
|
||
* Enabled acquisition time feature in the NXP LPADC driver.
|
||
* Added support for regulator output as reference to NXP LPADC.
|
||
* Changed phandle type DT property ``nxp,reference-supply`` to phandle-array type DT property
|
||
``nxp,references`` in ``nxp,lpc-lpadc`` binding. The NXP LPADC driver now supports passing
|
||
the reference voltage value by using ``nxp,references``.
|
||
* Smartbond changes
|
||
|
||
* Added support for power management to the Smartbond SDADC and GPADC drivers.
|
||
* Fixed support for :kconfig:option:`CONFIG_PM_DEVICE_RUNTIME` in the Smartbond ADC driver.
|
||
* STM32 changes
|
||
|
||
* Fixed various issues with DMA support in the STM32 ADC driver.
|
||
* Added support for STM32H7R/S series.
|
||
* Other driver changes
|
||
|
||
* Added support for Nuvoton m2l31x in the numaker ADC driver.
|
||
* Fixed issue with configuration register access in the ads1119 driver.
|
||
* Fixed uninitialized value in kb1200 driver found in static analysis.
|
||
* Fixed issue with :c:func:`adc_raw_to_millivolts` returning half the actual voltage with
|
||
the tla2021 driver by correcting the reference voltage value.
|
||
|
||
|
||
* Added support for Nuvoton Numaker M2L31X series.
|
||
|
||
* Battery
|
||
|
||
* Added ``re-charge-voltage-microvolt`` property to the ``battery`` binding. This allows to set
|
||
limit to automatically start charging again.
|
||
|
||
* Battery backed up RAM
|
||
|
||
* Added support for STM32G0 and STM32H5 series.
|
||
|
||
* CAN
|
||
|
||
* Extended support for automatic sample point location to also cover :c:func:`can_calc_timing` and
|
||
:c:func:`can_calc_timing_data`.
|
||
* Added optional ``min-bitrate`` devicetree property for CAN transceivers.
|
||
* Added devicetree macros :c:macro:`DT_CAN_TRANSCEIVER_MIN_BITRATE` and
|
||
:c:macro:`DT_INST_CAN_TRANSCEIVER_MIN_BITRATE` for getting the minimum supported bitrate of a CAN
|
||
transceiver.
|
||
* Added support for specifying the minimum bitrate supported by a CAN controller in the internal
|
||
``CAN_DT_DRIVER_CONFIG_GET`` and ``CAN_DT_DRIVER_CONFIG_INST_GET`` macros.
|
||
* Added :c:func:`can_get_bitrate_min` and :c:func:`can_get_bitrate_max` for retrieving the minimum
|
||
and maximum supported bitrate for a given CAN controller/CAN transceiver combination, reflecting
|
||
that retrieving the bitrate limits can no longer fail. Deprecated the existing
|
||
:c:func:`can_get_max_bitrate` API function.
|
||
* Updated the CAN timing functions to take the minimum supported bitrate into consideration when
|
||
validating the bitrate.
|
||
* Made the ``sample-point`` and ``sample-point-data`` devicetree properties optional.
|
||
* Renamed the ``bus_speed`` and ``bus_speed_data`` fields of :c:struct:`can_driver_config` to
|
||
``bitrate`` and ``bitrate_data``.
|
||
* Added driver for :dtcompatible:`nordic,nrf-can`.
|
||
* Added driver support for Numaker M2L31X to the :dtcompatible:`nuvoton,numaker-canfd` driver.
|
||
* Added host communication test suite.
|
||
|
||
* Charger
|
||
|
||
* Added ``chgin-to-sys-current-limit-microamp`` property to ``maxim,max20335-charger``.
|
||
* Added ``system-voltage-min-threshold-microvolt`` property to ``maxim,max20335-charger``.
|
||
* Added ``re-charge-threshold-microvolt`` property to ``maxim,max20335-charger``.
|
||
* Added ``thermistor-monitoring-mode`` property to ``maxim,max20335-charger``.
|
||
|
||
* Clock control
|
||
|
||
* Added support for Microcontroller Clock Output (MCO) on STM32H5 series.
|
||
* Added support for MSI clock on STM32WL series.
|
||
* Added driver for Analog Devices MAX32 SoC series.
|
||
* Added support for Nuvoton Numaker M2L31X series.
|
||
* Refactored ESP32 clock control driver to support ESP32-C6.
|
||
* In LiteX (:file:`drivers/clock_control/clock_control_litex.c`) added return code checking for
|
||
:c:func:`litex_clk_get_duty_cycle()` and :c:func:`litex_clk_get_clkout_divider`.
|
||
|
||
* Counter
|
||
|
||
* Added support for Ambiq Apollo3 series.
|
||
* Added support for STM32H7R/S series.
|
||
* Added driver for LPTMR to NXP MCXN947
|
||
* Added the ``resolution`` property in ``nxp,lptmr`` binding to represent the maximum width
|
||
in bits the LPTMR peripheral uses for its counter.
|
||
|
||
* DAC
|
||
|
||
* Added support for NXP RW SOC series DAC (:dtcompatible:`nxp,gau-dac`).
|
||
* Added support for Analog Devices AD5691 / AD5692 / AD5693 DACs
|
||
(:dtcompatible:`adi,ad5691`, :dtcompatible:`adi,ad5692` and :dtcompatible:`adi,ad5693`).
|
||
* Added support for Texas Instruments DACx0501 series DACs (:dtcompatible:`ti,dacx0501`).
|
||
|
||
* Disk
|
||
|
||
* Support for eMMC devices was added to the STM32 SD driver. This can
|
||
be enabled with :kconfig:option:`CONFIG_SDMMC_STM32_EMMC`.
|
||
* Added a loopback disk driver, to expose a disk device backed by a file.
|
||
A file can be registered with the loopback disk driver using
|
||
:c:func:`loopback_disk_access_register`
|
||
* Added support for :c:macro:`DISK_IOCTL_CTRL_INIT` and
|
||
:c:macro:`DISK_IOCTL_CTRL_DEINIT` macros, which allow for initializing
|
||
and de-initializing a disk at runtime. This allows hotpluggable
|
||
disk devices (like SD cards) to be removed and reinserted at runtime.
|
||
* Added SDMMC support for STM32H5 series.
|
||
|
||
* Display
|
||
|
||
* All in tree displays capable of supporting the :ref:`mipi_dbi_api` have
|
||
been converted to use it. GC9X01X, UC81XX, SSD16XX, ST7789V, ST7735R based
|
||
displays have been converted to this API. Boards using these displays will
|
||
need their devicetree updated, see the display section of
|
||
:ref:`migration_3.7` for examples of this process.
|
||
* Added driver for ST7796S display controller (:dtcompatible:`sitronix,st7796s`)
|
||
* Added support for :c:func:`display_read` API to ILI9XXX display driver,
|
||
which can be enabled with :kconfig:option:`CONFIG_ILI9XXX_READ`
|
||
* Added support for :c:func:`display_set_orientation` API to SSD16XXX
|
||
display driver
|
||
* Added driver for NT35510 MIPI-DSI display controller
|
||
(:dtcompatible:`frida,nt35510`)
|
||
* Added driver to abstract LED strip devices as displays
|
||
(:dtcompatible:`led-strip-matrix`)
|
||
* Added support for :c:func:`display_set_pixel_format` API to NXP eLCDIF
|
||
driver. ARGB8888, RGB888, and BGR565 formats are supported.
|
||
* Added support for inverting color at runtime to the SSD1306 driver, via
|
||
the :c:func:`display_set_pixel_format` API.
|
||
* Inversion mode can now be disabled in the ST7789V driver
|
||
(:dtcompatible:`sitronix,st7789v`) using the ``inversion-off`` property.
|
||
* Added support for NXP MCXNx4x
|
||
|
||
* DMA
|
||
|
||
* Error callback configuration renamed to better signal enable/disable status
|
||
* Add support to NXP MCXN947
|
||
|
||
* DMIC
|
||
|
||
* Added support for NXP ``rd_rw612_bga``
|
||
|
||
* Entropy
|
||
|
||
* Added support for STM32H7R/S series.
|
||
|
||
* EEPROM
|
||
|
||
* Added property for specifying ``address-width`` to :dtcompatible:`zephyr,i2c-target-eeprom`.
|
||
|
||
* eSPI
|
||
|
||
* Renamed eSPI virtual wire direction macros, enum values and Kconfig to match the new
|
||
terminology in eSPI 1.5 specification.
|
||
|
||
* Ethernet
|
||
|
||
* Introduced :kconfig:option:`CONFIG_ETH_DRIVER_RAW_MODE`. This option allows building
|
||
ethernet drivers without the zephyr L2 ethernet layer.
|
||
* Removed the ethernet-fixed-link DT binding.
|
||
* Removed VLAN handling from ethernet drivers since it is now handled by the
|
||
generic ethernet L2 code.
|
||
* Implemented/reworked HW MAC Address filtering in the eth_mcux, eth_nxp_enet,
|
||
and eth_nxp_s32_gmac, eth_stm32, and eth_nxp_s32_netc drivers.
|
||
* New Drivers
|
||
|
||
* Added new eth_nxp_enet_qos driver for the ethernet controller present on NXP MCXN SOCs.
|
||
* Added support for adin1100 phy.
|
||
* Added support for the Realtek RTL8211F phy.
|
||
* NXP ENET driver changes
|
||
|
||
* eth_nxp_enet driver is no longer experimental.
|
||
* Deprecated eth_mcux driver.
|
||
* All boards and SOCs with :dtcompatible:`nxp,kinetis-ethernet` compatible nodes
|
||
reworked to use the new :dtcompatible:`nxp,enet` binding.
|
||
* Added support for network device power management with nxp_enet driver on Kinetis platforms.
|
||
* Converted eth_nxp_enet driver to use a dedicated workqueue for RX
|
||
managed by the kernel rather than a manual infinite loop.
|
||
* Disabled hardware checksum acceleration when IPV6 is enabled with eth_nxp_enet, since
|
||
the hardware does not support accelerating ICMPv6 checksums.
|
||
* Added support for :dtcompatible:`nxp,enet1g`.
|
||
* Added support to use a fused MAC address for nxp_enet MAC on some platforms.
|
||
* Fixed issue with LAA bit not being set and a confusing description of the nxp,unique-mac
|
||
property used with the nxp_enet driver.
|
||
* Fixed cache maintain being enabled when using a noncache DMA buffer in nxp_enet driver.
|
||
* Added MMIO mappings to nxp_enet driver.
|
||
* Clarified DSA supported with eth_nxp_enet.
|
||
* NXP S32 ethernet changes
|
||
|
||
* The eth_nxp_s32_gmac driver now implies :kconfig:option:`CONFIG_MDIO`.
|
||
* eth_nxp_s32_netc driver updated to use new MBOX API.
|
||
* Adin2111 driver changes
|
||
|
||
* Corrected the bitfield position of IAMSK1 TX_READY_MASK in adin2111 driver.
|
||
* Changed adin2111 driver to always append crc32 to the end of the frame.
|
||
* Adjusted eth_adin2111 driver to have the appropriate multicaster filter mask.
|
||
* Fixed the "generic SPI without crc8" mode of adin2111 driver.
|
||
* Added Open Alliance SPI protocol support to the adin2111 driver.
|
||
* Added custom driver extension APIs for adin2111 driver.
|
||
* Enabled support for promiscuous mode in the adin2111 driver.
|
||
* Moved OA buffers out of device data of the adin2111 driver to save ~32KB of space
|
||
when using the generic SPI protocol.
|
||
* Fixed a build warning in eth_adin2111 driver on 64-bit platforms.
|
||
* Various small changes to adin2111 driver.
|
||
* STM32 ethernet driver changes
|
||
|
||
* Added support for PTP on compatible STM32 series (STM32F7, STM32H5 and STM32H7).
|
||
* Changed eth_stm32 to use phy APIs to access the phy to avoid collisions when multitasking.
|
||
* Removed legacy STM32Cube HAL API support for STM32 F4, F7, and H7 series.
|
||
* Added support for RX/TX timestamping to eth_stm32_hal driver.
|
||
* ESP32 ethernet driver changes
|
||
|
||
* Added support to esp32 ethernet driver to set the MAC address during runtime.
|
||
* Updated esp32 ethernet driver to work with version 5.1 of hal_espressif.
|
||
* Fixed build of esp32 ethernet driver when :kconfig:option:`CONFIG_NET_STATISTICS` is enabled.
|
||
* Fixed ESP32 ethernet driver not clocking external PHY correctly over GPIO.
|
||
* Other ethernet driver changes
|
||
|
||
* Added link status detection to the w5500 ethernet driver, configurable via Kconfig.
|
||
* Added ability to set MAC address at runtime with eth_liteeth driver.
|
||
* Fixed issue in the eth_stellaris driver where it was previously not taken into account
|
||
that the number of interrupts received by the driver may be less than the number of
|
||
data packets received by the ethernet controller.
|
||
* Added a devicetree property for the enc28j60 to set the RX filter.
|
||
* Fixed ESTAT TXABRT bit not being cleared on error in the enc28j60 driver.
|
||
* Added conditions to enable ptp_clock driver implementation for the native_posix
|
||
ethernet driver when PTP subsystem is enabled.
|
||
* Fixed DSA driver for KSZ8xxx to correctly initialize LAN devices.
|
||
* Fixed the wrong register address being used for tail tag enable in ksz8863.
|
||
* Phy driver changes
|
||
|
||
* Fixed various control issues with the KSZ8081 phy driver regarding
|
||
resets, autonegotiation, link detection, and missing/spamming logging messages.
|
||
* Changed property names of the reset and interrupt gpios in the KSZ8081 DT binding.
|
||
* Fixed bus fault in phy_mii driver when using fixed-link mode.
|
||
|
||
* Flash
|
||
|
||
* Added support for Ambiq Apollo3 series.
|
||
* Added support for multiple instances of the SPI NOR driver (spi_nor.c).
|
||
* Added preliminary support for non-erase devices with introduction of
|
||
device capabilities to c:struct:`flash_parameters` and the utility function
|
||
c:func:`flash_params_get_erase_cap` that allows to obtain the erase type
|
||
provided by a device; added c:macro:`FLASH_ERASE_C_EXPLICIT`, which is
|
||
currently the only supported erase type and is set by all flash devices.
|
||
* Added the c:func:`flash_flatten` function that can be used on devices,
|
||
with or without erase requirement, when erase has been used not for preparing
|
||
a device for a random data write, but rather to remove/scramble data from
|
||
that device.
|
||
* Added the c:func:`flash_fill` utility function which allows to write
|
||
a single value across a provided range in a selected device.
|
||
* Added support for RRAM on nrf54l15 devices.
|
||
* Added support of non busy wait polling in STM32 OSPI driver.
|
||
* Added support for STM32 XSPI external NOR flash driver (:dtcompatible:`st,stm32-xspi-nor`).
|
||
* Added support for XIP on external NOR flash in STM32 OSPI, QSPI and XSPI driver.
|
||
* STM32 OSPI driver: clk, dqs, ncs ports can now be configured by device tree
|
||
configurable (see :dtcompatible:`st,stm32-ospi`).
|
||
* Added FlexSPI support to NXP MCXN947
|
||
* Added support for Nuvoton Numaker M2L31X series.
|
||
|
||
* Fuel Gauge
|
||
|
||
* max17048: Corrected voltage units from mV to uV.
|
||
|
||
* GNSS
|
||
|
||
* Added GNSS device driver API test suite.
|
||
* Added support for the u-blox UBX protocol.
|
||
* Added device driver for the u-blox M8 GNSS modem (:dtcompatible:`u-blox,m8`).
|
||
* Added device driver for the Luatos Air530z GNSS modem (:dtcompatible:`luatos,air530z`).
|
||
|
||
* GPIO
|
||
|
||
* Added support for Ambiq Apollo3 series.
|
||
* Added Broadcom Set-top box(brcmstb) SoC GPIO driver.
|
||
* Added c:macro:`STM32_GPIO_WKUP` flag which allows to configure specific pins as wakeup source
|
||
from Power Off state on STM32 L4, U5, WB, & WL SoC series.
|
||
* Added driver for Analog Devices MAX32 SoC series.
|
||
* Added support for Nuvoton Numaker M2L31X series.
|
||
* Added interrupt support to the Renesas RZ/T2M GPIO driver (:dtcompatible:`renesas,rzt2m-gpio`).
|
||
|
||
* Hardware info
|
||
|
||
* Added device EUI64 ID support and implementation for STM32WB, STM32WBA and STM32WL series.
|
||
|
||
* I2C
|
||
|
||
* Added support for Ambiq Apollo3 series.
|
||
* In STM32 V2 driver, added support for a new :kconfig:option:`CONFIG_I2C_STM32_V2_TIMING`
|
||
which automatically computes bus timings which should be used to configure the hardware
|
||
block depending on the clock configuration in use. To avoid embedding this heavy algorithm
|
||
in a production application, a dedicated sample :zephyr:code-sample:`stm32_i2c_v2_timings` is provided
|
||
to get the output of the algorithm. Once bus timings configuration is available,
|
||
:kconfig:option:`CONFIG_I2C_STM32_V2_TIMING` could be disabled, bus timings configured
|
||
using device tree.
|
||
* Added support for STM32H5 series.
|
||
* Added support to NXP MCXN947
|
||
* Added driver for Analog Devices MAX32 SoC series.
|
||
* Added support for Nuvoton Numaker M2L31X series.
|
||
* LiteX I2C driver (:file:`drivers/i2c/i2c_litex.c`):
|
||
|
||
* Added support for bitrate setting from the devicetree.
|
||
* Added :c:func:`i2c_litex_recover_bus()` and :c:func:`i2c_litex_get_config()` API
|
||
implementations.
|
||
|
||
* I2S
|
||
|
||
* Added support for STM32H5 series.
|
||
* Extended the MCUX Flexcomm driver to support additional channels and formats.
|
||
* Added support for Nordic nRF54L Series.
|
||
* Fixed divider calculations in the nRF I2S driver.
|
||
|
||
* I3C
|
||
|
||
* Added shell support for querying bus and CCC commands.
|
||
|
||
* Added driver to support the I3C controller on NPCX.
|
||
|
||
* Improvements and bug fixes on :dtcompatible:`nxp,mcux-i3c`, including handling the bus
|
||
being busy more gracefully instead of simply returning errors.
|
||
|
||
* Input
|
||
|
||
* New drivers: :dtcompatible:`adc-keys`, :dtcompatible:`chipsemi,chsc6x`,
|
||
:dtcompatible:`cirque,pinnacle`, :dtcompatible:`futaba,sbus`,
|
||
:dtcompatible:`pixart,pat912x`, :dtcompatible:`pixart,paw32xx`,
|
||
:dtcompatible:`pixart,pmw3610` and :dtcompatible:`sitronix,cf1133`.
|
||
* Migrated :dtcompatible:`holtek,ht16k33` and
|
||
:dtcompatible:`microchip,xec-kbd` from kscan to input subsystem.
|
||
|
||
* LED
|
||
|
||
* Added device completion to LED shell commands and made the ``get_info`` command display
|
||
colors as strings.
|
||
|
||
* Added driver for Lumissil Microsystems (a division of ISSI) IS31FL3194 controller
|
||
(:dtcompatible:`issi,is31fl3194`).
|
||
|
||
* LED Strip
|
||
|
||
* The ``chain-length`` and ``color-mapping`` properties have been added to all LED strip
|
||
bindings.
|
||
|
||
* The length of a strip is now checked before updating it, an error is returned if the provided
|
||
data is too long.
|
||
|
||
* A length function has been added which returns the length of the LED strip
|
||
(:c:func:`led_strip_length`).
|
||
|
||
* The update channels function is now optional and can be left unimplemented.
|
||
|
||
* The ``in-gpios`` and ``output-pin`` properties of the respective
|
||
:dtcompatible:`worldsemi,ws2812-gpio` and :dtcompatible:`worldsemi,ws2812-rpi_pico-pio`
|
||
devicetree bindings have been renamed to ``gpios``.
|
||
|
||
* Removed ``CONFIG_WS2812_STRIP`` and ``CONFIG_WS2812_STRIP_DRIVER`` Kconfig options. They became
|
||
useless after refactoring.
|
||
|
||
* Added driver for Texas Instruments TLC59731 RGB controller.
|
||
|
||
* LoRa
|
||
|
||
* Added driver for Reyax LoRa module
|
||
|
||
* Mailbox
|
||
|
||
* Added support for HSEM based STM32 driver.
|
||
|
||
* MDIO
|
||
|
||
* Made the ``bus_enable`` and ``bus_disable`` functions optional for drivers to
|
||
implement, and removed empty implementation from many drivers.
|
||
* Added NXP ENET QOS MDIO controller driver.
|
||
* Fixed but with NXP ENET MDIO driver blocking the system workqueue.
|
||
* :kconfig:option:`CONFIG_MDIO_NXP_ENET_TIMEOUT` units change to microseconds.
|
||
* Added support for STM32 MDIO controller driver.
|
||
|
||
* MFD
|
||
|
||
* New driver :dtcompatible:`nxp,lp-flexcomm`.
|
||
* New driver :dtcompatible:`rohm,bd8lb600fs`.
|
||
* New driver :dtcompatible:`maxim,max31790`.
|
||
* New driver :dtcompatible:`infineon,tle9104`
|
||
* New driver :dtcompatible:`adi,ad559x`
|
||
* Added option to disable N_VBUSEN for :dtcompatible:`x-powers,axp192`.
|
||
* Added GPIO input edge events for :dtcompatible:`nordic,npm1300`.
|
||
* Added long press reset configuration for :dtcompatible:`nordic,npm1300`.
|
||
* Fixed initialisation of hysteretic mode for :dtcompatible:`nordic,npm6001`.
|
||
|
||
* Modem
|
||
|
||
* Removed deprecated ``GSM_PPP`` driver along with its dts compatible ``zephyr,gsm-ppp``.
|
||
|
||
* Removed deprecated ``UART_MUX`` and ``GSM_MUX`` previously used by ``GSM_PPP``.
|
||
|
||
* Removed support for dts compatible ``zephyr,gsm-ppp`` from ``MODEM_CELLULAR`` driver.
|
||
|
||
* Removed integration with ``UART_MUX`` from ``MODEM_IFACE_UART_INTERRUPT`` module.
|
||
|
||
* Removed integration with ``UART_MUX`` from ``MODEM_SHELL`` module.
|
||
|
||
* Implemented modem pipelinks in ``MODEM_CELLULAR`` driver for additional DLCI channels
|
||
available by the different modems. This includes generic AT mode DLCI channels, named
|
||
``user_pipe_<index>`` and DLCI channels reserved for GNSS tunneling named
|
||
``gnss_pipe``.
|
||
|
||
* Added new set of shell commands for sending AT commands directly to a modem using the
|
||
newly implemented modem pipelinks. The implementation of the new shell commands is
|
||
both functional and together with the ``MODEM_CELLULAR`` driver will provide an
|
||
example of how to implement and use the modem pipelink module.
|
||
|
||
* PCIE
|
||
|
||
* ``pcie_bdf_lookup`` and ``pcie_probe`` have been removed since they have been
|
||
deprecated since v3.3.0.
|
||
|
||
* MIPI-DBI
|
||
|
||
* Added release API
|
||
* Added support for mode selection via the device tree
|
||
|
||
* MSPI
|
||
|
||
* Add the new experimental :ref:`MSPI(Multi-bit SPI) <mspi_api>` API, enabling support for
|
||
advanced SPI controllers and peripherals that typically require command, address and data
|
||
phases as well as variable latency for a transfer. The API now supports from single wire
|
||
SDR up to hex wires DDR communication in sync/async ways.
|
||
* Added MSPI bus emulator under bus emulators to showcase the implementation of the MSPI API.
|
||
* Added MSPI flash device emulator to showcase the use of the MSPI API and interfacing with
|
||
MSPI bus controllers.
|
||
* Added APS6404L QPI pSRAM device driver.
|
||
* Added ATXP032 OPI NOR flash device driver.
|
||
* Added Ambiq Apollo3p MSPI controller driver.
|
||
* Added :zephyr:code-sample:`mspi-async` and :zephyr:code-sample:`mspi-flash` samples to
|
||
showcase the use of MSPI device drivers.
|
||
* Added mspi/api and mspi/flash testcase for developers to check their implementations.
|
||
|
||
* Pin control
|
||
|
||
* Added driver for Renesas RA8 series
|
||
* Added driver for Infineon PSoC6 (legacy)
|
||
* Added driver for Analog Devices MAX32 SoC series.
|
||
* Added driver for Ambiq Apollo3
|
||
* Added driver for ENE KB1200
|
||
* Added driver for NXP RW
|
||
* Espressif driver now supports ESP32C6
|
||
* STM32 driver now supports remap functionality for STM32C0
|
||
* Added support for Nuvoton Numaker M2L31X series.
|
||
|
||
* PWM
|
||
|
||
* Added support for STM32H7R/S series.
|
||
* Added a Add QTMR PWM driver for NXP imxrt11xx
|
||
* Made the NXP MCUX PWM driver thread safe
|
||
* Fix zephyr:code-sample:`pwm-blinky` code sample to demonstrate PWM support for
|
||
:ref:`beagleconnect_freedom`.
|
||
* Added driver for ENE KB1200.
|
||
* Added support for Nordic nRF54H and nRF54L Series SoCs.
|
||
* Added support for Nuvoton Numaker M2L31X series.
|
||
|
||
* Regulators
|
||
|
||
* New driver :dtcompatible:`cirrus,cp9314`.
|
||
* Added ``regulator-boot-off`` property to common regulator driver.
|
||
Updated :dtcompatible:`adi,adp5360-regulator`, :dtcompatible:`nordic,npm1300-regulator`,
|
||
:dtcompatible:`nordic,npm6001-regulator` and :dtcompatible:`x-powers,axp192-regulator`
|
||
to use this new property.
|
||
* Added power management for :dtcompatible:`renesas,smartbond-regulator`.
|
||
* Added ``is_enabled`` shell command.
|
||
* Removed use of busy wait for single threaded systems.
|
||
* Fixed control of DCDC2 output for :dtcompatible:`x-powers,axp192-regulator`.
|
||
* Fixed current and voltage get functions for :dtcompatible:`renesas,smartbond-regulator`.
|
||
* Fixed NXP VREF Kconfig leakage.
|
||
* Fixed display of micro values in shell.
|
||
* Fixed strcmp usage bug in ``adset`` shell command.
|
||
|
||
* Reset
|
||
|
||
* Added driver for reset controller on Nuvoton NPCX chips.
|
||
* Added reset controller driver for NXP SYSCON.
|
||
* Added reset controller driver for NXP RSTCTL.
|
||
* Added support for Nuvoton Numaker M2L31X series.
|
||
|
||
* RTC
|
||
|
||
* Added Raspberry Pi Pico RTC driver.
|
||
* Added support for :kconfig:option:`CONFIG_RTC_ALARM` on all STM32 MCU series (except STM32F1).
|
||
* Added support for Nuvoton Numaker M2L31X series.
|
||
|
||
* RTIO
|
||
|
||
* Move lock-free queues out of RTIO into lib, dropping the ``rtio_`` prefix to SPSC and MPSC queues.
|
||
* Added tests and fixed bugs related to chained callback requests.
|
||
* Wrapper around p4wq (rtio workq) created to go from blocking to non-blocking behavior in cases
|
||
where native asynchronous RTIO functionality is unavailable.
|
||
|
||
* SDHC
|
||
|
||
* Added ESP32 SDHC driver (:dtcompatible:`espressif,esp32-sdhc`).
|
||
* Added SDHC driver for Renesas MMC controller (:dtcompatible:`renesas,rcar-mmc`).
|
||
|
||
* Sensors
|
||
|
||
* General
|
||
|
||
* Added a channel specifier to the new read/decoder API.
|
||
* Added a blocking sensor read call :c:func:`sensor_read`.
|
||
* Decoupled RTIO requests using RTIO workqueues service to turn
|
||
:c:func:`sensor_submit_callback` into an asynchronous request.
|
||
* Moved most drivers to vendor subdirectories.
|
||
|
||
* AMS
|
||
|
||
* Added TSL2591 light sensor driver (:dtcompatible:`ams,tsl2591`).
|
||
|
||
* Aosong
|
||
|
||
* Added DHT20 digital-output humidity and temperature sensor driver
|
||
(:dtcompatible:`aosong,dht20`).
|
||
|
||
* Added :kconfig:option:`CONFIG_DHT_LOCK_IRQS` for the dht11 driver which allows for locking
|
||
interrupts during sensor reading to prevent issues with reading the sensor.
|
||
|
||
* Bosch
|
||
|
||
* Updated BME280 to the new async API.
|
||
|
||
* Infineon
|
||
|
||
* Added TLE9104 power train switch diagnostics sensor driver
|
||
(:dtcompatible:`infineon,tle9104-diagnostics`).
|
||
|
||
* Maxim
|
||
|
||
* Added DS18S20 1-Wire temperature sensor driver (:dtcompatible:`maxim,ds18s20`).
|
||
* Added MAX31790 fan speed and fan fault sensor
|
||
(:dtcompatible:`maxim,max31790-fan-fault` and :dtcompatible:`maxim,max31790-fan-speed`).
|
||
|
||
* NXP
|
||
|
||
* Added low power comparator driver (:dtcompatible:`nxp,lpcmp`).
|
||
|
||
* Rohm
|
||
|
||
* Added BD8LB600FS diagnostics sensor driver (:dtcompatible:`rohm,bd8lb600fs-diagnostics`).
|
||
|
||
* Silabs
|
||
|
||
* Made various fixes and enhancements to the SI7006 humidity/temperature sensor driver.
|
||
|
||
* ST
|
||
|
||
* QDEC driver now supports encoder mode configuration (see :dtcompatible:`st,stm32-qdec`).
|
||
* Added support for STM32 Digital Temperature Sensor (:dtcompatible:`st,stm32-digi-temp`).
|
||
* Added IIS328DQ I2C/SPI accelerometer sensor driver (:dtcompatible:`st,iis328dq`).
|
||
|
||
* TDK
|
||
|
||
* Added support for the MPU6500 3-axis accelerometer and 3-axis gyroscope sensor to the
|
||
MPU6050 driver.
|
||
|
||
* TI
|
||
|
||
* Added TMP114 driver (:dtcompatible:`ti,tmp114`).
|
||
* Added INA226 bidirectional current and power monitor driver (:dtcompatible:`ti,ina226`).
|
||
* Added LM95234 quad remote diode and local temperature sensor driver
|
||
(:dtcompatible:`national,lm95234`).
|
||
|
||
* Other vendors
|
||
|
||
* Added Angst+Pfister FCX-MLDX5 O2 sensor driver (:dtcompatible:`ap,fcx-mldx5`).
|
||
* Added ENE KB1200 tachometer sensor driver (:dtcompatible:`ene,kb1200-tach`).
|
||
* Added Festo VEAA-X-3 series proportional pressure regulator driver
|
||
(:dtcompatible:`festo,veaa-x-3`).
|
||
* Added Innovative Sensor Technology TSic xx6 temperature sensor driver
|
||
(:dtcompatible:`ist,tsic-xx6`).
|
||
* Added ON Semiconductor NCT75 temperature sensor driver (:dtcompatible:`onnn,nct75`).
|
||
* Added ScioSense ENS160 digital metal oxide multi-gas sensor driver
|
||
(:dtcompatible:`sciosense,ens160`).
|
||
* Made various fixes and enhancements to the GROW_R502A fingerprint sensor driver.
|
||
|
||
* Serial
|
||
|
||
* Added driver to support UART over Bluetooth LE using NUS (Nordic UART Service). This driver
|
||
enables using Bluetooth as a transport to all the subsystems that are currently supported by
|
||
UART (e.g: Console, Shell, Logging).
|
||
* Added :kconfig:option:`CONFIG_NOCACHE_MEMORY` support in async DMA mode in STM32 driver.
|
||
It is now possible to use UART in DMA mode with :kconfig:option:`CONFIG_DCACHE` enabled
|
||
on STM32 F7 & H7 SoC series, as long as DMA buffers are placed in an uncached memory section.
|
||
* Added support for STM32H7R/S series.
|
||
|
||
* Added support for HSCIF (High Speed Serial Communication Interface with FIFO) in the UART
|
||
driver for Renesas RCar platforms.
|
||
|
||
* Added driver for ENE KB1200 UART.
|
||
|
||
* Added driver for UART on Analog Devices MAX32 series microcontrollers.
|
||
|
||
* Added driver for UART on Renesas RA8 devices.
|
||
|
||
* ``uart_emul`` (:dtcompatible:`zephyr,uart-emul`):
|
||
|
||
* Added support for asynchronous API for the emulated UART driver.
|
||
|
||
* ``uart_esp32`` (:dtcompatible:`espressif,esp32-uart`):
|
||
|
||
* Added support to invert TX and RX pin signals.
|
||
|
||
* Added support for ESP32C6 SoC.
|
||
|
||
* ``uart_native_tty`` (:dtcompatible:`zephyr,native-tty-uart`):
|
||
|
||
* Added support to emulate interrupt driven UART.
|
||
|
||
* ``uart_mcux_lpuart`` (:dtcompatible:`nxp,kinetis-lpuart`):
|
||
|
||
* Added support for single wire half-duplex communication.
|
||
|
||
* Added support to invert TX and RX pin signals.
|
||
|
||
* ``uart_npcx`` (:dtcompatible:`nuvoton,npcx-uart`):
|
||
|
||
* Added support for asynchronous API.
|
||
|
||
* Added support for baud rate of 3MHz.
|
||
|
||
* ``uart_nrfx_uarte`` (:dtcompatible:`nordic,nrf-uarte`):
|
||
|
||
* Added support to put TX and RX pins into low power mode when UART is not active.
|
||
|
||
* ``uart_nrfx_uarte2`` (:dtcompatible:`nordic,nrf-uarte`):
|
||
|
||
* Prevents UART from transmitting when device is suspended.
|
||
|
||
* Fixed some events not being triggered.
|
||
|
||
* ``uart_pl011`` (:dtcompatible:`arm,pl011`):
|
||
|
||
* Added support for runtime configuration.
|
||
|
||
* Added support for reset device.
|
||
|
||
* Added support to use clock control to determine frequency.
|
||
|
||
* Added support for hardware flow control.
|
||
|
||
* Added support for UART on Ambiq Apollo3 SoC.
|
||
|
||
* ``uart_smartbond`` (:dtcompatible:`renesas,smartbond-uart`):
|
||
|
||
* Added support for power management.
|
||
|
||
* Added support to wake up via DTR and RX lines.
|
||
|
||
* ``uart_stm32`` (:dtcompatible:`st,stm32-uart`):
|
||
|
||
* Added support to identify if DMA buffers are in data cache or non-cacheable memory.
|
||
|
||
* Added support for Nuvoton Numaker M2L31X series.
|
||
|
||
* SPI
|
||
|
||
* Added support to NXP MCXN947
|
||
* Added support for Ambiq Apollo3 series general IOM based SPI.
|
||
* Added support for Ambiq Apollo3 BLEIF based SPI, which is specific for internal HCI.
|
||
* Added support for :kconfig:option:`CONFIG_PM` and :kconfig:option:`CONFIG_PM_DEVICE_RUNTIME` on STM32 SPI driver.
|
||
* Added support for :kconfig:option:`CONFIG_NOCACHE_MEMORY` in DMA SPI mode for STM32F7x SoC series.
|
||
* Added support for STM32H7R/S series.
|
||
* Added driver for Analog Devices MAX32 SoC series.
|
||
* Fixed an incorrect register assignment in gd32 spi.
|
||
|
||
* USB
|
||
|
||
* Added UDC shim driver for NXP EHCI and IP3511 USB controller.
|
||
* Various fixes and improvements in IT82xx2, DWC2, STM32, RP2040, Smartbond
|
||
USB controller drivers.
|
||
|
||
* Video
|
||
|
||
* Added support for STM32 Digital camera interface (DCMI) driver (:dtcompatible:`st,stm32-dcmi`).
|
||
* Enabled NXP USB Device controllers
|
||
* Added support for the ov7670 camera
|
||
* Added support for the ov5640 camera
|
||
* Added CSI-2 MIPI driver for NXP MCUX
|
||
* Added support for DVP FPC 24-pins mt9m114 camera module shield
|
||
|
||
* Watchdog
|
||
|
||
* Added :kconfig:option:`CONFIG_WDT_NPCX_WARNING_LEADING_TIME_MS` to set the leading warning time
|
||
in milliseconds. Removed no longer used :kconfig:option:`CONFIG_WDT_NPCX_DELAY_CYCLES`.
|
||
* Added support for Ambiq Apollo3 series.
|
||
* Added support for STM32H7R/S series.
|
||
* Added support for Nuvoton Numaker M2L31X series.
|
||
* Added watchdog for external 32kHz crystal in ESP32 SoC variants.
|
||
|
||
* Wi-Fi
|
||
|
||
* Fixed message parsing for esp-at.
|
||
* Fixed esp-at connect failures.
|
||
* Implement :c:func:`bind` and :c:func:`recvfrom` for UDP sockets for esp-at.
|
||
* Added option for setting maximum data size for eswifi.
|
||
* Fixed ESP32 Wi-Fi driver memory leak.
|
||
|
||
Networking
|
||
**********
|
||
|
||
* ARP:
|
||
|
||
* Added support for gratuitous ARP transmission.
|
||
* Fixed a possible deadlock between TX and RX threads within ARP module.
|
||
* Fixed a possible ARP entry leak.
|
||
* Improved ARP debug logs.
|
||
|
||
* CoAP:
|
||
|
||
* Fixed CoAP observe age overflows.
|
||
* Increased upper limit for CoAP retransmissions (:kconfig:option:`CONFIG_COAP_MAX_RETRANSMIT`).
|
||
* Fixed CoAP observations in CoAP client library.
|
||
* Added new CoAP client :c:func:`coap_client_cancel_requests` API which allows
|
||
to cancel active observations.
|
||
* Fixed CoAP ID generation for responses in CoAP Server sample.
|
||
|
||
* Connection manager:
|
||
|
||
* Added support for new net_mgmt events, which allow to track IPv4 and IPv6
|
||
connectivity independently:
|
||
|
||
* :c:macro:`NET_EVENT_L4_IPV4_CONNECTED`
|
||
* :c:macro:`NET_EVENT_L4_IPV4_DISCONNECTED`
|
||
* :c:macro:`NET_EVENT_L4_IPV6_CONNECTED`
|
||
* :c:macro:`NET_EVENT_L4_IPV6_DISCONNECTED`
|
||
|
||
* DHCPv4:
|
||
|
||
* Added support for encapsulated vendor specific options. By enabling
|
||
:kconfig:option:`CONFIG_NET_DHCPV4_OPTION_CALLBACKS_VENDOR_SPECIFIC` callbacks can be
|
||
registered with :c:func:`net_dhcpv4_add_option_vendor_callback` to handle these options after
|
||
being initialised with :c:func:`net_dhcpv4_init_option_vendor_callback`.
|
||
* Added support for the "Vendor class identifier" option. Use the
|
||
:kconfig:option:`CONFIG_NET_DHCPV4_VENDOR_CLASS_IDENTIFIER` to enable it and
|
||
:kconfig:option:`CONFIG_NET_DHCPV4_VENDOR_CLASS_IDENTIFIER_STRING` to set it.
|
||
* The NTP server from the DHCPv4 option can now be used to set the system time. This is done by
|
||
default, if :kconfig:option:`CONFIG_NET_CONFIG_CLOCK_SNTP_INIT` is enabled.
|
||
* The syslog server address can now be set with DHCPv4 option. This is done by
|
||
default, if :kconfig:option:`CONFIG_LOG_BACKEND_NET_USE_DHCPV4_OPTION` is enabled.
|
||
* Fixed a bug, where options with registered callbacks were not requested from
|
||
the server.
|
||
* Fixed a bug, where netmask received from the server was not applied correctly.
|
||
* Reimplemented DHCPv4 client RENEW/REBIND logic to be compliant with RFC2131.
|
||
* Improved declined addresses management in DHCPv4 server, which now can be
|
||
reused after configured time.
|
||
* Fixed including the client ID option in the DHCPv4 server response, according to RFC6842.
|
||
* Added :kconfig:option:`CONFIG_NET_DHCPV4_SERVER_NAK_UNRECOGNIZED_REQUESTS` which
|
||
allows to override RFC-defined behavior, and NAK requests from unrecognized
|
||
clients.
|
||
* Fixed client ID generation in DHCPv4 server.
|
||
* Other minor fixes in DHCPv4 client and server implementations.
|
||
|
||
* DHCPv6:
|
||
|
||
* Fixed incorrect DHCPv6 events code base for net_mgmt events.
|
||
* Added :kconfig:option:`CONFIG_NET_DHCPV6_DUID_MAX_LEN` which allows to configure
|
||
maximum supported DUID length.
|
||
* Added documentation page for DHCPv6.
|
||
|
||
* DNS/mDNS/LLMNR:
|
||
|
||
* Fixed an issue where the mDNS Responder did not work when the mDNS Resolver was also enabled.
|
||
The mDNS Resolver and mDNS Responder can now be used simultaneously.
|
||
* Reworked LLMNR and mDNS responders, and DNS resolver to use sockets and socket services API.
|
||
* Added ANY query resource type.
|
||
* Added support for mDNS to provide records in runtime.
|
||
* Added support for caching DNS records.
|
||
* Fixed error codes returned when socket creation fails, and when all results have been returned.
|
||
* Fixed DNS retransmission timeout calculation.
|
||
|
||
* gPTP/PTP:
|
||
|
||
* Added support for IEEE 1588-2019 PTP.
|
||
* Added support for SO_TIMESTAMPING socket option to get timestamping information in socket
|
||
ancillary data.
|
||
* Fixed race condition on timestamp callback.
|
||
* Fixed clock master sync send SM if we are not the GM clock.
|
||
|
||
* HTTP:
|
||
|
||
* Added HTTP/2 server library and sample application with support for static,
|
||
dynamic and Websocket resource types.
|
||
* Added HTTP shell component.
|
||
* Improved HTTP client error reporting.
|
||
* Moved HTTP client library out of experimental.
|
||
* Added POLLOUT monitoring when sending response in HTTP client.
|
||
|
||
* IPSP:
|
||
|
||
* Removed IPSP support. ``CONFIG_NET_L2_BT`` does not exist anymore.
|
||
|
||
* IPv4:
|
||
|
||
* Implemented IPv4 Address Conflict Detection, according to RFC 5227.
|
||
* Added :c:func:`net_ipv4_is_private_addr` API function.
|
||
* IPv4 netmask is now set individually for each address instead of being set
|
||
for the whole interface.
|
||
* Other minor fixes and improvements.
|
||
|
||
* IPv6:
|
||
|
||
* Implemented IPv6 Privacy Extensions according to RFC 8981.
|
||
* Added :c:func:`net_ipv6_is_private_addr` API function.
|
||
* Implemented reachability hint for IPv6. Upper layers can use
|
||
c:func:`net_if_nbr_reachability_hint` to report Neighbor reachability and
|
||
avoid unnecessary Neighbor Discovery solicitations.
|
||
* Added :kconfig:option:`CONFIG_NET_IPV6_MTU` allowing to set custom IPv6 MTU.
|
||
* Added :kconfig:option:`CONFIG_NET_MCAST_ROUTE_MAX_IFACES` which allows to set
|
||
multiple interfaces for multicast forwarding entries.
|
||
* Added :kconfig:option:`CONFIG_NET_MCAST_ROUTE_MLD_REPORTS` which allows to
|
||
report multicast routes in MLDv2 reports.
|
||
* Fixed IPv6 hop limit handling for multicast packets.
|
||
* Improved IPv6 Neighbor Discovery test coverage.
|
||
* Fixed a bug, where Neighbor Advertisement packets reporting Duplicate address
|
||
detection conflicts were dropped.
|
||
* Other minor fixes and improvements.
|
||
|
||
* LwM2M:
|
||
|
||
* Added new API functions:
|
||
|
||
* :c:func:`lwm2m_set_bulk`
|
||
* :c:func:`lwm2m_rd_client_set_ctx`
|
||
|
||
* Added new ``offset`` parameter to :c:type:`lwm2m_engine_set_data_cb_t` callback type.
|
||
This affects post write and validate callbacks as well as some firmware callbacks.
|
||
* Fixed block context not being reset upon receiving block number 0 in block transfer.
|
||
* Fixed block size negotiation with the server in block transfer.
|
||
* Added :kconfig:option:`CONFIG_LWM2M_ENGINE_ALWAYS_REPORT_OBJ_VERSION` which
|
||
allows to force the client to always report object version.
|
||
* Block transfer is now possible with resource w/o registered callback.
|
||
* Fixed a bug, where an empty ACK sent from the registered callback would not
|
||
be sent immediately.
|
||
* Removed deprecated API functions and definitions.
|
||
* Other minor fixes and improvements.
|
||
|
||
* Misc:
|
||
|
||
* Improved overall networking API Doxygen documentation.
|
||
* Converted TFTP library to use ``zsock_*`` API.
|
||
* Added SNTP :c:func:`sntp_simple_addr` API function to perform SNTP query
|
||
when the server IP address is already known.
|
||
* Added :kconfig:option:`CONFIG_NET_TC_THREAD_PRIO_CUSTOM` allowing to override
|
||
default traffic class threads priority.
|
||
* Fixed the IPv6 event handler initialization order in net config library.
|
||
* Reworked telnet shell backend to use sockets and socket services API.
|
||
* Fixed double dereference of IGMP packets.
|
||
* Moved from ``native_posix`` to ``native_sim`` support in various tests and
|
||
samples.
|
||
* Added support for copying user data in network buffers.
|
||
* Fixed cloning of zero sized network buffers.
|
||
* Added net_buf APIs to handle 40 bit data format.
|
||
* Added receive callback for dummy L2, applicable in certain use cases
|
||
(for example, packet capture).
|
||
* Implemented pseudo interface, a.k.a "any" interface for packet capture use
|
||
case.
|
||
* Added cooked mode capture support. This allows non-IP based network data capture.
|
||
* Generate network events when starting or stopping packet capture.
|
||
* Removed obsolete and unused ``tcp_first_msg`` :c:struct:`net_pkt` flag.
|
||
* Added new :zephyr:code-sample:`secure-mqtt-sensor-actuator` sample.
|
||
* Added support for partial L3 and L4 checksum offloading.
|
||
* Updated :zephyr:code-sample:`mqtt-azure` with new CA certificates, the current
|
||
on expires soon.
|
||
* Added new driver for Native Simulator offloaded sockets.
|
||
* Overhauled VLAN support to use Virtual network interfaces.
|
||
* Added statistics collection for Virtual network interfaces.
|
||
* Fixed system workqueue block in :c:func:`mgmt_event_work_handler`
|
||
when :kconfig:option:`CONFIG_NET_MGMT_EVENT_SYSTEM_WORKQUEUE` is enabled.
|
||
|
||
* MQTT:
|
||
|
||
* Added ALPN support for MQTT TLS backend.
|
||
* Added user data field in :c:struct:`mqtt_client` context structure.
|
||
* Fixed a potential socket leak in MQTT Websockets transport.
|
||
|
||
* Network Interface:
|
||
|
||
* Added new API functions:
|
||
|
||
* :c:func:`net_if_ipv4_maddr_foreach`
|
||
* :c:func:`net_if_ipv6_maddr_foreach`
|
||
|
||
* Improved debug logging in the network interface code.
|
||
* Added reference counter to the :c:struct:`net_if_addr` structure.
|
||
* Fixed IPv6 DAD and MLDv2 operation when interface goes up.
|
||
* Added unique default name for OpenThread interfaces.
|
||
* Other minor fixes.
|
||
|
||
* OpenThread
|
||
|
||
* Removed deprecated ``openthread_set_state_changed_cb()`` function.
|
||
* Added implementation of BLE TCAT advertisement API.
|
||
|
||
* PPP
|
||
|
||
* Removed deprecated ``gsm_modem`` driver and sample.
|
||
* Optimized memory allocation in PPP driver.
|
||
* Misc improvements in the :zephyr:code-sample:`cellular-modem` sample
|
||
* Added PPP low level packet capture support.
|
||
|
||
* Shell:
|
||
|
||
* Added ``net ipv4 gateway`` command to set IPv4 gateway address.
|
||
* Added argument validation in network shell macros.
|
||
* Fixed net_mgmt sockets information printout.
|
||
* Reworked VLAN information printout.
|
||
* Added option to set random MAC address with ``net iface set_mac`` command.
|
||
* Added multicast join status when printing multicast address information.
|
||
|
||
* Sockets:
|
||
|
||
* Implemented new networking POSIX APIs:
|
||
|
||
* :c:func:`if_nameindex`
|
||
* :c:func:`inet_ntoa`
|
||
* :c:func:`inet_addr`
|
||
|
||
* Added support for tracing socket API calls.
|
||
* TLS sockets are no longer experimental API.
|
||
* Fixed the protocol field endianness for ``AF_PACKET`` type sockets.
|
||
* Fixed :c:func:`getsockname` for TCP.
|
||
* Improve :c:func:`sendmsg` support when using DTLS sockets.
|
||
* Fixed :c:func:`net_socket_service_register` function stall in case socket
|
||
services thread stopped.
|
||
* Fixed potential socket services thread stoppage when deregistering service.
|
||
* Removed support for asynchronous timeouts in socket services library.
|
||
* Fixed potential busy looping when using :c:func:`zsock_accept` in case of
|
||
file descriptors shortage.
|
||
|
||
* Syslog:
|
||
|
||
* Added new API functions:
|
||
|
||
* :c:func:`log_backend_net_set_ip` to initialize syslog net backend with IP
|
||
address directly.
|
||
* :c:func:`log_backend_net_start` to facilitate syslog net backend activation.
|
||
|
||
* Added structured logging support to syslog net backend.
|
||
* Added TCP support to syslog net backend.
|
||
|
||
* TCP:
|
||
|
||
* Fixed possible deadlock when accepting new TCP connection.
|
||
* Fixed ACK number verification during connection teardown.
|
||
* Fixed a bug, where data bytes included in FIN packet were ignored.
|
||
* Fixed a possible TCP context leak in case initial SYN packet transmission failed.
|
||
* Deprecated :kconfig:option:`CONFIG_NET_TCP_ACK_TIMEOUT` as it was redundant with other configs.
|
||
* Improved debug logs, so that they're easier to follow under heavy load.
|
||
* ISN generation now uses SHA-256 instead of MD5. Moreover, it now relies on PSA APIs
|
||
instead of legacy Mbed TLS functions for hash computation.
|
||
* Improved ACK reply logic in case no PSH flag is present to reduce redundant ACKs.
|
||
|
||
* Websocket:
|
||
|
||
* Added new Websocket APIs:
|
||
|
||
* :c:func:`websocket_register`
|
||
* :c:func:`websocket_unregister`
|
||
|
||
* Converted Websocket library to use ``zsock_*`` API.
|
||
* Added Object Core support to Websocket sockets.
|
||
* Added POLLOUT monitoring when sending.
|
||
|
||
* Wi-Fi:
|
||
|
||
* Reduce memory usage of 5 GHz channel list.
|
||
* Added channel validity check in AP mode.
|
||
* Added support for BSSID configuration in connect call.
|
||
* Wifi shell help text fixes. Option parsing fixes.
|
||
* Support WPA auto personal security mode.
|
||
* Collect unicast received/sent network packet statistics.
|
||
* Added support for configuring RTS threshold. With this, users can set the RTS threshold
|
||
value or disable the RTS mechanism.
|
||
* Added support for configuring AP parameters. With this, users can set AP parameters at
|
||
build and run time.
|
||
* Added support to configure ``max_inactivity`` BSS parameter. Users can set this both
|
||
build and runtime duration to control the maximum time duration after which AP may
|
||
disconnect a STA due to inactivity from STA.
|
||
* Added support to configure ``inactivity_poll`` BSS parameter. Users can set build
|
||
only AP parameter to control whether AP may poll the STA before throwing away STA
|
||
due to inactivity.
|
||
* Added support to configure ``max_num_sta`` BSS parameter. Users can set this both
|
||
build and run time parameter to control the maximum number of STA entries.
|
||
|
||
* zperf:
|
||
|
||
* Fixed ``IP_TOS`` and ``IPV6_TCLASS`` options handling in zperf.
|
||
* Fixed throughput calculation during long zperf sessions.
|
||
* Fixed error on TCP upload session end in case multicast IP address was used.
|
||
* Fixed a bug, where IPv6 socket was bound with IPv4 address, giving error.
|
||
* Added an option to specify the network interface to use during zperf sessions.
|
||
* Added a new ``ZPERF_SESSION_PERIODIC_RESULT`` event for periodic updates
|
||
during TCP upload sessions.
|
||
* Fixed possible socket leak in case of errors during zperf session.
|
||
* Improved performance in the default configuration for the zperf sample.
|
||
|
||
USB
|
||
***
|
||
|
||
* New USB device stack:
|
||
|
||
* Added support for HID devices
|
||
* Introduced speed-specific configurations and made high-speed support
|
||
compliant with the USB2.0 specification
|
||
* Added notification support and initial BOS support
|
||
|
||
Devicetree
|
||
**********
|
||
|
||
* Added :c:macro:`DT_INST_NODE_HAS_COMPAT` to check if a node has a compatible.
|
||
This is useful for nodes that have multiple compatibles.
|
||
* Added :c:macro:`DT_CHILD_NUM` and variants to count the number of children of a node.
|
||
* Added :c:macro:`DT_FOREACH_NODELABEL` and variants, which can be used to iterate over the
|
||
node labels of a devicetree node.
|
||
* Added :c:macro:`DT_NODELABEL_STRING_ARRAY` and :c:macro:`DT_NUM_NODELABELS` and their variants.
|
||
* Added :c:macro:`DT_REG_HAS_NAME` and variants.
|
||
* Reworked :c:macro:`DT_ANY_INST_HAS_PROP_STATUS_OKAY` so that the result can
|
||
be used with macros like :c:macro:`IS_ENABLED`, IF_ENABLED, or COND_CODE_x.
|
||
* Reworked :c:macro:`DT_NODE_HAS_COMPAT_STATUS` so that it can be evaluated at preprocessor time.
|
||
* Updated PyYaml version used in dts scripts to 6.0 to remove supply chain vulnerabilities.
|
||
|
||
Kconfig
|
||
*******
|
||
|
||
* Added a ``substring`` Kconfig preprocessor function.
|
||
* Added a ``dt_node_ph_prop_path`` Kconfig preprocessor function.
|
||
* Added a ``dt_compat_any_has_prop`` Kconfig preprocessor function.
|
||
|
||
Libraries / Subsystems
|
||
**********************
|
||
|
||
* Debug
|
||
|
||
* symtab
|
||
|
||
* By enabling :kconfig:option:`CONFIG_SYMTAB`, the symbol table will be
|
||
generated with Zephyr link stage executable on supported architectures.
|
||
|
||
* Demand Paging
|
||
|
||
* NRU (Not Recently Used) eviction algorithm has updated its selection logic to avoid
|
||
picking the same page to evict constantly. The updated login now searches for a new
|
||
candidate linearly after the last evicted page.
|
||
|
||
* Added LRU (Least Recently Used) eviction algorithm.
|
||
|
||
* Formatted output
|
||
|
||
* Fix warning when compiling cbprintf with ARCMWDT.
|
||
|
||
* Management
|
||
|
||
* hawkBit
|
||
|
||
* The hawkBit subsystem has been reworked to use the settings subsystem to store the hawkBit
|
||
configuration.
|
||
|
||
* By enabling :kconfig:option:`CONFIG_HAWKBIT_SET_SETTINGS_RUNTIME`, the hawkBit settings can
|
||
be configured at runtime. Use the :c:func:`hawkbit_set_config` function to set the hawkBit
|
||
configuration. It can also be set via the hawkBit shell, by using the ``hawkbit set``
|
||
command.
|
||
|
||
* When using the hawkBit autohandler and an update is installed, the device will now
|
||
automatically reboot after the installation is complete.
|
||
|
||
* By enabling :kconfig:option:`CONFIG_HAWKBIT_CUSTOM_DEVICE_ID`, a callback function can be
|
||
registered to set the device ID. Use the :c:func:`hawkbit_set_device_identity_cb` function to
|
||
register the callback.
|
||
|
||
* By enabling :kconfig:option:`CONFIG_HAWKBIT_CUSTOM_ATTRIBUTES`, a callback function can be
|
||
registered to set the device attributes that are sent to the hawkBit server. Use the
|
||
:c:func:`hawkbit_set_custom_data_cb` function to register the callback.
|
||
|
||
* MCUmgr
|
||
|
||
* Instructions for the deprecated mcumgr go tool have been removed, a list of alternative,
|
||
supported clients can be found on :ref:`mcumgr_tools_libraries`.
|
||
|
||
* Fixed an issue with the SMP structure not being packed which would cause a fault on devices
|
||
that do not support unaligned memory accesses.
|
||
|
||
* Added :kconfig:option:`CONFIG_MCUMGR_TRANSPORT_BT_DYNAMIC_SVC_REGISTRATION` that allows users
|
||
to select whether MCUmgr BT service is statically registered at compile time or
|
||
dynamically at run time.
|
||
|
||
* In FS group, TinyCrypt has been replaced with PSA calls for SHA calculation.
|
||
|
||
* Logging
|
||
|
||
* By enabling :kconfig:option:`CONFIG_LOG_BACKEND_NET_USE_DHCPV4_OPTION`, the IP address of the
|
||
syslog server for the networking backend is set by the DHCPv4 Log Server Option (7).
|
||
|
||
* Use real time clock as timestamp on POSIX.
|
||
|
||
* Add support for syslog (POSIX).
|
||
|
||
* Add :c:macro:`LOG_WRN_ONCE` for logging warning message where only the first occurrence is
|
||
logged.
|
||
|
||
* Add :c:func:`log_thread_trigger` for triggering processing of the log messages.
|
||
|
||
* Fix case when deferred logging not compiling when :kconfig:option:`CONFIG_MULTITHREADING` was
|
||
disabled.
|
||
|
||
* Fix case when logging strings could be stripped from the binary when dictionary based logging
|
||
was mixed with non-dictionary.
|
||
|
||
* Fix dictionary database not being generated in certain situations.
|
||
|
||
* Fix dictionary logging parser not handling long long arguments correctly.
|
||
|
||
* Fix support for :kconfig:option:`CONFIG_LOG_MSG_APPEND_RO_STRING_LOC`.
|
||
|
||
* Modem modules
|
||
|
||
* Added modem pipelink module which shares modem pipes globally, allowing device drivers to
|
||
create and set up pipes for the application to use.
|
||
|
||
* Simplified the modem pipe module's synchronization mechanism to only protect the callback
|
||
and user data. This matches the actual in-tree usage of the modem pipes.
|
||
|
||
* Added ``modem_stats`` module which tracks the usage of buffers throughout the modem
|
||
subsystem.
|
||
|
||
* Power management
|
||
|
||
* Devices can now declare which system power states cause power loss.
|
||
This information can be used to set and release power state
|
||
constraints when it is needed by the device. This feature is enabled with
|
||
:kconfig:option:`CONFIG_PM_POLICY_DEVICE_CONSTRAINTS`. Use functions
|
||
:c:func:`pm_policy_device_power_lock_get` and :c:func:`pm_policy_device_power_lock_put`
|
||
to lock and unlock all power states that cause power loss in a device.
|
||
|
||
* Added shell support for device power management.
|
||
|
||
* Device power management was de-coupled from system power management. The new
|
||
:kconfig:option:`CONFIG_PM_DEVICE_SYSTEM_MANAGED` option is used to enable
|
||
whether devices must be suspended when the system sleeps.
|
||
|
||
* Make it possible to disable system device power management individually per
|
||
power state using ``zephyr,pm-device-disabled``. This allows targets tuning which
|
||
states should (and which should not) trigger device power management.
|
||
|
||
* Crypto
|
||
|
||
* TinyCrypt remains available but is now being phased out in favor
|
||
of PSA Crypto for enhanced security and performance.
|
||
* Mbed TLS was updated to 3.6.0. Release notes can be found at:
|
||
https://github.com/Mbed-TLS/mbedtls/releases/tag/v3.6.0
|
||
* When any PSA crypto provider is available in the system
|
||
(:kconfig:option:`CONFIG_MBEDTLS_PSA_CRYPTO_CLIENT` is enabled), desired PSA features
|
||
must now be explicitly selected through ``CONFIG_PSA_WANT_xxx`` symbols.
|
||
* Choice symbols :kconfig:option:`CONFIG_MBEDTLS_PSA_CRYPTO_LEGACY_RNG` and
|
||
:kconfig:option:`CONFIG_MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG` were added in order
|
||
to allow the user to specify how Mbed TLS PSA crypto core should generate random numbers.
|
||
The former option, which is the default, relies on legacy entropy and CTR_DRBG/HMAC_DRBG
|
||
modules, while the latter relies on CSPRNG drivers.
|
||
* :kconfig:option:`CONFIG_MBEDTLS_PSA_P256M_DRIVER_ENABLED` enables support
|
||
for the Mbed TLS's p256-m driver PSA crypto library. This is a Cortex-M SW
|
||
optimized implementation of secp256r1 curve.
|
||
|
||
* CMSIS-NN
|
||
|
||
* CMSIS-NN was updated to v6.0.0 from v4.1.0:
|
||
https://arm-software.github.io/CMSIS-NN/latest/rev_hist.html
|
||
|
||
* FPGA
|
||
|
||
* Improve handling of drivers missing ``reset``, ``load``, ``get_status``, and ``get_info``
|
||
methods.
|
||
* Add support for Agilex and Agilex 5.
|
||
|
||
* Random
|
||
|
||
* Besides the existing :c:func:`sys_rand32_get` function, :c:func:`sys_rand8_get`,
|
||
:c:func:`sys_rand16_get` and :c:func:`sys_rand64_get` are now also available.
|
||
These functions are all implemented on top of :c:func:`sys_rand_get`.
|
||
|
||
* SD
|
||
|
||
* SDMMC and SDIO frequency and timing selection logic have been reworked,
|
||
to resolve an issue where a timing mode would not be selected if the
|
||
SDHC device in use did not report support for the maximum frequency
|
||
possible in that mode. Now, if the host controller and card both report
|
||
support for a given timing mode but not the highest frequency that
|
||
mode supports, the timing mode will be selected and configured at
|
||
the reduced frequency (:github:`72705`).
|
||
|
||
* State Machine Framework
|
||
|
||
* The :c:macro:`SMF_CREATE_STATE` macro now always takes 5 arguments.
|
||
* Transition sources that are parents of the state that was run now choose the correct Least
|
||
Common Ancestor for executing Exit and Entry Actions.
|
||
* Passing ``NULL`` to :c:func:`smf_set_state` is now not allowed.
|
||
|
||
* Storage
|
||
|
||
* FAT FS: It is now possible to expose file system formatting functionality for FAT without also
|
||
enabling automatic formatting on mount failure by setting the
|
||
:kconfig:option:`CONFIG_FS_FATFS_MKFS` Kconfig option. This option is enabled by default if
|
||
:kconfig:option:`CONFIG_FILE_SYSTEM_MKFS` is set.
|
||
|
||
* FS: It is now possible to truncate a file while opening using :c:func:`fs_open`
|
||
and by passing ``FS_O_TRUNC`` flag.
|
||
|
||
* Flash Map: TinyCrypt has been replaced with PSA Crypto in Flash Area integrity check.
|
||
|
||
* Flash Map: :c:func:`flash_area_flatten` has been added to be used where an erase
|
||
operation has been previously used for removing/scrambling data rather than
|
||
to prepare a device for a random data write.
|
||
|
||
* Flash Map: :c:macro:`FIXED_PARTITION_NODE_OFFSET`, :c:macro:`FIXED_PARTITION_NODE_SIZE`
|
||
and :c:macro:`FIXED_PARTITION_NODE_DEVICE` have been added to allow obtaining
|
||
fixed partition information from a devicetree node rather than a label.
|
||
|
||
* Added :kconfig:option:`CONFIG_NVS_DATA_CRC`, to add CRC protection for data.
|
||
Note that enabling this option makes NVS incompatible with existing storage
|
||
that have not been previously using CRC on data.
|
||
|
||
* Fixed NVS issue where :c:func:`nvs_calc_free_space` would return larger
|
||
size than available, because space for reserved ate was not subtracted.
|
||
|
||
* Fixed ext2 incorrectly calculating free space when attempting to format
|
||
partition.
|
||
|
||
* Fixed FAT driver leaving disk in initialized state after unmount.
|
||
|
||
* Task Watchdog
|
||
|
||
* Added shell (mainly for testing purposes during development).
|
||
|
||
* POSIX API
|
||
|
||
* Improved Kconfig options to reflect standard POSIX Options and Option Groups.
|
||
|
||
* Added support for the following Option Groups
|
||
|
||
* :ref:`POSIX_MAPPED_FILES <posix_option_group_mapped_files>`
|
||
* :ref:`POSIX_MEMORY_PROTECTION <posix_option_group_memory_protection>`
|
||
* :ref:`POSIX_NETWORKING <posix_option_group_networking>`
|
||
* :ref:`POSIX_SINGLE_PROCESS <posix_option_group_single_process>`
|
||
* :ref:`POSIX_TIMERS <posix_option_group_timers>`
|
||
* :ref:`XSI_SYSTEM_LOGGING <posix_option_group_xsi_system_logging>`
|
||
|
||
* Added support for the following Options
|
||
|
||
* :ref:`_POSIX_ASYNCHRONOUS_IO <posix_option_asynchronous_io>`
|
||
* :ref:`_POSIX_CPUTIME <posix_option_cputime>`
|
||
* :ref:`_POSIX_FSYNC <posix_option_fsync>`
|
||
* :ref:`_POSIX_MEMLOCK <posix_option_memlock>`
|
||
* :ref:`_POSIX_MEMLOCK_RANGE <posix_option_memlock_range>`
|
||
* :ref:`_POSIX_READER_WRITER_LOCKS <posix_option_reader_writer_locks>`
|
||
* :ref:`_POSIX_SHARED_MEMORY_OBJECTS <posix_shared_memory_objects>`
|
||
* :ref:`_POSIX_THREAD_CPUTIME <posix_option_thread_cputime>`
|
||
* :ref:`_POSIX_THREAD_PRIO_PROTECT <posix_option_thread_prio_protect>`
|
||
* :ref:`_POSIX_THREAD_PRIORITY_SCHEDULING <posix_option_thread_priority_scheduling>`
|
||
* :ref:`_XOPEN_STREAMS <posix_option_xopen_streams>`
|
||
|
||
* Fixed eventfd ``F_SETFL`` handling to avoid overwriting internal flags.
|
||
* Fixed thread stack address printed in debug message.
|
||
* Fixed macro parameter usage in signal code.
|
||
|
||
* LoRa/LoRaWAN
|
||
|
||
* Added the Fragmented Data Block Transport service, which can be enabled via
|
||
:kconfig:option:`CONFIG_LORAWAN_FRAG_TRANSPORT`. In addition to the default fragment decoder
|
||
implementation from Semtech, an in-tree implementation with reduced memory footprint is
|
||
available.
|
||
|
||
* Added a sample to demonstrate LoRaWAN firmware-upgrade over the air (FUOTA).
|
||
|
||
* ZBus
|
||
|
||
* Improved the VDED process by optimizing the channel reference copying for the clones delivered
|
||
during the message subscriber delivery notification.
|
||
|
||
* Improved the initialization phase by statically initiating the semaphores and runtime observer
|
||
list. That decreased the duration of the zbus initialization.
|
||
|
||
* Added a way of isolating a channel message subscribers pool. Some channels can now share an
|
||
isolated pool to avoid delivery failures and shorten communication latency. It is only necessary
|
||
to enable the :kconfig:option:`CONFIG_ZBUS_MSG_SUBSCRIBER_NET_BUF_POOL_ISOLATION` and use the
|
||
function :c:func:`zbus_chan_set_msg_sub_pool` to change the msg pool used by the channel.
|
||
Channels can share the same message pool.
|
||
|
||
HALs
|
||
****
|
||
|
||
* Nordic
|
||
|
||
* Updated nrfx to version 3.5.0.
|
||
* Added nRF Services (nrfs) library.
|
||
|
||
* STM32
|
||
|
||
* Updated STM32F0 to cube version V1.11.5.
|
||
* Updated STM32F3 to cube version V1.11.5.
|
||
* Updated STM32F4 to cube version V1.28.0.
|
||
* Updated STM32F7 to cube version V1.17.2.
|
||
* Updated STM32G0 to cube version V1.6.2.
|
||
* Updated STM32G4 to cube version V1.5.2.
|
||
* Updated STM32H5 to cube version V1.2.0.
|
||
* Updated STM32H7 to cube version V1.11.2.
|
||
* Updated STM32L5 to cube version V1.5.1.
|
||
* Updated STM32U5 to cube version V1.5.0.
|
||
* Updated STM32WB to cube version V1.19.1.
|
||
* Updated STM32WBA to cube version V1.3.1.
|
||
* Added STM32H7R/S with cube version V1.0.0.
|
||
|
||
* ADI
|
||
|
||
* Introduced the ``hal_adi`` module, which is a subset of the Maxim Software
|
||
Development Kit (MSDK) that contains device header files and bare metal
|
||
peripheral drivers (:github:`72391`).
|
||
|
||
* Espressif
|
||
|
||
* Updated HAL to version v5.1, which has new SoCs low-level files.
|
||
|
||
MCUboot
|
||
*******
|
||
|
||
* Fixed memory leak in bootutil HKDF implementation
|
||
|
||
* Fixed enforcing TLV entries to be protected
|
||
|
||
* Fixed disabling instruction/data caches
|
||
|
||
* Fixed estimated image overhead size calculation
|
||
|
||
* Fixed issue with swap-move algorithm failing to validate multiple-images
|
||
|
||
* Fixed align script error in imgtool
|
||
|
||
* Fixed img verify for hex file format in imgtool
|
||
|
||
* Fixed issue with reading the flash image reset vector
|
||
|
||
* Fixed too-early ``check_config.h`` include in mbedtls
|
||
|
||
* Refactored image dependency functions to reduce code size
|
||
|
||
* Added MCUboot support for ``ESP32-C6``
|
||
|
||
* Added optional MCUboot boot banner
|
||
|
||
* Added TLV querying for protected region
|
||
|
||
* Added using builtin keys for verification in bootutil
|
||
|
||
* Added builtin ECDSA key support for PSA Crypto backend
|
||
|
||
* Added ``OVERWRITE_ONLY_KEEP_BACKUP`` option for secondary images
|
||
|
||
* Added defines for ``SOC_FLASH_0_ID`` and ``SPI_FLASH_0_ID``
|
||
|
||
* Fixed ASN.1 support for mbedtls version >= 3.1
|
||
|
||
* Fixed bootutil signed/unsigned comparison in ``boot_read_enc_key``
|
||
|
||
* Updated imgtool version.py to take command line arguments
|
||
|
||
* Added imgtool improvements to dumpinfo
|
||
|
||
* Fixed various imgtool dumpinfo issues
|
||
|
||
* Fixed imgtool verify command for edcsa-p384 signed images
|
||
|
||
* Added support for NXP MCXN947
|
||
|
||
* The MCUboot version in this release is version ``2.1.0+0-dev``.
|
||
|
||
OSDP
|
||
****
|
||
|
||
* Fixed issue in CP secure channel handshake where R-MAC can be reverted to an
|
||
old one by a rogue PD sending an out-of-order secure channel response resulting
|
||
in a replay attack.
|
||
|
||
Trusted Firmware-M
|
||
******************
|
||
|
||
* TF-M was updated to 2.1.0. Release notes can be found at:
|
||
https://tf-m-user-guide.trustedfirmware.org/releases/2.1.0.html
|
||
|
||
* Support for MCUboot signature types other than RSA-3072 has been added.
|
||
The type can be chosen with the :kconfig:option:`CONFIG_TFM_MCUBOOT_SIGNATURE_TYPE` Kconfig option.
|
||
Using EC-P256, the new default, reduces flash usage by several KBs compared to RSA.
|
||
|
||
LVGL
|
||
****
|
||
|
||
LVGL was updated to 8.4.0. Release notes can be found at:
|
||
https://docs.lvgl.io/8.4/CHANGELOG.html#v8-4-0-19-march-2024
|
||
|
||
Additionally, the following changes in Zephyr were done:
|
||
|
||
* Added support to place memory pool buffers in ``.lvgl_heap`` section by enabling
|
||
:kconfig:option:`CONFIG_LV_Z_MEMORY_POOL_CUSTOM_SECTION`
|
||
|
||
* Removed kscan-based pointer input wrapper code.
|
||
|
||
* Corrected encoder button behavior to emit ``LV_KEY_ENTER`` events correctly.
|
||
|
||
* Improved handling for :samp:`invert-{x,y}` and ``swap-xy`` configurations.
|
||
|
||
* Added ``LV_MEM_CUSTOM_FREE`` call on file closure.
|
||
|
||
* Added missing Kconfig stubs for DMA2D symbols.
|
||
|
||
* Integrated support for LVGL rounder callback function.
|
||
|
||
Tests and Samples
|
||
*****************
|
||
|
||
* Added snippet for easily enabling UART over Bluetooth LE by passing ``-S nus-console`` during
|
||
``west build``. This snippet sets the :kconfig:option:`CONFIG_BT_ZEPHYR_NUS_AUTO_START_BLUETOOTH`
|
||
which allows non-Bluetooth samples that use the UART APIs to run without modifications
|
||
(e.g.: Console and Logging examples).
|
||
|
||
* Removed ``GSM_PPP`` specific configuration overlays from samples ``net/cloud/tagoio`` and
|
||
``net/mgmt/updatehub``. The ``GSM_PPP`` device driver has been deprecated and removed. The new
|
||
``MODEM_CELLULAR`` device driver which replaces it uses the native networking stack and ``PM``
|
||
subsystem, which like ethernet, requires no application specific actions to set up networking.
|
||
|
||
* Removed ``net/gsm_modem`` sample as the ``GSM_PPP`` device driver it depended on has been
|
||
deprecated and removed. The sample has been replaced by the sample ``net/cellular_modem``
|
||
based on the ``MODEM_CELLULAR`` device driver.
|
||
|
||
* BT LE Coded PHY is now runtime tested in CI with the nrf5x bsim targets.
|
||
|
||
* External ethernet network interfaces have been disabled in the ``tests/net`` tests, since these
|
||
tests are meant to use simulated network interfaces.
|
||
|
||
Issue Related Items
|
||
*******************
|
||
|
||
Known Issues
|
||
============
|
||
|
||
- :github:`74345` - Bluetooth: Non functional on nRF51 with fault
|