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.
You can check all currently known issues by listing them using the GitHub interface and listing all issues with the bug label.
Driver APIs now return
-ENOSYSif optional functions are not implemented. If the feature is not supported by the hardware
-ENOTSUPwill be returned. Formerly
-ENOTSUPwas returned for both failure modes, meaning this change may require existing code that tests only for that value to be changed.
wait_for_usb_dfu()function now accepts a
k_timeout_targument instead of using the
Added disconnect reason to the
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.
lwm2m_engine_delete_obj_instfunction to the LwM2M library API.
Deprecated in this release
DT_INST_CLOCKS_LABELwas deprecated in favor of utilizing
DT_INST_PWMS_LABELwas deprecated in favor of utilizing
DT_INST_IO_CHANNELS_LABELwere deprecated in favor of utilizing
USB HID specific macros in
<include/usb/class/usb_hid.h>are deprecated in favor of new common HID macros defined in
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.
CONFIG_OPENOCD_SUPPORTKconfig option has been deprecated in favor of
Disk drivers (
disk_access_*.c) are moved to
drivers/diskand 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_DRIVER_SDMMC. Disk API header
<include/disk/disk_access.h>is deprecated in favor of
CONFIG_NET_CONTEXT_TIMESTAMPis removed as it was only able to work with transmitted data. The same functionality can be achieved by setting
CONFIG_NET_PKT_TXTIME_STATSoptions. 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
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_get_power_statehave been renamed to
pm_device_state_getin order to align with the naming of other device PM APIs.
The following functions, macros, and structures related to the kernel work queue API:
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¶
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.
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:
Removed support for these ARM boards:
ARM V2M Musca-A
Nordic nRF5340 PDK
Made these changes in other boards:
Added support for these following shields:
Drivers and Sensors¶
The Kconfig option
CONFIG_BT_CTLR_TO_HOST_UART_DEV_NAMEwas removed. Use the zephyr,bt-c2h-uart chosen node directly instead.
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.
New macros for initializing
Remove support for
gpio_pin_configure(). The feature has been deprecated in the Zephyr 2.2 release. The interrupt flags are now accepted by
BLE split software Controller
Build and Infrastructure¶
Improved support for additional toolchains:
DT_COMPAT_GET_ANY_STATUS_OKAY: new macro
Libraries / Subsystems¶
device_pm_control_nophas been removed in favor of
NULLwhen 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.
CONFIG_TRACING_CPU_STATSwas removed in favor of
CONFIG_THREAD_RUNTIME_STATSwhich provides per thread statistics. The same functionality is also available when Thread analyzer is enabled with the runtime statistics enabled.
Reboot functionality has been moved to
subsys/power. A consequence of this movement is that the
<power/reboot.h>header has been moved to
<power/reboot.h>is still provided for compatibility, but it will produce a warning to inform users of the relocation.
HALs are now moved out of the main tree as external modules and reside in their own standalone repositories.
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
Tests and Samples¶
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:
filter: dt_compat_enabled_with_alias("gpio-leds", "led0")
filter: dt_enabled_alias_with_parent_compat("led0", "gpio-leds")