Now that PSA is supported on Zephyr and the code base has changed to use that library, TinyCrypt is been deprecate. Reasons for this change can be found in #43712. Signed-off-by: Flavio Ceolin <flavio.ceolin@gmail.com>
393 lines
8 KiB
ReStructuredText
393 lines
8 KiB
ReStructuredText
:orphan:
|
|
|
|
.. _zephyr_4.1:
|
|
|
|
Zephyr 4.1.0 (Working Draft)
|
|
############################
|
|
|
|
We are pleased to announce the release of Zephyr version 4.1.0.
|
|
|
|
Major enhancements with this release include:
|
|
|
|
An overview of the changes required or recommended when migrating your application from Zephyr
|
|
v4.0.0 to Zephyr v4.1.0 can be found in the separate :ref:`migration guide<migration_4.1>`.
|
|
|
|
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
|
|
|
|
API Changes
|
|
***********
|
|
|
|
Removed APIs in this release
|
|
============================
|
|
|
|
* The deprecated Bluetooth HCI driver API has been removed. It has been replaced by a
|
|
:c:group:`new API<bt_hci_api>` that follows the normal Zephyr driver model.
|
|
* The deprecated ``CAN_MAX_STD_ID`` (replaced by :c:macro:`CAN_STD_ID_MASK`) and ``CAN_MAX_EXT_ID``
|
|
(replaced by :c:macro:`CAN_EXT_ID_MASK`) CAN API macros have been removed.
|
|
* The deprecated ``can_get_min_bitrate()`` (replaced by :c:func:`can_get_bitrate_min`) and
|
|
``can_get_max_bitrate()`` (replaced by :c:func:`can_get_bitrate_max`) CAN API functions have been
|
|
removed.
|
|
* The deprecated ``can_calc_prescaler()`` CAN API function has been removed.
|
|
|
|
Deprecated in this release
|
|
==========================
|
|
|
|
* Deprecated the :c:func:`bt_le_set_auto_conn` API function. Application developers can achieve
|
|
the same functionality in their application code by reconnecting to the peer when the
|
|
:c:member:`bt_conn_cb.disconnected` callback is invoked.
|
|
|
|
* Deprecated TinyCrypt library. The reasons for this are (:github:`43712`):
|
|
|
|
* The upstream version of this library is no longer maintained.
|
|
* Reducing the number of cryptographic libraries in Zephyr to reduce maintenance overhead.
|
|
* The PSA Crypto API is the recommended cryptographic library for Zephyr.
|
|
|
|
Architectures
|
|
*************
|
|
|
|
* Common
|
|
|
|
* Introduced :kconfig:option:`CONFIG_ARCH_HAS_CUSTOM_CURRENT_IMPL`, which can be selected when
|
|
an architecture implemented and enabled its own :c:func:`arch_current_thread` and
|
|
:c:func:`arch_current_thread_set` functions for faster retrieval of the current CPU's thread
|
|
pointer. When enabled, ``_current`` variable will be routed to the
|
|
:c:func:`arch_current_thread` (:github:`80716`).
|
|
|
|
* ARC
|
|
|
|
* ARM
|
|
|
|
* ARM64
|
|
|
|
* RISC-V
|
|
|
|
* Implements :c:func:`arch_current_thread_set` & :c:func:`arch_current_thread`, which can be enabled
|
|
by :kconfig:option:`CONFIG_RISCV_CURRENT_VIA_GP` (:github:`80716`).
|
|
|
|
* Xtensa
|
|
|
|
* native/POSIX
|
|
|
|
* :kconfig:option:`CONFIG_NATIVE_APPLICATION` has been deprecated.
|
|
* For the native_sim target :kconfig:option:`CONFIG_NATIVE_SIM_NATIVE_POSIX_COMPAT` has been
|
|
switched to ``n`` by default, and this option has been deprecated.
|
|
|
|
Kernel
|
|
******
|
|
|
|
Bluetooth
|
|
*********
|
|
|
|
* Audio
|
|
|
|
* Host
|
|
|
|
* :kconfig:option:`CONFIG_BT_BUF_ACL_RX_COUNT` has been deprecated and
|
|
:kconfig:option:`CONFIG_BT_BUF_ACL_RX_COUNT_EXTRA` has been added.
|
|
|
|
* HCI Drivers
|
|
|
|
Boards & SoC Support
|
|
********************
|
|
|
|
* Added support for these SoC series:
|
|
|
|
* Made these changes in other SoC series:
|
|
|
|
* Added support for these boards:
|
|
|
|
* Made these board changes:
|
|
|
|
* All HWMv1 board name aliases which were added as deprecated in v3.7 are now removed
|
|
(:github:`82247`).
|
|
* Enabled USB, RTC on NXP ``frdm_mcxn236``
|
|
|
|
* Added support for the following shields:
|
|
|
|
Build system and Infrastructure
|
|
*******************************
|
|
|
|
* Space-separated lists support has been removed from Twister configuration
|
|
files. This feature was deprecated a long time ago. Projects that do still use
|
|
them can use the :zephyr_file:`scripts/utils/twister_to_list.py` script to
|
|
automatically migrate Twister configuration files.
|
|
|
|
Drivers and Sensors
|
|
*******************
|
|
|
|
* ADC
|
|
|
|
* Battery
|
|
|
|
* CAN
|
|
|
|
* Charger
|
|
|
|
* Clock control
|
|
|
|
* Counter
|
|
|
|
* DAC
|
|
|
|
* Disk
|
|
|
|
* Display
|
|
|
|
* Added flag ``frame_incomplete`` to ``display_write`` that indicates whether a write is the last
|
|
write of the frame, allowing display drivers to implement double buffering / tearing enable
|
|
signal handling (:github:`81250`)
|
|
* Added ``frame_incomplete`` handling to SDL display driver (:dtcompatible:`zephyr,sdl-dc`)
|
|
(:github:`81250`)
|
|
* Added transparency support to SDL display driver (:dtcompatible:`zephyr,sdl-dc`) (:github:`81184`)
|
|
|
|
* Ethernet
|
|
|
|
* Flash
|
|
|
|
* FPGA
|
|
|
|
* Extracted from :dtcompatible:`lattice,ice40-fpga` the compatible and driver for
|
|
:dtcompatible:`lattice,ice40-fpga-bitbang`. This replaces the original ``load_mode`` property from
|
|
the binding, which selected either the SPI or GPIO bitbang load mode.
|
|
|
|
* GNSS
|
|
|
|
* GPIO
|
|
|
|
* Hardware info
|
|
|
|
* I2C
|
|
|
|
* I2S
|
|
|
|
* I3C
|
|
|
|
* Input
|
|
|
|
* LED
|
|
|
|
* Added a new set of devicetree based LED APIs, see :c:struct:`led_dt_spec`.
|
|
* lp5569: added use of auto-increment functionality.
|
|
* lp5569: implemented ``write_channels`` api.
|
|
* lp5569: demonstrate ``led_write_channels`` in the sample.
|
|
|
|
* LED Strip
|
|
|
|
* LoRa
|
|
|
|
* Mailbox
|
|
|
|
* MDIO
|
|
|
|
* MFD
|
|
|
|
* Modem
|
|
|
|
* MIPI-DBI
|
|
|
|
* MSPI
|
|
|
|
* Pin control
|
|
|
|
* Added new driver for Silabs Series 2 (:dtcompatible:`silabs,dbus-pinctrl`).
|
|
|
|
* PWM
|
|
|
|
* Regulators
|
|
|
|
* Reset
|
|
|
|
* RTC
|
|
|
|
* RTIO
|
|
|
|
* SDHC
|
|
|
|
* Sensors
|
|
|
|
* Serial
|
|
|
|
* SPI
|
|
|
|
* Stepper
|
|
|
|
* Added driver for ADI TMC2209. :dtcompatible:`adi,tmc2209`
|
|
* Added :kconfig:option:`CONFIG_STEP_DIR_STEPPER` to enable common functions for step/dir steppers.
|
|
|
|
* USB
|
|
|
|
* Video
|
|
|
|
* Changed :file:`include/zephyr/drivers/video-controls.h` to have control IDs (CIDs) matching
|
|
those present in the Linux kernel.
|
|
|
|
* Watchdog
|
|
|
|
* Wi-Fi
|
|
|
|
Networking
|
|
**********
|
|
|
|
* ARP:
|
|
|
|
* CoAP:
|
|
|
|
* Connection manager:
|
|
|
|
* DHCPv4:
|
|
|
|
* DHCPv6:
|
|
|
|
* DNS/mDNS/LLMNR:
|
|
|
|
* gPTP/PTP:
|
|
|
|
* HTTP:
|
|
|
|
* IPSP:
|
|
|
|
* IPv4:
|
|
|
|
* IPv6:
|
|
|
|
* LwM2M:
|
|
|
|
* Misc:
|
|
|
|
* MQTT:
|
|
|
|
* Network Interface:
|
|
|
|
* OpenThread:
|
|
|
|
* Removed the implicit enabling of the :kconfig:option:`CONFIG_NVS` Kconfig option by the :kconfig:option:`CONFIG_NET_L2_OPENTHREAD` symbol.
|
|
|
|
* PPP
|
|
|
|
* Shell:
|
|
|
|
* Sockets:
|
|
|
|
* The deprecated :kconfig:option:`CONFIG_NET_SOCKETS_POSIX_NAMES` option has been removed.
|
|
It was a legacy option and was used to allow user to call BSD socket API while not enabling POSIX API.
|
|
This removal means that in order to use POSIX API socket calls, one needs to enable the
|
|
:kconfig:option:`CONFIG_POSIX_API` option.
|
|
If the application does not want or is not able to enable that option, then the socket API
|
|
calls need to be prefixed by a ``zsock_`` string.
|
|
|
|
* Syslog:
|
|
|
|
* TCP:
|
|
|
|
* Websocket:
|
|
|
|
* Wi-Fi:
|
|
|
|
* zperf:
|
|
|
|
USB
|
|
***
|
|
|
|
Devicetree
|
|
**********
|
|
|
|
* Added :c:macro:`DT_ANY_INST_HAS_BOOL_STATUS_OKAY`.
|
|
|
|
Kconfig
|
|
*******
|
|
|
|
Libraries / Subsystems
|
|
**********************
|
|
|
|
* Debug
|
|
|
|
* Demand Paging
|
|
|
|
* Formatted output
|
|
|
|
* Management
|
|
|
|
* Logging
|
|
|
|
* Modem modules
|
|
|
|
* Power management
|
|
|
|
* Crypto
|
|
|
|
* The Kconfig symbol :kconfig:option:`CONFIG_MBEDTLS_PSA_STATIC_KEY_SLOTS` was
|
|
added to allow Mbed TLS to use statically allocated buffers to store key material
|
|
in its PSA Crypto core instead of heap-allocated ones. This can help reduce
|
|
(or remove, if no other component makes use of it) heap memory requirements
|
|
from the final application.
|
|
|
|
* The Kconfig symbol :kconfig:option:`CONFIG_MBEDTLS_PSA_KEY_SLOT_COUNT` was
|
|
added to allow selecting the number of key slots available in the Mbed TLS
|
|
implementation of the PSA Crypto core. It defaults to 16. Since each
|
|
slot consumes RAM memory even if unused, this value can be tweaked in order
|
|
to minimize RAM usage.
|
|
|
|
* CMSIS-NN
|
|
|
|
* FPGA
|
|
|
|
* Random
|
|
|
|
* SD
|
|
|
|
* State Machine Framework
|
|
|
|
* Storage
|
|
|
|
* Task Watchdog
|
|
|
|
* POSIX API
|
|
|
|
* LoRa/LoRaWAN
|
|
|
|
* ZBus
|
|
|
|
HALs
|
|
****
|
|
|
|
* Nordic
|
|
|
|
* STM32
|
|
|
|
* ADI
|
|
|
|
* Espressif
|
|
|
|
MCUboot
|
|
*******
|
|
|
|
OSDP
|
|
****
|
|
|
|
Trusted Firmware-M
|
|
******************
|
|
|
|
LVGL
|
|
****
|
|
|
|
* Added ``frame_incomplete`` support to indicate whether a write is the last
|
|
write of the frame (:github:`81250`)
|
|
|
|
Tests and Samples
|
|
*****************
|
|
|
|
* Fixed incorrect alpha values in :zephyr_file:`samples/drivers/display`. (:github:`81184`)
|
|
* Added :zephyr_file:`samples/modules/lvgl/screen_transparency`. (:github:`81184`)
|
|
|
|
Issue Related Items
|
|
*******************
|
|
|
|
Known Issues
|
|
============
|