9fca406511
This adds the Adafruit QTPy RP2040 and the Wiznet W5500 Evaluation Pico boards to the 3.6 release notes. Signed-off-by: Ian Wakely <raveious.irw@gmail.com>
550 lines
15 KiB
ReStructuredText
550 lines
15 KiB
ReStructuredText
:orphan:
|
|
|
|
.. _zephyr_3.6:
|
|
|
|
Zephyr 3.6.0 (Working Draft)
|
|
############################
|
|
|
|
We are pleased to announce the release of Zephyr version 3.6.0.
|
|
|
|
Major enhancements with this release include:
|
|
|
|
An overview of the changes required or recommended when migrating your application from Zephyr
|
|
v3.5.0 to Zephyr v3.6.0 can be found in the separate :ref:`migration guide<migration_3.6>`.
|
|
|
|
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
|
|
|
|
Kernel
|
|
******
|
|
|
|
Architectures
|
|
*************
|
|
|
|
* ARC
|
|
|
|
* ARM
|
|
|
|
* ARM64
|
|
|
|
* RISC-V
|
|
|
|
* Xtensa
|
|
|
|
* Removed the unused Kconfig option ``CONFIG_XTENSA_NO_IPC``.
|
|
|
|
* x86
|
|
|
|
* POSIX
|
|
|
|
Bluetooth
|
|
*********
|
|
|
|
* Audio
|
|
|
|
* Direction Finding
|
|
|
|
* Host
|
|
|
|
* Added ``recycled()`` callback to :c:struct:`bt_conn_cb`, which notifies listeners when a
|
|
connection object has been freed, so it can be utilized for different purposes. No guarantees
|
|
are made to what listener will be granted the object, as only the first claim is served.
|
|
|
|
* Mesh
|
|
|
|
* Added the delayable messages functionality to apply random delays for
|
|
the transmitted responses on the Access layer.
|
|
The functionality is enabled by the :kconfig:option:`CONFIG_BT_MESH_ACCESS_DELAYABLE_MSG`
|
|
Kconfig option.
|
|
* The Bluetooth Mesh Protocol 1.1 is now supported by default.
|
|
|
|
* Controller
|
|
|
|
Boards & SoC Support
|
|
********************
|
|
|
|
* Added support for these SoC series:
|
|
|
|
* Added support for Renesas R-Car Gen4 series
|
|
|
|
* Removed support for these SoC series:
|
|
|
|
* Made these changes in other SoC series:
|
|
|
|
* Nordic SoCs now imply :kconfig:option:`CONFIG_XIP` instead of selecting it, this allows for
|
|
creating RAM-based applications by disabling it.
|
|
|
|
* Added support for these ARC boards:
|
|
|
|
* Added support for these ARM boards:
|
|
|
|
* Added support for Renesas R-Car Spider board CR52: ``rcar_spider_cr52``
|
|
|
|
* Added support for Adafruit QTPy RP2040 board: ``adafruit_qt_py_rp2040``
|
|
|
|
* Added support for Wiznet W5500 Evaluation Pico board: ``w5500_evb_pico``
|
|
|
|
* 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:
|
|
|
|
* Added support for these POSIX boards:
|
|
|
|
* Made these changes for ARC boards:
|
|
|
|
* Made these changes for ARM boards:
|
|
|
|
* 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:
|
|
|
|
* Made these changes for native/POSIX boards:
|
|
|
|
* The :ref:`simulated nrf5340 targets<nrf5340bsim>` now include the IPC and MUTEX peripherals,
|
|
and support OpenAMP to communicate between the cores.
|
|
It is now possible to run the BLE controller or 802.15.4 driver in the net core, and application
|
|
and BT host in the app core.
|
|
|
|
* The nrf*_bsim simulated targets now include models of the UART peripheral. It is now possible
|
|
to connect a :ref:`nrf52_bsim<nrf52_bsim>` UART to another, or a UART in loopback, utilizing
|
|
both the new and legacy nRFx UART drivers, in any mode.
|
|
|
|
* For the native simulator based targets it is now possible to set via Kconfig command line
|
|
options which will be handled by the executable as if they were provided from the invoking
|
|
shell.
|
|
|
|
* For all native boards boards, the native logger backend will also be used even if the UART is
|
|
enabled.
|
|
|
|
* Several bugfixes and other minor additions to the nRF5x HW models.
|
|
|
|
* Multiple documentation updates and fixes for all native 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:
|
|
|
|
* 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
|
|
*******************************
|
|
|
|
* Added functionality for Link Time Optimization.
|
|
This change includes interrupt script generator rebuilding and adding following options:
|
|
|
|
- :kconfig:option:`CONFIG_ISR_TABLES_LOCAL_DECLARATION` Kconfig option:
|
|
LTO compatible interrupt tables parser,
|
|
- :kconfig:option:`CONFIG_LTO` Kconfig option: Enable Link Time Optimization.
|
|
|
|
Currently the LTO compatible interrupt tables parser is only supported by ARM architectures and
|
|
GCC compiler/linker.
|
|
See `pull request :github:`66392` for details.
|
|
|
|
* Dropped the ``COMPAT_INCLUDES`` option, it was unused since 3.0.
|
|
|
|
* Fixed an issue whereby board revision ``0`` did not include overlay files for that revision.
|
|
|
|
* Added ``PRE_IMAGE_CMAKE`` and ``POST_IMAGE_CMAKE`` hooks to sysbuild modules, which allows for
|
|
modules to run code after and before each image's cmake invocation.
|
|
|
|
* Added :kconfig:option:`CONFIG_ROM_END_OFFSET` option which allows reducing the size of an image,
|
|
this is intended for use with firmware signing scripts which add additional data to the end of
|
|
images outside of the build itself.
|
|
|
|
* Added MCUboot image size reduction to sysbuild images which include MCUboot which prevents
|
|
issues with building firmware images that are too large for MCUboot to swap.
|
|
|
|
* Deprecated :kconfig:option:`CONFIG_BOOTLOADER_SRAM_SIZE`, users of this should transition to
|
|
having RAM set up properly in their board devicetree files.
|
|
|
|
* Fixed an issue whereby shields were processed in order of the root they resided in rather than
|
|
the order they were supplied to cmake in.
|
|
|
|
* Fixed an issue whereby using some shields with sysbuild would cause a cmake Kconfig error.
|
|
|
|
* Fixed an issue where the macros ``_POSIX_C_SOURCE`` and ``_XOPEN_SOURCE`` would be defined
|
|
globally when building with Picolibc or for the native (``ARCH_POSIX``) targets.
|
|
After this change users may need to define them for their own applications or libraries if they
|
|
require them.
|
|
|
|
* Added support for sysbuild setting a signing script (``SIGNING_SCRIPT``), see
|
|
:ref:`west-extending-signing` for details.
|
|
|
|
* Added support for ``FILE_SUFFIX`` in the build system which allows for adding suffixes to
|
|
application Kconfig fragment file names and devicetree overlay file names, see
|
|
:ref:`application-file-suffixes` and :ref:`sysbuild_file_suffixes` for details.
|
|
|
|
* Deprecated ``CONF_FILE`` ``prj_<build>.conf`` build type.
|
|
|
|
Drivers and Sensors
|
|
*******************
|
|
|
|
* ADC
|
|
|
|
* CAN
|
|
|
|
* Added system call :c:func:`can_get_mode()` for getting the current operation mode of a CAN
|
|
controller.
|
|
|
|
* Add system call :c:func:`can_get_transceiver()` for getting the CAN transceiver associated with
|
|
a CAN controller.
|
|
|
|
* The "native linux" driver now supports being built with embedded C libraries.
|
|
|
|
* Clock control
|
|
|
|
* Renesas R-Car clock control driver now supports Gen4 SoCs
|
|
* Renamed ``CONFIG_CLOCK_CONTROL_RA`` to :kconfig:option:`CONFIG_CLOCK_CONTROL_RENESAS_RA`
|
|
|
|
* Counter
|
|
|
|
* The nRFx counter driver now works with simulated nrf*_bsim targets.
|
|
|
|
* counter_native_posix driver: Added support for top value configuration, and a bugfix.
|
|
|
|
* DAC
|
|
|
|
* Disk
|
|
|
|
* Display
|
|
|
|
* DMA
|
|
|
|
* EEPROM
|
|
|
|
* Entropy
|
|
|
|
* The "native_posix" entropy driver now accepts a new command line option ``seed-random``.
|
|
When used, the random generator will be seeded from ``/dev/urandom``
|
|
|
|
* Ethernet
|
|
|
|
* The "native_posix" ethernet driver now supports being built with embedded C libraries.
|
|
|
|
* Flash
|
|
|
|
* ``spi_nor`` driver now sleeps between polls in ``spi_nor_wait_until_ready``. If this is not
|
|
desired (For example due to ROM constraints in a bootloader),
|
|
:kconfig:option:`CONFIG_SPI_NOR_SLEEP_WHILE_WAITING_UNTIL_READY` can be disabled.
|
|
|
|
* GPIO
|
|
|
|
* Renesas R-Car GPIO driver now supports Gen4 SoCs
|
|
* Renamed ``CONFIG_GPIO_RA`` to :kconfig:option:`CONFIG_GPIO_RENESAS_RA`
|
|
|
|
* I2C
|
|
|
|
* I2S
|
|
|
|
* I3C
|
|
|
|
* The Legacy Virtual Register defines have been renamed from ``I3C_DCR_I2C_*``
|
|
to ``I3C_LVR_I2C_*``.
|
|
|
|
* IEEE 802.15.4
|
|
|
|
* Removed :kconfig:option:`CONFIG_IEEE802154_SELECTIVE_TXPOWER` Kconfig option.
|
|
|
|
* Interrupt Controller
|
|
|
|
* Input
|
|
|
|
* The ``short-codes`` property of :dtcompatible:`zephyr,input-longpress` is
|
|
now optional, the node can be used by specifying only input and long codes.
|
|
* Added support for keyboard matrix drivers, including a new
|
|
:dtcompatible:`gpio-kbd-matrix` and :dtcompatible:`input-keymap` drivers,
|
|
see :ref:`gpio-kbd` for more details.
|
|
* Added a pair of input codes to HID codes translation functions, see
|
|
:c:func:`input_to_hid_code` and :c:func:`input_to_hid_modifier`.
|
|
* Added power management support to :dtcompatible:`gpio-keys`
|
|
:dtcompatible:`focaltech,ft5336`.
|
|
* Added a :dtcompatible:`zephyr,native-linux-evdev` device node for getting
|
|
input events from a Linux evdev device node.
|
|
* Added support for optical encoders and power management to :dtcompatible:`gpio-qdec`.
|
|
* New drivers :dtcompatible:`espressif,esp32-touch`, :dtcompatible:`analog-axis`.
|
|
|
|
* PCIE
|
|
|
|
* ACPI
|
|
|
|
* Pin control
|
|
|
|
* Renesas R-Car pinctrl driver now supports Gen4 SoCs
|
|
* Renamed ``CONFIG_PINCTRL_RA`` to :kconfig:option:`CONFIG_PINCTRL_RENESAS_RA`
|
|
|
|
* PWM
|
|
|
|
* Regulators
|
|
|
|
* Reset
|
|
|
|
* Retained memory
|
|
|
|
* Retained memory driver backend for registers has been added.
|
|
|
|
* Retained memory API status changed from experimental to unstable.
|
|
|
|
* RTC
|
|
|
|
* SDHC
|
|
|
|
* Sensor
|
|
|
|
* Serial
|
|
|
|
* Renamed ``CONFIG_UART_RA`` to :kconfig:option:`CONFIG_UART_RENESAS_RA`
|
|
|
|
* SPI
|
|
|
|
* Timer
|
|
|
|
* USB
|
|
|
|
* WiFi
|
|
|
|
Networking
|
|
**********
|
|
|
|
* CoAP:
|
|
|
|
* Emit observer/service network events using the Network Event subsystem.
|
|
|
|
* Added new API functions:
|
|
|
|
* :c:func:`coap_get_transmission_parameters`
|
|
* :c:func:`coap_set_transmission_parameters`
|
|
|
|
* Connection Manager:
|
|
|
|
* DHCP:
|
|
|
|
* Ethernet:
|
|
|
|
* gPTP:
|
|
|
|
* ICMP:
|
|
|
|
* IPv6:
|
|
|
|
* LwM2M:
|
|
|
|
* Misc:
|
|
|
|
* It is now possible to have separate IPv4 TTL value and IPv6 hop limit value for
|
|
unicast and multicast packets. This can be controlled in each socket via
|
|
:c:func:`setsockopt` API.
|
|
|
|
* Added support for compile time network event handlers using the macro
|
|
:c:macro:`NET_MGMT_REGISTER_EVENT_HANDLER`.
|
|
|
|
* The :kconfig:option:`CONFIG_NET_MGMT_EVENT_WORKER` choice is added to
|
|
allow emitting network events using the system work queue or synchronously.
|
|
|
|
* MQTT-SN:
|
|
|
|
* OpenThread:
|
|
|
|
* PPP:
|
|
|
|
* Sockets:
|
|
|
|
* Added support for IPv4 multicast ``IP_ADD_MEMBERSHIP`` and ``IP_DROP_MEMBERSHIP`` socket options.
|
|
* Added support for IPv6 multicast ``IPV6_ADD_MEMBERSHIP`` and ``IPV6_DROP_MEMBERSHIP`` socket options.
|
|
|
|
* TCP:
|
|
|
|
* TFTP:
|
|
|
|
* WebSocket
|
|
|
|
* Wi-Fi:
|
|
|
|
|
|
USB
|
|
***
|
|
|
|
Devicetree
|
|
**********
|
|
|
|
API
|
|
===
|
|
|
|
Bindings
|
|
========
|
|
|
|
Libraries / Subsystems
|
|
**********************
|
|
|
|
* Management
|
|
|
|
* Fixed an issue in MCUmgr image management whereby erasing an already erased slot would return
|
|
an unknown error, it now returns success.
|
|
|
|
* Fixed MCUmgr UDP transport structs being statically initialised, this results in about a
|
|
~5KiB flash saving.
|
|
|
|
* Fixed an issue in MCUmgr which would cause a user data buffer overflow if the UDP transport was
|
|
enabled on IPv4 only but IPv6 support was enabled in the kernel.
|
|
|
|
* Implemented datetime functionality in MCUmgr OS management group, this makes use of the RTC
|
|
driver API.
|
|
|
|
* Fixed an issue in MCUmgr console UART input whereby the FIFO would be read outside of an ISR,
|
|
which is not supported in the next USB stack.
|
|
|
|
* Fixed an issue whereby the ``mcuboot erase`` DFU shell command could be used to erase the
|
|
MCUboot or currently running application slot.
|
|
|
|
* Fixed an issue whereby messages that were too large to be sent over the UDP transport would
|
|
wrongly return :c:enum:`MGMT_ERR_EINVAL` instead of :c:enum:`MGMT_ERR_EMSGSIZE`.
|
|
|
|
* File systems
|
|
|
|
* Modem modules
|
|
|
|
* Power management
|
|
|
|
* Random
|
|
|
|
* Retention
|
|
|
|
* Fixed issue whereby :kconfig:option:`CONFIG_RETENTION_BUFFER_SIZE` values over 256 would cause
|
|
an infinite loop due to use of 8-bit variables.
|
|
|
|
* Storage
|
|
|
|
* File systems: LittleFS module has been updated to version 2.8.1.
|
|
|
|
* Following Flash Map API macros, marked in 3.2 as deprecated, have been removed:
|
|
``FLASH_AREA_ID``, ``FLASH_AREA_OFFSET``, ``FLASH_AREA_SIZE``,
|
|
``FLASH_AREA_LABEL_EXISTS`` and ``FLASH_AREA_DEVICE``.
|
|
|
|
* Binary descriptors
|
|
|
|
* POSIX API
|
|
|
|
* LoRa/LoRaWAN
|
|
|
|
* CAN ISO-TP
|
|
|
|
* RTIO
|
|
|
|
* ZBus
|
|
|
|
* Renamed :kconfig:option:`ZBUS_MSG_SUBSCRIBER_NET_BUF_DYNAMIC` and
|
|
:kconfig:option:`ZBUS_MSG_SUBSCRIBER_NET_BUF_STATIC`
|
|
with :kconfig:option:`ZBUS_MSG_SUBSCRIBER_BUF_ALLOC_DYNAMIC` and
|
|
:kconfig:option:`ZBUS_MSG_SUBSCRIBER_BUF_ALLOC_STATIC`
|
|
|
|
HALs
|
|
****
|
|
|
|
MCUboot
|
|
*******
|
|
|
|
* Fixed compatible sector checking in bootutil.
|
|
|
|
* Fixed Kconfig issue with saving encrypted TLVs not depending on encryption being enabled.
|
|
|
|
* Fixed issue with missing condition check for applications in sysflash include file.
|
|
|
|
* Fixed issue with single slot encrypted image listing support in boot_serial.
|
|
|
|
* Fixed issue with allowing MBEDTLS Kconfig selection when tinycrypt is used.
|
|
|
|
* Fixed missing response if echo command was disabled in boot_serial.
|
|
|
|
* Fixed issue with USB configurations not generating usable images.
|
|
|
|
* Added debug logging for boot status write in bootutil.
|
|
|
|
* Added estimated image overhead size to cache in sysbuild.
|
|
|
|
* Added firmware loader operating mode which allows for a dedicated secondary slot image that
|
|
is used to update the primary image.
|
|
|
|
* Added error if main thread is not pre-emptible when USB CDC serial recovery is enabled.
|
|
|
|
* Added error if USB CDC and console are both enabled and set to the same device.
|
|
|
|
* Removed the deprecated ``CONFIG_ZEPHYR_TRY_MASS_ERASE`` Kconfig option.
|
|
|
|
* Updated zcbor to version 0.8.1 and re-generated boot_serial files.
|
|
|
|
* Moved IO functions out of main to separate file.
|
|
|
|
* Made ``align`` parameter of imgtool optional.
|
|
|
|
* The MCUboot version in this release is version ``2.1.0+0-dev``.
|
|
|
|
Nanopb
|
|
******
|
|
|
|
zcbor
|
|
*****
|
|
|
|
zcbor has been updated from 0.7.0 to 0.8.1.
|
|
Full release notes can be found at:
|
|
https://github.com/zephyrproject-rtos/zcbor/blob/0.8.0/RELEASE_NOTES.md and
|
|
https://github.com/zephyrproject-rtos/zcbor/blob/0.8.1/RELEASE_NOTES.md
|
|
|
|
Highlights:
|
|
|
|
* Add support for unordered maps
|
|
* Performance improvements
|
|
* Naming improvements for generated code
|
|
* Bugfixes
|
|
|
|
LVGL
|
|
****
|
|
|
|
Trusted Firmware-A
|
|
******************
|
|
|
|
Documentation
|
|
*************
|
|
|
|
Tests and Samples
|
|
*****************
|
|
|
|
* :ref:`native_sim<native_sim>` has replaced :ref:`native_posix<native_posix>` as the default
|
|
test platform.
|
|
:ref:`native_posix<native_posix>` remains supported and used in testing but will be deprecated
|
|
in a future release.
|
|
|
|
* Bluetooth split stacks tests, where the BT host and controller are run in separate MCUs, are
|
|
now run in CI based on the :ref:`nrf5340_bsim<nrf5340bsim>` targets.
|
|
Several other runtime AMP tests based on these targets have been added to CI, including tests
|
|
of OpenAMP, the mbox and IPC drivers/subsystem, and the logger multidomain functionality.
|
|
|
|
* Runtime UART tests have been added to CI based on the :ref:`nrf52_bsim<nrf52_bsim>` target.
|
|
These include tests of the nRFx UART driver and networked BT stack tests with the host and
|
|
controller in separate devices communicating over the HCI UART driver.
|
|
|
|
* Fixed an issue in :zephyr:code-sample:`smp-svr` sample whereby if USB was already initialised,
|
|
application would fail to boot properly.
|