Part 1
요약·해설
2,042줄 공식 원문 전체, 목록형 변경 항목 1,068개, CVE 12건과 GitHub 참조 27건을 빠짐없이 번역하며 symbol·Kconfig·Devicetree compatible·source path를 원형대로 보존합니다.
Hardware model v2 · HTTP Server · Sensor read/decode · LLEXT EDK
LTS · TF-M 2.1.0 · Mbed TLS 3.6.0 · PSA Crypto
POSIX · Bluetooth profiles · native_sim · PTP · VS Code · CLion
Part 2
접을 수 있는 영어 원문 전체
영어 원문 전체 펼치기
D6B5118EE1C38D8C2925C109A0D7432A8256C4E70BAFDDE5BC7D07F3009891E3
:orphan:
.. _zephyr_3.7:
Zephyr 3.7.0
############
We are pleased to announce the release of Zephyr version 3.7.0.
This release is the last non-maintenance 3.x release and, as such, will be the next
:ref:`Long Term Support (LTS) release <release_process_lts>`.
Major enhancements with this release include:
* A new, completely :ref:`overhauled hardware model <hw_model_v2>` has been introduced.
It changes the way both SoCs and boards are named, defined and constructed in Zephyr.
Additional information can be found in the :ref:`board_porting_guide`.
* A long-awaited :ref:`HTTP Server <http_server_interface>` library, and associated service API,
allow to easily implement HTTP/1.1 and HTTP/2 servers in Zephyr. Resources can be registered
statically or dynamically, and WebSocket support is included.
* :ref:`POSIX support <posix_support>` has been extended, with most Options of the IEEE 1003-2017
:ref:`System Interfaces <posix_system_interfaces_required>` receiving support, as well as most
Options and Option groups required for :ref:`PSE51 <posix_aep_pse51>`,
:ref:`PSE52 <posix_aep_pse52>`, and :ref:`PSE53 <posix_aep_pse53>`.
* Bluetooth Host has been extended with support for the Nordic UART Service (NUS), Hands-free Audio
Gateway (AG), Advanced Audio Distribution Profile (A2DP), and Audio/Video Distribution Transport
Protocol (AVDTP).
* Sensor abstraction model has been overhauled to adopt a
:ref:`read-then-decode approach <sensor-read-and-decode>` that enables more types of sensors and
data flows than the previous fetch/get APIs.
* A new :ref:`LLEXT Extension Developer Kit (EDK) <llext_build_edk>` makes it easier to develop and
integrate custom extensions into Zephyr, including outside of the Zephyr tree.
* :ref:`Native simulator <native_sim>` now supports leveraging the native host networking stack
without having to rely on a complex setup of the host environment.
* Trusted Firmware-M (TF-M) 2.1.0 and Mbed TLS 3.6.0 have been integrated into Zephyr.
Both of these versions are LTS releases. What's more, :ref:`psa_crypto` has been adopted as a replacement
for TinyCrypt and provides enhanced security and performance.
* A new experimental implementation of the :ref:`Precision Time Protocol <ptp_interface>` (PTP, IEEE
1588) allows to synchronize time across devices with sub-microsecond accuracy.
* New documentation pages have been introduced to help developers setup their local development
environment for :ref:`vscode_ide` and :ref:`clion_ide`.
An overview of the changes required or recommended when migrating your application from Zephyr
v3.6.0 to Zephyr v3.7.0 can be found in the separate :ref:`migration guide<migration_3.7>`.
While you may refer to release notes from previous 3.x releases for a full change log, other major
enhancements and changes since previous LTS release, Zephyr 2.7.0, include:
* Added support for Picolibc as the new default C library.
* Added support for the following types of hardware peripherals:
* 1-Wire
* Battery Charger
* Cellular Modem
* Fuel Gauge
* GNSS
* Hardware Spinlock
* I3C
* RTC (Real Time Clock)
* SMBus
* Added support for snippets. Snippets are common configuration settings that can be used across
platforms.
* Added support for Linkable Loadable Extensions (LLEXT).
* Summary of breaking changes (refer to release notes and migration guides from previous release
notes for more details):
* All Zephyr public headers have been moved to :file:`include/zephyr`, meaning they need to be
prefixed with ``<zephyr/...>`` when included.
* Pinmux API has been removed. Pin control needs to be used as its replacement, refer to
:ref:`pinctrl-guide` for more details.
* The following deprecated or experimental features have been removed:
* 6LoCAN
* civetweb module. See Zephyr 3.7's new :ref:`http_server_interface` as a replacement.
* tinycbor module. You may use zcbor as a replacement.
The following sections provide detailed lists of changes by component.
Security Vulnerability Related
******************************
The following CVEs are addressed by this release:
More detailed information can be found in:
https://docs.zephyrproject.org/latest/security/vulnerabilities.html
* CVE-2024-3077 `Zephyr project bug tracker GHSA-gmfv-4vfh-2mh8
<https://github.com/zephyrproject-rtos/zephyr/security/advisories/GHSA-gmfv-4vfh-2mh8>`_
* CVE-2024-3332 `Zephyr project bug tracker GHSA-jmr9-xw2v-5vf4
<https://github.com/zephyrproject-rtos/zephyr/security/advisories/GHSA-jmr9-xw2v-5vf4>`_
* CVE-2024-4785: Under embargo until 2024-08-07
* CVE-2024-5754: Under embargo until 2024-09-04
* CVE-2024-5931: Under embargo until 2024-09-10
* CVE-2024-6135: Under embargo until 2024-09-11
* CVE-2024-6137: Under embargo until 2024-09-11
* CVE-2024-6258: Under embargo until 2024-09-05
* CVE-2024-6259: Under embargo until 2024-09-12
* CVE-2024-6442: Under embargo until 2024-09-22
* CVE-2024-6443: Under embargo until 2024-09-22
* CVE-2024-6444: Under embargo until 2024-09-22
API Changes
***********
Removed APIs in this release
============================
* The Bluetooth subsystem specific debug symbols are removed. They have been replaced with the
Zephyr logging ones.
* Removed deprecated ``pcie_probe`` and ``pcie_bdf_lookup`` functions from the PCIe APIs.
* Removed deprecated ``CONFIG_EMUL_EEPROM_AT2X`` Kconfig option.
* Removed ``pm_device_state_lock``, ``pm_device_state_is_locked`` and ``pm_device_state_unlock``
functions from the Device PM APIs.
* Removed deprecated MCUmgr transport API functions: ``zephyr_smp_rx_req``,
``zephyr_smp_alloc_rsp`` and ``zephyr_smp_free_buf``.
Deprecated in this release
==========================
* Bluetooth advertiser options :code:`BT_LE_ADV_OPT_USE_NAME` and
:code:`BT_LE_ADV_OPT_FORCE_NAME_IN_AD` are now deprecated. That means the following macro are
deprecated:
* :c:macro:`BT_LE_ADV_CONN_NAME`
* :c:macro:`BT_LE_ADV_CONN_NAME_AD`
* :c:macro:`BT_LE_ADV_NCONN_NAME`
* :c:macro:`BT_LE_EXT_ADV_CONN_NAME`
* :c:macro:`BT_LE_EXT_ADV_SCAN_NAME`
* :c:macro:`BT_LE_EXT_ADV_NCONN_NAME`
* :c:macro:`BT_LE_EXT_ADV_CODED_NCONN_NAME`
Application developers will now need to set the advertised name themselves by updating the
advertising data or the scan response data.
* CAN
* Deprecated the :c:func:`can_calc_prescaler` API function, as it allows for bitrate
errors. Bitrate errors between nodes on the same network leads to them drifting apart after the
start-of-frame (SOF) synchronization has taken place, leading to bus errors.
* Deprecated the :c:func:`can_get_min_bitrate` and :c:func:`can_get_max_bitrate` API functions in
favor of :c:func:`can_get_bitrate_min` and :c:func:`can_get_bitrate_max`.
* Deprecated the :c:macro:`CAN_MAX_STD_ID` and :c:macro:`CAN_MAX_EXT_ID` macros in favor of
:c:macro:`CAN_STD_ID_MASK` and :c:macro:`CAN_EXT_ID_MASK`.
* PM
* Deprecated :kconfig:option:`CONFIG_PM_DEVICE_RUNTIME_EXCLUSIVE`. Similar behavior can be achieved
using :kconfig:option:`CONFIG_PM_DEVICE_SYSTEM_MANAGED`.
.. _zephyr_3.7_posix_api_deprecations:
* POSIX API
* Deprecated :c:macro:`PTHREAD_BARRIER_DEFINE` has been removed.
* Deprecated :c:macro:`EFD_IN_USE` and :c:macro:`EFD_FLAGS_SET` have been removed.
* In efforts to use Kconfig options that map directly to the Options and Option Groups in
IEEE 1003.1-2017, the following Kconfig options have been deprecated (replaced by):
* :kconfig:option:`CONFIG_EVENTFD_MAX` (:kconfig:option:`CONFIG_ZVFS_EVENTFD_MAX`)
* :kconfig:option:`CONFIG_FNMATCH` (:kconfig:option:`CONFIG_POSIX_C_LIB_EXT`)
* :kconfig:option:`CONFIG_GETOPT` (:kconfig:option:`CONFIG_POSIX_C_LIB_EXT`)
* :kconfig:option:`CONFIG_MAX_PTHREAD_COUNT` (:kconfig:option:`CONFIG_POSIX_THREAD_THREADS_MAX`)
* :kconfig:option:`CONFIG_MAX_PTHREAD_KEY_COUNT` (:kconfig:option:`CONFIG_POSIX_THREAD_KEYS_MAX`)
* :kconfig:option:`CONFIG_MAX_TIMER_COUNT` (:kconfig:option:`CONFIG_POSIX_TIMER_MAX`)
* :kconfig:option:`CONFIG_POSIX_LIMITS_RTSIG_MAX` (:kconfig:option:`CONFIG_POSIX_RTSIG_MAX`)
* :kconfig:option:`CONFIG_POSIX_CLOCK` (:kconfig:option:`CONFIG_POSIX_CLOCK_SELECTION`,
:kconfig:option:`CONFIG_POSIX_CPUTIME`, :kconfig:option:`CONFIG_POSIX_MONOTONIC_CLOCK`,
:kconfig:option:`CONFIG_POSIX_TIMERS`, and :kconfig:option:`CONFIG_POSIX_TIMEOUTS`)
* :kconfig:option:`CONFIG_POSIX_FS` (:kconfig:option:`CONFIG_POSIX_FILE_SYSTEM`)
* :kconfig:option:`CONFIG_POSIX_MAX_FDS` (:kconfig:option:`CONFIG_POSIX_OPEN_MAX` and
:kconfig:option:`CONFIG_ZVFS_OPEN_MAX`)
* :kconfig:option:`CONFIG_POSIX_MAX_OPEN_FILES` (:kconfig:option:`CONFIG_POSIX_OPEN_MAX` and
:kconfig:option:`CONFIG_ZVFS_OPEN_MAX`)
* :kconfig:option:`CONFIG_POSIX_MQUEUE` (:kconfig:option:`CONFIG_POSIX_MESSAGE_PASSING`)
* :kconfig:option:`CONFIG_POSIX_PUTMSG` (:kconfig:option:`CONFIG_XOPEN_STREAMS`)
* :kconfig:option:`CONFIG_POSIX_SIGNAL` (:kconfig:option:`CONFIG_POSIX_SIGNALS`)
* :kconfig:option:`CONFIG_POSIX_SYSCONF` (:kconfig:option:`CONFIG_POSIX_SINGLE_PROCESS`)
* :kconfig:option:`CONFIG_POSIX_UNAME` (:kconfig:option:`CONFIG_POSIX_SINGLE_PROCESS`)
* :kconfig:option:`CONFIG_PTHREAD` (:kconfig:option:`CONFIG_POSIX_THREADS`)
* :kconfig:option:`CONFIG_PTHREAD_BARRIER` (:kconfig:option:`CONFIG_POSIX_BARRIERS`)
* :kconfig:option:`CONFIG_PTHREAD_COND` (:kconfig:option:`CONFIG_POSIX_THREADS`)
* :kconfig:option:`CONFIG_PTHREAD_IPC` (:kconfig:option:`CONFIG_POSIX_THREADS`)
* :kconfig:option:`CONFIG_PTHREAD_KEY` (:kconfig:option:`CONFIG_POSIX_THREADS`)
* :kconfig:option:`CONFIG_PTHREAD_MUTEX` (:kconfig:option:`CONFIG_POSIX_THREADS`)
* :kconfig:option:`CONFIG_PTHREAD_RWLOCK` (:kconfig:option:`CONFIG_POSIX_READER_WRITER_LOCKS`)
* :kconfig:option:`CONFIG_PTHREAD_SPINLOCK` (:kconfig:option:`CONFIG_POSIX_SPIN_LOCKS`)
* :kconfig:option:`CONFIG_SEM_NAMELEN_MAX` (:kconfig:option:`CONFIG_POSIX_SEM_NAMELEN_MAX`)
* :kconfig:option:`CONFIG_SEM_VALUE_MAX` (:kconfig:option:`CONFIG_POSIX_SEM_VALUE_MAX`)
* :kconfig:option:`CONFIG_TIMER` (:kconfig:option:`CONFIG_POSIX_TIMERS`)
* :kconfig:option:`CONFIG_TIMER_DELAYTIMER_MAX` (:kconfig:option:`CONFIG_POSIX_DELAYTIMER_MAX`)
Please see the :ref:`POSIX API migration guide <zephyr_3.7_posix_api_migration>`.
* SPI
* Deprecated :c:func:`spi_is_ready` API function has been removed.
* Deprecated :c:func:`spi_transceive_async` API function has been removed.
* Deprecated :c:func:`spi_read_async` API function has been removed.
* Deprecated :c:func:`spi_write_async` API function has been removed.
Architectures
*************
* ARC
* Added ARC MWDT toolchain support for ARC-V targets
* Added HW memory barrier API support for multicore targets
* Enabled TLS by default if C++ is used in case of ARC MWDT toolchain
* Fixed the issue when mbedtls failed to build with ARC MWDT toolchain & minimal LibC due to
incorrect define which mark support of bounds-checking interfaces C library extension
* Fixed device deferred initialization in case of ARC MWDT toolchain
* ARM
* Added initial support for Cortex-M85 Core
* ARM64
* Implemented symbol names in the backtraces, enable by selecting :kconfig:option:`CONFIG_SYMTAB`
* Add compiler tuning for Cortex-R82
* RISC-V
* The fatal error message triggered from a fault now contains the callee-saved-registers states.
* Implemented stack unwinding
* Frame-pointer can be selected to enable precise stack traces at the expense of slightly
increased size and decreased speed.
* Symbol names can be enabled by selecting :kconfig:option:`CONFIG_EXCEPTION_STACK_TRACE_SYMTAB`
* Xtensa
* Added support to save/restore HiFi AudioEngine registers.
* Added support to utilize MPU.
* Added support to automatically generate interrupt handlers.
* Added support to generate vector table at build time to be included in the linker script.
* Added kconfig :kconfig:option:`CONFIG_XTENSA_BREAK_ON_UNRECOVERABLE_EXCEPTIONS` to guard
using break instruction for unrecoverable exceptions. Enabling the break instruction via
this kconfig may result in an infinite interrupt storm which may hinder debugging efforts.
* Fixed an issue where passing the 7th argument via syscall was handled incorrectly.
* Fixed an issue where :c:func:`arch_user_string_nlen` accessing unmapped memory resulted
in an unrecoverable exception.
Kernel
******
* Added :c:func:`k_uptime_seconds` function to simplify ``k_uptime_get() / 1000`` usage.
* Added :c:func:`k_realloc`, that uses kernel heap to implement traditional :c:func:`realloc`
semantics.
* Devices can now store devicetree metadata such as nodelabels by turning on
:kconfig:option:`CONFIG_DEVICE_DT_METADATA`. This option may be useful in
e.g. shells as devices can be obtained using human-friendly names thanks to
APIs like :c:func:`device_get_by_dt_nodelabel`.
* Any device initialization can be deferred if its associated devicetree node
has the special ``zephyr,deferred-init`` property set. The device can be
initialized later in time by using :c:func:`device_init`.
* The declaration of statically allocated thread stacks has been updated to utilize
:c:macro:`K_THREAD_STACK_LEN` for both single thread stack declaration and array thread
stack declarations. This ensures correct alignment for all thread stacks. For user
threads, this may increase the size of the statically allocated stack objects depending
on architecture alignment requirements.
* Fix an edge case deadlock in :c:func:`k_thread_abort` (and join)
where racing ISRs on SMP systems could become stuck spinning to
signal each other's interrupted threads.
* Fix a bug where :kconfig:option:`CONFIG_SCHED_SCALABLE` and
:kconfig:option:`CONFIG_SCHED_DEADLINE` would corrupt the
scheduling queue when used together.
Bluetooth
*********
* Audio
* Removed ``err`` from :c:struct:`bt_bap_broadcast_assistant_cb.recv_state_removed` as it was
redundant.
* The broadcast_audio_assistant sample has been renamed to bap_broadcast_assistant.
The broadcast_audio_sink sample has been renamed to bap_broadcast_sink.
The broadcast_audio_source sample has been renamed to bap_broadcast_source.
The unicast_audio_client sample has been renamed to bap_unicast_client.
The unicast_audio_server sample has been renamed to bap_unicast_server.
The public_broadcast_sink sample has been renamed to pbp_public_broadcast_sink.
The public_broadcast_source sample has been renamed to pbp_public_broadcast_source.
* The CAP Commander and CAP Initiator now no longer require CAS to be discovered for
:code:`BT_CAP_SET_TYPE_AD_HOC` sets. This allows applications to use these APIs on e.g.
BAP Unicast Servers that do not implement the CAP Acceptor role.
* Host
* Added Nordic UART Service (NUS), enabled by the :kconfig:option:`CONFIG_BT_ZEPHYR_NUS`.
This Service exposes the ability to declare multiple instances of the GATT service,
allowing multiple serial endpoints to be used for different purposes.
* Implemented Hands-free Audio Gateway (AG), enabled by the :kconfig:option:`CONFIG_BT_HFP_AG`.
It works as a device that is the gateway of the audio. The typical device acting as Audio
Gateway is a cellular phone. It controls the device (Hands-free Unit), that is the remote
audio input and output mechanism.
* Implemented Advanced Audio Distribution Profile (A2DP) and Audio/Video Distribution Transport
Protocol (AVDTP), A2DP is enabled by :kconfig:option:`CONFIG_BT_A2DP`, AVDTP is enabled
by :kconfig:option:`CONFIG_BT_AVDTP`. They implement the protocols and procedures that
realize distribution of audio content of high quality in mono, stereo, or multi-channel modes.
A typical use case is the streaming of music content from a stereo music player to headphones
or speakers. The audio data is compressed in a proper format for efficient use of the limited
bandwidth.
* Reworked the transmission path for data and commands. The "BT TX" thread has been removed, along
with the buffer pools for HCI fragments and L2CAP segments. All communication with the
Controller is now exclusively done in the system workqueue context.
* :kconfig:option:`CONFIG_BT_PER_ADV_SYNC_TRANSFER_RECEIVER` and
:kconfig:option:`CONFIG_BT_PER_ADV_SYNC_TRANSFER_SENDER` now depend on
:kconfig:option:`CONFIG_BT_CONN` as they do not work without connections.
* Improve :c:func:`bt_foreach_bond` to support Bluetooth Classic key traversal.
* HCI Drivers
* Completely redesigned HCI driver interface. See the Bluetooth HCI section in
:ref:`migration_3.7` for more information.
* Added support for Ambiq Apollo3 Blue series.
* Added support for NXP RW61x.
* Added support for Infineon CYW208XX.
* Added support for Renesas SmartBond DA1469x.
* Removed unmaintained B91 driver.
* Added support for NXP IW612 on boards mimxrt1170_evkb and mimxrt1040_evk.
It can be enabled by :kconfig:option:`CONFIG_BT_NXP_NW612`.
Boards & SoC Support
********************
* Added support for these SoC series:
* Added support for Ambiq Apollo3 Blue and Apollo3 Blue Plus SoC series.
* Added support for Synopsys ARC-V RMX1xx simulation platform.
* Added support for STM32H7R/S SoC series.
* Added support for NXP mke15z7, mke17z7, mke17z9, MCXNx4x, RW61x
* Added support for Analog Devices MAX32 SoC series.
* Added support for Infineon Technologies AIROC |trade| CYW20829 Bluetooth LE SoC series.
* Added support for MediaTek MT8195 Audio DSPs
* Added support for Nuvoton Numaker M2L31X SoC series.
* Added support for the Microchip PolarFire ICICLE Kit SMP variant.
* Added support for Renesas RA8 series SoC.
* Made these changes in other SoC series:
* Intel ACE Audio DSP: Use dedicated registers to report boot status instead of arbitrary memory.
* ITE: Rename the Kconfig symbol for all ITE SoC variants.
* STM32: Enabled ART Accelerator, I-cache, D-cache and prefetch on compatible series.
* STM32H5: Added support for Stop mode and :kconfig:option:`CONFIG_PM`.
* STM32WL: Decreased Sub-GHz SPI frequency from 12 to 8MHz.
* STM32C0: Added support for :kconfig:option:`CONFIG_POWEROFF`.
* STM32U5: Added support for Stop3 mode.
* Synopsys:
* nsim: split nsim platform for arc_classic (ARCv2 and ARCv3 ISA based) and arc_v (RISC-V ISA based)
* nsim/nsim_hs5x/smp: align sys clock frequency with other SMP nSIM configs
* NXP IMX8M: added resource domain controller support
* NXP s32k146: set RTC clock source to internal oscillator
* GD32F4XX: Fixed an incorrect uart4 irq number.
* Nordic nRF54L: Added support for the FLPR (fast lightweight processor) RISC-V CPU.
* Espressif: Removed idf-bootloader dependency from all ESP32 SoC variants.
* Espressif: Added Simple boot support for ESP32 SoC variants, which allows loading application
using a single binary image without a 2nd stage bootloader.
* Espressif: Re-worked and optimized all SoCs memory map.
* LiteX:
* Added support for :c:func:`sys_arch_reboot()`.
* :kconfig:option:`CONFIG_RISCV_ISA_EXT_A` is no longer erroneously y-selected.
* rp2040: The proprietary UART driver has been discontinued and replaced with PL011.
* Renesas RZ/T2M: Added default values for System Clock Control register.
* Added support for these boards:
* Added support for :ref:`Ambiq Apollo3 Blue board <apollo3_evb>`: ``apollo3_evb``.
* Added support for :ref:`Ambiq Apollo3 Blue Plus board <apollo3p_evb>`: ``apollo3p_evb``.
* Added support for :ref:`Raspberry Pi 5 board <rpi_5>`: ``rpi_5``.
* Added support for :ref:`Seeed Studio XIAO RP2040 board <xiao_rp2040>`: ``xiao_rp2040``.
* Added support for :ref:`Mikroe RA4M1 Clicker board <mikroe_clicker_ra4m1>`: ``mikroe_clicker_ra4m1``.
* Added support for :ref:`Arduino UNO R4 WiFi board <arduino_uno_r4>`: ``arduino_uno_r4_wifi``.
* Added support for :ref:`Renesas EK-RA8M1 board <ek_ra8m1>`: ``ek_ra8m1``.
* Added support for :ref:`ST Nucleo H533RE <nucleo_h533re_board>`: ``nucleo_h533re``.
* Added support for :ref:`ST STM32C0116-DK Discovery Kit <stm32c0116_dk_board>`: ``stm32c0116_dk``.
* Added support for :ref:`ST STM32H745I Discovery <stm32h745i_disco_board>`: ``stm32h745i_disco``.
* Added support for :ref:`ST STM32H7S78-DK Discovery <stm32h7s78_dk_board>`: ``stm32h7s78_dk``.
* Added support for :ref:`ST STM32L152CDISCOVERY board <stm32l1_disco_board>`: ``stm32l152c_disco``.
* Added support for :ref:`ST STEVAL STWINBX1 Development kit <steval_stwinbx1_board>`: ``steval_stwinbx1``.
* Added support for NXP boards: ``frdm_mcxn947``, ``ke17z512``, ``rd_rw612_bga``, ``frdm_rw612``, ``frdm_ke15z``, ``frdm_ke17z``
* Added support for :ref:`Synopsys ARC-V RMX1xx nSIM-based simulation platform <nsim_arc_v>`: ``nsim_arc_v/rmx100``.
* Added support for :ref:`Analog Devices MAX32690EVKIT <max32690_evkit>`: ``max32690evkit``.
* Added support for :ref:`Analog Devices MAX32680EVKIT <max32680_evkit>`: ``max32680evkit``.
* Added support for :ref:`Analog Devices MAX32672EVKIT <max32672_evkit>`: ``max32672evkit``.
* Added support for :ref:`Analog Devices MAX32672FTHR <max32672_fthr>`: ``max32672fthr``.
* Added support for :ref:`Analog Devices MAX32670EVKIT <max32670_evkit>`: ``max32670evkit``.
* Added support for :ref:`Analog Devices MAX32655EVKIT <max32655_evkit>`: ``max32655evkit``.
* Added support for :ref:`Analog Devices MAX32655FTHR <max32655_fthr>`: ``max32655fthr``.
* Added support for :ref:`Analog Devices AD-APARD32690-SL <ad_apard32690_sl>`: ``ad_apard32690_sl``.
* Added support for :ref:`Infineon Technologies CYW920829M2EVK-02 <cyw920829m2evk_02>`: ``cyw920829m2evk_02``.
* Added support for :ref:`Nuvoton Numaker M2L31KI board <nuvoton_m2l31ki>`: ``numaker_m2l31ki``.
* Added support for :ref:`Espressif ESP32-S2 DevKit-C <esp32s2_devkitc>`: ``esp32s2_devkitc``.
* Added support for :ref:`Espressif ESP32-S3 DevKit-C <esp32s3_devkitc>`: ``esp32s3_devkitc``.
* Added support for :ref:`Espressif ESP32-C6 DevKit-C <esp32c6_devkitc>`: ``esp32c6_devkitc``.
* Added support for :ref:`Waveshare ESP32-S3-Touch-LCD-1.28 <esp32s3_touch_lcd_1_28>`: ``esp32s3_touch_lcd_1_28``.
* Added support for :ref:`M5Stack ATOM Lite <m5stack_atom_lite>`: ``m5stack_atom_lite``.
* Added support for :ref:`CTHINGS.CO Connectivity Card nRF52840 <ctcc_nrf52840>`: ``ctcc_nrf52840``.
* Made these board changes:
* On :ref:`ST STM32H7B3I Discovery Kit <stm32h7b3i_dk_board>`: ``stm32h7b3i_dk_board``,
enabled full cache management, Chrom-ART, double frame buffer and full refresh for
optimal LVGL performance.
* On ST STM32 boards, stm32cubeprogrammer runner can now be used to program external
flash using ``--extload`` option.
* Add HEX file support for Linkserver to all NXP boards
* Updated the Linkserver west runner to reflect changes to the CLI of LinkServer v1.5.xx
* Add LinkServer support to NXP ``mimxrt1010_evk``, ``mimxrt1160_evk``, ``frdm_rw612``, ``rd_rw612_bga``, ``frdm_mcxn947``
* Introduced the simulated :ref:`nrf54l15bsim<nrf54l15bsim>` target.
* The nrf5x bsim targets now support BT LE Coded PHY.
* LLVM fuzzing support has been refactored while adding support for it in native_sim.
* nRF54H20 PDK (pre-release) converted to :ref:`nrf54h20dk_nrf54h20`
* PPR core target in :ref:`nrf54h20dk_nrf54h20` runs from RAM by default. A
new ``xip`` variant has been introduced which runs from MRAM (XIP).
* Refactored :ref:`beagleconnect_freedom` external antenna switch handling.
* Added Arduino dts node labels for the nRF5340 Audio DK.
* Changed the default revision of the nRF54L15 PDK from 0.2.1 to 0.3.0.
* In boards based on the nRF5340 SoC, replaced direct accesses to the register
that controls the network core Force-OFF signal with a module that uses an
on-off manager to keep track of the network core use and exposes its API
in ``<nrf53_cpunet_mgmt.h>``.
* Laird Connectivity boards are rebranded to Ezurio.
* Added support for the following shields:
* :ref:`adafruit_2_8_tft_touch_v2` (``adafruit_2_8_tft_touch_v2``)
* :ref:`adafruit_neopixel_grid_bff` (``adafruit_neopixel_grid_bff``)
* :ref:`arduino_uno_click` (``arduino_uno_click``)
* :ref:`dvp_fpc24_mt9m114` (``dvp_fpc24_mt9m114``)
* :ref:`lcd_par_s035` (``lcd_par_s035``)
* :ref:`mikroe_weather_click` (``mikroe_weather_click``)
* :ref:`nxp_btb44_ov5640` (``nxp_btb44_ov5640``)
* :ref:`reyax_lora` (``reyax_lora``)
* :ref:`rk043fn02h_ct` (``rk043fn02h_ct``)
* :ref:`rk043fn66hs_ctg` (``rk043fn66hs_ctg``)
* :ref:`rpi_pico_uno_flexypin` (``rpi_pico_uno_flexypin``)
* :ref:`seeed_xiao_expansion_board` (``seeed_xiao_expansion_board``)
* :ref:`seeed_xiao_round_display` (``seeed_xiao_round_display``)
* :ref:`sparkfun_carrier_asset_tracker` (``sparkfun_carrier_asset_tracker``)
* :ref:`st_b_lcd40_dsi1_mb1166` (``st_b_lcd40_dsi1_mb1166``)
* :ref:`waveshare_epaper` (``waveshare_epaper``)
* :ref:`x_nucleo_bnrg2a1` (``x_nucleo_bnrg2a1``)
Build system and Infrastructure
*******************************
* CI-enabled blackbox tests were added to verify the correctness of most Twister flags.
* A ``socs`` folder for applications has been introduced that allows for Kconfig fragments and
devicetree overlays that should apply to any board target using a particular SoC and board
qualifier (:github:`70418`). Support has also been added to sysbuild (:github:`71320`).
* :ref:`Board/SoC flashing configuration<flashing-soc-board-config>` settings have been added
(:github:`69748`).
* Deprecated the global CSTD cmake property in favor of the :kconfig:option:`CONFIG_STD_C`
choice to select the C Standard version. Additionally, subsystems can select a minimum
required C Standard version, with, for example, :kconfig:option:`CONFIG_REQUIRES_STD_C11`.
* Fixed issue with passing UTF-8 configs to applications using sysbuild (:github:`74152`).
* Fixed issue whereby domain file in sysbuild projects would be loaded and used with outdated
information if sysbuild configuration was changed, and ``west flash`` was ran directly after
(:github:`73864`).
* Fixed issue with Zephyr modules not being listed in sysbuild if they did not have a Kconfig
file set (:github:`72070`).
* Added sysbuild ``SB_CONFIG_COMPILER_WARNINGS_AS_ERRORS`` Kconfig option to turn on
"warning as error" toolchain flags for all images, if set (:github:`70217`).
* Fixed issue whereby files used in a project (e.g. devicetree overlays or Kconfig fragments)
were not correctly watched and CMake would not reconfigure if they were changed
(:github:`74655`).
* Added flash support for Intel Hex files for the LinkServer runner.
* Added sysbuild ``sysbuild/CMakeLists.txt`` entry point and added support for
``APPLICATION_CONFIG_DIR`` which allows for adjusting how sysbuild functions (:github:`72923`).
* Fixed issue with armfvp find path if it contained a colon-separated list (:github:`74868`).
* Fixed issue with version.cmake field sizes not being enforced (:github:`74357`).
* Fixed issue with sysbuild not clearing ``EXTRA_CONF_FILE`` before processing images which
prevented this option being passed on to the image (:github:`74082`).
* Added sysbuild root support which works similarly to the existing root module, adjusting paths
relative to ``APP_DIR`` (:github:`73390`).
* Added warning/error message for blobs that are missing (:github:`73051`).
* Fixed issue with correct python executable detection on some systems (:github:`72232`).
* Added support for enabling LTO for whole application (:github:`69519`).
* Fixed ``FILE_SUFFIX`` issues relating to double application of suffixes, non-application in
sysbuild and variable name clashes in CMake functions (:github:`70124`, :github:`71280`).
* Added support for new aggressive size optimisation flag (for GCC and Clang) using
:kconfig:option:`CONFIG_SIZE_OPTIMIZATIONS_AGGRESSIVE` (:github:`70511`).
* Fixed issue with printing out ``BUILD_VERSION`` if it was empty (:github:`70970`).
* Fixed sysbuild issue of ``sysbuild_cache_set()`` cmake function wrongly detecting partial
matches for de-duplication (:github:`71381`).
* Fixed issue with detecting wrong ``VERSION`` file (:github:`71385`).
* Added support for disabling output disassembly having the source code in using
:kconfig:option:`CONFIG_OUTPUT_DISASSEMBLY_WITH_SOURCE` (:github:`71535`).
* Twister now supports ``--flash-before`` parameter that allows flashing DUT before
opening serial port (:github:`47037`).
Drivers and Sensors
*******************
* ADC
* Added ``ADC_DT_SPEC_*BY_NAME()`` macros to get ADC IO-channel information from DT by name.
* Added support for voltage biasing:
* Added a :kconfig:option:`CONFIG_ADC_CONFIGURABLE_VBIAS_PIN` selected by drivers that support
voltage biasing.
* Added a ``zephyr,vbias-pins`` property to the adc-controller base binding to describe voltage
bias pins.
* Implemented for the TI ADC114s08 ADC driver.
* Sample changes
* Renamed existing ADC sample to adc_dt.
* Added a new sample called adc_sequence that shows more of the runtime
:c:struct:`adc_sequence` features.
* New ADC Drivers
* Added driver for the ENE KB1200.
* Added driver for the NXP GAU ADC.
* ADI AD559x changes
* Added support for ADI's ad5593.
* Added I2C bus support for ADI ad559x.
* Added configuration of internal reference voltage value to ad559x to support
calls of :c:func:`adc_raw_to_millivolts()`.
* Fixed issue with driver initialization causing improper operation in the ad559x driver
regarding the availability of :kconfig:option:`CONFIG_THREAD_NAME`.
* Improved the ADC read efficiency and validation in ad559x driver.
* ESP32 changes
* Updated ESP32 ADC driver to work with version 5.1 of hal_espressif.
* Added support for DMA mode operation for ESP32S3 and ESP32C3.
* nRF changes
* Added support for nRF54L15 and nRF54H20 in the nrfx_saadc driver.
* Improved the nRF SAADC driver by disabling burst mode on unused channels, avoiding freezes.
* Fixed issue which allowed negative ADC readings in single-ended mode using the
``adc_nrfx_saadc.c`` device driver.
Note that this fix prevents the nRF54H and nRF54L series from performing
8-bit resolution single-ended readings due to hardware limitations.
* NXP LPADC changes
* Enabled acquisition time feature in the NXP LPADC driver.
* Added support for regulator output as reference to NXP LPADC.
* Changed phandle type DT property ``nxp,reference-supply`` to phandle-array type DT property
``nxp,references`` in ``nxp,lpc-lpadc`` binding. The NXP LPADC driver now supports passing
the reference voltage value by using ``nxp,references``.
* Smartbond changes
* Added support for power management to the Smartbond SDADC and GPADC drivers.
* Fixed support for :kconfig:option:`CONFIG_PM_DEVICE_RUNTIME` in the Smartbond ADC driver.
* STM32 changes
* Fixed various issues with DMA support in the STM32 ADC driver.
* Added support for STM32H7R/S series.
* Other driver changes
* Added support for Nuvoton m2l31x in the numaker ADC driver.
* Fixed issue with configuration register access in the ads1119 driver.
* Fixed uninitialized value in kb1200 driver found in static analysis.
* Fixed issue with :c:func:`adc_raw_to_millivolts` returning half the actual voltage with
the tla2021 driver by correcting the reference voltage value.
* Added support for Nuvoton Numaker M2L31X series.
* Battery
* Added ``re-charge-voltage-microvolt`` property to the ``battery`` binding. This allows to set
limit to automatically start charging again.
* Battery backed up RAM
* Added support for STM32G0 and STM32H5 series.
* CAN
* Extended support for automatic sample point location to also cover :c:func:`can_calc_timing` and
:c:func:`can_calc_timing_data`.
* Added optional ``min-bitrate`` devicetree property for CAN transceivers.
* Added devicetree macros :c:macro:`DT_CAN_TRANSCEIVER_MIN_BITRATE` and
:c:macro:`DT_INST_CAN_TRANSCEIVER_MIN_BITRATE` for getting the minimum supported bitrate of a CAN
transceiver.
* Added support for specifying the minimum bitrate supported by a CAN controller in the internal
``CAN_DT_DRIVER_CONFIG_GET`` and ``CAN_DT_DRIVER_CONFIG_INST_GET`` macros.
* Added :c:func:`can_get_bitrate_min` and :c:func:`can_get_bitrate_max` for retrieving the minimum
and maximum supported bitrate for a given CAN controller/CAN transceiver combination, reflecting
that retrieving the bitrate limits can no longer fail. Deprecated the existing
:c:func:`can_get_max_bitrate` API function.
* Updated the CAN timing functions to take the minimum supported bitrate into consideration when
validating the bitrate.
* Made the ``sample-point`` and ``sample-point-data`` devicetree properties optional.
* Renamed the ``bus_speed`` and ``bus_speed_data`` fields of :c:struct:`can_driver_config` to
``bitrate`` and ``bitrate_data``.
* Added driver for :dtcompatible:`nordic,nrf-can`.
* Added driver support for Numaker M2L31X to the :dtcompatible:`nuvoton,numaker-canfd` driver.
* Added host communication test suite.
* Charger
* Added ``chgin-to-sys-current-limit-microamp`` property to ``maxim,max20335-charger``.
* Added ``system-voltage-min-threshold-microvolt`` property to ``maxim,max20335-charger``.
* Added ``re-charge-threshold-microvolt`` property to ``maxim,max20335-charger``.
* Added ``thermistor-monitoring-mode`` property to ``maxim,max20335-charger``.
* Clock control
* Added support for Microcontroller Clock Output (MCO) on STM32H5 series.
* Added support for MSI clock on STM32WL series.
* Added driver for Analog Devices MAX32 SoC series.
* Added support for Nuvoton Numaker M2L31X series.
* Refactored ESP32 clock control driver to support ESP32-C6.
* In LiteX (:file:`drivers/clock_control/clock_control_litex.c`) added return code checking for
:c:func:`litex_clk_get_duty_cycle()` and :c:func:`litex_clk_get_clkout_divider`.
* Counter
* Added support for Ambiq Apollo3 series.
* Added support for STM32H7R/S series.
* Added driver for LPTMR to NXP MCXN947
* Added the ``resolution`` property in ``nxp,lptmr`` binding to represent the maximum width
in bits the LPTMR peripheral uses for its counter.
* DAC
* Added support for NXP RW SOC series DAC (:dtcompatible:`nxp,gau-dac`).
* Added support for Analog Devices AD5691 / AD5692 / AD5693 DACs
(:dtcompatible:`adi,ad5691`, :dtcompatible:`adi,ad5692` and :dtcompatible:`adi,ad5693`).
* Added support for Texas Instruments DACx0501 series DACs (:dtcompatible:`ti,dacx0501`).
* Disk
* Support for eMMC devices was added to the STM32 SD driver. This can
be enabled with :kconfig:option:`CONFIG_SDMMC_STM32_EMMC`.
* Added a loopback disk driver, to expose a disk device backed by a file.
A file can be registered with the loopback disk driver using
:c:func:`loopback_disk_access_register`
* Added support for :c:macro:`DISK_IOCTL_CTRL_INIT` and
:c:macro:`DISK_IOCTL_CTRL_DEINIT` macros, which allow for initializing
and de-initializing a disk at runtime. This allows hotpluggable
disk devices (like SD cards) to be removed and reinserted at runtime.
* Added SDMMC support for STM32H5 series.
* Display
* All in tree displays capable of supporting the :ref:`mipi_dbi_api` have
been converted to use it. GC9X01X, UC81XX, SSD16XX, ST7789V, ST7735R based
displays have been converted to this API. Boards using these displays will
need their devicetree updated, see the display section of
:ref:`migration_3.7` for examples of this process.
* Added driver for ST7796S display controller (:dtcompatible:`sitronix,st7796s`)
* Added support for :c:func:`display_read` API to ILI9XXX display driver,
which can be enabled with :kconfig:option:`CONFIG_ILI9XXX_READ`
* Added support for :c:func:`display_set_orientation` API to SSD16XXX
display driver
* Added driver for NT35510 MIPI-DSI display controller
(:dtcompatible:`frida,nt35510`)
* Added driver to abstract LED strip devices as displays
(:dtcompatible:`led-strip-matrix`)
* Added support for :c:func:`display_set_pixel_format` API to NXP eLCDIF
driver. ARGB8888, RGB888, and BGR565 formats are supported.
* Added support for inverting color at runtime to the SSD1306 driver, via
the :c:func:`display_set_pixel_format` API.
* Inversion mode can now be disabled in the ST7789V driver
(:dtcompatible:`sitronix,st7789v`) using the ``inversion-off`` property.
* Added support for NXP MCXNx4x
* DMA
* Error callback configuration renamed to better signal enable/disable status
* Add support to NXP MCXN947
* DMIC
* Added support for NXP ``rd_rw612_bga``
* Entropy
* Added support for STM32H7R/S series.
* EEPROM
* Added property for specifying ``address-width`` to :dtcompatible:`zephyr,i2c-target-eeprom`.
* eSPI
* Renamed eSPI virtual wire direction macros, enum values and Kconfig to match the new
terminology in eSPI 1.5 specification.
* Ethernet
* Introduced :kconfig:option:`CONFIG_ETH_DRIVER_RAW_MODE`. This option allows building
ethernet drivers without the zephyr L2 ethernet layer.
* Removed the ethernet-fixed-link DT binding.
* Removed VLAN handling from ethernet drivers since it is now handled by the
generic ethernet L2 code.
* Implemented/reworked HW MAC Address filtering in the eth_mcux, eth_nxp_enet,
and eth_nxp_s32_gmac, eth_stm32, and eth_nxp_s32_netc drivers.
* New Drivers
* Added new eth_nxp_enet_qos driver for the ethernet controller present on NXP MCXN SOCs.
* Added support for adin1100 phy.
* Added support for the Realtek RTL8211F phy.
* NXP ENET driver changes
* eth_nxp_enet driver is no longer experimental.
* Deprecated eth_mcux driver.
* All boards and SOCs with :dtcompatible:`nxp,kinetis-ethernet` compatible nodes
reworked to use the new :dtcompatible:`nxp,enet` binding.
* Added support for network device power management with nxp_enet driver on Kinetis platforms.
* Converted eth_nxp_enet driver to use a dedicated workqueue for RX
managed by the kernel rather than a manual infinite loop.
* Disabled hardware checksum acceleration when IPV6 is enabled with eth_nxp_enet, since
the hardware does not support accelerating ICMPv6 checksums.
* Added support for :dtcompatible:`nxp,enet1g`.
* Added support to use a fused MAC address for nxp_enet MAC on some platforms.
* Fixed issue with LAA bit not being set and a confusing description of the nxp,unique-mac
property used with the nxp_enet driver.
* Fixed cache maintain being enabled when using a noncache DMA buffer in nxp_enet driver.
* Added MMIO mappings to nxp_enet driver.
* Clarified DSA supported with eth_nxp_enet.
* NXP S32 ethernet changes
* The eth_nxp_s32_gmac driver now implies :kconfig:option:`CONFIG_MDIO`.
* eth_nxp_s32_netc driver updated to use new MBOX API.
* Adin2111 driver changes
* Corrected the bitfield position of IAMSK1 TX_READY_MASK in adin2111 driver.
* Changed adin2111 driver to always append crc32 to the end of the frame.
* Adjusted eth_adin2111 driver to have the appropriate multicaster filter mask.
* Fixed the "generic SPI without crc8" mode of adin2111 driver.
* Added Open Alliance SPI protocol support to the adin2111 driver.
* Added custom driver extension APIs for adin2111 driver.
* Enabled support for promiscuous mode in the adin2111 driver.
* Moved OA buffers out of device data of the adin2111 driver to save ~32KB of space
when using the generic SPI protocol.
* Fixed a build warning in eth_adin2111 driver on 64-bit platforms.
* Various small changes to adin2111 driver.
* STM32 ethernet driver changes
* Added support for PTP on compatible STM32 series (STM32F7, STM32H5 and STM32H7).
* Changed eth_stm32 to use phy APIs to access the phy to avoid collisions when multitasking.
* Removed legacy STM32Cube HAL API support for STM32 F4, F7, and H7 series.
* Added support for RX/TX timestamping to eth_stm32_hal driver.
* ESP32 ethernet driver changes
* Added support to esp32 ethernet driver to set the MAC address during runtime.
* Updated esp32 ethernet driver to work with version 5.1 of hal_espressif.
* Fixed build of esp32 ethernet driver when :kconfig:option:`CONFIG_NET_STATISTICS` is enabled.
* Fixed ESP32 ethernet driver not clocking external PHY correctly over GPIO.
* Other ethernet driver changes
* Added link status detection to the w5500 ethernet driver, configurable via Kconfig.
* Added ability to set MAC address at runtime with eth_liteeth driver.
* Fixed issue in the eth_stellaris driver where it was previously not taken into account
that the number of interrupts received by the driver may be less than the number of
data packets received by the ethernet controller.
* Added a devicetree property for the enc28j60 to set the RX filter.
* Fixed ESTAT TXABRT bit not being cleared on error in the enc28j60 driver.
* Added conditions to enable ptp_clock driver implementation for the native_posix
ethernet driver when PTP subsystem is enabled.
* Fixed DSA driver for KSZ8xxx to correctly initialize LAN devices.
* Fixed the wrong register address being used for tail tag enable in ksz8863.
* Phy driver changes
* Fixed various control issues with the KSZ8081 phy driver regarding
resets, autonegotiation, link detection, and missing/spamming logging messages.
* Changed property names of the reset and interrupt gpios in the KSZ8081 DT binding.
* Fixed bus fault in phy_mii driver when using fixed-link mode.
* Flash
* Added support for Ambiq Apollo3 series.
* Added support for multiple instances of the SPI NOR driver (spi_nor.c).
* Added preliminary support for non-erase devices with introduction of
device capabilities to c:struct:`flash_parameters` and the utility function
c:func:`flash_params_get_erase_cap` that allows to obtain the erase type
provided by a device; added c:macro:`FLASH_ERASE_C_EXPLICIT`, which is
currently the only supported erase type and is set by all flash devices.
* Added the c:func:`flash_flatten` function that can be used on devices,
with or without erase requirement, when erase has been used not for preparing
a device for a random data write, but rather to remove/scramble data from
that device.
* Added the c:func:`flash_fill` utility function which allows to write
a single value across a provided range in a selected device.
* Added support for RRAM on nrf54l15 devices.
* Added support of non busy wait polling in STM32 OSPI driver.
* Added support for STM32 XSPI external NOR flash driver (:dtcompatible:`st,stm32-xspi-nor`).
* Added support for XIP on external NOR flash in STM32 OSPI, QSPI and XSPI driver.
* STM32 OSPI driver: clk, dqs, ncs ports can now be configured by device tree
configurable (see :dtcompatible:`st,stm32-ospi`).
* Added FlexSPI support to NXP MCXN947
* Added support for Nuvoton Numaker M2L31X series.
* Fuel Gauge
* max17048: Corrected voltage units from mV to uV.
* GNSS
* Added GNSS device driver API test suite.
* Added support for the u-blox UBX protocol.
* Added device driver for the u-blox M10 GNSS modem (:dtcompatible:`u-blox,m10`).
* Added device driver for the Luatos Air530z GNSS modem (:dtcompatible:`luatos,air530z`).
* GPIO
* Added support for Ambiq Apollo3 series.
* Added Broadcom Set-top box(brcmstb) SoC GPIO driver.
* Added c:macro:`STM32_GPIO_WKUP` flag which allows to configure specific pins as wakeup source
from Power Off state on STM32 L4, U5, WB, & WL SoC series.
* Added driver for Analog Devices MAX32 SoC series.
* Added support for Nuvoton Numaker M2L31X series.
* Added interrupt support to the Renesas RZ/T2M GPIO driver (:dtcompatible:`renesas,rzt2m-gpio`).
* Hardware info
* Added device EUI64 ID support and implementation for STM32WB, STM32WBA and STM32WL series.
* I2C
* Added support for Ambiq Apollo3 series.
* In STM32 V2 driver, added support for a new :kconfig:option:`CONFIG_I2C_STM32_V2_TIMING`
which automatically computes bus timings which should be used to configure the hardware
block depending on the clock configuration in use. To avoid embedding this heavy algorithm
in a production application, a dedicated sample :zephyr:code-sample:`stm32_i2c_v2_timings` is provided
to get the output of the algorithm. Once bus timings configuration is available,
:kconfig:option:`CONFIG_I2C_STM32_V2_TIMING` could be disabled, bus timings configured
using device tree.
* Added support for STM32H5 series.
* Added support to NXP MCXN947
* Added driver for Analog Devices MAX32 SoC series.
* Added support for Nuvoton Numaker M2L31X series.
* LiteX I2C driver (:file:`drivers/i2c/i2c_litex.c`):
* Added support for bitrate setting from the devicetree.
* Added :c:func:`i2c_litex_recover_bus()` and :c:func:`i2c_litex_get_config()` API
implementations.
* I2S
* Added support for STM32H5 series.
* Extended the MCUX Flexcomm driver to support additional channels and formats.
* Added support for Nordic nRF54L Series.
* Fixed divider calculations in the nRF I2S driver.
* I3C
* Added shell support for querying bus and CCC commands.
* Added driver to support the I3C controller on NPCX.
* Improvements and bug fixes on :dtcompatible:`nxp,mcux-i3c`, including handling the bus
being busy more gracefully instead of simply returning errors.
* Input
* New drivers: :dtcompatible:`adc-keys`, :dtcompatible:`chipsemi,chsc6x`,
:dtcompatible:`cirque,pinnacle`, :dtcompatible:`futaba,sbus`,
:dtcompatible:`pixart,pat912x`, :dtcompatible:`pixart,paw32xx`,
:dtcompatible:`pixart,pmw3610` and :dtcompatible:`sitronix,cf1133`.
* Migrated :dtcompatible:`holtek,ht16k33` and
:dtcompatible:`microchip,xec-kbd` from kscan to input subsystem.
* LED
* Added device completion to LED shell commands and made the ``get_info`` command display
colors as strings.
* Added driver for Lumissil Microsystems (a division of ISSI) IS31FL3194 controller
(:dtcompatible:`issi,is31fl3194`).
* LED Strip
* The ``chain-length`` and ``color-mapping`` properties have been added to all LED strip
bindings.
* The length of a strip is now checked before updating it, an error is returned if the provided
data is too long.
* A length function has been added which returns the length of the LED strip
(:c:func:`led_strip_length`).
* The update channels function is now optional and can be left unimplemented.
* The ``in-gpios`` and ``output-pin`` properties of the respective
:dtcompatible:`worldsemi,ws2812-gpio` and :dtcompatible:`worldsemi,ws2812-rpi_pico-pio`
devicetree bindings have been renamed to ``gpios``.
* Removed ``CONFIG_WS2812_STRIP`` and ``CONFIG_WS2812_STRIP_DRIVER`` Kconfig options. They became
useless after refactoring.
* Added driver for Texas Instruments TLC59731 RGB controller.
* LoRa
* Added driver for Reyax LoRa module
* Mailbox
* Added support for HSEM based STM32 driver.
* MDIO
* Made the ``bus_enable`` and ``bus_disable`` functions optional for drivers to
implement, and removed empty implementation from many drivers.
* Added NXP ENET QOS MDIO controller driver.
* Fixed but with NXP ENET MDIO driver blocking the system workqueue.
* :kconfig:option:`CONFIG_MDIO_NXP_ENET_TIMEOUT` units change to microseconds.
* Added support for STM32 MDIO controller driver.
* MFD
* New driver :dtcompatible:`nxp,lp-flexcomm`.
* New driver :dtcompatible:`rohm,bd8lb600fs`.
* New driver :dtcompatible:`maxim,max31790`.
* New driver :dtcompatible:`infineon,tle9104`
* New driver :dtcompatible:`adi,ad559x`
* Added option to disable N_VBUSEN for :dtcompatible:`x-powers,axp192`.
* Added GPIO input edge events for :dtcompatible:`nordic,npm1300`.
* Added long press reset configuration for :dtcompatible:`nordic,npm1300`.
* Fixed initialisation of hysteretic mode for :dtcompatible:`nordic,npm6001`.
* Modem
* Removed deprecated ``GSM_PPP`` driver along with its dts compatible ``zephyr,gsm-ppp``.
* Removed deprecated ``UART_MUX`` and ``GSM_MUX`` previously used by ``GSM_PPP``.
* Removed support for dts compatible ``zephyr,gsm-ppp`` from ``MODEM_CELLULAR`` driver.
* Removed integration with ``UART_MUX`` from ``MODEM_IFACE_UART_INTERRUPT`` module.
* Removed integration with ``UART_MUX`` from ``MODEM_SHELL`` module.
* Implemented modem pipelinks in ``MODEM_CELLULAR`` driver for additional DLCI channels
available by the different modems. This includes generic AT mode DLCI channels, named
``user_pipe_<index>`` and DLCI channels reserved for GNSS tunneling named
``gnss_pipe``.
* Added new set of shell commands for sending AT commands directly to a modem using the
newly implemented modem pipelinks. The implementation of the new shell commands is
both functional and together with the ``MODEM_CELLULAR`` driver will provide an
example of how to implement and use the modem pipelink module.
* PCIE
* ``pcie_bdf_lookup`` and ``pcie_probe`` have been removed since they have been
deprecated since v3.3.0.
* MIPI-DBI
* Added release API
* Added support for mode selection via the device tree
* MSPI
* Add the new experimental :ref:`MSPI(Multi-bit SPI) <mspi_api>` API, enabling support for
advanced SPI controllers and peripherals that typically require command, address and data
phases as well as variable latency for a transfer. The API now supports from single wire
SDR up to hex wires DDR communication in sync/async ways.
* Added MSPI bus emulator under bus emulators to showcase the implementation of the MSPI API.
* Added MSPI flash device emulator to showcase the use of the MSPI API and interfacing with
MSPI bus controllers.
* Added APS6404L QPI pSRAM device driver.
* Added ATXP032 OPI NOR flash device driver.
* Added Ambiq Apollo3p MSPI controller driver.
* Added :zephyr:code-sample:`mspi-async` and :zephyr:code-sample:`mspi-flash` samples to
showcase the use of MSPI device drivers.
* Added mspi/api and mspi/flash testcase for developers to check their implementations.
* Pin control
* Added driver for Renesas RA8 series
* Added driver for Infineon PSoC6 (legacy)
* Added driver for Analog Devices MAX32 SoC series.
* Added driver for Ambiq Apollo3
* Added driver for ENE KB1200
* Added driver for NXP RW
* Espressif driver now supports ESP32C6
* STM32 driver now supports remap functionality for STM32C0
* Added support for Nuvoton Numaker M2L31X series.
* PWM
* Added support for STM32H7R/S series.
* Added a Add QTMR PWM driver for NXP imxrt11xx
* Made the NXP MCUX PWM driver thread safe
* Fix zephyr:code-sample:`pwm-blinky` code sample to demonstrate PWM support for
:ref:`beagleconnect_freedom`.
* Added driver for ENE KB1200.
* Added support for Nordic nRF54H and nRF54L Series SoCs.
* Added support for Nuvoton Numaker M2L31X series.
* Regulators
* New driver :dtcompatible:`cirrus,cp9314`.
* Added ``regulator-boot-off`` property to common regulator driver.
Updated :dtcompatible:`adi,adp5360-regulator`, :dtcompatible:`nordic,npm1300-regulator`,
:dtcompatible:`nordic,npm6001-regulator` and :dtcompatible:`x-powers,axp192-regulator`
to use this new property.
* Added power management for :dtcompatible:`renesas,smartbond-regulator`.
* Added ``is_enabled`` shell command.
* Removed use of busy wait for single threaded systems.
* Fixed control of DCDC2 output for :dtcompatible:`x-powers,axp192-regulator`.
* Fixed current and voltage get functions for :dtcompatible:`renesas,smartbond-regulator`.
* Fixed NXP VREF Kconfig leakage.
* Fixed display of micro values in shell.
* Fixed strcmp usage bug in ``adset`` shell command.
* Reset
* Added driver for reset controller on Nuvoton NPCX chips.
* Added reset controller driver for NXP SYSCON.
* Added reset controller driver for NXP RSTCTL.
* Added support for Nuvoton Numaker M2L31X series.
* RTC
* Added Raspberry Pi Pico RTC driver.
* Added support for :kconfig:option:`CONFIG_RTC_ALARM` on all STM32 MCU series (except STM32F1).
* Added support for Nuvoton Numaker M2L31X series.
* RTIO
* Move lock-free queues out of RTIO into lib, dropping the ``rtio_`` prefix to SPSC and MPSC queues.
* Added tests and fixed bugs related to chained callback requests.
* Wrapper around p4wq (rtio workq) created to go from blocking to non-blocking behavior in cases
where native asynchronous RTIO functionality is unavailable.
* SDHC
* Added ESP32 SDHC driver (:dtcompatible:`espressif,esp32-sdhc`).
* Added SDHC driver for Renesas MMC controller (:dtcompatible:`renesas,rcar-mmc`).
* Sensors
* General
* Added a channel specifier to the new read/decoder API.
* Added a blocking sensor read call :c:func:`sensor_read`.
* Decoupled RTIO requests using RTIO workqueues service to turn
:c:func:`sensor_submit_callback` into an asynchronous request.
* Moved most drivers to vendor subdirectories.
* AMS
* Added TSL2591 light sensor driver (:dtcompatible:`ams,tsl2591`).
* Aosong
* Added DHT20 digital-output humidity and temperature sensor driver
(:dtcompatible:`aosong,dht20`).
* Added :kconfig:option:`CONFIG_DHT_LOCK_IRQS` for the dht11 driver which allows for locking
interrupts during sensor reading to prevent issues with reading the sensor.
* Bosch
* Updated BME280 to the new async API.
* Infineon
* Added TLE9104 power train switch diagnostics sensor driver
(:dtcompatible:`infineon,tle9104-diagnostics`).
* Maxim
* Added DS18S20 1-Wire temperature sensor driver (:dtcompatible:`maxim,ds18s20`).
* Added MAX31790 fan speed and fan fault sensor
(:dtcompatible:`maxim,max31790-fan-fault` and :dtcompatible:`maxim,max31790-fan-speed`).
* NXP
* Added low power comparator driver (:dtcompatible:`nxp,lpcmp`).
* Rohm
* Added BD8LB600FS diagnostics sensor driver (:dtcompatible:`rohm,bd8lb600fs-diagnostics`).
* Silabs
* Made various fixes and enhancements to the SI7006 humidity/temperature sensor driver.
* ST
* QDEC driver now supports encoder mode configuration (see :dtcompatible:`st,stm32-qdec`).
* Added support for STM32 Digital Temperature Sensor (:dtcompatible:`st,stm32-digi-temp`).
* Added IIS328DQ I2C/SPI accelerometer sensor driver (:dtcompatible:`st,iis328dq`).
* TDK
* Added support for the MPU6500 3-axis accelerometer and 3-axis gyroscope sensor to the
MPU6050 driver.
* TI
* Added TMP114 driver (:dtcompatible:`ti,tmp114`).
* Added INA226 bidirectional current and power monitor driver (:dtcompatible:`ti,ina226`).
* Added LM95234 quad remote diode and local temperature sensor driver
(:dtcompatible:`national,lm95234`).
* Other vendors
* Added Angst+Pfister FCX-MLDX5 O2 sensor driver (:dtcompatible:`ap,fcx-mldx5`).
* Added ENE KB1200 tachometer sensor driver (:dtcompatible:`ene,kb1200-tach`).
* Added Festo VEAA-X-3 series proportional pressure regulator driver
(:dtcompatible:`festo,veaa-x-3`).
* Added Innovative Sensor Technology TSic xx6 temperature sensor driver
(:dtcompatible:`ist,tsic-xx6`).
* Added ON Semiconductor NCT75 temperature sensor driver (:dtcompatible:`onnn,nct75`).
* Added ScioSense ENS160 digital metal oxide multi-gas sensor driver
(:dtcompatible:`sciosense,ens160`).
* Made various fixes and enhancements to the GROW_R502A fingerprint sensor driver.
* Serial
* Added driver to support UART over Bluetooth LE using NUS (Nordic UART Service). This driver
enables using Bluetooth as a transport to all the subsystems that are currently supported by
UART (e.g: Console, Shell, Logging).
* Added :kconfig:option:`CONFIG_NOCACHE_MEMORY` support in async DMA mode in STM32 driver.
It is now possible to use UART in DMA mode with :kconfig:option:`CONFIG_DCACHE` enabled
on STM32 F7 & H7 SoC series, as long as DMA buffers are placed in an uncached memory section.
* Added support for STM32H7R/S series.
* Added support for HSCIF (High Speed Serial Communication Interface with FIFO) in the UART
driver for Renesas RCar platforms.
* Added driver for ENE KB1200 UART.
* Added driver for UART on Analog Devices MAX32 series microcontrollers.
* Added driver for UART on Renesas RA8 devices.
* ``uart_emul`` (:dtcompatible:`zephyr,uart-emul`):
* Added support for asynchronous API for the emulated UART driver.
* ``uart_esp32`` (:dtcompatible:`espressif,esp32-uart`):
* Added support to invert TX and RX pin signals.
* Added support for ESP32C6 SoC.
* ``uart_native_tty`` (:dtcompatible:`zephyr,native-tty-uart`):
* Added support to emulate interrupt driven UART.
* ``uart_mcux_lpuart`` (:dtcompatible:`nxp,kinetis-lpuart`):
* Added support for single wire half-duplex communication.
* Added support to invert TX and RX pin signals.
* ``uart_npcx`` (:dtcompatible:`nuvoton,npcx-uart`):
* Added support for asynchronous API.
* Added support for baud rate of 3MHz.
* ``uart_nrfx_uarte`` (:dtcompatible:`nordic,nrf-uarte`):
* Added support to put TX and RX pins into low power mode when UART is not active.
* ``uart_nrfx_uarte2`` (:dtcompatible:`nordic,nrf-uarte`):
* Prevents UART from transmitting when device is suspended.
* Fixed some events not being triggered.
* ``uart_pl011`` (:dtcompatible:`arm,pl011`):
* Added support for runtime configuration.
* Added support for reset device.
* Added support to use clock control to determine frequency.
* Added support for hardware flow control.
* Added support for UART on Ambiq Apollo3 SoC.
* ``uart_smartbond`` (:dtcompatible:`renesas,smartbond-uart`):
* Added support for power management.
* Added support to wake up via DTR and RX lines.
* ``uart_stm32`` (:dtcompatible:`st,stm32-uart`):
* Added support to identify if DMA buffers are in data cache or non-cacheable memory.
* Added support for Nuvoton Numaker M2L31X series.
* SPI
* Added support to NXP MCXN947
* Added support for Ambiq Apollo3 series general IOM based SPI.
* Added support for Ambiq Apollo3 BLEIF based SPI, which is specific for internal HCI.
* Added support for :kconfig:option:`CONFIG_PM` and :kconfig:option:`CONFIG_PM_DEVICE_RUNTIME` on STM32 SPI driver.
* Added support for :kconfig:option:`CONFIG_NOCACHE_MEMORY` in DMA SPI mode for STM32F7x SoC series.
* Added support for STM32H7R/S series.
* Added driver for Analog Devices MAX32 SoC series.
* Fixed an incorrect register assignment in gd32 spi.
* USB
* Added UDC shim driver for NXP EHCI and IP3511 USB controller.
* Various fixes and improvements in IT82xx2, DWC2, STM32, RP2040, Smartbond
USB controller drivers.
* Video
* Added support for STM32 Digital camera interface (DCMI) driver (:dtcompatible:`st,stm32-dcmi`).
* Enabled NXP USB Device controllers
* Added support for the ov7670 camera
* Added support for the ov5640 camera
* Added CSI-2 MIPI driver for NXP MCUX
* Added support for DVP FPC 24-pins mt9m114 camera module shield
* Watchdog
* Added :kconfig:option:`CONFIG_WDT_NPCX_WARNING_LEADING_TIME_MS` to set the leading warning time
in milliseconds. Removed no longer used :kconfig:option:`CONFIG_WDT_NPCX_DELAY_CYCLES`.
* Added support for Ambiq Apollo3 series.
* Added support for STM32H7R/S series.
* Added support for Nuvoton Numaker M2L31X series.
* Added watchdog for external 32kHz crystal in ESP32 SoC variants.
* Wi-Fi
* Fixed message parsing for esp-at.
* Fixed esp-at connect failures.
* Implement :c:func:`bind` and :c:func:`recvfrom` for UDP sockets for esp-at.
* Added option for setting maximum data size for eswifi.
* Fixed ESP32 Wi-Fi driver memory leak.
Networking
**********
* ARP:
* Added support for gratuitous ARP transmission.
* Fixed a possible deadlock between TX and RX threads within ARP module.
* Fixed a possible ARP entry leak.
* Improved ARP debug logs.
* CoAP:
* Fixed CoAP observe age overflows.
* Increased upper limit for CoAP retransmissions (:kconfig:option:`CONFIG_COAP_MAX_RETRANSMIT`).
* Fixed CoAP observations in CoAP client library.
* Added new CoAP client :c:func:`coap_client_cancel_requests` API which allows
to cancel active observations.
* Fixed CoAP ID generation for responses in CoAP Server sample.
* Connection manager:
* Added support for new net_mgmt events, which allow to track IPv4 and IPv6
connectivity independently:
* :c:macro:`NET_EVENT_L4_IPV4_CONNECTED`
* :c:macro:`NET_EVENT_L4_IPV4_DISCONNECTED`
* :c:macro:`NET_EVENT_L4_IPV6_CONNECTED`
* :c:macro:`NET_EVENT_L4_IPV6_DISCONNECTED`
* DHCPv4:
* Added support for encapsulated vendor specific options. By enabling
:kconfig:option:`CONFIG_NET_DHCPV4_OPTION_CALLBACKS_VENDOR_SPECIFIC` callbacks can be
registered with :c:func:`net_dhcpv4_add_option_vendor_callback` to handle these options after
being initialised with :c:func:`net_dhcpv4_init_option_vendor_callback`.
* Added support for the "Vendor class identifier" option. Use the
:kconfig:option:`CONFIG_NET_DHCPV4_VENDOR_CLASS_IDENTIFIER` to enable it and
:kconfig:option:`CONFIG_NET_DHCPV4_VENDOR_CLASS_IDENTIFIER_STRING` to set it.
* The NTP server from the DHCPv4 option can now be used to set the system time. This is done by
default, if :kconfig:option:`CONFIG_NET_CONFIG_CLOCK_SNTP_INIT` is enabled.
* The syslog server address can now be set with DHCPv4 option. This is done by
default, if :kconfig:option:`CONFIG_LOG_BACKEND_NET_USE_DHCPV4_OPTION` is enabled.
* Fixed a bug, where options with registered callbacks were not requested from
the server.
* Fixed a bug, where netmask received from the server was not applied correctly.
* Reimplemented DHCPv4 client RENEW/REBIND logic to be compliant with RFC2131.
* Improved declined addresses management in DHCPv4 server, which now can be
reused after configured time.
* Fixed including the client ID option in the DHCPv4 server response, according to RFC6842.
* Added :kconfig:option:`CONFIG_NET_DHCPV4_SERVER_NAK_UNRECOGNIZED_REQUESTS` which
allows to override RFC-defined behavior, and NAK requests from unrecognized
clients.
* Fixed client ID generation in DHCPv4 server.
* Other minor fixes in DHCPv4 client and server implementations.
* DHCPv6:
* Fixed incorrect DHCPv6 events code base for net_mgmt events.
* Added :kconfig:option:`CONFIG_NET_DHCPV6_DUID_MAX_LEN` which allows to configure
maximum supported DUID length.
* Added documentation page for DHCPv6.
* DNS/mDNS/LLMNR:
* Fixed an issue where the mDNS Responder did not work when the mDNS Resolver was also enabled.
The mDNS Resolver and mDNS Responder can now be used simultaneously.
* Reworked LLMNR and mDNS responders, and DNS resolver to use sockets and socket services API.
* Added ANY query resource type.
* Added support for mDNS to provide records in runtime.
* Added support for caching DNS records.
* Fixed error codes returned when socket creation fails, and when all results have been returned.
* Fixed DNS retransmission timeout calculation.
* gPTP/PTP:
* Added support for IEEE 1588-2019 PTP.
* Added support for SO_TIMESTAMPING socket option to get timestamping information in socket
ancillary data.
* Fixed race condition on timestamp callback.
* Fixed clock master sync send SM if we are not the GM clock.
* HTTP:
* Added HTTP/2 server library and sample application with support for static,
dynamic and Websocket resource types.
* Added HTTP shell component.
* Improved HTTP client error reporting.
* Moved HTTP client library out of experimental.
* Added POLLOUT monitoring when sending response in HTTP client.
* IPSP:
* Removed IPSP support. ``CONFIG_NET_L2_BT`` does not exist anymore.
* IPv4:
* Implemented IPv4 Address Conflict Detection, according to RFC 5227.
* Added :c:func:`net_ipv4_is_private_addr` API function.
* IPv4 netmask is now set individually for each address instead of being set
for the whole interface.
* Other minor fixes and improvements.
* IPv6:
* Implemented IPv6 Privacy Extensions according to RFC 8981.
* Added :c:func:`net_ipv6_is_private_addr` API function.
* Implemented reachability hint for IPv6. Upper layers can use
c:func:`net_if_nbr_reachability_hint` to report Neighbor reachability and
avoid unnecessary Neighbor Discovery solicitations.
* Added :kconfig:option:`CONFIG_NET_IPV6_MTU` allowing to set custom IPv6 MTU.
* Added :kconfig:option:`CONFIG_NET_MCAST_ROUTE_MAX_IFACES` which allows to set
multiple interfaces for multicast forwarding entries.
* Added :kconfig:option:`CONFIG_NET_MCAST_ROUTE_MLD_REPORTS` which allows to
report multicast routes in MLDv2 reports.
* Fixed IPv6 hop limit handling for multicast packets.
* Improved IPv6 Neighbor Discovery test coverage.
* Fixed a bug, where Neighbor Advertisement packets reporting Duplicate address
detection conflicts were dropped.
* Other minor fixes and improvements.
* LwM2M:
* Added new API functions:
* :c:func:`lwm2m_set_bulk`
* :c:func:`lwm2m_rd_client_set_ctx`
* Added new ``offset`` parameter to :c:type:`lwm2m_engine_set_data_cb_t` callback type.
This affects post write and validate callbacks as well as some firmware callbacks.
* Fixed block context not being reset upon receiving block number 0 in block transfer.
* Fixed block size negotiation with the server in block transfer.
* Added :kconfig:option:`CONFIG_LWM2M_ENGINE_ALWAYS_REPORT_OBJ_VERSION` which
allows to force the client to always report object version.
* Block transfer is now possible with resource w/o registered callback.
* Fixed a bug, where an empty ACK sent from the registered callback would not
be sent immediately.
* Removed deprecated API functions and definitions.
* Other minor fixes and improvements.
* Misc:
* Improved overall networking API Doxygen documentation.
* Converted TFTP library to use ``zsock_*`` API.
* Added SNTP :c:func:`sntp_simple_addr` API function to perform SNTP query
when the server IP address is already known.
* Added :kconfig:option:`CONFIG_NET_TC_THREAD_PRIO_CUSTOM` allowing to override
default traffic class threads priority.
* Fixed the IPv6 event handler initialization order in net config library.
* Reworked telnet shell backend to use sockets and socket services API.
* Fixed double dereference of IGMP packets.
* Moved from ``native_posix`` to ``native_sim`` support in various tests and
samples.
* Added support for copying user data in network buffers.
* Fixed cloning of zero sized network buffers.
* Added net_buf APIs to handle 40 bit data format.
* Added receive callback for dummy L2, applicable in certain use cases
(for example, packet capture).
* Implemented pseudo interface, a.k.a "any" interface for packet capture use
case.
* Added cooked mode capture support. This allows non-IP based network data capture.
* Generate network events when starting or stopping packet capture.
* Removed obsolete and unused ``tcp_first_msg`` :c:struct:`net_pkt` flag.
* Added new :zephyr:code-sample:`secure-mqtt-sensor-actuator` sample.
* Added support for partial L3 and L4 checksum offloading.
* Updated :zephyr:code-sample:`mqtt-azure` with new CA certificates, the current
on expires soon.
* Added new driver for Native Simulator offloaded sockets.
* Overhauled VLAN support to use Virtual network interfaces.
* Added statistics collection for Virtual network interfaces.
* Fixed system workqueue block in :c:func:`mgmt_event_work_handler`
when :kconfig:option:`CONFIG_NET_MGMT_EVENT_SYSTEM_WORKQUEUE` is enabled.
* MQTT:
* Added ALPN support for MQTT TLS backend.
* Added user data field in :c:struct:`mqtt_client` context structure.
* Fixed a potential socket leak in MQTT Websockets transport.
* Network Interface:
* Added new API functions:
* :c:func:`net_if_ipv4_maddr_foreach`
* :c:func:`net_if_ipv6_maddr_foreach`
* Improved debug logging in the network interface code.
* Added reference counter to the :c:struct:`net_if_addr` structure.
* Fixed IPv6 DAD and MLDv2 operation when interface goes up.
* Added unique default name for OpenThread interfaces.
* Other minor fixes.
* OpenThread
* Removed deprecated ``openthread_set_state_changed_cb()`` function.
* Added implementation of BLE TCAT advertisement API.
* PPP
* Removed deprecated ``gsm_modem`` driver and sample.
* Optimized memory allocation in PPP driver.
* Misc improvements in the :zephyr:code-sample:`cellular-modem` sample
* Added PPP low level packet capture support.
* Shell:
* Added ``net ipv4 gateway`` command to set IPv4 gateway address.
* Added argument validation in network shell macros.
* Fixed net_mgmt sockets information printout.
* Reworked VLAN information printout.
* Added option to set random MAC address with ``net iface set_mac`` command.
* Added multicast join status when printing multicast address information.
* Sockets:
* Implemented new networking POSIX APIs:
* :c:func:`if_nameindex`
* :c:func:`inet_ntoa`
* :c:func:`inet_addr`
* Added support for tracing socket API calls.
* TLS sockets are no longer experimental API.
* Fixed the protocol field endianness for ``AF_PACKET`` type sockets.
* Fixed :c:func:`getsockname` for TCP.
* Improve :c:func:`sendmsg` support when using DTLS sockets.
* Fixed :c:func:`net_socket_service_register` function stall in case socket
services thread stopped.
* Fixed potential socket services thread stoppage when deregistering service.
* Removed support for asynchronous timeouts in socket services library.
* Fixed potential busy looping when using :c:func:`zsock_accept` in case of
file descriptors shortage.
* Syslog:
* Added new API functions:
* :c:func:`log_backend_net_set_ip` to initialize syslog net backend with IP
address directly.
* :c:func:`log_backend_net_start` to facilitate syslog net backend activation.
* Added structured logging support to syslog net backend.
* Added TCP support to syslog net backend.
* TCP:
* Fixed possible deadlock when accepting new TCP connection.
* Fixed ACK number verification during connection teardown.
* Fixed a bug, where data bytes included in FIN packet were ignored.
* Fixed a possible TCP context leak in case initial SYN packet transmission failed.
* Deprecated :kconfig:option:`CONFIG_NET_TCP_ACK_TIMEOUT` as it was redundant with other configs.
* Improved debug logs, so that they're easier to follow under heavy load.
* ISN generation now uses SHA-256 instead of MD5. Moreover, it now relies on PSA APIs
instead of legacy Mbed TLS functions for hash computation.
* Improved ACK reply logic in case no PSH flag is present to reduce redundant ACKs.
* Websocket:
* Added new Websocket APIs:
* :c:func:`websocket_register`
* :c:func:`websocket_unregister`
* Converted Websocket library to use ``zsock_*`` API.
* Added Object Core support to Websocket sockets.
* Added POLLOUT monitoring when sending.
* Wi-Fi:
* Reduce memory usage of 5 GHz channel list.
* Added channel validity check in AP mode.
* Added support for BSSID configuration in connect call.
* Wifi shell help text fixes. Option parsing fixes.
* Support WPA auto personal security mode.
* Collect unicast received/sent network packet statistics.
* Added support for configuring RTS threshold. With this, users can set the RTS threshold
value or disable the RTS mechanism.
* Added support for configuring AP parameters. With this, users can set AP parameters at
build and run time.
* Added support to configure ``max_inactivity`` BSS parameter. Users can set this both
build and runtime duration to control the maximum time duration after which AP may
disconnect a STA due to inactivity from STA.
* Added support to configure ``inactivity_poll`` BSS parameter. Users can set build
only AP parameter to control whether AP may poll the STA before throwing away STA
due to inactivity.
* Added support to configure ``max_num_sta`` BSS parameter. Users can set this both
build and run time parameter to control the maximum number of STA entries.
* zperf:
* Fixed ``IP_TOS`` and ``IPV6_TCLASS`` options handling in zperf.
* Fixed throughput calculation during long zperf sessions.
* Fixed error on TCP upload session end in case multicast IP address was used.
* Fixed a bug, where IPv6 socket was bound with IPv4 address, giving error.
* Added an option to specify the network interface to use during zperf sessions.
* Added a new ``ZPERF_SESSION_PERIODIC_RESULT`` event for periodic updates
during TCP upload sessions.
* Fixed possible socket leak in case of errors during zperf session.
* Improved performance in the default configuration for the zperf sample.
USB
***
* New USB device stack:
* Added support for HID devices
* Introduced speed-specific configurations and made high-speed support
compliant with the USB2.0 specification
* Added notification support and initial BOS support
Devicetree
**********
* Added :c:macro:`DT_INST_NODE_HAS_COMPAT` to check if a node has a compatible.
This is useful for nodes that have multiple compatibles.
* Added :c:macro:`DT_CHILD_NUM` and variants to count the number of children of a node.
* Added :c:macro:`DT_FOREACH_NODELABEL` and variants, which can be used to iterate over the
node labels of a devicetree node.
* Added :c:macro:`DT_NODELABEL_STRING_ARRAY` and :c:macro:`DT_NUM_NODELABELS` and their variants.
* Added :c:macro:`DT_REG_HAS_NAME` and variants.
* Reworked :c:macro:`DT_ANY_INST_HAS_PROP_STATUS_OKAY` so that the result can
be used with macros like :c:macro:`IS_ENABLED`, IF_ENABLED, or COND_CODE_x.
* Reworked :c:macro:`DT_NODE_HAS_COMPAT_STATUS` so that it can be evaluated at preprocessor time.
* Updated PyYaml version used in dts scripts to 6.0 to remove supply chain vulnerabilities.
Kconfig
*******
* Added a ``substring`` Kconfig preprocessor function.
* Added a ``dt_node_ph_prop_path`` Kconfig preprocessor function.
* Added a ``dt_compat_any_has_prop`` Kconfig preprocessor function.
Libraries / Subsystems
**********************
* Debug
* symtab
* By enabling :kconfig:option:`CONFIG_SYMTAB`, the symbol table will be
generated with Zephyr link stage executable on supported architectures.
* Demand Paging
* NRU (Not Recently Used) eviction algorithm has updated its selection logic to avoid
picking the same page to evict constantly. The updated login now searches for a new
candidate linearly after the last evicted page.
* Added LRU (Least Recently Used) eviction algorithm.
* Formatted output
* Fix warning when compiling cbprintf with ARCMWDT.
* Management
* hawkBit
* The hawkBit subsystem has been reworked to use the settings subsystem to store the hawkBit
configuration.
* By enabling :kconfig:option:`CONFIG_HAWKBIT_SET_SETTINGS_RUNTIME`, the hawkBit settings can
be configured at runtime. Use the :c:func:`hawkbit_set_config` function to set the hawkBit
configuration. It can also be set via the hawkBit shell, by using the ``hawkbit set``
command.
* When using the hawkBit autohandler and an update is installed, the device will now
automatically reboot after the installation is complete.
* By enabling :kconfig:option:`CONFIG_HAWKBIT_CUSTOM_DEVICE_ID`, a callback function can be
registered to set the device ID. Use the :c:func:`hawkbit_set_device_identity_cb` function to
register the callback.
* By enabling :kconfig:option:`CONFIG_HAWKBIT_CUSTOM_ATTRIBUTES`, a callback function can be
registered to set the device attributes that are sent to the hawkBit server. Use the
:c:func:`hawkbit_set_custom_data_cb` function to register the callback.
* MCUmgr
* Instructions for the deprecated mcumgr go tool have been removed, a list of alternative,
supported clients can be found on :ref:`mcumgr_tools_libraries`.
* Fixed an issue with the SMP structure not being packed which would cause a fault on devices
that do not support unaligned memory accesses.
* Added :kconfig:option:`CONFIG_MCUMGR_TRANSPORT_BT_DYNAMIC_SVC_REGISTRATION` that allows users
to select whether MCUmgr BT service is statically registered at compile time or
dynamically at run time.
* In FS group, TinyCrypt has been replaced with PSA calls for SHA calculation.
* Logging
* By enabling :kconfig:option:`CONFIG_LOG_BACKEND_NET_USE_DHCPV4_OPTION`, the IP address of the
syslog server for the networking backend is set by the DHCPv4 Log Server Option (7).
* Use real time clock as timestamp on POSIX.
* Add support for syslog (POSIX).
* Add :c:macro:`LOG_WRN_ONCE` for logging warning message where only the first occurrence is
logged.
* Add :c:func:`log_thread_trigger` for triggering processing of the log messages.
* Fix case when deferred logging not compiling when :kconfig:option:`CONFIG_MULTITHREADING` was
disabled.
* Fix case when logging strings could be stripped from the binary when dictionary based logging
was mixed with non-dictionary.
* Fix dictionary database not being generated in certain situations.
* Fix dictionary logging parser not handling long long arguments correctly.
* Fix support for :kconfig:option:`CONFIG_LOG_MSG_APPEND_RO_STRING_LOC`.
* Modem modules
* Added modem pipelink module which shares modem pipes globally, allowing device drivers to
create and set up pipes for the application to use.
* Simplified the modem pipe module's synchronization mechanism to only protect the callback
and user data. This matches the actual in-tree usage of the modem pipes.
* Added ``modem_stats`` module which tracks the usage of buffers throughout the modem
subsystem.
* Power management
* Devices can now declare which system power states cause power loss.
This information can be used to set and release power state
constraints when it is needed by the device. This feature is enabled with
:kconfig:option:`CONFIG_PM_POLICY_DEVICE_CONSTRAINTS`. Use functions
:c:func:`pm_policy_device_power_lock_get` and :c:func:`pm_policy_device_power_lock_put`
to lock and unlock all power states that cause power loss in a device.
* Added shell support for device power management.
* Device power management was de-coupled from system power management. The new
:kconfig:option:`CONFIG_PM_DEVICE_SYSTEM_MANAGED` option is used to enable
whether devices must be suspended when the system sleeps.
* Make it possible to disable system device power management individually per
power state using ``zephyr,pm-device-disabled``. This allows targets tuning which
states should (and which should not) trigger device power management.
* Crypto
* TinyCrypt remains available but is now being phased out in favor
of PSA Crypto for enhanced security and performance.
* Mbed TLS was updated to 3.6.0. Release notes can be found at:
https://github.com/Mbed-TLS/mbedtls/releases/tag/v3.6.0
* When any PSA crypto provider is available in the system
(:kconfig:option:`CONFIG_MBEDTLS_PSA_CRYPTO_CLIENT` is enabled), desired PSA features
must now be explicitly selected through ``CONFIG_PSA_WANT_xxx`` symbols.
* Choice symbols :kconfig:option:`CONFIG_MBEDTLS_PSA_CRYPTO_LEGACY_RNG` and
:kconfig:option:`CONFIG_MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG` were added in order
to allow the user to specify how Mbed TLS PSA crypto core should generate random numbers.
The former option, which is the default, relies on legacy entropy and CTR_DRBG/HMAC_DRBG
modules, while the latter relies on CSPRNG drivers.
* :kconfig:option:`CONFIG_MBEDTLS_PSA_P256M_DRIVER_ENABLED` enables support
for the Mbed TLS's p256-m driver PSA crypto library. This is a Cortex-M SW
optimized implementation of secp256r1 curve.
* CMSIS-NN
* CMSIS-NN was updated to v6.0.0 from v4.1.0:
https://arm-software.github.io/CMSIS-NN/latest/rev_hist.html
* FPGA
* Improve handling of drivers missing ``reset``, ``load``, ``get_status``, and ``get_info``
methods.
* Add support for Agilex and Agilex 5.
* Random
* Besides the existing :c:func:`sys_rand32_get` function, :c:func:`sys_rand8_get`,
:c:func:`sys_rand16_get` and :c:func:`sys_rand64_get` are now also available.
These functions are all implemented on top of :c:func:`sys_rand_get`.
* SD
* SDMMC and SDIO frequency and timing selection logic have been reworked,
to resolve an issue where a timing mode would not be selected if the
SDHC device in use did not report support for the maximum frequency
possible in that mode. Now, if the host controller and card both report
support for a given timing mode but not the highest frequency that
mode supports, the timing mode will be selected and configured at
the reduced frequency (:github:`72705`).
* State Machine Framework
* The :c:macro:`SMF_CREATE_STATE` macro now always takes 5 arguments.
* Transition sources that are parents of the state that was run now choose the correct Least
Common Ancestor for executing Exit and Entry Actions.
* Passing ``NULL`` to :c:func:`smf_set_state` is now not allowed.
* Storage
* FAT FS: It is now possible to expose file system formatting functionality for FAT without also
enabling automatic formatting on mount failure by setting the
:kconfig:option:`CONFIG_FS_FATFS_MKFS` Kconfig option. This option is enabled by default if
:kconfig:option:`CONFIG_FILE_SYSTEM_MKFS` is set.
* FS: It is now possible to truncate a file while opening using :c:func:`fs_open`
and by passing ``FS_O_TRUNC`` flag.
* Flash Map: TinyCrypt has been replaced with PSA Crypto in Flash Area integrity check.
* Flash Map: :c:func:`flash_area_flatten` has been added to be used where an erase
operation has been previously used for removing/scrambling data rather than
to prepare a device for a random data write.
* Flash Map: :c:macro:`FIXED_PARTITION_NODE_OFFSET`, :c:macro:`FIXED_PARTITION_NODE_SIZE`
and :c:macro:`FIXED_PARTITION_NODE_DEVICE` have been added to allow obtaining
fixed partition information from a devicetree node rather than a label.
* Added :kconfig:option:`CONFIG_NVS_DATA_CRC`, to add CRC protection for data.
Note that enabling this option makes NVS incompatible with existing storage
that have not been previously using CRC on data.
* Fixed NVS issue where :c:func:`nvs_calc_free_space` would return larger
size than available, because space for reserved ate was not subtracted.
* Fixed ext2 incorrectly calculating free space when attempting to format
partition.
* Fixed FAT driver leaving disk in initialized state after unmount.
* Task Watchdog
* Added shell (mainly for testing purposes during development).
* POSIX API
* Improved Kconfig options to reflect standard POSIX Options and Option Groups.
* Added support for the following Option Groups
* :ref:`POSIX_MAPPED_FILES <posix_option_group_mapped_files>`
* :ref:`POSIX_MEMORY_PROTECTION <posix_option_group_memory_protection>`
* :ref:`POSIX_NETWORKING <posix_option_group_networking>`
* :ref:`POSIX_SINGLE_PROCESS <posix_option_group_single_process>`
* :ref:`POSIX_TIMERS <posix_option_group_timers>`
* :ref:`XSI_SYSTEM_LOGGING <posix_option_group_xsi_system_logging>`
* Added support for the following Options
* :ref:`_POSIX_ASYNCHRONOUS_IO <posix_option_asynchronous_io>`
* :ref:`_POSIX_CPUTIME <posix_option_cputime>`
* :ref:`_POSIX_FSYNC <posix_option_fsync>`
* :ref:`_POSIX_MEMLOCK <posix_option_memlock>`
* :ref:`_POSIX_MEMLOCK_RANGE <posix_option_memlock_range>`
* :ref:`_POSIX_READER_WRITER_LOCKS <posix_option_reader_writer_locks>`
* :ref:`_POSIX_SHARED_MEMORY_OBJECTS <posix_shared_memory_objects>`
* :ref:`_POSIX_THREAD_CPUTIME <posix_option_thread_cputime>`
* :ref:`_POSIX_THREAD_PRIO_PROTECT <posix_option_thread_prio_protect>`
* :ref:`_POSIX_THREAD_PRIORITY_SCHEDULING <posix_option_thread_priority_scheduling>`
* :ref:`_XOPEN_STREAMS <posix_option_xopen_streams>`
* Fixed eventfd ``F_SETFL`` handling to avoid overwriting internal flags.
* Fixed thread stack address printed in debug message.
* Fixed macro parameter usage in signal code.
* LoRa/LoRaWAN
* Added the Fragmented Data Block Transport service, which can be enabled via
:kconfig:option:`CONFIG_LORAWAN_FRAG_TRANSPORT`. In addition to the default fragment decoder
implementation from Semtech, an in-tree implementation with reduced memory footprint is
available.
* Added a sample to demonstrate LoRaWAN firmware-upgrade over the air (FUOTA).
* ZBus
* Improved the VDED process by optimizing the channel reference copying for the clones delivered
during the message subscriber delivery notification.
* Improved the initialization phase by statically initiating the semaphores and runtime observer
list. That decreased the duration of the zbus initialization.
* Added a way of isolating a channel message subscribers pool. Some channels can now share an
isolated pool to avoid delivery failures and shorten communication latency. It is only necessary
to enable the :kconfig:option:`CONFIG_ZBUS_MSG_SUBSCRIBER_NET_BUF_POOL_ISOLATION` and use the
function :c:func:`zbus_chan_set_msg_sub_pool` to change the msg pool used by the channel.
Channels can share the same message pool.
HALs
****
* Nordic
* Updated nrfx to version 3.5.0.
* Added nRF Services (nrfs) library.
* STM32
* Updated STM32F0 to cube version V1.11.5.
* Updated STM32F3 to cube version V1.11.5.
* Updated STM32F4 to cube version V1.28.0.
* Updated STM32F7 to cube version V1.17.2.
* Updated STM32G0 to cube version V1.6.2.
* Updated STM32G4 to cube version V1.5.2.
* Updated STM32H5 to cube version V1.2.0.
* Updated STM32H7 to cube version V1.11.2.
* Updated STM32L5 to cube version V1.5.1.
* Updated STM32U5 to cube version V1.5.0.
* Updated STM32WB to cube version V1.19.1.
* Updated STM32WBA to cube version V1.3.1.
* Added STM32H7R/S with cube version V1.0.0.
* ADI
* Introduced the ``hal_adi`` module, which is a subset of the Maxim Software
Development Kit (MSDK) that contains device header files and bare metal
peripheral drivers (:github:`72391`).
* Espressif
* Updated HAL to version v5.1, which has new SoCs low-level files.
MCUboot
*******
* Fixed memory leak in bootutil HKDF implementation
* Fixed enforcing TLV entries to be protected
* Fixed disabling instruction/data caches
* Fixed estimated image overhead size calculation
* Fixed issue with swap-move algorithm failing to validate multiple-images
* Fixed align script error in imgtool
* Fixed img verify for hex file format in imgtool
* Fixed issue with reading the flash image reset vector
* Fixed too-early ``check_config.h`` include in mbedtls
* Refactored image dependency functions to reduce code size
* Added MCUboot support for ``ESP32-C6``
* Added optional MCUboot boot banner
* Added TLV querying for protected region
* Added using builtin keys for verification in bootutil
* Added builtin ECDSA key support for PSA Crypto backend
* Added ``OVERWRITE_ONLY_KEEP_BACKUP`` option for secondary images
* Added defines for ``SOC_FLASH_0_ID`` and ``SPI_FLASH_0_ID``
* Fixed ASN.1 support for mbedtls version >= 3.1
* Fixed bootutil signed/unsigned comparison in ``boot_read_enc_key``
* Updated imgtool version.py to take command line arguments
* Added imgtool improvements to dumpinfo
* Fixed various imgtool dumpinfo issues
* Fixed imgtool verify command for edcsa-p384 signed images
* Added support for NXP MCXN947
* The MCUboot version in this release is version ``2.1.0+0-dev``.
OSDP
****
* Fixed issue in CP secure channel handshake where R-MAC can be reverted to an
old one by a rogue PD sending an out-of-order secure channel response resulting
in a replay attack.
Trusted Firmware-M
******************
* TF-M was updated to 2.1.0. Release notes can be found at:
https://tf-m-user-guide.trustedfirmware.org/releases/2.1.0.html
* Support for MCUboot signature types other than RSA-3072 has been added.
The type can be chosen with the :kconfig:option:`CONFIG_TFM_MCUBOOT_SIGNATURE_TYPE` Kconfig option.
Using EC-P256, the new default, reduces flash usage by several KBs compared to RSA.
LVGL
****
LVGL was updated to 8.4.0. Release notes can be found at:
https://docs.lvgl.io/8.4/CHANGELOG.html#v8-4-0-19-march-2024
Additionally, the following changes in Zephyr were done:
* Added support to place memory pool buffers in ``.lvgl_heap`` section by enabling
:kconfig:option:`CONFIG_LV_Z_MEMORY_POOL_CUSTOM_SECTION`
* Removed kscan-based pointer input wrapper code.
* Corrected encoder button behavior to emit ``LV_KEY_ENTER`` events correctly.
* Improved handling for :samp:`invert-{x,y}` and ``swap-xy`` configurations.
* Added ``LV_MEM_CUSTOM_FREE`` call on file closure.
* Added missing Kconfig stubs for DMA2D symbols.
* Integrated support for LVGL rounder callback function.
Tests and Samples
*****************
* Added snippet for easily enabling UART over Bluetooth LE by passing ``-S nus-console`` during
``west build``. This snippet sets the :kconfig:option:`CONFIG_BT_ZEPHYR_NUS_AUTO_START_BLUETOOTH`
which allows non-Bluetooth samples that use the UART APIs to run without modifications
(e.g.: Console and Logging examples).
* Removed ``GSM_PPP`` specific configuration overlays from samples ``net/cloud/tagoio`` and
``net/mgmt/updatehub``. The ``GSM_PPP`` device driver has been deprecated and removed. The new
``MODEM_CELLULAR`` device driver which replaces it uses the native networking stack and ``PM``
subsystem, which like ethernet, requires no application specific actions to set up networking.
* Removed ``net/gsm_modem`` sample as the ``GSM_PPP`` device driver it depended on has been
deprecated and removed. The sample has been replaced by the sample ``net/cellular_modem``
based on the ``MODEM_CELLULAR`` device driver.
* BT LE Coded PHY is now runtime tested in CI with the nrf5x bsim targets.
* External ethernet network interfaces have been disabled in the ``tests/net`` tests, since these
tests are meant to use simulated network interfaces.
Issue Related Items
*******************
Known Issues
============
- :github:`74345` - Bluetooth: Non functional on nRF51 with fault
Part 3
한국어 전문 번역
Zephyr 3.7.0
Zephyr 3.7.0 릴리스를 발표합니다.
이 릴리스는 maintenance 전용을 제외한 마지막 3.x 릴리스이며, 다음 Long Term Support(LTS) 릴리스입니다.
이번 릴리스의 주요 개선 사항은 다음과 같습니다.
- SoC와 board의 이름·정의·구성 방식을 바꾸는 전면 개편된 hardware model v2를 도입했습니다. 자세한 이전 방법은 board porting guide에서 설명합니다.
- HTTP/1.1과 HTTP/2 server를 쉽게 구현하는 새 HTTP Server library와 service API를 추가했습니다. Resource를 정적·동적으로 등록할 수 있고 WebSocket도 지원합니다.
- POSIX 지원을 확장해 IEEE 1003-2017 System Interfaces의 대부분 option과 PSE51, PSE52, PSE53에 필요한 대부분의 option 및 option group을 지원합니다.
- Bluetooth Host에 Nordic UART Service(NUS), Hands-free Audio Gateway(AG), A2DP, AVDTP 지원을 추가했습니다.
- Sensor abstraction model을 read-then-decode 방식으로 개편해 기존 fetch/get API보다 다양한 sensor와 data flow를 지원합니다.
- Zephyr source tree 밖에서도 custom extension을 쉽게 개발·통합할 수 있는 LLEXT Extension Developer Kit(EDK)를 추가했습니다.
- Native simulator가 복잡한 host 설정 없이 host의 native networking stack을 활용할 수 있게 됐습니다.
- LTS 릴리스인 Trusted Firmware-M(TF-M) 2.1.0과 Mbed TLS 3.6.0을 통합했습니다. TinyCrypt는 보안성과 성능을 개선한 PSA Crypto로 대체했습니다.
- Device 사이의 시간을 1 microsecond보다 높은 정밀도로 동기화하는 experimental PTP(Precision Time Protocol, IEEE 1588) 구현을 추가했습니다.
- VS Code와 CLion용 local development environment 설정 문서를 추가했습니다.
Zephyr v3.6.0 application을 v3.7.0으로 이전할 때 필요한 변경과 권장 사항은 별도 migration guide에서 설명합니다.
release의 이전 3.x 버전의 release 메모를 전체 변경 로그를 참조할 수 있지만, 이전 LTS release, Zephyr 2.7.0 이후의 다른 주요 개선 및 변경 사항은 다음과 같습니다:
- 새로운 기본 C library로 Picolibc에 대한 지원이 추가되었습니다.
- 다음 유형의 하드웨어 주변기기들에 대한 추가 지원:
- 1-Wire
- 배터리 충전기
- 셀룰러 Modem
- 연료 측정기
- GNSS
- 하드웨어 스핀록
- I3C
- RTC(Real-Time Clock)
- SMBus
- 스니펫 지원이 추가되었습니다. 스니펫은 플랫폼에서 사용할 수있는 일반적인 구성 설정입니다.
- 연결 가능한 로딩 가능한 확장자 (LLEXT) 에 대한 추가 지원
- 갱신 변경 사항의 요약 (더 자세한 내용은 release 메모 및 이전 release 메모의 마이그레이션 가이드 참조):
- Zephyr의 모든 퍼블릭 헤더들은
include/zephyr로 옮겨졌습니다. 즉, 포함될 때<zephyr/...>로 앞장서야 합니다. - 핀무크스 API는 제거 되었습니다. 핀 컨트롤은 대체로 사용되어야 합니다. 자세한 내용은
pinctrl-guide에 참조하십시오. - 아래와 같은 오래된 또는 실험적인 특징은 제거되었습니다.
- 6LoCAN
- civetweb 모듈. Zephyr 3.7의 새로운
http_server_interface를 대체할 수 있습니다. - 크보르 모듈을 대체할 수 있습니다.
- Zephyr의 모든 퍼블릭 헤더들은
다음 절은 구성요소별 상세 변경 목록입니다.
보안 취약점 관련
이 릴리스에서는 다음 CVE를 해결했습니다.
더 자세한 정보는 Zephyr 보안 취약점 문서에서 확인할 수 있습니다: https://docs.zephyrproject.org/latest/security/vulnerabilities.html
- CVE-2024-3077은 Zephyr project 보안 권고 GHSA-gmfv-4vfh-2mh8에서 추적합니다: https://github.com/zephyrproject-rtos/zephyr/security/advisories/GHSA-gmfv-4vfh-2mh8
- CVE-2024-3332는 Zephyr project 보안 권고 GHSA-jmr9-xw2v-5vf4에서 추적합니다: https://github.com/zephyrproject-rtos/zephyr/security/advisories/GHSA-jmr9-xw2v-5vf4
- CVE-2024-4785는 2024년 8월 7일까지 embargo가 적용된 문제입니다.
- CVE-2024-5754는 2024년 9월 4일까지 embargo가 적용된 문제입니다.
- CVE-2024-5931은 2024년 9월 10일까지 embargo가 적용된 문제입니다.
- CVE-2024-6135는 2024년 9월 11일까지 embargo가 적용된 문제입니다.
- CVE-2024-6137은 2024년 9월 11일까지 embargo가 적용된 문제입니다.
- CVE-2024-6258은 2024년 9월 5일까지 embargo가 적용된 문제입니다.
- CVE-2024-6259는 2024년 9월 12일까지 embargo가 적용된 문제입니다.
- CVE-2024-6442는 2024년 9월 22일까지 embargo가 적용된 문제입니다.
- CVE-2024-6443는 2024년 9월 22일까지 embargo가 적용된 문제입니다.
- CVE-2024-6444는 2024년 9월 22일까지 embargo가 적용된 문제입니다.
API 변경
이 릴리스에서 제거된 API
- Bluetooth subsystem 특정 디버그 기호는 제거되고 Zephyr logging 기호로 대체되었습니다.
- Legacy
pcie_probe및pcie_bdf_lookup기능을 PCIe API에서 제거했습니다. - 폐기 예정
CONFIG_EMUL_EEPROM_AT2XKconfig 옵션이 제거되었습니다. pm_device_state_lock,pm_device_state_is_locked및pm_device_state_unlock함수를 Device PM APIs에서 제거했습니다.- 폐기 예정 MCUmgr transport API 기능을 제거:
zephyr_smp_rx_req,zephyr_smp_alloc_rsp및zephyr_smp_free_buf.
이 릴리스에서 폐기 예정으로 지정된 항목
- Bluetooth 광고주 옵션
BT_LE_ADV_OPT_USE_NAME및BT_LE_ADV_OPT_FORCE_NAME_IN_AD는 이제 폐기 예정입니다. 따라서 다음 macro도 폐기 예정입니다:BT_LE_ADV_CONN_NAMEBT_LE_ADV_CONN_NAME_ADBT_LE_ADV_NCONN_NAMEBT_LE_EXT_ADV_CONN_NAMEBT_LE_EXT_ADV_SCAN_NAMEBT_LE_EXT_ADV_NCONN_NAMEBT_LE_EXT_ADV_CODED_NCONN_NAME
Application 개발자는 이제 광고 데이터를 업데이트하거나 response 스캔 데이터를 통해 광고된 이름을 직접 설정해야 합니다.
- CAN
can_calc_prescalerAPI 함수는 비트레이트 오류를 허용하기 때문에 비트레이트 오류는 동일한 network의 노드 사이의 비트레이트 오류가 발생하여 프레임 시작 (SOF) 동기화 후에 분리되어 버스 오류로 이어집니다.can_get_min_bitrate및can_get_max_bitrateAPI 기능이can_get_bitrate_min및can_get_bitrate_max대신 축소되었습니다.CAN_MAX_STD_ID및CAN_MAX_EXT_ID매크로를CAN_STD_ID_MASK및CAN_EXT_ID_MASK대신 축소했습니다.
- PM
CONFIG_PM_DEVICE_RUNTIME_EXCLUSIVE를 폐기 예정으로 지정했습니다. 유사한 동작은CONFIG_PM_DEVICE_SYSTEM_MANAGED로 구현할 수 있습니다.
- POSIX API
- 폐기 예정이던
PTHREAD_BARRIER_DEFINE을 제거했습니다. - 폐기 예정이던
EFD_IN_USE와EFD_FLAGS_SET을 제거했습니다. - IEEE 1003.1-2017의 옵션 및 옵션 그룹에 직접 매핑하는 Kconfig 옵션을 사용하려는 노력에서 다음과 같은 Kconfig 옵션이 폐기 예정으로 지정됐습니다 (이 대신):
CONFIG_EVENTFD_MAX(CONFIG_ZVFS_EVENTFD_MAX)CONFIG_FNMATCH(CONFIG_POSIX_C_LIB_EXT)CONFIG_GETOPT(CONFIG_POSIX_C_LIB_EXT)CONFIG_MAX_PTHREAD_COUNT(CONFIG_POSIX_THREAD_THREADS_MAX)CONFIG_MAX_PTHREAD_KEY_COUNT(CONFIG_POSIX_THREAD_KEYS_MAX)CONFIG_MAX_TIMER_COUNT(CONFIG_POSIX_TIMER_MAX)CONFIG_POSIX_LIMITS_RTSIG_MAX(CONFIG_POSIX_RTSIG_MAX)CONFIG_POSIX_CLOCK(CONFIG_POSIX_CLOCK_SELECTION,CONFIG_POSIX_CPUTIME,CONFIG_POSIX_MONOTONIC_CLOCK,CONFIG_POSIX_TIMERS,CONFIG_POSIX_TIMEOUTS)CONFIG_POSIX_FS(CONFIG_POSIX_FILE_SYSTEM)CONFIG_POSIX_MAX_FDS(CONFIG_POSIX_OPEN_MAX및CONFIG_ZVFS_OPEN_MAX)CONFIG_POSIX_MAX_OPEN_FILES(CONFIG_POSIX_OPEN_MAX및CONFIG_ZVFS_OPEN_MAX)CONFIG_POSIX_MQUEUE(CONFIG_POSIX_MESSAGE_PASSING)CONFIG_POSIX_PUTMSG(CONFIG_XOPEN_STREAMS)CONFIG_POSIX_SIGNAL(CONFIG_POSIX_SIGNALS)CONFIG_POSIX_SYSCONF(CONFIG_POSIX_SINGLE_PROCESS)CONFIG_POSIX_UNAME(CONFIG_POSIX_SINGLE_PROCESS)CONFIG_PTHREAD(CONFIG_POSIX_THREADS)CONFIG_PTHREAD_BARRIER(CONFIG_POSIX_BARRIERS)CONFIG_PTHREAD_COND(CONFIG_POSIX_THREADS)CONFIG_PTHREAD_IPC(CONFIG_POSIX_THREADS)CONFIG_PTHREAD_KEY(CONFIG_POSIX_THREADS)CONFIG_PTHREAD_MUTEX(CONFIG_POSIX_THREADS)CONFIG_PTHREAD_RWLOCK(CONFIG_POSIX_READER_WRITER_LOCKS)CONFIG_PTHREAD_SPINLOCK(CONFIG_POSIX_SPIN_LOCKS)CONFIG_SEM_NAMELEN_MAX(CONFIG_POSIX_SEM_NAMELEN_MAX)CONFIG_SEM_VALUE_MAX(CONFIG_POSIX_SEM_VALUE_MAX)CONFIG_TIMER(CONFIG_POSIX_TIMERS)CONFIG_TIMER_DELAYTIMER_MAX(CONFIG_POSIX_DELAYTIMER_MAX)
- 폐기 예정이던
POSIX API migration guide <zephyr_3.7_posix_api_migration>를 보세요.
- SPI
- 폐기 예정인
spi_is_readyAPI 기능은 제거되었습니다. - 폐기 예정인
spi_transceive_asyncAPI 기능은 제거되었습니다. - 폐기 예정인
spi_read_asyncAPI 기능은 제거되었습니다. - 폐기 예정인
spi_write_asyncAPI 기능은 제거되었습니다.
- 폐기 예정인
Architecture
- ARC
- ARC MWDT toolchain 목표물에 대한 지원이 추가되었습니다
- 추가 된 HW memory 장벽 API 멀티코어 목표물에 대한 지원
- 기본으로 TLS를 활성화하면 ARC MWDT toolchain의 경우 C++를 사용합니다
- 문제 해결 mbedtls build ARC MWDT toolchain & 최소 LibC로 build ARC MWDT toolchain & 최소 LibC 때문에 잘못된 정의를 통해 경계 확인 인터페이스 C library 확장
- ARC MWDT toolchain의 경우 수정: device 연기 초기화
- ARM
- Cortex-M85 Core에 대한 초기 지원이 추가되었습니다
- ARM64
- 배트트레이스에 구현된 상징 이름,
CONFIG_SYMTAB를 선택하여 활성화 - Cortex-R82에 compiler 조정을 추가
- 배트트레이스에 구현된 상징 이름,
- RISC-V
- fault에서 유발된 치명적인 오류 message는 이제 호출 저장 레지스터 상태를 포함합니다.
- 구현된 stack 풀기
- 프레임 포인터를 선택하여 약간 증가한 크기와 속도 감소에 의해 정확한 stack 추적을 가능하게 할 수 있습니다.
CONFIG_EXCEPTION_STACK_TRACE_SYMTAB를 선택하여 상징 이름을 활성화할 수 있습니다.
- Xtensa
- save/restore HiFi AudioEngine 레지스터에 추가 지원
- MPU를 사용할 수 있는 지원이 추가되었습니다.
- interrupt 핸들러를 자동으로 생성하기 위한 추가 지원
- 링크 스크립트에 포함될 build 시간에 벡터 테이블을 생성하는 데 추가된 지원.
- kconfig
CONFIG_XTENSA_BREAK_ON_UNRECOVERABLE_EXCEPTIONS를 추가하여 복구할 수 없는 예외를 위해 휴식 지침을 사용하여 보호합니다. 이 kconfig를 통해 휴식 지침을 활성화하면 무한한 interrupt 폭풍이 발생할 수 있습니다. - 7th argument를 syscall를 통해 통과하는 문제가 잘못 처리되었습니다.
arch_user_string_nlen가 지도가 없는 memory에 접근한 결과 복구 불가능한 예외가 발생한 문제를 해결했습니다.
Kernel
k_uptime_seconds기능을 추가하여k_uptime_get() / 1000사용을 단순화합니다.k_realloc를 추가하여 kernel 힙을 사용하여 전통적인realloc의미론을 구현합니다.- Devices는 이제 devicetree 메타데이터를 저장할 수 있습니다. 예를 들어,
CONFIG_DEVICE_DT_METADATA를 활성화함으로써 노드 레이블과 같은 devicetree 메타데이터를 저장할 수 있습니다. 이 옵션은 devices와 같은 인간 친화적인 이름을 사용하여 얻을 수 있기 때문에 껍질에서 유용 할 수 있습니다. - 모든 device 초기화는 devicetree node와 관련된 devicetree node가 특별한
zephyr,deferred-init속성을 가지고 있다면 연기 될 수 있습니다. device는device_init을 사용하여 나중에 초기화 될 수 있습니다. - 정적으로 할당된 thread 스택의 선언은
K_THREAD_STACK_LEN단일 thread stack 선언과 배열 thread stack 선언을 모두 사용할 수 있도록 업데이트되었습니다. 이것은 모든 thread 스택의 올바른 조화를 보장합니다. threads 사용자에게는, 이것은 architecture 조화를 요구 사항에 따라 정적으로 할당된 stack 객체의 크기를 증가시킬 수 있습니다. k_thread_abort(그리고 가입) 에서 가장자리 케이스 스태플을 수정하여 SMP 시스템에서 ISRs 경주하는 경우 서로가 중단된 threads를 신호하는 회전에 갇힐 수 있습니다.CONFIG_SCHED_SCALABLE와CONFIG_SCHED_DEADLINE가 함께 사용할 때 스케줄링 줄을 손상시킬 수 있는 버그를 수정합니다.
Bluetooth
- Audio
bt_bap_broadcast_assistant_cb.recv_state_removed에서err를 제거했습니다.broadcast_audio_assistantsample은bap_broadcast_assistant로,broadcast_audio_sink는bap_broadcast_sink로,broadcast_audio_source는bap_broadcast_source로,unicast_audio_client는bap_unicast_client로,unicast_audio_server는bap_unicast_server로,public_broadcast_sink는pbp_public_broadcast_sink로,public_broadcast_source는pbp_public_broadcast_source로 이름을 변경했습니다.- CAP 커맨더와 CAP 시니에이터는 이제 CAS을
BT_CAP_SET_TYPE_AD_HOC세트에서 발견할 필요가 없습니다. 이것은 CAP 수용기 역할을 구현하지 않는 BAP 유니캐스트 서버에서 이러한 APIs를 application을 사용할 수 있습니다.
- Host
- 추가된 노르딕 UART 서비스 (NUS) 는
CONFIG_BT_ZEPHYR_NUS에 의해 활성화되었습니다. 이 서비스는 GATT 서비스의 여러 인스턴스를 선언할 수 있는 기능을 공개하여 여러 일련의 엔드포인트를 다른 목적으로 사용할 수 있습니다. CONFIG_BT_HFP_AG(Hands-free Audio Gateway) 를 구현하여CONFIG_BT_HFP_AG(Hands-free Audio) 를 통해 작동한다. audio의 게이트웨이인 device로 작동한다. 전형적인 device는 Audio 게이트웨이로서 작용하는 휴대 전화이다. device (Hands-free Unit) 를 제어한다. 즉 원격 audio 입력 및 출력 메커니즘이다.CONFIG_BT_A2DP(Audio) 및 Audio/Video (AVDTP) 유통 transport 프로토콜 (AVDTP) 를 구현한 고급 Audio 유통 프로파일 (A2DP) 및 Audio/Video 유통 transport 프로토콜 (AVDTP) 은CONFIG_BT_A2DP, AVDTP는CONFIG_BT_AVDTP에 의해 활성화되어 있습니다. 그들은 고품질의 audio 콘텐츠를 단일, 스테레오 또는 다채널 모드로 유통하는 프로토콜과 절차를 구현합니다. 전형적인 사용 사례는 스테레오 음악 플레이어에서 헤드폰 또는 스피커로 음악 콘텐츠의 스트리밍입니다. audio 데이터는 제한된 대역폭을 효율적으로 사용하기 위해 적절한 형식으로 압축됩니다.- 데이터 및 명령어 전송 경로를 재작업하였다. "BT TX" thread는 HCI 조각 및 L2CAP 세그먼트의 buffer 풀과 함께 제거되었다. Controller와의 모든 통신은 이제 시스템 워크큐 컨텍스트에서만 수행됩니다.
CONFIG_BT_PER_ADV_SYNC_TRANSFER_RECEIVER및CONFIG_BT_PER_ADV_SYNC_TRANSFER_SENDER는 연결 없이 작동하지 않기 때문에 이제CONFIG_BT_CONN에 의존합니다.- Bluetooth 클래식 키 트로스레이를 지원하기 위해
bt_foreach_bond를 개선합니다.
- 추가된 노르딕 UART 서비스 (NUS) 는
- HCI Drivers
- HCI driver 인터페이스를 완전히 재설계했습니다. 자세한 내용은 Bluetooth HCI 섹션에서 참조하십시오.
- Ambiq Apollo3 블루 시리즈에 대한 추가 지원
- NXP RW61x에 대한 추가 지원
- Infineon CYW208XX에 대한 추가 지원
- 레네사스 스마트보드 DA1469x에 대한 추가 지원
- 유지되지 않은 B91 driver를 제거했습니다.
- NXP IW612에 대한 추가 지원은 boards mimxrt1170_evkb 및 mimxrt1040_evk에 있습니다.
Board 및 SoC 지원
- 이러한 SoC 시리즈에 대한 추가 지원:
- Ambiq Apollo3 블루 및 Apollo3 블루 플러스 SoC 시리즈에 대한 추가 지원
- Synopsys ARC-V RMX1xx 시뮬레이션 플랫폼에 대한 추가 지원
- STM32H7R/S SoC 시리즈에 대한 추가 지원
- NXP mke15z7, mke17z7, mke17z9, MCXNx4x, RW61x에 대한 추가 지원
- Analog Devices MAX32 SoC 시리즈에 대한 추가 지원
- 인피네온 테크놀로지즈 AIROC에 대한 지원이 추가되었습니다.
- 미디어테크 MT8195 Audio DSPs에 대한 추가 지원
- 누보톤 누메이커 M2L31X SoC 시리즈에 대한 추가 지원
- 마이크로칩 PolarFire ICICLE Kit SMP 변형에 대한 추가 지원
- Renesas RA8 시리즈 SoC에 대한 추가 지원
- 다른 SoC 시리즈에서 다음과 같은 변경 사항을 수행했습니다:
- 인텔 ACE Audio DSP: 임의의 boot 상태가 아닌 boot을 보고하기 위해 전용 레지스터를 사용하십시오.
- ITE: 모든 ITE SoC 버전에 Kconfig 기호의 이름을 변경합니다.
- STM32: ART 가속기, I- 캐시, D- 캐시 및 compatible 시리즈에서 미리 예약이 활성화되었습니다.
- STM32H5: 정지 모드와
CONFIG_PM에 대한 추가 지원 - STM32WL: GHz sub-SPI 주파수가 12에서 8MHz까지 감소합니다.
- STM32C0:
CONFIG_POWEROFF에 대한 추가 지원 - STM32U5: Stop3 모드에 대한 추가 지원
- 시냅스:
- nsim: arc_classic (ARCv2 및 ARCv3 ISA 기반) 및 arc_v (RISC-V ISA 기반) 의 분할 nsim 플랫폼
- nsim/nsim_hs5x/smp: clock 주파수를 다른 SMP nSIM 구성과 조정
- NXP IMX8M: 추가 리소스 도메인 controller 지원
- NXP s32k146: RTC clock 소스를 내부 오스틸러로 설정
- GD32F4XX: 잘못된 uart4 irq 번호가 수정되었습니다.
- 노르딕 nRF54L: FLPR (고속 가벼운 프로세서) RISC-V CPU에 대한 추가 지원
- Espressif: 모든 ESP32 SoC 변종에서 idf-bootloader 의존성을 제거했습니다.
- Espressif: boot SoC 변종에 대한 간단한 boot 지원을 추가하여 ESP32 단계 부트로드 없이 단일 바이너리 이미지를 사용하여 application를 로드 할 수 있습니다.
- Espressif: 모든 SoCs memory 지도를 재작업하고 최적화했습니다.
- 리텍스:
sys_arch_reboot()에 대한 추가 지원CONFIG_RISCV_ISA_EXT_A는 더 이상 실수로 y- 선택되지 않습니다.
- rp2040: 독자적인 UART driver는 종료되어 PL011로 대체되었습니다.
- Renesas RZ/T2M: 시스템 Clock 제어 레지스터에 기본값이 추가되었습니다.
- 이 boards에 대한 추가 지원:
Ambiq Apollo3 Blue board <apollo3_evb>에 대한 추가 지원:apollo3_evb.Ambiq Apollo3 Blue Plus board <apollo3p_evb>에 대한 추가 지원:apollo3p_evb.Raspberry Pi 5 board <rpi_5>에 대한 추가 지원:rpi_5.Seeed Studio XIAO RP2040 board <xiao_rp2040>에 대한 추가 지원:xiao_rp2040.Mikroe RA4M1 Clicker board <mikroe_clicker_ra4m1>에 대한 추가 지원:mikroe_clicker_ra4m1.Arduino UNO R4 WiFi board <arduino_uno_r4>에 대한 추가 지원:arduino_uno_r4_wifi.Renesas EK-RA8M1 board <ek_ra8m1>에 대한 추가 지원:ek_ra8m1.ST Nucleo H533RE <nucleo_h533re_board>에 대한 추가 지원:nucleo_h533re.ST STM32C0116-DK Discovery Kit <stm32c0116_dk_board>에 대한 추가 지원:stm32c0116_dk.ST STM32H745I Discovery <stm32h745i_disco_board>에 대한 추가 지원:stm32h745i_disco.ST STM32H7S78-DK Discovery <stm32h7s78_dk_board>에 대한 추가 지원:stm32h7s78_dk.ST STM32L152CDISCOVERY board <stm32l1_disco_board>에 대한 추가 지원:stm32l152c_disco.ST STEVAL STWINBX1 Development kit <steval_stwinbx1_board>에 대한 추가 지원:steval_stwinbx1.- NXP boards에 대한 추가 지원:
frdm_mcxn947,ke17z512,rd_rw612_bga,frdm_rw612,frdm_ke15z,frdm_ke17z Synopsys ARC-V RMX1xx nSIM-based simulation platform <nsim_arc_v>에 대한 추가 지원:nsim_arc_v/rmx100.Analog Devices MAX32690EVKIT <max32690_evkit>에 대한 추가 지원:max32690evkit.Analog Devices MAX32680EVKIT <max32680_evkit>에 대한 추가 지원:max32680evkit.Analog Devices MAX32672EVKIT <max32672_evkit>에 대한 추가 지원:max32672evkit.Analog Devices MAX32672FTHR <max32672_fthr>에 대한 추가 지원:max32672fthr.Analog Devices MAX32670EVKIT <max32670_evkit>에 대한 추가 지원:max32670evkit.Analog Devices MAX32655EVKIT <max32655_evkit>에 대한 추가 지원:max32655evkit.Analog Devices MAX32655FTHR <max32655_fthr>에 대한 추가 지원:max32655fthr.Analog Devices AD-APARD32690-SL <ad_apard32690_sl>에 대한 추가 지원:ad_apard32690_sl.Infineon Technologies CYW920829M2EVK-02 <cyw920829m2evk_02>에 대한 추가 지원:cyw920829m2evk_02.Nuvoton Numaker M2L31KI board <nuvoton_m2l31ki>에 대한 추가 지원:numaker_m2l31ki.Espressif ESP32-S2 DevKit-C <esp32s2_devkitc>에 대한 추가 지원:esp32s2_devkitc.Espressif ESP32-S3 DevKit-C <esp32s3_devkitc>에 대한 추가 지원:esp32s3_devkitc.Espressif ESP32-C6 DevKit-C <esp32c6_devkitc>에 대한 추가 지원:esp32c6_devkitc.Waveshare ESP32-S3-Touch-LCD-1.28 <esp32s3_touch_lcd_1_28>에 대한 추가 지원:esp32s3_touch_lcd_1_28.M5Stack ATOM Lite <m5stack_atom_lite>에 대한 추가 지원:m5stack_atom_lite.CTHINGS.CO Connectivity Card nRF52840 <ctcc_nrf52840>에 대한 추가 지원:ctcc_nrf52840.
- 이 board 변경을 했습니다:
ST STM32H7B3I Discovery Kit <stm32h7b3i_dk_board>:stm32h7b3i_dk_board:stm32h7b3i_dk_board, 완전한 캐시 관리 기능을, Chrom-ART, 이중 프레임 buffer 및 최적의 LVGL 성능을 위한 완전한 업데이트.- ST STM32 boards에서, stm32cubeprogrammer 런어는 이제
--extload옵션을 사용하여 외부 flash을 프로그래밍하는 데 사용할 수 있습니다. - 모든 NXP boards에 Linkserver 파일 지원을 추가
- 링크서버 west 런어를 업데이트하여 링크서버 CLI의 v1.5.xx에 대한 변경 사항을 반영합니다
- NXP
mimxrt1010_evk,mimxrt1160_evk,frdm_rw612,rd_rw612_bga,frdm_mcxn947에 링크서버 지원을 추가합니다 - 시뮬레이션된
nrf54l15bsim<nrf54l15bsim>목표물을 소개했습니다. - nrf5x bsim 목표물은 이제 BT LE 코딩된 PHY를 지원합니다.
- LLVM 퓨징 지원은 native_sim에 대한 지원이 추가되는 동안 재조정되었습니다.
- nRF54H20 PDK (전 release) 로 변환
- PPR core의 목표물은
nrf54h20dk_nrf54h20에서 기본적으로 RAM에서 실행됩니다.xip의 새로운 변형이 도입되었습니다. beagleconnect_freedom외부 안테나 스위치 조작- nRF5340 Audio DK에 대한 Arduino dts node 레이블이 추가되었습니다.
- nRF54L15 PDK의 기본 개정을 0.2.1에서 0.3.0로 변경했습니다.
- boards에서 nRF5340 SoC를 기반으로 network core 포스-OFF 신호를 제어하는 레지스터에 대한 직접 접근을 network core 사용량을 추적하기 위해 전면 관리자를 사용하는 모듈로 대체하고
<nrf53_cpunet_mgmt.h>에서 API를 노출합니다. - 라이어드 커넥티비티 boards는 에즈리오로 명칭이 변경되었습니다.
- 다음 shields에 대한 추가 지원:
adafruit_2_8_tft_touch_v2(adafruit_2_8_tft_touch_v2)adafruit_neopixel_grid_bff(adafruit_neopixel_grid_bff)arduino_uno_click(arduino_uno_click)dvp_fpc24_mt9m114(dvp_fpc24_mt9m114)lcd_par_s035(lcd_par_s035)mikroe_weather_click(mikroe_weather_click)nxp_btb44_ov5640(nxp_btb44_ov5640)reyax_lora(reyax_lora)rk043fn02h_ct(rk043fn02h_ct)rk043fn66hs_ctg(rk043fn66hs_ctg)rpi_pico_uno_flexypin(rpi_pico_uno_flexypin)seeed_xiao_expansion_board(seeed_xiao_expansion_board)seeed_xiao_round_display(seeed_xiao_round_display)sparkfun_carrier_asset_tracker(sparkfun_carrier_asset_tracker)st_b_lcd40_dsi1_mb1166(st_b_lcd40_dsi1_mb1166)waveshare_epaper(waveshare_epaper)x_nucleo_bnrg2a1(x_nucleo_bnrg2a1)
Build System 및 Infrastructure
- CI-enabled 블랙박스 tests는 대부분의 트위스터 flag의 정확성을 확인하기 위해 추가되었습니다.
- Application에
socsfolder를 도입했습니다. 특정 SoC와 board qualifier를 사용하는 모든 board target에 적용할 Kconfig fragment와 devicetree overlay를 이곳에 둘 수 있습니다. GitHub 참조:70418. Sysbuild도 이를 지원합니다. GitHub 참조:71320. Board/SoC flashing configuration<flashing-soc-board-config>설정이 추가되었습니다 (69748).- C 표준 버전을 선택하기 위해
CONFIG_STD_C선택 대신 전 세계 CSTD cmake 속성을 저하했습니다. 추가로, 하위 시스템은 최소 요구되는 C 표준 버전을 선택 할 수 있습니다. 예를 들어,CONFIG_REQUIRES_STD_C11. - Sysbuild (
74152) 를 사용하는 애플리케이션에 UTF-8를 구성하는 문제가 해결되었습니다. - sysbuild 프로젝트의 도메인 파일이 sysbuild 구성 변경될 경우 구시된 정보로 로드되고 사용될 수 있는 문제 해결, 그리고
west flash는 바로 후에 실행되었습니다 (73864). - Kconfig 파일 집합 (
72070) 를 가지고 있지 않은 경우 sysbuild에 나열되지 않은 Zephyr 모듈의 문제가 해결되었습니다. - 추가된 sysbuild
SB_CONFIG_COMPILER_WARNINGS_AS_ERRORSKconfig 옵션은 설정된 경우 (70217) 의 모든 이미지에 "warning 오류로" toolchain 플래그를 활성화합니다. - 프로젝트에서 사용되는 파일 (예를 들어, devicetree 상복 또는 Kconfig 조각) 이 올바르게 관찰되지 않았으며, CMake는 변경될 경우 재구성되지 않을 경우 문제가 해결되었습니다 (
74655). - 링크서버 런어의 인텔 헤엑스 파일의 flash 지원이 추가되었습니다.
- sysbuild
sysbuild/CMakeLists.txt입점 및 sysbuild 기능 (72923) 을 조정할 수 있는APPLICATION_CONFIG_DIR에 대한 지원이 추가되었습니다. - 고안된 문제로 armfvp 검색 경로는 대장 분리된 리스트 (
74868) 를 포함하면 - 버전.cmake 필드 크기가 적용되지 않은 문제가 해결되었습니다 (
74357). - sysbuild이
EXTRA_CONF_FILE를 처리하기 전에 제거하지 않은 문제로 이 옵션이 이미지에 전달되는 것을 막았습니다 (74082). - 기존 루트 모듈과 유사한 기능을 하는 sysbuild 루트 지원이 추가되어
APP_DIR(73390) 에 대한 경로를 조정합니다. - 누락된 점 (
73051) 에 대한 warning/error message가 추가되었습니다. - 일부 시스템 (
72232) 에서 올바른 파이썬 실행 가능한 탐지 문제가 해결되었습니다. - 전체 application (
69519) 의 LTO를 활성화하는 추가 지원 - Sysbuild에서
FILE_SUFFIX의 두 번째 application, Sysbuild에서 application가 아닌 application 및 CMake 함수 (70124,71280) 에서 변수 이름 충돌에 관한FILE_SUFFIX문제 해결 CONFIG_SIZE_OPTIMIZATIONS_AGGRESSIVE(70511) 를 사용하여 새로운 공격적인 크기의 최적화 플래그 (GCC 및 Clang) 에 대한 추가 지원BUILD_VERSION이 비어 있을 때 출력하던 문제를 수정했습니다. GitHub 참조:70970.sysbuild_cache_set()CMake function이 중복 제거 과정에서 부분 일치를 잘못 감지하던 sysbuild 문제를 수정했습니다. GitHub 참조:71381.- 잘못된
VERSION파일 (71385) 을 감지하는 문제가 해결되었습니다. CONFIG_OUTPUT_DISASSEMBLY_WITH_SOURCE(71535) 를 사용하여 소스 code를 가진 출력 분리를 비활성화하는 추가 지원- 트위스터는 이제
--flash-before매개 변수를 지원하여 일련 포트 (47037) 를 열기 전에 DUT를 깜박이는 것을 허용합니다.
Driver 및 Sensor
- ADC
ADC_DT_SPEC_*BY_NAME()매크로를 추가하여 ADC IO-channel 정보를 DT에서 이름으로 얻을 수 있습니다.- 전압 편향을 위한 추가 지원:
- 전압 편향을 지원하는
CONFIG_ADC_CONFIGURABLE_VBIAS_PIN를 추가했습니다. - 전압 편향 핀을 설명하기 위해 adc-controller 기반 binding에
zephyr,vbias-pins속성을 추가했습니다. - TI ADC114s08 ADC driver에 적용되었습니다.
- 전압 편향을 지원하는
- Sample 변경 사항
- 기존의 ADC sample에 adc_dt로 명칭이 변경되었습니다.
- sample라는 새로운 sample를 추가했습니다. adc_sequence는 더 많은 실행 시간
adc_sequence기능을 보여줍니다.
- 새로운 ADC Drivers
- ENE KB1200에 driver가 추가되었습니다.
- NXP GAU ADC에 driver가 추가되었습니다.
- ADI AD559x 변경
- ADI의 ad5593에 대한 추가 지원
- ADI ad559x에 대한 I2C 버스 지원이 추가되었습니다.
- ad559x의 호출을 지원하기 위해 ad559x의 내부 참조 전압 값의 추가 구성
- driver 초기화 문제가 해결되어 ad559x driver에서
CONFIG_THREAD_NAME의 가용성에 대한 부적절한 작동을 일으켰습니다. - ad559x driver에서 ADC 읽기 효율과 검증을 향상시켰습니다.
- ESP32 변경 사항
- ESP32 ADC driver의 버전 5.1와 작동하도록 업데이트되었습니다.
- ESP32S3 및 ESP32C3의 DMA 모드 작동에 대한 추가 지원
- nRF 변경 사항
- nRF54L15 및 nRF54H20에 대한 추가 지원은 nrfx_saadc driver에 있습니다.
- 사용되지 않은 채널에서 폭발 모드를 비활성화함으로써 nRF SAADC driver을 개선했습니다.
adc_nrfx_saadc.cdevice driver을 사용하여 단말 모드에서 부정적인 ADC 판독을 허용한 문제가 수정되었습니다. 이 수정은 하드웨어 제한으로 인해 nRF54H 및 nRF54L 시리즈가 8-bit 해상도 단말 판독을 수행하는 것을 방지한다는 것을 참고하십시오.
- NXP LPADC 변경
- NXP LPADC driver에서 인수 시간 기능이 활성화되었습니다.
- NXP LPADC에 대한 참조로 조절기 출력을 위한 추가 지원
- DT 속성
nxp,reference-supply를 DT 속성nxp,references로 변경했습니다.nxp,lpc-lpadcbinding. NXP LPADC driver는 이제nxp,references를 사용하여 참조 전압 값을 통과하는 것을 지원합니다.
- 스마트보드 변경
- power management에 대한 지원이 추가되었습니다 Smartbond SDADC 및 GPADC drivers.
- Smartbond ADC driver에서
CONFIG_PM_DEVICE_RUNTIME에 대한 수정: 지원
- STM32 변경 사항
- STM32 ADC driver에서 DMA 지원에 대한 다양한 문제를 해결했습니다.
- STM32H7R/S 시리즈에 대한 추가 지원
- 다른 driver 변경 사항
- Numaker ADC driver에서 Nuvoton m2l31x에 대한 추가 지원
- ads1119 driver에서 구성 레지스터 액세스 문제가 해결되었습니다.
- 정적 분석에서 발견된 kb1200 driver에서 수정: 초기화되지 않은 값
adc_raw_to_millivolts에서 실제 전압의 절반을 반환하는 문제가 tla2021 driver에서 참조 전압 값을 수정함으로써 해결되었습니다.
- 누보톤 누메이커 M2L31X 시리즈에 대한 추가 지원
- 배터리
re-charge-voltage-microvolt속성을batterybinding에 추가했습니다. 이것은 자동으로 다시 충전하기 위해 한계를 설정할 수 있습니다.
- 배터리 백업 RAM
- STM32G0 및 STM32H5 시리즈에 대한 추가 지원
- CAN
- 자동 sample 점 위치에 대한 확장된 지원은
can_calc_timing및can_calc_timing_data를 포함합니다. min-bitratedevicetree 트랜스사이버에 대한 선택적min-bitratedevicetree 속성이 추가되었습니다.- devicetree 매크로
DT_CAN_TRANSCEIVER_MIN_BITRATE및DT_INST_CAN_TRANSCEIVER_MIN_BITRATE를 추가하여 CAN 트랜시버의 최소 지원 비트레이트를 얻습니다. - 내부
CAN_DT_DRIVER_CONFIG_GET및CAN_DT_DRIVER_CONFIG_INST_GET매크로에서 CAN controller에 의해 지원되는 최소한의 비트레이트를 지정하는 추가 지원 - 주어진 CAN controller/CAN 수신기 조합의 최소 및 최대 지원 비트 속도를 검색하기 위해
can_get_bitrate_min와can_get_bitrate_max를 추가했습니다. 이는 비트 속도 제한을 검색하는 것이 더 이상 실패할 수 없다는 것을 반영합니다. 기존의can_get_max_bitrateAPI 함수를 떨어뜨렸습니다. - BITRATE를 검증할 때 지원되는 최소 비트레이트를 고려하기 위해 CAN 타이밍 기능을 업데이트했습니다.
sample-point및sample-point-datadevicetree 특성을 선택적으로 만들었습니다.can_driver_config의bus_speed및bus_speed_data필드를bitrate및bitrate_data로 개칭합니다.- driver에
nordic,nrf-can를 추가했습니다. - Numaker M2L31X의 driver 지원이
nuvoton,numaker-canfddriver에 추가되었습니다. - host 통신 test 스위트를 추가했습니다.
- 자동 sample 점 위치에 대한 확장된 지원은
- 충전기
chgin-to-sys-current-limit-microamp속성을maxim,max20335-charger에 추가했습니다.system-voltage-min-threshold-microvolt속성을maxim,max20335-charger에 추가했습니다.re-charge-threshold-microvolt속성을maxim,max20335-charger에 추가했습니다.thermistor-monitoring-mode속성을maxim,max20335-charger에 추가했습니다.
- Clock 제어
- STM32H5 시리즈에서 마이크로 컨트롤러 Clock 출력 (MCO) 에 대한 추가 지원
- MSI clock에 대한 추가 지원
- 아날로그 Devices MAX32 SoC 시리즈에 driver가 추가되었습니다.
- 누보톤 누메이커 M2L31X 시리즈에 대한 추가 지원
- ESP32 clock 제어 driver를 ESP32-C6를 지원하기 위해 재조정된 ESP32 clock 제어
- 라이트X (
drivers/clock_control/clock_control_litex.c) 에 code의litex_clk_get_duty_cycle()및litex_clk_get_clkout_divider에 대한 code 확인이 추가되었습니다.
- Counter
- Ambiq Apollo3 시리즈에 대한 추가 지원
- STM32H7R/S 시리즈에 대한 추가 지원
- LPTMR에 NXP MCXN947를 추가
nxp,lptmrbinding에resolution속성을 추가하여 LPTMR 주변기 사용의 최대 너비를 비트로 나타냅니다.
- DAC
- NXP RW SOC 시리즈 DAC (
nxp,gau-dac) 에 대한 추가 지원 - 아날로그 Devices AD5691 / AD5692 / AD5693 DACs (
adi,ad5691,adi,ad5692및adi,ad5693) 에 대한 추가 지원 - Texas Instruments DACx0501 시리즈 DACs (
ti,dacx0501) 에 대한 추가 지원
- NXP RW SOC 시리즈 DAC (
- Disk
- eMMC devices에 대한 지원은 STM32 SD driver에 추가되었습니다. 이것은
CONFIG_SDMMC_STM32_EMMC로 활성화 될 수 있습니다. - 파일로 뒷받침된 device 디스크를 노출하기 위해 driver 루프백 디스크를 추가했습니다.
loopback_disk_access_register를 사용하여 driver 루프백 디스크로 파일을 등록할 수 있습니다 DISK_IOCTL_CTRL_INIT및DISK_IOCTL_CTRL_DEINIT매크로에 대한 지원이 추가되었습니다. 이는 실행 시간에 디스크를 초기화 및 비 초기화 할 수 있습니다. 이것은 핫플러그블 디스크 devices (SD 카드와 마찬가지로) 를 제거하고 실행 시간에 다시 삽입할 수 있습니다.- STM32H5 시리즈에 SDMMC 지원이 추가되었습니다.
- eMMC devices에 대한 지원은 STM32 SD driver에 추가되었습니다. 이것은
- Display
mipi_dbi_api를 지원할 수 있는 모든 트리 디스플레이는 사용하도록 변환되었습니다. GC9X01X, UC81XX, SSD16XX, ST7789V, ST7735R 기반 디스플레이는 이 API로 변환되었습니다. 이러한 디스플레이를 사용하는 Boards는 그들의 devicetree를 업데이트 할 필요가 있습니다. 이 프로세스의 예를 위해migration_3.7의 디스플레이 섹션을 참조하십시오.- ST7796S 디스플레이 controller (
sitronix,st7796s) 를 위한 driver 추가 display_readAPI에서 ILI9XXX 디스플레이 driver에 대한 추가 지원이CONFIG_ILI9XXX_READ로 활성화 될 수 있습니다display_set_orientationAPI에서 SSD16XXX 디스플레이 driver에 대한 추가 지원- NT35510 MIPI-DSI 디스플레이 controller (
frida,nt35510) 를 위해 driver 추가 - 추상적인 LED 스트립 devices에 driver를 디스플레이로 추가 (
led-strip-matrix) display_set_pixel_formatAPI에서 NXP eLCDIF driver에 대한 추가 지원. ARGB8888, RGB888 및 BGR565 형식이 지원됩니다.- SSD1306 driver,
display_set_pixel_formatAPI를 통해 실행 시간에 색을 역전하는 데 추가 지원. - 이제 ST7789V driver (
sitronix,st7789v) 에서inversion-off속성을 사용하여 역전 모드를 비활성화 할 수 있습니다. - NXP MCXNx4x에 추가 지원
- DMA
- 오류 callback 구성은 enable/disable 상태를 더 나은 신호로 변경되었습니다
- NXP MCXN947에 지원 추가
- DMIC
- NXP
rd_rw612_bga에 추가 지원
- NXP
- Entropy
- STM32H7R/S 시리즈에 대한 추가 지원
- EEPROM
address-width를zephyr,i2c-target-eeprom로 지정하는 추가 속성
- eSPI
- eSPI 1.5 사양의 새로운 용어와 일치하기 위해 eSPI 가상 와이어 방향 매크로, enum 값 및 Kconfig을 개칭합니다.
- Ethernet
CONFIG_ETH_DRIVER_RAW_MODE를 소개했습니다. 이 옵션은 Zephyr L2 ethernet 계층 없이 ethernet drivers을 구축할 수 있습니다.- ethernet 고정 링크 DT binding를 제거했습니다.
- ethernet drivers에서 VLAN 핸들링을 제거했습니다. 현재 일반 ethernet L2 code가 처리하고 있기 때문에.
- Implemented/reworked HW MAC eth_mcux, eth_nxp_enet, eth_nxp_s32_gmac, eth_stm32, eth_nxp_s32_netc drivers의 주소 필터링
- 새로운 Drivers
- 새로운 eth_nxp_enet_qos driver를 추가하여 ethernet controller에 NXP MCXN SOCs에 사용되었습니다.
- adin1100 FY에 대한 추가 지원
- 리얼텍 RTL8211F FY에 대한 추가 지원
- NXP ENET driver 변경
- eth_nxp_enet driver은 더 이상 실험적이지 않습니다.
- 저하된 eth_mcux driver
- 모든 boards 및 SOCs와
nxp,kinetis-ethernetcompatible 노드는 새로운nxp,enetbinding를 사용하기 위해 재작업되었습니다. - network device power management와 nxp_enet driver에 대한 지원이 추가되었습니다.
- eth_nxp_enet driver를 kernel에 의해 관리되는 RX에 대한 전용 작업열을 사용하기 위해 변환했습니다.
- IPV6가 eth_nxp_enet로 활성화될 때 하드웨어 체크섬 가속화가 비활성화되었으므로 하드웨어는 ICMPv6 체크섬 가속화를 지원하지 않습니다.
nxp,enet1g에 대한 추가 지원- 일부 플랫폼에서 nxp_enet MAC에 대한 통합 된 MAC 주소를 사용하는 지원이 추가되었습니다.
- LAA 비트가 설정되지 않은 문제와 nxp_enet driver와 사용되는 nxp,unique-mac 속성의 혼란스러운 설명이 수정되었습니다.
- 고정 캐시 유지가 DMA buffer에서 비 캐시 DMA nxp_enet driver를 사용할 때 활성화됩니다.
- MMIO 지도를 nxp_enet driver에 추가했습니다.
- 명확한 DSA는 eth_nxp_enet로 지원됩니다.
- NXP S32 ethernet 변경
- eth_nxp_s32_gmac driver는 이제
CONFIG_MDIO를 의미한다. - eth_nxp_s32_netc driver는 새로운 MBOX API를 사용하기 위해 업데이트되었습니다.
- eth_nxp_s32_gmac driver는 이제
- Adin2111 driver 변경
- IAMSK1 TX_READY_MASK의 비트 필드 위치를 바로 잡았습니다.
- adin2111 driver를 변경하여 항상 프레임 끝에 crc32를 첨부합니다.
- eth_adin2111 driver가 적절한 멀티스터 필터 마스크를 갖도록 조정되었습니다.
- adin2111 driver의 "crc8 없는 일반 SPI" 모드를 수정했습니다.
- 오픈 얼라이언스 SPI 프로토콜 지원이 adin2111 driver에 추가되었습니다.
- 추가 된 사용자 지정 driver 확장 APIs adin2111 driver
- adin2111 driver에서 비관성 모드를 지원합니다.
- 일반 SPI 프로토콜을 사용할 때 ~32KB 공간을 절약하기 위해 OA 버퍼를 adin2111 driver의 device 데이터에서 이동했습니다.
- build warning를 eth_adin2111 driver에서 64-bit 플랫폼에 고정했습니다.
- adin2111 driver에 대한 다양한 작은 변경 사항
- STM32 ethernet driver 변경
- compatible STM32 시리즈 (STM32F7, STM32H5 및 STM32H7) 에서 PTP에 대한 추가 지원
- eth_stm32를 변경하여 multitasking에서 충돌을 피하기 위해 phy APIs를 사용하여 phy에 액세스합니다.
- STM32Cube HAL API 시리즈의 STM32 F4, F7 및 H7 시리즈의 기존 STM32Cube HAL API 지원을 제거했습니다.
- RX/TX 시간표가 eth_stm32_hal driver에 추가된 지원
- ESP32 ethernet driver 변경
- esp32 ethernet driver에 MAC 주소를 실행 시간 동안 설정할 수 있는 지원이 추가되었습니다.
- esp32 ethernet driver의 버전 5.1와 작동하도록 업데이트되었습니다.
- esp32 ethernet driver의 수정: build
- 수정: ESP32 ethernet driver 외부 PHY를 GPIO에 대해 올바르게 클럭하지 않습니다.
- 다른 ethernet driver 변경 사항
- w5500 ethernet driver에 연결 상태 검출이 추가되었으며, Kconfig를 통해 구성됩니다.
- MAC 주소를 eth_liteeth driver로 실행 시간에 설정할 수 있는 추가 기능
- eth_stellaris driver에서 문제가 해결되어 eth_stellaris에 의해 수신된 인터럽트 숫자가 ethernet controller에 의해 수신된 데이터 패킷보다 작을 수 있다는 것을 이전에 고려하지 않았기 때문입니다.
- devicetree 필터를 설정하기 위해 enc28j60에 devicetree 속성을 추가했습니다.
- 수정: ESTAT TXABRT 비트는 enc28j60 driver에서 오류로 클리어되지 않습니다.
- ptp_clock driver의 native_posix ethernet driver에 대한 ptp_clock driver 구현을 가능하게 하는 추가 조건
- DSA driver를 KSZ8xxx에 고정하여 LAN devices를 올바르게 초기화합니다.
- ksz8863에서 꼬리표 활성화에 사용되는 잘못된 레지스터 주소를 수정했습니다.
- PHY driver 변경
- KSZ8081 FY driver에 대한 리셋, 자율 협상, 링크 탐지 및 missing/spamming 로그 message에 관한 다양한 제어 문제를 해결했습니다.
- KSZ8081 DT binding에서 리셋 및 interrupt gpios의 성명 변경
- 고정 버스 fault는 phy_mii driver에 고정 연결 모드를 사용할 때.
- Flash
- Ambiq Apollo3 시리즈에 대한 추가 지원
- SPI NOR driver (spi_nor.c) 의 여러 사례에 대한 추가 지원
- 삭제되지 않는 devices에 대한 예비 지원이 추가되었으며, c:struct:
flash_parameters에 device 기능이 도입되었으며, device에서 제공하는 삭제 유형을 얻을 수 있는 유틸리티 함수 c:func:flash_params_get_erase_cap; 현재 지원되는 유일한 삭제 유형이며, 모든 flash devices에서 설정됩니다. - 삭제 요구 사항이 있거나 없어도 devices에서 사용할 수 있는 c:func:
flash_flatten함수를 추가하여, 삭제가 device를 무작위 데이터 작성을 위해 준비하는 것이 아니라 remove/scramble의 데이터에 사용되었을 때 devices에서 사용할 수 있습니다. - c:func:
flash_fill유틸리티 함수를 추가하여 선택된 device에서 제공된 범위에서 단일 값을 작성할 수 있습니다. - nrf54l15 devices에 RRAM에 대한 추가 지원
- STM32 OSPI driver에서 비 바쁜 대기 polling의 추가 지원
- STM32 XSPI 외부 NOR flash driver (
st,stm32-xspi-nor) 에 대한 추가 지원 - NOR flash 외부 STM32 OSPI, QSPI 및 XSPI driver에서 XIP에 대한 추가 지원
- STM32 OSPI driver: clk, dqs, ncs 포트는 이제 device 트리 구성 (
st,stm32-ospi참조) 로 구성될 수 있습니다. - NXP MCXN947에 FlexSPI 지원이 추가되었습니다
- 누보톤 누메이커 M2L31X 시리즈에 대한 추가 지원
- 연료 측정기
- max17048: mV에서 uV로 조정된 전압 단위
- GNSS
- 추가된 GNSS device driver API test 스위트
- U-blox UBX 프로토콜에 대한 추가 지원.
- U-blox M10 GNSS modem (
u-blox,m10) 에 device driver가 추가되었습니다. - 루아토스 Air530z GNSS modem (
luatos,air530z) 에 device driver가 추가되었습니다.
- GPIO
- Ambiq Apollo3 시리즈에 대한 추가 지원
- 브로드컴 세트톱 box(brcmstb) SoC GPIO driver 추가
- C:macro:
STM32_GPIO_WKUP플래그를 추가하여 STM32 L4, U5, WB, & WL SoC 시리즈에서 파워 오프 상태에서 특정 핀을 깨어난 소스로 구성할 수 있습니다. - 아날로그 Devices MAX32 SoC 시리즈에 driver가 추가되었습니다.
- 누보톤 누메이커 M2L31X 시리즈에 대한 추가 지원
- Renesas RZ/T2M GPIO driver (
renesas,rzt2m-gpio) 에 interrupt 지원이 추가되었습니다.
- 하드웨어 정보
- device EUI64 ID 시리즈의 STM32WB, STM32WBA 및 STM32WL에 대한 지원 및 구현이 추가되었습니다.
- I2C
- Ambiq Apollo3 시리즈에 대한 추가 지원
- STM32 V2 driver에 새로운
CONFIG_I2C_STM32_V2_TIMING에 대한 지원이 추가되었습니다. STM32에서 사용 중인 clock 구성에 따라 하드웨어 블록을 구성하는 데 사용해야 할 버스 타이밍을 자동으로 계산합니다. 이 무거운 알고리즘을 생산 application에 삽입하지 않기 위해, 알고리즘의 출력을 얻기 위해 전용 samplestm32_i2c_v2_timings를 제공합니다. 버스 타이밍 구성이 사용할 수있을 때,CONFIG_I2C_STM32_V2_TIMING를 비활성화 할 수 있습니다. device 나무를 사용하여 버스 타이밍을 구성합니다. - STM32H5 시리즈에 대한 추가 지원
- NXP MCXN947에 추가 지원
- 아날로그 Devices MAX32 SoC 시리즈에 driver가 추가되었습니다.
- 누보톤 누메이커 M2L31X 시리즈에 대한 추가 지원
- 리텍스 I2C driver (
drivers/i2c/i2c_litex.c):- devicetree에서 비트 레이트 설정을 위한 추가 지원
i2c_litex_recover_bus()및i2c_litex_get_config()API 구현이 추가되었습니다.
- I2S
- STM32H5 시리즈에 대한 추가 지원
- MCUX Flexcomm driver를 확장하여 추가 채널 및 형식을 지원합니다.
- 노르딕 nRF54L 시리즈에 대한 추가 지원
- nRF I2S driver에 수정: 분분 계산
- I3C
- 버스와 CCC 명령을 쿼리할 수 있는 셸 지원이 추가되었습니다.
- driver에 I3C controller를 지원하기 위해 driver를 추가했습니다.
nxp,mcux-i3c에 대한 개선 및 버그 수정, 버스를 단순히 오류를 반환하는 대신 더 우아하게 처리하는 것을 포함합니다.
- 입력
- 새로운 drivers:
adc-keys,chipsemi,chsc6x,cirque,pinnacle,futaba,sbus,pixart,pat912x,pixart,paw32xx,pixart,pmw3610및sitronix,cf1133. - kscan에서
holtek,ht16k33와microchip,xec-kbd를 입력 subsystem로 마이그레이션합니다.
- 새로운 drivers:
- LED
- LED 셸 명령어에 device 완성도를 추가하고
get_info명령어 색상을 문자열으로 표시했습니다. - 루미실 마이크로시스템 (ISSI의 분할) 에 대한 driver (ISSI) 는 추가되었습니다.
- LED 셸 명령어에 device 완성도를 추가하고
- LED 스트립
chain-length및color-mapping특성은 모든 LED 스트립 bindings에 추가되었습니다.- 스트립의 길이는 업데이트 전에 확인되고 제공된 데이터가 너무 길다면 오류가 반환됩니다.
- 길이 함수가 추가되어 LED 스트립 (
led_strip_length) 의 길이를 반환합니다. - 업데이트 채널 기능은 이제 선택 사항이 되었고 실행되지 않을 수 있습니다.
- 각
worldsemi,ws2812-gpio및worldsemi,ws2812-rpi_pico-piodevicetree bindings의in-gpios및output-pin특성은gpios로 명명되었습니다. CONFIG_WS2812_STRIP및CONFIG_WS2812_STRIP_DRIVERKconfig 옵션을 제거했습니다.- Texas Instruments TLC59731 RGB controller에 추가된 driver
- LoRa
- Reyax LoRa 모듈에 추가된 driver
- 메일박스
- HSEM 기반의 STM32 driver에 대한 추가 지원
- MDIO
bus_enable및bus_disable함수를 drivers의 구현을 위해 선택적으로 만들었습니다. 그리고 많은 drivers에서 빈 구현을 제거했습니다.- NXP ENET QOS MDIO controller driver
- 정해져 있지만 NXP ENET MDIO driver는 시스템 작업열을 차단합니다.
CONFIG_MDIO_NXP_ENET_TIMEOUT유닛은 마이크로초로 변경됩니다.- STM32 MDIO controller driver에 대한 추가 지원
- MFD
- 새로운 driver
nxp,lp-flexcomm - 새로운 driver
rohm,bd8lb600fs - 새로운 driver
maxim,max31790 - 새로운 driver
infineon,tle9104 - 새로운 driver
adi,ad559x x-powers,axp192를 위해 N_VBUSEN를 비활성화하는 옵션이 추가되었습니다.- GPIO에 대한
nordic,npm1300입력 가장자리 이벤트가 추가되었습니다. nordic,npm1300에 대한 긴 프레스 리셋 구성이 추가되었습니다.nordic,npm6001의 히스테리 모드의 고정 초기화
- 새로운 driver
- Modem
- 폐기 예정
GSM_PPPdriver 및 그 dts compatiblezephyr,gsm-ppp를 제거했다. UART_MUX및GSM_MUX가 이전에GSM_PPP에 의해 사용되었던 노후화된UART_MUX를 제거했습니다.- DTS compatible
zephyr,gsm-ppp의 지원이MODEM_CELLULARdriver에서 제거되었습니다. MODEM_IFACE_UART_INTERRUPT모듈에서UART_MUX와 통합을 제거했습니다.MODEM_SHELL모듈에서UART_MUX와 통합을 제거했습니다.- 다양한 모덤에서 사용할 수 있는 추가 DLCI 채널을 위해
MODEM_CELLULARdriver 파이프라인에서 modem 파이프라인을 구현했습니다. 여기에는 일반 AT 모드 DLCI 채널,user_pipe_<index>및 DLCI 채널이 GNSS 터널을 위해 예약되어 있습니다. - 새로 구현된 modem 파이프링크를 사용하여 modem 명령어를 직접 AT에 보내는 새로운 셸 명령어 집합이 추가되었습니다. 새로운 셸 명령어의 구현은 기능적이며
MODEM_CELLULARdriver와 함께 modem 파이프링크 모듈을 구현하고 사용하는 방법에 대한 예를 제공합니다.
- 폐기 예정
- PCIE
pcie_bdf_lookup및pcie_probe는 v3.3.0 이후 폐지된 이후 제거되었습니다.
- MIPI-DBI
- 추가된 release API
- device 나무를 통해 모드 선택에 대한 추가 지원
- MSPI
- 새로운 실험
MSPI(Multi-bit SPI) <mspi_api>API를 추가하여, 일반적으로 명령, 주소 및 데이터 단계뿐만 아니라 전송에 대한 변수 지연이 필요한 고급 SPI 컨트롤러 및 주변 장치에 대한 지원을 가능하게합니다. API는 이제 sync/async 방식으로 단일 케이블 SDR에서 여섯 개의 케이블까지 DDR 통신을 지원합니다. - 버스 에뮬레이터 아래 MSPI 버스 에뮬레이터를 추가하여 MSPI API의 구현을 보여준다.
- MSPI flash device 에뮬레이터를 추가하여 MSPI API의 사용과 MSPI 버스 컨트롤러와의 인터페이스를 보여준다.
- 추가된 APS6404L QPI pSRAM device driver
- ATXP032 OPI NOR flash device driver
- 추가된 Ambiq Apollo3p MSPI controller driver
mspi-async및mspi-flashsamples를 추가하여 MSPI device drivers의 사용을 보여준다.- 개발자들이 구현을 확인하기 위해 mspi/api 및 mspi/flash 테스트 케이스를 추가했습니다.
- 새로운 실험
- 핀 컨트롤
- 레네사스 RA8 시리즈에 추가된 driver
- Infineon PSoC6 (유산) 에 대한 driver가 추가되었습니다
- 아날로그 Devices MAX32 SoC 시리즈에 driver가 추가되었습니다.
- Ambiq Apollo3에 driver가 추가되었습니다
- ENE KB1200에 driver가 추가되었습니다
- NXP RW에 driver가 추가되었습니다
- Espressif driver는 이제 ESP32C6를 지원합니다
- STM32 driver는 이제 STM32C0의 리맵 기능을 지원합니다
- 누보톤 누메이커 M2L31X 시리즈에 대한 추가 지원
- PWM
- STM32H7R/S 시리즈에 대한 추가 지원
- 추가 된 QTMR PWM driver NXP imxrt11xx
- NXP MCUX PWM driver thread를 안전하게 만들었습니다
- Zephyr:code-sample:
pwm-blinkycode sample를 PWM에 대한 PWM 지원을 입증하기 위해 수정합니다. - ENE KB1200에 driver가 추가되었습니다.
- 노르딕 nRF54H 및 nRF54L 시리즈 SoC에 대한 추가 지원
- 누보톤 누메이커 M2L31X 시리즈에 대한 추가 지원
- 규제 기관
- 새로운 driver
cirrus,cp9314 regulator-boot-off속성을 공통 규제자 driver에 추가했습니다. 이 새로운 속성을 사용하기 위해adi,adp5360-regulator,nordic,npm1300-regulator,nordic,npm6001-regulator및x-powers,axp192-regulator를 업데이트했습니다.renesas,smartbond-regulator에 power management가 추가되었습니다.is_enabled셸 명령이 추가되었습니다.- 일줄 시스템들을 위한 바쁜 대기 중의 사용이 제거되었습니다.
- DCDC2 출력을 제어하는 수정: 장치
renesas,smartbond-regulator의 고정 전류와 전압 수급 기능- 수정: NXP VREF Kconfig 누출
- shell 내 마이크로 값의 수정: 표시
adset셸 명령어에서 strcmp 사용 오류가 수정되었습니다.
- 새로운 driver
- 다시 설정
- Nuvoton NPCX 칩에 controller를 리셋하기 위해 driver를 추가했습니다.
- 추가된 controller driver를 NXP SYSCON로 재설정합니다.
- 추가된 controller driver를 NXP RSTCTL로 재설정합니다.
- 누보톤 누메이커 M2L31X 시리즈에 대한 추가 지원
- RTC
- Raspberry Pi Pico RTC driver 추가
- 모든 STM32 MCU 시리즈 (STM32F1를 제외한) 에서
CONFIG_RTC_ALARM에 대한 추가 지원 - 누보톤 누메이커 M2L31X 시리즈에 대한 추가 지원
- RTIO
- 잠금 없는 줄을 RTIO에서 lib로 이동하여
rtio_앞문자를 SPSC 및 MPSC 행렬로 떨어뜨립니다. - tests와 연결된 callback 요청과 관련된 오류가 수정되었습니다.
- p4wq (rtio workq) 를 둘러싼 포장 (wrapper) 은 자국적 비동기 RTIO 기능이 사용할 수 없는 경우에 차단에서 차단하지 않는 행동으로 이동하기 위해 만들어졌습니다.
- 잠금 없는 줄을 RTIO에서 lib로 이동하여
- SDHC
- 추가된 ESP32 SDHC driver (
espressif,esp32-sdhc). - 리네사스 MMC controller (
renesas,rcar-mmc) 에 대한 SDHC driver가 추가되었습니다.
- 추가된 ESP32 SDHC driver (
- Sensors
- 일반
- 새로운 read/decoder API에 채널 사양이 추가되었습니다.
- sensor를 차단하는
sensor_read호출을 추가했습니다. - RTIO 요청은 RTIO 작업열 서비스를 사용하여
sensor_submit_callback를 비동기 요청으로 변환합니다. - 대부분의 drivers를 공급자 서브 디렉터리로 옮겼다.
- AMS
- 추가된 TSL2591 빛 sensor driver (
ams,tsl2591).
- 추가된 TSL2591 빛 sensor driver (
- 아오송
- 추가된 DHT20 디지털 출력 습도와 온도는 sensor driver (
aosong,dht20). - dht11 driver에
CONFIG_DHT_LOCK_IRQS를 추가하여 sensor 읽기 중에 sensor 읽기 문제를 방지하기 위해 잠금 중단을 허용합니다.
- 추가된 DHT20 디지털 출력 습도와 온도는 sensor driver (
- 보쉬
- BME280를 새로운 아싱크 API로 업데이트
- 인피네온
- 추가된 TLE9104 전력열차 스위치 진단 sensor driver (
infineon,tle9104-diagnostics).
- 추가된 TLE9104 전력열차 스위치 진단 sensor driver (
- 맥시민
- 추가된 DS18S20 1-Wire 온도 sensor driver (
maxim,ds18s20). - 추가된 MAX31790 팬 속도 및 팬 fault sensor (
maxim,max31790-fan-fault및maxim,max31790-fan-speed).
- 추가된 DS18S20 1-Wire 온도 sensor driver (
- NXP
- 추가된 저전력 비교기 driver (
nxp,lpcmp).
- 추가된 저전력 비교기 driver (
- 로흐
- 추가 된 BD8LB600FS 진단 sensor driver (
rohm,bd8lb600fs-diagnostics).
- 추가 된 BD8LB600FS 진단 sensor driver (
- 실라브
- SI7006 humidity/temperature sensor driver에 대한 다양한 수정 및 개선 사항을 수행했습니다.
- ST
- QDEC driver는 이제 encoder 모드 구성을 지원합니다 (
st,stm32-qdec참조). - STM32 디지털 온도 Sensor (
st,stm32-digi-temp) 에 대한 추가 지원 - 추가된 IIS328DQ I2C/SPI 가속기 sensor driver (
st,iis328dq).
- QDEC driver는 이제 encoder 모드 구성을 지원합니다 (
- TDK
- MPU6500 3-axis 가속 측정기 및 3-axis 자이로스코프 sensor에 대한 지원이 추가되었습니다.
- TI
- 추가된 TMP114 driver (
ti,tmp114). - 추가된 INA226 쌍방향 전류 및 전력 모니터 driver (
ti,ina226). - 추가된 LM95234 네 개의 리모트 다이오드 및 로컬 온도 sensor driver (
national,lm95234).
- 추가된 TMP114 driver (
- 다른 판매자
- 추가된 Angst+Pfister FCX-MLDX5 O2 sensor driver (
ap,fcx-mldx5). - 추가된 ENE KB1200 태코미터 sensor driver (
ene,kb1200-tach). - 추가된 Festo VEAA-X-3 시리즈 비례적 압력 조절기 driver (
festo,veaa-x-3). - 추가된 혁신적인 Sensor 기술 TSic xx6 온도 sensor driver (
ist,tsic-xx6). - 추가된 ON 반도체 NCT75 온도 sensor driver (
onnn,nct75). - 추가된 ScioSense ENS160 디지털 금속산화 복합가스 sensor driver (
sciosense,ens160). - GROW_R502A 지문 sensor driver에 대한 다양한 수정 및 개선 사항이 수행되었습니다.
- 추가된 Angst+Pfister FCX-MLDX5 O2 sensor driver (
- 일반
- Serial
- driver를 추가하여 UART를 Bluetooth (노르딕 UART 서비스) 를 사용하여 UART에 대해 UART를 지원합니다. 이 driver는 Bluetooth를 현재 UART (예를 들어: Console, 셸, 로깅) 에 의해 지원되는 모든 하위 시스템으로 transport으로 사용할 수 있습니다.
- STM32 driver에서 비동이
CONFIG_NOCACHE_MEMORY모드에서CONFIG_NOCACHE_MEMORY지원을 추가했습니다. STM32 F7 & H7 SoC 시리즈에서 DMA 모드에서 UART을 사용할 수 있습니다. DMA0 버퍼가 캐싱되지 않은 DMA1 섹션에 배치되는 한CONFIG_DCACHE를 활성화합니다. - STM32H7R/S 시리즈에 대한 추가 지원
- Renesas RCar 플랫폼에 HSCIF (High Speed Serial Communication Interface with FIFO) 의 UART driver에 대한 추가 지원
- ENE KB1200 UART에 driver가 추가되었습니다.
- 아날로그 Devices MAX32 시리즈 마이크로컨트롤러에 driver를 추가했습니다.
- 리네사 RA8 devices에 driver를 추가했습니다.
uart_emul(zephyr,uart-emul):- 에뮬레이션된 UART driver에 대한 비동이성 API에 대한 추가 지원
uart_esp32(espressif,esp32-uart):- TX 및 RX 핀 신호를 뒤집기 위한 지원이 추가되었습니다.
- ESP32C6 SoC에 대한 추가 지원
uart_native_tty(zephyr,native-tty-uart):- interrupt를 모방하는 추가 지원
uart_mcux_lpuart(nxp,kinetis-lpuart):- 단선 반두플렉스 통신에 대한 추가 지원
- TX 및 RX 핀 신호를 뒤집기 위한 지원이 추가되었습니다.
uart_npcx(nuvoton,npcx-uart):- 아시크론 API에 대한 추가 지원
- 3MHz의 바우드 속도에 대한 추가 지원
uart_nrfx_uarte(nordic,nrf-uarte):- TX 및 RX 핀을 UART가 활성화되지 않은 상태에서 저전력 모드로 넣을 수 있는 추가 지원
uart_nrfx_uarte2(nordic,nrf-uarte):- UART가 중단될 때 device의 전송을 방지합니다.
- 발동되지 않은 사건들을 수정했습니다.
uart_pl011(arm,pl011):- 런타임 구성에 대한 추가 지원
- device를 다시 설정할 수 있는 추가 지원
- 주파수를 결정하기 위해 clock 컨트롤을 사용하는 추가 지원
- 하드웨어 흐름을 제어하는 데 추가 지원
- Ambiq Apollo3 SoC에서 UART에 대한 추가 지원
uart_smartbond(renesas,smartbond-uart):- power management에 대한 추가 지원
- DTR 및 RX 라인을 통해 깨어날 수 있는 추가 지원
uart_stm32(st,stm32-uart):- DMA 버퍼가 데이터 캐시 또는 캐시되지 않는 memory에 있는지 확인하기 위한 지원이 추가되었습니다.
- 누보톤 누메이커 M2L31X 시리즈에 대한 추가 지원
- SPI
- NXP MCXN947에 추가 지원
- Ambiq Apollo3 시리즈 일반 IOM 기반 SPI에 대한 추가 지원
- Ambiq Apollo3 BLEIF 기반의 SPI에 대한 추가 지원, 이는 내부 HCI에 특이합니다.
CONFIG_PM및CONFIG_PM_DEVICE_RUNTIME에 대한 추가 지원- DMA SPI 모드에서
CONFIG_NOCACHE_MEMORY에 대한 추가 지원 - STM32H7R/S 시리즈에 대한 추가 지원
- 아날로그 Devices MAX32 SoC 시리즈에 driver가 추가되었습니다.
- gd32 spi에서 잘못된 레지스터 할당을 수정했습니다.
- USB
- UDC shim driver NXP EHCI 및 IP3511 USB controller에 추가되었습니다.
- IT82xx2, DWC2, STM32, RP2040, Smartbond USB controller drivers에 대한 다양한 수정 및 개선 사항
- 비디오
- STM32 디지털 카메라 인터페이스 (DCMI) driver (
st,stm32-dcmi) 에 대한 추가 지원 - NXP USB Device 컨트롤러를 활성화
- ov7670 카메라에 추가 지원
- ov5640 카메라에 추가 지원
- 추가된 CSI-2 MIPI driver NXP MCUX
- DVP FPC 24-pins mt9m114 카메라 모듈
- STM32 디지털 카메라 인터페이스 (DCMI) driver (
- Watchdog
CONFIG_WDT_NPCX_WARNING_LEADING_TIME_MS를 추가하여 밀리초에 선두 warning 시간을 설정했습니다. 더 이상 사용되지 않은CONFIG_WDT_NPCX_DELAY_CYCLES를 제거했습니다.- Ambiq Apollo3 시리즈에 대한 추가 지원
- STM32H7R/S 시리즈에 대한 추가 지원
- 누보톤 누메이커 M2L31X 시리즈에 대한 추가 지원
- watchdog의 외부 32kHz 크리스탈에 ESP32 SoC 변종에 watchdog가 추가되었습니다.
- 와이파이
- 에스-아트를 위해 수정: message 분석
- 수정: SP-AT 연결 장애.
bind및recvfrom를 Esp-at에 대한 UDP 소켓에 적용한다.- 에스위피에 대한 최대 데이터 크기를 설정하는 옵션이 추가되었습니다.
- 수정: ESP32 Wi-Fi driver memory 누출
Networking
- ARP:
- 무료 ARP 전송에 대한 추가 지원
- TX와 RX threads 사이에 ARP 모듈 내에서 잠재적인 정지점을 수정했습니다.
- ARP 출입 유출을 수정했습니다.
- 개선된 ARP 디버깅 로그
- CoAP
- 수정: CoAP는 나이 과잉 흐름을 관찰합니다.
- CoAP retransmission (
CONFIG_COAP_MAX_RETRANSMIT) 에 대한 상위 제한 증가 - CoAP 클라이언트 library에서 수정: CoAP 관찰
- 새로운 CoAP 클라이언트
coap_client_cancel_requestsAPI를 추가하여 활성 관측을 취소할 수 있습니다. - CoAP 서버 sample에서 응답을 위한 고정 CoAP ID 생성
- 연결 관리자:
- IPv4 및 IPv6 연결을 독립적으로 추적할 수 있는 새로운 net_mgmt 이벤트에 대한 추가 지원:
NET_EVENT_L4_IPV4_CONNECTEDNET_EVENT_L4_IPV4_DISCONNECTEDNET_EVENT_L4_IPV6_CONNECTEDNET_EVENT_L4_IPV6_DISCONNECTED
- IPv4 및 IPv6 연결을 독립적으로 추적할 수 있는 새로운 net_mgmt 이벤트에 대한 추가 지원:
- DHCPv4
- 캡슐화된 vendor-specific 옵션에 대한 추가 지원.
CONFIG_NET_DHCPV4_OPTION_CALLBACKS_VENDOR_SPECIFIC콜백을net_dhcpv4_add_option_vendor_callback에서 handle로 등록할 수 있도록net_dhcpv4_init_option_vendor_callback로 초기화 된 후 이러한 옵션을 등록할 수 있습니다. - "판매자 클래스 식별자" 옵션에 대한 지원이 추가되었습니다.
CONFIG_NET_DHCPV4_VENDOR_CLASS_IDENTIFIER를 사용하여 활성화하고CONFIG_NET_DHCPV4_VENDOR_CLASS_IDENTIFIER_STRING를 사용하여 설정합니다. - 이제 DHCPv4 옵션에서 NTP 서버를 사용하여 시스템 시간을 설정할 수 있습니다.
CONFIG_NET_CONFIG_CLOCK_SNTP_INIT가 활성화 된 경우 기본으로 수행됩니다. - syslog 서버 주소는 이제 DHCPv4 옵션을 사용하여 설정할 수 있습니다.
CONFIG_LOG_BACKEND_NET_USE_DHCPV4_OPTION가 활성화되면 기본적으로 수행됩니다. - 서버에서 등록된 콜백을 가진 옵션이 요청되지 않은 버그를 수정했습니다.
- 서버에서 수신된 네트워크 마스크가 제대로 적용되지 않은 오류를 수정했습니다.
- DHCPv4 클라이언트 RENEW/REBIND 로직이 RFC2131에 적합하도록 다시 구현되었습니다.
- DHCPv4 서버에서 개선된 거부 주소 관리, 이제 구성된 시간 후에 재사용할 수 있습니다.
- DHCPv4 서버 response에서 클라이언트 ID 옵션을 포함하여 수정되었습니다.
CONFIG_NET_DHCPV4_SERVER_NAK_UNRECOGNIZED_REQUESTS를 추가하여 RFC-defined 행동을 override할 수 있으며, NAK는 인식되지 않은 클라이언트의 요청입니다.- DHCPv4 서버에서 수정: 클라이언트 ID 생성
- DHCPv4 클라이언트 및 서버 구현에 대한 다른 소형 수정
- 캡슐화된 vendor-specific 옵션에 대한 추가 지원.
- DHCPv6:
- 잘못된 DHCPv6 이벤트 code 기본 net_mgmt 이벤트
CONFIG_NET_DHCPV6_DUID_MAX_LEN를 추가하여 최대 지원되는 DUID 길이를 구성할 수 있습니다.- DHCPv6에 대한 문서 페이지가 추가되었습니다.
- DNS/mDNS/LLMNR:
- mDNS Resolver이 활성화되면서 mDNS 응답자가 작동하지 않는 문제를 해결했습니다. mDNS 응답자와 mDNS 응답자가 동시에 사용할 수 있습니다.
- LLMNR 및 mDNS 응답자 및 DNS 솔루션을 재작업하여 소켓 및 socket 서비스를 사용할 수 있습니다.
- ANY 쿼리 리소스 타입이 추가되었습니다.
- mDNS에 대한 지원이 추가되어 실행 시간에 기록을 제공합니다.
- DNS 기록을 캐시하는 데 추가 지원
- socket 생성 실패와 모든 결과가 반환되면 수정: 오류 코드가 반환되었습니다.
- 수정: DNS retransmission timeout 계산
- gPTP/PTP:
- IEEE 1588-2019 PTP에 대한 추가 지원
- SO_TIMESTAMPING socket 옵션에 대한 추가 지원은 socket 보조 데이터에서 시간표 정보를 얻습니다.
- 시간표 callback에 수정: 경주 상태
- 수정: clock 마스터 동기화 SM를 보내면 우리가 GM clock가 아니라면
- HTTP
- HTTP/2 서버 library 및 sample application를 추가하여 정적, 동적 및 웹소켓 리소스 유형을 지원합니다.
- HTTP shell 구성 요소가 추가되었습니다.
- 개선된 HTTP 클라이언트 오류 보고
- HTTP 클라이언트 library를 실험에서 옮겼습니다.
- POLLOUT 클라이언트에서 response를 전송할 때 POLLOUT 모니터링을 추가했습니다.
- IPSP:
- IPSP 지원이 제거되었습니다.
CONFIG_NET_L2_BT는 더 이상 존재하지 않습니다.
- IPSP 지원이 제거되었습니다.
- IPv4
- RFC 5227에 따라 IPv4 주소 충돌 탐지 구현
net_ipv4_is_private_addrAPI 기능이 추가되었습니다.- IPv4 네트워크 마스크는 이제 전체 인터페이스에 대한 설정이 아닌 각 주소에 개별적으로 설정됩니다.
- 다른 작은 수정 및 개선 사항
- IPv6:
- RFC 8981에 따라 IPv6 개인 정보 보호 확장 프로그램을 구현했습니다.
net_ipv6_is_private_addrAPI 기능이 추가되었습니다.- IPv6에 대한 접근성 지표가 구현되었습니다. 상위 계층은 c:func:
net_if_nbr_reachability_hint를 사용하여 이웃 접근성을보고 불필요한 이웃 발견 요청을 피할 수 있습니다. - 사용자 지정 IPv6 MTU를 설정할 수 있는
CONFIG_NET_IPV6_MTU가 추가되었습니다. - 멀티캐스트 송신 엔트리에 대해 여러 인터페이스를 설정할 수 있는
CONFIG_NET_MCAST_ROUTE_MAX_IFACES가 추가되었습니다. CONFIG_NET_MCAST_ROUTE_MLD_REPORTS보고에 멀티캐스트 경로를 보고할 수 있는CONFIG_NET_MCAST_ROUTE_MLD_REPORTS를 추가하였다.- 멀티캐스트 패킷의 고정 IPv6 홉 제한 처리
- 개선된 IPv6 이웃 발견 test 커버링.
- 부그를 고쳤는데, Duplicate 주소 탐지 충돌을 보고하는 이웃 광고 패키지가 떨어졌습니다.
- 다른 작은 수정 및 개선 사항
- LwM2M
- 새로운 API 기능이 추가되었습니다:
lwm2m_set_bulklwm2m_rd_client_set_ctx
- 새로운
offset매개 변수를lwm2m_engine_set_data_cb_tcallback 타입에 추가했습니다. 이것은 포스트 작성 및 유효성 확인 호출 및 일부 펌웨어 호출에 영향을 미칩니다. - 블록 전송에서 블록 번호 0를 수신했을 때 수정: 블록 컨텍스트가 재설정되지 않습니다.
- 블록 전송 중 서버와 수정: 블록 크기의 협상
CONFIG_LWM2M_ENGINE_ALWAYS_REPORT_OBJ_VERSION를 추가하여 클라이언트가 항상 객체 버전을 보고하도록 강요할 수 있습니다.- 블록 전송은 이제 리소스 w/o 등록 callback로 가능합니다.
- 등록된 callback에서 전송된 빈 ACK가 즉시 전송되지 않는 버그를 수정했습니다.
- 구석된 API 함수와 정의가 제거되었습니다.
- 다른 작은 수정 및 개선 사항
- 새로운 API 기능이 추가되었습니다:
- 기타
- 전체적인 네트워크 개선 API Doxygen 문서화
- TFTP library를
zsock_*API로 변환했습니다. - SNTP
sntp_simple_addrAPI 함수를 추가하여 SNTP 서버 IP 주소가 이미 알려져있을 때 SNTP 질서를 수행합니다. - 기본 트래픽 클래스 threads 우선순위를 override할 수 있는
CONFIG_NET_TC_THREAD_PRIO_CUSTOM를 추가했습니다. - IPv6 이벤트 핸들링 초기화 순서를 연결 구성 library에서 수정했습니다.
- backend를 소켓과 socket 서비스를 사용하도록 재사용된 telnet shell backend.
- IGMP 패킷의 수정: 이중 디레퍼런스
- 다양한 tests 및 samples에서
native_sim지원에서native_posix에서native_sim지원으로 이동되었습니다. - network 버퍼에서 사용자 데이터를 복사하는 데 추가 지원
- 0 크기의 network 버퍼의 고정 복제
- net_buf APIs를 handle 40 비트 데이터 형식으로 추가했습니다.
- 추가된 callback를 일부 사용 경우에 적용되는 미용 L2에 대해 수신합니다 (예를 들어, packet 캡처).
- packet 캡처 사용 케이스에 대한 "어떤" 인터페이스로도 알려진 구현된 가짜 인터페이스.
- 요리 모드 캡처 지원이 추가되었습니다. 이것은 IP 기반의 network 데이터 캡처를 허용합니다.
- packet 캡처를 시작하거나 중지할 때 network 이벤트를 생성합니다.
- 사용되지 않은 구시되고 사용되지 않은
tcp_first_msgnet_pktflag이 제거되었습니다. - 새로운
secure-mqtt-sensor-actuatorsample가 추가되었습니다. - 부분적으로 L3 및 L4 체크섬 탈하를 위한 추가 지원
- 새로운 CA 인증서와 업데이트된
mqtt-azure, 현재는 곧 만료됩니다. - 네이티브 시뮬레이터 offloaded 소켓에 새로운 driver가 추가되었습니다.
- 가상 network 인터페이스를 사용하기 위해 VLAN 지원을 개정했습니다.
- 가상 network 인터페이스에 대한 추가된 통계 수집
mgmt_event_work_handler에서CONFIG_NET_MGMT_EVENT_SYSTEM_WORKQUEUE가 활성화되면 수정: 시스템 작업열 블록
- MQTT
- MQTT TLS backend에 대한 ALPN 지원이 추가되었습니다.
mqtt_client컨텍스트 구조에서 사용자 데이터 필드를 추가했습니다.- MQTT 웹소켓 transport에서 잠재적인 socket 누출을 수정했습니다.
- Network 인터페이스:
- 새로운 API 기능이 추가되었습니다:
net_if_ipv4_maddr_foreachnet_if_ipv6_maddr_foreach
- network 인터페이스 code에서 개선된 디버그 로깅
net_if_addr구조에 counter 참조가 추가되었습니다.- IPv6 DAD 및 MLDv2 인터페이스가 올라가면 수정: 동작
- OpenThread 인터페이스의 고유 기본 이름 추가
- 다른 작은 수정
- 새로운 API 기능이 추가되었습니다:
- OpenThread
- 폐기 예정
openthread_set_state_changed_cb()함수가 제거되었습니다. - BLE TCAT 광고 API의 추가 구현
- 폐기 예정
- PPP
- 폐기 예정
gsm_modemdriver 및 sample를 제거했다. - PPP driver에서 최적화된 memory 할당
cellular-modemsample의 미스 개선- PPP 낮은 수준의 packet 캡처 지원이 추가되었습니다.
- 폐기 예정
- 껍질:
net ipv4 gateway명령어를 추가하여 IPv4 게이트웨이 주소를 설정합니다.- network 셸 매크로에서 argument 검증을 추가했습니다.
- 수정: net_mgmt 소켓 정보 인쇄
- VLAN 정보 프린팅을 재작업했습니다.
net iface set_mac명령으로 무작위 MAC 주소를 설정하는 옵션이 추가되었습니다.- 멀티캐스트 주소 정보를 인쇄할 때 멀티캐스트 가입 상태가 추가되었습니다.
- 소켓:
- 새로운 네트워킹 POSIX APIs:
if_nameindexinet_ntoainet_addr
- socket API 전화를 추적하는 데 추가 지원
- TLS 소켓은 더 이상 실험적인 API가 아닙니다.
AF_PACKET타입 소켓에 대한 프로토콜 필드 엔디안성 고정되었습니다.getsockname에 대한 수정: TCP- DTLS 소켓을 사용할 때
sendmsg지원을 개선하십시오. - socket 서비스가 thread를 중지할 경우 수정:
net_socket_service_register함수 정지 - 수정: 잠재적인 socket 서비스 thread 서비스 비등록 시 정지
- socket 서비스 library에서 비동기 시간 종료 지원이 제거되었습니다.
zsock_accept를 사용할 때 파일 설명서가 부족할 경우 잠재적인 busy loop을 고정합니다.
- 새로운 네트워킹 POSIX APIs:
- 시슬로그:
- 새로운 API 기능이 추가되었습니다:
log_backend_net_set_ip는 IP 주소를 직접 입력하여 syslog net backend를 초기화합니다.log_backend_net_start는 syslog 네트워크 backend의 활성화를 촉진하기 위해 사용됩니다.
- syslog net backend에 구조화된 로깅 지원이 추가되었습니다.
- Syslog net backend에 TCP 지원이 추가되었습니다.
- 새로운 API 기능이 추가되었습니다:
- TCP
- 새로운 TCP 연결을 받아들이는 경우에 가능한 정지점을 수정했습니다.
- 연결 해체 중 ACK 번호 검증이 고정됩니다.
- FIN packet에 포함된 데이터 바이트가 무시된 버그를 수정했습니다.
- 초기 SYN packet 전송이 실패할 경우 가능한 TCP 컨텍스트 누출을 수정했습니다.
CONFIG_NET_TCP_ACK_TIMEOUT는 다른 컨피지와 함께 비비용적이었기 때문에 퇴치되었습니다.- 더 나은 디버깅 로그, 그래서 그들은 무거운 부하에서 더 쉽게 추적 할 수 있습니다.
- ISN 세대는 이제 SHA-256 대신 MD5를 사용합니다. 게다가, 이제 해시 계산을 위해 기존 Mbed TLS 기능 대신 PSA APIs에 의존합니다.
- ACK 응답 논리를 개선하여 PSH flag이 없는 경우 과잉 ACKs를 줄일 수 있습니다.
- 웹소켓:
- 새로운 Websocket APIs를 추가했습니다:
websocket_registerwebsocket_unregister
- Websocket library를
zsock_*API로 변환했습니다. - Websocket 소켓에 Object Core 지원이 추가되었습니다.
- 전송 시 POLLOUT 모니터링을 추가했습니다.
- 새로운 Websocket APIs를 추가했습니다:
- 와이파이:
- 5 GHz 채널 리스트의 memory 사용을 줄이십시오.
- AP 모드에서 채널 유효성 확인 추가
- 연결 호출에서 BSSID 구성에 대한 추가 지원.
- Wifi 셸 도움말 문자 수정 옵션 분석 수정
- WPA 자동 개인 보안 모드를 지원합니다.
- 유니캐스트 received/sent network packet 통계를 수집합니다.
- RTS 임계값을 구성하는 데 대한 지원이 추가되었습니다. 이를 통해 사용자는 RTS 임계값 값을 설정하거나 RTS 메커니즘을 비활성화 할 수 있습니다.
- AP 매개 변수를 구성하는 지원이 추가되었습니다. 이를 통해 사용자는 AP 매개 변수를 build로 설정하고 실행 시간을 설정할 수 있습니다.
max_inactivityBSS 매개 변수를 구성하는 데 추가된 지원. 사용자는 build 및 실행 시간 기간을 모두 설정하여 AP가 STA에서 비활성으로 인해 STA를 분리할 수 있는 최대 시간 기간을 제어할 수 있습니다.inactivity_pollBSS 매개 변수를 구성할 수 있는 지원이 추가되었습니다. 사용자는 build만 AP 매개 변수를 설정하여 AP가 비활성으로 인해 STA를 던지기 전에 STA를 조사할 수 있는지 제어할 수 있습니다.max_num_staBSS 매개 변수를 구성하는 지원이 추가되었습니다. 사용자는 build 및 실행 시간 매개 변수를 설정하여 STA 항목의 최대 수를 제어할 수 있습니다.
- zperf:
- zperf에서 수정:
IP_TOS및IPV6_TCLASS옵션 처리 - 긴 zperf 세션에서 수정: 출력 계산
- 멀티캐스트 IP 주소가 사용되었을 경우 TCP 업로드 세션 종료에서 오류가 수정되었습니다.
- IPv6 socket가 IPv4 주소와 결합되어 오류가 발생한 버그를 수정했습니다.
- zperf 세션에서 사용할 network 인터페이스를 지정하는 옵션이 추가되었습니다.
- TCP 업로드 세션 중 주기적인 업데이트를 위해 새로운
ZPERF_SESSION_PERIODIC_RESULT이벤트를 추가했습니다. - zperf 세션 중 오류가 발생할 경우 가능한 socket 누출을 수정
- zperf sample의 기본 구성에서 향상된 성능.
- zperf에서 수정:
USB
- 새로운 USB device stack:
- HID devices에 추가 지원
- 속도 특수한 구성을 도입하고 USB2.0 사양에 따라 고속 지원이 만들어졌습니다.
- 추가 통지 지원 및 초기 BOS 지원
DeviceTree
DT_INST_NODE_HAS_COMPAT를 추가하여 node가 compatible를 가지고 있는지 확인합니다. 이것은 여러 호환성을 가진 노드에 유용합니다.DT_CHILD_NUM와 변형이 추가되어 node의 자녀 수를 계산합니다.DT_FOREACH_NODELABEL및 변종이 추가되었으며, devicetree node의 node 레이블을 반복하는 데 사용할 수 있습니다.DT_NODELABEL_STRING_ARRAY및DT_NUM_NODELABELS및 그 변형이 추가되었습니다.DT_REG_HAS_NAME와 변형이 추가되었습니다.DT_ANY_INST_HAS_PROP_STATUS_OKAY를 재작업하여 결과를IS_ENABLED, IF_ENABLED, 또는 COND_CODE_x와 같은 매크로와 사용할 수 있습니다.DT_NODE_HAS_COMPAT_STATUS를 재조정하여 전처리 시간에 평가할 수 있도록 합니다.- DTS 스크립트에서 6.0에 사용되는 PyYaml 버전의 업데이트
Kconfig
substringKconfig 사전 프로세서 기능이 추가되었습니다.dt_node_ph_prop_pathKconfig 사전 프로세서 기능이 추가되었습니다.dt_compat_any_has_propKconfig 사전 프로세서 기능이 추가되었습니다.
Library 및 Subsystem
- Debug
- 동정심
CONFIG_SYMTAB를 활성화함으로써, 기호 테이블은 지원된 아키텍처에서 실행 가능한 Zephyr 링크 스테이지로 생성됩니다.
- 동정심
- 수요 페이지
- NRU (최근 사용되지 않은) 퇴출 알고리즘은 항상 같은 페이지를 선택하지 않기 위해 선택 논리를 업데이트했습니다. 업데이트 된 로그인은 이제 마지막 퇴출 페이지를 따라 새로운 후보를 선형적으로 검색합니다.
- LRU (최소 최근에 사용된) 퇴출 알고리즘을 추가했습니다.
- 포맷된 출력
- warning와 cbprintf를 컴파일할 때 ARCMWDT를 수정합니다.
- Management
- 호크비트
- hawkBit subsystem는 hawkBit 구성을 저장하기 위해 subsystem 설정을 사용하여 재작정되었습니다.
CONFIG_HAWKBIT_SET_SETTINGS_RUNTIME를 활성화함으로써, 하크비트 설정을 실행 시간에 구성할 수 있습니다. 하크비트 설정을 설정하기 위해hawkbit_set_config함수를 사용하십시오.hawkbit set명령어를 사용하여 하크비트 셸을 통해 설정할 수도 있습니다.- hawkBit 오토 핸들러를 사용하여 업데이트가 설치되면, device는 설치가 완료되면 자동으로 다시 시작됩니다.
CONFIG_HAWKBIT_CUSTOM_DEVICE_ID를 활성화함으로써 callback 함수를 device ID를 설정하기 위해 등록할 수 있습니다.hawkbit_set_device_identity_cb함수를 callback를 등록하기 위해 사용하십시오.CONFIG_HAWKBIT_CUSTOM_ATTRIBUTES를 활성화함으로써, hawkBit 서버에 전송되는 device 속성을 설정하기 위해 callback 함수를 등록할 수 있습니다.hawkbit_set_custom_data_cb함수를 사용하여 callback를 등록합니다.
- MCUmgr
- 오래된 mcumgr go 도구에 대한 지침은 제거되었습니다. 대체 지원된 클라이언트의 목록은
mcumgr_tools_libraries에서 찾을 수 있습니다. - SMP 구조가 포장되지 않은 문제가 해결되어 devices에 fault 접근을 지원하지 않는 devices에 fault를 일으킬 수 있습니다.
CONFIG_MCUMGR_TRANSPORT_BT_DYNAMIC_SVC_REGISTRATION를 추가하여 사용자가 MCUmgr BT 서비스를 컴파일 시 정적 또는 실행 시 동적으로 등록하는지 선택 할 수 있습니다.- FS 그룹에서, TinyCrypt은 PSA 계산에 대한 SHA 호출으로 대체되었습니다.
- 오래된 mcumgr go 도구에 대한 지침은 제거되었습니다. 대체 지원된 클라이언트의 목록은
- 호크비트
- Logging
CONFIG_LOG_BACKEND_NET_USE_DHCPV4_OPTION를 활성화함으로써, 네트워크 backend의 syslog 서버의 IP 주소는 DHCPv4 로그 서버 옵션 (7) 에 의해 설정됩니다.- 실시간 clock를 POSIX의 시간표로 사용하십시오.
- syslog (POSIX) 에 대한 지원을 추가합니다.
LOG_WRN_ONCE를 추가하여 warning message가 기록된 첫 번째 발생만 기록됩니다.- 로그 message의 처리를 촉발하기 위해
log_thread_trigger를 추가합니다. CONFIG_MULTITHREADING가 비활성화되었을 때 기재된 기록이 컴파일되지 않은 경우를 수정합니다.- 사전 기반의 기록이 비 사전으로 혼합되었을 때 logging 문자열이 바이너리에서 제거될 수 있는 수정: 경우.
- 특정 상황에서 생성되지 않는 사전 데이터베이스를 수정합니다.
- 사전 기록 분석기를 수정하여 긴 긴 논쟁을 올바르게 처리하지 않습니다.
CONFIG_LOG_MSG_APPEND_RO_STRING_LOC에 대한 지지를 고쳐라.
- Modem 모듈
- modem 파이프링크 모듈을 추가하여 modem 파이프를 전 세계적으로 공유하여 device drivers이 application에 사용할 수 있는 파이프를 생성하고 설정할 수 있습니다.
- modem 파이프 모듈의 동기화 메커니즘을 단순화하여 callback 및 사용자 데이터를 보호합니다. 이것은 modem 파이프의 실제 트리 사용과 일치합니다.
modem_stats모듈이 추가되어 modem subsystem 전체에 걸쳐 버퍼 사용량을 추적합니다.
- Power management
- Devices는 이제 어떤 시스템 전력 상태가 전력 손실을 일으키는지를 선언할 수 있습니다. 이 정보는 release이 필요로 할 때 device의 전력 상태 제한을 설정하고 사용할 수 있습니다. 이 기능은
CONFIG_PM_POLICY_DEVICE_CONSTRAINTS로 활성화됩니다.pm_policy_device_power_lock_get및pm_policy_device_power_lock_put기능을 사용하여 device에서 전력 손실을 일으키는 모든 전력 상태를 잠금 및 잠금 해제합니다. - device power management에 대한 shell 지원이 추가되었습니다.
- Device power management는 power management 시스템에서 분리되었습니다. 새로운
CONFIG_PM_DEVICE_SYSTEM_MANAGED옵션은 시스템이 잠들 때 devices가 중단되어야하는지 여부를 가능하게 하기 위해 사용됩니다. - device power management를
zephyr,pm-device-disabled을 사용하여 전력 상태마다 개별적으로 시스템 device을 비활성화 할 수 있습니다. 이것은 어떤 상태가 device power management를 유발해야하는지 (그리고 어떤 상태가 아닌지) 설정하는 목표를 허용합니다.
- Devices는 이제 어떤 시스템 전력 상태가 전력 손실을 일으키는지를 선언할 수 있습니다. 이 정보는 release이 필요로 할 때 device의 전력 상태 제한을 설정하고 사용할 수 있습니다. 이 기능은
- Crypto
- 티니크립트는 여전히 사용 가능하지만 보안과 성능을 향상시키기 위해 PSA Crypto 대신 단계적으로 폐지되고 있습니다.
- Mbed TLS 는 3.6.0 로 업데이트 되었습니다. Release 메모는 https://github.com/Mbed-TLS/mbedtls/releases/tag/v3.6.0
- 시스템에서 PSA crypto 공급자가 사용할 수 있을 때 (
CONFIG_MBEDTLS_PSA_CRYPTO_CLIENT가 활성화되어 있습니다), 원하는 PSA 기능은 이제CONFIG_PSA_WANT_xxx상징을 통해 명시적으로 선택되어야 합니다. - 선택 기호
CONFIG_MBEDTLS_PSA_CRYPTO_LEGACY_RNG및CONFIG_MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG는 사용자가 Mbed TLS PSA crypto core이 무작위 숫자를 생성하는 방법을 지정할 수 있도록 추가되었습니다. 기본 옵션은 기존 entropy 및 CTR_DRBG/HMAC_DRBG 모듈에 의존하지만 후자는 CSPRNG drivers에 의존합니다. CONFIG_MBEDTLS_PSA_P256M_DRIVER_ENABLED는 Mbed TLS의 p256-m driver PSA crypto library에 대한 지원을 가능하게 합니다. 이것은 secp256r1 곡선의 Cortex-M SW 최적화된 구현입니다.
- CMSIS-NN
- CMSIS-NN는 v6.0.0에서 v4.1.0: https://arm-software.github.io/CMSIS-NN/latest/rev_hist.html로 업데이트되었습니다.
- FPGA
- drivers 누락
reset,load,get_status및get_info방법을 처리하는 것을 개선하십시오. - Agilex 및 Agilex 5에 대한 지원이 추가됩니다.
- drivers 누락
- Random
- 기존의
sys_rand32_get기능 외에도sys_rand8_get,sys_rand16_get및sys_rand64_get도 사용할 수 있습니다. 이 기능은 모두sys_rand_get위에 구현됩니다.
- 기존의
- SD
- SDMMC 및 SDIO 주파수 및 타이밍 선택 논리는 SDMMC 및 SDIO 사용 중인 SDHC device이 그 모드에서 가능한 최대 주파수를 지원하지 않는 경우 타이밍 모드가 선택되지 않는 문제를 해결하기 위해 재개되었습니다. 이제, host controller와 카드가 주어진 타이밍 모드에 대한 지원을 보고하지만 해당 모드가 지원하는 가장 높은 주파수를하지 않으면 타이밍 모드가 선택되고 감소된 주파수로 구성됩니다 (
72705).
- SDMMC 및 SDIO 주파수 및 타이밍 선택 논리는 SDMMC 및 SDIO 사용 중인 SDHC device이 그 모드에서 가능한 최대 주파수를 지원하지 않는 경우 타이밍 모드가 선택되지 않는 문제를 해결하기 위해 재개되었습니다. 이제, host controller와 카드가 주어진 타이밍 모드에 대한 지원을 보고하지만 해당 모드가 지원하는 가장 높은 주파수를하지 않으면 타이밍 모드가 선택되고 감소된 주파수로 구성됩니다 (
- 국가 기계 Framework
SMF_CREATE_STATE매크로는 이제 항상 5 assertion을 사용합니다.- 실행된 국가의 부모인 전환 소스는 이제 출입 및 출입 동작을 실행하기 위해 올바른 최소 공통 조상을 선택합니다.
NULL를smf_set_state로 넘기는 것은 이제 허용되지 않습니다.
- Storage
- FAT FS: 이제 FAT에 대한 파일 시스템 포맷 기능을 failure 마운트에 자동 포맷을 활성화하지 않고
CONFIG_FS_FATFS_MKFSKconfig 옵션을 설정하여 노출할 수 있습니다. 이 옵션은 기본적으로CONFIG_FILE_SYSTEM_MKFS를 설정하면 활성화됩니다. - FS: 이제
fs_open를 사용하여 열고FS_O_TRUNC플래그를 통과하는 동안 파일을 단축할 수 있습니다. - Flash 지도: TinyCrypt는 PSA Crypto 영역의 무결성 검사에서 PSA Crypto으로 대체되었습니다.
- Flash 지도:
flash_area_flatten는 removing/scrambling 데이터를 무작위로 작성하기 위해 device를 준비하기보다는 이전에 removing/scrambling 데이터에 삭제 작업이 사용된 경우 사용되도록 추가되었습니다. - Flash 지도:
FIXED_PARTITION_NODE_OFFSET,FIXED_PARTITION_NODE_SIZE및FIXED_PARTITION_NODE_DEVICE는 레이블이 아닌 devicetree node에서 고정 파티션 정보를 얻을 수 있도록 추가되었습니다. CONFIG_NVS_DATA_CRC를 추가하여 데이터에 대한 CRC 보호 기능을 추가했습니다. 이 옵션을 활성화하면 NVS가 이전에 데이터에 CRC를 사용하지 않은 기존 저장장치와 호환되지 않는다는 점을 유의하십시오.- NVS 문제가 수정되어
nvs_calc_free_space는 예약된 식용 공간이 빼지 않았기 때문에 사용 가능한 것보다 더 큰 크기를 반환합니다. - 수정: ext2는 파티션을 포맷하려고 할 때 자유 공간을 잘못 계산합니다.
- 수정: FAT driver 디스크를 설치 후 초기 상태에서 남겨두고 있습니다.
- FAT FS: 이제 FAT에 대한 파일 시스템 포맷 기능을 failure 마운트에 자동 포맷을 활성화하지 않고
- Task Watchdog
- 추가 된 껍질 (주적으로 개발 중 테스트 목적으로)
- POSIX API
- 표준 POSIX 옵션 및 옵션 그룹을 반영하기 위해 Kconfig 옵션을 개선.
- 다음 옵션 그룹에 대한 추가 지원
POSIX_MAPPED_FILES <posix_option_group_mapped_files>POSIX_MEMORY_PROTECTION <posix_option_group_memory_protection>POSIX_NETWORKING <posix_option_group_networking>POSIX_SINGLE_PROCESS <posix_option_group_single_process>POSIX_TIMERS <posix_option_group_timers>XSI_SYSTEM_LOGGING <posix_option_group_xsi_system_logging>
- 다음 옵션에 대한 추가 지원
_POSIX_ASYNCHRONOUS_IO <posix_option_asynchronous_io>_POSIX_CPUTIME <posix_option_cputime>_POSIX_FSYNC <posix_option_fsync>_POSIX_MEMLOCK <posix_option_memlock>_POSIX_MEMLOCK_RANGE <posix_option_memlock_range>_POSIX_READER_WRITER_LOCKS <posix_option_reader_writer_locks>_POSIX_SHARED_MEMORY_OBJECTS <posix_shared_memory_objects>_POSIX_THREAD_CPUTIME <posix_option_thread_cputime>_POSIX_THREAD_PRIO_PROTECT <posix_option_thread_prio_protect>_POSIX_THREAD_PRIORITY_SCHEDULING <posix_option_thread_priority_scheduling>_XOPEN_STREAMS <posix_option_xopen_streams>
- 내부 플래그를 덮어쓰지 않기 위해
F_SETFL운용을 고정하는 이벤트 - 디버그 message에 인쇄된 thread stack 주소가 고정되어 있습니다.
- 신호 code에서 수정: 매크로 매개 변수 사용
- LoRa/LoRaWAN
CONFIG_LORAWAN_FRAG_TRANSPORT를 통해 활성화 할 수 있는 Fragmented Data Block Transport 서비스를 추가했습니다. Semtech에서 기본으로 만든 조각 디encoder 구현 외에도, memory footprint을 줄인 나무 구현이 제공됩니다.- 공기 (FUOTA) 에서 LoRaWAN 펌웨어 업그레이드를 보여주기 위해 sample를 추가했습니다.
- ZBus
- VDED 프로세스를 개선하여 message 구독자 전달 알림 중에 전달된 클론에 대한 채널 참조 복사 기능을 최적화했습니다.
- 세마포어 및 런타임 관찰자 목록의 정적 초기화를 통해 초기화 단계를 개선하여 zbus 초기화의 기간을 줄였습니다.
- 채널 message 가입자 풀을 격리하는 방법을 추가했습니다. 일부 채널은 이제 전송 실패를 피하고 통신 지연을 단축하기 위해 격리된 풀을 공유할 수 있습니다.
CONFIG_ZBUS_MSG_SUBSCRIBER_NET_BUF_POOL_ISOLATION를 활성화하고zbus_chan_set_msg_sub_pool기능을 사용하여 채널이 사용하는 msg 풀을 변경하는 것이 필요합니다. 채널은 동일한 message 풀을 공유할 수 있습니다.
HAL
- Nordic
- nrfx가 3.5.0 버전으로 업데이트되었습니다.
- 추가된 nRF 서비스 (nrfs) library
- STM32
- STM32F0를 큐브 버전으로 업데이트
- STM32F3를 큐브 버전으로 업데이트
- STM32F4를 큐브 버전으로 업데이트
- STM32F7를 큐브 버전으로 업데이트
- STM32G0를 큐브 버전으로 업데이트
- STM32G4를 큐브 버전으로 업데이트
- STM32H5를 큐브 버전으로 업데이트
- STM32H7를 큐브 버전으로 업데이트
- STM32L5를 큐브 버전으로 업데이트
- STM32U5를 큐브 버전으로 업데이트
- STM32WB를 큐브 버전으로 업데이트
- STM32WBA를 큐브 버전으로 업데이트
- 큐브 버전의 V1.0.0와 함께 STM32H7R/S를 추가했습니다.
- ADI
hal_adi모듈을 소개했습니다. 이것은 device 헤더 파일과 Bare Metal Peripheral drivers (72391) 를 포함하는 Maxim Software Development Kit (MSDK) 의 하위 집합입니다.
- Espressif
- HAL를 새로운 SOCs 낮은 수준의 파일을 가진 v5.1 버전으로 업데이트했습니다.
MCUboot
- 부팅용 HKDF 구현에서 수정: memory 누출
- 보호해야 할 고정 적용되는 TLV 항목
- 수정: instruction/data 비활성화 캐시
- 수정: 추정된 이미지 오버헤드 크기의 계산
- 스위프 이동 알고리즘이 여러 이미지를 검증하지 못하는 문제가 해결되었습니다
- imgtool에서 정렬 스크립트 오류가 수정되었습니다
- imgtool에서 hex 파일 형식을 확인하는 고정 img
- flash 이미지 리셋 벡터를 읽는 데 문제가 해결되었습니다
- 너무 이른
check_config.h를 mbedtls에 포함합니다 - code의 크기를 줄이기 위해 리팩터링된 이미지 의존 기능
ESP32-C6에 대한 MCUboot 지원이 추가되었습니다- 선택적으로 추가된 MCUboot boot 배너
- 보호 구역에 대한 TLV 쿼리 추가
- bootutil에서 확인을 위한 빌트인 키를 사용하여 추가
- 추가된 빌트인 ECDSA 키 지원
- 부차적 이미지에
OVERWRITE_ONLY_KEEP_BACKUP옵션이 추가되었습니다 SOC_FLASH_0_ID및SPI_FLASH_0_ID에 대한 정의가 추가되었습니다- mbedtls 버전의 고정 ASN.1 지원 >= 3.1
boot_read_enc_key에서 수정: 부터틸 signed/unsigned 비교- 명령 줄 논증을 취하기 위해 imgtool version.py를 업데이트
- 덤프 인포에 imgtool 개선이 추가되었습니다
- 다양한 imgtool 덤핑 정보 문제 해결
- imgtool 확정 명령 edcsa-p384 서명된 이미지
- NXP MCXN947에 추가 지원
- 이 release의 MCUboot 버전은
2.1.0+0-dev버전입니다.
OSDP
- CP secure-channel handshake 문제를 수정했습니다. 악의적인 PD가 명령 순서를 벗어난 secure-channel response을 보내 R-MAC을 재사용하게 만들 수 있었고, 이는 replay attack으로 이어질 수 있었습니다.
Trusted Firmware-M
- TF-M는 2.1.0로 업데이트 되었습니다. Release 메모는 https://tf-m-user-guide.trustedfirmware.org/releases/2.1.0.html에서 찾을 수 있습니다.
- RSA-3072 이외의 MCUboot 서명 유형에 대한 지원이 추가되었습니다.
CONFIG_TFM_MCUBOOT_SIGNATURE_TYPEKconfig 옵션을 사용하여 유형을 선택할 수 있습니다. 새로운 기본 버전인 EC-P256를 사용하면 flash 사용량을 KBs에 비해 여러 번 줄입니다.
LVGL
LVGL는 8.4.0로 업데이트 되었습니다. Release 메모는 https://docs.lvgl.io/8.4/CHANGELOG.html#v8-4-0-19-march-2024에서 찾을 수 있습니다.
이 밖에도 다음 변경 사항 은 Zephyr 에 적용 되었습니다.
.lvgl_heap섹션에 memory 풀 버퍼를 배치하는 데 추가 지원- kscan 기반의 포인터 입력 포장지 code가 제거되었습니다.
LV_KEY_ENTER이벤트를 올바르게 방출하기 위해 encoder 버튼 동작을 수정합니다.invert-{x,y}및swap-xy구성에 대한 조작 개선LV_MEM_CUSTOM_FREE호출이 추가되었습니다.- DMA2D 기호에 누락된 Kconfig 줄이 추가되었습니다.
- LVGL 라운더 callback 기능에 대한 통합 지원
Test 및 Sample
- Bluetooth LE를
-S nus-console에서west build동안 쉽게 UART를 Bluetooth에서-S nus-console를 통과하여 활성화하기 위해 snippet이 추가되었습니다. 이 snippet은CONFIG_BT_ZEPHYR_NUS_AUTO_START_BLUETOOTH를 설정하여 Bluetooth samples를 사용하지 않는 UART APIs를 변경없이 실행할 수 있습니다. net/cloud/tagoio와net/mgmt/updatehubsample에서GSM_PPP전용 configuration overlay를 제거했습니다. 폐기 예정이던GSM_PPPdevice driver는 제거됐습니다. 이를 대체하는 새MODEM_CELLULARdevice driver는 native networking stack과PMsubsystem을 사용하므로 Ethernet처럼 application별 network 설정 작업이 필요하지 않습니다.- 제거된
GSM_PPPdevice driver에 의존하던net/gsm_modemsample도 제거했습니다. 이 sample은MODEM_CELLULARdevice driver 기반의net/cellular_modemsample로 대체됐습니다. - BT LE 코딩 된 PHY는 이제 CI에서 nrf5x bsim 목표치와 실행 테스트를 수행하고 있습니다.
- 외부 ethernet network 인터페이스는
tests/nettests에서 비활성화되었습니다. 이러한 tests는 시뮬레이션 된 network 인터페이스를 사용하도록 되어 있습니다.
이슈 관련 항목
공식 Zephyr 3.7.0 릴리스 노트에는 다음 알려진 문제가 기록되어 있습니다.
알려진 문제
74345- nRF51에서 Bluetooth가 fault와 함께 동작하지 않는 문제
Source
출처
영어 원문에는 문단, 문서 지시문, 표, 코드, 코드 심벌, 경로를 그대로 보존했습니다.