| :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 |