blob: b556a09444ad1b406878ae943c7bd3df870f94bc [file] [log] [blame]
:orphan:
.. _zephyr_3.3:
Zephyr 3.3.0 (Working Draft)
############################
We are pleased to announce the release of Zephyr version 3.3.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
=======================
* Bluetooth: :kconfig:option:`CONFIG_BT_PER_ADV_SYNC_TRANSFER_RECEIVER`
and :kconfig:option:`CONFIG_BT_PER_ADV_SYNC_TRANSFER_SENDER` have been
added to enable the PAST implementation rather than
:kconfig:option:`CONFIG_BT_CONN`.
* Flashdisk: :kconfig:option:`CONFIG_DISK_FLASH_VOLUME_NAME`,
:kconfig:option:`CONFIG_DISK_FLASH_DEV_NAME`,
:kconfig:option:`CONFIG_DISK_FLASH_START`,
:kconfig:option:`CONFIG_DISK_FLASH_MAX_RW_SIZE`,
:kconfig:option:`CONFIG_DISK_ERASE_BLOCK_SIZE`,
:kconfig:option:`CONFIG_DISK_FLASH_ERASE_ALIGNMENT`,
:kconfig:option:`CONFIG_DISK_VOLUME_SIZE` and
:kconfig:option:`CONFIG_DISK_FLASH_SECTOR_SIZE` Kconfig options have been
removed in favor of new :dtcompatible:`zephyr,flash-disk` devicetree binding.
* Regulator APIs previously located in ``<zephyr/drivers/regulator/consumer.h>``
are now part of ``<zerphyr/drivers/regulator.h>``.
* Starting from this release ``zephyr-`` prefixed tags won't be created
anymore. The project will continue using ``v`` tags, for example ``v3.3.0``.
* Bluetooth: Deprecate the Bluetooth logging subsystem in favor of the Zephyr
standard logging system. To enable debugging for a particular module in the
Bluetooth subsystem, enable `CONFIG_BT_(module name)_LOG_LEVEL_DBG` instead of
`CONFIG_BT_DEBUG_(module name)`.
* MCUmgr img_mgmt now requires that a full sha256 hash to be used when
uploading an image to keep track of the progress, where the sha256 hash
is of the whole file being uploaded (different to the hash used when getting
image states). Use of a truncated hash or non-sha256 hash will still work
but will cause issues and failures in client software with future updates
to Zephyr/MCUmgr such as image verification.
* MCUmgr handlers no longer need to be registered by the application code,
handlers just need to use a define which will then call the supplied
registration function at boot-up. If applications register this then
those registrations should be removed to prevent registering the same
handler multiple times.
* MCUmgr Bluetooth and UDP transports no longer need to be registered by the
application code, these will now automatically be registered at bootup (this
feature can be disabled or tweaked by adjusting:
:kconfig:option:`CONFIG_MCUMGR_TRANSPORT_BT_AUTOMATIC_INIT`,
:kconfig:option:`CONFIG_MCUMGR_TRANSPORT_BT_AUTOMATIC_INIT_WAIT`, and
:kconfig:option:`CONFIG_MCUMGR_TRANSPORT_UDP_AUTOMATIC_INIT`. If applications
register transports then those registrations should be removed to prevent
registering the same transport multiple times. If the Bluetooth stack needs
to be setup/initialised by another module or the application itself, then
:kconfig:option:`CONFIG_MCUMGR_TRANSPORT_BT_AUTOMATIC_INIT` should be
disabled and the application should call :c:func:`smp_bt_start` at startup.
* MCUmgr transport Kconfigs have changed from ``select`` to ``depends on``
which means that for applications using the Bluetooth transport,
applications will now need to enable the following:
* :kconfig:option:`CONFIG_BT`
* :kconfig:option:`CONFIG_BT_PERIPHERAL`
For CDC or serial transports:
* :kconfig:option:`CONFIG_CONSOLE`
For shell transport:
* :kconfig:option:`CONFIG_SHELL`
* :kconfig:option:`CONFIG_SHELL_BACKEND_SERIAL`
For UDP transport:
* :kconfig:option:`CONFIG_NETWORKING`
* :kconfig:option:`CONFIG_NET_UDP`
Removed APIs in this release
============================
* Removed :kconfig:option:`CONFIG_COUNTER_RTC_STM32_LSE_DRIVE*`
This should now be configured using the ``driving_capability`` property of
LSE clock
* Removed :kconfig:option:`CONFIG_COUNTER_RTC_STM32_LSE_BYPASS`
This should now be configured using the new ``lse_bypass`` property of
LSE clock
* Removed :kconfig:option:`CONFIG_COUNTER_RTC_STM32_BACKUP_DOMAIN_RESET`
* Removed deprecated tinycbor module, code that uses this module should be
updated to use zcbor as a replacement.
Deprecated in this release
==========================
* C++ library Kconfig options have been renamed to improve consistency. See
below for the list of deprecated Kconfig options and their replacements:
.. table::
:align: center
+----------------------------------------+------------------------------------------------+
| Deprecated | Replacement |
+========================================+================================================+
| :kconfig:option:`CONFIG_CPLUSPLUS` | :kconfig:option:`CONFIG_CPP` |
+----------------------------------------+------------------------------------------------+
| :kconfig:option:`CONFIG_EXCEPTIONS` | :kconfig:option:`CONFIG_CPP_EXCEPTIONS` |
+----------------------------------------+------------------------------------------------+
| :kconfig:option:`CONFIG_RTTI` | :kconfig:option:`CONFIG_CPP_RTTI` |
+----------------------------------------+------------------------------------------------+
| :kconfig:option:`CONFIG_LIB_CPLUSPLUS` | :kconfig:option:`CONFIG_LIBCPP_IMPLEMENTATION` |
+----------------------------------------+------------------------------------------------+
* MCUmgr subsystem, specifically the SMP transport API, is dropping `zephyr_`
prefix, deprecating prefixed functions and callback type definitions with the
prefix and replacing them with with prefix-less variants.
The :c:struct:`zephyr_smp_transport` type, representing transport object,
is now replaced with :c:struct:`smp_transport`, and the later one is used,
instead of the former one, by all prefix-less functions.
Deprecated functions and their replacements:
.. table::
:align: center
+-------------------------------------+---------------------------------------+
| Deprecated | Drop in replacement |
+=====================================+=======================================+
| :c:func:`zephyr_smp_transport_init` | :c:func:`smp_transport_init` |
+-------------------------------------+---------------------------------------+
| :c:func:`zephyr_smp_rx_req` | :c:func:`smp_rx_req` |
+-------------------------------------+---------------------------------------+
| :c:func:`zephyr_smp_alloc_rsp` | :c:func:`smp_alloc_rsp` |
+-------------------------------------+---------------------------------------+
| :c:func:`zephyr_smp_free_buf` | :c:func:`smp_free_buf` |
+-------------------------------------+---------------------------------------+
Deprecated callback types and their replacements:
.. table::
:align: center
+---------------------------------------------+---------------------------------------+
| Deprecated | Drop in replacement |
+=============================================+=======================================+
| :c:func:`zephyr_smp_transport_out_fn` | :c:func:`smp_transport_out_fn` |
+---------------------------------------------+---------------------------------------+
| :c:func:`zephyr_smp_transport_get_mtu_fn` | :c:func:`smp_transport_get_mtu_fn` |
+---------------------------------------------+---------------------------------------+
| :c:func:`zephyr_smp_transport_ud_copy_fn` | :c:func:`smp_transport_ud_copy_fn` |
+---------------------------------------------+---------------------------------------+
| :c:func:`zephyr_smp_transport_ud_free_fn` | :c:func:`smp_transport_ud_free_fn` |
+---------------------------------------------+---------------------------------------+
NOTE: Only functions are marked as ``__deprecated``, type definitions are not.
* STM32 Ethernet Mac address Kconfig related symbols (:kconfig:option:`CONFIG_ETH_STM32_HAL_RANDOM_MAC`,
:kconfig:option:`CONFIG_ETH_STM32_HAL_MAC4`, ...) have been deprecated in favor
of the use of zephyr generic device tree ``local-mac-address`` and ``zephyr,random-mac-address``
properties.
* STM32 RTC source clock should now be configured using devicetree.
Related Kconfig :kconfig:option:`CONFIG_COUNTER_RTC_STM32_CLOCK_LSI` and
:kconfig:option:`CONFIG_COUNTER_RTC_STM32_CLOCK_LSE` options are now
deprecated.
* STM32 Interrupt controller Kconfig symbols such as :kconfig:option:`CONFIG_EXTI_STM32_EXTI0_IRQ_PRI`
are removed. Related IRQ prioritues should now be configured in device tree.
* File backend for settings APIs and Kconfig options were deprecated:
:c:func:`settings_mount_fs_backend` in favor of :c:func:`settings_mount_file_backend`
:kconfig:option:`CONFIG_SETTINGS_FS` in favor of :kconfig:option:`CONFIG_SETTINGS_FILE`
:kconfig:option:`CONFIG_SETTINGS_FS_DIR` in favor of creating all parent
directories from :kconfig:option:`CONFIG_SETTINGS_FILE_PATH`
:kconfig:option:`CONFIG_SETTINGS_FS_FILE` in favor of :kconfig:option:`CONFIG_SETTINGS_FILE_PATH`
:kconfig:option:`CONFIG_SETTINGS_FS_MAX_LINES` in favor of :kconfig:option:`CONFIG_SETTINGS_FILE_MAX_LINES`
* PCIe APIs :c:func:`pcie_probe` and :c:func:`pcie_bdf_lookup` have been
deprecated in favor of a centralized scan of available PCIe devices.
* SPI DT :c:func:`spi_is_ready` function has been deprecated in favor of :c:func:`spi_is_ready_dt`.
* LwM2M APIs using string references as LwM2M paths has been deprecated in favor of functions
using :c:struct:`lwm2m_path_obj` instead.
Stable API changes in this release
==================================
* MCUmgr events have been reworked to use a single, unified callback system.
This allows better customisation of the callbacks with a lower flash size.
Applications using the existing callback system will need to be upgraded to
use the new API by following the :ref:`migration guide <mcumgr_cb_migration>`
* :c:func:`net_pkt_get_frag`, :c:func:`net_pkt_get_reserve_tx_data` and
:c:func:`net_pkt_get_reserve_rx_data` functions are now requiring to specify
the minimum fragment length to allocate, so that they work correctly also in
case :kconfig:option:`CONFIG_NET_BUF_VARIABLE_DATA_SIZE` is enabled.
Applications using this APIs will need to be updated to provide the expected
fragment length.
New APIs in this release
========================
Kernel
******
Architectures
*************
* ARM
* ARM
* ARM64
* RISC-V
* Xtensa
Bluetooth
*********
* Audio
* Direction Finding
* Host
* Fixed missing calls to bt_le_per_adv_sync_cb.term when deleting a periodic
advertising sync object.
* Added local advertising address to bt_le_ext_adv_info.
* Mesh
* Change default advertiser to be extended advertiser.
* 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:
* Changes for ARC boards:
* Added support for these ARM boards:
* Added support for these ARM64 boards:
* Removed support for these ARM boards:
* Removed support for these X86 boards:
* Added support for these RISC-V boards:
* Added support for these Xtensa boards:
* Removed support for these Xtensa boards:
* Made these changes in ARM boards:
* The scratch partition has been removed for the following Nordic boards and
flash used by this area re-assigned to other partitions to free up space
and rely upon the swap-using-move algorithm in MCUboot (which does not
suffer from the same faults or stuck image issues as swap-using-scratch
does):
``nrf21540dk_nrf52840``
``nrf51dk_nrf51422``
``nrf51dongle_nrf51422``
``nrf52833dk_nrf52833``
``nrf52840dk_nrf52811``
``nrf52840dk_nrf52840``
``nrf52840dongle_nrf52840``
``nrf52dk_nrf52805``
``nrf52dk_nrf52810``
``nrf52dk_nrf52832``
``nrf5340dk_nrf5340``
``nrf9160dk_nrf52840``
``nrf9160dk_nrf9160``
Note that MCUboot and MCUboot image updates from pre-Zephyr 3.3 might be
incompatible with Zephyr 3.3 onwards and vice versa.
* Made these changes in other boards:
* Added support for these following shields:
Build system and infrastructure
*******************************
* Code relocation
* ``zephyr_code_relocate`` API has changed to accept a list of files to
relocate and a location to place the files.
Drivers and Sensors
*******************
* ADC
* CAN
* Clock control
* Counter
* STM32 RTC based counter should now be configured using device tree.
* Crypto
* DAC
* DFU
* Remove :c:macro:`BOOT_TRAILER_IMG_STATUS_OFFS` in favor a two new functions;
:c:func:`boot_get_area_trailer_status_offset` and :c:func:`boot_get_trailer_status_offset`
* Disk
* Display
* DMA
* EEPROM
* Entropy
* ESPI
* Ethernet
* STM32: Default Mac address configuration is now uid based. Optionally, user can
configure it to be random or provide its own address using device tree.
* Flash
* Flash: Moved CONFIG_FLASH_FLEXSPI_XIP into the SOC level due to the flexspi clock initialization occurring in the SOC level.
* NRF: Added CONFIG_SOC_FLASH_NRF_TIMEOUT_MULTIPLIER to allow tweaking the timeout of flash operations.
* spi_nor: Added property mxicy,mx25r-power-mode to jedec,spi-nor binding for controlling low power/high performance mode on Macronix MX25R* Ultra Low Power flash devices.
* spi_nor: Added check if the flash is busy during init. This used to cause
the flash device to be unavailable until the system was restarted. The fix
waits for the flash to become ready before continuing. In cases where a
full flash erase was started before a restart, this might result in several
minutes of waiting time (depending on flash size and erase speed).
* GPIO
* I2C
* I2S
* I3C
* IEEE 802.15.4
* Interrupt Controller
* STM32: Driver configuration and initialization is now based on device tree
* IPM
* KSCAN
* LED
* MBOX
* MEMC
* PCIE
* PECI
* Pin control
* Common pin control properties are now defined at root level in a single
file: :zephyr_file:`dts/bindings/pinctrl/pincfg-node.yaml`. Pin control
bindings are expected to include it at the level they need. For example,
drivers using the grouping representation approach need to include it at
grandchild level, while drivers using the node approach need to include it
at the child level. This change will only impact out-of-tree pin control
drivers, sinc all in-tree drivers have been updated.
* PWM
* Power domain
* Reset
* SDHC
* Sensor
* Serial
* SPI
* Timer
* USB
* STM32F1: Clock bus configuration is not done automatically by driver anymore.
It is user's responsibility to configure the proper bus prescaler using clock_control
device tree node to achieve a 48MHz bus clock. Note that, in most cases, core clock
is 72MHz and default prescaler configuration is set to achieve 48MHz USB bus clock.
Prescaler only needs to be configured manually when core clock is already 48MHz.
* STM32 (non F1): Clock bus configuration is now expected to be done in device tree
using ``clocks`` node property. When a dedicated HSI 48MHz clock is available on target,
is it configured by default as the USB bus clock, but user has the ability to select
another 48MHz clock source. When no HSI48 is available, a specific 48MHz bus clock
source should be configured by user.
* W1
* Watchdog
* WiFi
Networking
**********
IPv4 packet fragmentation support has been added, this allows large packets to
be split up before sending or reassembled during receive for packets that are
larger than the network device MTU. This is disabled by default but can be
enabled with :kconfig:option:`CONFIG_NET_IPV4_FRAGMENT`.
USB
***
Devicetree
**********
* Bindings
* New:
* :dtcompatible:`zephyr,flash-disk`
* STM32 SoCs:
* :dtcompatible: `st,stm32-lse-clock`: new ``lse-bypass`` property
* :dtcompatible: `st,stm32-ethernet`: now allows ``local-mac-address`` and
``zephyr,random-mac-address`` properties.
Libraries / Subsystems
**********************
* C++ Library
* C++ support in Zephyr is no longer considered a "subsystem" because it
mainly consists of the C++ ABI runtime library and the C++ standard
library, which are "libraries" that are dissimilar to the existing Zephyr
subsystems. C++ support components are now located in ``lib/cpp`` as
"C++ library."
* C++ ABI runtime library components such as global constructor/destructor
and initialiser handlers, that were previously located under
``subsys/cpp``, have been moved to ``lib/cpp/abi`` in order to provide a
clear separation between the C++ ABI runtime library and the C++ standard
library.
* C++ minimal library components have been moved to ``lib/cpp/minimal``.
* C++ tests have been moved to ``tests/lib/cpp``.
* C++ samples have been moved to ``samples/cpp``.
* :kconfig:option:`CONFIG_CPLUSPLUS` has been renamed to
:kconfig:option:`CONFIG_CPP`.
* :kconfig:option:`CONFIG_EXCEPTIONS` has been renamed to
:kconfig:option:`CONFIG_CPP_EXCEPTIONS`.
* :kconfig:option:`CONFIG_RTTI` has been renamed to
:kconfig:option:`CONFIG_CPP_RTTI`.
* :kconfig:option:`CONFIG_LIB_CPLUSPLUS` is deprecated. A toolchain-specific
C++ standard library Kconfig option from
:kconfig:option:`CONFIG_LIBCPP_IMPLEMENTATION` should be selected instead.
* Zephyr subsystems and modules that require the features from the full C++
standard library (e.g. Standard Template Library) can now select
:kconfig:option:`CONFIG_REQUIRES_FULL_LIBC`, which automatically selects
a compatible C++ standard library.
* File systems
* Added new API call `fs_mkfs`.
* Added new sample `samples/subsys/fs/format`.
* FAT FS driver has been updated to version 0.15 w/patch1.
* Added the option to disable CRC checking in :ref:`fcb_api` by enabling the
Kconfig option :kconfig:option:`CONFIG_FCB_ALLOW_FIXED_ENDMARKER`
and setting the `FCB_FLAGS_CRC_DISABLED` flag in the :c:struct:`fcb` struct.
* Management
* MCUmgr functionality deprecated in 3.1 has been removed:
CONFIG_FS_MGMT_UL_CHUNK_SIZE, CONFIG_IMG_MGMT_UL_CHUNK_SIZE,
CONFIG_OS_MGMT_ECHO_LENGTH
* MCUmgr fs_mgmt issue with erasing a file prior to writing the first block
of data has been worked around by only truncating/deleting the file data
if the file exists. This can help work around an issue whereby logging is
enabled and the command is sent on the same UART as the logging system, in
which a filesystem error was emitted.
* A MCUmgr bug when using the smp_svr sample with Bluetooth transport that
could have caused a stack overflow has been fixed.
* A MCUmgr issue with Bluetooth transport that could cause a deadlock of the
mcumgr thread if the remote device disconnected before the output message
was sent has been fixed.
* A MCUmgr img_mgmt bug whereby the state of an image upload could persist
when it was no longer valid (e.g. after an image erase command) has been
fixed.
* MCUmgr fs_mgmt command has been added that allows querying/listing the
supported hash/checksum types.
* MCUmgr Bluetooth transport will now clear unprocessed commands sent if a
remote device disconnects instead of processing them.
* A new MCUmgr transport function pointer has been added which needs
registering in ``smp_transport_init`` for removing invalid packets for
connection-orientated transports. If this is unimplemented, the function
pointer can be set to NULL.
* MCUmgr command handler definitions have changed, the ``mgmt_ctxt`` struct
has been replaced with the ``smp_streamer`` struct, the zcbor objects need
to replace ``cnbe`` object access with ``writer`` and ``cnbd`` object
access with ``reader`` to successfully build.
* MCUmgr callback system has been reworked with a unified singular interface
which supports status passing to the handler (:ref:`mcumgr_callbacks`).
* MCUmgr subsystem directory structure has been flattened and contents of the
lib subdirectory has been redistributed into following directories:
.. table::
:align: center
+----------------+-------------------------------------------+
| Subdirectory | MCUmgr area |
+================+===========================================+
| mgmt | MCUmgr management functions, group |
| | registration, and so on; |
+----------------+-------------------------------------------+
| smp | Simple Management Protocol processing; |
+----------------+-------------------------------------------+
| transport | Transport support and transport API; |
+----------------+-------------------------------------------+
| grp | Command groups, formerly lib/cmd; |
| | each group, which has Zephyr built in |
| | support has its own directory here; |
+----------------+-------------------------------------------+
| util | Utilities used by various subareas of |
| | MCUmgr. |
+----------------+-------------------------------------------+
Public API interfaces for above areas are now exported through zephyr_interface,
and headers for them reside in ``zephyr/mgmt/mcumgr/<mcumgr_subarea>/``.
For example to access mgmt API include ``<zephyr/mgmt/mcumgr/mgmt/mgmt.h>``.
Private headers for above areas can be accessed, when required, using paths:
``mgmt/mcumgr/mgmt/<mcumgr_subarea>/``.
* MCUmgr os_mgmt info command has been added that allows querying details on
the kernel and application, allowing application-level extensibility
see :ref:`mcumgr_os_application_info` for details.
* MCUMgr :kconfig:option:`CONFIG_APP_LINK_WITH_MCUMGR` has been removed as
it has not been doing anything.
* MCUmgr Kconfig option names have been standardised. Script
:zephyr_file:`scripts/utils/migrate_mcumgr_kconfigs.py` has been provided
to make transition to new Kconfig options easier.
Below table provides information on old names and new equivalents:
.. table::
:align: center
+------------------------------------------------+-------------------------------------------------------+
| Old Kconfig option name | New Kconfig option name |
+================================================+=======================================================+
| MCUMGR_SMP_WORKQUEUE_STACK_SIZE | MCUMGR_TRANSPORT_WORKQUEUE_STACK_SIZE |
+------------------------------------------------+-------------------------------------------------------+
| MCUMGR_SMP_WORKQUEUE_THREAD_PRIO | MCUMGR_TRANSPORT_WORKQUEUE_THREAD_PRIO |
+------------------------------------------------+-------------------------------------------------------+
| MGMT_MAX_MAIN_MAP_ENTRIES | MCUMGR_SMP_CBOR_MAX_MAIN_MAP_ENTRIES |
+------------------------------------------------+-------------------------------------------------------+
| MGMT_MIN_DECODING_LEVELS | MCUMGR_SMP_CBOR_MIN_DECODING_LEVELS |
+------------------------------------------------+-------------------------------------------------------+
| MGMT_MIN_DECODING_LEVEL_1 | MCUMGR_SMP_CBOR_MIN_DECODING_LEVEL_1 |
+------------------------------------------------+-------------------------------------------------------+
| MGMT_MIN_DECODING_LEVEL_2 | MCUMGR_SMP_CBOR_MIN_DECODING_LEVEL_2 |
+------------------------------------------------+-------------------------------------------------------+
| MGMT_MIN_DECODING_LEVEL_3 | MCUMGR_SMP_CBOR_MIN_DECODING_LEVEL_3 |
+------------------------------------------------+-------------------------------------------------------+
| MGMT_MIN_DECODING_LEVEL_4 | MCUMGR_SMP_CBOR_MIN_DECODING_LEVEL_4 |
+------------------------------------------------+-------------------------------------------------------+
| MGMT_MIN_DECODING_LEVEL_5 | MCUMGR_SMP_CBOR_MIN_DECODING_LEVEL_5 |
+------------------------------------------------+-------------------------------------------------------+
| MGMT_MAX_DECODING_LEVELS | MCUMGR_SMP_CBOR_MAX_DECODING_LEVELS |
+------------------------------------------------+-------------------------------------------------------+
| MCUMGR_CMD_FS_MGMT | MCUMGR_GRP_FS |
+------------------------------------------------+-------------------------------------------------------+
| FS_MGMT_MAX_FILE_SIZE_64KB | MCUMGR_GRP_FS_MAX_FILE_SIZE_64KB |
+------------------------------------------------+-------------------------------------------------------+
| FS_MGMT_MAX_FILE_SIZE_4GB | MCUMGR_GRP_FS_MAX_FILE_SIZE_4GB |
+------------------------------------------------+-------------------------------------------------------+
| FS_MGMT_MAX_OFFSET_LEN | MCUMGR_GRP_FS_MAX_OFFSET_LEN |
+------------------------------------------------+-------------------------------------------------------+
| FS_MGMT_DL_CHUNK_SIZE_LIMIT | MCUMGR_GRP_FS_DL_CHUNK_SIZE_LIMIT |
+------------------------------------------------+-------------------------------------------------------+
| FS_MGMT_DL_CHUNK_SIZE | MCUMGR_GRP_FS_DL_CHUNK_SIZE |
+------------------------------------------------+-------------------------------------------------------+
| FS_MGMT_FILE_STATUS | MCUMGR_GRP_FS_FILE_STATUS |
+------------------------------------------------+-------------------------------------------------------+
| FS_MGMT_CHECKSUM_HASH | MCUMGR_GRP_FS_CHECKSUM_HASH |
+------------------------------------------------+-------------------------------------------------------+
| FS_MGMT_CHECKSUM_HASH_CHUNK_SIZE | MCUMGR_GRP_FS_CHECKSUM_HASH_CHUNK_SIZE |
+------------------------------------------------+-------------------------------------------------------+
| FS_MGMT_CHECKSUM_IEEE_CRC32 | MCUMGR_GRP_FS_CHECKSUM_IEEE_CRC32 |
+------------------------------------------------+-------------------------------------------------------+
| FS_MGMT_HASH_SHA256 | MCUMGR_GRP_FS_HASH_SHA256 |
+------------------------------------------------+-------------------------------------------------------+
| FS_MGMT_FILE_ACCESS_HOOK | MCUMGR_GRP_FS_FILE_ACCESS_HOOK |
+------------------------------------------------+-------------------------------------------------------+
| FS_MGMT_PATH_SIZE | MCUMGR_GRP_FS_PATH_LEN |
+------------------------------------------------+-------------------------------------------------------+
| MCUMGR_CMD_IMG_MGMT | MCUMGR_GRP_IMG |
+------------------------------------------------+-------------------------------------------------------+
| IMG_MGMT_USE_HEAP_FOR_FLASH_IMG_CONTEXT | MCUMGR_GRP_IMG_USE_HEAP_FOR_FLASH_IMG_CONTEXT |
+------------------------------------------------+-------------------------------------------------------+
| IMG_MGMT_UPDATABLE_IMAGE_NUMBER | MCUMGR_GRP_IMG_UPDATABLE_IMAGE_NUMBER |
+------------------------------------------------+-------------------------------------------------------+
| IMG_MGMT_VERBOSE_ERR | MCUMGR_GRP_IMG_VERBOSE_ERR |
+------------------------------------------------+-------------------------------------------------------+
| IMG_MGMT_DUMMY_HDR | MCUMGR_GRP_IMG_DUMMY_HDR |
+------------------------------------------------+-------------------------------------------------------+
| IMG_MGMT_DIRECT_IMAGE_UPLOAD | MCUMGR_GRP_IMG_DIRECT_UPLOAD |
+------------------------------------------------+-------------------------------------------------------+
| IMG_MGMT_REJECT_DIRECT_XIP_MISMATCHED_SLOT | MCUMGR_GRP_IMG_REJECT_DIRECT_XIP_MISMATCHED_SLOT |
+------------------------------------------------+-------------------------------------------------------+
| IMG_MGMT_FRUGAL_LIST | MCUMGR_GRP_IMG_FRUGAL_LIST |
+------------------------------------------------+-------------------------------------------------------+
| MCUMGR_CMD_OS_MGMT | MCUMGR_GRP_OS |
+------------------------------------------------+-------------------------------------------------------+
| MCUMGR_GRP_OS_OS_RESET_HOOK | MCUMGR_GRP_OS_RESET_HOOK |
+------------------------------------------------+-------------------------------------------------------+
| OS_MGMT_RESET_MS | MCUMGR_GRP_OS_RESET_MS |
+------------------------------------------------+-------------------------------------------------------+
| OS_MGMT_TASKSTAT | MCUMGR_GRP_OS_TASKSTAT |
+------------------------------------------------+-------------------------------------------------------+
| OS_MGMT_TASKSTAT_ONLY_SUPPORTED_STATS | MCUMGR_GRP_OS_TASKSTAT_ONLY_SUPPORTED_STATS |
+------------------------------------------------+-------------------------------------------------------+
| OS_MGMT_TASKSTAT_MAX_NUM_THREADS | MCUMGR_GRP_OS_TASKSTAT_MAX_NUM_THREADS |
+------------------------------------------------+-------------------------------------------------------+
| OS_MGMT_TASKSTAT_THREAD_NAME_LEN | MCUMGR_GRP_OS_TASKSTAT_THREAD_NAME_LEN |
+------------------------------------------------+-------------------------------------------------------+
| OS_MGMT_TASKSTAT_SIGNED_PRIORITY | MCUMGR_GRP_OS_TASKSTAT_SIGNED_PRIORITY |
+------------------------------------------------+-------------------------------------------------------+
| OS_MGMT_TASKSTAT_STACK_INFO | MCUMGR_GRP_OS_TASKSTAT_STACK_INFO |
+------------------------------------------------+-------------------------------------------------------+
| OS_MGMT_ECHO | MCUMGR_GRP_OS_ECHO |
+------------------------------------------------+-------------------------------------------------------+
| OS_MGMT_MCUMGR_PARAMS | MCUMGR_GRP_OS_MCUMGR_PARAMS |
+------------------------------------------------+-------------------------------------------------------+
| MCUMGR_CMD_SHELL_MGMT | MCUMGR_GRP_SHELL |
+------------------------------------------------+-------------------------------------------------------+
| MCUMGR_CMD_SHELL_MGMT_LEGACY_RC_RETURN_CODE | MCUMGR_GRP_SHELL_LEGACY_RC_RETURN_CODE |
+------------------------------------------------+-------------------------------------------------------+
| MCUMGR_CMD_STAT_MGMT | MCUMGR_GRP_STAT |
+------------------------------------------------+-------------------------------------------------------+
| STAT_MGMT_MAX_NAME_LEN | MCUMGR_GRP_STAT_MAX_NAME_LEN |
+------------------------------------------------+-------------------------------------------------------+
| MCUMGR_GRP_ZEPHYR_BASIC | MCUMGR_GRP_ZBASIC |
+------------------------------------------------+-------------------------------------------------------+
| MCUMGR_GRP_BASIC_CMD_STORAGE_ERASE | MCUMGR_GRP_ZBASIC_STORAGE_ERASE |
+------------------------------------------------+-------------------------------------------------------+
| MGMT_VERBOSE_ERR_RESPONSE | MCUMGR_SMP_VERBOSE_ERR_RESPONSE |
+------------------------------------------------+-------------------------------------------------------+
| MCUMGR_SMP_REASSEMBLY | MCUMGR_TRANSPORT_REASSEMBLY |
+------------------------------------------------+-------------------------------------------------------+
| MCUMGR_BUF_COUNT | MCUMGR_TRANSPORT_NETBUF_COUNT |
+------------------------------------------------+-------------------------------------------------------+
| MCUMGR_BUF_SIZE | MCUMGR_TRANSPORT_NETBUF_SIZE |
+------------------------------------------------+-------------------------------------------------------+
| MCUMGR_BUF_USER_DATA_SIZE | MCUMGR_TRANSPORT_NETBUF_USER_DATA_SIZE |
+------------------------------------------------+-------------------------------------------------------+
| MCUMGR_SMP_BT | MCUMGR_TRANSPORT_BT |
+------------------------------------------------+-------------------------------------------------------+
| MCUMGR_SMP_REASSEMBLY_BT | MCUMGR_TRANSPORT_BT_REASSEMBLY |
+------------------------------------------------+-------------------------------------------------------+
| MCUMGR_SMP_REASSEMBLY_UNIT_TESTS | MCUMGR_TRANSPORT_REASSEMBLY_UNIT_TESTS |
+------------------------------------------------+-------------------------------------------------------+
| MCUMGR_SMP_BT_AUTHEN | MCUMGR_TRANSPORT_BT_AUTHEN |
+------------------------------------------------+-------------------------------------------------------+
| MCUMGR_SMP_BT_CONN_PARAM_CONTROL | MCUMGR_TRANSPORT_BT_CONN_PARAM_CONTROL |
+------------------------------------------------+-------------------------------------------------------+
| MCUMGR_SMP_BT_CONN_PARAM_CONTROL_MIN_INT | MCUMGR_TRANSPORT_BT_CONN_PARAM_CONTROL_MIN_INT |
+------------------------------------------------+-------------------------------------------------------+
| MCUMGR_SMP_BT_CONN_PARAM_CONTROL_MAX_INT | MCUMGR_TRANSPORT_BT_CONN_PARAM_CONTROL_MAX_INT |
+------------------------------------------------+-------------------------------------------------------+
| MCUMGR_SMP_BT_CONN_PARAM_CONTROL_LATENCY | MCUMGR_TRANSPORT_BT_CONN_PARAM_CONTROL_LATENCY |
+------------------------------------------------+-------------------------------------------------------+
| MCUMGR_SMP_BT_CONN_PARAM_CONTROL_TIMEOUT | MCUMGR_TRANSPORT_BT_CONN_PARAM_CONTROL_TIMEOUT |
+------------------------------------------------+-------------------------------------------------------+
| MCUMGR_SMP_BT_CONN_PARAM_CONTROL_RESTORE_TIME | MCUMGR_TRANSPORT_BT_CONN_PARAM_CONTROL_RESTORE_TIME |
+------------------------------------------------+-------------------------------------------------------+
| MCUMGR_SMP_BT_CONN_PARAM_CONTROL_RETRY_TIME | MCUMGR_TRANSPORT_BT_CONN_PARAM_CONTROL_RETRY_TIME |
+------------------------------------------------+-------------------------------------------------------+
| MCUMGR_SMP_DUMMY | MCUMGR_TRANSPORT_DUMMY |
+------------------------------------------------+-------------------------------------------------------+
| MCUMGR_SMP_DUMMY_RX_BUF_SIZE | MCUMGR_TRANSPORT_DUMMY_RX_BUF_SIZE |
+------------------------------------------------+-------------------------------------------------------+
| MCUMGR_SMP_SHELL | MCUMGR_TRANSPORT_SHELL |
+------------------------------------------------+-------------------------------------------------------+
| MCUMGR_SMP_SHELL_MTU | MCUMGR_TRANSPORT_SHELL_MTU |
+------------------------------------------------+-------------------------------------------------------+
| MCUMGR_SMP_SHELL_RX_BUF_COUNT | MCUMGR_TRANSPORT_SHELL_RX_BUF_COUNT |
+------------------------------------------------+-------------------------------------------------------+
| MCUMGR_SMP_UART | MCUMGR_TRANSPORT_UART |
+------------------------------------------------+-------------------------------------------------------+
| MCUMGR_SMP_UART_ASYNC | MCUMGR_TRANSPORT_UART_ASYNC |
+------------------------------------------------+-------------------------------------------------------+
| MCUMGR_SMP_UART_ASYNC_BUFS | MCUMGR_TRANSPORT_UART_ASYNC_BUFS |
+------------------------------------------------+-------------------------------------------------------+
| MCUMGR_SMP_UART_ASYNC_BUF_SIZE | MCUMGR_TRANSPORT_UART_ASYNC_BUF_SIZE |
+------------------------------------------------+-------------------------------------------------------+
| MCUMGR_SMP_UART_MTU | MCUMGR_TRANSPORT_UART_MTU |
+------------------------------------------------+-------------------------------------------------------+
| MCUMGR_SMP_UDP | MCUMGR_TRANSPORT_UDP |
+------------------------------------------------+-------------------------------------------------------+
| MCUMGR_SMP_UDP_IPV4 | MCUMGR_TRANSPORT_UDP_IPV4 |
+------------------------------------------------+-------------------------------------------------------+
| MCUMGR_SMP_UDP_IPV6 | MCUMGR_TRANSPORT_UDP_IPV6 |
+------------------------------------------------+-------------------------------------------------------+
| MCUMGR_SMP_UDP_PORT | MCUMGR_TRANSPORT_UDP_PORT |
+------------------------------------------------+-------------------------------------------------------+
| MCUMGR_SMP_UDP_STACK_SIZE | MCUMGR_TRANSPORT_UDP_STACK_SIZE |
+------------------------------------------------+-------------------------------------------------------+
| MCUMGR_SMP_UDP_THREAD_PRIO | MCUMGR_TRANSPORT_UDP_THREAD_PRIO |
+------------------------------------------------+-------------------------------------------------------+
| MCUMGR_SMP_UDP_MTU | MCUMGR_TRANSPORT_UDP_MTU |
+------------------------------------------------+-------------------------------------------------------+
* MCUmgr responses where ``rc`` (result code) is 0 (no error) will no longer
be present in responses and in cases where there is only an ``rc`` result,
the resultant response will now be an empty CBOR map. The old behaviour can
be restored by enabling
:kconfig:option:`CONFIG_MCUMGR_SMP_LEGACY_RC_BEHAVIOUR`.
* MCUMGR now has log outputting on most errors from the included fs, img,
os, shell, stat and zephyr_basic group commands. The level of logging can be
controlled by adjusting: :kconfig:option:`CONFIG_MCUMGR_GRP_FS_LOG_LEVEL`,
:kconfig:option:`CONFIG_MCUMGR_GRP_IMG_LOG_LEVEL`,
:kconfig:option:`CONFIG_MCUMGR_GRP_OS_LOG_LEVEL`,
:kconfig:option:`CONFIG_MCUMGR_GRP_SHELL_LOG_LEVEL`,
:kconfig:option:`CONFIG_MCUMGR_GRP_STAT_LOG_LEVEL` and
:kconfig:option:`CONFIG_MCUMGR_GRP_ZBASIC_LOG_LEVEL`.
* LwM2M
* The ``lwm2m_senml_cbor_*`` files have been regenerated using zcbor 0.6.0.
* Settings
* Replaced all :c:func:`k_panic` invocations within settings backend
initialization with returning / propagating error codes.
HALs
****
MCUboot
*******
Storage
*******
* Flash Map API drops ``fa_device_id`` from :c:struct:`flash_area`, as it
is no longer needed by MCUboot, and has not been populated for a long
time now.
Trusted Firmware-M
******************
zcbor
*****
Upgraded zcbor to 0.6.0. Among other things, this brings in a few convenient
changes for Zephyr:
* In the zcbor codebase, the ``ARRAY_SIZE`` macro has been renamed to
``ZCBOR_ARRAY_SIZE`` to not collide with Zephyr's :c:macro:`ARRAY_SIZE` macro.
* The zcbor codebase now better supports being used in C++ code.
The entire release notes can be found at
https://github.com/zephyrproject-rtos/zcbor/blob/0.6.0/RELEASE_NOTES.md
Documentation
*************
Tests and Samples
*****************
Issue Related Items
*******************
Known Issues
============
Addressed issues
================