blob: 1f3c941538bc0d3d305aea0425bc357e45fd152f [file] [log] [blame]
:orphan:
.. _zephyr_3.2:
Zephyr 3.2.0 (Working Draft)
############################
The following sections provide detailed lists of changes by component.
Security Vulnerability Related
******************************
Known issues
************
API Changes
***********
Changes in this release
=======================
* Zephyr now requires Python 3.8 or higher
* Changed :c:struct:`spi_cs_control` to remove anonymous struct.
This causes possible breakage for static initialization of the
struct. Updated :c:macro:`SPI_CS_CONTROL_PTR_DT` to reflect
this change.
* The :kconfig:option:`CONFIG_LEGACY_INCLUDE_PATH` option has been disabled by
default, all upstream code and modules have been converted to use
``<zephyr/...>`` header paths. The option is still available to facilitate
the migration of external applications, but will be removed with the 3.4
release. The :zephyr_file:`scripts/utils/migrate_includes.py` script is
provided to automate the migration.
* :zephyr_file:`include/zephyr/zephyr.h` no longer defines ``__ZEPHYR__``.
This definition can be used by third-party code to compile code conditional
to Zephyr. The definition is already injected by the Zephyr build system.
Therefore, any third-party code integrated using the Zephyr build system will
require no changes. External build systems will need to inject the definition
by themselves, if they did not already.
* :zephyr_file:`include/zephyr/zephyr.h` has been deprecated in favor of
:zephyr_file:`include/zephyr/kernel.h`, since it only included that header. No
changes are required by applications other than replacing ``#include
<zephyr/zephyr.h>`` with ``#include <zephyr/kernel.h>``.
Removed APIs in this release
============================
* The following functions, macros, and structures related to the
deprecated kernel work queue API have been removed:
* ``k_work_pending()``
* ``k_work_q_start()``
* ``k_delayed_work``
* ``k_delayed_work_init()``
* ``k_delayed_work_submit_to_queue()``
* ``k_delayed_work_submit()``
* ``k_delayed_work_pending()``
* ``k_delayed_work_cancel()``
* ``k_delayed_work_remaining_get()``
* ``k_delayed_work_expires_ticks()``
* ``k_delayed_work_remaining_ticks()``
* ``K_DELAYED_WORK_DEFINE``
* Removed support for enabling passthrough mode on MPU9150 to
AK8975 sensor.
* Removed deprecated SPI :c:struct:`spi_cs_control` fields for GPIO management
that have been replaced with :c:struct:`gpio_dt_spec`.
Deprecated in this release
==========================
* :c:macro:`DT_SPI_DEV_CS_GPIOS_LABEL` and
:c:macro:`DT_INST_SPI_DEV_CS_GPIOS_LABEL` are deprecated in favor of
utilizing :c:macro:`DT_SPI_DEV_CS_GPIOS_CTLR` and variants.
* :c:macro:`DT_GPIO_LABEL`, :c:macro:`DT_INST_GPIO_LABEL`,
:c:macro:`DT_GPIO_LABEL_BY_IDX`, and :c:macro:`DT_INST_GPIO_LABEL_BY_IDX`,
are deprecated in favor of utilizing :c:macro:`DT_GPIO_CTLR` and variants.
* :c:macro:`DT_LABEL`, and :c:macro:`DT_INST_LABEL`, are deprecated
in favor of utilizing :c:macro:`DT_PROP` and variants.
* :c:macro:`DT_BUS_LABEL`, and :c:macro:`DT_INST_BUS_LABEL`, are deprecated
in favor of utilizing :c:macro:`DT_BUS` and variants.
* STM32 LPTIM domain clock should now be configured using devicetree.
Related Kconfig :kconfig:option:`CONFIG_STM32_LPTIM_CLOCK` option is now
deprecated.
* 'label' property from devicetree as a base property. The property is still
valid for specific bindings to specify like :dtcompatible:`gpio-leds` and
:dtcompatible:`fixed-partitions`.
* Bluetooth mesh Configuration Client API prefixed with ``bt_mesh_cfg_``
is deprecated in favor of a new API with prefix ``bt_mesh_cfg_cli_``.
Stable API changes in this release
==================================
New APIs in this release
========================
Kernel
******
* Source files using multiple :c:macro:`SYS_INIT` macros with the
same initialisation function must now use :c:macro:`SYS_INIT_NAMED`
with unique names per instance.
Architectures
*************
* ARM
* AARCH32
* AARCH64
* Xtensa
Bluetooth
*********
* Audio
* Direction Finding
* Host
* Added a new callback :c:func:`rpa_expired` in the struct :c:struct:`bt_le_ext_adv_cb`
to enable synchronization of the advertising payload updates with the Resolvable Private
Address (RPA) rotations when the :kconfig:option:`CONFIG_BT_PRIVACY` is enabled.
* Added a new :c:func:`bt_le_set_rpa_timeout()` API call to dynamically change the
the Resolvable Private Address (RPA) timeout when the :kconfig:option:`CONFIG_BT_RPA_TIMEOUT_DYNAMIC`
is enabled.
* Added :c:func:`bt_conn_auth_cb_overlay` to overlay authentication callbacks for a Bluetooth LE connection.
* Removed ``CONFIG_BT_HCI_ECC_STACK_SIZE``.
The Bluetooth long workqueue (:kconfig:option:`CONFIG_BT_LONG_WQ`) is used for processing ECC commands instead of the dedicated thread.
* :c:func:`bt_conn_get_security` and `bt_conn_enc_key_size` now take a ``const struct bt_conn*`` argument.
* Mesh
* 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:
* Made these changes in other boards:
* Added support for these following shields:
Drivers and Sensors
*******************
* ADC
* CAN
* Counter
* DAC
* Disk
* DMA
* EEPROM
* Entropy
* Ethernet
* Flash
* GPIO
* I2C
* I2S
* IEEE 802.15.4
* All IEEE 802.15.4 drivers have been converted to Devicetree-based drivers.
* Interrupt Controller
* MBOX
* MEMC
* Pin control
* PWM
* Sensor
* Serial
* SPI
* Timer
* USB
* Watchdog
* Added support for Raspberry Pi Pico watchdog.
Networking
**********
* ``CONFIG_NET_CONFIG_IEEE802154_DEV_NAME`` has been removed in favor of
using a Devicetree choice given by ``zephyr,ieee802154``.
* Added new Wi-Fi offload APIs for retrieving status and statistics.
USB
***
Build System
************
* Removed deprecated ``GCCARMEMB_TOOLCHAIN_PATH`` setting
Devicetree
**********
* API
* Bindings
Libraries / Subsystems
**********************
* Management
* MCUMGR race condition when using the task status function whereby if a
thread state changed it could give a falsely short process list has been
fixed.
* MCUMGR shell (group 9) CBOR structure has changed, the ``rc``
response is now only used for mcumgr errors, shell command
execution result codes are instead returned in the ``ret``
variable instead, see :ref:`mcumgr_smp_group_9` for updated
information. Legacy bahaviour can be restored by enabling
:kconfig:option:`CONFIG_MCUMGR_CMD_SHELL_MGMT_LEGACY_RC_RETURN_CODE`
* MCUMGR img_mgmt erase command now accepts an optional slot number
to select which image will be erased, using the ``slot`` input
(will default to slot 1 if not provided).
* MCUMGR :kconfig:option:`CONFIG_OS_MGMT_TASKSTAT_SIGNED_PRIORITY` is now
enabled by default, this makes thread priorities in the taskstat command
signed, which matches the signed priority of tasks in Zephyr, to revert
to previous behaviour of using unsigned values, disable this Kconfig.
* MCUMGR taskstat runtime field support has been added, if
:kconfig:option:`CONFIG_OS_MGMT_TASKSTAT` is enabled, which will report the
number of CPU cycles have been spent executing the thread.
* MCUMgr transport API drops ``zst`` parameter, of :c:struct:`zephyr_smp_transport`
type, from :c:func:`zephyr_smp_transport_out_fn` type callback as it has
not been used, and the ``nb`` parameter, of :c:struct:`net_buf` type,
can carry additional transport information when needed.
HALs
****
MCUboot
*******
Trusted Firmware-m
******************
Documentation
*************
Tests and Samples
*****************
Issue Related Items
*******************
These GitHub issues were addressed since the previous 3.1.0 tagged
release: