1:orphan: 2 3.. _zephyr_4.0: 4 5Zephyr 4.0.0 6############ 7 8We are pleased to announce the release of Zephyr version 4.0.0. 9 10Major enhancements with this release include: 11 12* **Secure Storage Subsystem**: 13 A newly introduced :ref:`secure storage<secure_storage>` subsystem allows the use of the 14 PSA Secure Storage API and of persistent keys in the PSA Crypto API on *all* board targets. It 15 is now the standard way to provide device-specific protection to data at rest. (:github:`76222`) 16 17* **ZMS (Zephyr Memory Storage) Subsystem**: 18 :ref:`ZMS <zms_api>` is a new key-value storage subsystem compatible with all non-volatile storage 19 types, including traditional NOR flash and advanced technologies like RRAM and MRAM that support 20 write without erasure. 21 22* **Analog Comparators**: 23 A new :ref:`comparator<comparator_api>` device driver subsystem for analog comparators has been 24 added, complete with shell support. It supports initial configuration through Devicetree and 25 runtime configuration through vendor specific APIs. Initially the :dtcompatible:`nordic,nrf-comp`, 26 :dtcompatible:`nordic,nrf-lpcomp` and :dtcompatible:`nxp,kinetis-acmp` are supported. 27 28* **Stepper Motors**: 29 It is now possible to interact with stepper motors using a standard API thanks to the new 30 :ref:`stepper<stepper_api>` device driver subsystem, which also comes with shell support. 31 Initially implemented drivers include a simple :dtcompatible:`zephyr,gpio-steppers` and a complex 32 sensor-less stall-detection capable with integrated ramp-controller :dtcompatible:`adi,tmc5041`. 33 34* **Haptics**: 35 A new :ref:`haptics_api` device driver subsystem allows unified access to haptic controllers, 36 enabling users to add haptic feedback to their applications. 37 38* **Multimedia Capabilities** 39 Zephyr's audio and video capabilities have been expanded with support for new image sensors, video 40 interfaces, audio interfaces, and codecs being supported. 41 42* **Prometheus Library**: 43 A `Prometheus`_ metrics library has been added to the networking stack. It provides a way to 44 expose metrics to Prometheus clients over HTTP, facilitating the consolidated remote monitoring of 45 Zephyr devices alongside other systems typically monitored using Prometheus. 46 47* **Documentation Improvements**: 48 Several enhancements were made to the online documentation to improve content discovery and 49 navigation. These include a new :ref:`interactive board catalog <boards>` and an interactive 50 directory for :zephyr:code-sample-category:`code samples <samples>`. 51 52* **Expanded Board Support**: 53 Over 60 :ref:`new boards <boards_added_in_zephyr_4_0>` and 54 :ref:`shields <shields_added_in_zephyr_4_0>` are supported in Zephyr 4.0. 55 56.. _`Prometheus`: https://prometheus.io/ 57 58An overview of the changes required or recommended when migrating your application from Zephyr 59v3.7.0 to Zephyr v4.0.0 can be found in the separate :ref:`migration guide<migration_4.0>`. 60 61The following sections provide detailed lists of changes by component. 62 63Security Vulnerability Related 64****************************** 65The following CVEs are addressed by this release: 66 67More detailed information can be found in: 68https://docs.zephyrproject.org/latest/security/vulnerabilities.html 69 70* :cve:`2024-8798`: Under embargo until 2024-11-22 71* :cve:`2024-10395`: Under embargo until 2025-01-23 72* :cve:`2024-11263` `Zephyr project bug tracker GHSA-jjf3-7x72-pqm9 73 <https://github.com/zephyrproject-rtos/zephyr/security/advisories/GHSA-jjf3-7x72-pqm9>`_ 74 75API Changes 76*********** 77 78Removed APIs in this release 79============================ 80 81* Macro ``K_THREAD_STACK_MEMBER``, deprecated since v3.5.0, has been removed. 82 Use :c:macro:`K_KERNEL_STACK_MEMBER` instead. 83 84* ``CBPRINTF_PACKAGE_COPY_*`` macros, deprecated since Zephyr 3.5.0, have been removed. 85 86* ``_ENUM_TOKEN`` and ``_ENUM_UPPER_TOKEN`` macros, deprecated since Zephyr 2.7.0, 87 are no longer generated. 88 89* Removed deprecated arch-level CMSIS header files 90 ``include/zephyr/arch/arm/cortex_a_r/cmsis.h`` and 91 ``include/zephyr/arch/arm/cortex_m/cmsis.h``. ``cmsis_core.h`` needs to be 92 included now. 93 94* Removed deprecated ``ceiling_fraction`` macro. :c:macro:`DIV_ROUND_UP` needs 95 to be used now. 96 97* Removed deprecated header file 98 ``include/zephyr/random/rand32.h``. ``random.h`` needs to be included now. 99 100* Deprecated ``EARLY``, ``APPLICATION`` and ``SMP`` init levels can no longer be 101 used for devices. 102 103* Removed deprecated net_pkt functions. 104 105Deprecated in this release 106========================== 107 108* Deprecated the :c:func:`net_buf_put` and :c:func:`net_buf_get` API functions in favor of 109 :c:func:`k_fifo_put` and :c:func:`k_fifo_get`. 110 111* The :ref:`kscan_api` subsystem has been marked as deprecated. 112 113* Deprecated the TinyCrypt shim driver ``CONFIG_CRYPTO_TINYCRYPT_SHIM``. 114 115* :ref:`native_posix<native_posix>` has been deprecated in favour of 116 :ref:`native_sim<native_sim>`. 117 118* ``include/zephyr/net/buf.h`` is deprecated in favor of 119 ``include/zephyr/net_buf.h>``. The old header will be removed in future releases 120 and its usage should be avoided. 121 122* Deprecated the :c:func:`net_buf_put` and :c:func:`net_buf_get` API functions. 123 124Architectures 125************* 126 127* ARC 128 129* ARM 130 131 * Added support of device memory attributes on Cortex-M (arm_mpu_v8) 132 133* ARM64 134 135 * Added initial support for :c:func:`arch_stack_walk` that supports unwinding via esf only 136 * Added sys_arch_reboot() support to ARM64 137 138 * Added support for demand paging. 139 140 * Added support for Linkable Loadable Extensions (LLEXT). 141 142* RISC-V 143 144 * The stack traces upon fatal exception now prints the address of stack pointer (sp) or frame 145 pointer (fp) depending on the build configuration. 146 147 * When :kconfig:option:`CONFIG_EXTRA_EXCEPTION_INFO` is enabled, the exception stack frame (arch_esf) 148 has an additional field ``csf`` that points to the callee-saved-registers upon an fatal error, 149 which can be accessed in :c:func:`k_sys_fatal_error_handler` by ``esf->csf``. 150 151 * For SoCs that select ``RISCV_SOC_HAS_ISR_STACKING``, the ``SOC_ISR_STACKING_ESF_DECLARE`` has to 152 include the ``csf`` member, otherwise the build would fail. 153 154* Xtensa 155 156* x86 157 158 * Added initial support for :c:func:`arch_stack_walk` that supports unwinding via esf only 159 160Kernel 161****** 162 163* Devicetree devices are now exported to :ref:`llext`. 164 165Bluetooth 166********* 167 168* Audio 169 170 * :c:func:`bt_tbs_client_register_cb` now supports multiple listeners and may now return an error. 171 172 * Added APIs for getting and setting the assisted listening stream values in codec capabilities 173 and codec configuration: 174 175 * :c:func:`bt_audio_codec_cfg_meta_get_assisted_listening_stream` 176 * :c:func:`bt_audio_codec_cfg_meta_set_assisted_listening_stream` 177 * :c:func:`bt_audio_codec_cap_meta_get_assisted_listening_stream` 178 * :c:func:`bt_audio_codec_cap_meta_set_assisted_listening_stream` 179 180 * Added APIs for getting and setting the broadcast name in codec capabilities 181 and codec configuration: 182 183 * :c:func:`bt_audio_codec_cfg_meta_get_broadcast_name` 184 * :c:func:`bt_audio_codec_cfg_meta_set_broadcast_name` 185 * :c:func:`bt_audio_codec_cap_meta_get_broadcast_name` 186 * :c:func:`bt_audio_codec_cap_meta_set_broadcast_name` 187 188* Host 189 190 * Added API :c:func:`bt_gatt_get_uatt_mtu` to get current Unenhanced ATT MTU of a given 191 connection (experimental). 192 * Added :kconfig:option:`CONFIG_BT_CONN_TX_NOTIFY_WQ`. 193 The option allows using a separate workqueue for connection TX notify processing 194 (:c:func:`bt_conn_tx_notify`) to make Bluetooth stack more independent from the system workqueue. 195 196 * The host now disconnects from the peer upon ATT timeout. 197 198 * Added a warning to :c:func:`bt_conn_le_create` and :c:func:`bt_conn_le_create_synced` if 199 the connection pointer passed as an argument is not NULL. 200 201 * Added Kconfig option :kconfig:option:`CONFIG_BT_CONN_CHECK_NULL_BEFORE_CREATE` to enforce 202 :c:func:`bt_conn_le_create` and :c:func:`bt_conn_le_create_synced` return an error if the 203 connection pointer passed as an argument is not NULL. 204 205 * Fixed an ltk derive issue in L2CAP 206 * Added listener callback for discovery (BR) 207 * Corrected BR bonding type (SSP) 208 * Added support for non-bondable mode (SSP) 209 * Changed SSP so that no MITM if required level is less than L3 210 * Added checking the receiving buffer length before pulling data (AVDTP) 211 * Added support of security level 4 to SSP 212 * Fixed LE LTK cannot be derived 213 * Added support for Multi-Command Packet (l2cap) 214 * Improved the L2CAP code to Set flags in CFG RSP 215 * Improved the L2CAP code to handle all configuration options 216 * Improved the SSP code to clear pairing flag if ssp pairing completed area 217 * Improved the SMP code to check if remote supports CID 0x0007 218 * Added support for SMP CT2 flag 219 * Improved the SSP code so the proper callback is called when pairing fails 220 221* Controller 222 223 * Added Periodic Advertising Sync Transfer (PAST) support with support for both sending and receiving roles. 224 The option can be enabled by :kconfig:option:`CONFIG_BT_CTLR_SYNC_TRANSFER_SENDER` and 225 :kconfig:option:`CONFIG_BT_CTLR_SYNC_TRANSFER_RECEIVER`. 226 227* HCI Drivers 228 229* Mesh 230 231 * Introduced a mesh-specific workqueue to increase reliability of the mesh messages 232 transmission. To get the old behavior enable :kconfig:option:`CONFIG_BT_MESH_WORKQ_SYS`. 233 234Boards & SoC Support 235******************** 236 237* Added support for these SoC series: 238 239 * Added ESP32-C2 and ESP8684 SoC support. 240 * Added STM32U0 series with GPIO, Serial, I2C, DAC, ADC, flash, PWM and counter driver support. 241 * Added STM32WB0 series with GPIO, Serial, I2C, SPI, ADC, DMA and flash driver support. 242 * Added STM32U545xx SoC variant. 243 * Added NXP i.MX93's Cortex-M33 core 244 * Added NXP MCXW71, MCXC242, MCXA156, MCXN236, MCXC444, RT1180 245 246* Made these changes in other SoC series: 247 248 * NXP S32Z270: Added support for the new silicon cut version 2.0. Note that the previous 249 versions (1.0 and 1.1) are no longer supported. 250 * NXP s32k3: fixed RAM retention issue 251 * NXP s32k1: obtain system clock frequency from Devicetree 252 versions (1.0 and 1.1) are no longer supported. 253 * Added ESP32 WROVER-E-N16R4 variant. 254 * STM32H5: Added support for OpenOCD through STMicroelectronics OpenOCD fork. 255 * MAX32: Enabled Segger RTT and SystemView support. 256 * Silabs Series 2: Use oscillator, clock and DCDC configuration from device tree during init. 257 * Silabs Series 2: Added initialization for SMU (Security Management Unit). 258 * Silabs Series 2: Use sleeptimer as the default OS timer instead of systick. 259 * NXP i.MX8MP: Enable the IRQ_STEER interrupt controller. 260 * NXP RWxxx: 261 262 * added additional support to Wakeup from low power modes 263 * RW61x: increased main stack size to avoid stack overflows when running BLE 264 * RW612: enabled SCTIMER 265 266 * NXP IMXRT: Fixed flexspi boot issue caused by an erroneous relocation of the Flash Configuration Block 267 of Kconfig defaults being sourced 268 * NXP RT11xx: enabled FlexIO 269 * NXP IMXRT116x: Fixed bus clocking to align with the settings of the MCUXpresso SDK 270 * NXP mimxrt685: fixed clocks to enable DMIC 271 * NXP MCX N Series: Fixed NXP LPSPI native chip select when using synchronous API with DMA bug 272 * Nordic nRF54H: Added support for the FLPR (Fast Lightweight Processor) RISC-V CPU. 273 274.. _boards_added_in_zephyr_4_0: 275 276* Added support for these boards: 277 278 * :zephyr:board:`01space ESP32C3 0.42 OLED <esp32c3_042_oled>` (``esp32c3_042_oled``) 279 * :zephyr:board:`ADI MAX32662EVKIT <max32662evkit>` (``max32662evkit``) 280 * :zephyr:board:`ADI MAX32666EVKIT <max32666evkit>` (``max32666evkit``) 281 * :zephyr:board:`ADI MAX32666FTHR <max32666fthr>` (``max32666fthr``) 282 * :zephyr:board:`ADI MAX32675EVKIT <max32675evkit>` (``max32675evkit``) 283 * :zephyr:board:`ADI MAX32690FTHR <max32690fthr>` (``max32690fthr``) 284 * :ref:`Arduino Nicla Vision <arduino_nicla_vision_board>` (``arduino_nicla_vision``) 285 * :zephyr:board:`BeagleBone AI-64 <beaglebone_ai64>` (``beaglebone_ai64``) 286 * :zephyr:board:`BeaglePlay (CC1352) <beagleplay>` (``beagleplay``) 287 * :zephyr:board:`DPTechnics Walter <walter>` (``walter``) 288 * :zephyr:board:`Espressif ESP32-C3-DevKitC <esp32c3_devkitc>` (``esp32c3_devkitc``) 289 * :zephyr:board:`Espressif ESP32-C3-DevKit-RUST <esp32c3_rust>` (``esp32c3_rust``) 290 * :zephyr:board:`Espressif ESP32-S3-EYE <esp32s3_eye>` (``esp32s3_eye``) 291 * :zephyr:board:`Espressif ESP8684-DevKitM <esp8684_devkitm>` (``esp8684_devkitm``) 292 * :zephyr:board:`Gardena Smart Garden Radio Module <sgrm>` (``sgrm``) 293 * :zephyr:board:`mikroe STM32 M4 Clicker <mikroe_stm32_m4_clicker>` (``mikroe_stm32_m4_clicker``) 294 * :ref:`Nordic Semiconductor nRF54L15 DK <nrf54l15dk_nrf54l15>` (``nrf54l15dk``) 295 * :ref:`Nordic Semiconductor nRF54L20 PDK <nrf54l20pdk_nrf54l20>` (``nrf54l20pdk``) 296 * :ref:`Nordic Semiconductor nRF7002 DK <nrf7002dk_nrf5340>` (``nrf7002dk``) 297 * :zephyr:board:`Nuvoton NPCM400_EVB <npcm400_evb>` (``npcm400_evb``) 298 * :zephyr:board:`NXP FRDM-MCXA156 <frdm_mcxa156>` (``frdm_mcxa156``) 299 * :zephyr:board:`NXP FRDM-MCXC242 <frdm_mcxc242>` (``frdm_mcxc242``) 300 * :zephyr:board:`NXP FRDM-MCXC444 <frdm_mcxc444>` (``frdm_mcxc444``) 301 * :zephyr:board:`NXP FRDM-MCXN236 <frdm_mcxn236>` (``frdm_mcxn236``) 302 * :zephyr:board:`NXP FRDM-MCXW71 <frdm_mcxw71>` (``frdm_mcxw71``) 303 * :zephyr:board:`NXP i.MX95 EVK <imx95_evk>` (``imx95_evk``) 304 * :zephyr:board:`NXP MIMXRT1180-EVK <mimxrt1180_evk>` (``mimxrt1180_evk``) 305 * :ref:`PHYTEC phyBOARD-Nash i.MX93 <phyboard_nash>` (``phyboard_nash``) 306 * :ref:`Renesas RA2A1 Evaluation Kit <ek_ra2a1>` (``ek_ra2a1``) 307 * :ref:`Renesas RA4E2 Evaluation Kit <ek_ra4e2>` (``ek_ra4e2``) 308 * :ref:`Renesas RA4M2 Evaluation Kit <ek_ra4m2>` (``ek_ra4m2``) 309 * :ref:`Renesas RA4M3 Evaluation Kit <ek_ra4m3>` (``ek_ra4m3``) 310 * :ref:`Renesas RA4W1 Evaluation Kit <ek_ra4w1>` (``ek_ra4w1``) 311 * :ref:`Renesas RA6E2 Evaluation Kit <ek_ra6e2>` (``ek_ra6e2``) 312 * :ref:`Renesas RA6M1 Evaluation Kit <ek_ra6m1>` (``ek_ra6m1``) 313 * :ref:`Renesas RA6M2 Evaluation Kit <ek_ra6m2>` (``ek_ra6m2``) 314 * :ref:`Renesas RA6M3 Evaluation Kit <ek_ra6m3>` (``ek_ra6m3``) 315 * :ref:`Renesas RA6M4 Evaluation Kit <ek_ra6m4>` (``ek_ra6m4``) 316 * :ref:`Renesas RA6M5 Evaluation Kit <ek_ra6m5>` (``ek_ra6m5``) 317 * :ref:`Renesas RA8D1 Evaluation Kit <ek_ra8d1>` (``ek_ra8d1``) 318 * :ref:`Renesas RA6E1 Fast Prototyping Board <fpb_ra6e1>` (``fpb_ra6e1``) 319 * :ref:`Renesas RA6E2 Fast Prototyping Board <fpb_ra6e2>` (``fpb_ra6e2``) 320 * :ref:`Renesas RA8T1 Evaluation Kit <mcb_ra8t1>` (``mck_ra8t1``) 321 * :zephyr:board:`Renode Cortex-R8 Virtual <cortex_r8_virtual>` (``cortex_r8_virtual``) 322 * :zephyr:board:`Seeed XIAO ESP32-S3 Sense Variant <xiao_esp32s3>`: ``xiao_esp32s3``. 323 * :ref:`sensry.io Ganymed Break-Out-Board (BOB) <ganymed_bob>` (``ganymed_bob``) 324 * :zephyr:board:`SiLabs SiM3U1xx 32-bit MCU USB Development Kit <sim3u1xx_dk>` (``sim3u1xx_dk``) 325 * :ref:`SparkFun Thing Plus Matter <sparkfun_thing_plus_mgm240p>` (``sparkfun_thing_plus_matter_mgm240p``) 326 * :zephyr:board:`ST Nucleo G431KB <nucleo_g431kb>` (``nucleo_g431kb``) 327 * :zephyr:board:`ST Nucleo H503RB <nucleo_h503rb>` (``nucleo_h503rb``) 328 * :zephyr:board:`ST Nucleo H755ZI-Q <nucleo_h755zi_q>` (``nucleo_h755zi_q``) 329 * :zephyr:board:`ST Nucleo U031R8 <nucleo_u031r8>` (``nucleo_u031r8``) 330 * :zephyr:board:`ST Nucleo U083RC <nucleo_u083rc>` (``nucleo_u083rc``) 331 * :zephyr:board:`ST Nucleo WB05KZ <nucleo_wb05kz>` (``nucleo_wb05kz``) 332 * :zephyr:board:`ST Nucleo WB09KE <nucleo_wb09ke>` (``nucleo_wb09ke``) 333 * :zephyr:board:`ST STM32U083C-DK <stm32u083c_dk>` (``stm32u083c_dk``) 334 * :zephyr:board:`TI CC1352P7 LaunchPad <cc1352p7_lp>` (``cc1352p7_lp``) 335 * :zephyr:board:`vcc-gnd YD-STM32H750VB <yd_stm32h750vb>` (``yd_stm32h750vb``) 336 * :zephyr:board:`WeAct Studio STM32F405 Core Board V1.0 <weact_stm32f405_core>` (``weact_stm32f405_core``) 337 * :zephyr:board:`WeAct Studio USB2CANFDV1 <usb2canfdv1>` (``usb2canfdv1``) 338 * :zephyr:board:`Witte Technology Linum Board <linum>` (``linum``) 339 340 341* Made these board changes: 342 343 * The nrf54l15bsim target now includes models of the AAR, CCM and ECB peripherals, and many 344 other improvements. 345 * Support for Google Kukui EC board (``google_kukui``) has been dropped. 346 * STM32: Deprecated MCO configuration via Kconfig in favour of setting it through Devicetree. 347 See ``samples/boards/st/mco`` sample. 348 * STM32: STM32CubeProgrammer is now the default runner on all STMicroelectronics STM32 boards. 349 * Removed the ``nrf54l15pdk`` board, use :ref:`nrf54l15dk_nrf54l15` instead. 350 * PHYTEC: ``mimx8mp_phyboard_pollux`` has been renamed to :ref:`phyboard_pollux<phyboard_pollux>`, 351 with the old name marked as deprecated. 352 * PHYTEC: ``mimx8mm_phyboard_polis`` has been renamed to :ref:`phyboard_polis<phyboard_polis>`, 353 with the old name marked as deprecated. 354 * The board qualifier for MPS3/AN547 is changed from: 355 356 * ``mps3/an547`` to ``mps3/corstone300/an547`` for secure and 357 * ``mps3/an547/ns`` to ``mps3/corstone300/an547/ns`` for non-secure. 358 359 * Added Thingy53 forwarding of network core pins to network core for SPI peripheral (disabled 360 by default) including pin mappings. 361 * Added uart, flexio pwm, flexio spi, watchdog, flash, rtc, i2c, lpspi, edma, gpio, acmp, adc and lptmr support 362 to NXP ``frdm_ke17z`` and ``frdm_ke17z512`` 363 * Enabled support for MCUmgr on NXP boards 364 * Enabled MCUboot, FlexCAN, LPI2C, VREF, LPADC and timers (TPM, LPTMR, counter, watchdog) on NXP ``frdm_mcxw71`` 365 * Enabled I2C, PWM on NXP ``imx95_evk`` 366 * Enabled FLEXCAN, LPI2C on NXP ``s32z2xxdc2`` 367 * Enabled DSPI and EDMA3 on NXP ``s32z270dc2`` 368 * Enabled ENET ethernet on NXP ``imx8mm`` and ``imx8mn`` 369 * Added support for the NXP ``imx8qm`` and ``imx8qxp`` DSP core to enable the openAMP sample 370 371 372.. _shields_added_in_zephyr_4_0: 373 374* Added support for the following shields: 375 376 * :ref:`ADI EVAL-ADXL362-ARDZ <eval_adxl362_ardz>` 377 * :ref:`ADI EVAL-ADXL372-ARDZ <eval_adxl372_ardz>` 378 * :ref:`Digilent Pmod ACL <pmod_acl>` 379 * :ref:`MikroElektronika BLE TINY Click <mikroe_ble_tiny_click_shield>` 380 * :ref:`Nordic SemiConductor nRF7002 EB <nrf7002eb>` 381 * :ref:`Nordic SemiConductor nRF7002 EK <nrf7002ek>` 382 * :ref:`ST X-NUCLEO-WB05KN1: BLE expansion board <x-nucleo-wb05kn1>` 383 * :ref:`WeAct Studio MiniSTM32H7xx OV2640 Camera Sensor <weact_ov2640_cam_module>` 384 385Build system and Infrastructure 386******************************* 387 388* Added support for .elf files to the west flash command for jlink, pyocd and linkserver runners. 389 390* Extracted pickled EDT generation from gen_defines.py into gen_edt.py. This moved the following 391 parameters from the cmake variable ``EXTRA_GEN_DEFINES_ARGS`` to ``EXTRA_GEN_EDT_ARGS``: 392 393 * ``--dts`` 394 * ``--dtc-flags`` 395 * ``--bindings-dirs`` 396 * ``--dts-out`` 397 * ``--edt-pickle-out`` 398 * ``--vendor-prefixes`` 399 * ``--edtlib-Werror`` 400 401* Switched to using imgtool directly from the build system when signing images instead of calling 402 ``west sign``. 403 404* Added support for selecting MCUboot operating mode in sysbuild using ``SB_CONFIG_MCUBOOT_MODE``. 405 406* Added support for RAM-load MCUboot operating mode in build system, including sysbuild support. 407 408* Added a script parameter to Twister to enable HW specific arguments, such as a system specific 409 timeout 410 411Documentation 412************* 413 414* Added a new :ref:`interactive board catalog <boards>` enabling users to search boards by criteria 415 such as name, architecture, vendor, or SoC. 416* Added a new :zephyr:code-sample-category:`interactive code sample catalog <samples>` for quickly 417 finding code samples based on name and description. 418* Added :rst:dir:`zephyr:board` directive and :rst:role:`zephyr:board` role to mark Sphinx pages as 419 board documentation and reference them from other pages. Most existing board documentation pages 420 have been updated to use this directive, with full migration planned for the next release. 421* Added :rst:dir:`zephyr:code-sample-category` directive to describe and group code samples in the 422 documentation. 423* Added a link to the source code of the driver matching a binding's compatible string (when one can 424 be found in the Zephyr tree) to the :ref:`Devicetree bindings <devicetree_binding_index>` documentation. 425* Added a button to all code sample README pages allowing to directly browse the sample's source 426 code on GitHub. 427* Moved Zephyr C API documentation out of main documentation. API references now feature a rich 428 tooltip and link to the dedicated Doxygen site. 429* Added two new build commands, ``make html-live`` and ``make html-live-fast``, that automatically 430 locally host the generated documentation. They also automatically rebuild and rehost the 431 documentation when changes to the input ``.rst`` files are detected on the filesystem. 432 433Drivers and Sensors 434******************* 435 436* ADC 437 438 * Added proper ADC2 calibration entries in ESP32. 439 * Fixed calibration scheme in ESP32-S3. 440 * STM32H7: Added support for higher sampling frequencies thanks to boost mode implementation. 441 * Added initial support for Renesas RA8 ADC driver (:dtcompatible:`renesas,ra-adc`) 442 * Added driver for Analog Devices MAX32 SoC series (:dtcompatible:`adi,max32-adc`). 443 * Added support for NXP S32 SAR_ADC (:dtcompatible:`nxp,s32-adc-sar`) 444 * Added support for Ambiq Apollo3 series (:dtcompatible:`ambiq,adc`). 445 446* CAN 447 448 * Added initial support for Renesas RA CANFD (:dtcompatible:`renesas,ra-canfd-global`, 449 :dtcompatible:`renesas,ra-canfd`) 450 * Added Flexcan support for S32Z27x (:dtcompatible:`nxp,flexcan`, :dtcompatible:`nxp,flexcan-fd`) 451 * Improved NXP S32 CANXL error reporting (:dtcompatible:`nxp,s32-canxl`) 452 453* Clock control 454 455 * STM32 MCO (Microcontroller Clock Output) is now available on STM32U5 series. 456 * STM32 MCO can and should now be configured with device tree. 457 * STM32: :kconfig:option:`CONFIG_CLOCK_CONTROL` is now enabled by default at family level and doesn't need 458 to be enabled at board level anymore. 459 * STM32H7: PLL FRACN can now be configured (see :dtcompatible:`st,stm32h7-pll-clock`) 460 * Added initial support for Renesas RA clock control driver (:dtcompatible:`renesas,ra-cgc-pclk`, 461 :dtcompatible:`renesas,ra-cgc-pclk-block`, :dtcompatible:`renesas,ra-cgc-pll`, 462 :dtcompatible:`renesas,ra-cgc-external-clock`, :dtcompatible:`renesas,ra-cgc-subclk`, 463 :dtcompatible:`renesas,ra-cgc-pll-out`) 464 * Silabs: Added support for Series 2+ Clock Management Unit (see :dtcompatible:`silabs,series-clock`) 465 * Added initial support for Nordic nRF54H Series clock controllers. 466 467* Codec (Audio) 468 469 * Added a driver for the Wolfson WM8904 audio codec (:dtcompatible:`wolfson,wm8904`) 470 471* Comparator 472 473 * Introduced comparator device driver subsystem selected with :kconfig:option:`CONFIG_COMPARATOR` 474 * Introduced comparator shell commands selected with :kconfig:option:`CONFIG_COMPARATOR_SHELL` 475 * Added support for Nordic nRF COMP (:dtcompatible:`nordic,nrf-comp`) 476 * Added support for Nordic nRF LPCOMP (:dtcompatible:`nordic,nrf-lpcomp`) 477 * Added support for NXP Kinetis ACMP (:dtcompatible:`nxp,kinetis-acmp`) 478 479* Counter 480 481 * Added initial support for Renesas RA8 AGT counter driver (:dtcompatible:`renesas,ra-agt`) 482 * Added driver for Analog Devices MAX32 SoC series (:dtcompatible:`adi,max32-counter`). 483 * Updated the NXP counter_mcux_lptmr driver to support multiple instances of the lptmr 484 peripheral. 485 * Converted the NXP S32 System Timer Module driver to native Zephyr code 486 * Added support for late and short relative alarms area to NXP nxp_sys_timer (:dtcompatible:`nxp,s32-sys-timer`) 487 488* Crypto 489 490 * Added support for STM32L4 AES. 491 492* DAC 493 494 * DAC API now supports specifying channel path as internal. Support has been added in STM32 drivers. 495 496* Disk 497 498 * STM32F7 SDMMC driver now supports usage of DMA. 499 * STM32 mem controller driver now supports FMC for STM32H5. 500 * SDMMC subsystem driver will now power down the SD card when the disk is 501 deinitialized 502 503* Display 504 505 * NXP ELCDIF driver now supports flipping the image along the horizontal 506 or vertical axis using the PXP. Use 507 :kconfig:option:`CONFIG_MCUX_ELCDIF_PXP_FLIP_DIRECTION` to set the desired 508 flip. 509 * ST7789V driver now supports BGR565, enabled with 510 :kconfig:option:`CONFIG_ST7789V_BGR565`. 511 * Added driver for SSD1327 OLED display controller (:dtcompatible:`solomon,ssd1327fb`). 512 * Added driver for SSD1322 OLED display controller (:dtcompatible:`solomon,ssd1322`). 513 * Added driver for IST3931 monochrome display controller (:dtcompatible:`istech,ist3931`). 514 515* DMA 516 517 * Added driver for Analog Devices MAX32 SoC series (:dtcompatible:`adi,max32-dma`). 518 * Added flip feature to the NXP dma_mcux_pxp driver (:dtcompatible:`nxp,pxp`) 519 * Added support for eDMAv5 and cyclic mode (:github:`80584`) to the NXP EMDA driver (:dtcompatible:`nxp,edma`) 520 521* EEPROM 522 523 * Added support for using the EEPROM simulator with embedded C standard libraries 524 (:dtcompatible:`zephyr,sim-eeprom`). 525 526* Entropy 527 528 * Added initial support for Renesas RA8 Entropy driver (:dtcompatible:`renesas,ra-rsip-e51a-trng`) 529 * Added driver for Analog Devices MAX32 SoC series (:dtcompatible:`adi,max32-trng`). 530 531* Ethernet 532 533 * Added a :c:func:`get_phy` function to the ethernet driver api, which returns the phy device 534 associated to a network interface. 535 * Added 2.5G and 5G link speeds to the ethernet hardware capabilities api. 536 * Added check for null api pointer in :c:func:`net_eth_get_hw_capabilities`, fixing netusb crash. 537 * Added synopsis dwc_xgmac ethernet driver. 538 * Added NXP iMX NETC driver. 539 * Adin2111 540 541 * Fixed bug that resulted in double RX buffer read when generic spi protocol is used. 542 * Fixed essential thread termination on OA read failure. 543 * Skip checks for port 2 on the adin1110 since it doesn't apply, as there is no port 2. 544 * ENC28J60 545 546 * Added support for the ``zephyr,random-mac-address`` property. 547 * Fixed race condition between interrupt service and L2 init affecting carrier status in init. 548 * ENC424j600: Added ability to change mac address at runtime with net management api. 549 * ESP32: Added configuration of interrupts from DT. 550 * Lan865x 551 552 * Enable all multicast MAC address for IPv6. All multicast mac address can now be 553 received and allows for correct handling of the IPv6 neighbor discovery protocol. 554 * Fixed transmission stopping when setting mac address or promiscuous mode. 555 * LiteX 556 557 * Renamed the ``compatible`` from ``litex,eth0`` to :dtcompatible:`litex,liteeth`. 558 * Added support for multiple instances of the liteX ethernet driver. 559 * Added support for VLAN to the liteX ethernet driver. 560 * Added phy support. 561 * Native_posix 562 563 * Implemented getting the interface name from the command line. 564 * Now prints error number in error message when creating an interface. 565 * NXP ENET_QOS: Fixed check for ``zephyr,random-mac-address`` property. 566 * NXP ENET: 567 568 * Fixed fused MAC address initialization code. 569 * Fixed code path for handling tx errors with timestamped frames. 570 * Fixed network carrier status race condition during init. 571 * NXP S32: Added configs to enable VLAN promiscuous and untagged, and enable SI message interrupt. 572 * STM32 573 574 * Driver can now be configured to use a preemptive RX thread priority, which could be useful 575 in case of high network traffic load (reduces jitter). 576 * Added support for DT-defined mdio. 577 * Fixed bus error after network disconnection that happened in some cases. 578 * TC6: Combine read chunks into continuous net buffer. This fixes IPv6 neighbor discovery protocol 579 because 64 bytes was not enough for all headers. 580 * PHY driver changes 581 582 * Added Qualcomm AR8031 phy driver. 583 * Added DP83825 phy driver. 584 * PHY_MII 585 586 * Fixed generic phy_mii driver not using the value of the ``no-reset`` property from Devicetree. 587 * Removed excess newlines from log output of phy_mii driver. 588 * KSZ8081 589 590 * Fixed reset times during init that were unnecessarily long. 591 * Removed unnecessary reset on every link configuration that blocked system workqueue 592 * Fixed issue relating to strap-in override bits. 593 594 595* Flash 596 597 * Fixed SPI NOR driver issue where wp, hold and reset pins were incorrectly initialized from 598 device tee when SFDP at run-time has been enabled (:github:`80383`) 599 * Updated all Espressif's SoC driver initialization to allow new chipsets and octal flash support. 600 * Added :kconfig:option:`CONFIG_SPI_NOR_ACTIVE_DWELL_MS`, to the SPI NOR driver configuration, 601 which allows setting the time during which the driver will wait before triggering Deep Power Down (DPD). 602 This option replaces ``CONFIG_SPI_NOR_IDLE_IN_DPD``, aiming at reducing unnecessary power 603 state changes and SPI transfers between other operations, specifically when burst type 604 access to an SPI NOR device occurs. 605 * Added :kconfig:option:`CONFIG_SPI_NOR_INIT_PRIORITY` to allow selecting the SPI NOR driver initialization priority. 606 * The flash API has been extended with the :c:func:`flash_copy` utility function which allows performing 607 direct data copies between two Flash API devices. 608 * Fixed a Flash Simulator issue where offsets were assumed to be absolute instead of relative 609 to the device base address (:github:`79082`). 610 * Extended STM32 OSPI drivers to support QUAL, DUAL and SPI modes. Additionally, added support 611 for custom write and SFDP:BFP opcodes. 612 * Added possibility to run STM32H7 flash driver from Cortex-M4 core. 613 * Implemented readout protection handling (RDP levels) for STM32F7 SoCs. 614 * Added initial support for Renesas RA8 Flash controller driver (:dtcompatible:`renesas,ra-flash-hp-controller`) 615 * Added driver for Analog Devices MAX32 SoC series (:dtcompatible:`adi,max32-flash-controller`). 616 * Added support for W25Q512JV and W25Q512NW-IQ/IN to NXP's MCUX Flexspi driver 617 * Renamed the binding :dtcompatible:`nxp,iap-msf1` to :dtcompatible:`nxp,msf1` for accuracy 618 619* GPIO 620 621 * tle9104: Add support for the parallel output mode via setting the properties ``parallel-out12`` and 622 ``parallel-out34``. 623 * Converted the NXP S32 SIUL2 drivers to native Zephyr code 624 * Converted the NXP wake-up drivers to native Zephyr code 625 626* Haptics 627 628 * Introduced a haptics device driver subsystem selected with :kconfig:option:`CONFIG_HAPTICS` 629 * Added support for TI DRV2605 haptic driver IC (:dtcompatible:`ti,drv2605`) 630 * Added a sample for the DRV2605 haptic driver to trigger ROM events (:zephyr:code-sample:`drv2605`) 631 632* I2C 633 634 * Added initial support for Renesas RA8 I2C driver (:dtcompatible:`renesas,ra-iic`) 635 636* I2S 637 638 * Added ESP32-S3 and ESP32-C3 driver support. 639 640* I3C 641 642 * Added support for SETAASA optimization during initialization. Added a 643 ``supports-setaasa`` property to ``i3c-devices.yaml``. 644 * Added sending DEFTGTS if any devices that support functioning as a secondary 645 controller on the bus. 646 * Added retrieving GETMXDS within :c:func:`i3c_device_basic_info_get` if BCR mxds 647 bit is set. 648 * Added helper functions for sending CCCs for ENTTM, VENDOR, DEFTGTS, SETAASA, 649 GETMXDS, SETBUSCON, RSTACT DC, ENTAS0, ENTAS1, ENTAS2, and ENTAS3. 650 * Added shell commands for sending CCCs for ENTTM, VENDOR, DEFTGTS, SETAASA, 651 GETMXDS, SETBUSCON, RSTACT DC, ENTAS0, ENTAS1, ENTAS2, and ENTAS3. 652 * Added shell commands for setting the I3C speed, sending HDR-DDR, raising IBIs, 653 enabling IBIs, disabling IBIs, and scanning I2C addresses. 654 * :c:func:`i3c_ccc_do_setdasa` has been modified to now require specifying the assigned 655 dynamic address rather than having the dynamic address be determined within the function. 656 * :c:func:`i3c_determine_default_addr` has been removed 657 * ``attach_i3c_device`` now no longer requires the attached address as an argument. It is now 658 up to the driver to determine the attached address from the ``i3c_device_desc``. 659 660* Input 661 662 * New feature: :dtcompatible:`zephyr,input-double-tap`. 663 664 * New driver: :dtcompatible:`ilitek,ili2132a`. 665 666 * Added power management support to all keyboard matrix drivers, added a 667 ``no-disconnect`` property to :dtcompatible:`gpio-keys` so it can be used 668 with power management on GPIO drivers that do not support pin 669 disconnection. 670 671 * Added a new framework for touchscreen common properties and features 672 (screen size, inversion, xy swap). 673 674 * Fixed broken ESP32 input touch sensor driver. 675 676 * gt911: 677 * Fixed the INT pin to be always set during probe to allow for proper initialization 678 * Fixed OOB buffer write to touch points array 679 * Add support for multitouch events 680 681* Interrupt 682 683 * Updated ESP32 family interrupt allocator with proper IRQ flags and priorities. 684 * Implemented a function to set pending interrupts for Arm GIC 685 * Added a safe configuration option so multiple OS'es can share the same GIC and avoid reconfiguring 686 the distributor 687 688* LED 689 690 * lp5562: added ``enable-gpios`` property to describe the EN/VCC GPIO of the lp5562. 691 692 * lp5569: added ``charge-pump-mode`` property to configure the charge pump of the lp5569. 693 694 * lp5569: added ``enable-gpios`` property to describe the EN/PWM GPIO of the lp5569. 695 696 * LED code samples have been consolidated under the :zephyr_file:`samples/drivers/led` directory. 697 698* LED Strip 699 700 * Updated ws2812 GPIO driver to support dynamic bus timings 701 702* Mailbox 703 704 * Added driver support for ESP32 and ESP32-S3 SoCs. 705 706* MDIO 707 708 * Added litex MDIO driver. 709 * Added support for mdio shell to stm32 mdio. 710 * Added mdio driver for dwc_xgmac synopsis ethernet. 711 * Added NXP IMX NETC mdio driver. 712 * NXP ENET MDIO: Fixed inconsistent behavior by keeping the mdio interrupt enabled all the time. 713 714* MEMC 715 716 * Add driver for APS6404L PSRAM using NXP FLEXSPI 717 718* MFD 719 720* Modem 721 722 * Added support for the U-Blox LARA-R6 modem. 723 * Added support for setting the modem's UART baudrate during init. 724 725* MIPI-DBI 726 727 * Added bitbang MIPI-DBI driver, supporting 8080 and 6800 mode 728 (:dtcompatible:`zephyr,mipi-dbi-bitbang`). 729 * Added support for STM32 FMC memory controller (:dtcompatible:`st,stm32-fmc-mipi-dbi`). 730 * Added support for 8080 mode to NXP LCDIC controller (:dtcompatible:`nxp,lcdic`). 731 * Fixed the calculation of the reset delay for NXP's LCD controller (:dtcompatible:`nxp,lcdic`) 732 733* MIPI-CSI 734 735 * Improve NXP CSI and MIPI_CSI2Rx drivers to support varibale frame rates 736 737* Pin control 738 739 * Added support for Microchip MEC5 740 * Added SCMI-based driver for NXP i.MX 741 * Added support for i.MX93 M33 core 742 * Added support for ESP32C2 743 * STM32: :kconfig:option:`CONFIG_PINCTRL` is now selected by drivers requiring it and 744 shouldn't be enabled at board level anymore. 745 746* PWM 747 748 * rpi_pico: The driver now configures the divide ratio adaptively. 749 * Added initial support for Renesas RA8 PWM driver (:dtcompatible:`renesas,ra8-pwm`) 750 * Added driver for Analog Devices MAX32 SoC series (:dtcompatible:`adi,max32-pwm`). 751 * Fixed a build issue of the NXP TPM driver for variants without the capability to combine channels 752 753* Regulators 754 755 * Upgraded CP9314 driver to B1 silicon revision 756 * Added basic driver for MPS MPM54304 757 758* RTC 759 760 * STM32: HSE can now be used as domain clock. 761 * Added the NXP IRTC Driver. 762 763* RTIO 764 765* SAI 766 767 * Improved NXP's SAI driver to use a default clock if none is provided in the DT 768 * Fixed a bug in the NXP SAI driver that caused a crash on a FIFO under- and overrun 769 * Fixed a bug that reset the NXP ESAI during initialization (unnecessary) 770 * Added support for PM operations in NXP's SAI driver 771 772* SDHC 773 774 * Added ESP32-S3 driver support. 775 * SPI SDHC driver now handles SPI devices with runtime PM support correctly 776 * Improved NXP's imx SDHC driver to assume card is present if no detection method is provided 777 778* Sensors 779 780 * General 781 782 * The existing driver for the Microchip MCP9808 temperature sensor transformed and renamed to 783 support all JEDEC JC 42.4 compatible temperature sensors. It now uses the 784 :dtcompatible:`jedec,jc-42.4-temp` compatible string instead to the ``microchip,mcp9808`` 785 string. 786 * Added support for VDD based ADC reference to the NTC thermistor driver. 787 * Added Avago APDS9253 (:dtcompatible:`avago,apds9253`) and APDS9306 788 (:dtcompatible:`avago,apds9306`) ambient light sensor drivers. 789 * Added gain and resolution attributes (:c:enum:`SENSOR_ATTR_GAIN` and 790 :c:enum:`SENSOR_ATTR_RESOLUTION`). 791 792 * ADI 793 794 * Add RTIO streaming support to ADXL345, ADXL362, and ADXL372 accelerometer drivers. 795 796 * Bosch 797 798 * Merged BMP390 into BMP388. 799 * Added support for power domains to BMM150 and BME680 drivers. 800 * Added BMP180 pressure sensor driver (:dtcompatible:`bosch,bmp180`). 801 802 * Memsic 803 804 * Added MMC56X3 magnetometer and temperature sensor driver (:dtcompatible:`memsic,mmc56x3`). 805 806 * NXP 807 808 * Added P3T1755 digital temperature sensor driver (:dtcompatible:`nxp,p3t1755`). 809 * Added FXLS8974 accelerometer driver (:dtcompatible:`nxp,fxls8974`). 810 811 * ST 812 813 * Aligned drivers to stmemsc HAL i/f v2.6. 814 * Added LSM9DS1 accelerometer/gyroscope/magnetometer sensor driver (:dtcompatible:`st,lsm9ds1`). 815 816 * TDK 817 818 * Added I2C bus support to ICM42670. 819 820 * TI 821 822 * Added support for INA236 to the existing INA230 driver. 823 * Added support for TMAG3001 to the existing TMAG5273 driver. 824 * Added TMP1075 temperature sensor driver (:dtcompatible:`ti,tmp1075`). 825 826 * Vishay 827 828 * Added trigger capability to VCNL36825T driver. 829 830 * WE 831 832 * Added Würth Elektronik HIDS-2525020210002 833 :dtcompatible:`we,wsen-hids-2525020210002` humidity sensor driver. 834 * Added general samples for triggers 835 836* Serial 837 838 * LiteX: Renamed the ``compatible`` from ``litex,uart0`` to :dtcompatible:`litex,uart`. 839 * Nordic: Removed ``CONFIG_UART_n_GPIO_MANAGEMENT`` Kconfig options (where n is an instance 840 index) which had no use after pinctrl driver was introduced. 841 * NS16550: Added support for Synopsys Designware 8250 UART. 842 * Renesas: Added support for SCI UART. 843 * Sensry: Added UART support for Ganymed SY1XX. 844 845* SPI 846 847 * Added initial support for Renesas RA8 SPI driver (:dtcompatible:`renesas,ra8-spi-b`) 848 * Added RTIO support to the Analog Devices MAX32 driver. 849 * Silabs: Added support for EUSART (:dtcompatible:`silabs,gecko-spi-eusart`) 850 851* Steppers 852 853 * Introduced stepper controller device driver subsystem selected with 854 :kconfig:option:`CONFIG_STEPPER` 855 * Introduced stepper shell commands for controlling and configuring 856 stepper motors with :kconfig:option:`CONFIG_STEPPER_SHELL` 857 * Added support for ADI TMC5041 (:dtcompatible:`adi,tmc5041`) 858 * Added support for gpio-stepper-controller (:dtcompatible:`zephyr,gpio-steppers`) 859 * Added stepper api test-suite 860 * Added stepper shell test-suite 861 862* Timer 863 864 * Silabs: Added support for Sleeptimer (:dtcompatible:`silabs,gecko-stimer`) 865 866* USB 867 868 * Added support for USB HS on STM32U59x/STM32U5Ax SoC variants. 869 * Enhanced DWC2 UDC driver 870 * Added UDC drivers for Smartbond, NuMaker USBD and RP2040 device controllers 871 * Enabled SoF in NXP USB drivers (UDC) 872 * Enabled cache maintenance in the NXP EHCI USB driver 873 874* Video 875 876 * Introduced API to control frame rate 877 * Introduced API for partial frames transfer with the video buffer field ``line_offset`` 878 * Introduced API for :ref:`multi-heap<memory_management_shared_multi_heap>` video buffer allocation with 879 :kconfig:option:`CONFIG_VIDEO_BUFFER_USE_SHARED_MULTI_HEAP` 880 * Introduced bindings for common video link properties in ``video-interfaces.yaml``. Migration to the 881 new bindings is tracked in :github:`80514` 882 * Introduced missing :kconfig:option:`CONFIG_VIDEO_LOG_LEVEL` 883 * Added a sample for capturing video and displaying it with LVGL 884 (:zephyr:code-sample:`video-capture-to-lvgl`) 885 * Added an automatic test to check colorbar pattern correctness 886 * Added support for GalaxyCore GC2145 image sensor (:dtcompatible:`galaxycore,gc2145`) 887 * Added support for ESP32-S3 LCD-CAM interface (:dtcompatible:`espressif,esp32-lcd-cam`) 888 * Added support for NXP MCUX SMARTDMA interface (:dtcompatible:`nxp,smartdma`) 889 * Added support for more OmniVision OV2640 controls (:dtcompatible:`ovti,ov2640`) 890 * Added support for more OmniVision OV5640 controls (:dtcompatible:`ovti,ov5640`) 891 * STM32: Implemented :c:func:`video_get_ctrl` and :c:func:`video_set_ctrl` APIs. 892 * Removed an init order circular dependency for the camera pipeline on NXP RT10xx platforms 893 (:github:`80304`) 894 * Added an NXP's smartdma based video driver (:dtcompatible:`nxp,video-smartdma`) 895 * Added frame interval APIs to support variable frame rates (video_sw_generator.c) 896 * Added image controls to the OV5640 driver 897 898* W1 899 900 * Added 1-Wire master driver for Analog Devices MAX32 SoC series (:dtcompatible:`adi,max32-w1`) 901 902* Watchdog 903 904 * Added driver for Analog Devices MAX32 SoC series (:dtcompatible:`adi,max32-watchdog`). 905 * Converted NXP S32 Software Watchdog Timer driver to native Zephyr code 906 907* Wi-Fi 908 909 * Add Wi-Fi Easy Connect (DPP) support. 910 * Add support for Wi-Fi credentials library. 911 * Add enterprise support for station. 912 * Add Wi-Fi snippet support for networking samples. 913 * Add build testing for various Wi-Fi config combinations. 914 * Add regulatory domain support to Wi-Fi shell. 915 * Add WPS support to Wi-Fi shell. 916 * Add 802.11r connect command usage in Wi-Fi shell. 917 * Add current PHY rate to hostap status message. 918 * Allow user to reset Wi-Fi statistics in Wi-Fi shell. 919 * Display RTS threshold in Wi-Fi shell. 920 * Fix SSID array length size in scanning results. 921 * Fix the "wifi ap config" command using the STA interface instead of SAP interface. 922 * Fix memory leak in hostap when doing a disconnect. 923 * Fix setting of frequency band both in AP and STA mode in Wi-Fi shell. 924 * Fix correct channel scan range in Wi-Fi 6GHz. 925 * Fix scan results printing in Wi-Fi shell. 926 * Increase main and shell stack sizes for Wi-Fi shell sample. 927 * Increase the maximum count of connected STA to 8 in Wi-Fi shell. 928 * Relocate AP and STA Wi-Fi sample to samples/net/wifi directory. 929 * Run Wi-Fi tests together with network tests. 930 * Updated ESP32 Wi-Fi driver to reflect actual negotiated PHY mode. 931 * Add ESP32-C2 Wi-Fi support. 932 * Add ESP32 driver APSTA support. 933 * Add NXP RW612 driver support. 934 * Added nRF70 Wi-Fi driver. 935 936Networking 937********** 938 939* 802.15.4: 940 941 * Implemented support for beacons without association bit. 942 * Implemented support for beacons payload. 943 * Fixed a bug where LL address endianness was swapped twice when deciphering a frame. 944 * Fixed missing context lock release when checking destination address. 945 * Improved error logging in 6LoWPAN fragmentation. 946 * Improved error logging in 802.15.4 management commands. 947 948* ARP: 949 950 * Fixed ARP probe verification during IPv4 address conflict detection. 951 952* CoAP: 953 954 * Added new API :c:func:`coap_rst_init` to simplify creating RST replies. 955 * Implemented replying with CoAP RST response for unknown queries in CoAP client. 956 * Added support for runtime configuration of ACK random factor parameter. 957 * Added support for No Response CoAP option. 958 * Added a new sample demonstrating downloading a resource with GET request. 959 * Fixed handling of received CoAP RST reply in CoAP client. 960 * Fixed socket error reporting to the application in CoAP client. 961 * Fixed handling of response retransmissions in CoAP client. 962 * Fixed a bug where CoAP block numbers were limited to ``uint8_t``. 963 * Various fixes in the block transfer support in CoAP client. 964 * Improved handling of truncated datagrams in CoAP client. 965 * Improved thread safety of CoAP client. 966 * Fixed missing ``static`` keyword in some internal functions. 967 * Various other minor fixes in CoAP client. 968 969* DHCPv4: 970 971 * Added support for parsing multiple DNS servers received from DHCP server. 972 * Added support for DNS Server option in DHCPv4 server. 973 * Added support for Router option in DHCPv4 server. 974 * Added support for application callback which allows to assign custom addresses 975 in DHCPv4 server. 976 * Fixed DNS server list allocation in DHCPv4 client. 977 * Fixed a bug where system workqueue could be blocked indefinitely by DHCPv4 client. 978 979* DHCPv6: 980 981 * Fixed a bug where system workqueue could be blocked indefinitely by DHCPv6 client. 982 983* DNS/mDNS/LLMNR: 984 985 * Added support for collecting DNS statistics. 986 * Added support for more error codes in :c:func:`zsock_gai_strerror`. 987 * Fixed handling of DNS responses encoded with capital letters. 988 * Fixed DNS dispatcher operation on multiple network interfaces. 989 * Fixed error being reported for mDNS queries with query count equal to 0. 990 * Various other minor fixes in DNS/mDNS implementations. 991 992* Ethernet: 993 994* gPTP/PTP: 995 996 * Fixed handling of second overflow/underflow. 997 * Fixed PTP clock adjusting with offset. 998 999* HTTP: 1000 1001 * Added support for specifying response headers and response code by the application. 1002 * Added support for netusb in the HTTP server sample. 1003 * Added support for accessing HTTP request headers from the application callback. 1004 * Added support for handling IPv4 connections over IPv6 socket in HTTP server. 1005 * Added support for creating HTTP server instances without specifying local host. 1006 * Added overlays to support HTTP over IEEE 802.15.4 for HTTP client and server 1007 samples. 1008 * Added support for static filesystem resources in HTTP server. 1009 * Fixed assertion in HTTP server sample when resource upload was aborted. 1010 * Refactored dynamic resource callback format for easier handling of short 1011 requests/replies. 1012 * Fixed possible busy-looping in case of errors in the HTTP server sample. 1013 * Fixed possible incorrect HTTP headers matching in HTTP server. 1014 * Refactored HTTP server sample to better demonstrate server use cases. 1015 * Fixed processing of multiple HTTP/1 requests over the same connection. 1016 * Improved HTTP server test coverage. 1017 * Various other minor fixes in HTTP server. 1018 1019* IPv4: 1020 1021 * Improved IGMP test coverage. 1022 * Fixed IGMPv2 queries processing when IGMPv3 is enabled. 1023 * Fixed :kconfig:option:`CONFIG_NET_NATIVE_IPV4` dependency for native IPv4 options. 1024 * Fix net_pkt leak in :c:func:`send_ipv4_fragment`.` 1025 * Fixed tx_pkts slab leak in send_ipv4_fragment 1026 1027* IPv6: 1028 1029 * Added a public header for Multicast Listener Discovery APIs. 1030 * Added new :c:func:`net_ipv6_addr_prefix_mask` API function. 1031 * Made IPv6 Router Solicitation timeout configurable. 1032 * Fixed endless IPv6 packet looping with both routing and VLAN support enabled. 1033 * Fixed unneeded error logging in case of dropped NS packets. 1034 * Fixed accepting of incoming DAD NS messages. 1035 * Various fixes improving IPv6 routing. 1036 * Added onlink and forwarding check to IPv6-prepare 1037 1038* LwM2M: 1039 1040 * Location object: optional resources altitude, radius, and speed can now be 1041 used optionally as per the location object's specification. Users of these 1042 resources will now need to provide a read buffer. 1043 * Added TLS_ECDHE_ECDSA_WITH_AES_128_CCM_8 to DTLS cipher list. 1044 * Added LwM2M shell command for listing resources. 1045 * Added LwM2M shell command to list observations. 1046 * Added support for accepting SenML-CBOR floats decoded as integers. 1047 * Added support for X509 hostname verification if using certificates, when 1048 URI contains valid name. 1049 * Regenerated generated code files using zcbor 0.9.0 for lwm2m_senml_cbor. 1050 * Improved thread safety of the LwM2M engine. 1051 * Fixed block transfer issues for composite operations. 1052 * Fixed enabler version reporting during bootstrap discovery. 1053 * Removed unneeded Security object instance from the LwM2M client sample. 1054 * Fixed buffer size check for U16 resource. 1055 * Removed deprecated APIs and configs. 1056 * Optional Location object resources altitude, radius, and speed can now be 1057 used optionally as per the location object's specification. Users of these 1058 resources will now need to provide a read buffer. 1059 * Fixed the retry counter not being reset on successful Registration update. 1060 * Fixed REGISTRATION_TIMEOUT event not always being emitted on registration 1061 errors. 1062 * Fixed c++ support in LwM2M public header. 1063 * Fixed a bug where DISCONNECTED event was not always emitted when needed. 1064 1065* Misc: 1066 1067 * Added support for network packet allocation statistics. 1068 * Added a new library implementing Prometheus monitoring support. 1069 * Added USB CDC NCM support for Echo Server sample. 1070 * Added packet drop statistics for capture interfaces. 1071 * Added new :c:func:`net_hostname_set_postfix_str` API function to set hostname 1072 postfix in non-hexadecimal format. 1073 * Added API version information to public networking headers. 1074 * Implemented optional periodic SNTP time resynchronization. 1075 * Improved error reporting when starting/stopping virtual interfaces. 1076 * Fixed build error of packet capture library when variable sized buffers are used. 1077 * Fixed build error of packet capture library when either IPv4 or IPv6 is disabled. 1078 * Fixed CMake complaint about missing sources in net library in certain 1079 configurations. 1080 * Fixed compilation issues with networking and SystemView Tracing enabled. 1081 * Removed redundant DHCPv4 code from telnet sample. 1082 * Fixed build warnings in Echo Client sample with IPv6 disabled. 1083 * Extended network tracing support and added documentation page 1084 (:ref:`network_tracing`). 1085 * Moved network buffers implementation out of net subsystem into lib directory 1086 * Removed ``wpansub`` sample. 1087 1088* MQTT: 1089 1090 * Updated information in the mqtt_publisher sample about Mosquitto broker 1091 configuration. 1092 * Updated MQTT tests to be self-contained, no longer requiring external broker. 1093 * Optimized buffer handling in MQTT encoder/decoder. 1094 1095* Network contexts: 1096 1097 * Fixed IPv4 destination address setting when using :c:func:`sendmsg` with 1098 :kconfig:option:`CONFIG_NET_IPV4_MAPPING_TO_IPV6` option enabled. 1099 * Fixed possible unaligned memory access when in :c:func:`net_context_bind`. 1100 * Fixed missing NULL pointer check for V6ONLY option read. 1101 1102* Network Interface: 1103 1104 * Added new :c:func:`net_if_ipv4_get_gw` API function. 1105 * Fixed checksum offloading checks for VLAN interfaces. 1106 * Fixed native IP support being required to register IP addresses on an 1107 interface. 1108 * Fixed missing mutex locks in a few net_if functions. 1109 * Fixed rejoining of IPv6 multicast groups. 1110 * Fixed :c:func:`net_if_send_data` operation for offloaded interfaces. 1111 * Fixed needless IPv6 multicast groups joining if IPv6 is disabled. 1112 * Fixed compiler warnings when building with ``-Wtype-limits``. 1113 1114* OpenThread: 1115 1116 * Added support for :kconfig:option:`CONFIG_IEEE802154_SELECTIVE_TXCHANNEL` 1117 option in OpenThread radio platform. 1118 * Added NAT64 send and receive callbacks. 1119 * Added new Kconfig options: 1120 1121 * :kconfig:option:`CONFIG_OPENTHREAD_NAT64_CIDR` 1122 * :kconfig:option:`CONFIG_OPENTHREAD_STORE_FRAME_COUNTER_AHEAD` 1123 * :kconfig:option:`CONFIG_OPENTHREAD_DEFAULT_RX_SENSITIVITY` 1124 * :kconfig:option:`CONFIG_OPENTHREAD_CSL_REQUEST_TIME_AHEAD` 1125 1126 * Fixed deprecated/preferred IPv6 address state transitions. 1127 * Fixed handling of deprecated IPv6 addresses. 1128 * Other various minor fixes in Zephyr's OpenThread port. 1129 1130* Shell: 1131 1132 * Added support for enabling/disabling individual network shell commands with 1133 Kconfig. 1134 * Added new ``net dhcpv4/6 client`` commands for DHCPv4/6 client management. 1135 * Added new ``net virtual`` commands for virtual interface management. 1136 * ``net ipv4/6`` commands are now available even if native IP stack is disabled. 1137 * Added new ``net cm`` commands exposing Connection Manager functionality. 1138 * Fixed possible assertion if telnet shell backend connection is terminated. 1139 * Event monitor thread stack size is now configurable with Kconfig. 1140 * Relocated ``bridge`` command under ``net`` command, i. e. ``net bridge``. 1141 * Multiple minor improvements in various command outputs. 1142 1143* Sockets: 1144 1145 * Added dedicated ``net_socket_service_handler_t`` callback function type for 1146 socket services. 1147 * Added TLS 1.3 support for TLS sockets. 1148 * Fixed socket leak when closing NSOS socket. 1149 * Moved socket service library out of experimental. 1150 * Deprecated ``CONFIG_NET_SOCKETS_POLL_MAX``. 1151 * Moved ``zsock_poll()`` and ``zsock_select`` implementations into ``zvfs`` 1152 library. 1153 * Removed ``work_q`` parameter from socket service macros as it was no longer 1154 used. 1155 * Separated native INET sockets implementation from socket syscalls so that 1156 it doesn't have to be built when offloaded sockets are used. 1157 * Fixed possible infinite block inside TLS socket :c:func:`zsock_connect` when 1158 peer goes down silently. 1159 * Fixed ``msg_controllen`` not being set correctly in :c:func:`zsock_recvmsg`. 1160 * Fixed possible busy-looping when polling TLS socket for POLLOUT event. 1161 1162* TCP: 1163 1164 * Fixed propagating connection errors to the socket layer. 1165 * Improved ACK reply logic when peer does not send PSH flag with data. 1166 1167* Websocket: 1168 1169 * Added support for Websocket console in the Echo Server sample. 1170 * Fixed undefined reference to ``MSG_DONTWAIT`` while building websockets 1171 without POSIX. 1172 1173* Wi-Fi: 1174 1175 * Add a 80211R fast BSS transition argument usage to the wifi shell's connect command. 1176 * Fixed the shell's ap config command using the sta interface area 1177 * Added AP configuration cmd support to the NXP Wifi drivers 1178 * Fixed the dormant state in the NXP WiFi driver to be set to off once a connection to an AP is achieved 1179 1180* zperf: 1181 1182 * Added support for USB CDC NCM in the zperf sample. 1183 * Fixed DHCPv4 client not being started in the zperf sample in certain 1184 configurations. 1185 1186USB 1187*** 1188 1189* New USB device stack: 1190 1191 * Added USB CDC Network Control Model implementation 1192 * Enhanced USB Audio class 2 implementation 1193 * Made USB device stack high-bandwidth aware 1194 * Enhanced CDC ACM and HID class implementations 1195 1196Devicetree 1197********** 1198 1199* Added support for string-array and array type properties to be enums. 1200 Many new macros added for this, for example :c:macro:`DT_ENUM_IDX_BY_IDX`. 1201* Added :c:macro:`DT_ANY_COMPAT_HAS_PROP_STATUS_OKAY`. 1202* Added :c:macro:`DT_NODE_HAS_STATUS_OKAY`. 1203* Added :c:macro:`DT_INST_NUM_IRQS`. 1204* Added macros :c:macro:`DT_NODE_FULL_NAME_UNQUOTED`, :c:macro:`DT_NODE_FULL_NAME_TOKEN`, 1205 and :c:macro:`DT_NODE_FULL_NAME_UPPER_TOKEN`. 1206* ``DT_*_REG_ADDR`` now returns an explicit unsigned value with C's ``U`` suffix. 1207* Fixed escaping of double quotes, backslashes, and new line characters from DTS 1208 so that they can be used in string properties. 1209* Renamed ``power-domain`` base property to ``power-domains``, 1210 and introduced ``power-domain-names`` property. ``#power-domain-cells`` is now required as well. 1211* Moved the NXP Remote Domain Controller property to its own schema file 1212 1213Kconfig 1214******* 1215 1216Libraries / Subsystems 1217********************** 1218 1219* Debug 1220 1221 * Added west runner for probe-rs, a Rust-based embedded toolkit. 1222 1223* Demand Paging 1224 1225 * Added LRU (Least Recently Used) eviction algorithm. 1226 1227 * Added on-demand memory mapping support (:kconfig:option:`CONFIG_DEMAND_MAPPING`). 1228 1229 * Made demand paging SMP compatible. 1230 1231* Management 1232 1233 * MCUmgr 1234 1235 * Added support for :ref:`mcumgr_smp_group_10`, which allows for listing information on 1236 supported groups. 1237 * Fixed formatting of milliseconds in :c:enum:`OS_MGMT_ID_DATETIME_STR` by adding 1238 leading zeros. 1239 * Added support for custom os mgmt bootloader info responses using notification hooks, this 1240 can be enabled with :kconfig:option:`CONFIG_MCUMGR_GRP_OS_BOOTLOADER_INFO_HOOK`, the data 1241 structure is :c:struct:`os_mgmt_bootloader_info_data`. 1242 * Added support for img mgmt slot info command, which allows for listing information on 1243 images and slots on the device. 1244 * Added support for LoRaWAN MCUmgr transport, which can be enabled with 1245 :kconfig:option:`CONFIG_MCUMGR_TRANSPORT_LORAWAN`. 1246 1247 * hawkBit 1248 1249 * :c:func:`hawkbit_autohandler` now takes one argument. If the argument is set to true, the 1250 autohandler will reshedule itself after running. If the argument is set to false, the 1251 autohandler will not reshedule itself. Both variants are scheduled independent of each other. 1252 The autohandler always runs in the system workqueue. 1253 1254 * Use the :c:func:`hawkbit_autohandler_wait` function to wait for the autohandler to finish. 1255 1256 * Running hawkBit from the shell is now executed in the system workqueue. 1257 1258 * Use the :c:func:`hawkbit_autohandler_cancel` function to cancel the autohandler. 1259 1260 * Use the :c:func:`hawkbit_autohandler_set_delay` function to delay the next run of the 1261 autohandler. 1262 1263 * The hawkBit header file was separated into multiple header files. The main header file is now 1264 ``<zephyr/mgmt/hawkbit/hawkbit.h>``, the autohandler header file is now 1265 ``<zephyr/mgmt/hawkbit/autohandler.h>`` and the configuration header file is now 1266 ``<zephyr/mgmt/hawkbit/config.h>``. 1267 1268* Power management 1269 1270 * Added initial ESP32-C6 power management interface to allow light and deep-sleep features. 1271 1272* Crypto 1273 1274 * Mbed TLS was updated to version 3.6.2 (from 3.6.0). The release notes can be found at: 1275 1276 * https://github.com/Mbed-TLS/mbedtls/releases/tag/mbedtls-3.6.1 1277 * https://github.com/Mbed-TLS/mbedtls/releases/tag/mbedtls-3.6.2 1278 1279 * The Kconfig symbol :kconfig:option:`CONFIG_MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG_ALLOW_NON_CSPRNG` 1280 was added to allow ``psa_get_random()`` to make use of non-cryptographically 1281 secure random sources when :kconfig:option:`CONFIG_MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG` 1282 is also enabled. This is only meant to be used for test purposes, not in production. 1283 (:github:`76408`) 1284 * The Kconfig symbol :kconfig:option:`CONFIG_MBEDTLS_TLS_VERSION_1_3` was added to 1285 enable TLS 1.3 support from Mbed TLS. When this is enabled the following 1286 new Kconfig symbols can also be enabled: 1287 1288 * :kconfig:option:`CONFIG_MBEDTLS_TLS_SESSION_TICKETS` to enable session tickets 1289 (RFC 5077); 1290 * :kconfig:option:`CONFIG_MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED` 1291 for TLS 1.3 PSK key exchange mode; 1292 * :kconfig:option:`CONFIG_MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED` 1293 for TLS 1.3 ephemeral key exchange mode; 1294 * :kconfig:option:`CONFIG_MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED` 1295 for TLS 1.3 PSK ephemeral key exchange mode. 1296 1297* SD 1298 1299 * No significant changes in this release 1300 1301* Settings 1302 1303 * Settings has been extended to allow prioritizing the commit handlers using 1304 ``SETTINGS_STATIC_HANDLER_DEFINE_WITH_CPRIO(...)`` for static_handlers and 1305 ``settings_register_with_cprio(...)`` for dynamic_handlers. 1306 1307* Shell: 1308 1309 * Reorganized the ``kernel threads`` and ``kernel stacks`` shell command under the 1310 L1 ``kernel thread`` shell command as ``kernel thread list`` & ``kernel thread stacks`` 1311 * Added multiple shell command to configure the CPU mask affinity / pinning a thread in 1312 runtime, do ``kernel thread -h`` for more info. 1313 * ``kernel reboot`` shell command without any additional arguments will now do a cold reboot 1314 instead of requiring you to type ``kernel reboot cold``. 1315 1316* Storage 1317 1318 * LittleFS: The module has been updated with changes committed upstream 1319 from version 2.8.1, the last module update, up to and including 1320 the released version 2.9.3. 1321 * Fixed static analysis error caused by mismatched variable assignment in NVS 1322 1323 * LittleFS: Fixed an issue where the DTS option for configuring block cycles for LittleFS instances 1324 was ignored (:github:`79072`). 1325 1326 * LittleFS: Fixed issue with lookahead buffer size mismatch to actual allocated buffer size 1327 (:github:`77917`). 1328 1329 * FAT FS: Added :kconfig:option:`CONFIG_FILE_SYSTEM_LIB_LINK` to allow linking file system 1330 support libraries without enabling the File System subsystem. This option can be used 1331 when a user wants to directly use file system libraries, bypassing the File System 1332 subsystem. 1333 1334 * FAT FS: Added :kconfig:option:`CONFIG_FS_FATFS_LBA64` to enable support for the 64-bit LBA 1335 and GPT in FAT file system driver. 1336 1337 * FAT FS: Added :kconfig:option:`CONFIG_FS_FATFS_MULTI_PARTITION` that enables support for 1338 devices partitioned with GPT or MBR. 1339 1340 * FAT FS: Added :kconfig:option:`CONFIG_FS_FATFS_HAS_RTC` that enables RTC usage for time-stamping 1341 files on FAT file systems. 1342 1343 * FAT FS: Added :kconfig:option:`CONFIG_FS_FATFS_EXTRA_NATIVE_API` that enables additional FAT 1344 file system driver functions, which are not exposed via Zephyr File System subsystem, 1345 for users that intend to directly call them in their code. 1346 1347 * Stream Flash: Fixed an issue where :c:func:`stream_flash_erase_page` did not properly check 1348 the requested erase range and possibly allowed erasing any page on a device (:github:`79800`). 1349 1350 * Shell: Fixed an issue were a failed file system mount attempt using the shell would make it 1351 impossible to ever succeed in mounting that file system again until the device was reset (:github:`80024`). 1352 1353 * :ref:`ZMS<zms_api>`: Introduction of a new storage system that is designed to work with all types of 1354 non-volatile storage technologies. It supports classical on-chip NOR flash as well as 1355 new technologies like RRAM and MRAM that do not require a separate erase operation at all. 1356 1357* Task Watchdog 1358 1359* Tracing 1360 1361 * Added support for a "user event" trace, with the purpose to allow driver or 1362 application developers to quickly add tracing for events for debug purposes 1363 1364* POSIX API 1365 1366 * Added support for the following Option Groups: 1367 1368 * :ref:`POSIX_DEVICE_IO <posix_option_group_device_io>` 1369 * :ref:`POSIX_SIGNALS <posix_option_group_signals>` 1370 1371 * Added support for the following Options: 1372 1373 * :ref:`_POSIX_SYNCHRONIZED_IO <posix_option_synchronized_io>` 1374 * :ref:`_POSIX_THREAD_PRIO_PROTECT <posix_option_thread_prio_protect>` 1375 1376 * :ref:`POSIX_FILE_SYSTEM <posix_option_group_file_system>` improvements: 1377 1378 * Support for :c:macro:`O_TRUNC` flag in :c:func:`open()`. 1379 * Support for :c:func:`rmdir` and :c:func:`remove`. 1380 1381 * :ref:`_POSIX_THREAD_SAFE_FUNCTIONS <posix_option_thread_safe_functions>` improvements: 1382 1383 * Support for :c:func:`asctime_r`, :c:func:`ctime_r`, and :c:func:`localtime_r`. 1384 1385 * :ref:`POSIX_THREADS_BASE <posix_option_group_threads_base>` improvements: 1386 1387 * Use the :ref:`user mode semaphore API <semaphores_v2>` instead of the 1388 :ref:`spinlock API <smp_arch>` for pool synchronization. 1389 1390* LoRa/LoRaWAN 1391 1392* ZBus 1393 1394* JWT (JSON Web Token) 1395 1396 * The following new symbols were added to allow specifying both the signature 1397 algorithm and crypto library: 1398 1399 * :kconfig:option:`CONFIG_JWT_SIGN_RSA_PSA` (default) RSA signature using the PSA Crypto API; 1400 * :kconfig:option:`CONFIG_JWT_SIGN_RSA_LEGACY` RSA signature using Mbed TLS; 1401 * :kconfig:option:`CONFIG_JWT_SIGN_ECDSA_PSA` ECDSA signature using the PSA Crypto API. 1402 1403 (:github:`79653`) 1404 1405* Firmware 1406 1407 * Introduced basic support for ARM's System Control and Management Interface, which includes: 1408 1409 * Subset of clock management protocol commands 1410 * Subset of pin control protocol commands 1411 * Shared memory and mailbox-based transport 1412 1413HALs 1414**** 1415 1416* Nordic 1417 1418 * Updated nrfx to version 3.7.0. 1419 * Added OS agnostic parts of the nRF70 Wi-Fi driver. 1420 1421* STM32 1422 1423 * Updated STM32C0 to cube version V1.2.0. 1424 * Updated STM32F1 to cube version V1.8.6. 1425 * Updated STM32F2 to cube version V1.9.5. 1426 * Updated STM32F4 to cube version V1.28.1. 1427 * Updated STM32G4 to cube version V1.6.0. 1428 * Updated STM32H5 to cube version V1.3.0. 1429 * Updated STM32H7 to cube version V1.11.2. 1430 * Updated STM32H7RS to cube version V1.1.0. 1431 * Added STM32U0 Cube package (1.1.0) 1432 * Updated STM32U5 to cube version V1.6.0. 1433 * Updated STM32WB to cube version V1.20.0. 1434 * Added STM32WB0 Cube package (1.0.0) 1435 * Updated STM32WBA to cube version V1.4.1. 1436 1437* ADI 1438 1439* Espressif 1440 1441 * Synced HAL to version v5.1.4 to update SoCs low level files, RF libraries and 1442 overall driver support. 1443* NXP 1444 1445 * Updated the MCUX HAL to the SDK version 2.16.000 1446 * Updated the NXP S32ZE HAL drivers to version 2.0.0 1447 1448* Silabs 1449 1450 * Updated Series 2 to Simplicity SDK 2024.6, while Series 0/1 continue to use Gecko SDK 4.4. 1451 1452MCUboot 1453******* 1454 1455 * Removed broken target config header feature. 1456 * Removed ``image_index`` from ``boot_encrypt``. 1457 * Renamed boot_enc_decrypt to boot_decrypt_key. 1458 * Updated to use ``EXTRA_CONF_FILE`` instead of the deprecated ``OVERLAY_CONFIG`` argument. 1459 * Updated ``boot_encrypt()`` to instead be ``boot_enc_encrypt()`` and ``boot_enc_decrypt()``. 1460 * Updated ``boot_enc_valid`` to take slot instead of image index. 1461 * Updated ``boot_enc_load()`` to take slot number instead of image. 1462 * Updated logging to debug level in boot_serial. 1463 * Updated Kconfig to allow disabling NRFX_WDT on nRF devices. 1464 * Updated CMake ERROR statements into FATAL_ERROR. 1465 * Added application version that is being booted output prior to booting it. 1466 * Added sysbuild support to the hello-world sample. 1467 * Added SIG_PURE TLV to bootutil. 1468 * Added write block size checking to bootutil. 1469 * Added check for unexpected flash sector size. 1470 * Added SHA512 support to MCUboot code and support for calculating SHA512 hash in imgtool. 1471 * Added fallback to USB DFU option. 1472 * Added better mode selection checks to bootutil. 1473 * Added bootutil protected TLV size to image size check. 1474 * Added functionality to remove images with conflicting flags or where features are required 1475 that are not supported. 1476 * Added compressed image flags and TLVs to MCUboot, Kconfig options and support for generating 1477 compressed LZMA2 images with ARM thumb filter to imgtool. 1478 * Added image header verification before checking image. 1479 * Added state to ``boot_is_header_valid()`` function. 1480 * Added ``CONFIG_MCUBOOT_ENC_BUILTIN_KEY`` Kconfig option. 1481 * Added non-bootable flag to imgtool. 1482 * Added zephyr prefix to generated header path. 1483 * Added optional img mgmt slot info feature. 1484 * Added bootutil support for maximum image size details for additional images. 1485 * Added support for automatically calculating max sectors. 1486 * Added missing ``boot_enc_init()`` function. 1487 * Added support for keeping image encrypted in scratch area in bootutil. 1488 * Fixed serial recovery for NXP IMX.RT, LPC55x and MCXNx platforms 1489 * Fixed issue with public RSA signing in imgtool. 1490 * Fixed issue with ``boot_serial_enter()`` being defined but not used warning. 1491 * Fixed issue with ``main()`` in sample returning wrong type warning. 1492 * Fixed issue with using pointers in bootutil. 1493 * Fixed wrong usage of slot numbers in boot_serial. 1494 * Fixed slot info for directXIP/RAM load in bootutil. 1495 * Fixed bootutil issue with not zeroing AES and SHA-256 contexts with mbedTLS. 1496 * Fixed boot_serial ``format`` and ``incompatible-pointer-types`` warnings. 1497 * Fixed bootutil wrong definition of ``find_swap_count``. 1498 * Fixed bootutil swap move max app size calculation. 1499 * Fixed imgtool issue where getpub failed for ed25519 key. 1500 * Fixed issue with sysbuild if something else is named mcuboot. 1501 * Fixed RAM load chain load address. 1502 * Fixed issue with properly retrieving image headers after interrupted swap-scratch in bootutil. 1503 * The MCUboot version in this release is version ``2.1.0+0-dev``. 1504 * Add the following nxp boards as test targets area: ``frdm_ke17z``, ``frdm_ke17z512``, 1505 ``rddrone_fmuk66``, ``twr_ke18f``, ``frdm_mcxn947/mcxn947/cpu0`` 1506 1507OSDP 1508**** 1509 1510Trusted Firmware-M (TF-M) 1511************************* 1512 1513* TF-M was updated to version 2.1.1 (from 2.1.0). 1514 The release notes can be found at: https://trustedfirmware-m.readthedocs.io/en/tf-mv2.1.1/releases/2.1.1.html 1515 1516Nanopb 1517****** 1518 1519* Updated the nanopb module to version 0.4.9. 1520 Full release notes at https://github.com/nanopb/nanopb/blob/0.4.9/CHANGELOG.txt 1521 1522LVGL 1523**** 1524 1525* Added definition of ``LV_ATTRIBUTE_MEM_ALIGN`` so library internal data structures can be aligned 1526 to a specific boundary. 1527* Provided alignment definition to accommodate the alignment requirement of some GPU's 1528 1529zcbor 1530***** 1531 1532* Updated the zcbor library to version 0.9.0. 1533 Full release notes at https://github.com/NordicSemiconductor/zcbor/blob/0.9.0/RELEASE_NOTES.md 1534 Migration guide at https://github.com/NordicSemiconductor/zcbor/blob/0.9.0/MIGRATION_GUIDE.md 1535 Highlights: 1536 1537 * Many code generation bugfixes 1538 1539 * You can now decide at run-time whether the decoder should enforce canonical encoding. 1540 1541 * Allow --file-header to accept a path to a file with header contents 1542 1543Tests and Samples 1544***************** 1545 1546* Together with the deprecation of :ref:`native_posix<native_posix>`, many tests which were 1547 explicitly run in native_posix now run in :ref:`native_sim<native_sim>` instead. 1548 native_posix as a platform remains tested though. 1549* Extended the tests of counter_basic_api with a testcase for counters without alarms 1550* Added support for testing SDMMC devices to the fatfs API test 1551* Extended net/vlan to add IPv6 prefix config to each vlan-iface 1552* Enhanced the camera fixture test by adding a color bar to enable automation 1553* Added a number crunching (maths such as FFT, echo cancellation) sample using an optimized 1554 library for the NXP ADSP board 1555* Tailored the SPI_LOOPBACK test to the limitations of NXP Kinetis MCU's 1556* Enabled the video sample to run video capture (samples/drivers/video) 1557 1558* Added :zephyr:code-sample:`smf_calculator` sample demonstrating the usage of the State Machine framework 1559 in combination with LVGL to create a simple calculator application. 1560* Consolidated display sample where possible to use a single testcase for all shields 1561 1562Issue Related Items 1563******************* 1564 1565Known Issues 1566============ 1567 1568- :github:`71042` stream_flash: stream_flash_init() size parameter allows to ignore partition layout 1569- :github:`67407` stream_flash: stream_flash_erase_page allows to accidentally erase stream 1570- :github:`80875` stepper_api: incorrect c-prototype stepper.h and absence of NULL check stepper_shell.c 1571