| :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 :zephyr:board:`Ambiq Apollo3 Blue board <apollo3_evb>`: ``apollo3_evb``. |
| * Added support for :zephyr:board:`Ambiq Apollo3 Blue Plus board <apollo3p_evb>`: ``apollo3p_evb``. |
| * Added support for :zephyr:board:`Raspberry Pi 5 board <rpi_5>`: ``rpi_5``. |
| * Added support for :zephyr:board:`Seeed Studio XIAO RP2040 board <xiao_rp2040>`: ``xiao_rp2040``. |
| * Added support for :zephyr:board:`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 :zephyr:board:`ST Nucleo H533RE <nucleo_h533re>`: ``nucleo_h533re``. |
| * Added support for :zephyr:board:`ST STM32C0116-DK Discovery Kit <stm32c0116_dk>`: ``stm32c0116_dk``. |
| * Added support for :zephyr:board:`ST STM32H745I Discovery <stm32h745i_disco>`: ``stm32h745i_disco``. |
| * Added support for :zephyr:board:`ST STM32H7S78-DK Discovery <stm32h7s78_dk>`: ``stm32h7s78_dk``. |
| * Added support for :zephyr:board:`ST STM32L152CDISCOVERY board <stm32l1_disco>`: ``stm32l152c_disco``. |
| * Added support for :zephyr:board:`ST STEVAL STWINBX1 Development kit <steval_stwinbx1>`: ``steval_stwinbx1``. |
| * Added support for NXP boards: ``frdm_mcxn947``, ``ke17z512``, ``rd_rw612_bga``, ``frdm_rw612``, ``frdm_ke15z``, ``frdm_ke17z`` |
| * Added support for :zephyr:board:`Synopsys ARC-V RMX1xx nSIM-based simulation platform <nsim_arc_v>`: ``nsim_arc_v/rmx100``. |
| * Added support for :zephyr:board:`Analog Devices MAX32690EVKIT <max32690evkit>`: ``max32690evkit``. |
| * Added support for :zephyr:board:`Analog Devices MAX32680EVKIT <max32680evkit>`: ``max32680evkit``. |
| * Added support for :zephyr:board:`Analog Devices MAX32672EVKIT <max32672evkit>`: ``max32672evkit``. |
| * Added support for :zephyr:board:`Analog Devices MAX32672FTHR <max32672fthr>`: ``max32672fthr``. |
| * Added support for :zephyr:board:`Analog Devices MAX32670EVKIT <max32670evkit>`: ``max32670evkit``. |
| * Added support for :zephyr:board:`Analog Devices MAX32655EVKIT <max32655evkit>`: ``max32655evkit``. |
| * Added support for :zephyr:board:`Analog Devices MAX32655FTHR <max32655fthr>`: ``max32655fthr``. |
| * Added support for :zephyr:board:`Analog Devices AD-APARD32690-SL <apard32690>`: ``ad_apard32690_sl``. |
| * Added support for :zephyr:board:`Infineon Technologies CYW920829M2EVK-02 <cyw920829m2evk_02>`: ``cyw920829m2evk_02``. |
| * Added support for :zephyr:board:`Nuvoton Numaker M2L31KI board <numaker_m2l31ki>`: ``numaker_m2l31ki``. |
| * Added support for :zephyr:board:`Espressif ESP32-S2 DevKit-C <esp32s2_devkitc>`: ``esp32s2_devkitc``. |
| * Added support for :zephyr:board:`Espressif ESP32-S3 DevKit-C <esp32s3_devkitc>`: ``esp32s3_devkitc``. |
| * Added support for :zephyr:board:`Espressif ESP32-C6 DevKit-C <esp32c6_devkitc>`: ``esp32c6_devkitc``. |
| * Added support for :zephyr:board:`Waveshare ESP32-S3-Touch-LCD-1.28 <esp32s3_touch_lcd_1_28>`: ``esp32s3_touch_lcd_1_28``. |
| * Added support for :zephyr:board:`M5Stack ATOM Lite <m5stack_atom_lite>`: ``m5stack_atom_lite``. |
| * Added support for :zephyr:board:`CTHINGS.CO Connectivity Card nRF52840 <ctcc>`: ``ctcc``. |
| |
| * Made these board changes: |
| |
| * On :zephyr:board:`ST STM32H7B3I Discovery Kit <stm32h7b3i_dk>`: ``stm32h7b3i_dk``, |
| 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 :zephyr:board:`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 |
| :zephyr:board:`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 |