1571 lines
68 KiB
ReStructuredText
1571 lines
68 KiB
ReStructuredText
:orphan:
|
|
|
|
.. _zephyr_4.0:
|
|
|
|
Zephyr 4.0.0
|
|
############
|
|
|
|
We are pleased to announce the release of Zephyr version 4.0.0.
|
|
|
|
Major enhancements with this release include:
|
|
|
|
* **Secure Storage Subsystem**:
|
|
A newly introduced :ref:`secure storage<secure_storage>` subsystem allows the use of the
|
|
PSA Secure Storage API and of persistent keys in the PSA Crypto API on *all* board targets. It
|
|
is now the standard way to provide device-specific protection to data at rest. (:github:`76222`)
|
|
|
|
* **ZMS (Zephyr Memory Storage) Subsystem**:
|
|
:ref:`ZMS <zms_api>` is a new key-value storage subsystem compatible with all non-volatile storage
|
|
types, including traditional NOR flash and advanced technologies like RRAM and MRAM that support
|
|
write without erasure.
|
|
|
|
* **Analog Comparators**:
|
|
A new :ref:`comparator<comparator_api>` device driver subsystem for analog comparators has been
|
|
added, complete with shell support. It supports initial configuration through Devicetree and
|
|
runtime configuration through vendor specific APIs. Initially the :dtcompatible:`nordic,nrf-comp`,
|
|
:dtcompatible:`nordic,nrf-lpcomp` and :dtcompatible:`nxp,kinetis-acmp` are supported.
|
|
|
|
* **Stepper Motors**:
|
|
It is now possible to interact with stepper motors using a standard API thanks to the new
|
|
:ref:`stepper<stepper_api>` device driver subsystem, which also comes with shell support.
|
|
Initially implemented drivers include a simple :dtcompatible:`zephyr,gpio-steppers` and a complex
|
|
sensor-less stall-detection capable with integrated ramp-controller :dtcompatible:`adi,tmc5041`.
|
|
|
|
* **Haptics**:
|
|
A new :ref:`haptics_api` device driver subsystem allows unified access to haptic controllers,
|
|
enabling users to add haptic feedback to their applications.
|
|
|
|
* **Multimedia Capabilities**
|
|
Zephyr's audio and video capabilities have been expanded with support for new image sensors, video
|
|
interfaces, audio interfaces, and codecs being supported.
|
|
|
|
* **Prometheus Library**:
|
|
A `Prometheus`_ metrics library has been added to the networking stack. It provides a way to
|
|
expose metrics to Prometheus clients over HTTP, facilitating the consolidated remote monitoring of
|
|
Zephyr devices alongside other systems typically monitored using Prometheus.
|
|
|
|
* **Documentation Improvements**:
|
|
Several enhancements were made to the online documentation to improve content discovery and
|
|
navigation. These include a new :ref:`interactive board catalog <boards>` and an interactive
|
|
directory for :zephyr:code-sample-category:`code samples <samples>`.
|
|
|
|
* **Expanded Board Support**:
|
|
Over 60 :ref:`new boards <boards_added_in_zephyr_4_0>` and
|
|
:ref:`shields <shields_added_in_zephyr_4_0>` are supported in Zephyr 4.0.
|
|
|
|
.. _`Prometheus`: https://prometheus.io/
|
|
|
|
An overview of the changes required or recommended when migrating your application from Zephyr
|
|
v3.7.0 to Zephyr v4.0.0 can be found in the separate :ref:`migration guide<migration_4.0>`.
|
|
|
|
The following sections provide detailed lists of changes by component.
|
|
|
|
Security Vulnerability Related
|
|
******************************
|
|
The following CVEs are addressed by this release:
|
|
|
|
More detailed information can be found in:
|
|
https://docs.zephyrproject.org/latest/security/vulnerabilities.html
|
|
|
|
* :cve:`2024-8798`: Under embargo until 2024-11-22
|
|
* :cve:`2024-10395`: Under embargo until 2025-01-23
|
|
* :cve:`2024-11263` `Zephyr project bug tracker GHSA-jjf3-7x72-pqm9
|
|
<https://github.com/zephyrproject-rtos/zephyr/security/advisories/GHSA-jjf3-7x72-pqm9>`_
|
|
|
|
API Changes
|
|
***********
|
|
|
|
Removed APIs in this release
|
|
============================
|
|
|
|
* Macro ``K_THREAD_STACK_MEMBER``, deprecated since v3.5.0, has been removed.
|
|
Use :c:macro:`K_KERNEL_STACK_MEMBER` instead.
|
|
|
|
* ``CBPRINTF_PACKAGE_COPY_*`` macros, deprecated since Zephyr 3.5.0, have been removed.
|
|
|
|
* ``_ENUM_TOKEN`` and ``_ENUM_UPPER_TOKEN`` macros, deprecated since Zephyr 2.7.0,
|
|
are no longer generated.
|
|
|
|
* Removed deprecated arch-level CMSIS header files
|
|
``include/zephyr/arch/arm/cortex_a_r/cmsis.h`` and
|
|
``include/zephyr/arch/arm/cortex_m/cmsis.h``. ``cmsis_core.h`` needs to be
|
|
included now.
|
|
|
|
* Removed deprecated ``ceiling_fraction`` macro. :c:macro:`DIV_ROUND_UP` needs
|
|
to be used now.
|
|
|
|
* Removed deprecated header file
|
|
``include/zephyr/random/rand32.h``. ``random.h`` needs to be included now.
|
|
|
|
* Deprecated ``EARLY``, ``APPLICATION`` and ``SMP`` init levels can no longer be
|
|
used for devices.
|
|
|
|
* Removed deprecated net_pkt functions.
|
|
|
|
Deprecated in this release
|
|
==========================
|
|
|
|
* Deprecated the :c:func:`net_buf_put` and :c:func:`net_buf_get` API functions in favor of
|
|
:c:func:`k_fifo_put` and :c:func:`k_fifo_get`.
|
|
|
|
* The :ref:`kscan_api` subsystem has been marked as deprecated.
|
|
|
|
* Deprecated the TinyCrypt shim driver ``CONFIG_CRYPTO_TINYCRYPT_SHIM``.
|
|
|
|
* :ref:`native_posix<native_posix>` has been deprecated in favour of
|
|
:ref:`native_sim<native_sim>`.
|
|
|
|
* ``include/zephyr/net/buf.h`` is deprecated in favor of
|
|
``include/zephyr/net_buf.h>``. The old header will be removed in future releases
|
|
and its usage should be avoided.
|
|
|
|
* Deprecated the :c:func:`net_buf_put` and :c:func:`net_buf_get` API functions.
|
|
|
|
Architectures
|
|
*************
|
|
|
|
* ARC
|
|
|
|
* ARM
|
|
|
|
* Added support of device memory attributes on Cortex-M (arm_mpu_v8)
|
|
|
|
* ARM64
|
|
|
|
* Added initial support for :c:func:`arch_stack_walk` that supports unwinding via esf only
|
|
* Added sys_arch_reboot() support to ARM64
|
|
|
|
* Added support for demand paging.
|
|
|
|
* Added support for Linkable Loadable Extensions (LLEXT).
|
|
|
|
* RISC-V
|
|
|
|
* The stack traces upon fatal exception now prints the address of stack pointer (sp) or frame
|
|
pointer (fp) depending on the build configuration.
|
|
|
|
* When :kconfig:option:`CONFIG_EXTRA_EXCEPTION_INFO` is enabled, the exception stack frame (arch_esf)
|
|
has an additional field ``csf`` that points to the callee-saved-registers upon an fatal error,
|
|
which can be accessed in :c:func:`k_sys_fatal_error_handler` by ``esf->csf``.
|
|
|
|
* For SoCs that select ``RISCV_SOC_HAS_ISR_STACKING``, the ``SOC_ISR_STACKING_ESF_DECLARE`` has to
|
|
include the ``csf`` member, otherwise the build would fail.
|
|
|
|
* Xtensa
|
|
|
|
* x86
|
|
|
|
* Added initial support for :c:func:`arch_stack_walk` that supports unwinding via esf only
|
|
|
|
Kernel
|
|
******
|
|
|
|
* Devicetree devices are now exported to :ref:`llext`.
|
|
|
|
Bluetooth
|
|
*********
|
|
|
|
* Audio
|
|
|
|
* :c:func:`bt_tbs_client_register_cb` now supports multiple listeners and may now return an error.
|
|
|
|
* Added APIs for getting and setting the assisted listening stream values in codec capabilities
|
|
and codec configuration:
|
|
|
|
* :c:func:`bt_audio_codec_cfg_meta_get_assisted_listening_stream`
|
|
* :c:func:`bt_audio_codec_cfg_meta_set_assisted_listening_stream`
|
|
* :c:func:`bt_audio_codec_cap_meta_get_assisted_listening_stream`
|
|
* :c:func:`bt_audio_codec_cap_meta_set_assisted_listening_stream`
|
|
|
|
* Added APIs for getting and setting the broadcast name in codec capabilities
|
|
and codec configuration:
|
|
|
|
* :c:func:`bt_audio_codec_cfg_meta_get_broadcast_name`
|
|
* :c:func:`bt_audio_codec_cfg_meta_set_broadcast_name`
|
|
* :c:func:`bt_audio_codec_cap_meta_get_broadcast_name`
|
|
* :c:func:`bt_audio_codec_cap_meta_set_broadcast_name`
|
|
|
|
* Host
|
|
|
|
* Added API :c:func:`bt_gatt_get_uatt_mtu` to get current Unenhanced ATT MTU of a given
|
|
connection (experimental).
|
|
* Added :kconfig:option:`CONFIG_BT_CONN_TX_NOTIFY_WQ`.
|
|
The option allows using a separate workqueue for connection TX notify processing
|
|
(:c:func:`bt_conn_tx_notify`) to make Bluetooth stack more independent from the system workqueue.
|
|
|
|
* The host now disconnects from the peer upon ATT timeout.
|
|
|
|
* Added a warning to :c:func:`bt_conn_le_create` and :c:func:`bt_conn_le_create_synced` if
|
|
the connection pointer passed as an argument is not NULL.
|
|
|
|
* Added Kconfig option :kconfig:option:`CONFIG_BT_CONN_CHECK_NULL_BEFORE_CREATE` to enforce
|
|
:c:func:`bt_conn_le_create` and :c:func:`bt_conn_le_create_synced` return an error if the
|
|
connection pointer passed as an argument is not NULL.
|
|
|
|
* Fixed an ltk derive issue in L2CAP
|
|
* Added listener callback for discovery (BR)
|
|
* Corrected BR bonding type (SSP)
|
|
* Added support for non-bondable mode (SSP)
|
|
* Changed SSP so that no MITM if required level is less than L3
|
|
* Added checking the receiving buffer length before pulling data (AVDTP)
|
|
* Added support of security level 4 to SSP
|
|
* Fixed LE LTK cannot be derived
|
|
* Added support for Multi-Command Packet (l2cap)
|
|
* Improved the L2CAP code to Set flags in CFG RSP
|
|
* Improved the L2CAP code to handle all configuration options
|
|
* Improved the SSP code to clear pairing flag if ssp pairing completed area
|
|
* Improved the SMP code to check if remote supports CID 0x0007
|
|
* Added support for SMP CT2 flag
|
|
* Improved the SSP code so the proper callback is called when pairing fails
|
|
|
|
* Controller
|
|
|
|
* Added Periodic Advertising Sync Transfer (PAST) support with support for both sending and receiving roles.
|
|
The option can be enabled by :kconfig:option:`CONFIG_BT_CTLR_SYNC_TRANSFER_SENDER` and
|
|
:kconfig:option:`CONFIG_BT_CTLR_SYNC_TRANSFER_RECEIVER`.
|
|
|
|
* HCI Drivers
|
|
|
|
* Mesh
|
|
|
|
* Introduced a mesh-specific workqueue to increase reliability of the mesh messages
|
|
transmission. To get the old behavior enable :kconfig:option:`CONFIG_BT_MESH_WORKQ_SYS`.
|
|
|
|
Boards & SoC Support
|
|
********************
|
|
|
|
* Added support for these SoC series:
|
|
|
|
* Added ESP32-C2 and ESP8684 SoC support.
|
|
* Added STM32U0 series with GPIO, Serial, I2C, DAC, ADC, flash, PWM and counter driver support.
|
|
* Added STM32WB0 series with GPIO, Serial, I2C, SPI, ADC, DMA and flash driver support.
|
|
* Added STM32U545xx SoC variant.
|
|
* Added NXP i.MX93's Cortex-M33 core
|
|
* Added NXP MCXW71, MCXC242, MCXA156, MCXN236, MCXC444, RT1180
|
|
|
|
* Made these changes in other SoC series:
|
|
|
|
* NXP S32Z270: Added support for the new silicon cut version 2.0. Note that the previous
|
|
versions (1.0 and 1.1) are no longer supported.
|
|
* NXP s32k3: fixed RAM retention issue
|
|
* NXP s32k1: obtain system clock frequency from Devicetree
|
|
versions (1.0 and 1.1) are no longer supported.
|
|
* Added ESP32 WROVER-E-N16R4 variant.
|
|
* STM32H5: Added support for OpenOCD through STMicroelectronics OpenOCD fork.
|
|
* MAX32: Enabled Segger RTT and SystemView support.
|
|
* Silabs Series 2: Use oscillator, clock and DCDC configuration from device tree during init.
|
|
* Silabs Series 2: Added initialization for SMU (Security Management Unit).
|
|
* Silabs Series 2: Use sleeptimer as the default OS timer instead of systick.
|
|
* NXP i.MX8MP: Enable the IRQ_STEER interrupt controller.
|
|
* NXP RWxxx:
|
|
|
|
* added additional support to Wakeup from low power modes
|
|
* RW61x: increased main stack size to avoid stack overflows when running BLE
|
|
* RW612: enabled SCTIMER
|
|
|
|
* NXP IMXRT: Fixed flexspi boot issue caused by an erroneous relocation of the Flash Configuration Block
|
|
of Kconfig defaults being sourced
|
|
* NXP RT11xx: enabled FlexIO
|
|
* NXP IMXRT116x: Fixed bus clocking to align with the settings of the MCUXpresso SDK
|
|
* NXP mimxrt685: fixed clocks to enable DMIC
|
|
* NXP MCX N Series: Fixed NXP LPSPI native chip select when using synchronous API with DMA bug
|
|
* Nordic nRF54H: Added support for the FLPR (Fast Lightweight Processor) RISC-V CPU.
|
|
|
|
.. _boards_added_in_zephyr_4_0:
|
|
|
|
* Added support for these boards:
|
|
|
|
* :zephyr:board:`01space ESP32C3 0.42 OLED <esp32c3_042_oled>` (``esp32c3_042_oled``)
|
|
* :zephyr:board:`ADI MAX32662EVKIT <max32662evkit>` (``max32662evkit``)
|
|
* :zephyr:board:`ADI MAX32666EVKIT <max32666evkit>` (``max32666evkit``)
|
|
* :zephyr:board:`ADI MAX32666FTHR <max32666fthr>` (``max32666fthr``)
|
|
* :zephyr:board:`ADI MAX32675EVKIT <max32675evkit>` (``max32675evkit``)
|
|
* :zephyr:board:`ADI MAX32690FTHR <max32690fthr>` (``max32690fthr``)
|
|
* :ref:`Arduino Nicla Vision <arduino_nicla_vision_board>` (``arduino_nicla_vision``)
|
|
* :zephyr:board:`BeagleBone AI-64 <beaglebone_ai64>` (``beaglebone_ai64``)
|
|
* :zephyr:board:`BeaglePlay (CC1352) <beagleplay>` (``beagleplay``)
|
|
* :zephyr:board:`DPTechnics Walter <walter>` (``walter``)
|
|
* :zephyr:board:`Espressif ESP32-C3-DevKitC <esp32c3_devkitc>` (``esp32c3_devkitc``)
|
|
* :zephyr:board:`Espressif ESP32-C3-DevKit-RUST <esp32c3_rust>` (``esp32c3_rust``)
|
|
* :zephyr:board:`Espressif ESP32-S3-EYE <esp32s3_eye>` (``esp32s3_eye``)
|
|
* :zephyr:board:`Espressif ESP8684-DevKitM <esp8684_devkitm>` (``esp8684_devkitm``)
|
|
* :zephyr:board:`Gardena Smart Garden Radio Module <sgrm>` (``sgrm``)
|
|
* :zephyr:board:`mikroe STM32 M4 Clicker <mikroe_stm32_m4_clicker>` (``mikroe_stm32_m4_clicker``)
|
|
* :ref:`Nordic Semiconductor nRF54L15 DK <nrf54l15dk_nrf54l15>` (``nrf54l15dk``)
|
|
* :ref:`Nordic Semiconductor nRF54L20 PDK <nrf54l20pdk_nrf54l20>` (``nrf54l20pdk``)
|
|
* :ref:`Nordic Semiconductor nRF7002 DK <nrf7002dk_nrf5340>` (``nrf7002dk``)
|
|
* :zephyr:board:`Nuvoton NPCM400_EVB <npcm400_evb>` (``npcm400_evb``)
|
|
* :zephyr:board:`NXP FRDM-MCXA156 <frdm_mcxa156>` (``frdm_mcxa156``)
|
|
* :zephyr:board:`NXP FRDM-MCXC242 <frdm_mcxc242>` (``frdm_mcxc242``)
|
|
* :zephyr:board:`NXP FRDM-MCXC444 <frdm_mcxc444>` (``frdm_mcxc444``)
|
|
* :zephyr:board:`NXP FRDM-MCXN236 <frdm_mcxn236>` (``frdm_mcxn236``)
|
|
* :zephyr:board:`NXP FRDM-MCXW71 <frdm_mcxw71>` (``frdm_mcxw71``)
|
|
* :zephyr:board:`NXP i.MX95 EVK <imx95_evk>` (``imx95_evk``)
|
|
* :zephyr:board:`NXP MIMXRT1180-EVK <mimxrt1180_evk>` (``mimxrt1180_evk``)
|
|
* :ref:`PHYTEC phyBOARD-Nash i.MX93 <phyboard_nash>` (``phyboard_nash``)
|
|
* :ref:`Renesas RA2A1 Evaluation Kit <ek_ra2a1>` (``ek_ra2a1``)
|
|
* :ref:`Renesas RA4E2 Evaluation Kit <ek_ra4e2>` (``ek_ra4e2``)
|
|
* :ref:`Renesas RA4M2 Evaluation Kit <ek_ra4m2>` (``ek_ra4m2``)
|
|
* :ref:`Renesas RA4M3 Evaluation Kit <ek_ra4m3>` (``ek_ra4m3``)
|
|
* :ref:`Renesas RA4W1 Evaluation Kit <ek_ra4w1>` (``ek_ra4w1``)
|
|
* :ref:`Renesas RA6E2 Evaluation Kit <ek_ra6e2>` (``ek_ra6e2``)
|
|
* :ref:`Renesas RA6M1 Evaluation Kit <ek_ra6m1>` (``ek_ra6m1``)
|
|
* :ref:`Renesas RA6M2 Evaluation Kit <ek_ra6m2>` (``ek_ra6m2``)
|
|
* :ref:`Renesas RA6M3 Evaluation Kit <ek_ra6m3>` (``ek_ra6m3``)
|
|
* :ref:`Renesas RA6M4 Evaluation Kit <ek_ra6m4>` (``ek_ra6m4``)
|
|
* :ref:`Renesas RA6M5 Evaluation Kit <ek_ra6m5>` (``ek_ra6m5``)
|
|
* :ref:`Renesas RA8D1 Evaluation Kit <ek_ra8d1>` (``ek_ra8d1``)
|
|
* :ref:`Renesas RA6E1 Fast Prototyping Board <fpb_ra6e1>` (``fpb_ra6e1``)
|
|
* :ref:`Renesas RA6E2 Fast Prototyping Board <fpb_ra6e2>` (``fpb_ra6e2``)
|
|
* :ref:`Renesas RA8T1 Evaluation Kit <mcb_ra8t1>` (``mck_ra8t1``)
|
|
* :zephyr:board:`Renode Cortex-R8 Virtual <cortex_r8_virtual>` (``cortex_r8_virtual``)
|
|
* :zephyr:board:`Seeed XIAO ESP32-S3 Sense Variant <xiao_esp32s3>`: ``xiao_esp32s3``.
|
|
* :ref:`sensry.io Ganymed Break-Out-Board (BOB) <ganymed_bob>` (``ganymed_bob``)
|
|
* :zephyr:board:`SiLabs SiM3U1xx 32-bit MCU USB Development Kit <sim3u1xx_dk>` (``sim3u1xx_dk``)
|
|
* :ref:`SparkFun Thing Plus Matter <sparkfun_thing_plus_mgm240p>` (``sparkfun_thing_plus_matter_mgm240p``)
|
|
* :zephyr:board:`ST Nucleo G431KB <nucleo_g431kb>` (``nucleo_g431kb``)
|
|
* :zephyr:board:`ST Nucleo H503RB <nucleo_h503rb>` (``nucleo_h503rb``)
|
|
* :zephyr:board:`ST Nucleo H755ZI-Q <nucleo_h755zi_q>` (``nucleo_h755zi_q``)
|
|
* :zephyr:board:`ST Nucleo U031R8 <nucleo_u031r8>` (``nucleo_u031r8``)
|
|
* :zephyr:board:`ST Nucleo U083RC <nucleo_u083rc>` (``nucleo_u083rc``)
|
|
* :zephyr:board:`ST Nucleo WB05KZ <nucleo_wb05kz>` (``nucleo_wb05kz``)
|
|
* :zephyr:board:`ST Nucleo WB09KE <nucleo_wb09ke>` (``nucleo_wb09ke``)
|
|
* :zephyr:board:`ST STM32U083C-DK <stm32u083c_dk>` (``stm32u083c_dk``)
|
|
* :zephyr:board:`TI CC1352P7 LaunchPad <cc1352p7_lp>` (``cc1352p7_lp``)
|
|
* :zephyr:board:`vcc-gnd YD-STM32H750VB <yd_stm32h750vb>` (``yd_stm32h750vb``)
|
|
* :zephyr:board:`WeAct Studio STM32F405 Core Board V1.0 <weact_stm32f405_core>` (``weact_stm32f405_core``)
|
|
* :zephyr:board:`WeAct Studio USB2CANFDV1 <usb2canfdv1>` (``usb2canfdv1``)
|
|
* :zephyr:board:`Witte Technology Linum Board <linum>` (``linum``)
|
|
|
|
|
|
* Made these board changes:
|
|
|
|
* The nrf54l15bsim target now includes models of the AAR, CCM and ECB peripherals, and many
|
|
other improvements.
|
|
* Support for Google Kukui EC board (``google_kukui``) has been dropped.
|
|
* STM32: Deprecated MCO configuration via Kconfig in favour of setting it through Devicetree.
|
|
See ``samples/boards/st/mco`` sample.
|
|
* STM32: STM32CubeProgrammer is now the default runner on all STMicroelectronics STM32 boards.
|
|
* Removed the ``nrf54l15pdk`` board, use :ref:`nrf54l15dk_nrf54l15` instead.
|
|
* PHYTEC: ``mimx8mp_phyboard_pollux`` has been renamed to :ref:`phyboard_pollux<phyboard_pollux>`,
|
|
with the old name marked as deprecated.
|
|
* PHYTEC: ``mimx8mm_phyboard_polis`` has been renamed to :ref:`phyboard_polis<phyboard_polis>`,
|
|
with the old name marked as deprecated.
|
|
* The board qualifier for MPS3/AN547 is changed from:
|
|
|
|
* ``mps3/an547`` to ``mps3/corstone300/an547`` for secure and
|
|
* ``mps3/an547/ns`` to ``mps3/corstone300/an547/ns`` for non-secure.
|
|
|
|
* Added Thingy53 forwarding of network core pins to network core for SPI peripheral (disabled
|
|
by default) including pin mappings.
|
|
* Added uart, flexio pwm, flexio spi, watchdog, flash, rtc, i2c, lpspi, edma, gpio, acmp, adc and lptmr support
|
|
to NXP ``frdm_ke17z`` and ``frdm_ke17z512``
|
|
* Enabled support for MCUmgr on NXP boards
|
|
* Enabled MCUboot, FlexCAN, LPI2C, VREF, LPADC and timers (TPM, LPTMR, counter, watchdog) on NXP ``frdm_mcxw71``
|
|
* Enabled I2C, PWM on NXP ``imx95_evk``
|
|
* Enabled FLEXCAN, LPI2C on NXP ``s32z2xxdc2``
|
|
* Enabled DSPI and EDMA3 on NXP ``s32z270dc2``
|
|
* Enabled ENET ethernet on NXP ``imx8mm`` and ``imx8mn``
|
|
* Added support for the NXP ``imx8qm`` and ``imx8qxp`` DSP core to enable the openAMP sample
|
|
|
|
|
|
.. _shields_added_in_zephyr_4_0:
|
|
|
|
* Added support for the following shields:
|
|
|
|
* :ref:`ADI EVAL-ADXL362-ARDZ <eval_adxl362_ardz>`
|
|
* :ref:`ADI EVAL-ADXL372-ARDZ <eval_adxl372_ardz>`
|
|
* :ref:`Digilent Pmod ACL <pmod_acl>`
|
|
* :ref:`MikroElektronika BLE TINY Click <mikroe_ble_tiny_click_shield>`
|
|
* :ref:`Nordic SemiConductor nRF7002 EB <nrf7002eb>`
|
|
* :ref:`Nordic SemiConductor nRF7002 EK <nrf7002ek>`
|
|
* :ref:`ST X-NUCLEO-WB05KN1: BLE expansion board <x-nucleo-wb05kn1>`
|
|
* :ref:`WeAct Studio MiniSTM32H7xx OV2640 Camera Sensor <weact_ov2640_cam_module>`
|
|
|
|
Build system and Infrastructure
|
|
*******************************
|
|
|
|
* Added support for .elf files to the west flash command for jlink, pyocd and linkserver runners.
|
|
|
|
* Extracted pickled EDT generation from gen_defines.py into gen_edt.py. This moved the following
|
|
parameters from the cmake variable ``EXTRA_GEN_DEFINES_ARGS`` to ``EXTRA_GEN_EDT_ARGS``:
|
|
|
|
* ``--dts``
|
|
* ``--dtc-flags``
|
|
* ``--bindings-dirs``
|
|
* ``--dts-out``
|
|
* ``--edt-pickle-out``
|
|
* ``--vendor-prefixes``
|
|
* ``--edtlib-Werror``
|
|
|
|
* Switched to using imgtool directly from the build system when signing images instead of calling
|
|
``west sign``.
|
|
|
|
* Added support for selecting MCUboot operating mode in sysbuild using ``SB_CONFIG_MCUBOOT_MODE``.
|
|
|
|
* Added support for RAM-load MCUboot operating mode in build system, including sysbuild support.
|
|
|
|
* Added a script parameter to Twister to enable HW specific arguments, such as a system specific
|
|
timeout
|
|
|
|
Documentation
|
|
*************
|
|
|
|
* Added a new :ref:`interactive board catalog <boards>` enabling users to search boards by criteria
|
|
such as name, architecture, vendor, or SoC.
|
|
* Added a new :zephyr:code-sample-category:`interactive code sample catalog <samples>` for quickly
|
|
finding code samples based on name and description.
|
|
* Added :rst:dir:`zephyr:board` directive and :rst:role:`zephyr:board` role to mark Sphinx pages as
|
|
board documentation and reference them from other pages. Most existing board documentation pages
|
|
have been updated to use this directive, with full migration planned for the next release.
|
|
* Added :rst:dir:`zephyr:code-sample-category` directive to describe and group code samples in the
|
|
documentation.
|
|
* Added a link to the source code of the driver matching a binding's compatible string (when one can
|
|
be found in the Zephyr tree) to the :ref:`Devicetree bindings <devicetree_binding_index>` documentation.
|
|
* Added a button to all code sample README pages allowing to directly browse the sample's source
|
|
code on GitHub.
|
|
* Moved Zephyr C API documentation out of main documentation. API references now feature a rich
|
|
tooltip and link to the dedicated Doxygen site.
|
|
* Added two new build commands, ``make html-live`` and ``make html-live-fast``, that automatically
|
|
locally host the generated documentation. They also automatically rebuild and rehost the
|
|
documentation when changes to the input ``.rst`` files are detected on the filesystem.
|
|
|
|
Drivers and Sensors
|
|
*******************
|
|
|
|
* ADC
|
|
|
|
* Added proper ADC2 calibration entries in ESP32.
|
|
* Fixed calibration scheme in ESP32-S3.
|
|
* STM32H7: Added support for higher sampling frequencies thanks to boost mode implementation.
|
|
* Added initial support for Renesas RA8 ADC driver (:dtcompatible:`renesas,ra-adc`)
|
|
* Added driver for Analog Devices MAX32 SoC series (:dtcompatible:`adi,max32-adc`).
|
|
* Added support for NXP S32 SAR_ADC (:dtcompatible:`nxp,s32-adc-sar`)
|
|
* Added support for Ambiq Apollo3 series (:dtcompatible:`ambiq,adc`).
|
|
|
|
* CAN
|
|
|
|
* Added initial support for Renesas RA CANFD (:dtcompatible:`renesas,ra-canfd-global`,
|
|
:dtcompatible:`renesas,ra-canfd`)
|
|
* Added Flexcan support for S32Z27x (:dtcompatible:`nxp,flexcan`, :dtcompatible:`nxp,flexcan-fd`)
|
|
* Improved NXP S32 CANXL error reporting (:dtcompatible:`nxp,s32-canxl`)
|
|
|
|
* Clock control
|
|
|
|
* STM32 MCO (Microcontroller Clock Output) is now available on STM32U5 series.
|
|
* STM32 MCO can and should now be configured with device tree.
|
|
* STM32: :kconfig:option:`CONFIG_CLOCK_CONTROL` is now enabled by default at family level and doesn't need
|
|
to be enabled at board level anymore.
|
|
* STM32H7: PLL FRACN can now be configured (see :dtcompatible:`st,stm32h7-pll-clock`)
|
|
* Added initial support for Renesas RA clock control driver (:dtcompatible:`renesas,ra-cgc-pclk`,
|
|
:dtcompatible:`renesas,ra-cgc-pclk-block`, :dtcompatible:`renesas,ra-cgc-pll`,
|
|
:dtcompatible:`renesas,ra-cgc-external-clock`, :dtcompatible:`renesas,ra-cgc-subclk`,
|
|
:dtcompatible:`renesas,ra-cgc-pll-out`)
|
|
* Silabs: Added support for Series 2+ Clock Management Unit (see :dtcompatible:`silabs,series-clock`)
|
|
* Added initial support for Nordic nRF54H Series clock controllers.
|
|
|
|
* Codec (Audio)
|
|
|
|
* Added a driver for the Wolfson WM8904 audio codec (:dtcompatible:`wolfson,wm8904`)
|
|
|
|
* Comparator
|
|
|
|
* Introduced comparator device driver subsystem selected with :kconfig:option:`CONFIG_COMPARATOR`
|
|
* Introduced comparator shell commands selected with :kconfig:option:`CONFIG_COMPARATOR_SHELL`
|
|
* Added support for Nordic nRF COMP (:dtcompatible:`nordic,nrf-comp`)
|
|
* Added support for Nordic nRF LPCOMP (:dtcompatible:`nordic,nrf-lpcomp`)
|
|
* Added support for NXP Kinetis ACMP (:dtcompatible:`nxp,kinetis-acmp`)
|
|
|
|
* Counter
|
|
|
|
* Added initial support for Renesas RA8 AGT counter driver (:dtcompatible:`renesas,ra-agt`)
|
|
* Added driver for Analog Devices MAX32 SoC series (:dtcompatible:`adi,max32-counter`).
|
|
* Updated the NXP counter_mcux_lptmr driver to support multiple instances of the lptmr
|
|
peripheral.
|
|
* Converted the NXP S32 System Timer Module driver to native Zephyr code
|
|
* Added support for late and short relative alarms area to NXP nxp_sys_timer (:dtcompatible:`nxp,s32-sys-timer`)
|
|
|
|
* Crypto
|
|
|
|
* Added support for STM32L4 AES.
|
|
|
|
* DAC
|
|
|
|
* DAC API now supports specifying channel path as internal. Support has been added in STM32 drivers.
|
|
|
|
* Disk
|
|
|
|
* STM32F7 SDMMC driver now supports usage of DMA.
|
|
* STM32 mem controller driver now supports FMC for STM32H5.
|
|
* SDMMC subsystem driver will now power down the SD card when the disk is
|
|
deinitialized
|
|
|
|
* Display
|
|
|
|
* NXP ELCDIF driver now supports flipping the image along the horizontal
|
|
or vertical axis using the PXP. Use
|
|
:kconfig:option:`CONFIG_MCUX_ELCDIF_PXP_FLIP_DIRECTION` to set the desired
|
|
flip.
|
|
* ST7789V driver now supports BGR565, enabled with
|
|
:kconfig:option:`CONFIG_ST7789V_BGR565`.
|
|
* Added driver for SSD1327 OLED display controller (:dtcompatible:`solomon,ssd1327fb`).
|
|
* Added driver for SSD1322 OLED display controller (:dtcompatible:`solomon,ssd1322`).
|
|
* Added driver for IST3931 monochrome display controller (:dtcompatible:`istech,ist3931`).
|
|
|
|
* DMA
|
|
|
|
* Added driver for Analog Devices MAX32 SoC series (:dtcompatible:`adi,max32-dma`).
|
|
* Added flip feature to the NXP dma_mcux_pxp driver (:dtcompatible:`nxp,pxp`)
|
|
* Added support for eDMAv5 and cyclic mode (:github:`80584`) to the NXP EMDA driver (:dtcompatible:`nxp,edma`)
|
|
|
|
* EEPROM
|
|
|
|
* Added support for using the EEPROM simulator with embedded C standard libraries
|
|
(:dtcompatible:`zephyr,sim-eeprom`).
|
|
|
|
* Entropy
|
|
|
|
* Added initial support for Renesas RA8 Entropy driver (:dtcompatible:`renesas,ra-rsip-e51a-trng`)
|
|
* Added driver for Analog Devices MAX32 SoC series (:dtcompatible:`adi,max32-trng`).
|
|
|
|
* Ethernet
|
|
|
|
* Added a :c:func:`get_phy` function to the ethernet driver api, which returns the phy device
|
|
associated to a network interface.
|
|
* Added 2.5G and 5G link speeds to the ethernet hardware capabilities api.
|
|
* Added check for null api pointer in :c:func:`net_eth_get_hw_capabilities`, fixing netusb crash.
|
|
* Added synopsis dwc_xgmac ethernet driver.
|
|
* Added NXP iMX NETC driver.
|
|
* Adin2111
|
|
|
|
* Fixed bug that resulted in double RX buffer read when generic spi protocol is used.
|
|
* Fixed essential thread termination on OA read failure.
|
|
* Skip checks for port 2 on the adin1110 since it doesn't apply, as there is no port 2.
|
|
* ENC28J60
|
|
|
|
* Added support for the ``zephyr,random-mac-address`` property.
|
|
* Fixed race condition between interrupt service and L2 init affecting carrier status in init.
|
|
* ENC424j600: Added ability to change mac address at runtime with net management api.
|
|
* ESP32: Added configuration of interrupts from DT.
|
|
* Lan865x
|
|
|
|
* Enable all multicast MAC address for IPv6. All multicast mac address can now be
|
|
received and allows for correct handling of the IPv6 neighbor discovery protocol.
|
|
* Fixed transmission stopping when setting mac address or promiscuous mode.
|
|
* LiteX
|
|
|
|
* Renamed the ``compatible`` from ``litex,eth0`` to :dtcompatible:`litex,liteeth`.
|
|
* Added support for multiple instances of the liteX ethernet driver.
|
|
* Added support for VLAN to the liteX ethernet driver.
|
|
* Added phy support.
|
|
* Native_posix
|
|
|
|
* Implemented getting the interface name from the command line.
|
|
* Now prints error number in error message when creating an interface.
|
|
* NXP ENET_QOS: Fixed check for ``zephyr,random-mac-address`` property.
|
|
* NXP ENET:
|
|
|
|
* Fixed fused MAC address initialization code.
|
|
* Fixed code path for handling tx errors with timestamped frames.
|
|
* Fixed network carrier status race condition during init.
|
|
* NXP S32: Added configs to enable VLAN promiscuous and untagged, and enable SI message interrupt.
|
|
* STM32
|
|
|
|
* Driver can now be configured to use a preemptive RX thread priority, which could be useful
|
|
in case of high network traffic load (reduces jitter).
|
|
* Added support for DT-defined mdio.
|
|
* Fixed bus error after network disconnection that happened in some cases.
|
|
* TC6: Combine read chunks into continuous net buffer. This fixes IPv6 neighbor discovery protocol
|
|
because 64 bytes was not enough for all headers.
|
|
* PHY driver changes
|
|
|
|
* Added Qualcomm AR8031 phy driver.
|
|
* Added DP83825 phy driver.
|
|
* PHY_MII
|
|
|
|
* Fixed generic phy_mii driver not using the value of the ``no-reset`` property from Devicetree.
|
|
* Removed excess newlines from log output of phy_mii driver.
|
|
* KSZ8081
|
|
|
|
* Fixed reset times during init that were unnecessarily long.
|
|
* Removed unnecessary reset on every link configuration that blocked system workqueue
|
|
* Fixed issue relating to strap-in override bits.
|
|
|
|
|
|
* Flash
|
|
|
|
* Fixed SPI NOR driver issue where wp, hold and reset pins were incorrectly initialized from
|
|
device tee when SFDP at run-time has been enabled (:github:`80383`)
|
|
* Updated all Espressif's SoC driver initialization to allow new chipsets and octal flash support.
|
|
* Added :kconfig:option:`CONFIG_SPI_NOR_ACTIVE_DWELL_MS`, to the SPI NOR driver configuration,
|
|
which allows setting the time during which the driver will wait before triggering Deep Power Down (DPD).
|
|
This option replaces ``CONFIG_SPI_NOR_IDLE_IN_DPD``, aiming at reducing unnecessary power
|
|
state changes and SPI transfers between other operations, specifically when burst type
|
|
access to an SPI NOR device occurs.
|
|
* Added :kconfig:option:`CONFIG_SPI_NOR_INIT_PRIORITY` to allow selecting the SPI NOR driver initialization priority.
|
|
* The flash API has been extended with the :c:func:`flash_copy` utility function which allows performing
|
|
direct data copies between two Flash API devices.
|
|
* Fixed a Flash Simulator issue where offsets were assumed to be absolute instead of relative
|
|
to the device base address (:github:`79082`).
|
|
* Extended STM32 OSPI drivers to support QUAL, DUAL and SPI modes. Additionally, added support
|
|
for custom write and SFDP:BFP opcodes.
|
|
* Added possibility to run STM32H7 flash driver from Cortex-M4 core.
|
|
* Implemented readout protection handling (RDP levels) for STM32F7 SoCs.
|
|
* Added initial support for Renesas RA8 Flash controller driver (:dtcompatible:`renesas,ra-flash-hp-controller`)
|
|
* Added driver for Analog Devices MAX32 SoC series (:dtcompatible:`adi,max32-flash-controller`).
|
|
* Added support for W25Q512JV and W25Q512NW-IQ/IN to NXP's MCUX Flexspi driver
|
|
* Renamed the binding :dtcompatible:`nxp,iap-msf1` to :dtcompatible:`nxp,msf1` for accuracy
|
|
|
|
* GPIO
|
|
|
|
* tle9104: Add support for the parallel output mode via setting the properties ``parallel-out12`` and
|
|
``parallel-out34``.
|
|
* Converted the NXP S32 SIUL2 drivers to native Zephyr code
|
|
* Converted the NXP wake-up drivers to native Zephyr code
|
|
|
|
* Haptics
|
|
|
|
* Introduced a haptics device driver subsystem selected with :kconfig:option:`CONFIG_HAPTICS`
|
|
* Added support for TI DRV2605 haptic driver IC (:dtcompatible:`ti,drv2605`)
|
|
* Added a sample for the DRV2605 haptic driver to trigger ROM events (:zephyr:code-sample:`drv2605`)
|
|
|
|
* I2C
|
|
|
|
* Added initial support for Renesas RA8 I2C driver (:dtcompatible:`renesas,ra-iic`)
|
|
|
|
* I2S
|
|
|
|
* Added ESP32-S3 and ESP32-C3 driver support.
|
|
|
|
* I3C
|
|
|
|
* Added support for SETAASA optimization during initialization. Added a
|
|
``supports-setaasa`` property to ``i3c-devices.yaml``.
|
|
* Added sending DEFTGTS if any devices that support functioning as a secondary
|
|
controller on the bus.
|
|
* Added retrieving GETMXDS within :c:func:`i3c_device_basic_info_get` if BCR mxds
|
|
bit is set.
|
|
* Added helper functions for sending CCCs for ENTTM, VENDOR, DEFTGTS, SETAASA,
|
|
GETMXDS, SETBUSCON, RSTACT DC, ENTAS0, ENTAS1, ENTAS2, and ENTAS3.
|
|
* Added shell commands for sending CCCs for ENTTM, VENDOR, DEFTGTS, SETAASA,
|
|
GETMXDS, SETBUSCON, RSTACT DC, ENTAS0, ENTAS1, ENTAS2, and ENTAS3.
|
|
* Added shell commands for setting the I3C speed, sending HDR-DDR, raising IBIs,
|
|
enabling IBIs, disabling IBIs, and scanning I2C addresses.
|
|
* :c:func:`i3c_ccc_do_setdasa` has been modified to now require specifying the assigned
|
|
dynamic address rather than having the dynamic address be determined within the function.
|
|
* :c:func:`i3c_determine_default_addr` has been removed
|
|
* ``attach_i3c_device`` now no longer requires the attached address as an argument. It is now
|
|
up to the driver to determine the attached address from the ``i3c_device_desc``.
|
|
|
|
* Input
|
|
|
|
* New feature: :dtcompatible:`zephyr,input-double-tap`.
|
|
|
|
* New driver: :dtcompatible:`ilitek,ili2132a`.
|
|
|
|
* Added power management support to all keyboard matrix drivers, added a
|
|
``no-disconnect`` property to :dtcompatible:`gpio-keys` so it can be used
|
|
with power management on GPIO drivers that do not support pin
|
|
disconnection.
|
|
|
|
* Added a new framework for touchscreen common properties and features
|
|
(screen size, inversion, xy swap).
|
|
|
|
* Fixed broken ESP32 input touch sensor driver.
|
|
|
|
* gt911:
|
|
* Fixed the INT pin to be always set during probe to allow for proper initialization
|
|
* Fixed OOB buffer write to touch points array
|
|
* Add support for multitouch events
|
|
|
|
* Interrupt
|
|
|
|
* Updated ESP32 family interrupt allocator with proper IRQ flags and priorities.
|
|
* Implemented a function to set pending interrupts for Arm GIC
|
|
* Added a safe configuration option so multiple OS'es can share the same GIC and avoid reconfiguring
|
|
the distributor
|
|
|
|
* LED
|
|
|
|
* lp5562: added ``enable-gpios`` property to describe the EN/VCC GPIO of the lp5562.
|
|
|
|
* lp5569: added ``charge-pump-mode`` property to configure the charge pump of the lp5569.
|
|
|
|
* lp5569: added ``enable-gpios`` property to describe the EN/PWM GPIO of the lp5569.
|
|
|
|
* LED code samples have been consolidated under the :zephyr_file:`samples/drivers/led` directory.
|
|
|
|
* LED Strip
|
|
|
|
* Updated ws2812 GPIO driver to support dynamic bus timings
|
|
|
|
* Mailbox
|
|
|
|
* Added driver support for ESP32 and ESP32-S3 SoCs.
|
|
|
|
* MDIO
|
|
|
|
* Added litex MDIO driver.
|
|
* Added support for mdio shell to stm32 mdio.
|
|
* Added mdio driver for dwc_xgmac synopsis ethernet.
|
|
* Added NXP IMX NETC mdio driver.
|
|
* NXP ENET MDIO: Fixed inconsistent behavior by keeping the mdio interrupt enabled all the time.
|
|
|
|
* MEMC
|
|
|
|
* Add driver for APS6404L PSRAM using NXP FLEXSPI
|
|
|
|
* MFD
|
|
|
|
* Modem
|
|
|
|
* Added support for the U-Blox LARA-R6 modem.
|
|
* Added support for setting the modem's UART baudrate during init.
|
|
|
|
* MIPI-DBI
|
|
|
|
* Added bitbang MIPI-DBI driver, supporting 8080 and 6800 mode
|
|
(:dtcompatible:`zephyr,mipi-dbi-bitbang`).
|
|
* Added support for STM32 FMC memory controller (:dtcompatible:`st,stm32-fmc-mipi-dbi`).
|
|
* Added support for 8080 mode to NXP LCDIC controller (:dtcompatible:`nxp,lcdic`).
|
|
* Fixed the calculation of the reset delay for NXP's LCD controller (:dtcompatible:`nxp,lcdic`)
|
|
|
|
* MIPI-CSI
|
|
|
|
* Improve NXP CSI and MIPI_CSI2Rx drivers to support varibale frame rates
|
|
|
|
* Pin control
|
|
|
|
* Added support for Microchip MEC5
|
|
* Added SCMI-based driver for NXP i.MX
|
|
* Added support for i.MX93 M33 core
|
|
* Added support for ESP32C2
|
|
* STM32: :kconfig:option:`CONFIG_PINCTRL` is now selected by drivers requiring it and
|
|
shouldn't be enabled at board level anymore.
|
|
|
|
* PWM
|
|
|
|
* rpi_pico: The driver now configures the divide ratio adaptively.
|
|
* Added initial support for Renesas RA8 PWM driver (:dtcompatible:`renesas,ra8-pwm`)
|
|
* Added driver for Analog Devices MAX32 SoC series (:dtcompatible:`adi,max32-pwm`).
|
|
* Fixed a build issue of the NXP TPM driver for variants without the capability to combine channels
|
|
|
|
* Regulators
|
|
|
|
* Upgraded CP9314 driver to B1 silicon revision
|
|
* Added basic driver for MPS MPM54304
|
|
|
|
* RTC
|
|
|
|
* STM32: HSE can now be used as domain clock.
|
|
* Added the NXP IRTC Driver.
|
|
|
|
* RTIO
|
|
|
|
* SAI
|
|
|
|
* Improved NXP's SAI driver to use a default clock if none is provided in the DT
|
|
* Fixed a bug in the NXP SAI driver that caused a crash on a FIFO under- and overrun
|
|
* Fixed a bug that reset the NXP ESAI during initialization (unnecessary)
|
|
* Added support for PM operations in NXP's SAI driver
|
|
|
|
* SDHC
|
|
|
|
* Added ESP32-S3 driver support.
|
|
* SPI SDHC driver now handles SPI devices with runtime PM support correctly
|
|
* Improved NXP's imx SDHC driver to assume card is present if no detection method is provided
|
|
|
|
* Sensors
|
|
|
|
* General
|
|
|
|
* The existing driver for the Microchip MCP9808 temperature sensor transformed and renamed to
|
|
support all JEDEC JC 42.4 compatible temperature sensors. It now uses the
|
|
:dtcompatible:`jedec,jc-42.4-temp` compatible string instead to the ``microchip,mcp9808``
|
|
string.
|
|
* Added support for VDD based ADC reference to the NTC thermistor driver.
|
|
* Added Avago APDS9253 (:dtcompatible:`avago,apds9253`) and APDS9306
|
|
(:dtcompatible:`avago,apds9306`) ambient light sensor drivers.
|
|
* Added gain and resolution attributes (:c:enum:`SENSOR_ATTR_GAIN` and
|
|
:c:enum:`SENSOR_ATTR_RESOLUTION`).
|
|
|
|
* ADI
|
|
|
|
* Add RTIO streaming support to ADXL345, ADXL362, and ADXL372 accelerometer drivers.
|
|
|
|
* Bosch
|
|
|
|
* Merged BMP390 into BMP388.
|
|
* Added support for power domains to BMM150 and BME680 drivers.
|
|
* Added BMP180 pressure sensor driver (:dtcompatible:`bosch,bmp180`).
|
|
|
|
* Memsic
|
|
|
|
* Added MMC56X3 magnetometer and temperature sensor driver (:dtcompatible:`memsic,mmc56x3`).
|
|
|
|
* NXP
|
|
|
|
* Added P3T1755 digital temperature sensor driver (:dtcompatible:`nxp,p3t1755`).
|
|
* Added FXLS8974 accelerometer driver (:dtcompatible:`nxp,fxls8974`).
|
|
|
|
* ST
|
|
|
|
* Aligned drivers to stmemsc HAL i/f v2.6.
|
|
* Added LSM9DS1 accelerometer/gyroscope/magnetometer sensor driver (:dtcompatible:`st,lsm9ds1`).
|
|
|
|
* TDK
|
|
|
|
* Added I2C bus support to ICM42670.
|
|
|
|
* TI
|
|
|
|
* Added support for INA236 to the existing INA230 driver.
|
|
* Added support for TMAG3001 to the existing TMAG5273 driver.
|
|
* Added TMP1075 temperature sensor driver (:dtcompatible:`ti,tmp1075`).
|
|
|
|
* Vishay
|
|
|
|
* Added trigger capability to VCNL36825T driver.
|
|
|
|
* WE
|
|
|
|
* Added Würth Elektronik HIDS-2525020210002
|
|
:dtcompatible:`we,wsen-hids-2525020210002` humidity sensor driver.
|
|
* Added general samples for triggers
|
|
|
|
* Serial
|
|
|
|
* LiteX: Renamed the ``compatible`` from ``litex,uart0`` to :dtcompatible:`litex,uart`.
|
|
* Nordic: Removed ``CONFIG_UART_n_GPIO_MANAGEMENT`` Kconfig options (where n is an instance
|
|
index) which had no use after pinctrl driver was introduced.
|
|
* NS16550: Added support for Synopsys Designware 8250 UART.
|
|
* Renesas: Added support for SCI UART.
|
|
* Sensry: Added UART support for Ganymed SY1XX.
|
|
|
|
* SPI
|
|
|
|
* Added initial support for Renesas RA8 SPI driver (:dtcompatible:`renesas,ra8-spi-b`)
|
|
* Added RTIO support to the Analog Devices MAX32 driver.
|
|
* Silabs: Added support for EUSART (:dtcompatible:`silabs,gecko-spi-eusart`)
|
|
|
|
* Steppers
|
|
|
|
* Introduced stepper controller device driver subsystem selected with
|
|
:kconfig:option:`CONFIG_STEPPER`
|
|
* Introduced stepper shell commands for controlling and configuring
|
|
stepper motors with :kconfig:option:`CONFIG_STEPPER_SHELL`
|
|
* Added support for ADI TMC5041 (:dtcompatible:`adi,tmc5041`)
|
|
* Added support for gpio-stepper-controller (:dtcompatible:`zephyr,gpio-steppers`)
|
|
* Added stepper api test-suite
|
|
* Added stepper shell test-suite
|
|
|
|
* Timer
|
|
|
|
* Silabs: Added support for Sleeptimer (:dtcompatible:`silabs,gecko-stimer`)
|
|
|
|
* USB
|
|
|
|
* Added support for USB HS on STM32U59x/STM32U5Ax SoC variants.
|
|
* Enhanced DWC2 UDC driver
|
|
* Added UDC drivers for Smartbond, NuMaker USBD and RP2040 device controllers
|
|
* Enabled SoF in NXP USB drivers (UDC)
|
|
* Enabled cache maintenance in the NXP EHCI USB driver
|
|
|
|
* Video
|
|
|
|
* Introduced API to control frame rate
|
|
* Introduced API for partial frames transfer with the video buffer field ``line_offset``
|
|
* Introduced API for :ref:`multi-heap<memory_management_shared_multi_heap>` video buffer allocation with
|
|
:kconfig:option:`CONFIG_VIDEO_BUFFER_USE_SHARED_MULTI_HEAP`
|
|
* Introduced bindings for common video link properties in ``video-interfaces.yaml``. Migration to the
|
|
new bindings is tracked in :github:`80514`
|
|
* Introduced missing :kconfig:option:`CONFIG_VIDEO_LOG_LEVEL`
|
|
* Added a sample for capturing video and displaying it with LVGL
|
|
(:zephyr:code-sample:`video-capture-to-lvgl`)
|
|
* Added an automatic test to check colorbar pattern correctness
|
|
* Added support for GalaxyCore GC2145 image sensor (:dtcompatible:`galaxycore,gc2145`)
|
|
* Added support for ESP32-S3 LCD-CAM interface (:dtcompatible:`espressif,esp32-lcd-cam`)
|
|
* Added support for NXP MCUX SMARTDMA interface (:dtcompatible:`nxp,smartdma`)
|
|
* Added support for more OmniVision OV2640 controls (:dtcompatible:`ovti,ov2640`)
|
|
* Added support for more OmniVision OV5640 controls (:dtcompatible:`ovti,ov5640`)
|
|
* STM32: Implemented :c:func:`video_get_ctrl` and :c:func:`video_set_ctrl` APIs.
|
|
* Removed an init order circular dependency for the camera pipeline on NXP RT10xx platforms
|
|
(:github:`80304`)
|
|
* Added an NXP's smartdma based video driver (:dtcompatible:`nxp,video-smartdma`)
|
|
* Added frame interval APIs to support variable frame rates (video_sw_generator.c)
|
|
* Added image controls to the OV5640 driver
|
|
|
|
* W1
|
|
|
|
* Added 1-Wire master driver for Analog Devices MAX32 SoC series (:dtcompatible:`adi,max32-w1`)
|
|
|
|
* Watchdog
|
|
|
|
* Added driver for Analog Devices MAX32 SoC series (:dtcompatible:`adi,max32-watchdog`).
|
|
* Converted NXP S32 Software Watchdog Timer driver to native Zephyr code
|
|
|
|
* Wi-Fi
|
|
|
|
* Add Wi-Fi Easy Connect (DPP) support.
|
|
* Add support for Wi-Fi credentials library.
|
|
* Add enterprise support for station.
|
|
* Add Wi-Fi snippet support for networking samples.
|
|
* Add build testing for various Wi-Fi config combinations.
|
|
* Add regulatory domain support to Wi-Fi shell.
|
|
* Add WPS support to Wi-Fi shell.
|
|
* Add 802.11r connect command usage in Wi-Fi shell.
|
|
* Add current PHY rate to hostap status message.
|
|
* Allow user to reset Wi-Fi statistics in Wi-Fi shell.
|
|
* Display RTS threshold in Wi-Fi shell.
|
|
* Fix SSID array length size in scanning results.
|
|
* Fix the "wifi ap config" command using the STA interface instead of SAP interface.
|
|
* Fix memory leak in hostap when doing a disconnect.
|
|
* Fix setting of frequency band both in AP and STA mode in Wi-Fi shell.
|
|
* Fix correct channel scan range in Wi-Fi 6GHz.
|
|
* Fix scan results printing in Wi-Fi shell.
|
|
* Increase main and shell stack sizes for Wi-Fi shell sample.
|
|
* Increase the maximum count of connected STA to 8 in Wi-Fi shell.
|
|
* Relocate AP and STA Wi-Fi sample to samples/net/wifi directory.
|
|
* Run Wi-Fi tests together with network tests.
|
|
* Updated ESP32 Wi-Fi driver to reflect actual negotiated PHY mode.
|
|
* Add ESP32-C2 Wi-Fi support.
|
|
* Add ESP32 driver APSTA support.
|
|
* Add NXP RW612 driver support.
|
|
* Added nRF70 Wi-Fi driver.
|
|
|
|
Networking
|
|
**********
|
|
|
|
* 802.15.4:
|
|
|
|
* Implemented support for beacons without association bit.
|
|
* Implemented support for beacons payload.
|
|
* Fixed a bug where LL address endianness was swapped twice when deciphering a frame.
|
|
* Fixed missing context lock release when checking destination address.
|
|
* Improved error logging in 6LoWPAN fragmentation.
|
|
* Improved error logging in 802.15.4 management commands.
|
|
|
|
* ARP:
|
|
|
|
* Fixed ARP probe verification during IPv4 address conflict detection.
|
|
|
|
* CoAP:
|
|
|
|
* Added new API :c:func:`coap_rst_init` to simplify creating RST replies.
|
|
* Implemented replying with CoAP RST response for unknown queries in CoAP client.
|
|
* Added support for runtime configuration of ACK random factor parameter.
|
|
* Added support for No Response CoAP option.
|
|
* Added a new sample demonstrating downloading a resource with GET request.
|
|
* Fixed handling of received CoAP RST reply in CoAP client.
|
|
* Fixed socket error reporting to the application in CoAP client.
|
|
* Fixed handling of response retransmissions in CoAP client.
|
|
* Fixed a bug where CoAP block numbers were limited to ``uint8_t``.
|
|
* Various fixes in the block transfer support in CoAP client.
|
|
* Improved handling of truncated datagrams in CoAP client.
|
|
* Improved thread safety of CoAP client.
|
|
* Fixed missing ``static`` keyword in some internal functions.
|
|
* Various other minor fixes in CoAP client.
|
|
|
|
* DHCPv4:
|
|
|
|
* Added support for parsing multiple DNS servers received from DHCP server.
|
|
* Added support for DNS Server option in DHCPv4 server.
|
|
* Added support for Router option in DHCPv4 server.
|
|
* Added support for application callback which allows to assign custom addresses
|
|
in DHCPv4 server.
|
|
* Fixed DNS server list allocation in DHCPv4 client.
|
|
* Fixed a bug where system workqueue could be blocked indefinitely by DHCPv4 client.
|
|
|
|
* DHCPv6:
|
|
|
|
* Fixed a bug where system workqueue could be blocked indefinitely by DHCPv6 client.
|
|
|
|
* DNS/mDNS/LLMNR:
|
|
|
|
* Added support for collecting DNS statistics.
|
|
* Added support for more error codes in :c:func:`zsock_gai_strerror`.
|
|
* Fixed handling of DNS responses encoded with capital letters.
|
|
* Fixed DNS dispatcher operation on multiple network interfaces.
|
|
* Fixed error being reported for mDNS queries with query count equal to 0.
|
|
* Various other minor fixes in DNS/mDNS implementations.
|
|
|
|
* Ethernet:
|
|
|
|
* gPTP/PTP:
|
|
|
|
* Fixed handling of second overflow/underflow.
|
|
* Fixed PTP clock adjusting with offset.
|
|
|
|
* HTTP:
|
|
|
|
* Added support for specifying response headers and response code by the application.
|
|
* Added support for netusb in the HTTP server sample.
|
|
* Added support for accessing HTTP request headers from the application callback.
|
|
* Added support for handling IPv4 connections over IPv6 socket in HTTP server.
|
|
* Added support for creating HTTP server instances without specifying local host.
|
|
* Added overlays to support HTTP over IEEE 802.15.4 for HTTP client and server
|
|
samples.
|
|
* Added support for static filesystem resources in HTTP server.
|
|
* Fixed assertion in HTTP server sample when resource upload was aborted.
|
|
* Refactored dynamic resource callback format for easier handling of short
|
|
requests/replies.
|
|
* Fixed possible busy-looping in case of errors in the HTTP server sample.
|
|
* Fixed possible incorrect HTTP headers matching in HTTP server.
|
|
* Refactored HTTP server sample to better demonstrate server use cases.
|
|
* Fixed processing of multiple HTTP/1 requests over the same connection.
|
|
* Improved HTTP server test coverage.
|
|
* Various other minor fixes in HTTP server.
|
|
|
|
* IPv4:
|
|
|
|
* Improved IGMP test coverage.
|
|
* Fixed IGMPv2 queries processing when IGMPv3 is enabled.
|
|
* Fixed :kconfig:option:`CONFIG_NET_NATIVE_IPV4` dependency for native IPv4 options.
|
|
* Fix net_pkt leak in :c:func:`send_ipv4_fragment`.`
|
|
* Fixed tx_pkts slab leak in send_ipv4_fragment
|
|
|
|
* IPv6:
|
|
|
|
* Added a public header for Multicast Listener Discovery APIs.
|
|
* Added new :c:func:`net_ipv6_addr_prefix_mask` API function.
|
|
* Made IPv6 Router Solicitation timeout configurable.
|
|
* Fixed endless IPv6 packet looping with both routing and VLAN support enabled.
|
|
* Fixed unneeded error logging in case of dropped NS packets.
|
|
* Fixed accepting of incoming DAD NS messages.
|
|
* Various fixes improving IPv6 routing.
|
|
* Added onlink and forwarding check to IPv6-prepare
|
|
|
|
* LwM2M:
|
|
|
|
* Location object: optional resources altitude, radius, and speed can now be
|
|
used optionally as per the location object's specification. Users of these
|
|
resources will now need to provide a read buffer.
|
|
* Added TLS_ECDHE_ECDSA_WITH_AES_128_CCM_8 to DTLS cipher list.
|
|
* Added LwM2M shell command for listing resources.
|
|
* Added LwM2M shell command to list observations.
|
|
* Added support for accepting SenML-CBOR floats decoded as integers.
|
|
* Added support for X509 hostname verification if using certificates, when
|
|
URI contains valid name.
|
|
* Regenerated generated code files using zcbor 0.9.0 for lwm2m_senml_cbor.
|
|
* Improved thread safety of the LwM2M engine.
|
|
* Fixed block transfer issues for composite operations.
|
|
* Fixed enabler version reporting during bootstrap discovery.
|
|
* Removed unneeded Security object instance from the LwM2M client sample.
|
|
* Fixed buffer size check for U16 resource.
|
|
* Removed deprecated APIs and configs.
|
|
* Optional Location object resources altitude, radius, and speed can now be
|
|
used optionally as per the location object's specification. Users of these
|
|
resources will now need to provide a read buffer.
|
|
* Fixed the retry counter not being reset on successful Registration update.
|
|
* Fixed REGISTRATION_TIMEOUT event not always being emitted on registration
|
|
errors.
|
|
* Fixed c++ support in LwM2M public header.
|
|
* Fixed a bug where DISCONNECTED event was not always emitted when needed.
|
|
|
|
* Misc:
|
|
|
|
* Added support for network packet allocation statistics.
|
|
* Added a new library implementing Prometheus monitoring support.
|
|
* Added USB CDC NCM support for Echo Server sample.
|
|
* Added packet drop statistics for capture interfaces.
|
|
* Added new :c:func:`net_hostname_set_postfix_str` API function to set hostname
|
|
postfix in non-hexadecimal format.
|
|
* Added API version information to public networking headers.
|
|
* Implemented optional periodic SNTP time resynchronization.
|
|
* Improved error reporting when starting/stopping virtual interfaces.
|
|
* Fixed build error of packet capture library when variable sized buffers are used.
|
|
* Fixed build error of packet capture library when either IPv4 or IPv6 is disabled.
|
|
* Fixed CMake complaint about missing sources in net library in certain
|
|
configurations.
|
|
* Fixed compilation issues with networking and SystemView Tracing enabled.
|
|
* Removed redundant DHCPv4 code from telnet sample.
|
|
* Fixed build warnings in Echo Client sample with IPv6 disabled.
|
|
* Extended network tracing support and added documentation page
|
|
(:ref:`network_tracing`).
|
|
* Moved network buffers implementation out of net subsystem into lib directory
|
|
* Removed ``wpansub`` sample.
|
|
|
|
* MQTT:
|
|
|
|
* Updated information in the mqtt_publisher sample about Mosquitto broker
|
|
configuration.
|
|
* Updated MQTT tests to be self-contained, no longer requiring external broker.
|
|
* Optimized buffer handling in MQTT encoder/decoder.
|
|
|
|
* Network contexts:
|
|
|
|
* Fixed IPv4 destination address setting when using :c:func:`sendmsg` with
|
|
:kconfig:option:`CONFIG_NET_IPV4_MAPPING_TO_IPV6` option enabled.
|
|
* Fixed possible unaligned memory access when in :c:func:`net_context_bind`.
|
|
* Fixed missing NULL pointer check for V6ONLY option read.
|
|
|
|
* Network Interface:
|
|
|
|
* Added new :c:func:`net_if_ipv4_get_gw` API function.
|
|
* Fixed checksum offloading checks for VLAN interfaces.
|
|
* Fixed native IP support being required to register IP addresses on an
|
|
interface.
|
|
* Fixed missing mutex locks in a few net_if functions.
|
|
* Fixed rejoining of IPv6 multicast groups.
|
|
* Fixed :c:func:`net_if_send_data` operation for offloaded interfaces.
|
|
* Fixed needless IPv6 multicast groups joining if IPv6 is disabled.
|
|
* Fixed compiler warnings when building with ``-Wtype-limits``.
|
|
|
|
* OpenThread:
|
|
|
|
* Added support for :kconfig:option:`CONFIG_IEEE802154_SELECTIVE_TXCHANNEL`
|
|
option in OpenThread radio platform.
|
|
* Added NAT64 send and receive callbacks.
|
|
* Added new Kconfig options:
|
|
|
|
* :kconfig:option:`CONFIG_OPENTHREAD_NAT64_CIDR`
|
|
* :kconfig:option:`CONFIG_OPENTHREAD_STORE_FRAME_COUNTER_AHEAD`
|
|
* :kconfig:option:`CONFIG_OPENTHREAD_DEFAULT_RX_SENSITIVITY`
|
|
* :kconfig:option:`CONFIG_OPENTHREAD_CSL_REQUEST_TIME_AHEAD`
|
|
|
|
* Fixed deprecated/preferred IPv6 address state transitions.
|
|
* Fixed handling of deprecated IPv6 addresses.
|
|
* Other various minor fixes in Zephyr's OpenThread port.
|
|
|
|
* Shell:
|
|
|
|
* Added support for enabling/disabling individual network shell commands with
|
|
Kconfig.
|
|
* Added new ``net dhcpv4/6 client`` commands for DHCPv4/6 client management.
|
|
* Added new ``net virtual`` commands for virtual interface management.
|
|
* ``net ipv4/6`` commands are now available even if native IP stack is disabled.
|
|
* Added new ``net cm`` commands exposing Connection Manager functionality.
|
|
* Fixed possible assertion if telnet shell backend connection is terminated.
|
|
* Event monitor thread stack size is now configurable with Kconfig.
|
|
* Relocated ``bridge`` command under ``net`` command, i. e. ``net bridge``.
|
|
* Multiple minor improvements in various command outputs.
|
|
|
|
* Sockets:
|
|
|
|
* Added dedicated ``net_socket_service_handler_t`` callback function type for
|
|
socket services.
|
|
* Added TLS 1.3 support for TLS sockets.
|
|
* Fixed socket leak when closing NSOS socket.
|
|
* Moved socket service library out of experimental.
|
|
* Deprecated ``CONFIG_NET_SOCKETS_POLL_MAX``.
|
|
* Moved ``zsock_poll()`` and ``zsock_select`` implementations into ``zvfs``
|
|
library.
|
|
* Removed ``work_q`` parameter from socket service macros as it was no longer
|
|
used.
|
|
* Separated native INET sockets implementation from socket syscalls so that
|
|
it doesn't have to be built when offloaded sockets are used.
|
|
* Fixed possible infinite block inside TLS socket :c:func:`zsock_connect` when
|
|
peer goes down silently.
|
|
* Fixed ``msg_controllen`` not being set correctly in :c:func:`zsock_recvmsg`.
|
|
* Fixed possible busy-looping when polling TLS socket for POLLOUT event.
|
|
|
|
* TCP:
|
|
|
|
* Fixed propagating connection errors to the socket layer.
|
|
* Improved ACK reply logic when peer does not send PSH flag with data.
|
|
|
|
* Websocket:
|
|
|
|
* Added support for Websocket console in the Echo Server sample.
|
|
* Fixed undefined reference to ``MSG_DONTWAIT`` while building websockets
|
|
without POSIX.
|
|
|
|
* Wi-Fi:
|
|
|
|
* Add a 80211R fast BSS transition argument usage to the wifi shell's connect command.
|
|
* Fixed the shell's ap config command using the sta interface area
|
|
* Added AP configuration cmd support to the NXP Wifi drivers
|
|
* Fixed the dormant state in the NXP WiFi driver to be set to off once a connection to an AP is achieved
|
|
|
|
* zperf:
|
|
|
|
* Added support for USB CDC NCM in the zperf sample.
|
|
* Fixed DHCPv4 client not being started in the zperf sample in certain
|
|
configurations.
|
|
|
|
USB
|
|
***
|
|
|
|
* New USB device stack:
|
|
|
|
* Added USB CDC Network Control Model implementation
|
|
* Enhanced USB Audio class 2 implementation
|
|
* Made USB device stack high-bandwidth aware
|
|
* Enhanced CDC ACM and HID class implementations
|
|
|
|
Devicetree
|
|
**********
|
|
|
|
* Added support for string-array and array type properties to be enums.
|
|
Many new macros added for this, for example :c:macro:`DT_ENUM_IDX_BY_IDX`.
|
|
* Added :c:macro:`DT_ANY_COMPAT_HAS_PROP_STATUS_OKAY`.
|
|
* Added :c:macro:`DT_NODE_HAS_STATUS_OKAY`.
|
|
* Added :c:macro:`DT_INST_NUM_IRQS`.
|
|
* Added macros :c:macro:`DT_NODE_FULL_NAME_UNQUOTED`, :c:macro:`DT_NODE_FULL_NAME_TOKEN`,
|
|
and :c:macro:`DT_NODE_FULL_NAME_UPPER_TOKEN`.
|
|
* ``DT_*_REG_ADDR`` now returns an explicit unsigned value with C's ``U`` suffix.
|
|
* Fixed escaping of double quotes, backslashes, and new line characters from DTS
|
|
so that they can be used in string properties.
|
|
* Renamed ``power-domain`` base property to ``power-domains``,
|
|
and introduced ``power-domain-names`` property. ``#power-domain-cells`` is now required as well.
|
|
* Moved the NXP Remote Domain Controller property to its own schema file
|
|
|
|
Kconfig
|
|
*******
|
|
|
|
Libraries / Subsystems
|
|
**********************
|
|
|
|
* Debug
|
|
|
|
* Added west runner for probe-rs, a Rust-based embedded toolkit.
|
|
|
|
* Demand Paging
|
|
|
|
* Added LRU (Least Recently Used) eviction algorithm.
|
|
|
|
* Added on-demand memory mapping support (:kconfig:option:`CONFIG_DEMAND_MAPPING`).
|
|
|
|
* Made demand paging SMP compatible.
|
|
|
|
* Management
|
|
|
|
* MCUmgr
|
|
|
|
* Added support for :ref:`mcumgr_smp_group_10`, which allows for listing information on
|
|
supported groups.
|
|
* Fixed formatting of milliseconds in :c:enum:`OS_MGMT_ID_DATETIME_STR` by adding
|
|
leading zeros.
|
|
* Added support for custom os mgmt bootloader info responses using notification hooks, this
|
|
can be enabled with :kconfig:option:`CONFIG_MCUMGR_GRP_OS_BOOTLOADER_INFO_HOOK`, the data
|
|
structure is :c:struct:`os_mgmt_bootloader_info_data`.
|
|
* Added support for img mgmt slot info command, which allows for listing information on
|
|
images and slots on the device.
|
|
* Added support for LoRaWAN MCUmgr transport, which can be enabled with
|
|
:kconfig:option:`CONFIG_MCUMGR_TRANSPORT_LORAWAN`.
|
|
|
|
* hawkBit
|
|
|
|
* :c:func:`hawkbit_autohandler` now takes one argument. If the argument is set to true, the
|
|
autohandler will reshedule itself after running. If the argument is set to false, the
|
|
autohandler will not reshedule itself. Both variants are scheduled independent of each other.
|
|
The autohandler always runs in the system workqueue.
|
|
|
|
* Use the :c:func:`hawkbit_autohandler_wait` function to wait for the autohandler to finish.
|
|
|
|
* Running hawkBit from the shell is now executed in the system workqueue.
|
|
|
|
* Use the :c:func:`hawkbit_autohandler_cancel` function to cancel the autohandler.
|
|
|
|
* Use the :c:func:`hawkbit_autohandler_set_delay` function to delay the next run of the
|
|
autohandler.
|
|
|
|
* The hawkBit header file was separated into multiple header files. The main header file is now
|
|
``<zephyr/mgmt/hawkbit/hawkbit.h>``, the autohandler header file is now
|
|
``<zephyr/mgmt/hawkbit/autohandler.h>`` and the configuration header file is now
|
|
``<zephyr/mgmt/hawkbit/config.h>``.
|
|
|
|
* Power management
|
|
|
|
* Added initial ESP32-C6 power management interface to allow light and deep-sleep features.
|
|
|
|
* Crypto
|
|
|
|
* Mbed TLS was updated to version 3.6.2 (from 3.6.0). The release notes can be found at:
|
|
|
|
* https://github.com/Mbed-TLS/mbedtls/releases/tag/mbedtls-3.6.1
|
|
* https://github.com/Mbed-TLS/mbedtls/releases/tag/mbedtls-3.6.2
|
|
|
|
* The Kconfig symbol :kconfig:option:`CONFIG_MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG_ALLOW_NON_CSPRNG`
|
|
was added to allow ``psa_get_random()`` to make use of non-cryptographically
|
|
secure random sources when :kconfig:option:`CONFIG_MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG`
|
|
is also enabled. This is only meant to be used for test purposes, not in production.
|
|
(:github:`76408`)
|
|
* The Kconfig symbol :kconfig:option:`CONFIG_MBEDTLS_TLS_VERSION_1_3` was added to
|
|
enable TLS 1.3 support from Mbed TLS. When this is enabled the following
|
|
new Kconfig symbols can also be enabled:
|
|
|
|
* :kconfig:option:`CONFIG_MBEDTLS_TLS_SESSION_TICKETS` to enable session tickets
|
|
(RFC 5077);
|
|
* :kconfig:option:`CONFIG_MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED`
|
|
for TLS 1.3 PSK key exchange mode;
|
|
* :kconfig:option:`CONFIG_MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED`
|
|
for TLS 1.3 ephemeral key exchange mode;
|
|
* :kconfig:option:`CONFIG_MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED`
|
|
for TLS 1.3 PSK ephemeral key exchange mode.
|
|
|
|
* SD
|
|
|
|
* No significant changes in this release
|
|
|
|
* Settings
|
|
|
|
* Settings has been extended to allow prioritizing the commit handlers using
|
|
``SETTINGS_STATIC_HANDLER_DEFINE_WITH_CPRIO(...)`` for static_handlers and
|
|
``settings_register_with_cprio(...)`` for dynamic_handlers.
|
|
|
|
* Shell:
|
|
|
|
* Reorganized the ``kernel threads`` and ``kernel stacks`` shell command under the
|
|
L1 ``kernel thread`` shell command as ``kernel thread list`` & ``kernel thread stacks``
|
|
* Added multiple shell command to configure the CPU mask affinity / pinning a thread in
|
|
runtime, do ``kernel thread -h`` for more info.
|
|
* ``kernel reboot`` shell command without any additional arguments will now do a cold reboot
|
|
instead of requiring you to type ``kernel reboot cold``.
|
|
|
|
* Storage
|
|
|
|
* LittleFS: The module has been updated with changes committed upstream
|
|
from version 2.8.1, the last module update, up to and including
|
|
the released version 2.9.3.
|
|
* Fixed static analysis error caused by mismatched variable assignment in NVS
|
|
|
|
* LittleFS: Fixed an issue where the DTS option for configuring block cycles for LittleFS instances
|
|
was ignored (:github:`79072`).
|
|
|
|
* LittleFS: Fixed issue with lookahead buffer size mismatch to actual allocated buffer size
|
|
(:github:`77917`).
|
|
|
|
* FAT FS: Added :kconfig:option:`CONFIG_FILE_SYSTEM_LIB_LINK` to allow linking file system
|
|
support libraries without enabling the File System subsystem. This option can be used
|
|
when a user wants to directly use file system libraries, bypassing the File System
|
|
subsystem.
|
|
|
|
* FAT FS: Added :kconfig:option:`CONFIG_FS_FATFS_LBA64` to enable support for the 64-bit LBA
|
|
and GPT in FAT file system driver.
|
|
|
|
* FAT FS: Added :kconfig:option:`CONFIG_FS_FATFS_MULTI_PARTITION` that enables support for
|
|
devices partitioned with GPT or MBR.
|
|
|
|
* FAT FS: Added :kconfig:option:`CONFIG_FS_FATFS_HAS_RTC` that enables RTC usage for time-stamping
|
|
files on FAT file systems.
|
|
|
|
* FAT FS: Added :kconfig:option:`CONFIG_FS_FATFS_EXTRA_NATIVE_API` that enables additional FAT
|
|
file system driver functions, which are not exposed via Zephyr File System subsystem,
|
|
for users that intend to directly call them in their code.
|
|
|
|
* Stream Flash: Fixed an issue where :c:func:`stream_flash_erase_page` did not properly check
|
|
the requested erase range and possibly allowed erasing any page on a device (:github:`79800`).
|
|
|
|
* Shell: Fixed an issue were a failed file system mount attempt using the shell would make it
|
|
impossible to ever succeed in mounting that file system again until the device was reset (:github:`80024`).
|
|
|
|
* :ref:`ZMS<zms_api>`: Introduction of a new storage system that is designed to work with all types of
|
|
non-volatile storage technologies. It supports classical on-chip NOR flash as well as
|
|
new technologies like RRAM and MRAM that do not require a separate erase operation at all.
|
|
|
|
* Task Watchdog
|
|
|
|
* Tracing
|
|
|
|
* Added support for a "user event" trace, with the purpose to allow driver or
|
|
application developers to quickly add tracing for events for debug purposes
|
|
|
|
* POSIX API
|
|
|
|
* Added support for the following Option Groups:
|
|
|
|
* :ref:`POSIX_DEVICE_IO <posix_option_group_device_io>`
|
|
* :ref:`POSIX_SIGNALS <posix_option_group_signals>`
|
|
|
|
* Added support for the following Options:
|
|
|
|
* :ref:`_POSIX_SYNCHRONIZED_IO <posix_option_synchronized_io>`
|
|
* :ref:`_POSIX_THREAD_PRIO_PROTECT <posix_option_thread_prio_protect>`
|
|
|
|
* :ref:`POSIX_FILE_SYSTEM <posix_option_group_file_system>` improvements:
|
|
|
|
* Support for :c:macro:`O_TRUNC` flag in :c:func:`open()`.
|
|
* Support for :c:func:`rmdir` and :c:func:`remove`.
|
|
|
|
* :ref:`_POSIX_THREAD_SAFE_FUNCTIONS <posix_option_thread_safe_functions>` improvements:
|
|
|
|
* Support for :c:func:`asctime_r`, :c:func:`ctime_r`, and :c:func:`localtime_r`.
|
|
|
|
* :ref:`POSIX_THREADS_BASE <posix_option_group_threads_base>` improvements:
|
|
|
|
* Use the :ref:`user mode semaphore API <semaphores_v2>` instead of the
|
|
:ref:`spinlock API <smp_arch>` for pool synchronization.
|
|
|
|
* LoRa/LoRaWAN
|
|
|
|
* ZBus
|
|
|
|
* JWT (JSON Web Token)
|
|
|
|
* The following new symbols were added to allow specifying both the signature
|
|
algorithm and crypto library:
|
|
|
|
* :kconfig:option:`CONFIG_JWT_SIGN_RSA_PSA` (default) RSA signature using the PSA Crypto API;
|
|
* :kconfig:option:`CONFIG_JWT_SIGN_RSA_LEGACY` RSA signature using Mbed TLS;
|
|
* :kconfig:option:`CONFIG_JWT_SIGN_ECDSA_PSA` ECDSA signature using the PSA Crypto API.
|
|
|
|
(:github:`79653`)
|
|
|
|
* Firmware
|
|
|
|
* Introduced basic support for ARM's System Control and Management Interface, which includes:
|
|
|
|
* Subset of clock management protocol commands
|
|
* Subset of pin control protocol commands
|
|
* Shared memory and mailbox-based transport
|
|
|
|
HALs
|
|
****
|
|
|
|
* Nordic
|
|
|
|
* Updated nrfx to version 3.7.0.
|
|
* Added OS agnostic parts of the nRF70 Wi-Fi driver.
|
|
|
|
* STM32
|
|
|
|
* Updated STM32C0 to cube version V1.2.0.
|
|
* Updated STM32F1 to cube version V1.8.6.
|
|
* Updated STM32F2 to cube version V1.9.5.
|
|
* Updated STM32F4 to cube version V1.28.1.
|
|
* Updated STM32G4 to cube version V1.6.0.
|
|
* Updated STM32H5 to cube version V1.3.0.
|
|
* Updated STM32H7 to cube version V1.11.2.
|
|
* Updated STM32H7RS to cube version V1.1.0.
|
|
* Added STM32U0 Cube package (1.1.0)
|
|
* Updated STM32U5 to cube version V1.6.0.
|
|
* Updated STM32WB to cube version V1.20.0.
|
|
* Added STM32WB0 Cube package (1.0.0)
|
|
* Updated STM32WBA to cube version V1.4.1.
|
|
|
|
* ADI
|
|
|
|
* Espressif
|
|
|
|
* Synced HAL to version v5.1.4 to update SoCs low level files, RF libraries and
|
|
overall driver support.
|
|
* NXP
|
|
|
|
* Updated the MCUX HAL to the SDK version 2.16.000
|
|
* Updated the NXP S32ZE HAL drivers to version 2.0.0
|
|
|
|
* Silabs
|
|
|
|
* Updated Series 2 to Simplicity SDK 2024.6, while Series 0/1 continue to use Gecko SDK 4.4.
|
|
|
|
MCUboot
|
|
*******
|
|
|
|
* Removed broken target config header feature.
|
|
* Removed ``image_index`` from ``boot_encrypt``.
|
|
* Renamed boot_enc_decrypt to boot_decrypt_key.
|
|
* Updated to use ``EXTRA_CONF_FILE`` instead of the deprecated ``OVERLAY_CONFIG`` argument.
|
|
* Updated ``boot_encrypt()`` to instead be ``boot_enc_encrypt()`` and ``boot_enc_decrypt()``.
|
|
* Updated ``boot_enc_valid`` to take slot instead of image index.
|
|
* Updated ``boot_enc_load()`` to take slot number instead of image.
|
|
* Updated logging to debug level in boot_serial.
|
|
* Updated Kconfig to allow disabling NRFX_WDT on nRF devices.
|
|
* Updated CMake ERROR statements into FATAL_ERROR.
|
|
* Added application version that is being booted output prior to booting it.
|
|
* Added sysbuild support to the hello-world sample.
|
|
* Added SIG_PURE TLV to bootutil.
|
|
* Added write block size checking to bootutil.
|
|
* Added check for unexpected flash sector size.
|
|
* Added SHA512 support to MCUboot code and support for calculating SHA512 hash in imgtool.
|
|
* Added fallback to USB DFU option.
|
|
* Added better mode selection checks to bootutil.
|
|
* Added bootutil protected TLV size to image size check.
|
|
* Added functionality to remove images with conflicting flags or where features are required
|
|
that are not supported.
|
|
* Added compressed image flags and TLVs to MCUboot, Kconfig options and support for generating
|
|
compressed LZMA2 images with ARM thumb filter to imgtool.
|
|
* Added image header verification before checking image.
|
|
* Added state to ``boot_is_header_valid()`` function.
|
|
* Added ``CONFIG_MCUBOOT_ENC_BUILTIN_KEY`` Kconfig option.
|
|
* Added non-bootable flag to imgtool.
|
|
* Added zephyr prefix to generated header path.
|
|
* Added optional img mgmt slot info feature.
|
|
* Added bootutil support for maximum image size details for additional images.
|
|
* Added support for automatically calculating max sectors.
|
|
* Added missing ``boot_enc_init()`` function.
|
|
* Added support for keeping image encrypted in scratch area in bootutil.
|
|
* Fixed serial recovery for NXP IMX.RT, LPC55x and MCXNx platforms
|
|
* Fixed issue with public RSA signing in imgtool.
|
|
* Fixed issue with ``boot_serial_enter()`` being defined but not used warning.
|
|
* Fixed issue with ``main()`` in sample returning wrong type warning.
|
|
* Fixed issue with using pointers in bootutil.
|
|
* Fixed wrong usage of slot numbers in boot_serial.
|
|
* Fixed slot info for directXIP/RAM load in bootutil.
|
|
* Fixed bootutil issue with not zeroing AES and SHA-256 contexts with mbedTLS.
|
|
* Fixed boot_serial ``format`` and ``incompatible-pointer-types`` warnings.
|
|
* Fixed bootutil wrong definition of ``find_swap_count``.
|
|
* Fixed bootutil swap move max app size calculation.
|
|
* Fixed imgtool issue where getpub failed for ed25519 key.
|
|
* Fixed issue with sysbuild if something else is named mcuboot.
|
|
* Fixed RAM load chain load address.
|
|
* Fixed issue with properly retrieving image headers after interrupted swap-scratch in bootutil.
|
|
* The MCUboot version in this release is version ``2.1.0+0-dev``.
|
|
* Add the following nxp boards as test targets area: ``frdm_ke17z``, ``frdm_ke17z512``,
|
|
``rddrone_fmuk66``, ``twr_ke18f``, ``frdm_mcxn947/mcxn947/cpu0``
|
|
|
|
OSDP
|
|
****
|
|
|
|
Trusted Firmware-M (TF-M)
|
|
*************************
|
|
|
|
* TF-M was updated to version 2.1.1 (from 2.1.0).
|
|
The release notes can be found at: https://trustedfirmware-m.readthedocs.io/en/tf-mv2.1.1/releases/2.1.1.html
|
|
|
|
Nanopb
|
|
******
|
|
|
|
* Updated the nanopb module to version 0.4.9.
|
|
Full release notes at https://github.com/nanopb/nanopb/blob/0.4.9/CHANGELOG.txt
|
|
|
|
LVGL
|
|
****
|
|
|
|
* Added definition of ``LV_ATTRIBUTE_MEM_ALIGN`` so library internal data structures can be aligned
|
|
to a specific boundary.
|
|
* Provided alignment definition to accommodate the alignment requirement of some GPU's
|
|
|
|
zcbor
|
|
*****
|
|
|
|
* Updated the zcbor library to version 0.9.0.
|
|
Full release notes at https://github.com/NordicSemiconductor/zcbor/blob/0.9.0/RELEASE_NOTES.md
|
|
Migration guide at https://github.com/NordicSemiconductor/zcbor/blob/0.9.0/MIGRATION_GUIDE.md
|
|
Highlights:
|
|
|
|
* Many code generation bugfixes
|
|
|
|
* You can now decide at run-time whether the decoder should enforce canonical encoding.
|
|
|
|
* Allow --file-header to accept a path to a file with header contents
|
|
|
|
Tests and Samples
|
|
*****************
|
|
|
|
* Together with the deprecation of :ref:`native_posix<native_posix>`, many tests which were
|
|
explicitly run in native_posix now run in :ref:`native_sim<native_sim>` instead.
|
|
native_posix as a platform remains tested though.
|
|
* Extended the tests of counter_basic_api with a testcase for counters without alarms
|
|
* Added support for testing SDMMC devices to the fatfs API test
|
|
* Extended net/vlan to add IPv6 prefix config to each vlan-iface
|
|
* Enhanced the camera fixture test by adding a color bar to enable automation
|
|
* Added a number crunching (maths such as FFT, echo cancellation) sample using an optimized
|
|
library for the NXP ADSP board
|
|
* Tailored the SPI_LOOPBACK test to the limitations of NXP Kinetis MCU's
|
|
* Enabled the video sample to run video capture (samples/drivers/video)
|
|
|
|
* Added :zephyr:code-sample:`smf_calculator` sample demonstrating the usage of the State Machine framework
|
|
in combination with LVGL to create a simple calculator application.
|
|
* Consolidated display sample where possible to use a single testcase for all shields
|
|
|
|
Issue Related Items
|
|
*******************
|
|
|
|
Known Issues
|
|
============
|
|
|
|
- :github:`71042` stream_flash: stream_flash_init() size parameter allows to ignore partition layout
|
|
- :github:`67407` stream_flash: stream_flash_erase_page allows to accidentally erase stream
|
|
- :github:`80875` stepper_api: incorrect c-prototype stepper.h and absence of NULL check stepper_shell.c
|