Zephyr 2.7.0 (Working draft)¶
We are pleased to announce the release of Zephyr RTOS version 2.7.0.
The following sections provide detailed lists of changes by component.
Known issues¶
You can check all currently known issues by listing them using the GitHub interface and listing all issues with the bug label.
API Changes¶
Deprecated in this release
DT_ENUM_TOKENandDT_ENUM_UPPER_TOKEN, were deprecated in favor of utilizingDT_STRING_TOKENandDT_STRING_UPPER_TOKENBT_CONN_ROLE_MASTERandBT_CONN_ROLE_SLAVEhave been deprecated in favor ofBT_CONN_ROLE_CENTRALandBT_CONN_ROLE_PERIPHERALBT_LE_SCAN_OPT_FILTER_WHITELISThas been deprecated in favor ofBT_LE_SCAN_OPT_FILTER_ACCEPT_LISTThe following whitelist functions have been deprecated:
bt_le_whitelist_add()bt_le_whitelist_rem()bt_le_whitelist_clear()in favor ofbt_le_filter_accept_list_add()bt_le_filter_accept_list_remove()bt_le_filter_accept_list_clear()
Modified in this release
The following Bluetooth macros and structures in
hci.hhave been modified to align with the inclusive naming in the v5.3 specification:BT_LE_FEAT_BIT_SLAVE_FEAT_REQis nowBT_LE_FEAT_BIT_PER_INIT_FEAT_XCHGBT_LE_FEAT_BIT_CIS_MASTERis nowBT_LE_FEAT_BIT_CIS_CENTRALBT_LE_FEAT_BIT_CIS_SLAVEis nowBT_LE_FEAT_BIT_CIS_PERIPHERALBT_FEAT_LE_SLAVE_FEATURE_XCHGis nowBT_FEAT_LE_PER_INIT_FEAT_XCHGBT_FEAT_LE_CIS_MASTERis nowBT_FEAT_LE_CIS_CENTRALBT_FEAT_LE_CIS_SLAVEis nowBT_FEAT_LE_CIS_PERIPHERALBT_LE_STATES_SLAVE_CONN_ADVis nowBT_LE_STATES_PER_CONN_ADVBT_HCI_OP_LE_READ_WL_SIZEis nowBT_HCI_OP_LE_READ_FAL_SIZEbt_hci_rp_le_read_wl_sizeis nowbt_hci_rp_le_read_fal_sizebt_hci_rp_le_read_wl_size::wl_sizeis nowbt_hci_rp_le_read_fal_size::fal_sizeBT_HCI_OP_LE_CLEAR_WLis nowBT_HCI_OP_LE_CLEAR_FALBT_HCI_OP_LE_ADD_DEV_TO_WLis nowBT_HCI_OP_LE_REM_DEV_FROM_FALbt_hci_cp_le_add_dev_to_wlis nowbt_hci_cp_le_add_dev_to_falBT_HCI_OP_LE_REM_DEV_FROM_WLis nowBT_HCI_OP_LE_REM_DEV_FROM_FALbt_hci_cp_le_rem_dev_from_wlis nowbt_hci_cp_le_rem_dev_from_falBT_HCI_ROLE_MASTERis nowBT_HCI_ROLE_CENTRALBT_HCI_ROLE_SLAVEis nowBT_HCI_ROLE_PERIPHERALBT_EVT_MASK_CL_SLAVE_BC_RXis nowBT_EVT_MASK_CL_PER_BC_RXBT_EVT_MASK_CL_SLAVE_BC_TIMEOUTis nowBT_EVT_MASK_CL_PER_BC_TIMEOUTBT_EVT_MASK_SLAVE_PAGE_RSP_TIMEOUTis nowBT_EVT_MASK_PER_PAGE_RSP_TIMEOUTBT_EVT_MASK_CL_SLAVE_BC_CH_MAP_CHANGEis nowBT_EVT_MASK_CL_PER_BC_CH_MAP_CHANGEm_*structure members are nowc_*s_*structure members are nowp_*
The
CONFIG_BT_PERIPHERAL_PREF_SLAVE_LATENCYKconfig option is now :kconfig:`CONFIG_BT_PERIPHERAL_PREF_LATENCY`The
CONFIG_BT_CTLR_SLAVE_FEAT_REQ_SUPPORTKconfig option is now :kconfig:`CONFIG_BT_CTLR_PER_INIT_FEAT_XCHG_SUPPORT`The
CONFIG_BT_CTLR_SLAVE_FEAT_REQKconfig option is now :kconfig:`CONFIG_BT_CTLR_PER_INIT_FEAT_XCHG`
Changes in this release¶
Removed APIs in this release
Removed support for the deprecated
DEVICE_INITandDEVICE_AND_API_INITmacros.Removed support for the deprecated
BUILD_ASSERT_MSGmacro.Removed support for the deprecated
GET_ARG1,GET_ARG2andGET_ARGS_LESS_1macros.Removed support for the deprecated Kconfig
PRINTK64option.Removed support for the deprecated
bt_set_id_addrfunction.Removed support for the Kconfig
USBoption. OptionUSB_DEVICE_STACKis sufficient to enable USB device support.Removed
CONFIG_OPENTHREAD_COPROCESSOR_SPINEL_ON_UART_ACMandCONFIG_OPENTHREAD_COPROCESSOR_SPINEL_ON_UART_DEV_NAMEKconfig options in favor of chosen nodezephyr,ot-uart.Removed
CONFIG_BT_UART_ON_DEV_NAMEKconfig option in favor of direct use of chosen nodezephyr,bt-uart.Removed
CONFIG_BT_MONITOR_ON_DEV_NAMEKconfig option in favor of direct use of chosen nodezephyr,bt-mon-uart.Removed
CONFIG_UART_MCUMGR_ON_DEV_NAMEKconfig option in favor of direct use of chosen nodezephyr,uart-mcumgr.Removed
CONFIG_UART_CONSOLE_ON_DEV_NAMEKconfig option in favor of direct use of chosen nodezephyr,console.Removed
CONFIG_UART_SHELL_ON_DEV_NAMEKconfig option in favor of direct use of chosen nodezephyr,shell-uart.
Stable API changes in this release¶
Bluetooth
Added
multipleto thebt_gatt_read_params- this structure contains two members:handles, which was moved frombt_gatt_read_params, andvariable.
Kernel¶
Architectures¶
ARC
ARM
AARCH32
Updated CMSIS version to 5.8.0
Added support for FPU in QEMU for Cortex-M, allowing to build and execute tests in CI with FPU and FPU_SHARING options enabled.
AARCH64
x86
Bluetooth¶
Audio
Host
Mesh
Added return value for opcode callback
Bluetooth LE split software 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:
Made these changes in other boards:
Added support for these following shields:
Drivers and Sensors¶
ADC
Bluetooth
CAN
Clock Control
Console
Counter
DAC
Added support for Microchip MCP4725
Disk
Added SDMMC support on STM32L4+
Display
Added support for ST7735R
Disk
DMA
Added support on STM32G0 and STM32H7
EEPROM
Added support for EEPROM emulated in flash.
ESPI
Added support for Microchip eSPI SAF
Ethernet
Flash
GPIO
Hardware Info
I2C
I2S
IEEE 802.15.4
Interrupt Controller
LED
LoRa
lora_send now blocks until the transmission is complete. lora_send_async can be used for the previous, non-blocking behaviour.
Modem
PWM
Sensor
Serial
SPI
Timer
USB
Watchdog
WiFi
Networking¶
CoAP:
DHCPv4:
DNS:
HTTP:
IPv4:
LwM2M:
Misc:
OpenThread:
Socket:
TCP:
TLS:
USB¶
Build and Infrastructure¶
Devicetree
Various compatibles had incorrect vendor prefixes in their compatible properties; the following changes were made to fix these.
nios,i2cis nowaltr,nios2-i2ccolorway,lpd8803is nowgreeled,lpd8803colorway,lpd8806is nowgreeled,lpd8806grove,lightis nowseeed,grove-lightgrove,temperatureis nowseeed,grove-temperaturemax,max30101is nowmaxim,max30101ublox,sara-r4is nowu-blox,sara-r4xtensa,core-intcis nowcdns,xtensa-core-intc
Out of tree users of these compatibles will need to update their devicetrees.
You can support multiple versions of Zephyr with one devicetree by including both the old and new values in your nodes’ compatible properties, like this example for the LPD8803:
my-led-strip@0 { compatible = "colorway,lpd8803", "greeled,lpd8803"; ... };
West (extensions)
Libraries / Subsystems¶
Disk
Management
CMSIS subsystem
Power management
The APIs to set/clear/check if devices are busy from a power management perspective have been moved to the PM subsystem. Their naming and signature has also been adjusted to follow common conventions. Below you can find the equivalence list.
device_busy_set->pm_device_busy_setdevice_busy_clear->pm_device_busy_cleardevice_busy_check->pm_device_is_busydevice_any_busy_check->pm_device_is_any_busy
Logging
Random
xoroshiro128+ PRNG deprecated in favor of xoshiro128++
Shell
Storage
Task Watchdog
Tracing
Debug
OS
HALs¶
HALs are now moved out of the main tree as external modules and reside in their own standalone repositories.
Trusted Firmware-m¶
Renamed psa_level_1 sample to psa_crypto. Extended the use of the PSA Cryptography 1.0 API in the sample code to demonstrate additional crypto functionality.
Added a new sample to showcase the PSA Protecter Storage service.
Documentation¶
Kconfig options need to be referenced using the
:kconfig:Sphinx role. Previous to this change,:option:was used for this purpose.Doxygen alias
@config{}has been deprecated in favor of@kconfig{}.