Enable the external_flash_pins_routing switch in the board controller overlay for nRF9160 DK revision 0.14.0 and newer. This is to match the behaviour of the factory shipped borad controller on board revisions that have external flash. Signed-off-by: Gregers Gram Rygg <gregers.gram.rygg@nordicsemi.no>
665 lines
23 KiB
ReStructuredText
665 lines
23 KiB
ReStructuredText
:orphan:
|
|
|
|
.. _zephyr_3.4:
|
|
|
|
Zephyr 3.4.0 (Working Draft)
|
|
############################
|
|
|
|
We are pleased to announce the release of Zephyr version 3.4.0.
|
|
|
|
Major enhancements with this release include:
|
|
|
|
The following sections provide detailed lists of changes by component.
|
|
|
|
Security Vulnerability Related
|
|
******************************
|
|
|
|
API Changes
|
|
***********
|
|
|
|
Changes in this release
|
|
=======================
|
|
|
|
* Any applications using the mcuboot image manager
|
|
(:kconfig:option:`CONFIG_MCUBOOT_IMG_MANAGER`) will now need to also select
|
|
:kconfig:option:`CONFIG_FLASH_MAP` and :kconfig:option:`CONFIG_STREAM_FLASH`,
|
|
this prevents a cmake dependency loop if the image manager Kconfig is enabled
|
|
manually without also manually enabling the other options.
|
|
|
|
* Including hawkbit in an application now requires additional Kconfig options
|
|
to be selected, previously these options would have been selected
|
|
automatically but have changed from ``select`` options in Kconfig files to
|
|
``depends on``:
|
|
|
|
+--------------------------------------------------+
|
|
| :kconfig:option:`CONFIG_NVS` |
|
|
+--------------------------------------------------+
|
|
| :kconfig:option:`CONFIG_FLASH` |
|
|
+--------------------------------------------------+
|
|
| :kconfig:option:`CONFIG_FLASH_MAP` |
|
|
+--------------------------------------------------+
|
|
| :kconfig:option:`CONFIG_STREAM_FLASH` |
|
|
+--------------------------------------------------+
|
|
| :kconfig:option:`CONFIG_REBOOT` |
|
|
+--------------------------------------------------+
|
|
| :kconfig:option:`CONFIG_HWINFO` |
|
|
+--------------------------------------------------+
|
|
| :kconfig:option:`CONFIG_NET_TCP` |
|
|
+--------------------------------------------------+
|
|
| :kconfig:option:`CONFIG_NET_SOCKETS` |
|
|
+--------------------------------------------------+
|
|
| :kconfig:option:`CONFIG_IMG_MANAGER` |
|
|
+--------------------------------------------------+
|
|
| :kconfig:option:`CONFIG_NETWORKING` |
|
|
+--------------------------------------------------+
|
|
| :kconfig:option:`CONFIG_HTTP_CLIENT` |
|
|
+--------------------------------------------------+
|
|
| :kconfig:option:`CONFIG_DNS_RESOLVER` |
|
|
+--------------------------------------------------+
|
|
| :kconfig:option:`CONFIG_JSON_LIBRARY` |
|
|
+--------------------------------------------------+
|
|
| :kconfig:option:`CONFIG_NET_SOCKETS_POSIX_NAMES` |
|
|
+--------------------------------------------------+
|
|
| :kconfig:option:`CONFIG_BOOTLOADER_MCUBOOT` |
|
|
+--------------------------------------------------+
|
|
|
|
* Including updatehub in an application now requires additional Kconfig options
|
|
to be selected, previously these options would have been selected
|
|
automatically but have changed from ``select`` options in Kconfig files to
|
|
``depends on``:
|
|
|
|
+--------------------------------------------------+
|
|
| :kconfig:option:`CONFIG_FLASH` |
|
|
+--------------------------------------------------+
|
|
| :kconfig:option:`CONFIG_STREAM_FLASH` |
|
|
+--------------------------------------------------+
|
|
| :kconfig:option:`CONFIG_FLASH_MAP` |
|
|
+--------------------------------------------------+
|
|
| :kconfig:option:`CONFIG_REBOOT` |
|
|
+--------------------------------------------------+
|
|
| :kconfig:option:`CONFIG_MCUBOOT_IMG_MANAGER` |
|
|
+--------------------------------------------------+
|
|
| :kconfig:option:`CONFIG_IMG_MANAGER` |
|
|
+--------------------------------------------------+
|
|
| :kconfig:option:`CONFIG_IMG_ENABLE_IMAGE_CHECK` |
|
|
+--------------------------------------------------+
|
|
| :kconfig:option:`CONFIG_BOOTLOADER_MCUBOOT` |
|
|
+--------------------------------------------------+
|
|
| :kconfig:option:`CONFIG_MPU_ALLOW_FLASH_WRITE` |
|
|
+--------------------------------------------------+
|
|
| :kconfig:option:`CONFIG_NETWORKING` |
|
|
+--------------------------------------------------+
|
|
| :kconfig:option:`CONFIG_NET_UDP` |
|
|
+--------------------------------------------------+
|
|
| :kconfig:option:`CONFIG_NET_SOCKETS` |
|
|
+--------------------------------------------------+
|
|
| :kconfig:option:`CONFIG_NET_SOCKETS_POSIX_NAMES` |
|
|
+--------------------------------------------------+
|
|
| :kconfig:option:`CONFIG_COAP` |
|
|
+--------------------------------------------------+
|
|
| :kconfig:option:`CONFIG_DNS_RESOLVER` |
|
|
+--------------------------------------------------+
|
|
| :kconfig:option:`CONFIG_JSON_LIBRARY` |
|
|
+--------------------------------------------------+
|
|
| :kconfig:option:`CONFIG_HWINFO` |
|
|
+--------------------------------------------------+
|
|
|
|
* The sensor driver API clarified :c:func:`sensor_trigger_set` to state that
|
|
the user-allocated sensor trigger will be stored by the driver as a pointer,
|
|
rather than a copy, and passed back to the handler. This enables the handler
|
|
to use :c:macro:`CONTAINER_OF` to retrieve a context pointer when the trigger
|
|
is embedded in a larger struct and requires that the trigger is not allocated
|
|
on the stack. Applications that allocate a sensor trigger on the stack need
|
|
to be updated.
|
|
|
|
* Converted few drivers to the :ref:`input` subsystem.
|
|
|
|
* ``gpio_keys``: moved out of ``gpio``, replaced the custom API to use input
|
|
events instead, the :dtcompatible:`zephyr,gpio-keys` binding is unchanged
|
|
but now requires ``zephyr,code`` to be set.
|
|
* ``ft5336``: moved from :ref:`kscan_api` to :ref:`input`, renamed the Kconfig
|
|
options from ``CONFIG_KSCAN_FT5336``, ``CONFIG_KSCAN_FT5336_PERIOD`` and
|
|
``KSCAN_FT5336_INTERRUPT`` to :kconfig:option:`CONFIG_INPUT_FT5336`,
|
|
:kconfig:option:`CONFIG_INPUT_FT5336_PERIOD` and
|
|
:kconfig:option:`CONFIG_INPUT_FT5336_INTERRUPT`.
|
|
* ``kscan_sdl``: moved from :ref:`kscan_api` to :ref:`input`, renamed the Kconfig
|
|
option from ``KSCAN_SDL`` to :kconfig:option:`CONFIG_INPUT_SDL_TOUCH` and the
|
|
compatible from ``zephyr,sdl-kscan`` to
|
|
:dtcompatible:`zephyr,input-sdl-touch`.
|
|
* ``nuvoton,npcx-kscan`` moved to :ref:`input`, renamed the Kconfig option
|
|
names from ``KSCAN_NPCX_...`` to ``INPUT_NPCX_KBD...`` and the compatible
|
|
from ``nuvoton,npcx-kscan`` to :dtcompatible:`nuvoton,npcx-kbd`.
|
|
* Touchscreen drivers converted to use the input APIs can use the
|
|
:dtcompatible:`zephyr,kscan-input` driver to maintain Kscan compatilibity.
|
|
|
|
* The declaration of :c:func:`main` has been changed from ``void
|
|
main(void)`` to ``int main(void)``. The main function is required to
|
|
return the value zero. All other return values are reserved. This aligns
|
|
Zephyr with the C and C++ language specification requirements for
|
|
"hosted" environments, avoiding compiler warnings and errors. These
|
|
compiler messages are generated when applications are built in "hosted"
|
|
mode (which means without the ``-ffreestanding`` compiler flag). As the
|
|
``-ffreestanding`` flag is currently enabled unless the application is
|
|
using picolibc, only applications using picolibc will be affected by this
|
|
change at this time.
|
|
|
|
* The following network interface APIs now take additional,
|
|
``struct net_if * iface`` parameter:
|
|
|
|
* :c:func:`net_if_ipv4_maddr_join`
|
|
* :c:func:`net_if_ipv4_maddr_leave`
|
|
* :c:func:`net_if_ipv6_maddr_join`
|
|
* :c:func:`net_if_ipv6_maddr_leave`
|
|
|
|
* MCUmgr transports now need to set up the struct before registering it by
|
|
setting the function pointers to the function handlers, these have been
|
|
moved to a ``functions`` struct object of type
|
|
:c:struct:`smp_transport_api_t`. Because of these changes, the legacy
|
|
transport registration function and object are no longer available. The
|
|
registration function now returns a value which is 0 for success or a
|
|
negative error code if an error occurred.
|
|
|
|
* Added a new flag :c:struct:`dac_channel_cfg` ``buffered`` for DAC channels in
|
|
:c:struct:`dac_channel_cfg` to allow the configuration of the output buffer.
|
|
The actual interpretation of this depends on the hardware and is so far only
|
|
implemented for the STM32 DAC driver. Implicitly for this driver this changes
|
|
the default from being buffered to unbuffered.
|
|
|
|
* MCUmgr fs_mgmt group's file access hook is now called for all fs_mgmt group
|
|
functions (adding support for file status and file hash/checksum). In
|
|
addition, if the file access state is not lost, it will now only be called
|
|
once for the file access instead of each time a command is received.
|
|
Note that the structure for the notification has changed, the ``upload`` bool
|
|
has been replaced with an enum to indicate what function is used, see
|
|
:c:struct:`fs_mgmt_file_access` for the new structure definition.
|
|
|
|
Removed APIs in this release
|
|
============================
|
|
|
|
Deprecated in this release
|
|
==========================
|
|
|
|
* Configuring applications with ``prj_<board>.conf`` files has been deprecated,
|
|
this should be replaced by using a prj.conf with the common configuration and
|
|
board-specific configuration in board Kconfig fragments in the ``boards``
|
|
folder of the application.
|
|
|
|
* On nRF51 and nRF52-based boards, the behaviour of the reset reason being
|
|
provided to :c:func:`sys_reboot` and being set in the GPREGRET register has
|
|
been dropped. This function will now just reboot the device without changing
|
|
the register contents. The new method for setting this register uses the boot
|
|
mode feature of the retention subsystem, see the
|
|
:ref:`boot mode API <boot_mode_api>` for details. To restore the deprecated
|
|
functionality, enable
|
|
:kconfig:option:`CONFIG_NRF_STORE_REBOOT_TYPE_GPREGRET`.
|
|
|
|
Stable API changes in this release
|
|
==================================
|
|
|
|
* Removed `bt_set_oob_data_flag` and replaced it with two new API calls:
|
|
* :c:func:`bt_le_oob_set_sc_flag` for setting/clearing OOB flag in SC pairing
|
|
* :c:func:`bt_le_oob_set_legacy_flag` for setting/clearing OOB flag in legacy paring
|
|
|
|
* :c:macro:`SYS_INIT` callback no longer requires a :c:struct:`device` argument.
|
|
The new callback signature is ``int f(void)``. A utility script to
|
|
automatically migrate existing projects can be found in
|
|
:zephyr_file:`scripts/utils/migrate_sys_init.py`.
|
|
|
|
* Changed :c:struct:`spi_config` ``cs`` (:c:struct:`spi_cs_control`) from
|
|
pointer to struct member. This allows using the existing SPI dt-spec macros in
|
|
C++. SPI controller drivers doing ``NULL`` checks on the ``cs`` field to check
|
|
if CS is GPIO-based or not, must now use :c:func:`spi_cs_is_gpio` or
|
|
:c:func:`spi_cs_is_gpio_dt` calls.
|
|
|
|
New APIs in this release
|
|
========================
|
|
|
|
* Introduced :c:func:`flash_ex_op` function. This allows to perform extra
|
|
operations on flash devices, defined by Zephyr Flash API or by vendor specific
|
|
header files. Support for extra operations is enabled by
|
|
:kconfig:option:`CONFIG_FLASH_EX_OP_ENABLED` which depends on
|
|
:kconfig:option:`CONFIG_FLASH_HAS_EX_OP` selected by driver.
|
|
|
|
* Introduced :ref:`rtc_api` API which adds experimental support for real-time clock
|
|
devices. These devices previously used the :ref:`counter_api` API combined with
|
|
conversion between unix-time and broken-down time. The new API adds the mandatory
|
|
functions :c:func:`rtc_set_time` and :c:func:`rtc_get_time`, the optional functions
|
|
:c:func:`rtc_alarm_get_supported_fields`, :c:func:`rtc_alarm_set_time`,
|
|
:c:func:`rtc_alarm_get_time`, :c:func:`rtc_alarm_is_pending` and
|
|
:c:func:`rtc_alarm_set_callback` are enabled with
|
|
:kconfig:option:`CONFIG_RTC_ALARM`, the optional function
|
|
:c:func:`rtc_update_set_callback` is enabled with
|
|
:kconfig:option:`CONFIG_RTC_UPDATE`, and lastly, the optional functions
|
|
:c:func:`rtc_set_calibration` and :c:func:`rtc_get_calibration` are enabled with
|
|
:kconfig:option:`CONFIG_RTC_CALIBRATION`.
|
|
|
|
Kernel
|
|
******
|
|
|
|
* Removed absolute symbols :c:macro:`___cpu_t_SIZEOF`,
|
|
:c:macro:`_STRUCT_KERNEL_SIZE`, :c:macro:`K_THREAD_SIZEOF` and
|
|
:c:macro:`_DEVICE_STRUCT_SIZEOF`
|
|
|
|
Architectures
|
|
*************
|
|
|
|
* ARC
|
|
* Removed absolute symbols :c:macro:`___callee_saved_t_SIZEOF` and
|
|
:c:macro:`_K_THREAD_NO_FLOAT_SIZEOF`
|
|
|
|
* ARM
|
|
* Removed absolute symbols :c:macro:`___basic_sf_t_SIZEOF`,
|
|
:c:macro:`_K_THREAD_NO_FLOAT_SIZEOF`, :c:macro:`___cpu_context_t_SIZEOF`
|
|
and :c:macro:`___thread_stack_info_t_SIZEOF`
|
|
|
|
* ARM64
|
|
* Removed absolute symbol :c:macro:`___callee_saved_t_SIZEOF`
|
|
|
|
* NIOS2
|
|
* Removed absolute symbol :c:macro:`_K_THREAD_NO_FLOAT_SIZEOF`
|
|
|
|
* RISC-V
|
|
|
|
* SPARC
|
|
* Removed absolute symbol :c:macro:`_K_THREAD_NO_FLOAT_SIZEOF`
|
|
|
|
* X86
|
|
|
|
* Xtensa
|
|
|
|
Bluetooth
|
|
*********
|
|
|
|
* Audio
|
|
|
|
* Direction Finding
|
|
|
|
* Host
|
|
|
|
* Mesh
|
|
|
|
* Added experimental support for Mesh Protocol d1.1r18 specification.
|
|
* Added experimental support for Mesh Binary Large Object Transfer Model d1.0r04_PRr00 specification.
|
|
* Added experimental support for Mesh Device Firmware Update Model d1.0r04_PRr00 specification.
|
|
|
|
* Controller
|
|
|
|
* HCI Driver
|
|
|
|
Boards & SoC Support
|
|
********************
|
|
|
|
* Added support for these SoC series:
|
|
|
|
* Removed support for these SoC series:
|
|
|
|
* Made these changes in other SoC series:
|
|
|
|
* Added support for these ARC boards:
|
|
|
|
* Added support for these ARM boards:
|
|
|
|
* Seeed Studio Wio Terminal
|
|
|
|
* Added support for these ARM64 boards:
|
|
|
|
* Added support for these RISC-V boards:
|
|
|
|
* Added support for these X86 boards:
|
|
|
|
* Added support for these Xtensa boards:
|
|
|
|
* Made these changes for ARC boards:
|
|
|
|
* Made these changes for ARM boards:
|
|
|
|
* Changed the default board revision to 0.14.0 for the Nordic boards
|
|
``nrf9160dk_nrf9160`` and ``nrf9160dk_nrf52840``. To build for an
|
|
older revision of the nRF9160 DK without external flash, specify that
|
|
older board revision when building.
|
|
|
|
* Enabled external_flash_pins_routing switch in ``nrf9160dk_nrf52840`` by default.
|
|
|
|
* Made these changes for ARM64 boards:
|
|
|
|
* Made these changes for RISC-V boards:
|
|
|
|
* Made these changes for X86 boards:
|
|
|
|
* Made these changes for Xtensa boards:
|
|
|
|
* Removed support for these ARC boards:
|
|
|
|
* Removed support for these ARM boards:
|
|
|
|
* Removed support for these ARM64 boards:
|
|
|
|
* Removed support for these RISC-V boards:
|
|
|
|
* BeagleV Starlight JH7100
|
|
|
|
* Removed support for these X86 boards:
|
|
|
|
* Removed support for these Xtensa boards:
|
|
|
|
* Made these changes in other boards:
|
|
|
|
* Added support for these following shields:
|
|
|
|
Build system and infrastructure
|
|
*******************************
|
|
|
|
* Fixed an issue whereby older versions of the Zephyr SDK toolchain were used
|
|
instead of the latest compatible version.
|
|
|
|
* Fixed an issue whereby building an application with sysbuild and specifying
|
|
mcuboot's verification to be checksum only did not build a bootable image.
|
|
|
|
* Fixed an issue whereby if no prj.conf file was present then board
|
|
configuration files would not be included by emitting a fatal error. As a
|
|
result, prj.conf files are now mandatory in projects.
|
|
|
|
* Introduced support for extending/replacing the signing mechanism in zephyr,
|
|
see :ref:`West extending signing <west-extending-signing>` for further
|
|
details.
|
|
|
|
* Fixed an issue whereby when using ``*_ROOT`` variables with Sysbuild, these
|
|
were lost for images.
|
|
|
|
* Enhanced ``zephyr_get`` CMake helper function to optionally support merging
|
|
of scoped variables into a list.
|
|
|
|
* Added a new CMake helper function for setting/updating sysbuild CMake cache
|
|
variables: ``sysbuild_cache_set``.
|
|
|
|
* Enhanced ``zephyr_get`` CMake helper function to lookup multiple variables
|
|
and return the result in a variable of different name.
|
|
|
|
* Introduced ``EXTRA_CONF_FILE``, ``EXTRA_DTC_OVERLAY_FILE``, and
|
|
``EXTRA_ZEPHYR_MODULES`` for better naming consistency and uniform behavior
|
|
for applying extra build settings in addition to Zephyr automatic build
|
|
setting lookup.
|
|
``EXTRA_CONF_FILE`` replaces ``OVERLAY_CONFIG``.
|
|
``EXTRA_ZEPHYR_MODULES`` replaces ``ZEPHYR_EXTRA_MODULES``.
|
|
``EXTRA_DTC_OVERLAY_FILE`` is new, see
|
|
:ref:`Set devicetree overlays <set-devicetree-overlays>` for further details.
|
|
|
|
* Twister now supports ``gtest`` harness for running tests written in gTest.
|
|
|
|
* Added an option to validate device initialization priorities at build time.
|
|
To use it, enable :kconfig:option:`CONFIG_CHECK_INIT_PRIORITIES`, see
|
|
:ref:`check_init_priorities.py` for more details.
|
|
|
|
Drivers and Sensors
|
|
*******************
|
|
|
|
* ADC
|
|
|
|
* MCUX LPADC driver now uses the channel parameter to select a software channel
|
|
configuration buffer. Use ``zephyr,input-positive`` and
|
|
``zephyr,input-negative`` devicetree properties to select the hardware
|
|
channel(s) to link a software channel configuration to.
|
|
|
|
* MCUX LPADC driver ``voltage-ref`` and ``power-level`` devicetree properties
|
|
were shifted to match the hardware as described in reference manual instead
|
|
of matching the NXP SDK enum identifers.
|
|
|
|
* Battery-backed RAM
|
|
|
|
* Added MCP7940N battery-backed RTC SRAM driver.
|
|
|
|
* CAN
|
|
|
|
* Clock control
|
|
|
|
* Counter
|
|
|
|
* Crypto
|
|
|
|
* DAC
|
|
|
|
* DFU
|
|
|
|
* Disk
|
|
|
|
* Display
|
|
|
|
* DMA
|
|
|
|
* EEPROM
|
|
|
|
* Switched from :dtcompatible:`atmel,at24` to dedicated :dtcompatible:`zephyr,i2c-target-eeprom` for I2C EEPROM target driver.
|
|
|
|
* Entropy
|
|
|
|
* ESPI
|
|
|
|
* Ethernet
|
|
|
|
* Flash
|
|
|
|
* Introduced new flash API call :c:func:`flash_ex_op` which calls
|
|
:c:func:`ec_op` callback provided by a flash driver. This allows to perform
|
|
extra operations on flash devices, defined by Zephyr Flash API or by vendor
|
|
specific header files. :kconfig:option:`CONFIG_FLASH_HAS_EX_OP` should be
|
|
selected by the driver to indicate that extra operations are supported.
|
|
To enable extra operations user should select
|
|
:kconfig:option:`CONFIG_FLASH_EX_OP_ENABLED`.
|
|
* nrf_qspi_nor: Replaced custom API function ``nrf_qspi_nor_base_clock_div_force``
|
|
with ``nrf_qspi_nor_xip_enable`` which apart from forcing the clock divider
|
|
prevents the driver from deactivating the QSPI peripheral so that the XIP
|
|
operation is actually possible.
|
|
* flash_simulator: A memory region can now be used as the storage area for the
|
|
flash simulator. Using the memory region allows the flash simulator to keep
|
|
its contents over a device reboot.
|
|
* spi_flash_at45: Fixed erase procedure to properly handle chips that have
|
|
their initial sector split into two parts (usually marked as 0a and 0b).
|
|
|
|
* FPGA
|
|
|
|
* Fuel Gauge
|
|
|
|
* GPIO
|
|
|
|
* Converted the ``gpio_keys`` driver to the input subsystem.
|
|
|
|
* hwinfo
|
|
|
|
* I2C
|
|
|
|
* I2S
|
|
|
|
* I3C
|
|
|
|
* IEEE 802.15.4
|
|
|
|
* Input
|
|
|
|
* Introduced the :ref:`input` subsystem.
|
|
|
|
* Interrupt Controller
|
|
|
|
* IPM
|
|
|
|
* KSCAN
|
|
|
|
* Added a :dtcompatible:`zephyr,kscan-input` input to kscan compatibility driver.
|
|
* Converted the ``ft5336`` and ``kscan_sdl`` drivers to the input subsystem.
|
|
|
|
* LED
|
|
|
|
* MBOX
|
|
|
|
* MEMC
|
|
|
|
* PCIE
|
|
|
|
* PECI
|
|
|
|
* Retained memory
|
|
|
|
* Retained memory (retained_mem) driver has been added with backends for
|
|
Nordic nRF GPREGRET, and uninitialised RAM.
|
|
|
|
Trusted Firmware-M
|
|
******************
|
|
* Pin control
|
|
|
|
* PWM
|
|
|
|
* Power domain
|
|
|
|
* Regulators
|
|
|
|
* Reset
|
|
|
|
* SDHC
|
|
|
|
* Sensor
|
|
|
|
* Serial
|
|
|
|
* SPI
|
|
|
|
* Timer
|
|
|
|
* Support added for stopping Nordic nRF RTC system timer, which fixes an
|
|
issue when booting applications built in prior version of Zephyr.
|
|
|
|
* USB
|
|
|
|
* W1
|
|
|
|
* Watchdog
|
|
|
|
* WiFi
|
|
|
|
Networking
|
|
**********
|
|
* Wi-Fi
|
|
|
|
* TWT intervals are changed from milli-seconds to micro-seconds, interval variables are also renamed.
|
|
|
|
USB
|
|
***
|
|
|
|
Devicetree
|
|
**********
|
|
|
|
Libraries / Subsystems
|
|
**********************
|
|
|
|
* File systems
|
|
|
|
* Added :kconfig:option:`CONFIG_FS_FATFS_REENTRANT` to enable the FAT FS reentrant option.
|
|
* With LittleFS as backend, :c:func:`fs_mount` return code was corrected to ``EFAULT`` when
|
|
called with ``FS_MOUNT_FLAG_NO_FORMAT`` and the designated LittleFS area could not be
|
|
mounted because it has not yet been mounted or it required reformatting.
|
|
* The FAT FS initialization order has been updated to match LittleFS, fixing an issue where
|
|
attempting to mount the disk in a global function caused FAT FS to fail due to not being registered beforehand.
|
|
FAT FS is now initialized in POST_KERNEL.
|
|
* Added :kconfig:option:`CONFIG_FS_LITTLEFS_FMP_DEV` to enable possibility of using LittleFS
|
|
for block devices only, e.g. without Flash support. The option is set to 'y' by default in
|
|
order to keep previous behaviour.
|
|
|
|
* IPC
|
|
|
|
* :c:func:`ipc_service_close_instance` now only acts on bounded endpoints.
|
|
|
|
* Management
|
|
|
|
* Added optional input expiration to shell MCUmgr transport, this allows
|
|
returning the shell to normal operation if a complete MCUmgr packet is not
|
|
received in a specific duration. Can be enabled with
|
|
:kconfig:option:`CONFIG_MCUMGR_TRANSPORT_SHELL_INPUT_TIMEOUT` and timeout
|
|
set with
|
|
:kconfig:option:`CONFIG_MCUMGR_TRANSPORT_SHELL_INPUT_TIMEOUT_TIME`.
|
|
|
|
* MCUmgr fs_mgmt upload and download now caches the file handle to improve
|
|
throughput when transferring data, the file is no longer opened and closed
|
|
for each part of a transfer. In addition, new functionality has been added
|
|
that will allow closing file handles of uploaded/downloaded files if they
|
|
are idle for a period of time, the timeout is set with
|
|
:kconfig:option:`MCUMGR_GRP_FS_FILE_AUTOMATIC_IDLE_CLOSE_TIME`. There is a
|
|
new command that can be used to close open file handles which can be used
|
|
after a file upload is complete to ensure that the file handle is closed
|
|
correctly, allowing other transports or other parts of the application
|
|
code to use it.
|
|
|
|
* A new version of the SMP protocol used by MCUmgr has been introduced in the
|
|
header, which is used to indicate the version of the protocol being used.
|
|
This updated protocol allows returning much more detailed error responses
|
|
per group, see the
|
|
:ref:`MCUmgr SMP protocol specification <mcumgr_smp_protocol_specification>`
|
|
for details.
|
|
|
|
* MCUmgr has now been marked as a stable Zephyr API.
|
|
|
|
* Retention
|
|
|
|
* Retention subsystem has been added which adds enhanced features over
|
|
retained memory drivers allowing for partitioning, magic headers and
|
|
checksum validation. See :ref:`retention API <retention_api>` for details.
|
|
Support for the retention subsystem is experimental.
|
|
|
|
* Boot mode retention module has been added which allows for setting/checking
|
|
the boot mode of an application, initial support has also been added to
|
|
MCUboot to allow for applications to use this as an entrance method for
|
|
MCUboot serial recovery mode. See :ref:`boot mode API <boot_mode_api>` for
|
|
details.
|
|
|
|
* RTIO
|
|
|
|
* Added policy that every ``sqe`` will generate a ``cqe`` (previously an RTIO_SQE_TRANSACTION
|
|
entry would only trigger a ``cqe`` on the last ``sqe`` in the transaction.
|
|
|
|
HALs
|
|
****
|
|
|
|
MCUboot
|
|
*******
|
|
|
|
* Relocated the MCUboot Kconfig options from the main ``Kconfig.zephyr`` file to
|
|
a new ``modules/Kconfig.mcuboot`` module-specific file. This means that, for
|
|
interactive Kconfig interfaces, the MCUboot options will now be located under
|
|
``Modules`` instead of under ``Boot Options``.
|
|
|
|
* Added :kconfig:option:`CONFIG_MCUBOOT_CMAKE_WEST_SIGN_PARAMS` that allows to pass arguments to
|
|
west sign when invoked from cmake.
|
|
|
|
Storage
|
|
*******
|
|
|
|
* Added :kconfig:option:`CONFIG_FLASH_MAP_LABELS`, which will enable runtime access to the labels
|
|
property of fixed partitions. This option is implied if kconfig:option:`CONFIG_FLASH_MAP_SHELL`
|
|
is enabled. These labels will be displayed in a separate column when using the ``flash_map list``
|
|
shell command.
|
|
|
|
Trusted Firmware-M
|
|
******************
|
|
|
|
zcbor
|
|
*****
|
|
|
|
Updated from 0.6.0 to 0.7.0.
|
|
Among other things, this update brings:
|
|
|
|
* C++ improvements
|
|
* float16 support
|
|
* Improved docs
|
|
* -Wall and -Wconversion compliance
|
|
|
|
Documentation
|
|
*************
|
|
|
|
Tests and Samples
|
|
*****************
|
|
|
|
Issue Related Items
|
|
*******************
|
|
|
|
Known Issues
|
|
============
|
|
|
|
Addressed issues
|
|
================
|