1:orphan: 2 3.. _zephyr_3.7: 4 5Zephyr 3.7.0 6############ 7 8We are pleased to announce the release of Zephyr version 3.7.0. 9 10This release is the last non-maintenance 3.x release and, as such, will be the next 11:ref:`Long Term Support (LTS) release <release_process_lts>`. 12 13Major enhancements with this release include: 14 15* A new, completely :ref:`overhauled hardware model <hw_model_v2>` has been introduced. 16 It changes the way both SoCs and boards are named, defined and constructed in Zephyr. 17 Additional information can be found in the :ref:`board_porting_guide`. 18* A long-awaited :ref:`HTTP Server <http_server_interface>` library, and associated service API, 19 allow to easily implement HTTP/1.1 and HTTP/2 servers in Zephyr. Resources can be registered 20 statically or dynamically, and WebSocket support is included. 21* :ref:`POSIX support <posix_support>` has been extended, with most Options of the IEEE 1003-2017 22 :ref:`System Interfaces <posix_system_interfaces_required>` receiving support, as well as most 23 Options and Option groups required for :ref:`PSE51 <posix_aep_pse51>`, 24 :ref:`PSE52 <posix_aep_pse52>`, and :ref:`PSE53 <posix_aep_pse53>`. 25* Bluetooth Host has been extended with support for the Nordic UART Service (NUS), Hands-free Audio 26 Gateway (AG), Advanced Audio Distribution Profile (A2DP), and Audio/Video Distribution Transport 27 Protocol (AVDTP). 28* Sensor abstraction model has been overhauled to adopt a 29 :ref:`read-then-decode approach <sensor-read-and-decode>` that enables more types of sensors and 30 data flows than the previous fetch/get APIs. 31* A new :ref:`LLEXT Extension Developer Kit (EDK) <llext_build_edk>` makes it easier to develop and 32 integrate custom extensions into Zephyr, including outside of the Zephyr tree. 33* :ref:`Native simulator <native_sim>` now supports leveraging the native host networking stack 34 without having to rely on a complex setup of the host environment. 35* Trusted Firmware-M (TF-M) 2.1.0 and Mbed TLS 3.6.0 have been integrated into Zephyr. 36 Both of these versions are LTS releases. What's more, :ref:`psa_crypto` has been adopted as a replacement 37 for TinyCrypt and provides enhanced security and performance. 38* A new experimental implementation of the :ref:`Precision Time Protocol <ptp_interface>` (PTP, IEEE 39 1588) allows to synchronize time across devices with sub-microsecond accuracy. 40* New documentation pages have been introduced to help developers setup their local development 41 environment for :ref:`vscode_ide` and :ref:`clion_ide`. 42 43An overview of the changes required or recommended when migrating your application from Zephyr 44v3.6.0 to Zephyr v3.7.0 can be found in the separate :ref:`migration guide<migration_3.7>`. 45 46While you may refer to release notes from previous 3.x releases for a full change log, other major 47enhancements and changes since previous LTS release, Zephyr 2.7.0, include: 48 49* Added support for Picolibc as the new default C library. 50* Added support for the following types of hardware peripherals: 51 52 * 1-Wire 53 * Battery Charger 54 * Cellular Modem 55 * Fuel Gauge 56 * GNSS 57 * Hardware Spinlock 58 * I3C 59 * RTC (Real Time Clock) 60 * SMBus 61 62* Added support for snippets. Snippets are common configuration settings that can be used across 63 platforms. 64* Added support for Linkable Loadable Extensions (LLEXT). 65* Summary of breaking changes (refer to release notes and migration guides from previous release 66 notes for more details): 67 68 * All Zephyr public headers have been moved to :file:`include/zephyr`, meaning they need to be 69 prefixed with ``<zephyr/...>`` when included. 70 * Pinmux API has been removed. Pin control needs to be used as its replacement, refer to 71 :ref:`pinctrl-guide` for more details. 72 73 * The following deprecated or experimental features have been removed: 74 75 * 6LoCAN 76 * civetweb module. See Zephyr 3.7's new :ref:`http_server_interface` as a replacement. 77 * tinycbor module. You may use zcbor as a replacement. 78 79The following sections provide detailed lists of changes by component. 80 81Security Vulnerability Related 82****************************** 83The following CVEs are addressed by this release: 84 85More detailed information can be found in: 86https://docs.zephyrproject.org/latest/security/vulnerabilities.html 87 88* CVE-2024-3077 `Zephyr project bug tracker GHSA-gmfv-4vfh-2mh8 89 <https://github.com/zephyrproject-rtos/zephyr/security/advisories/GHSA-gmfv-4vfh-2mh8>`_ 90 91* CVE-2024-3332 `Zephyr project bug tracker GHSA-jmr9-xw2v-5vf4 92 <https://github.com/zephyrproject-rtos/zephyr/security/advisories/GHSA-jmr9-xw2v-5vf4>`_ 93 94* CVE-2024-4785: Under embargo until 2024-08-07 95 96* CVE-2024-5754: Under embargo until 2024-09-04 97 98* CVE-2024-5931: Under embargo until 2024-09-10 99 100* CVE-2024-6135: Under embargo until 2024-09-11 101 102* CVE-2024-6137: Under embargo until 2024-09-11 103 104* CVE-2024-6258: Under embargo until 2024-09-05 105 106* CVE-2024-6259: Under embargo until 2024-09-12 107 108* CVE-2024-6442: Under embargo until 2024-09-22 109 110* CVE-2024-6443: Under embargo until 2024-09-22 111 112* CVE-2024-6444: Under embargo until 2024-09-22 113 114API Changes 115*********** 116 117Removed APIs in this release 118============================ 119 120 * The Bluetooth subsystem specific debug symbols are removed. They have been replaced with the 121 Zephyr logging ones. 122 123 * Removed deprecated ``pcie_probe`` and ``pcie_bdf_lookup`` functions from the PCIe APIs. 124 125 * Removed deprecated ``CONFIG_EMUL_EEPROM_AT2X`` Kconfig option. 126 127 * Removed ``pm_device_state_lock``, ``pm_device_state_is_locked`` and ``pm_device_state_unlock`` 128 functions from the Device PM APIs. 129 130 * Removed deprecated MCUmgr transport API functions: ``zephyr_smp_rx_req``, 131 ``zephyr_smp_alloc_rsp`` and ``zephyr_smp_free_buf``. 132 133Deprecated in this release 134========================== 135 136 * Bluetooth advertiser options :code:`BT_LE_ADV_OPT_USE_NAME` and 137 :code:`BT_LE_ADV_OPT_FORCE_NAME_IN_AD` are now deprecated. That means the following macro are 138 deprecated: 139 140 * :c:macro:`BT_LE_ADV_CONN_NAME` 141 * :c:macro:`BT_LE_ADV_CONN_NAME_AD` 142 * :c:macro:`BT_LE_ADV_NCONN_NAME` 143 * :c:macro:`BT_LE_EXT_ADV_CONN_NAME` 144 * :c:macro:`BT_LE_EXT_ADV_SCAN_NAME` 145 * :c:macro:`BT_LE_EXT_ADV_NCONN_NAME` 146 * :c:macro:`BT_LE_EXT_ADV_CODED_NCONN_NAME` 147 148 Application developers will now need to set the advertised name themselves by updating the 149 advertising data or the scan response data. 150 151* CAN 152 153 * Deprecated the :c:func:`can_calc_prescaler` API function, as it allows for bitrate 154 errors. Bitrate errors between nodes on the same network leads to them drifting apart after the 155 start-of-frame (SOF) synchronization has taken place, leading to bus errors. 156 * Deprecated the :c:func:`can_get_min_bitrate` and :c:func:`can_get_max_bitrate` API functions in 157 favor of :c:func:`can_get_bitrate_min` and :c:func:`can_get_bitrate_max`. 158 * Deprecated the :c:macro:`CAN_MAX_STD_ID` and :c:macro:`CAN_MAX_EXT_ID` macros in favor of 159 :c:macro:`CAN_STD_ID_MASK` and :c:macro:`CAN_EXT_ID_MASK`. 160 161* PM 162 163 * Deprecated :kconfig:option:`CONFIG_PM_DEVICE_RUNTIME_EXCLUSIVE`. Similar behavior can be achieved 164 using :kconfig:option:`CONFIG_PM_DEVICE_SYSTEM_MANAGED`. 165 166.. _zephyr_3.7_posix_api_deprecations: 167 168* POSIX API 169 170 * Deprecated :c:macro:`PTHREAD_BARRIER_DEFINE` has been removed. 171 * Deprecated :c:macro:`EFD_IN_USE` and :c:macro:`EFD_FLAGS_SET` have been removed. 172 173 * In efforts to use Kconfig options that map directly to the Options and Option Groups in 174 IEEE 1003.1-2017, the following Kconfig options have been deprecated (replaced by): 175 176 * :kconfig:option:`CONFIG_EVENTFD_MAX` (:kconfig:option:`CONFIG_ZVFS_EVENTFD_MAX`) 177 * :kconfig:option:`CONFIG_FNMATCH` (:kconfig:option:`CONFIG_POSIX_C_LIB_EXT`) 178 * :kconfig:option:`CONFIG_GETOPT` (:kconfig:option:`CONFIG_POSIX_C_LIB_EXT`) 179 * :kconfig:option:`CONFIG_MAX_PTHREAD_COUNT` (:kconfig:option:`CONFIG_POSIX_THREAD_THREADS_MAX`) 180 * :kconfig:option:`CONFIG_MAX_PTHREAD_KEY_COUNT` (:kconfig:option:`CONFIG_POSIX_THREAD_KEYS_MAX`) 181 * :kconfig:option:`CONFIG_MAX_TIMER_COUNT` (:kconfig:option:`CONFIG_POSIX_TIMER_MAX`) 182 * :kconfig:option:`CONFIG_POSIX_LIMITS_RTSIG_MAX` (:kconfig:option:`CONFIG_POSIX_RTSIG_MAX`) 183 * :kconfig:option:`CONFIG_POSIX_CLOCK` (:kconfig:option:`CONFIG_POSIX_CLOCK_SELECTION`, 184 :kconfig:option:`CONFIG_POSIX_CPUTIME`, :kconfig:option:`CONFIG_POSIX_MONOTONIC_CLOCK`, 185 :kconfig:option:`CONFIG_POSIX_TIMERS`, and :kconfig:option:`CONFIG_POSIX_TIMEOUTS`) 186 * :kconfig:option:`CONFIG_POSIX_FS` (:kconfig:option:`CONFIG_POSIX_FILE_SYSTEM`) 187 * :kconfig:option:`CONFIG_POSIX_MAX_FDS` (:kconfig:option:`CONFIG_POSIX_OPEN_MAX` and 188 :kconfig:option:`CONFIG_ZVFS_OPEN_MAX`) 189 * :kconfig:option:`CONFIG_POSIX_MAX_OPEN_FILES` (:kconfig:option:`CONFIG_POSIX_OPEN_MAX` and 190 :kconfig:option:`CONFIG_ZVFS_OPEN_MAX`) 191 * :kconfig:option:`CONFIG_POSIX_MQUEUE` (:kconfig:option:`CONFIG_POSIX_MESSAGE_PASSING`) 192 * :kconfig:option:`CONFIG_POSIX_PUTMSG` (:kconfig:option:`CONFIG_XOPEN_STREAMS`) 193 * :kconfig:option:`CONFIG_POSIX_SIGNAL` (:kconfig:option:`CONFIG_POSIX_SIGNALS`) 194 * :kconfig:option:`CONFIG_POSIX_SYSCONF` (:kconfig:option:`CONFIG_POSIX_SINGLE_PROCESS`) 195 * :kconfig:option:`CONFIG_POSIX_UNAME` (:kconfig:option:`CONFIG_POSIX_SINGLE_PROCESS`) 196 * :kconfig:option:`CONFIG_PTHREAD` (:kconfig:option:`CONFIG_POSIX_THREADS`) 197 * :kconfig:option:`CONFIG_PTHREAD_BARRIER` (:kconfig:option:`CONFIG_POSIX_BARRIERS`) 198 * :kconfig:option:`CONFIG_PTHREAD_COND` (:kconfig:option:`CONFIG_POSIX_THREADS`) 199 * :kconfig:option:`CONFIG_PTHREAD_IPC` (:kconfig:option:`CONFIG_POSIX_THREADS`) 200 * :kconfig:option:`CONFIG_PTHREAD_KEY` (:kconfig:option:`CONFIG_POSIX_THREADS`) 201 * :kconfig:option:`CONFIG_PTHREAD_MUTEX` (:kconfig:option:`CONFIG_POSIX_THREADS`) 202 * :kconfig:option:`CONFIG_PTHREAD_RWLOCK` (:kconfig:option:`CONFIG_POSIX_READER_WRITER_LOCKS`) 203 * :kconfig:option:`CONFIG_PTHREAD_SPINLOCK` (:kconfig:option:`CONFIG_POSIX_SPIN_LOCKS`) 204 * :kconfig:option:`CONFIG_SEM_NAMELEN_MAX` (:kconfig:option:`CONFIG_POSIX_SEM_NAMELEN_MAX`) 205 * :kconfig:option:`CONFIG_SEM_VALUE_MAX` (:kconfig:option:`CONFIG_POSIX_SEM_VALUE_MAX`) 206 * :kconfig:option:`CONFIG_TIMER` (:kconfig:option:`CONFIG_POSIX_TIMERS`) 207 * :kconfig:option:`CONFIG_TIMER_DELAYTIMER_MAX` (:kconfig:option:`CONFIG_POSIX_DELAYTIMER_MAX`) 208 209 Please see the :ref:`POSIX API migration guide <zephyr_3.7_posix_api_migration>`. 210 211 * SPI 212 213 * Deprecated :c:func:`spi_is_ready` API function has been removed. 214 * Deprecated :c:func:`spi_transceive_async` API function has been removed. 215 * Deprecated :c:func:`spi_read_async` API function has been removed. 216 * Deprecated :c:func:`spi_write_async` API function has been removed. 217 218Architectures 219************* 220 221* ARC 222 223 * Added ARC MWDT toolchain support for ARC-V targets 224 * Added HW memory barrier API support for multicore targets 225 * Enabled TLS by default if C++ is used in case of ARC MWDT toolchain 226 * Fixed the issue when mbedtls failed to build with ARC MWDT toolchain & minimal LibC due to 227 incorrect define which mark support of bounds-checking interfaces C library extension 228 * Fixed device deferred initialization in case of ARC MWDT toolchain 229 230* ARM 231 232 * Added initial support for Cortex-M85 Core 233 234* ARM64 235 236 * Implemented symbol names in the backtraces, enable by selecting :kconfig:option:`CONFIG_SYMTAB` 237 238 * Add compiler tuning for Cortex-R82 239 240* RISC-V 241 242 * The fatal error message triggered from a fault now contains the callee-saved-registers states. 243 244 * Implemented stack unwinding 245 246 * Frame-pointer can be selected to enable precise stack traces at the expense of slightly 247 increased size and decreased speed. 248 249 * Symbol names can be enabled by selecting :kconfig:option:`CONFIG_EXCEPTION_STACK_TRACE_SYMTAB` 250 251* Xtensa 252 253 * Added support to save/restore HiFi AudioEngine registers. 254 255 * Added support to utilize MPU. 256 257 * Added support to automatically generate interrupt handlers. 258 259 * Added support to generate vector table at build time to be included in the linker script. 260 261 * Added kconfig :kconfig:option:`CONFIG_XTENSA_BREAK_ON_UNRECOVERABLE_EXCEPTIONS` to guard 262 using break instruction for unrecoverable exceptions. Enabling the break instruction via 263 this kconfig may result in an infinite interrupt storm which may hinder debugging efforts. 264 265 * Fixed an issue where passing the 7th argument via syscall was handled incorrectly. 266 267 * Fixed an issue where :c:func:`arch_user_string_nlen` accessing unmapped memory resulted 268 in an unrecoverable exception. 269 270Kernel 271****** 272 273 * Added :c:func:`k_uptime_seconds` function to simplify ``k_uptime_get() / 1000`` usage. 274 275 * Added :c:func:`k_realloc`, that uses kernel heap to implement traditional :c:func:`realloc` 276 semantics. 277 278 * Devices can now store devicetree metadata such as nodelabels by turning on 279 :kconfig:option:`CONFIG_DEVICE_DT_METADATA`. This option may be useful in 280 e.g. shells as devices can be obtained using human-friendly names thanks to 281 APIs like :c:func:`device_get_by_dt_nodelabel`. 282 283 * Any device initialization can be deferred if its associated devicetree node 284 has the special ``zephyr,deferred-init`` property set. The device can be 285 initialized later in time by using :c:func:`device_init`. 286 287 * The declaration of statically allocated thread stacks has been updated to utilize 288 :c:macro:`K_THREAD_STACK_LEN` for both single thread stack declaration and array thread 289 stack declarations. This ensures correct alignment for all thread stacks. For user 290 threads, this may increase the size of the statically allocated stack objects depending 291 on architecture alignment requirements. 292 293 * Fix an edge case deadlock in :c:func:`k_thread_abort` (and join) 294 where racing ISRs on SMP systems could become stuck spinning to 295 signal each other's interrupted threads. 296 297 * Fix a bug where :kconfig:option:`CONFIG_SCHED_SCALABLE` and 298 :kconfig:option:`CONFIG_SCHED_DEADLINE` would corrupt the 299 scheduling queue when used together. 300 301Bluetooth 302********* 303 304* Audio 305 306 * Removed ``err`` from :c:struct:`bt_bap_broadcast_assistant_cb.recv_state_removed` as it was 307 redundant. 308 309 * The broadcast_audio_assistant sample has been renamed to bap_broadcast_assistant. 310 The broadcast_audio_sink sample has been renamed to bap_broadcast_sink. 311 The broadcast_audio_source sample has been renamed to bap_broadcast_source. 312 The unicast_audio_client sample has been renamed to bap_unicast_client. 313 The unicast_audio_server sample has been renamed to bap_unicast_server. 314 The public_broadcast_sink sample has been renamed to pbp_public_broadcast_sink. 315 The public_broadcast_source sample has been renamed to pbp_public_broadcast_source. 316 317 * The CAP Commander and CAP Initiator now no longer require CAS to be discovered for 318 :code:`BT_CAP_SET_TYPE_AD_HOC` sets. This allows applications to use these APIs on e.g. 319 BAP Unicast Servers that do not implement the CAP Acceptor role. 320 321* Host 322 323 * Added Nordic UART Service (NUS), enabled by the :kconfig:option:`CONFIG_BT_ZEPHYR_NUS`. 324 This Service exposes the ability to declare multiple instances of the GATT service, 325 allowing multiple serial endpoints to be used for different purposes. 326 327 * Implemented Hands-free Audio Gateway (AG), enabled by the :kconfig:option:`CONFIG_BT_HFP_AG`. 328 It works as a device that is the gateway of the audio. The typical device acting as Audio 329 Gateway is a cellular phone. It controls the device (Hands-free Unit), that is the remote 330 audio input and output mechanism. 331 332 * Implemented Advanced Audio Distribution Profile (A2DP) and Audio/Video Distribution Transport 333 Protocol (AVDTP), A2DP is enabled by :kconfig:option:`CONFIG_BT_A2DP`, AVDTP is enabled 334 by :kconfig:option:`CONFIG_BT_AVDTP`. They implement the protocols and procedures that 335 realize distribution of audio content of high quality in mono, stereo, or multi-channel modes. 336 A typical use case is the streaming of music content from a stereo music player to headphones 337 or speakers. The audio data is compressed in a proper format for efficient use of the limited 338 bandwidth. 339 340 * Reworked the transmission path for data and commands. The "BT TX" thread has been removed, along 341 with the buffer pools for HCI fragments and L2CAP segments. All communication with the 342 Controller is now exclusively done in the system workqueue context. 343 344 * :kconfig:option:`CONFIG_BT_PER_ADV_SYNC_TRANSFER_RECEIVER` and 345 :kconfig:option:`CONFIG_BT_PER_ADV_SYNC_TRANSFER_SENDER` now depend on 346 :kconfig:option:`CONFIG_BT_CONN` as they do not work without connections. 347 348 * Improve :c:func:`bt_foreach_bond` to support Bluetooth Classic key traversal. 349 350* HCI Drivers 351 352 * Completely redesigned HCI driver interface. See the Bluetooth HCI section in 353 :ref:`migration_3.7` for more information. 354 * Added support for Ambiq Apollo3 Blue series. 355 * Added support for NXP RW61x. 356 * Added support for Infineon CYW208XX. 357 * Added support for Renesas SmartBond DA1469x. 358 * Removed unmaintained B91 driver. 359 * Added support for NXP IW612 on boards mimxrt1170_evkb and mimxrt1040_evk. 360 It can be enabled by :kconfig:option:`CONFIG_BT_NXP_NW612`. 361 362Boards & SoC Support 363******************** 364 365* Added support for these SoC series: 366 367 * Added support for Ambiq Apollo3 Blue and Apollo3 Blue Plus SoC series. 368 * Added support for Synopsys ARC-V RMX1xx simulation platform. 369 * Added support for STM32H7R/S SoC series. 370 * Added support for NXP mke15z7, mke17z7, mke17z9, MCXNx4x, RW61x 371 * Added support for Analog Devices MAX32 SoC series. 372 * Added support for Infineon Technologies AIROC |trade| CYW20829 Bluetooth LE SoC series. 373 * Added support for MediaTek MT8195 Audio DSPs 374 * Added support for Nuvoton Numaker M2L31X SoC series. 375 * Added support for the Microchip PolarFire ICICLE Kit SMP variant. 376 * Added support for Renesas RA8 series SoC. 377 378* Made these changes in other SoC series: 379 380 * Intel ACE Audio DSP: Use dedicated registers to report boot status instead of arbitrary memory. 381 * ITE: Rename the Kconfig symbol for all ITE SoC variants. 382 * STM32: Enabled ART Accelerator, I-cache, D-cache and prefetch on compatible series. 383 * STM32H5: Added support for Stop mode and :kconfig:option:`CONFIG_PM`. 384 * STM32WL: Decreased Sub-GHz SPI frequency from 12 to 8MHz. 385 * STM32C0: Added support for :kconfig:option:`CONFIG_POWEROFF`. 386 * STM32U5: Added support for Stop3 mode. 387 * Synopsys: 388 389 * nsim: split nsim platform for arc_classic (ARCv2 and ARCv3 ISA based) and arc_v (RISC-V ISA based) 390 * nsim/nsim_hs5x/smp: align sys clock frequency with other SMP nSIM configs 391 392 * NXP IMX8M: added resource domain controller support 393 * NXP s32k146: set RTC clock source to internal oscillator 394 * GD32F4XX: Fixed an incorrect uart4 irq number. 395 * Nordic nRF54L: Added support for the FLPR (fast lightweight processor) RISC-V CPU. 396 * Espressif: Removed idf-bootloader dependency from all ESP32 SoC variants. 397 * Espressif: Added Simple boot support for ESP32 SoC variants, which allows loading application 398 using a single binary image without a 2nd stage bootloader. 399 * Espressif: Re-worked and optimized all SoCs memory map. 400 * LiteX: 401 402 * Added support for :c:func:`sys_arch_reboot()`. 403 * :kconfig:option:`CONFIG_RISCV_ISA_EXT_A` is no longer erroneously y-selected. 404 * rp2040: The proprietary UART driver has been discontinued and replaced with PL011. 405 406 * Renesas RZ/T2M: Added default values for System Clock Control register. 407 408* Added support for these boards: 409 410 * Added support for :zephyr:board:`Ambiq Apollo3 Blue board <apollo3_evb>`: ``apollo3_evb``. 411 * Added support for :zephyr:board:`Ambiq Apollo3 Blue Plus board <apollo3p_evb>`: ``apollo3p_evb``. 412 * Added support for :zephyr:board:`Raspberry Pi 5 board <rpi_5>`: ``rpi_5``. 413 * Added support for :zephyr:board:`Seeed Studio XIAO RP2040 board <xiao_rp2040>`: ``xiao_rp2040``. 414 * Added support for :zephyr:board:`Mikroe RA4M1 Clicker board <mikroe_clicker_ra4m1>`: ``mikroe_clicker_ra4m1``. 415 * Added support for :ref:`Arduino UNO R4 WiFi board <arduino_uno_r4>`: ``arduino_uno_r4_wifi``. 416 * Added support for :ref:`Renesas EK-RA8M1 board <ek_ra8m1>`: ``ek_ra8m1``. 417 * Added support for :zephyr:board:`ST Nucleo H533RE <nucleo_h533re>`: ``nucleo_h533re``. 418 * Added support for :zephyr:board:`ST STM32C0116-DK Discovery Kit <stm32c0116_dk>`: ``stm32c0116_dk``. 419 * Added support for :zephyr:board:`ST STM32H745I Discovery <stm32h745i_disco>`: ``stm32h745i_disco``. 420 * Added support for :zephyr:board:`ST STM32H7S78-DK Discovery <stm32h7s78_dk>`: ``stm32h7s78_dk``. 421 * Added support for :zephyr:board:`ST STM32L152CDISCOVERY board <stm32l1_disco>`: ``stm32l152c_disco``. 422 * Added support for :zephyr:board:`ST STEVAL STWINBX1 Development kit <steval_stwinbx1>`: ``steval_stwinbx1``. 423 * Added support for NXP boards: ``frdm_mcxn947``, ``ke17z512``, ``rd_rw612_bga``, ``frdm_rw612``, ``frdm_ke15z``, ``frdm_ke17z`` 424 * Added support for :zephyr:board:`Synopsys ARC-V RMX1xx nSIM-based simulation platform <nsim_arc_v>`: ``nsim_arc_v/rmx100``. 425 * Added support for :zephyr:board:`Analog Devices MAX32690EVKIT <max32690evkit>`: ``max32690evkit``. 426 * Added support for :zephyr:board:`Analog Devices MAX32680EVKIT <max32680evkit>`: ``max32680evkit``. 427 * Added support for :zephyr:board:`Analog Devices MAX32672EVKIT <max32672evkit>`: ``max32672evkit``. 428 * Added support for :zephyr:board:`Analog Devices MAX32672FTHR <max32672fthr>`: ``max32672fthr``. 429 * Added support for :zephyr:board:`Analog Devices MAX32670EVKIT <max32670evkit>`: ``max32670evkit``. 430 * Added support for :zephyr:board:`Analog Devices MAX32655EVKIT <max32655evkit>`: ``max32655evkit``. 431 * Added support for :zephyr:board:`Analog Devices MAX32655FTHR <max32655fthr>`: ``max32655fthr``. 432 * Added support for :zephyr:board:`Analog Devices AD-APARD32690-SL <apard32690>`: ``ad_apard32690_sl``. 433 * Added support for :zephyr:board:`Infineon Technologies CYW920829M2EVK-02 <cyw920829m2evk_02>`: ``cyw920829m2evk_02``. 434 * Added support for :zephyr:board:`Nuvoton Numaker M2L31KI board <numaker_m2l31ki>`: ``numaker_m2l31ki``. 435 * Added support for :zephyr:board:`Espressif ESP32-S2 DevKit-C <esp32s2_devkitc>`: ``esp32s2_devkitc``. 436 * Added support for :zephyr:board:`Espressif ESP32-S3 DevKit-C <esp32s3_devkitc>`: ``esp32s3_devkitc``. 437 * Added support for :zephyr:board:`Espressif ESP32-C6 DevKit-C <esp32c6_devkitc>`: ``esp32c6_devkitc``. 438 * Added support for :zephyr:board:`Waveshare ESP32-S3-Touch-LCD-1.28 <esp32s3_touch_lcd_1_28>`: ``esp32s3_touch_lcd_1_28``. 439 * Added support for :zephyr:board:`M5Stack ATOM Lite <m5stack_atom_lite>`: ``m5stack_atom_lite``. 440 * Added support for :zephyr:board:`CTHINGS.CO Connectivity Card nRF52840 <ctcc>`: ``ctcc``. 441 442* Made these board changes: 443 444 * On :zephyr:board:`ST STM32H7B3I Discovery Kit <stm32h7b3i_dk>`: ``stm32h7b3i_dk``, 445 enabled full cache management, Chrom-ART, double frame buffer and full refresh for 446 optimal LVGL performance. 447 * On ST STM32 boards, stm32cubeprogrammer runner can now be used to program external 448 flash using ``--extload`` option. 449 * Add HEX file support for Linkserver to all NXP boards 450 * Updated the Linkserver west runner to reflect changes to the CLI of LinkServer v1.5.xx 451 * Add LinkServer support to NXP ``mimxrt1010_evk``, ``mimxrt1160_evk``, ``frdm_rw612``, ``rd_rw612_bga``, ``frdm_mcxn947`` 452 * Introduced the simulated :ref:`nrf54l15bsim<nrf54l15bsim>` target. 453 * The nrf5x bsim targets now support BT LE Coded PHY. 454 * LLVM fuzzing support has been refactored while adding support for it in native_sim. 455 * nRF54H20 PDK (pre-release) converted to :ref:`nrf54h20dk_nrf54h20` 456 * PPR core target in :ref:`nrf54h20dk_nrf54h20` runs from RAM by default. A 457 new ``xip`` variant has been introduced which runs from MRAM (XIP). 458 * Refactored :zephyr:board:`beagleconnect_freedom` external antenna switch handling. 459 * Added Arduino dts node labels for the nRF5340 Audio DK. 460 * Changed the default revision of the nRF54L15 PDK from 0.2.1 to 0.3.0. 461 * In boards based on the nRF5340 SoC, replaced direct accesses to the register 462 that controls the network core Force-OFF signal with a module that uses an 463 on-off manager to keep track of the network core use and exposes its API 464 in ``<nrf53_cpunet_mgmt.h>``. 465 * Laird Connectivity boards are rebranded to Ezurio. 466 467* Added support for the following shields: 468 469 * :ref:`adafruit_2_8_tft_touch_v2` (``adafruit_2_8_tft_touch_v2``) 470 * :ref:`adafruit_neopixel_grid_bff` (``adafruit_neopixel_grid_bff``) 471 * :ref:`arduino_uno_click` (``arduino_uno_click``) 472 * :ref:`dvp_fpc24_mt9m114` (``dvp_fpc24_mt9m114``) 473 * :ref:`lcd_par_s035` (``lcd_par_s035``) 474 * :ref:`mikroe_weather_click` (``mikroe_weather_click``) 475 * :ref:`nxp_btb44_ov5640` (``nxp_btb44_ov5640``) 476 * :ref:`reyax_lora` (``reyax_lora``) 477 * :ref:`rk043fn02h_ct` (``rk043fn02h_ct``) 478 * :ref:`rk043fn66hs_ctg` (``rk043fn66hs_ctg``) 479 * :ref:`rpi_pico_uno_flexypin` (``rpi_pico_uno_flexypin``) 480 * :ref:`seeed_xiao_expansion_board` (``seeed_xiao_expansion_board``) 481 * :ref:`seeed_xiao_round_display` (``seeed_xiao_round_display``) 482 * :ref:`sparkfun_carrier_asset_tracker` (``sparkfun_carrier_asset_tracker``) 483 * :ref:`st_b_lcd40_dsi1_mb1166` (``st_b_lcd40_dsi1_mb1166``) 484 * :ref:`waveshare_epaper` (``waveshare_epaper``) 485 * :ref:`x_nucleo_bnrg2a1` (``x_nucleo_bnrg2a1``) 486 487Build system and Infrastructure 488******************************* 489 490 * CI-enabled blackbox tests were added to verify the correctness of most Twister flags. 491 492 * A ``socs`` folder for applications has been introduced that allows for Kconfig fragments and 493 devicetree overlays that should apply to any board target using a particular SoC and board 494 qualifier (:github:`70418`). Support has also been added to sysbuild (:github:`71320`). 495 496 * :ref:`Board/SoC flashing configuration<flashing-soc-board-config>` settings have been added 497 (:github:`69748`). 498 499 * Deprecated the global CSTD cmake property in favor of the :kconfig:option:`CONFIG_STD_C` 500 choice to select the C Standard version. Additionally, subsystems can select a minimum 501 required C Standard version, with, for example, :kconfig:option:`CONFIG_REQUIRES_STD_C11`. 502 503 * Fixed issue with passing UTF-8 configs to applications using sysbuild (:github:`74152`). 504 505 * Fixed issue whereby domain file in sysbuild projects would be loaded and used with outdated 506 information if sysbuild configuration was changed, and ``west flash`` was ran directly after 507 (:github:`73864`). 508 509 * Fixed issue with Zephyr modules not being listed in sysbuild if they did not have a Kconfig 510 file set (:github:`72070`). 511 512 * Added sysbuild ``SB_CONFIG_COMPILER_WARNINGS_AS_ERRORS`` Kconfig option to turn on 513 "warning as error" toolchain flags for all images, if set (:github:`70217`). 514 515 * Fixed issue whereby files used in a project (e.g. devicetree overlays or Kconfig fragments) 516 were not correctly watched and CMake would not reconfigure if they were changed 517 (:github:`74655`). 518 519 * Added flash support for Intel Hex files for the LinkServer runner. 520 521 * Added sysbuild ``sysbuild/CMakeLists.txt`` entry point and added support for 522 ``APPLICATION_CONFIG_DIR`` which allows for adjusting how sysbuild functions (:github:`72923`). 523 524 * Fixed issue with armfvp find path if it contained a colon-separated list (:github:`74868`). 525 526 * Fixed issue with version.cmake field sizes not being enforced (:github:`74357`). 527 528 * Fixed issue with sysbuild not clearing ``EXTRA_CONF_FILE`` before processing images which 529 prevented this option being passed on to the image (:github:`74082`). 530 531 * Added sysbuild root support which works similarly to the existing root module, adjusting paths 532 relative to ``APP_DIR`` (:github:`73390`). 533 534 * Added warning/error message for blobs that are missing (:github:`73051`). 535 536 * Fixed issue with correct python executable detection on some systems (:github:`72232`). 537 538 * Added support for enabling LTO for whole application (:github:`69519`). 539 540 * Fixed ``FILE_SUFFIX`` issues relating to double application of suffixes, non-application in 541 sysbuild and variable name clashes in CMake functions (:github:`70124`, :github:`71280`). 542 543 * Added support for new aggressive size optimisation flag (for GCC and Clang) using 544 :kconfig:option:`CONFIG_SIZE_OPTIMIZATIONS_AGGRESSIVE` (:github:`70511`). 545 546 * Fixed issue with printing out ``BUILD_VERSION`` if it was empty (:github:`70970`). 547 548 * Fixed sysbuild issue of ``sysbuild_cache_set()`` cmake function wrongly detecting partial 549 matches for de-duplication (:github:`71381`). 550 551 * Fixed issue with detecting wrong ``VERSION`` file (:github:`71385`). 552 553 * Added support for disabling output disassembly having the source code in using 554 :kconfig:option:`CONFIG_OUTPUT_DISASSEMBLY_WITH_SOURCE` (:github:`71535`). 555 556 * Twister now supports ``--flash-before`` parameter that allows flashing DUT before 557 opening serial port (:github:`47037`). 558 559Drivers and Sensors 560******************* 561 562* ADC 563 564 * Added ``ADC_DT_SPEC_*BY_NAME()`` macros to get ADC IO-channel information from DT by name. 565 * Added support for voltage biasing: 566 567 * Added a :kconfig:option:`CONFIG_ADC_CONFIGURABLE_VBIAS_PIN` selected by drivers that support 568 voltage biasing. 569 * Added a ``zephyr,vbias-pins`` property to the adc-controller base binding to describe voltage 570 bias pins. 571 * Implemented for the TI ADC114s08 ADC driver. 572 * Sample changes 573 574 * Renamed existing ADC sample to adc_dt. 575 * Added a new sample called adc_sequence that shows more of the runtime 576 :c:struct:`adc_sequence` features. 577 * New ADC Drivers 578 579 * Added driver for the ENE KB1200. 580 * Added driver for the NXP GAU ADC. 581 * ADI AD559x changes 582 583 * Added support for ADI's ad5593. 584 * Added I2C bus support for ADI ad559x. 585 * Added configuration of internal reference voltage value to ad559x to support 586 calls of :c:func:`adc_raw_to_millivolts()`. 587 * Fixed issue with driver initialization causing improper operation in the ad559x driver 588 regarding the availability of :kconfig:option:`CONFIG_THREAD_NAME`. 589 * Improved the ADC read efficiency and validation in ad559x driver. 590 * ESP32 changes 591 592 * Updated ESP32 ADC driver to work with version 5.1 of hal_espressif. 593 * Added support for DMA mode operation for ESP32S3 and ESP32C3. 594 * nRF changes 595 596 * Added support for nRF54L15 and nRF54H20 in the nrfx_saadc driver. 597 * Improved the nRF SAADC driver by disabling burst mode on unused channels, avoiding freezes. 598 * Fixed issue which allowed negative ADC readings in single-ended mode using the 599 ``adc_nrfx_saadc.c`` device driver. 600 Note that this fix prevents the nRF54H and nRF54L series from performing 601 8-bit resolution single-ended readings due to hardware limitations. 602 * NXP LPADC changes 603 604 * Enabled acquisition time feature in the NXP LPADC driver. 605 * Added support for regulator output as reference to NXP LPADC. 606 * Changed phandle type DT property ``nxp,reference-supply`` to phandle-array type DT property 607 ``nxp,references`` in ``nxp,lpc-lpadc`` binding. The NXP LPADC driver now supports passing 608 the reference voltage value by using ``nxp,references``. 609 * Smartbond changes 610 611 * Added support for power management to the Smartbond SDADC and GPADC drivers. 612 * Fixed support for :kconfig:option:`CONFIG_PM_DEVICE_RUNTIME` in the Smartbond ADC driver. 613 * STM32 changes 614 615 * Fixed various issues with DMA support in the STM32 ADC driver. 616 * Added support for STM32H7R/S series. 617 * Other driver changes 618 619 * Added support for Nuvoton m2l31x in the numaker ADC driver. 620 * Fixed issue with configuration register access in the ads1119 driver. 621 * Fixed uninitialized value in kb1200 driver found in static analysis. 622 * Fixed issue with :c:func:`adc_raw_to_millivolts` returning half the actual voltage with 623 the tla2021 driver by correcting the reference voltage value. 624 625 626 * Added support for Nuvoton Numaker M2L31X series. 627 628* Battery 629 630 * Added ``re-charge-voltage-microvolt`` property to the ``battery`` binding. This allows to set 631 limit to automatically start charging again. 632 633* Battery backed up RAM 634 635 * Added support for STM32G0 and STM32H5 series. 636 637* CAN 638 639 * Extended support for automatic sample point location to also cover :c:func:`can_calc_timing` and 640 :c:func:`can_calc_timing_data`. 641 * Added optional ``min-bitrate`` devicetree property for CAN transceivers. 642 * Added devicetree macros :c:macro:`DT_CAN_TRANSCEIVER_MIN_BITRATE` and 643 :c:macro:`DT_INST_CAN_TRANSCEIVER_MIN_BITRATE` for getting the minimum supported bitrate of a CAN 644 transceiver. 645 * Added support for specifying the minimum bitrate supported by a CAN controller in the internal 646 ``CAN_DT_DRIVER_CONFIG_GET`` and ``CAN_DT_DRIVER_CONFIG_INST_GET`` macros. 647 * Added :c:func:`can_get_bitrate_min` and :c:func:`can_get_bitrate_max` for retrieving the minimum 648 and maximum supported bitrate for a given CAN controller/CAN transceiver combination, reflecting 649 that retrieving the bitrate limits can no longer fail. Deprecated the existing 650 :c:func:`can_get_max_bitrate` API function. 651 * Updated the CAN timing functions to take the minimum supported bitrate into consideration when 652 validating the bitrate. 653 * Made the ``sample-point`` and ``sample-point-data`` devicetree properties optional. 654 * Renamed the ``bus_speed`` and ``bus_speed_data`` fields of :c:struct:`can_driver_config` to 655 ``bitrate`` and ``bitrate_data``. 656 * Added driver for :dtcompatible:`nordic,nrf-can`. 657 * Added driver support for Numaker M2L31X to the :dtcompatible:`nuvoton,numaker-canfd` driver. 658 * Added host communication test suite. 659 660* Charger 661 662 * Added ``chgin-to-sys-current-limit-microamp`` property to ``maxim,max20335-charger``. 663 * Added ``system-voltage-min-threshold-microvolt`` property to ``maxim,max20335-charger``. 664 * Added ``re-charge-threshold-microvolt`` property to ``maxim,max20335-charger``. 665 * Added ``thermistor-monitoring-mode`` property to ``maxim,max20335-charger``. 666 667* Clock control 668 669 * Added support for Microcontroller Clock Output (MCO) on STM32H5 series. 670 * Added support for MSI clock on STM32WL series. 671 * Added driver for Analog Devices MAX32 SoC series. 672 * Added support for Nuvoton Numaker M2L31X series. 673 * Refactored ESP32 clock control driver to support ESP32-C6. 674 * In LiteX (:file:`drivers/clock_control/clock_control_litex.c`) added return code checking for 675 :c:func:`litex_clk_get_duty_cycle()` and :c:func:`litex_clk_get_clkout_divider`. 676 677* Counter 678 679 * Added support for Ambiq Apollo3 series. 680 * Added support for STM32H7R/S series. 681 * Added driver for LPTMR to NXP MCXN947 682 * Added the ``resolution`` property in ``nxp,lptmr`` binding to represent the maximum width 683 in bits the LPTMR peripheral uses for its counter. 684 685* DAC 686 687 * Added support for NXP RW SOC series DAC (:dtcompatible:`nxp,gau-dac`). 688 * Added support for Analog Devices AD5691 / AD5692 / AD5693 DACs 689 (:dtcompatible:`adi,ad5691`, :dtcompatible:`adi,ad5692` and :dtcompatible:`adi,ad5693`). 690 * Added support for Texas Instruments DACx0501 series DACs (:dtcompatible:`ti,dacx0501`). 691 692* Disk 693 694 * Support for eMMC devices was added to the STM32 SD driver. This can 695 be enabled with :kconfig:option:`CONFIG_SDMMC_STM32_EMMC`. 696 * Added a loopback disk driver, to expose a disk device backed by a file. 697 A file can be registered with the loopback disk driver using 698 :c:func:`loopback_disk_access_register` 699 * Added support for :c:macro:`DISK_IOCTL_CTRL_INIT` and 700 :c:macro:`DISK_IOCTL_CTRL_DEINIT` macros, which allow for initializing 701 and de-initializing a disk at runtime. This allows hotpluggable 702 disk devices (like SD cards) to be removed and reinserted at runtime. 703 * Added SDMMC support for STM32H5 series. 704 705* Display 706 707 * All in tree displays capable of supporting the :ref:`mipi_dbi_api` have 708 been converted to use it. GC9X01X, UC81XX, SSD16XX, ST7789V, ST7735R based 709 displays have been converted to this API. Boards using these displays will 710 need their devicetree updated, see the display section of 711 :ref:`migration_3.7` for examples of this process. 712 * Added driver for ST7796S display controller (:dtcompatible:`sitronix,st7796s`) 713 * Added support for :c:func:`display_read` API to ILI9XXX display driver, 714 which can be enabled with :kconfig:option:`CONFIG_ILI9XXX_READ` 715 * Added support for :c:func:`display_set_orientation` API to SSD16XXX 716 display driver 717 * Added driver for NT35510 MIPI-DSI display controller 718 (:dtcompatible:`frida,nt35510`) 719 * Added driver to abstract LED strip devices as displays 720 (:dtcompatible:`led-strip-matrix`) 721 * Added support for :c:func:`display_set_pixel_format` API to NXP eLCDIF 722 driver. ARGB8888, RGB888, and BGR565 formats are supported. 723 * Added support for inverting color at runtime to the SSD1306 driver, via 724 the :c:func:`display_set_pixel_format` API. 725 * Inversion mode can now be disabled in the ST7789V driver 726 (:dtcompatible:`sitronix,st7789v`) using the ``inversion-off`` property. 727 * Added support for NXP MCXNx4x 728 729* DMA 730 731 * Error callback configuration renamed to better signal enable/disable status 732 * Add support to NXP MCXN947 733 734* DMIC 735 736 * Added support for NXP ``rd_rw612_bga`` 737 738* Entropy 739 740 * Added support for STM32H7R/S series. 741 742* EEPROM 743 744 * Added property for specifying ``address-width`` to :dtcompatible:`zephyr,i2c-target-eeprom`. 745 746* eSPI 747 748 * Renamed eSPI virtual wire direction macros, enum values and Kconfig to match the new 749 terminology in eSPI 1.5 specification. 750 751* Ethernet 752 753 * Introduced :kconfig:option:`CONFIG_ETH_DRIVER_RAW_MODE`. This option allows building 754 ethernet drivers without the zephyr L2 ethernet layer. 755 * Removed the ethernet-fixed-link DT binding. 756 * Removed VLAN handling from ethernet drivers since it is now handled by the 757 generic ethernet L2 code. 758 * Implemented/reworked HW MAC Address filtering in the eth_mcux, eth_nxp_enet, 759 and eth_nxp_s32_gmac, eth_stm32, and eth_nxp_s32_netc drivers. 760 * New Drivers 761 762 * Added new eth_nxp_enet_qos driver for the ethernet controller present on NXP MCXN SOCs. 763 * Added support for adin1100 phy. 764 * Added support for the Realtek RTL8211F phy. 765 * NXP ENET driver changes 766 767 * eth_nxp_enet driver is no longer experimental. 768 * Deprecated eth_mcux driver. 769 * All boards and SOCs with :dtcompatible:`nxp,kinetis-ethernet` compatible nodes 770 reworked to use the new :dtcompatible:`nxp,enet` binding. 771 * Added support for network device power management with nxp_enet driver on Kinetis platforms. 772 * Converted eth_nxp_enet driver to use a dedicated workqueue for RX 773 managed by the kernel rather than a manual infinite loop. 774 * Disabled hardware checksum acceleration when IPV6 is enabled with eth_nxp_enet, since 775 the hardware does not support accelerating ICMPv6 checksums. 776 * Added support for :dtcompatible:`nxp,enet1g`. 777 * Added support to use a fused MAC address for nxp_enet MAC on some platforms. 778 * Fixed issue with LAA bit not being set and a confusing description of the nxp,unique-mac 779 property used with the nxp_enet driver. 780 * Fixed cache maintain being enabled when using a noncache DMA buffer in nxp_enet driver. 781 * Added MMIO mappings to nxp_enet driver. 782 * Clarified DSA supported with eth_nxp_enet. 783 * NXP S32 ethernet changes 784 785 * The eth_nxp_s32_gmac driver now implies :kconfig:option:`CONFIG_MDIO`. 786 * eth_nxp_s32_netc driver updated to use new MBOX API. 787 * Adin2111 driver changes 788 789 * Corrected the bitfield position of IAMSK1 TX_READY_MASK in adin2111 driver. 790 * Changed adin2111 driver to always append crc32 to the end of the frame. 791 * Adjusted eth_adin2111 driver to have the appropriate multicaster filter mask. 792 * Fixed the "generic SPI without crc8" mode of adin2111 driver. 793 * Added Open Alliance SPI protocol support to the adin2111 driver. 794 * Added custom driver extension APIs for adin2111 driver. 795 * Enabled support for promiscuous mode in the adin2111 driver. 796 * Moved OA buffers out of device data of the adin2111 driver to save ~32KB of space 797 when using the generic SPI protocol. 798 * Fixed a build warning in eth_adin2111 driver on 64-bit platforms. 799 * Various small changes to adin2111 driver. 800 * STM32 ethernet driver changes 801 802 * Added support for PTP on compatible STM32 series (STM32F7, STM32H5 and STM32H7). 803 * Changed eth_stm32 to use phy APIs to access the phy to avoid collisions when multitasking. 804 * Removed legacy STM32Cube HAL API support for STM32 F4, F7, and H7 series. 805 * Added support for RX/TX timestamping to eth_stm32_hal driver. 806 * ESP32 ethernet driver changes 807 808 * Added support to esp32 ethernet driver to set the MAC address during runtime. 809 * Updated esp32 ethernet driver to work with version 5.1 of hal_espressif. 810 * Fixed build of esp32 ethernet driver when :kconfig:option:`CONFIG_NET_STATISTICS` is enabled. 811 * Fixed ESP32 ethernet driver not clocking external PHY correctly over GPIO. 812 * Other ethernet driver changes 813 814 * Added link status detection to the w5500 ethernet driver, configurable via Kconfig. 815 * Added ability to set MAC address at runtime with eth_liteeth driver. 816 * Fixed issue in the eth_stellaris driver where it was previously not taken into account 817 that the number of interrupts received by the driver may be less than the number of 818 data packets received by the ethernet controller. 819 * Added a devicetree property for the enc28j60 to set the RX filter. 820 * Fixed ESTAT TXABRT bit not being cleared on error in the enc28j60 driver. 821 * Added conditions to enable ptp_clock driver implementation for the native_posix 822 ethernet driver when PTP subsystem is enabled. 823 * Fixed DSA driver for KSZ8xxx to correctly initialize LAN devices. 824 * Fixed the wrong register address being used for tail tag enable in ksz8863. 825 * Phy driver changes 826 827 * Fixed various control issues with the KSZ8081 phy driver regarding 828 resets, autonegotiation, link detection, and missing/spamming logging messages. 829 * Changed property names of the reset and interrupt gpios in the KSZ8081 DT binding. 830 * Fixed bus fault in phy_mii driver when using fixed-link mode. 831 832* Flash 833 834 * Added support for Ambiq Apollo3 series. 835 * Added support for multiple instances of the SPI NOR driver (spi_nor.c). 836 * Added preliminary support for non-erase devices with introduction of 837 device capabilities to :c:struct:`flash_parameters` and the utility function 838 :c:func:`flash_params_get_erase_cap` that allows to obtain the erase type 839 provided by a device; added :c:macro:`FLASH_ERASE_C_EXPLICIT`, which is 840 currently the only supported erase type and is set by all flash devices. 841 * Added the :c:func:`flash_flatten` function that can be used on devices, 842 with or without erase requirement, when erase has been used not for preparing 843 a device for a random data write, but rather to remove/scramble data from 844 that device. 845 * Added the :c:func:`flash_fill` utility function which allows to write 846 a single value across a provided range in a selected device. 847 * Added support for RRAM on nrf54l15 devices. 848 * Added support of non busy wait polling in STM32 OSPI driver. 849 * Added support for STM32 XSPI external NOR flash driver (:dtcompatible:`st,stm32-xspi-nor`). 850 * Added support for XIP on external NOR flash in STM32 OSPI, QSPI and XSPI driver. 851 * STM32 OSPI driver: clk, dqs, ncs ports can now be configured by device tree 852 configurable (see :dtcompatible:`st,stm32-ospi`). 853 * Added FlexSPI support to NXP MCXN947 854 * Added support for Nuvoton Numaker M2L31X series. 855 856* Fuel Gauge 857 858 * max17048: Corrected voltage units from mV to uV. 859 860* GNSS 861 862 * Added GNSS device driver API test suite. 863 * Added support for the u-blox UBX protocol. 864 * Added device driver for the u-blox M8 GNSS modem (:dtcompatible:`u-blox,m8`). 865 * Added device driver for the Luatos Air530z GNSS modem (:dtcompatible:`luatos,air530z`). 866 867* GPIO 868 869 * Added support for Ambiq Apollo3 series. 870 * Added Broadcom Set-top box(brcmstb) SoC GPIO driver. 871 * Added :c:macro:`STM32_GPIO_WKUP` flag which allows to configure specific pins as wakeup source 872 from Power Off state on STM32 L4, U5, WB, & WL SoC series. 873 * Added driver for Analog Devices MAX32 SoC series. 874 * Added support for Nuvoton Numaker M2L31X series. 875 * Added interrupt support to the Renesas RZ/T2M GPIO driver (:dtcompatible:`renesas,rzt2m-gpio`). 876 877* Hardware info 878 879 * Added device EUI64 ID support and implementation for STM32WB, STM32WBA and STM32WL series. 880 881* I2C 882 883 * Added support for Ambiq Apollo3 series. 884 * In STM32 V2 driver, added support for a new :kconfig:option:`CONFIG_I2C_STM32_V2_TIMING` 885 which automatically computes bus timings which should be used to configure the hardware 886 block depending on the clock configuration in use. To avoid embedding this heavy algorithm 887 in a production application, a dedicated sample :zephyr:code-sample:`stm32_i2c_v2_timings` is provided 888 to get the output of the algorithm. Once bus timings configuration is available, 889 :kconfig:option:`CONFIG_I2C_STM32_V2_TIMING` could be disabled, bus timings configured 890 using device tree. 891 * Added support for STM32H5 series. 892 * Added support to NXP MCXN947 893 * Added driver for Analog Devices MAX32 SoC series. 894 * Added support for Nuvoton Numaker M2L31X series. 895 * LiteX I2C driver (:file:`drivers/i2c/i2c_litex.c`): 896 897 * Added support for bitrate setting from the devicetree. 898 * Added :c:func:`i2c_litex_recover_bus()` and :c:func:`i2c_litex_get_config()` API 899 implementations. 900 901* I2S 902 903 * Added support for STM32H5 series. 904 * Extended the MCUX Flexcomm driver to support additional channels and formats. 905 * Added support for Nordic nRF54L Series. 906 * Fixed divider calculations in the nRF I2S driver. 907 908* I3C 909 910 * Added shell support for querying bus and CCC commands. 911 912 * Added driver to support the I3C controller on NPCX. 913 914 * Improvements and bug fixes on :dtcompatible:`nxp,mcux-i3c`, including handling the bus 915 being busy more gracefully instead of simply returning errors. 916 917* Input 918 919 * New drivers: :dtcompatible:`adc-keys`, :dtcompatible:`chipsemi,chsc6x`, 920 :dtcompatible:`cirque,pinnacle`, :dtcompatible:`futaba,sbus`, 921 :dtcompatible:`pixart,pat912x`, :dtcompatible:`pixart,paw32xx`, 922 :dtcompatible:`pixart,pmw3610` and :dtcompatible:`sitronix,cf1133`. 923 * Migrated :dtcompatible:`holtek,ht16k33` and 924 :dtcompatible:`microchip,xec-kbd` from kscan to input subsystem. 925 926* LED 927 928 * Added device completion to LED shell commands and made the ``get_info`` command display 929 colors as strings. 930 931 * Added driver for Lumissil Microsystems (a division of ISSI) IS31FL3194 controller 932 (:dtcompatible:`issi,is31fl3194`). 933 934* LED Strip 935 936 * The ``chain-length`` and ``color-mapping`` properties have been added to all LED strip 937 bindings. 938 939 * The length of a strip is now checked before updating it, an error is returned if the provided 940 data is too long. 941 942 * A length function has been added which returns the length of the LED strip 943 (:c:func:`led_strip_length`). 944 945 * The update channels function is now optional and can be left unimplemented. 946 947 * The ``in-gpios`` and ``output-pin`` properties of the respective 948 :dtcompatible:`worldsemi,ws2812-gpio` and :dtcompatible:`worldsemi,ws2812-rpi_pico-pio` 949 devicetree bindings have been renamed to ``gpios``. 950 951 * Removed ``CONFIG_WS2812_STRIP`` and ``CONFIG_WS2812_STRIP_DRIVER`` Kconfig options. They became 952 useless after refactoring. 953 954 * Added driver for Texas Instruments TLC59731 RGB controller. 955 956* LoRa 957 958 * Added driver for Reyax LoRa module 959 960* Mailbox 961 962 * Added support for HSEM based STM32 driver. 963 964* MDIO 965 966 * Made the ``bus_enable`` and ``bus_disable`` functions optional for drivers to 967 implement, and removed empty implementation from many drivers. 968 * Added NXP ENET QOS MDIO controller driver. 969 * Fixed but with NXP ENET MDIO driver blocking the system workqueue. 970 * :kconfig:option:`CONFIG_MDIO_NXP_ENET_TIMEOUT` units change to microseconds. 971 * Added support for STM32 MDIO controller driver. 972 973* MFD 974 975 * New driver :dtcompatible:`nxp,lp-flexcomm`. 976 * New driver :dtcompatible:`rohm,bd8lb600fs`. 977 * New driver :dtcompatible:`maxim,max31790`. 978 * New driver :dtcompatible:`infineon,tle9104` 979 * New driver :dtcompatible:`adi,ad559x` 980 * Added option to disable N_VBUSEN for :dtcompatible:`x-powers,axp192`. 981 * Added GPIO input edge events for :dtcompatible:`nordic,npm1300`. 982 * Added long press reset configuration for :dtcompatible:`nordic,npm1300`. 983 * Fixed initialisation of hysteretic mode for :dtcompatible:`nordic,npm6001`. 984 985* Modem 986 987 * Removed deprecated ``GSM_PPP`` driver along with its dts compatible ``zephyr,gsm-ppp``. 988 989 * Removed deprecated ``UART_MUX`` and ``GSM_MUX`` previously used by ``GSM_PPP``. 990 991 * Removed support for dts compatible ``zephyr,gsm-ppp`` from ``MODEM_CELLULAR`` driver. 992 993 * Removed integration with ``UART_MUX`` from ``MODEM_IFACE_UART_INTERRUPT`` module. 994 995 * Removed integration with ``UART_MUX`` from ``MODEM_SHELL`` module. 996 997 * Implemented modem pipelinks in ``MODEM_CELLULAR`` driver for additional DLCI channels 998 available by the different modems. This includes generic AT mode DLCI channels, named 999 ``user_pipe_<index>`` and DLCI channels reserved for GNSS tunneling named 1000 ``gnss_pipe``. 1001 1002 * Added new set of shell commands for sending AT commands directly to a modem using the 1003 newly implemented modem pipelinks. The implementation of the new shell commands is 1004 both functional and together with the ``MODEM_CELLULAR`` driver will provide an 1005 example of how to implement and use the modem pipelink module. 1006 1007* PCIE 1008 1009 * ``pcie_bdf_lookup`` and ``pcie_probe`` have been removed since they have been 1010 deprecated since v3.3.0. 1011 1012* MIPI-DBI 1013 1014 * Added release API 1015 * Added support for mode selection via the device tree 1016 1017* MSPI 1018 1019 * Add the new experimental :ref:`MSPI(Multi-bit SPI) <mspi_api>` API, enabling support for 1020 advanced SPI controllers and peripherals that typically require command, address and data 1021 phases as well as variable latency for a transfer. The API now supports from single wire 1022 SDR up to hex wires DDR communication in sync/async ways. 1023 * Added MSPI bus emulator under bus emulators to showcase the implementation of the MSPI API. 1024 * Added MSPI flash device emulator to showcase the use of the MSPI API and interfacing with 1025 MSPI bus controllers. 1026 * Added APS6404L QPI pSRAM device driver. 1027 * Added ATXP032 OPI NOR flash device driver. 1028 * Added Ambiq Apollo3p MSPI controller driver. 1029 * Added :zephyr:code-sample:`mspi-async` and :zephyr:code-sample:`mspi-flash` samples to 1030 showcase the use of MSPI device drivers. 1031 * Added mspi/api and mspi/flash testcase for developers to check their implementations. 1032 1033* Pin control 1034 1035 * Added driver for Renesas RA8 series 1036 * Added driver for Infineon PSoC6 (legacy) 1037 * Added driver for Analog Devices MAX32 SoC series. 1038 * Added driver for Ambiq Apollo3 1039 * Added driver for ENE KB1200 1040 * Added driver for NXP RW 1041 * Espressif driver now supports ESP32C6 1042 * STM32 driver now supports remap functionality for STM32C0 1043 * Added support for Nuvoton Numaker M2L31X series. 1044 1045* PWM 1046 1047 * Added support for STM32H7R/S series. 1048 * Added a Add QTMR PWM driver for NXP imxrt11xx 1049 * Made the NXP MCUX PWM driver thread safe 1050 * Fix :zephyr:code-sample:`pwm-blinky` code sample to demonstrate PWM support for 1051 :zephyr:board:`beagleconnect_freedom`. 1052 * Added driver for ENE KB1200. 1053 * Added support for Nordic nRF54H and nRF54L Series SoCs. 1054 * Added support for Nuvoton Numaker M2L31X series. 1055 1056* Regulators 1057 1058 * New driver :dtcompatible:`cirrus,cp9314`. 1059 * Added ``regulator-boot-off`` property to common regulator driver. 1060 Updated :dtcompatible:`adi,adp5360-regulator`, :dtcompatible:`nordic,npm1300-regulator`, 1061 :dtcompatible:`nordic,npm6001-regulator` and :dtcompatible:`x-powers,axp192-regulator` 1062 to use this new property. 1063 * Added power management for :dtcompatible:`renesas,smartbond-regulator`. 1064 * Added ``is_enabled`` shell command. 1065 * Removed use of busy wait for single threaded systems. 1066 * Fixed control of DCDC2 output for :dtcompatible:`x-powers,axp192-regulator`. 1067 * Fixed current and voltage get functions for :dtcompatible:`renesas,smartbond-regulator`. 1068 * Fixed NXP VREF Kconfig leakage. 1069 * Fixed display of micro values in shell. 1070 * Fixed strcmp usage bug in ``adset`` shell command. 1071 1072* Reset 1073 1074 * Added driver for reset controller on Nuvoton NPCX chips. 1075 * Added reset controller driver for NXP SYSCON. 1076 * Added reset controller driver for NXP RSTCTL. 1077 * Added support for Nuvoton Numaker M2L31X series. 1078 1079* RTC 1080 1081 * Added Raspberry Pi Pico RTC driver. 1082 * Added support for :kconfig:option:`CONFIG_RTC_ALARM` on all STM32 MCU series (except STM32F1). 1083 * Added support for Nuvoton Numaker M2L31X series. 1084 1085* RTIO 1086 1087 * Move lock-free queues out of RTIO into lib, dropping the ``rtio_`` prefix to SPSC and MPSC queues. 1088 * Added tests and fixed bugs related to chained callback requests. 1089 * Wrapper around p4wq (rtio workq) created to go from blocking to non-blocking behavior in cases 1090 where native asynchronous RTIO functionality is unavailable. 1091 1092* SDHC 1093 1094 * Added ESP32 SDHC driver (:dtcompatible:`espressif,esp32-sdhc`). 1095 * Added SDHC driver for Renesas MMC controller (:dtcompatible:`renesas,rcar-mmc`). 1096 1097* Sensors 1098 1099 * General 1100 1101 * Added a channel specifier to the new read/decoder API. 1102 * Added a blocking sensor read call :c:func:`sensor_read`. 1103 * Decoupled RTIO requests using RTIO workqueues service to turn 1104 :c:func:`sensor_submit_callback` into an asynchronous request. 1105 * Moved most drivers to vendor subdirectories. 1106 1107 * AMS 1108 1109 * Added TSL2591 light sensor driver (:dtcompatible:`ams,tsl2591`). 1110 1111 * Aosong 1112 1113 * Added DHT20 digital-output humidity and temperature sensor driver 1114 (:dtcompatible:`aosong,dht20`). 1115 1116 * Added :kconfig:option:`CONFIG_DHT_LOCK_IRQS` for the dht11 driver which allows for locking 1117 interrupts during sensor reading to prevent issues with reading the sensor. 1118 1119 * Bosch 1120 1121 * Updated BME280 to the new async API. 1122 1123 * Infineon 1124 1125 * Added TLE9104 power train switch diagnostics sensor driver 1126 (:dtcompatible:`infineon,tle9104-diagnostics`). 1127 1128 * Maxim 1129 1130 * Added DS18S20 1-Wire temperature sensor driver (:dtcompatible:`maxim,ds18s20`). 1131 * Added MAX31790 fan speed and fan fault sensor 1132 (:dtcompatible:`maxim,max31790-fan-fault` and :dtcompatible:`maxim,max31790-fan-speed`). 1133 1134 * NXP 1135 1136 * Added low power comparator driver (:dtcompatible:`nxp,lpcmp`). 1137 1138 * Rohm 1139 1140 * Added BD8LB600FS diagnostics sensor driver (:dtcompatible:`rohm,bd8lb600fs-diagnostics`). 1141 1142 * Silabs 1143 1144 * Made various fixes and enhancements to the SI7006 humidity/temperature sensor driver. 1145 1146 * ST 1147 1148 * QDEC driver now supports encoder mode configuration (see :dtcompatible:`st,stm32-qdec`). 1149 * Added support for STM32 Digital Temperature Sensor (:dtcompatible:`st,stm32-digi-temp`). 1150 * Added IIS328DQ I2C/SPI accelerometer sensor driver (:dtcompatible:`st,iis328dq`). 1151 1152 * TDK 1153 1154 * Added support for the MPU6500 3-axis accelerometer and 3-axis gyroscope sensor to the 1155 MPU6050 driver. 1156 1157 * TI 1158 1159 * Added TMP114 driver (:dtcompatible:`ti,tmp114`). 1160 * Added INA226 bidirectional current and power monitor driver (:dtcompatible:`ti,ina226`). 1161 * Added LM95234 quad remote diode and local temperature sensor driver 1162 (:dtcompatible:`national,lm95234`). 1163 1164 * Other vendors 1165 1166 * Added Angst+Pfister FCX-MLDX5 O2 sensor driver (:dtcompatible:`ap,fcx-mldx5`). 1167 * Added ENE KB1200 tachometer sensor driver (:dtcompatible:`ene,kb1200-tach`). 1168 * Added Festo VEAA-X-3 series proportional pressure regulator driver 1169 (:dtcompatible:`festo,veaa-x-3`). 1170 * Added Innovative Sensor Technology TSic xx6 temperature sensor driver 1171 (:dtcompatible:`ist,tsic-xx6`). 1172 * Added ON Semiconductor NCT75 temperature sensor driver (:dtcompatible:`onnn,nct75`). 1173 * Added ScioSense ENS160 digital metal oxide multi-gas sensor driver 1174 (:dtcompatible:`sciosense,ens160`). 1175 * Made various fixes and enhancements to the GROW_R502A fingerprint sensor driver. 1176 1177* Serial 1178 1179 * Added driver to support UART over Bluetooth LE using NUS (Nordic UART Service). This driver 1180 enables using Bluetooth as a transport to all the subsystems that are currently supported by 1181 UART (e.g: Console, Shell, Logging). 1182 * Added :kconfig:option:`CONFIG_NOCACHE_MEMORY` support in async DMA mode in STM32 driver. 1183 It is now possible to use UART in DMA mode with :kconfig:option:`CONFIG_DCACHE` enabled 1184 on STM32 F7 & H7 SoC series, as long as DMA buffers are placed in an uncached memory section. 1185 * Added support for STM32H7R/S series. 1186 1187 * Added support for HSCIF (High Speed Serial Communication Interface with FIFO) in the UART 1188 driver for Renesas RCar platforms. 1189 1190 * Added driver for ENE KB1200 UART. 1191 1192 * Added driver for UART on Analog Devices MAX32 series microcontrollers. 1193 1194 * Added driver for UART on Renesas RA8 devices. 1195 1196 * ``uart_emul`` (:dtcompatible:`zephyr,uart-emul`): 1197 1198 * Added support for asynchronous API for the emulated UART driver. 1199 1200 * ``uart_esp32`` (:dtcompatible:`espressif,esp32-uart`): 1201 1202 * Added support to invert TX and RX pin signals. 1203 1204 * Added support for ESP32C6 SoC. 1205 1206 * ``uart_native_tty`` (:dtcompatible:`zephyr,native-tty-uart`): 1207 1208 * Added support to emulate interrupt driven UART. 1209 1210 * ``uart_mcux_lpuart`` (:dtcompatible:`nxp,kinetis-lpuart`): 1211 1212 * Added support for single wire half-duplex communication. 1213 1214 * Added support to invert TX and RX pin signals. 1215 1216 * ``uart_npcx`` (:dtcompatible:`nuvoton,npcx-uart`): 1217 1218 * Added support for asynchronous API. 1219 1220 * Added support for baud rate of 3MHz. 1221 1222 * ``uart_nrfx_uarte`` (:dtcompatible:`nordic,nrf-uarte`): 1223 1224 * Added support to put TX and RX pins into low power mode when UART is not active. 1225 1226 * ``uart_nrfx_uarte2`` (:dtcompatible:`nordic,nrf-uarte`): 1227 1228 * Prevents UART from transmitting when device is suspended. 1229 1230 * Fixed some events not being triggered. 1231 1232 * ``uart_pl011`` (:dtcompatible:`arm,pl011`): 1233 1234 * Added support for runtime configuration. 1235 1236 * Added support for reset device. 1237 1238 * Added support to use clock control to determine frequency. 1239 1240 * Added support for hardware flow control. 1241 1242 * Added support for UART on Ambiq Apollo3 SoC. 1243 1244 * ``uart_smartbond`` (:dtcompatible:`renesas,smartbond-uart`): 1245 1246 * Added support for power management. 1247 1248 * Added support to wake up via DTR and RX lines. 1249 1250 * ``uart_stm32`` (:dtcompatible:`st,stm32-uart`): 1251 1252 * Added support to identify if DMA buffers are in data cache or non-cacheable memory. 1253 1254 * Added support for Nuvoton Numaker M2L31X series. 1255 1256* SPI 1257 1258 * Added support to NXP MCXN947 1259 * Added support for Ambiq Apollo3 series general IOM based SPI. 1260 * Added support for Ambiq Apollo3 BLEIF based SPI, which is specific for internal HCI. 1261 * Added support for :kconfig:option:`CONFIG_PM` and :kconfig:option:`CONFIG_PM_DEVICE_RUNTIME` on STM32 SPI driver. 1262 * Added support for :kconfig:option:`CONFIG_NOCACHE_MEMORY` in DMA SPI mode for STM32F7x SoC series. 1263 * Added support for STM32H7R/S series. 1264 * Added driver for Analog Devices MAX32 SoC series. 1265 * Fixed an incorrect register assignment in gd32 spi. 1266 1267* USB 1268 1269 * Added UDC shim driver for NXP EHCI and IP3511 USB controller. 1270 * Various fixes and improvements in IT82xx2, DWC2, STM32, RP2040, Smartbond 1271 USB controller drivers. 1272 1273* Video 1274 1275 * Added support for STM32 Digital camera interface (DCMI) driver (:dtcompatible:`st,stm32-dcmi`). 1276 * Enabled NXP USB Device controllers 1277 * Added support for the ov7670 camera 1278 * Added support for the ov5640 camera 1279 * Added CSI-2 MIPI driver for NXP MCUX 1280 * Added support for DVP FPC 24-pins mt9m114 camera module shield 1281 1282* Watchdog 1283 1284 * Added :kconfig:option:`CONFIG_WDT_NPCX_WARNING_LEADING_TIME_MS` to set the leading warning time 1285 in milliseconds. Removed no longer used :kconfig:option:`CONFIG_WDT_NPCX_DELAY_CYCLES`. 1286 * Added support for Ambiq Apollo3 series. 1287 * Added support for STM32H7R/S series. 1288 * Added support for Nuvoton Numaker M2L31X series. 1289 * Added watchdog for external 32kHz crystal in ESP32 SoC variants. 1290 1291* Wi-Fi 1292 1293 * Fixed message parsing for esp-at. 1294 * Fixed esp-at connect failures. 1295 * Implement :c:func:`bind` and :c:func:`recvfrom` for UDP sockets for esp-at. 1296 * Added option for setting maximum data size for eswifi. 1297 * Fixed ESP32 Wi-Fi driver memory leak. 1298 1299Networking 1300********** 1301 1302* ARP: 1303 1304 * Added support for gratuitous ARP transmission. 1305 * Fixed a possible deadlock between TX and RX threads within ARP module. 1306 * Fixed a possible ARP entry leak. 1307 * Improved ARP debug logs. 1308 1309* CoAP: 1310 1311 * Fixed CoAP observe age overflows. 1312 * Increased upper limit for CoAP retransmissions (:kconfig:option:`CONFIG_COAP_MAX_RETRANSMIT`). 1313 * Fixed CoAP observations in CoAP client library. 1314 * Added new CoAP client :c:func:`coap_client_cancel_requests` API which allows 1315 to cancel active observations. 1316 * Fixed CoAP ID generation for responses in CoAP Server sample. 1317 1318* Connection manager: 1319 1320 * Added support for new net_mgmt events, which allow to track IPv4 and IPv6 1321 connectivity independently: 1322 1323 * :c:macro:`NET_EVENT_L4_IPV4_CONNECTED` 1324 * :c:macro:`NET_EVENT_L4_IPV4_DISCONNECTED` 1325 * :c:macro:`NET_EVENT_L4_IPV6_CONNECTED` 1326 * :c:macro:`NET_EVENT_L4_IPV6_DISCONNECTED` 1327 1328* DHCPv4: 1329 1330 * Added support for encapsulated vendor specific options. By enabling 1331 :kconfig:option:`CONFIG_NET_DHCPV4_OPTION_CALLBACKS_VENDOR_SPECIFIC` callbacks can be 1332 registered with :c:func:`net_dhcpv4_add_option_vendor_callback` to handle these options after 1333 being initialised with :c:func:`net_dhcpv4_init_option_vendor_callback`. 1334 * Added support for the "Vendor class identifier" option. Use the 1335 :kconfig:option:`CONFIG_NET_DHCPV4_VENDOR_CLASS_IDENTIFIER` to enable it and 1336 :kconfig:option:`CONFIG_NET_DHCPV4_VENDOR_CLASS_IDENTIFIER_STRING` to set it. 1337 * The NTP server from the DHCPv4 option can now be used to set the system time. This is done by 1338 default, if :kconfig:option:`CONFIG_NET_CONFIG_CLOCK_SNTP_INIT` is enabled. 1339 * The syslog server address can now be set with DHCPv4 option. This is done by 1340 default, if :kconfig:option:`CONFIG_LOG_BACKEND_NET_USE_DHCPV4_OPTION` is enabled. 1341 * Fixed a bug, where options with registered callbacks were not requested from 1342 the server. 1343 * Fixed a bug, where netmask received from the server was not applied correctly. 1344 * Reimplemented DHCPv4 client RENEW/REBIND logic to be compliant with RFC2131. 1345 * Improved declined addresses management in DHCPv4 server, which now can be 1346 reused after configured time. 1347 * Fixed including the client ID option in the DHCPv4 server response, according to RFC6842. 1348 * Added :kconfig:option:`CONFIG_NET_DHCPV4_SERVER_NAK_UNRECOGNIZED_REQUESTS` which 1349 allows to override RFC-defined behavior, and NAK requests from unrecognized 1350 clients. 1351 * Fixed client ID generation in DHCPv4 server. 1352 * Other minor fixes in DHCPv4 client and server implementations. 1353 1354* DHCPv6: 1355 1356 * Fixed incorrect DHCPv6 events code base for net_mgmt events. 1357 * Added :kconfig:option:`CONFIG_NET_DHCPV6_DUID_MAX_LEN` which allows to configure 1358 maximum supported DUID length. 1359 * Added documentation page for DHCPv6. 1360 1361* DNS/mDNS/LLMNR: 1362 1363 * Fixed an issue where the mDNS Responder did not work when the mDNS Resolver was also enabled. 1364 The mDNS Resolver and mDNS Responder can now be used simultaneously. 1365 * Reworked LLMNR and mDNS responders, and DNS resolver to use sockets and socket services API. 1366 * Added ANY query resource type. 1367 * Added support for mDNS to provide records in runtime. 1368 * Added support for caching DNS records. 1369 * Fixed error codes returned when socket creation fails, and when all results have been returned. 1370 * Fixed DNS retransmission timeout calculation. 1371 1372* gPTP/PTP: 1373 1374 * Added support for IEEE 1588-2019 PTP. 1375 * Added support for SO_TIMESTAMPING socket option to get timestamping information in socket 1376 ancillary data. 1377 * Fixed race condition on timestamp callback. 1378 * Fixed clock master sync send SM if we are not the GM clock. 1379 1380* HTTP: 1381 1382 * Added HTTP/2 server library and sample application with support for static, 1383 dynamic and Websocket resource types. 1384 * Added HTTP shell component. 1385 * Improved HTTP client error reporting. 1386 * Moved HTTP client library out of experimental. 1387 * Added POLLOUT monitoring when sending response in HTTP client. 1388 1389* IPSP: 1390 1391 * Removed IPSP support. ``CONFIG_NET_L2_BT`` does not exist anymore. 1392 1393* IPv4: 1394 1395 * Implemented IPv4 Address Conflict Detection, according to RFC 5227. 1396 * Added :c:func:`net_ipv4_is_private_addr` API function. 1397 * IPv4 netmask is now set individually for each address instead of being set 1398 for the whole interface. 1399 * Other minor fixes and improvements. 1400 1401* IPv6: 1402 1403 * Implemented IPv6 Privacy Extensions according to RFC 8981. 1404 * Added :c:func:`net_ipv6_is_private_addr` API function. 1405 * Implemented reachability hint for IPv6. Upper layers can use 1406 :c:func:`net_if_nbr_reachability_hint` to report Neighbor reachability and 1407 avoid unnecessary Neighbor Discovery solicitations. 1408 * Added :kconfig:option:`CONFIG_NET_IPV6_MTU` allowing to set custom IPv6 MTU. 1409 * Added :kconfig:option:`CONFIG_NET_MCAST_ROUTE_MAX_IFACES` which allows to set 1410 multiple interfaces for multicast forwarding entries. 1411 * Added :kconfig:option:`CONFIG_NET_MCAST_ROUTE_MLD_REPORTS` which allows to 1412 report multicast routes in MLDv2 reports. 1413 * Fixed IPv6 hop limit handling for multicast packets. 1414 * Improved IPv6 Neighbor Discovery test coverage. 1415 * Fixed a bug, where Neighbor Advertisement packets reporting Duplicate address 1416 detection conflicts were dropped. 1417 * Other minor fixes and improvements. 1418 1419* LwM2M: 1420 1421 * Added new API functions: 1422 1423 * :c:func:`lwm2m_set_bulk` 1424 * :c:func:`lwm2m_rd_client_set_ctx` 1425 1426 * Added new ``offset`` parameter to :c:type:`lwm2m_engine_set_data_cb_t` callback type. 1427 This affects post write and validate callbacks as well as some firmware callbacks. 1428 * Fixed block context not being reset upon receiving block number 0 in block transfer. 1429 * Fixed block size negotiation with the server in block transfer. 1430 * Added :kconfig:option:`CONFIG_LWM2M_ENGINE_ALWAYS_REPORT_OBJ_VERSION` which 1431 allows to force the client to always report object version. 1432 * Block transfer is now possible with resource w/o registered callback. 1433 * Fixed a bug, where an empty ACK sent from the registered callback would not 1434 be sent immediately. 1435 * Removed deprecated API functions and definitions. 1436 * Other minor fixes and improvements. 1437 1438* Misc: 1439 1440 * Improved overall networking API Doxygen documentation. 1441 * Converted TFTP library to use ``zsock_*`` API. 1442 * Added SNTP :c:func:`sntp_simple_addr` API function to perform SNTP query 1443 when the server IP address is already known. 1444 * Added :kconfig:option:`CONFIG_NET_TC_THREAD_PRIO_CUSTOM` allowing to override 1445 default traffic class threads priority. 1446 * Fixed the IPv6 event handler initialization order in net config library. 1447 * Reworked telnet shell backend to use sockets and socket services API. 1448 * Fixed double dereference of IGMP packets. 1449 * Moved from ``native_posix`` to ``native_sim`` support in various tests and 1450 samples. 1451 * Added support for copying user data in network buffers. 1452 * Fixed cloning of zero sized network buffers. 1453 * Added net_buf APIs to handle 40 bit data format. 1454 * Added receive callback for dummy L2, applicable in certain use cases 1455 (for example, packet capture). 1456 * Implemented pseudo interface, a.k.a "any" interface for packet capture use 1457 case. 1458 * Added cooked mode capture support. This allows non-IP based network data capture. 1459 * Generate network events when starting or stopping packet capture. 1460 * Removed obsolete and unused ``tcp_first_msg`` :c:struct:`net_pkt` flag. 1461 * Added new :zephyr:code-sample:`secure-mqtt-sensor-actuator` sample. 1462 * Added support for partial L3 and L4 checksum offloading. 1463 * Updated :zephyr:code-sample:`mqtt-azure` with new CA certificates, the current 1464 on expires soon. 1465 * Added new driver for Native Simulator offloaded sockets. 1466 * Overhauled VLAN support to use Virtual network interfaces. 1467 * Added statistics collection for Virtual network interfaces. 1468 * Fixed system workqueue block in :c:func:`mgmt_event_work_handler` 1469 when :kconfig:option:`CONFIG_NET_MGMT_EVENT_SYSTEM_WORKQUEUE` is enabled. 1470 1471* MQTT: 1472 1473 * Added ALPN support for MQTT TLS backend. 1474 * Added user data field in :c:struct:`mqtt_client` context structure. 1475 * Fixed a potential socket leak in MQTT Websockets transport. 1476 1477* Network Interface: 1478 1479 * Added new API functions: 1480 1481 * :c:func:`net_if_ipv4_maddr_foreach` 1482 * :c:func:`net_if_ipv6_maddr_foreach` 1483 1484 * Improved debug logging in the network interface code. 1485 * Added reference counter to the :c:struct:`net_if_addr` structure. 1486 * Fixed IPv6 DAD and MLDv2 operation when interface goes up. 1487 * Added unique default name for OpenThread interfaces. 1488 * Other minor fixes. 1489 1490* OpenThread 1491 1492 * Removed deprecated ``openthread_set_state_changed_cb()`` function. 1493 * Added implementation of BLE TCAT advertisement API. 1494 1495* PPP 1496 1497 * Removed deprecated ``gsm_modem`` driver and sample. 1498 * Optimized memory allocation in PPP driver. 1499 * Misc improvements in the :zephyr:code-sample:`cellular-modem` sample 1500 * Added PPP low level packet capture support. 1501 1502* Shell: 1503 1504 * Added ``net ipv4 gateway`` command to set IPv4 gateway address. 1505 * Added argument validation in network shell macros. 1506 * Fixed net_mgmt sockets information printout. 1507 * Reworked VLAN information printout. 1508 * Added option to set random MAC address with ``net iface set_mac`` command. 1509 * Added multicast join status when printing multicast address information. 1510 1511* Sockets: 1512 1513 * Implemented new networking POSIX APIs: 1514 1515 * :c:func:`if_nameindex` 1516 * :c:func:`inet_ntoa` 1517 * :c:func:`inet_addr` 1518 1519 * Added support for tracing socket API calls. 1520 * TLS sockets are no longer experimental API. 1521 * Fixed the protocol field endianness for ``AF_PACKET`` type sockets. 1522 * Fixed :c:func:`getsockname` for TCP. 1523 * Improve :c:func:`sendmsg` support when using DTLS sockets. 1524 * Fixed :c:func:`net_socket_service_register` function stall in case socket 1525 services thread stopped. 1526 * Fixed potential socket services thread stoppage when deregistering service. 1527 * Removed support for asynchronous timeouts in socket services library. 1528 * Fixed potential busy looping when using :c:func:`zsock_accept` in case of 1529 file descriptors shortage. 1530 1531* Syslog: 1532 1533 * Added new API functions: 1534 1535 * :c:func:`log_backend_net_set_ip` to initialize syslog net backend with IP 1536 address directly. 1537 * :c:func:`log_backend_net_start` to facilitate syslog net backend activation. 1538 1539 * Added structured logging support to syslog net backend. 1540 * Added TCP support to syslog net backend. 1541 1542* TCP: 1543 1544 * Fixed possible deadlock when accepting new TCP connection. 1545 * Fixed ACK number verification during connection teardown. 1546 * Fixed a bug, where data bytes included in FIN packet were ignored. 1547 * Fixed a possible TCP context leak in case initial SYN packet transmission failed. 1548 * Deprecated :kconfig:option:`CONFIG_NET_TCP_ACK_TIMEOUT` as it was redundant with other configs. 1549 * Improved debug logs, so that they're easier to follow under heavy load. 1550 * ISN generation now uses SHA-256 instead of MD5. Moreover, it now relies on PSA APIs 1551 instead of legacy Mbed TLS functions for hash computation. 1552 * Improved ACK reply logic in case no PSH flag is present to reduce redundant ACKs. 1553 1554* Websocket: 1555 1556 * Added new Websocket APIs: 1557 1558 * :c:func:`websocket_register` 1559 * :c:func:`websocket_unregister` 1560 1561 * Converted Websocket library to use ``zsock_*`` API. 1562 * Added Object Core support to Websocket sockets. 1563 * Added POLLOUT monitoring when sending. 1564 1565* Wi-Fi: 1566 1567 * Reduce memory usage of 5 GHz channel list. 1568 * Added channel validity check in AP mode. 1569 * Added support for BSSID configuration in connect call. 1570 * Wifi shell help text fixes. Option parsing fixes. 1571 * Support WPA auto personal security mode. 1572 * Collect unicast received/sent network packet statistics. 1573 * Added support for configuring RTS threshold. With this, users can set the RTS threshold 1574 value or disable the RTS mechanism. 1575 * Added support for configuring AP parameters. With this, users can set AP parameters at 1576 build and run time. 1577 * Added support to configure ``max_inactivity`` BSS parameter. Users can set this both 1578 build and runtime duration to control the maximum time duration after which AP may 1579 disconnect a STA due to inactivity from STA. 1580 * Added support to configure ``inactivity_poll`` BSS parameter. Users can set build 1581 only AP parameter to control whether AP may poll the STA before throwing away STA 1582 due to inactivity. 1583 * Added support to configure ``max_num_sta`` BSS parameter. Users can set this both 1584 build and run time parameter to control the maximum number of STA entries. 1585 1586* zperf: 1587 1588 * Fixed ``IP_TOS`` and ``IPV6_TCLASS`` options handling in zperf. 1589 * Fixed throughput calculation during long zperf sessions. 1590 * Fixed error on TCP upload session end in case multicast IP address was used. 1591 * Fixed a bug, where IPv6 socket was bound with IPv4 address, giving error. 1592 * Added an option to specify the network interface to use during zperf sessions. 1593 * Added a new ``ZPERF_SESSION_PERIODIC_RESULT`` event for periodic updates 1594 during TCP upload sessions. 1595 * Fixed possible socket leak in case of errors during zperf session. 1596 * Improved performance in the default configuration for the zperf sample. 1597 1598USB 1599*** 1600 1601* New USB device stack: 1602 1603 * Added support for HID devices 1604 * Introduced speed-specific configurations and made high-speed support 1605 compliant with the USB2.0 specification 1606 * Added notification support and initial BOS support 1607 1608Devicetree 1609********** 1610 1611* Added :c:macro:`DT_INST_NODE_HAS_COMPAT` to check if a node has a compatible. 1612 This is useful for nodes that have multiple compatibles. 1613* Added :c:macro:`DT_CHILD_NUM` and variants to count the number of children of a node. 1614* Added :c:macro:`DT_FOREACH_NODELABEL` and variants, which can be used to iterate over the 1615 node labels of a devicetree node. 1616* Added :c:macro:`DT_NODELABEL_STRING_ARRAY` and :c:macro:`DT_NUM_NODELABELS` and their variants. 1617* Added :c:macro:`DT_REG_HAS_NAME` and variants. 1618* Reworked :c:macro:`DT_ANY_INST_HAS_PROP_STATUS_OKAY` so that the result can 1619 be used with macros like :c:macro:`IS_ENABLED`, IF_ENABLED, or COND_CODE_x. 1620* Reworked :c:macro:`DT_NODE_HAS_COMPAT_STATUS` so that it can be evaluated at preprocessor time. 1621* Updated PyYaml version used in dts scripts to 6.0 to remove supply chain vulnerabilities. 1622 1623Kconfig 1624******* 1625 1626* Added a ``substring`` Kconfig preprocessor function. 1627* Added a ``dt_node_ph_prop_path`` Kconfig preprocessor function. 1628* Added a ``dt_compat_any_has_prop`` Kconfig preprocessor function. 1629 1630Libraries / Subsystems 1631********************** 1632 1633* Debug 1634 1635 * symtab 1636 1637 * By enabling :kconfig:option:`CONFIG_SYMTAB`, the symbol table will be 1638 generated with Zephyr link stage executable on supported architectures. 1639 1640* Demand Paging 1641 1642 * NRU (Not Recently Used) eviction algorithm has updated its selection logic to avoid 1643 picking the same page to evict constantly. The updated login now searches for a new 1644 candidate linearly after the last evicted page. 1645 1646 * Added LRU (Least Recently Used) eviction algorithm. 1647 1648* Formatted output 1649 1650 * Fix warning when compiling cbprintf with ARCMWDT. 1651 1652* Management 1653 1654 * hawkBit 1655 1656 * The hawkBit subsystem has been reworked to use the settings subsystem to store the hawkBit 1657 configuration. 1658 1659 * By enabling :kconfig:option:`CONFIG_HAWKBIT_SET_SETTINGS_RUNTIME`, the hawkBit settings can 1660 be configured at runtime. Use the :c:func:`hawkbit_set_config` function to set the hawkBit 1661 configuration. It can also be set via the hawkBit shell, by using the ``hawkbit set`` 1662 command. 1663 1664 * When using the hawkBit autohandler and an update is installed, the device will now 1665 automatically reboot after the installation is complete. 1666 1667 * By enabling :kconfig:option:`CONFIG_HAWKBIT_CUSTOM_DEVICE_ID`, a callback function can be 1668 registered to set the device ID. Use the :c:func:`hawkbit_set_device_identity_cb` function to 1669 register the callback. 1670 1671 * By enabling :kconfig:option:`CONFIG_HAWKBIT_CUSTOM_ATTRIBUTES`, a callback function can be 1672 registered to set the device attributes that are sent to the hawkBit server. Use the 1673 :c:func:`hawkbit_set_custom_data_cb` function to register the callback. 1674 1675 * MCUmgr 1676 1677 * Instructions for the deprecated mcumgr go tool have been removed, a list of alternative, 1678 supported clients can be found on :ref:`mcumgr_tools_libraries`. 1679 1680 * Fixed an issue with the SMP structure not being packed which would cause a fault on devices 1681 that do not support unaligned memory accesses. 1682 1683 * Added :kconfig:option:`CONFIG_MCUMGR_TRANSPORT_BT_DYNAMIC_SVC_REGISTRATION` that allows users 1684 to select whether MCUmgr BT service is statically registered at compile time or 1685 dynamically at run time. 1686 1687 * In FS group, TinyCrypt has been replaced with PSA calls for SHA calculation. 1688 1689* Logging 1690 1691 * By enabling :kconfig:option:`CONFIG_LOG_BACKEND_NET_USE_DHCPV4_OPTION`, the IP address of the 1692 syslog server for the networking backend is set by the DHCPv4 Log Server Option (7). 1693 1694 * Use real time clock as timestamp on POSIX. 1695 1696 * Add support for syslog (POSIX). 1697 1698 * Add :c:macro:`LOG_WRN_ONCE` for logging warning message where only the first occurrence is 1699 logged. 1700 1701 * Add :c:func:`log_thread_trigger` for triggering processing of the log messages. 1702 1703 * Fix case when deferred logging not compiling when :kconfig:option:`CONFIG_MULTITHREADING` was 1704 disabled. 1705 1706 * Fix case when logging strings could be stripped from the binary when dictionary based logging 1707 was mixed with non-dictionary. 1708 1709 * Fix dictionary database not being generated in certain situations. 1710 1711 * Fix dictionary logging parser not handling long long arguments correctly. 1712 1713 * Fix support for :kconfig:option:`CONFIG_LOG_MSG_APPEND_RO_STRING_LOC`. 1714 1715* Modem modules 1716 1717 * Added modem pipelink module which shares modem pipes globally, allowing device drivers to 1718 create and set up pipes for the application to use. 1719 1720 * Simplified the modem pipe module's synchronization mechanism to only protect the callback 1721 and user data. This matches the actual in-tree usage of the modem pipes. 1722 1723 * Added ``modem_stats`` module which tracks the usage of buffers throughout the modem 1724 subsystem. 1725 1726* Power management 1727 1728 * Devices can now declare which system power states cause power loss. 1729 This information can be used to set and release power state 1730 constraints when it is needed by the device. This feature is enabled with 1731 :kconfig:option:`CONFIG_PM_POLICY_DEVICE_CONSTRAINTS`. Use functions 1732 :c:func:`pm_policy_device_power_lock_get` and :c:func:`pm_policy_device_power_lock_put` 1733 to lock and unlock all power states that cause power loss in a device. 1734 1735 * Added shell support for device power management. 1736 1737 * Device power management was de-coupled from system power management. The new 1738 :kconfig:option:`CONFIG_PM_DEVICE_SYSTEM_MANAGED` option is used to enable 1739 whether devices must be suspended when the system sleeps. 1740 1741 * Make it possible to disable system device power management individually per 1742 power state using ``zephyr,pm-device-disabled``. This allows targets tuning which 1743 states should (and which should not) trigger device power management. 1744 1745* Crypto 1746 1747 * TinyCrypt remains available but is now being phased out in favor 1748 of PSA Crypto for enhanced security and performance. 1749 * Mbed TLS was updated to 3.6.0. Release notes can be found at: 1750 https://github.com/Mbed-TLS/mbedtls/releases/tag/v3.6.0 1751 * When any PSA crypto provider is available in the system 1752 (:kconfig:option:`CONFIG_MBEDTLS_PSA_CRYPTO_CLIENT` is enabled), desired PSA features 1753 must now be explicitly selected through ``CONFIG_PSA_WANT_xxx`` symbols. 1754 * Choice symbols :kconfig:option:`CONFIG_MBEDTLS_PSA_CRYPTO_LEGACY_RNG` and 1755 :kconfig:option:`CONFIG_MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG` were added in order 1756 to allow the user to specify how Mbed TLS PSA crypto core should generate random numbers. 1757 The former option, which is the default, relies on legacy entropy and CTR_DRBG/HMAC_DRBG 1758 modules, while the latter relies on CSPRNG drivers. 1759 * :kconfig:option:`CONFIG_MBEDTLS_PSA_P256M_DRIVER_ENABLED` enables support 1760 for the Mbed TLS's p256-m driver PSA crypto library. This is a Cortex-M SW 1761 optimized implementation of secp256r1 curve. 1762 1763* CMSIS-NN 1764 1765 * CMSIS-NN was updated to v6.0.0 from v4.1.0: 1766 https://arm-software.github.io/CMSIS-NN/latest/rev_hist.html 1767 1768* FPGA 1769 1770 * Improve handling of drivers missing ``reset``, ``load``, ``get_status``, and ``get_info`` 1771 methods. 1772 * Add support for Agilex and Agilex 5. 1773 1774* Random 1775 1776 * Besides the existing :c:func:`sys_rand32_get` function, :c:func:`sys_rand8_get`, 1777 :c:func:`sys_rand16_get` and :c:func:`sys_rand64_get` are now also available. 1778 These functions are all implemented on top of :c:func:`sys_rand_get`. 1779 1780* SD 1781 1782 * SDMMC and SDIO frequency and timing selection logic have been reworked, 1783 to resolve an issue where a timing mode would not be selected if the 1784 SDHC device in use did not report support for the maximum frequency 1785 possible in that mode. Now, if the host controller and card both report 1786 support for a given timing mode but not the highest frequency that 1787 mode supports, the timing mode will be selected and configured at 1788 the reduced frequency (:github:`72705`). 1789 1790* State Machine Framework 1791 1792 * The :c:macro:`SMF_CREATE_STATE` macro now always takes 5 arguments. 1793 * Transition sources that are parents of the state that was run now choose the correct Least 1794 Common Ancestor for executing Exit and Entry Actions. 1795 * Passing ``NULL`` to :c:func:`smf_set_state` is now not allowed. 1796 1797* Storage 1798 1799 * FAT FS: It is now possible to expose file system formatting functionality for FAT without also 1800 enabling automatic formatting on mount failure by setting the 1801 :kconfig:option:`CONFIG_FS_FATFS_MKFS` Kconfig option. This option is enabled by default if 1802 :kconfig:option:`CONFIG_FILE_SYSTEM_MKFS` is set. 1803 1804 * FS: It is now possible to truncate a file while opening using :c:func:`fs_open` 1805 and by passing ``FS_O_TRUNC`` flag. 1806 1807 * Flash Map: TinyCrypt has been replaced with PSA Crypto in Flash Area integrity check. 1808 1809 * Flash Map: :c:func:`flash_area_flatten` has been added to be used where an erase 1810 operation has been previously used for removing/scrambling data rather than 1811 to prepare a device for a random data write. 1812 1813 * Flash Map: :c:macro:`FIXED_PARTITION_NODE_OFFSET`, :c:macro:`FIXED_PARTITION_NODE_SIZE` 1814 and :c:macro:`FIXED_PARTITION_NODE_DEVICE` have been added to allow obtaining 1815 fixed partition information from a devicetree node rather than a label. 1816 1817 * Added :kconfig:option:`CONFIG_NVS_DATA_CRC`, to add CRC protection for data. 1818 Note that enabling this option makes NVS incompatible with existing storage 1819 that have not been previously using CRC on data. 1820 1821 * Fixed NVS issue where :c:func:`nvs_calc_free_space` would return larger 1822 size than available, because space for reserved ate was not subtracted. 1823 1824 * Fixed ext2 incorrectly calculating free space when attempting to format 1825 partition. 1826 1827 * Fixed FAT driver leaving disk in initialized state after unmount. 1828 1829* Task Watchdog 1830 1831 * Added shell (mainly for testing purposes during development). 1832 1833* POSIX API 1834 1835 * Improved Kconfig options to reflect standard POSIX Options and Option Groups. 1836 1837 * Added support for the following Option Groups 1838 1839 * :ref:`POSIX_MAPPED_FILES <posix_option_group_mapped_files>` 1840 * :ref:`POSIX_MEMORY_PROTECTION <posix_option_group_memory_protection>` 1841 * :ref:`POSIX_NETWORKING <posix_option_group_networking>` 1842 * :ref:`POSIX_SINGLE_PROCESS <posix_option_group_single_process>` 1843 * :ref:`POSIX_TIMERS <posix_option_group_timers>` 1844 * :ref:`XSI_SYSTEM_LOGGING <posix_option_group_xsi_system_logging>` 1845 1846 * Added support for the following Options 1847 1848 * :ref:`_POSIX_ASYNCHRONOUS_IO <posix_option_asynchronous_io>` 1849 * :ref:`_POSIX_CPUTIME <posix_option_cputime>` 1850 * :ref:`_POSIX_FSYNC <posix_option_fsync>` 1851 * :ref:`_POSIX_MEMLOCK <posix_option_memlock>` 1852 * :ref:`_POSIX_MEMLOCK_RANGE <posix_option_memlock_range>` 1853 * :ref:`_POSIX_READER_WRITER_LOCKS <posix_option_reader_writer_locks>` 1854 * :ref:`_POSIX_SHARED_MEMORY_OBJECTS <posix_shared_memory_objects>` 1855 * :ref:`_POSIX_THREAD_CPUTIME <posix_option_thread_cputime>` 1856 * :ref:`_POSIX_THREAD_PRIO_PROTECT <posix_option_thread_prio_protect>` 1857 * :ref:`_POSIX_THREAD_PRIORITY_SCHEDULING <posix_option_thread_priority_scheduling>` 1858 * :ref:`_XOPEN_STREAMS <posix_option_xopen_streams>` 1859 1860 * Fixed eventfd ``F_SETFL`` handling to avoid overwriting internal flags. 1861 * Fixed thread stack address printed in debug message. 1862 * Fixed macro parameter usage in signal code. 1863 1864* LoRa/LoRaWAN 1865 1866 * Added the Fragmented Data Block Transport service, which can be enabled via 1867 :kconfig:option:`CONFIG_LORAWAN_FRAG_TRANSPORT`. In addition to the default fragment decoder 1868 implementation from Semtech, an in-tree implementation with reduced memory footprint is 1869 available. 1870 1871 * Added a sample to demonstrate LoRaWAN firmware-upgrade over the air (FUOTA). 1872 1873* ZBus 1874 1875 * Improved the VDED process by optimizing the channel reference copying for the clones delivered 1876 during the message subscriber delivery notification. 1877 1878 * Improved the initialization phase by statically initiating the semaphores and runtime observer 1879 list. That decreased the duration of the zbus initialization. 1880 1881 * Added a way of isolating a channel message subscribers pool. Some channels can now share an 1882 isolated pool to avoid delivery failures and shorten communication latency. It is only necessary 1883 to enable the :kconfig:option:`CONFIG_ZBUS_MSG_SUBSCRIBER_NET_BUF_POOL_ISOLATION` and use the 1884 function :c:func:`zbus_chan_set_msg_sub_pool` to change the msg pool used by the channel. 1885 Channels can share the same message pool. 1886 1887HALs 1888**** 1889 1890* Nordic 1891 1892 * Updated nrfx to version 3.5.0. 1893 * Added nRF Services (nrfs) library. 1894 1895* STM32 1896 1897 * Updated STM32F0 to cube version V1.11.5. 1898 * Updated STM32F3 to cube version V1.11.5. 1899 * Updated STM32F4 to cube version V1.28.0. 1900 * Updated STM32F7 to cube version V1.17.2. 1901 * Updated STM32G0 to cube version V1.6.2. 1902 * Updated STM32G4 to cube version V1.5.2. 1903 * Updated STM32H5 to cube version V1.2.0. 1904 * Updated STM32H7 to cube version V1.11.2. 1905 * Updated STM32L5 to cube version V1.5.1. 1906 * Updated STM32U5 to cube version V1.5.0. 1907 * Updated STM32WB to cube version V1.19.1. 1908 * Updated STM32WBA to cube version V1.3.1. 1909 * Added STM32H7R/S with cube version V1.0.0. 1910 1911* ADI 1912 1913 * Introduced the ``hal_adi`` module, which is a subset of the Maxim Software 1914 Development Kit (MSDK) that contains device header files and bare metal 1915 peripheral drivers (:github:`72391`). 1916 1917* Espressif 1918 1919 * Updated HAL to version v5.1, which has new SoCs low-level files. 1920 1921MCUboot 1922******* 1923 1924 * Fixed memory leak in bootutil HKDF implementation 1925 1926 * Fixed enforcing TLV entries to be protected 1927 1928 * Fixed disabling instruction/data caches 1929 1930 * Fixed estimated image overhead size calculation 1931 1932 * Fixed issue with swap-move algorithm failing to validate multiple-images 1933 1934 * Fixed align script error in imgtool 1935 1936 * Fixed img verify for hex file format in imgtool 1937 1938 * Fixed issue with reading the flash image reset vector 1939 1940 * Fixed too-early ``check_config.h`` include in mbedtls 1941 1942 * Refactored image dependency functions to reduce code size 1943 1944 * Added MCUboot support for ``ESP32-C6`` 1945 1946 * Added optional MCUboot boot banner 1947 1948 * Added TLV querying for protected region 1949 1950 * Added using builtin keys for verification in bootutil 1951 1952 * Added builtin ECDSA key support for PSA Crypto backend 1953 1954 * Added ``OVERWRITE_ONLY_KEEP_BACKUP`` option for secondary images 1955 1956 * Added defines for ``SOC_FLASH_0_ID`` and ``SPI_FLASH_0_ID`` 1957 1958 * Fixed ASN.1 support for mbedtls version >= 3.1 1959 1960 * Fixed bootutil signed/unsigned comparison in ``boot_read_enc_key`` 1961 1962 * Updated imgtool version.py to take command line arguments 1963 1964 * Added imgtool improvements to dumpinfo 1965 1966 * Fixed various imgtool dumpinfo issues 1967 1968 * Fixed imgtool verify command for edcsa-p384 signed images 1969 1970 * Added support for NXP MCXN947 1971 1972 * The MCUboot version in this release is version ``2.1.0+0-dev``. 1973 1974OSDP 1975**** 1976 1977* Fixed issue in CP secure channel handshake where R-MAC can be reverted to an 1978 old one by a rogue PD sending an out-of-order secure channel response resulting 1979 in a replay attack. 1980 1981Trusted Firmware-M 1982****************** 1983 1984* TF-M was updated to 2.1.0. Release notes can be found at: 1985 https://tf-m-user-guide.trustedfirmware.org/releases/2.1.0.html 1986 1987* Support for MCUboot signature types other than RSA-3072 has been added. 1988 The type can be chosen with the :kconfig:option:`CONFIG_TFM_MCUBOOT_SIGNATURE_TYPE` Kconfig option. 1989 Using EC-P256, the new default, reduces flash usage by several KBs compared to RSA. 1990 1991LVGL 1992**** 1993 1994LVGL was updated to 8.4.0. Release notes can be found at: 1995https://docs.lvgl.io/8.4/CHANGELOG.html#v8-4-0-19-march-2024 1996 1997Additionally, the following changes in Zephyr were done: 1998 1999 * Added support to place memory pool buffers in ``.lvgl_heap`` section by enabling 2000 :kconfig:option:`CONFIG_LV_Z_MEMORY_POOL_CUSTOM_SECTION` 2001 2002 * Removed kscan-based pointer input wrapper code. 2003 2004 * Corrected encoder button behavior to emit ``LV_KEY_ENTER`` events correctly. 2005 2006 * Improved handling for :samp:`invert-{x,y}` and ``swap-xy`` configurations. 2007 2008 * Added ``LV_MEM_CUSTOM_FREE`` call on file closure. 2009 2010 * Added missing Kconfig stubs for DMA2D symbols. 2011 2012 * Integrated support for LVGL rounder callback function. 2013 2014Tests and Samples 2015***************** 2016 2017 * Added snippet for easily enabling UART over Bluetooth LE by passing ``-S nus-console`` during 2018 ``west build``. This snippet sets the :kconfig:option:`CONFIG_BT_ZEPHYR_NUS_AUTO_START_BLUETOOTH` 2019 which allows non-Bluetooth samples that use the UART APIs to run without modifications 2020 (e.g.: Console and Logging examples). 2021 2022 * Removed ``GSM_PPP`` specific configuration overlays from samples ``net/cloud/tagoio`` and 2023 ``net/mgmt/updatehub``. The ``GSM_PPP`` device driver has been deprecated and removed. The new 2024 ``MODEM_CELLULAR`` device driver which replaces it uses the native networking stack and ``PM`` 2025 subsystem, which like ethernet, requires no application specific actions to set up networking. 2026 2027 * Removed ``net/gsm_modem`` sample as the ``GSM_PPP`` device driver it depended on has been 2028 deprecated and removed. The sample has been replaced by the sample ``net/cellular_modem`` 2029 based on the ``MODEM_CELLULAR`` device driver. 2030 2031 * BT LE Coded PHY is now runtime tested in CI with the nrf5x bsim targets. 2032 2033 * External ethernet network interfaces have been disabled in the ``tests/net`` tests, since these 2034 tests are meant to use simulated network interfaces. 2035 2036Issue Related Items 2037******************* 2038 2039Known Issues 2040============ 2041 2042- :github:`74345` - Bluetooth: Non functional on nRF51 with fault 2043