blob: 2c4e6d2d05780bb064d99ac02d429bd2ad6c8b3d [file] [log] [blame]
:orphan:
.. _zephyr_2.6:
Zephyr 2.6.0 (Working Draft)
############################
We are pleased to announce the release of Zephyr RTOS version 2.6.0.
Major enhancements with this release include:
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
Known issues
************
You can check all currently known issues by listing them using the GitHub
interface and listing all issues with the `bug label
<https://github.com/zephyrproject-rtos/zephyr/issues?q=is%3Aissue+is%3Aopen+label%3Abug>`_.
API Changes
***********
* Driver APIs now return ``-ENOSYS`` if optional functions are not implemented.
If the feature is not supported by the hardware ``-ENOTSUP`` will be returned.
Formerly ``-ENOTSUP`` was returned for both failure modes, meaning this change
may require existing code that tests only for that value to be changed.
* The :c:func:`wait_for_usb_dfu` function now accepts a ``k_timeout_t`` argument instead of
using the ``CONFIG_USB_DFU_WAIT_DELAY_MS`` macro.
* Added disconnect reason to the :c:func:`disconnected` callback of :c:struct:`bt_iso_chan_ops`.
* Align error handling of :c:func:bt_l2cap_chan_send and
:c:func:bt_iso_chan_send so when an error occur the buffer is not unref.
* Added c:func:`lwm2m_engine_delete_obj_inst` function to the LwM2M library API.
Deprecated in this release
* :c:macro:`DT_CLOCKS_LABEL_BY_IDX`, :c:macro:`DT_CLOCKS_LABEL_BY_NAME`,
:c:macro:`DT_CLOCKS_LABEL`, :c:macro:`DT_INST_CLOCKS_LABEL_BY_IDX`,
:c:macro:`DT_INST_CLOCKS_LABEL_BY_NAME`, and
:c:macro:`DT_INST_CLOCKS_LABEL` was deprecated in favor of utilizing
:c:macro:`DT_CLOCKS_CTLR` and variants.
* :c:macro:`DT_PWMS_LABEL_BY_IDX`, :c:macro:`DT_PWMS_LABEL_BY_NAME`,
:c:macro:`DT_PWMS_LABEL`, :c:macro:`DT_INST_PWMS_LABEL_BY_IDX`,
:c:macro:`DT_INST_PWMS_LABEL_BY_NAME`, and
:c:macro:`DT_INST_PWMS_LABEL` was deprecated in favor of utilizing
:c:macro:`DT_PWMS_CTLR` and variants.
* :c:macro:`DT_IO_CHANNELS_LABEL_BY_IDX`,
:c:macro:`DT_IO_CHANNELS_LABEL_BY_NAME`,
:c:macro:`DT_IO_CHANNELS_LABEL`,
:c:macro:`DT_INST_IO_CHANNELS_LABEL_BY_IDX`,
:c:macro:`DT_INST_IO_CHANNELS_LABEL_BY_NAME`, and
:c:macro:`DT_INST_IO_CHANNELS_LABEL` were deprecated in favor of utilizing
:c:macro:`DT_IO_CHANNELS_CTLR` and variants.
* :c:macro:`DT_DMAS_LABEL_BY_IDX`,
:c:macro:`DT_DMAS_LABEL_BY_NAME`,
:c:macro:`DT_INST_DMAS_LABEL_BY_IDX`, and
:c:macro:`DT_INST_DMAS_LABEL_BY_NAME` were deprecated in favor of utilizing
:c:macro:`DT_DMAS_CTLR` and variants.
* USB HID specific macros in ``<include/usb/class/usb_hid.h>`` are deprecated
in favor of new common HID macros defined in ``<include/usb/class/hid.h>``.
* USB HID Kconfig option USB_HID_PROTOCOL_CODE is deprecated.
USB_HID_PROTOCOL_CODE does not allow to set boot protocol code for specific
HID device. USB HID API function usb_hid_set_proto_code() can be used instead.
* USB HID class API is changed by removing get_protocol/set_protocol and
get_idle/set_idle callbacks. These callbacks are redundant or do not provide
any additional value and have led to incorrect usage of HID class API.
* The ``CONFIG_OPENOCD_SUPPORT`` Kconfig option has been deprecated in favor
of ``CONFIG_DEBUG_THREAD_INFO``.
* Disk drivers (``disk_access_*.c``) are moved to ``drivers/disk`` and renamed
according to their function. Driver's Kconfig options are revised and renamed.
SDMMC host controller drivers are selected when the corresponding node
in devicetree is enabled. Following application relevant Kconfig options
are renamed: ``CONFIG_DISK_ACCESS_RAM`` -> `CONFIG_DISK_DRIVER_RAM`,
``CONFIG_DISK_ACCESS_FLASH`` -> `CONFIG_DISK_DRIVER_FLASH`,
``CONFIG_DISK_ACCESS_SDHC`` -> `CONFIG_DISK_DRIVER_SDMMC`.
Disk API header ``<include/disk/disk_access.h>`` is deprecated in favor of
``<include/storage/disk_access.h>``.
* :c:func:`flash_write_protection_set()`.
* The ``CONFIG_NET_CONTEXT_TIMESTAMP`` is removed as it was only able to work
with transmitted data. The same functionality can be achieved by setting
``CONFIG_NET_PKT_RXTIME_STATS`` and ``CONFIG_NET_PKT_TXTIME_STATS`` options.
These options are also able to calculate the RX & TX times more accurately.
This means that support for the SO_TIMESTAMPING socket option is also removed
as it was used by the removed config option.
* The device power management (PM) APIs and data structures have been renamed
from ``device_pm_*`` to ``pm_device_*`` since they are not device APIs but PM
subsystem APIs. The same applies to enumerations and definitions, they now
follow the ``PM_DEVICE_*`` convention. Some other API calls such as
``device_set_power_state`` and ``device_get_power_state`` have been renamed to
``pm_device_state_set`` and ``pm_device_state_get`` in order to align with
the naming of other device PM APIs.
* The following functions, macros, and structures related to the kernel
work queue API:
* :c:func:`k_work_pending()` replace with :c:func:`k_work_is_pending()`
* :c:func:`k_work_q_start()` replace with :c:func:`k_work_queue_start()`
* :c:struct:`k_delayed_work` replace with :c:struct:`k_work_delayable`
* :c:func:`k_delayed_work_init()` replace with
:c:func:`k_work_init_delayable`
* :c:func:`k_delayed_work_submit_to_queue()` replace with
:c:func:`k_work_schedule_for_queue()` or
:c:func:`k_work_reschedule_for_queue()`
* :c:func:`k_delayed_work_submit()` replace with :c:func:`k_work_schedule()`
or :c:func:`k_work_reschedule()`
* :c:func:`k_delayed_work_pending()` replace with
:c:func:`k_work_delayable_is_pending()`
* :c:func:`k_delayed_work_cancel()` replace with
:c:func:`k_work_cancel_delayable()`
* :c:func:`k_delayed_work_remaining_get()` replace with
:c:func:`k_work_delayable_remaining_get()`
* :c:func:`k_delayed_work_expires_ticks()` replace with
:c:func:`k_work_delayable_expires_get()`
* :c:func:`k_delayed_work_remaining_ticks()` replace with
:c:func:`k_work_delayable_remaining_get()`
* :c:macro:`K_DELAYED_WORK_DEFINE` replace with
:c:macro:`K_WORK_DELAYABLE_DEFINE`
==========================
Removed APIs in this release
* Removed support for the old zephyr integer typedefs (u8_t, u16_t, etc...).
* Removed support for k_mem_domain_destroy and k_mem_domain_remove_thread
* Removed support for counter_read and counter_get_max_relative_alarm
* Removed support for device_list_get
============================
Stable API changes in this release
==================================
Kernel
******
* Added :c:func:`k_mem_unmap()` so anonymous memory mapped via :c:func:`k_mem_map()`
can be unmapped and virtual address reclaimed.
* Added the ability to gather more statistics for demand paging, including execution
time histograms for eviction algorithms and backing stores.
Architectures
*************
* ARC
* Added new ARCv3 64bit ISA support and corresponding HS6x processor support
* Hardened SMP support
* Various minor fixes/improvements for ARC MWDT toolchain infrastructure
* Refactor of ARC Kconfig
* ARM
* AARCH32
* Added support for null pointer dereferencing detection in Cortex-M.
* Added initial support for Arm v8.1-m and Cortex-M55
* Added support for preempting threads while they are performing secure calls in Cortex-M.
* AARCH64
* SMP support
* MMU dynamic mappings with page table sharing.
* Userspace (unprivileged) thread support.
* Standalone SMCCC support.
* XIP support.
* ARM64 is now a top-level standalone architecture.
* Support for Cortex-R82 and Armv8-R AArch64 MPU.
* Cache management support.
* Revamped boot code.
* Full FPU context switching.
* POSIX
* RISC-V
* x86
* Added SoC configuration for Lakemont SoC.
* Removed kconfig ``CONFIG_CPU_MINUTEIA`` as there is no user of this option.
* Renamed kconfig ``CONFIG_SSE*`` to ``CONFIG_X86_SSE*``.
* Extended the pagetable generation script to allow specifying additional
memory mapping during build.
* x86-32
* Added support for kernel image to reside in virtual address space, allowing
code execution and data manipulation via virtual addresses.
Boards & SoC Support
********************
* Added support for these SoC series:
* STM32F205xx
* STM32G03yxx, STM32G05yxx, STM32G070xx and STM32G0byxx
* STM32G4x1, STM32G4x3 and STM32G484xE
* STM32WL55xx
* Nuvoton npcx7m6fc, and npcx7m6fc
* Renesas RCar Gen3
* Silicon Labs EFR32FG13P
* ARM MPS3-AN547
* ARM FVP-AEMv8A
* ARM FVP-AEMv8R
* NXP LS1046A
* X86 Lakemont
* Removed support for these SoC series:
* ARM Musca-A
* Made these changes in other SoC series:
* Added Cypress PSoC-6 pinctrl support.
* STM32 L4/L5/WB series were updated for better power management support (CONFIG_PM=y).
* Backup SRAM added on a selection of STM32 series (F2/F4/F7/H7)
* Set TRACE_MODE to asynchronous and enable trace output pin on STM32 SoCs
* Changes for ARC boards:
* Added nSIM and QEMU simulation boards (nsim_hs6x and qemu_arc_hs6x)
with ARCv3 64bit HS6x processors
* Enabled MPU on qemu_arc_hs and qemu_arc_em boards
* Added cy8c95xx GPIO expander support to HSDK board
* Added support for these ARM boards:
* Actinius Icarus
* Actinius Icarus SoM
* Laird Connectivity BL654 Sensor Board
* Laird Connectivity Sentrius BT6x0 Sensor
* EFR32 Radio BRD4255A Board
* MPS3-AN547
* RAK4631
* Renesas R-Car H3ULCB
* Ronoth LoDev (based on AcSIP S76S / STM32L073)
* nRF9160 Thing Plus
* ST Nucleo F030R8
* ST Nucleo G0B1RE
* ST Nucleo H753ZI
* ST Nucleo L412RP-P
* ST Nucleo WL55JC
* ST STM32G071B Discovery
* Thingy:53
* u-blox EVK-BMD-30/35: BMD-300-EVAL, BMD-301-EVAL, and BMD-350-EVAL
* u-blox EVK-BMD-330: BMD-330-EVAL
* u-blox EVK-BMD-34/38: BMD-340-EVAL and BMD-341-EVAL
* u-blox EVK-BMD-34/38: BMD-345-EVAL
* u-blox EVK-BMD-360: BMD-360-EVAL
* u-blox EVK-BMD-34/48: BMD-380-EVAL
* u-blox EVK-ANNA-B11x
* u-blox EVK NINA-B11x
* u-blox EVK-NINA-B3
* u-blox EVK NINA-B40x
* Added support for these ARM64 boards:
* fvp_base_revc_2xaemv8a
* fvp_baser_aemv8r
* nxp_ls1046ardb
* Removed support for these ARM boards:
* ARM V2M Musca-A
* Nordic nRF5340 PDK
* Made these changes in other boards:
* cy8ckit_062_ble: Refactored to configure by pinctrl.
* cy8ckit_062_ble: Added support to SCB[uart] with interrupt.
* cy8ckit_062_ble: Added support to SCB[spi].
* cy8ckit_062_ble: Added board revision schema.
* cy8ckit_062_wifi_bt: Refactored to configure by pinctrl.
* cy8ckit_062_wifi_bt: Added support to SCB[uart] with interrupt.
* lpcxpresso55s16: Board renamed from lpcxpresso55s16_ns to
lpcxpresso55s16 since the board does not have Trusted Firmware M
(TF-M) support.
* lpcxpresso55s28: Removed lpcxpresso55s28_ns config since the board
does not have Trusted Firmware M (TF-M) support.
* Added support for these following shields:
* FTDI VM800C Embedded Video Engine Board
* Generic ST7735R Display Shield
* NXP FRDM-STBC-AGM01
* Semtech SX1272MB2DAS LoRa Shield
Drivers and Sensors
*******************
* ADC
* Audio
* Bluetooth
* The Kconfig option ``CONFIG_BT_CTLR_TO_HOST_UART_DEV_NAME`` was removed.
Use the :ref:`zephyr,bt-c2h-uart chosen node <devicetree-chosen-nodes>`
directly instead.
* CAN
* A driver for CAN-FD based on the Bosch M_CAN IP was added. The driver
currently supports STM32G4 series MCUs. Additional support for Microchip
SAM and NXP chips is in progress.
* The CAN ISO-TP subsystem was enhanced to allow padding and fixed
addressing.
* Clock Control
* On STM32 series, system clock configuration has been moved from Kconfig to DTS.
Usage of existing Kconfig dedicated symbols (CONFIG_CLOCK_STM32_FOO) is now
deprecated.
* Console
* Counter
* Crypto
* DAC
* Debug
* Disk
* Added SDMMC support on STM32L4+
* Display
* DMA
* Added support on STM32G0 and STM32H7
* EEPROM
* Entropy
* ESPI
* Ethernet
* Added simulated PTP clock to e1000 Ethernet controller. This allows simple PTP
clock testing with Qemu.
* Separated PTP clock from gPTP support in mcux and gmac drivers. This allows
application to use PTP clock without enabling gPTP support.
* Converted clock control to use DEVICE_DT_GET in mcux driver.
* Changed to allow changing MAC address in gmac driver.
* Driver for STM32H7 is now using specific memory layout to fit DMA constraints
for RAM accesses.
* Flash
* flash_write_protection_set() has been deprecated and will be removed in
Zephyr 2.8. Responsibility for write/erase protection management has been
moved to the driver-specific implementation of the flash_write() and
flash_erase() API calls. All in-tree flash drivers have been updated,
and the protect implementation removed from their API tables.
During the deprecation period user code invoking
flash_write_protection_set() will have no effect, but the flash_write() and
flash_erase() driver shims will wrap their calls with calls to the protect
implementation if it is present in the API table.
Out-of-tree drivers must be updated before the wrapping in the shims is
removed when the deprecation period ends.
* Added QSPI support on STM32F7.
* GPIO
* :c:struct:`gpio_dt_spec`: a new structure which makes it more convenient to
access GPIO configuration in the :ref:`devicetree <dt-guide>`.
* New macros for initializing ``gpio_dt_spec`` values:
:c:macro:`GPIO_DT_SPEC_GET_BY_IDX`, :c:macro:`GPIO_DT_SPEC_GET_BY_IDX_OR`,
:c:macro:`GPIO_DT_SPEC_GET`, :c:macro:`GPIO_DT_SPEC_GET_OR`,
:c:macro:`GPIO_DT_SPEC_INST_GET_BY_IDX`,
:c:macro:`GPIO_DT_SPEC_INST_GET_BY_IDX_OR`,
:c:macro:`GPIO_DT_SPEC_INST_GET`, and :c:macro:`GPIO_DT_SPEC_INST_GET_OR`
* New helper functions for using ``gpio_dt_spec`` values:
:c:func:`gpio_pin_configure_dt`, :c:func:`gpio_pin_interrupt_configure_dt`
* Remove support for ``GPIO_INT_*`` flags in :c:func:`gpio_pin_configure()`.
The feature has been deprecated in the Zephyr 2.2 release. The interrupt
flags are now accepted by :c:func:`gpio_pin_interrupt_configure()`
function only.
* STM32 GPIO driver now supports clock gating using PM_DEVICE and PM_DEVICE_RUNTIME
* Hardware Info
* I2C
* Added support on STM32F2
* I2S
* IEEE 802.15.4
* Fixed various issues in IEEE 802.15.4 L2 driver.
* nrf5:
* Made HW Radio Capabilities runtime.
* Enabled CSMA-CA on serialized host.
* Changed driver to load EUI64 from UICR.
* rf2xx:
* Added support for tx mode direct.
* Added support for tx mode CCA.
* Added support to enable promiscuous mode.
* Added support to enable pan coordinator mode.
* Interrupt Controller
* IPM
* Keyboard Scan
* LED
* LED Strip
* LoRa
* Modem
* Converted wncm14a2a, quectel-bg9x, hl7800 and ublox-sara-r4 drivers to use
new DT device macros.
* Changed GSM modem to optionally do a factory reset when booting.
* Added autostarting support to GSM modem.
* Added wait for RDY instead of polling AT in BG9X.
* Fixed PDP context management for BG9X.
* Added TLS offload support to ublox-sara-r4.
* Made reset pin optional in ublox-sara-r4.
* Fixed potential buffer overrun in hl7800.
* Fixed build errors on 64-bit platforms.
* Added support for dialup modem in PPP driver.
* PECI
* Pinmux
* PS/2
* PWM
* Added support on STM32F2 and STM32L1
* Sensor
* Added support for STM32 internal (CPU) temperature sensor
* Serial
* Extended Cypress PSoC-6 SCB[uart] driver to support interrupts.
* SPI
* Added Cypress PSoC-6 SCB[spi] driver.
* Default SPI_SCK configuration is now pull-down for all STM32 to minimize power
consumption in stop mode.
* Timer
* USB
* Added support on STM32H7
* Video
* Watchdog
* WiFi
* Converted eswifi and esp drivers to new DT device macros
* esp:
* Fixed hostname configuration.
* Removed POSIX API dependency.
* Renamed offloading driver from esp to esp_at.
* Added esp32 wifi driver support.
Networking
**********
* CoAP:
* Fixed coap_find_options() to return 0 when options are empty.
* DHCPv4:
* Fixed DHCPv4 dependency to network event management options.
* DNS:
* Added locking to DNS library prevent concurrent access.
* Added 10ms delay when rescheduling query timeout handler in DNS. This allows
applications to run and handle the timeout gracefully.
* Added support for reconfiguring DNS resolver when DNS servers are changed.
This is supported by DHCPv4 and PPP.
* HTTP:
* Added support for storing numeric HTTP error code in client API.
* IPv4:
* Added IGMPv2 support to IPv4.
* Removed IPv4 multicast address check when selecting source address during TX.
* LwM2M:
* Fixed query buffer size so that it is large enough to encode all query strings.
* Added data validation callback.
* Fixed Register/Update to use link_format writer.
* Added application/link-format content writer.
* Removed .well-known/core handling.
* Introduced attribute handling helper functions.
* Removed obsolete LWM2M_IPSO_TIMESTAMP_EXTENSIONS option.
* Added IPSO Buzzer, Push Button, On/Off Switch, Accelerometer, Pressure Sensor,
Humidity, Generic Sensor and Temperature object implementation to support
object model in version 1.1
* Unified reusable resources creation.
* Added support for object versioning.
* Changed to allow cancel-observe to match path.
* Made pmin and pmax attributes optional.
* Added API function to delete object instance.
* Fixed Registration Update send on object creation.
* Changed to only parse TLV from the first block.
* Changed to trigger registration update only when registered.
* Misc:
* Added UDP packet sending support to net-shell.
* Fixed source network interface setting when sending and when there are
multiple network interfaces.
* Changed connection managed to ignore not used network interfaces.
* Added locking to network interface API function calls.
* Changed to allow application to disable IPv4 or IPv6 support for a network interface.
* Added support for virtual network interfaces.
* Added support for IPv4/v6 tunneling network interface.
* Added net events notification for PPP dead and running states.
* Added PPP LCP MRU option support.
* Added PPP IPCP IP and DNS address peer options support.
* Added support for network packet capturing and sending data to external system
for analysis.
* Enabled running without TX or RX threads. By default, one RX thread and
no TX thread is created. If userspace support is enabled, then one RX and one
TX thread are created. This improves the network transmit latency when a
packet is sent from application.
* Changed to push highest priority net_pkt directly to driver when sending and if
there is at least one TX thread.
* Changed to use k_fifo instead of k_work in RX and TX processing. This prevents
k_work from accessing already freed net_pkt struct. This also improves the latency
of network packets when the data is passed between different network threads.
* Changed to check network interface status when sending and return ENETDOWN to the
application if data cannot be sent.
* Fixed echo-server sample application and set netmask properly when VLAN is
enabled.
* OpenThread:
* Added microseconds timer API support.
* Changed to switch radio off when stopping diagnostics.
* Enabled CSL delayed transmissions.
* Added CSL transmitter and receiver API support.
* Changed to init NCP after USB communication is established.
* Aligned with the new NCP API.
* Aligned with the new CLI API.
* Introduced new OpenThread options.
* Added Link Metrics API support.
* Selected ECDSA when SRP is enabled.
* Made child related options only visible on FTD.
* Changed OT shell not to execute OT commands when shell is not ready.
* Socket:
* Added SO_PROTOCOL and SO_TYPE get socket option.
* Added MSG_WAITALL receive socket option flag.
* Added MSG_TRUNC socket option flag.
* Added support for close method for packet sockets.
* Added locking to socket API function calls.
* Added support for SO_BINDTODEVICE socket option.
* Added support for SO_SNDTIMEO socket option.
* Made NET_SOCKETS_POSIX_NAMES be on by default. This allows application to use
normal BSD socket API calls without adding the zsock prefix.
* Added sample application to use SO_TXTIME socket option.
* TCP:
* Implemented ISN calculation according to RFC6528 in TCP. This is optional and
enabled by default, and can be disabled if needed.
* Removed legacy TCP stack support.
* Changed TCP to use private work queue in order not to block system work queue.
* TLS:
* Fixed userspace access to TLS socket.
* Added socket option support for setting and getting DTLS handshake timeout.
Bluetooth
*********
* Host
* Mesh
* BLE split software Controller
* HCI Driver
Build and Infrastructure
************************
* Improved support for additional toolchains:
* Devicetree
- :c:macro:`DT_COMPAT_GET_ANY_STATUS_OKAY`: new macro
- the ``96b-lscon-3v3`` and ``96b-lscon-1v8`` :ref:`compatible properties
<dt-important-props>` now have ``linaro,`` vendor prefixes, i.e. they are
now respectively :dtcompatible:`linaro,96b-lscon-3v3` and
:dtcompatible:`linaro,96b-lscon-1v8`.
This change was made to bring Zephyr's devicetrees into compliance with an
upstream Linux regular expression used to validate compatible properties.
This regular expression requires a letter as the first character.
* West
* Improve bossac runner. Added legacy mode option into extended SAM-BA
bootloader selection. This extends compatibility between Zephyr and
some Arduino IDE bootloaders.
Libraries / Subsystems
**********************
* Disk
* Management
* MCUmgr
* updatehub
* Settings
* Random
* POSIX subsystem
* Power management
* ``device_pm_control_nop`` has been removed in favor of ``NULL`` when device
PM is not supported by a device. In order to make transition easier for
out-of-tree users a macro with the same name is provided as an alias to
``NULL``. The macro is flagged as deprecated to make users aware of the
change.
* Logging
* LVGL
* Shell
* Storage
* Task Watchdog
* This new subsystem was added with this release and allows supervision of
individual threads. It is based on a regularly updated kernel timer,
whose ISR is never actually called in regular system operation.
An existing hardware watchdog can be used as an optional fallback if the
task watchdog itself gets stuck.
* Tracing
* ``CONFIG_TRACING_CPU_STATS`` was removed in favor of
``CONFIG_THREAD_RUNTIME_STATS`` which provides per thread statistics. The
same functionality is also available when Thread analyzer is enabled with
the runtime statistics enabled.
* Debug
* OS
* Reboot functionality has been moved to ``subsys/os`` from ``subsys/power``.
A consequence of this movement is that the ``<power/reboot.h>`` header has
been moved to ``<sys/reboot.h>``. ``<power/reboot.h>`` is still provided
for compatibility, but it will produce a warning to inform users of the
relocation.
HALs
****
* HALs are now moved out of the main tree as external modules and reside in
their own standalone repositories.
Trusted Firmware-m
******************
* Synchronized Trusted-Firmware-M module to the upstream v1.3.0 release.
* Configured QEMU to run Zephyr samples and tests in CI on mps2_an521_nonsecure
(Cortex-M33 Non-Secure) with TF-M as the secure firmware component.
* Added Kconfig options for selecting the desired TF-M profile and build type
* Added Kconfig options for enabling the desired TF-M secure partitions
* Added a new sample to run the PSA tests with Zephyr
* Added a new sample to run the TF-M regression tests using the Zephyr build system
* Added support for new platforms
* BL5340 DVK
* STM32L562E DK
* NOTE: Trusted-Firmware-M can not currently be used with mbedtls 2.26.0 when
PSA APIs are enabled in mbedtls (``MBEDTLS_USE_PSA_CRYPTO`` and
``MBEDTLS_PSA_CRYPTO_C``). If both TF-M and mbedtls are required, mbedtls
must be used without the PSA APIs. This will be resolved in a future
update to mbedtls.
Documentation
*************
Tests and Samples
*****************
* Twister's ``dt_compat_enabled_with_alias()`` test case filter was deprecated
in favor of a new ``dt_enabled_alias_with_parent_compat()`` filter. The old
filter is still supported, but it may be removed in a future release.
To update, replace uses like this:
.. code-block:: yaml
filter: dt_compat_enabled_with_alias("gpio-leds", "led0")
with:
.. code-block:: yaml
filter: dt_enabled_alias_with_parent_compat("led0", "gpio-leds")
Issue Related Items
*******************
These GitHub issues were addressed since the previous 2.5.0 tagged
release: