doc/releases/release-notes-3.5.rst
:orphan:
.. _zephyr_3.5:
Zephyr 3.5.0 ############
We are pleased to announce the release of Zephyr version 3.5.0.
Major enhancements with this release include:
An overview of the changes required or recommended when migrating your application from Zephyr
v3.4.0 to Zephyr v3.5.0 can be found in the separate :ref:migration guide<migration_3.5>.
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
CVE-2023-3725 Zephyr project bug tracker GHSA-2g3m-p6c7-8rr3 <https://github.com/zephyrproject-rtos/zephyr/security/advisories/GHSA-2g3m-p6c7-8rr3>_
CVE-2023-4257 Zephyr project bug tracker GHSA-853q-q69w-gf5j <https://github.com/zephyrproject-rtos/zephyr/security/advisories/GHSA-853q-q69w-gf5j>_
CVE-2023-4258 Zephyr project bug tracker GHSA-m34c-cp63-rwh7 <https://github.com/zephyrproject-rtos/zephyr/security/advisories/GHSA-m34c-cp63-rwh7>_
CVE-2023-4259 Zephyr project bug tracker GHSA-gghm-c696-f4j4 <https://github.com/zephyrproject-rtos/zephyr/security/advisories/GHSA-gghm-c696-f4j4>_
CVE-2023-4260 Zephyr project bug tracker GHSA-gj27-862r-55wh <https://github.com/zephyrproject-rtos/zephyr/security/advisories/GHSA-gj27-862r-55wh>_
CVE-2023-4263 Zephyr project bug tracker GHSA-rf6q-rhhp-pqhf <https://github.com/zephyrproject-rtos/zephyr/security/advisories/GHSA-rf6q-rhhp-pqhf>_
CVE-2023-4264 Zephyr project bug tracker GHSA-rgx6-3w4j-gf5j <https://github.com/zephyrproject-rtos/zephyr/security/advisories/GHSA-rgx6-3w4j-gf5j>_
CVE-2023-4424: Under embargo until 2023-11-01
CVE-2023-5055: Under embargo until 2023-11-01
CVE-2023-5139: Under embargo until 2023-10-25
CVE-2023-5184 Zephyr project bug tracker GHSA-8x3p-q3r5-xh9g <https://github.com/zephyrproject-rtos/zephyr/security/advisories/GHSA-8x3p-q3r5-xh9g>_
CVE-2023-5563 Zephyr project bug tracker GHSA-98mc-rj7w-7rpv <https://github.com/zephyrproject-rtos/zephyr/security/advisories/GHSA-98mc-rj7w-7rpv>_
CVE-2023-5753 Zephyr project bug tracker GHSA-hmpr-px56-rvww <https://github.com/zephyrproject-rtos/zephyr/security/advisories/GHSA-hmpr-px56-rvww>_
Kernel
k_thread_stack_allock_spin_trylockk_object_is_valid to check if a kernel object is valid. This replaces
code that has been duplicated throughout the tree.Architectures
ARC
Introduced the scalar port for ARC VPX processors
Introduced support for ARCv3 HS (both 32 and 64 bit) SMP platforms with up to 12 CPU cores
Reworked GNU helper tools usage for ARC MWDT toolchain. Now helper tools can be used from Zephyr SDK (if SDK is installed)
Fixed dynamic thread stack allocation
Fixed STR assembly macro offset calculation issue which may cause build error for ARCv3 64bit
Cleaned-up and made more user friendly handling of the ARC MWDT toolchain path (ARCMWDT_TOOLCHAIN_PATH)
ARM
60031.ARM64
RISC-V
CONFIG_RISCV_RESERVED_IRQ_ISR_TABLES_OFFSET
option to allow IRQ vector at a specified offset to meet the requirements
set by the Core-Local Interrupt Controller RISC-V specification.CONFIG_RISCV_SOC_HAS_CUSTOM_SYS_IO option to
allow the use of custom system input/output functions.CONFIG_RISCV_TRAP_HANDLER_ALIGNMENT option
to set the correct alignment of the trap handling code which is dependent on
the MTVEC.BASE field size and is platform or application-specific.Xtensa
x86
POSIX
POSIX OS abstraction<posix_support> is supported in these new boards.Bluetooth
Audio
Improved memory usage of codec configurations and codec capabilities. Fixed several bugs in BAP and the BAP-related services (ASCS, PACS, BASS), as well as missing features such as proper notification handling.
bt_bap_stream_get_tx_syncbt_audio_codec_cap_get helper functionsbt_bap_scan_delegator_find_state implementationbroadcast_sink_createtbs_client missing discovery complete eventbt_audio_codec_cap to flat arraysbt_audio_codec_cfg to flat arraysCONFIG_BT_PACS_{SNK,SRC}_CONTEXTbt_codec to bt_audio_codec_{cap, conf, data}BT_AUDIO_CODEC_LC3_ID -> BT_HCI_CODING_FORMAT_LC3BT_AUDIO_CODEC_PARSE_ERR_ values with errno values.bt_cap_stream_ops_register to always register BAP callbacksbt_audio_codec_meta_get to cfg and capDirection Finding
Host
BT_CONN_PARAM_ANY to allow setting any value to connection parametersbt_ots_init parameter struct namingbt_iso_cig_reconfigurebt_conn_le_start_encryptionMesh
Added TF-M support.
Added support to use both tinycrypt and PSA based crypto
Added full virtual addresses support with the collisions resolution. The
:kconfig:option:CONFIG_BT_MESH_LABEL_NO_RECOVER Kconfig option is introduced to restore the
addresses for the subscription list and model publication.
Added statistic module.
Fixed an issue where a node acting as a LPN was triggering Friend Poll messages when sending a segmented message over the loopback interface.
Fixed an issue where provisioning completes successfully on a node when the identical Public Key is used by a provisioner.
Fixed an issue where the :c:func:settings_load function called from a cooperative thread other
than the system workqueue caused the GATT Mesh Proxy Service registration to fail.
Fixed an issue where a node could enter IV Update in Progress state if an old SNB with the current IV Index and IV Update flag set to 1 was resent.
Mesh Protocol v1.1 changes
CONFIG_BT_MESH_DFD_SRV_OOB_UPLOAD Kconfig option.Controller
Improved support for Broadcast and Connected Isochronous channels in the Controller, enabling LE audio application development. The Controller is experimental, is missing implementations for interleaved packing in Isochronous channels' lower link layer.
BT_CTLR_EVENT_OVERHEAD_RESERVE_MAX KconfigAUX_ADV_IND not receivedEVENT_OVERHEAD_START_US verbose assertion in each state/role LLLaux_ptr if DATA_LEN_MAX is reached during extended scanningBoards & SoC Support
Added support for these SoC series:
Removed support for these SoC series:
Made these changes in other SoC series:
Added support for these ARC boards:
Added support for these ARM boards:
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 esp32_devkitc_wroom and esp32_devkitc_wrover.
Added esp32s3_luatos_core.
Added m5stack_core2.
Added qemu_xtensa_mmu utilizing Diamond DC233c SoC to support
testing Xtensa MMU.
Added xiao_esp32s3.
Added yd_esp32.
Added support for these POSIX boards:
native_sim(_64) <native_sim>Made these changes for ARC boards:
Made these changes for ARM boards:
ST morpho connector description was added on ST nucleo boards.
rpi_pico:
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:
esp32s3_devkitm:
Added USB-CDC support.
Added CAN support.
Made these changes for POSIX boards:
nrf52_bsim:
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:
esp32. Use esp32_devkitc_* instead.Made these changes in other boards:
Added support for these following shields:
Build system and infrastructure
SCA (Static Code Analysis)
Twister now supports required_snippets in testsuite .yml files, this can
be used to include a snippet when a test is ran (and exclude any boards from
running that the snippet cannot be applied to).
Interrupts
Added support for setting MCUboot encryption key in sysbuild which is then propagated to the bootloader and target images to automatically create encrypted updates.
Build time priority checking: enable build time priority checking by default.
This fails the build if the initialization sequence in the final ELF file
does not match the devicetree hierarchy. It can be turned off by disabling
the :kconfig:option:CONFIG_CHECK_INIT_PRIORITIES option.
Added a new initlevels target for printing the final device and
:c:macro:SYS_INIT initialization sequence from the final ELF file.
Reworked syscall code generations so that not all marshalling functions will be included in the final binary. Syscalls associated with disabled subsystems no longer have their marshalling functions generated.
Partially enabled compiler warning about shadow variables for subset of in-tree code. Out-of-tree code needs to be patched before we can fully enable shadow variable warnings.
Drivers and Sensors
ADC
CAN
ti,tcan4x5x).microchip,mcp251xfd).Clock control
Counter
Added :kconfig:option:CONFIG_COUNTER_RTC_STM32_SUBSECONDS to enable subsecond as
the basic time tick on STM32 RTC based counter driver.
Added support for Raspberry Pi Pico Timer
DAC
Disk
Display
DMA
EEPROM
fujitsu,mb85rcxx).Entropy
entropy_get_entropy() to be thread-safe because
of random subsystem needs.Ethernet
CONFIG_ETH_NATIVE_POSIX_RX_TIMEOUT to set rx timeout for native posix.mdio DT property. Please use :c:macro:DT_INST_BUS() in the driver instead.reg property in DT bindings.ethernet-phy devicetree node name consistently.Flash
GPIO
I2C
I2S
I3C
i3c_cdns:
Fixed build error when :kconfig:option:CONFIG_I3C_USE_IBI is disabled.
Fixed transfer issue when controller is busy. Now wait for controller to idle before proceeding with another transfer.
IEEE 802.15.4
Interrupt Controller
Input
New drivers: :dtcompatible:gpio-qdec, :dtcompatible:st,stmpe811.
Drivers converted from Kscan to Input: :dtcompatible:goodix,gt911
:dtcompatible:xptek,xpt2046 :dtcompatible:hynitron,cst816s
:dtcompatible:microchip,cap1203.
Added a Kconfig option for dumping all events to the console
:kconfig:option:CONFIG_INPUT_EVENT_DUMP and new shell commands
:kconfig:option:CONFIG_INPUT_SHELL.
Merged zephyr,gpio-keys into :dtcompatible:gpio-keys and added
zephyr,code codes to all in-tree board gpio-keys nodes.
Renamed the callback definition macro from INPUT_LISTENER_CB_DEFINE to
:c:macro:INPUT_CALLBACK_DEFINE.
PCIE
Added support in shell to display PCIe capabilities.
Added virtual channel support.
Added kconfig :kconfig:option:CONFIG_PCIE_INIT_PRIORITY to specify
initialization priority for host controller.
Added support to get IRQ from ACPI PCI Routing Table (PRT).
ACPI
Pin control
PWM
Regulators
Added support for GPIO-controlled voltage regulator
Added support for AXP192 PMIC
Added support for NXP VREF regulator
Fixed regulators can now specify their operating voltage
PFM mode is now support for nPM1300
Added new API to configure "ship" mode
Regulator shell allows to configure DVS modes
Reset
Retained memory
Added support for allowing mutex support to be forcibly disabled with
:kconfig:option:CONFIG_RETAINED_MEM_MUTEX_FORCE_DISABLE.
Fixed issue with user mode support not working.
RTC
SDHC
Sensor
ti,bq274xx to add BQ27427 support, fixed
units for capacity and power channels.Serial
Added support for Nuvoton NuMaker M46x
NS16550: Reworked how device initialization macros.
CONFIG_UART_NS16550_ACCESS_IOPORT and CONFIG_UART_NS16550_SIMULT_ACCESS
are removed. For UART using IO port access, add io-mapped property to
device tree node.Added async support for ESP32S3.
Added support for serial TTY under native_posix.
Added support for UART on Efinix Sapphire SoCs.
Added Intel SEDI UART driver.
Added support for UART on BCM2711.
uart_stm32:
Added RS485 support.
Added wide data support.
uart_pl011: added support for Ambiq SoCs.
serial_test: added support for interrupt and async APIs.
uart_emul: added support for interrupt API.
uart_rpi_pico: fixed handling Modbus DE-RE signal
SPI
Timer
ti,cc13xx-cc26xx-rtc to :dtcompatible:ti,cc13xx-cc26xx-rtc-timer
and the corresponding Kconfig option from :kconfig:option:CC13X2_CC26X2_RTC_TIMER
to :kconfig:option:CC13XX_CC26XX_RTC_TIMER for improved consistency and
extensibility. No action is required unless the internal timer was modified.USB
WiFi
Networking
CoAP:
Optimized CoAP client library to use only a single thread internally.
Converted CoAP client library to use zsock_* API internally.
Fixed a bug in CoAP client library, which resulted in an incorrect retransmission timeout calculation.
Use 64 bit timer values for calculating transmission timeouts. This fixes potential problems for devices that stay on for more than 49 days when the 32 bit uptime counter might roll over and cause CoAP packets to not timeout at all on this event.
API documentation improvements.
Added new API functions:
coap_has_descriptive_block_optioncoap_remove_descriptive_block_optioncoap_packet_remove_optioncoap_packet_set_pathConnection Manager:
CONN_MGR_IF_NO_AUTO_CONNECT and :c:enum:CONN_MGR_IF_NO_AUTO_DOWN
flags).DHCP:
Ethernet:
gPTP:
ICMP:
IPv6:
LwM2M:
CONFIG_LWM2M_TICKLESS.LWM2M_RD_CLIENT_EVENT_DEREGISTER event.CONFIG_LWM2M_COAP_BLOCK_TRANSFER is enabled, any content that is larger
than :kconfig:option:CONFIG_LWM2M_COAP_MAX_MSG_SIZE is split into a block-wise transfer.lwm2m create, which allows to create LwM2M object instances.Misc:
Time and timestamps in the network subsystem, PTP and IEEE 802.15.4
were more precisely specified and all in-tree call sites updated accordingly.
Fields for timed TX and TX/RX timestamps have been consolidated. See
:c:type:net_time_t, :c:struct:net_ptp_time, :c:struct:ieee802154_config,
:c:struct:ieee802154_radio_api and :c:struct:net_pkt for extensive
documentation. As this is largely an internal API, existing applications will
most probably continue to work unchanged.
Added support for additional net_pkt filter hooks:
CONFIG_NET_PKT_FILTER_IPV4_HOOKCONFIG_NET_PKT_FILTER_IPV6_HOOKCONFIG_NET_PKT_FILTER_LOCAL_IN_HOOKReworked several networking components to use timepoint API.
Added API functions facilitate going through all IPv4/IPv6 registered on an
interface (:c:func:net_if_ipv4_addr_foreach, :c:func:net_if_ipv6_addr_foreach).
NET_EVENT_IPV6_PREFIX_ADD and NET_EVENT_IPV6_PREFIX_DEL events now provide
more detailed information about the prefix (:c:struct:net_event_ipv6_prefix).
General cleanup of the shadowed variables across the networking subsystem.
Added qemu_cortex_a53 networking support.
Introduced new modem subsystem.
Added new :zephyr:code-sample:cellular-modem sample.
Added support for network interface names (instead of reusing underlying device name).
Removed support for Google Cloud IoT sample due to service retirement.
Fixed a bug where packets passed in promiscuous mode could have been modified by L2 in certain cases.
Added support for setting syslog server (used for networking log backend) IP address at runtime.
Removed no longer used queued and sent net_pkt flags.
Added support for binding zperf TCP/UDP server to a specific IP address.
MQTT-SN:
OpenThread:
otPlatEntropyGet to use :c:func:sys_csrand_get internally.ieee802154_radio_openthread.h radio driver extension interface
specific for OpenThread. Added new transmit mode, specific to OpenThread,
:c:enum:IEEE802154_OPENTHREAD_TX_MODE_TXTIME_MULTIPLE_CCA.PPP:
CONFIG_NET_L2_PPP_THREAD_PRIO).Sockets:
Added support for statically allocated socketpairs (in case no heap is available).
Made send timeout configurable (:kconfig:option:CONFIG_NET_SOCKET_MAX_SEND_WAIT).
Added support for FIONREAD and FIONBIO :c:func:ioctl commands.
Fixed input filtering for connected datagram sockets.
Fixed :c:func:getsockname operation on unconnected sockets.
Added new secure socket options for DTLS Connection ID support:
TLS_DTLS_CIDTLS_DTLS_CID_VALUETLS_DTLS_PEER_CID_VALUETLS_DTLS_CID_STATUSAdded support for :c:macro:SO_REUSEADDR and :c:macro:SO_REUSEPORT socket options.
TCP:
CONFIG_NET_TCP_WORKER_PRIO).TFTP:
tftp-client sample.WebSocket
Wi-Fi:
USB
Devicetree
New general-purpose macros:
DT_REG_ADDR_U64DT_REG_ADDR_BY_NAME_U64DT_INST_REG_ADDR_BY_NAME_U64DT_INST_REG_ADDR_U64DT_FOREACH_STATUS_OKAY_NODE_VARGSDT_FOREACH_NODE_VARGSDT_HAS_COMPAT_ON_BUS_STATUS_OKAYNew special-purpose macros introduced for dependency ordinals:
DT_DEP_ORD_STR_SORTABLENew general purpose macros introduced for fixed flash partitions:
DT_MEM_FROM_FIXED_PARTITIONDT_FIXED_PARTITION_ADDRGeneric or vendor-independent:
New bindings:
current-sense-amplifiercurrent-sense-shuntgpio-qdecregulator-gpiousb-audio-feature-volumeModified bindings:
CAN (Controller Area Network) controller bindings:
* property ``phase-seg1-data`` deprecation status changed from False to True
* property ``phase-seg1`` deprecation status changed from False to True
* property ``phase-seg2-data`` deprecation status changed from False to True
* property ``phase-seg2`` deprecation status changed from False to True
* property ``prop-seg-data`` deprecation status changed from False to True
* property ``prop-seg`` deprecation status changed from False to True
* property ``sjw-data`` default value changed from None to 1
* property ``sjw-data`` deprecation status changed from False to True
* property ``sjw`` default value changed from None to 1
* property ``sjw`` deprecation status changed from False to True
Ethernet controller bindings: new phy-handle property (in some
bindings, this was renamed from phy-dev), matching the Linux
ethernet-controller binding.
The riscv,isa property used by RISC-V CPU bindings no longer has an
enum value.
:dtcompatible:neorv32,cpu:
* new property: ``mmu-type``
* new property: ``riscv,isa``
:dtcompatible:regulator-fixed:
* new property: ``regulator-min-microvolt``
* new property: ``regulator-max-microvolt``
* property ``enable-gpios`` is no longer required
:dtcompatible:ethernet-phy:
* removed property: ``address``
* removed property: ``mdio``
* property ``reg`` is now required
:dtcompatible:usb-audio-hs and :dtcompatible:usb-audio-hp:
* new property: ``volume-max``
* new property: ``volume-min``
* new property: ``volume-res``
* new property: ``status``
* new property: ``compatible``
* new property: ``reg``
* new property: ``reg-names``
* new property: ``interrupts``
* new property: ``interrupts-extended``
* new property: ``interrupt-names``
* new property: ``interrupt-parent``
* new property: ``label``
* new property: ``clocks``
* new property: ``clock-names``
* new property: ``#address-cells``
* new property: ``#size-cells``
* new property: ``dmas``
* new property: ``dma-names``
* new property: ``io-channels``
* new property: ``io-channel-names``
* new property: ``mboxes``
* new property: ``mbox-names``
* new property: ``wakeup-source``
* new property: ``power-domain``
* new property: ``zephyr,pm-device-runtime-auto``
:dtcompatible:ntc-thermistor-generic:
* removed property: ``r25-ohm``
:dtcompatible:ns16550:
* new property: ``resets``
* new property: ``reset-names``
:dtcompatible:fixed-clock:
* removed property: ``clocks``
All CPU bindings got a new enable-method property. pull request 60210 <https://github.com/zephyrproject-rtos/zephyr/pull/60210>_ for
details.
Analog Devices, Inc. (adi):
New bindings:
adi,ad5628adi,ad5648adi,ad5668adi,ad5672adi,ad5674adi,ad5676adi,ad5679adi,ad5684adi,ad5686adi,ad5687adi,ad5689adi,adin1110adi,adltc2990Modified bindings:
:dtcompatible:adi,adin2111-mdio (on adin2111 bus):
* removed property: ``protocol``
Altera Corp. (altr):
New bindings:
altr,pio-1.0Ambiq Micro, Inc. (ambiq):
New bindings:
ambiq,am1805ambiq,apollo4-pinctrlambiq,counterambiq,i2cambiq,mspiambiq,pwrctrlambiq,spiambiq,stimerambiq,uartambiq,watchdogAMS AG (ams):
New bindings:
ams,tsl2540Andes Technology Corporation (andestech):
New bindings:
andestech,atcwdt200andestech,plic-swandestech,qspi-norARM Ltd. (arm):
New bindings:
arm,cortex-a76arm,gic-v1arm,gic-v2arm,gic-v3arm,psci-1.1ASPEED Technology Inc. (aspeed):
Modified bindings:
:dtcompatible:aspeed,ast10x0-reset:
* specifier cells for space "reset" are now named: ['id'] (old value: None)
* specifier cells for space "clock" are now named: None (old value: ['reset_id'])
Atmel Corporation (atmel):
New bindings:
atmel,sam-hsmciModified bindings:
:dtcompatible:atmel,sam-mdio:
* removed property: ``protocol``
* property ``#address-cells`` const value changed from None to 1
* property ``#size-cells`` const value changed from None to 0
* property ``#address-cells`` is now required
* property ``#size-cells`` is now required
Bosch Sensortec GmbH (bosch):
New bindings:
bosch,bmi08x-accelbosch,bmi08x-accelbosch,bmi08x-gyrobosch,bmi08x-gyroModified bindings:
:dtcompatible:bosch,bmm150:
* new property: ``drdy-gpios``
:dtcompatible:bosch,bmi270:
* new property: ``irq-gpios``
Broadcom Corporation (brcm):
New bindings:
brcm,bcm2711-aux-uartCadence Design Systems Inc. (cdns):
New bindings:
cdns,tensilica-xtensa-lx3DFRobot (dfrobot):
New bindings:
dfrobot,a01nyubEfinix Inc (efinix):
New bindings:
efinix,sapphire-gpioefinix,sapphire-timer0efinix,sapphire-uart0EPCOS AG (epcos):
Modified bindings:
:dtcompatible:epcos,b57861s0103a039:
* removed property: ``r25-ohm``
Espressif Systems (espressif):
Modified bindings:
:dtcompatible:espressif,esp-at (on uart bus):
* new property: ``external-reset``
:dtcompatible:espressif,esp32-mdio:
* removed property: ``protocol``
* property ``#address-cells`` const value changed from None to 1
* property ``#size-cells`` const value changed from None to 0
* property ``#address-cells`` is now required
* property ``#size-cells`` is now required
:dtcompatible:espressif,riscv:
* new property: ``mmu-type``
* new property: ``riscv,isa``
:dtcompatible:espressif,esp32-spi:
* new property: ``line-idle-low``
Feature Integration Technology Inc. (fintek):
New bindings:
fintek,f75303FocalTech Systems Co.,Ltd (focaltech):
Modified bindings:
:dtcompatible:focaltech,ft5336 (on i2c bus):
* new property: ``reset-gpios``
Fujitsu Ltd. (fujitsu):
New bindings:
fujitsu,mb85rcxxShenzhen Huiding Technology Co., Ltd. (goodix):
Modified bindings:
:dtcompatible:goodix,gt911 (on i2c bus):
* bus list changed from ['kscan'] to []
* new property: ``alt-addr``
Himax Technologies, Inc. (himax):
New bindings:
himax,hx8394Infineon Technologies (infineon):
New bindings:
infineon,cat1-counterinfineon,cat1-spiinfineon,xmc4xxx-ccu4-pwminfineon,xmc4xxx-ccu8-pwminfineon,xmc4xxx-i2cIntel Corporation (intel):
New bindings:
intel,agilex5-clockintel,alder-lakeintel,apollo-lakeintel,blinky-pwmintel,elkhart-lakeintel,emmc-hostintel,ishintel,loapicintel,sedi-gpiointel,sedi-i2cintel,sedi-ipmintel,sedi-uartintel,socfpga-agilex-sip-smcintel,socfpga-resetintel,timeaware-gpioRemoved bindings:
intel,agilex-socfpga-sip-smcintel,apollo_lakeintel,elkhart_lakeintel,gnaModified bindings:
:dtcompatible:intel,niosv:
* new property: ``mmu-type``
* new property: ``riscv,isa``
:dtcompatible:intel,adsp-imr:
* new property: ``zephyr,memory-attr``
* property ``zephyr,memory-region-mpu`` enum value changed from ['RAM', 'RAM_NOCACHE', 'FLASH', 'PPB', 'IO', 'EXTMEM'] to None
* property ``zephyr,memory-region-mpu`` deprecation status changed from False to True
:dtcompatible:intel,lpss:
* new property: ``dma-parent``
:dtcompatible:intel,adsp-shim-clkctl:
* new property: ``adsp-clkctl-clk-ipll``
Isentek Inc. (isentek):
New bindings:
isentek,ist8310Integrated Silicon Solutions Inc. (issi):
New bindings:
issi,is31fl3216aissi,is31fl3733ITE Tech. Inc. (ite):
New bindings:
ite,it8xxx2-shaModified bindings:
:dtcompatible:ite,it8xxx2-pinctrl-func:
* new property: ``func3-ext``
* new property: ``func3-ext-mask``
:dtcompatible:ite,riscv-ite:
* new property: ``mmu-type``
* new property: ``riscv,isa``
:dtcompatible:ite,enhance-i2c:
* new property: ``target-enable``
* new property: ``target-pio-mode``
Linaro Limited (linaro):
New bindings:
linaro,ivshmem-ipmMaxim Integrated Products (maxim):
New bindings:
maxim,max11102maxim,max11103maxim,max11105maxim,max11106maxim,max11110maxim,max11111maxim,max11115maxim,max11116maxim,max11117maxim,max11253maxim,max11254maxim,max31790Microchip Technology Inc. (microchip):
New bindings:
microchip,mcp251xfdmicrochip,mpfs-i2cmicrochip,tcn75aModified bindings:
:dtcompatible:microchip,xec-pwmbbled:
* new property: ``enable-low-power-32k``
:dtcompatible:microchip,cap1203 (on i2c bus):
* bus list changed from ['kscan'] to []
* new property: ``input-codes``
:dtcompatible:microchip,xec-ps2:
* new property: ``wakerx-gpios``
Motorola, Inc. (motorola):
Modified bindings:
:dtcompatible:motorola,mc146818:
* new property: ``clock-frequency``
Murata Manufacturing Co., Ltd. (murata):
New bindings:
murata,ncp15wb473Nordic Semiconductor (nordic):
New bindings:
nordic,npm1300-lednordic,npm1300-wdtRemoved bindings:
nordic,nrf-cc310nordic,nrf-cc312Modified bindings:
:dtcompatible:nordic,nrf-ccm:
* new property: ``headermask-supported``
:dtcompatible:nordic,nrf-twi:
* new property: ``easydma-maxcnt-bits``
:dtcompatible:nordic,nrf-twim and :dtcompatible:nordic,nrf-twis:
* new property: ``easydma-maxcnt-bits``
* new property: ``memory-regions``
* new property: ``memory-region-names``
:dtcompatible:nordic,nrf-spi, :dtcompatible:nordic,nrf-spis, and
:dtcompatible:nordic,nrf-spim:
* new property: ``wake-gpios``
:dtcompatible:nordic,npm1300-charger:
* new property: ``thermistor-cold-millidegrees``
* new property: ``thermistor-cool-millidegrees``
* new property: ``thermistor-warm-millidegrees``
* new property: ``thermistor-hot-millidegrees``
* new property: ``trickle-microvolt``
* new property: ``term-current-percent``
* new property: ``vbatlow-charge-enable``
* new property: ``disable-recharge``
:dtcompatible:nordic,nrf-uicr:
* new property: ``nfct-pins-as-gpios``
* new property: ``gpio-as-nreset``
:dtcompatible:nordic,npm1300 (on i2c bus):
* new property: ``host-int-gpios``
* new property: ``pmic-int-pin``
Nuclei System Technology (nuclei):
Modified bindings:
:dtcompatible:nuclei,bumblebee:
* new property: ``mmu-type``
* new property: ``riscv,isa``
Nuvoton Technology Corporation (nuvoton):
New bindings:
nuvoton,nct38xxnuvoton,nct38xx-gpionuvoton,npcx-fiu-nornuvoton,npcx-fiu-qspinuvoton,numaker-fmcnuvoton,numaker-gpionuvoton,numaker-pccnuvoton,numaker-pinctrlnuvoton,numaker-pwmnuvoton,numaker-rstnuvoton,numaker-sccnuvoton,numaker-spinuvoton,numaker-uartRemoved bindings:
nuvoton,nct38xx-gpionuvoton,npcx-spi-fiuModified bindings:
:dtcompatible:nuvoton,npcx-sha:
* new property: ``context-buffer-size``
:dtcompatible:nuvoton,npcx-adc:
* new property: ``vref-mv``
* removed property: ``threshold-reg-offset``
:dtcompatible:nuvoton,adc-cmp:
* new property: ``thr-sel``
:dtcompatible:nuvoton,npcx-pcc:
* new property: ``pwdwn-ctl-val``
* property ``clock-frequency`` enum value changed from [100000000, 96000000, 90000000, 80000000, 66000000, 50000000, 48000000, 40000000, 33000000] to [120000000, 100000000, 96000000, 90000000, 80000000, 66000000, 50000000, 48000000]
* property ``ram-pd-depth`` enum value changed from [12, 15] to [8, 12, 15]
NXP Semiconductors (nxp):
New bindings:
nxp,ctimer-pwmnxp,fs26-wdognxp,imx-flexspi-w956a8mbyanxp,irqsteer-intcnxp,lpdacnxp,mbox-imx-munxp,mcux-dcpnxp,mcux-edma-v3nxp,pcf8563nxp,pxpnxp,s32-adc-sarnxp,s32-clocknxp,s32-emiosnxp,s32-emios-pwmnxp,s32-gmacnxp,s32-qspinxp,s32-qspi-devicenxp,s32-qspi-nornxp,s32k3-pinctrlnxp,smartdmanxp,tempmonnxp,vrefModified bindings:
:dtcompatible:nxp,s32-netc-emdio:
* removed property: ``protocol``
* property ``#address-cells`` const value changed from None to 1
* property ``#size-cells`` const value changed from None to 0
* property ``#address-cells`` is now required
* property ``#size-cells`` is now required
:dtcompatible:nxp,mipi-dsi-2l:
* property ``nxp,lcdif`` is no longer required
:dtcompatible:nxp,imx-mipi-dsi:
* property ``nxp,lcdif`` is no longer required
:dtcompatible:nxp,pca9633 (on i2c bus):
* new property: ``disable-allcall``
:dtcompatible:nxp,s32-sys-timer:
* removed property: ``clock-frequency``
* property ``clocks`` is now required
:dtcompatible:nxp,imx-lpspi:
* new property: ``data-pin-config``
:dtcompatible:nxp,s32-spi:
* property ``clock-frequency`` is no longer required
* property ``clocks`` is now required
:dtcompatible:nxp,imx-wdog:
* pinctrl support
:dtcompatible:nxp,s32-swt:
* removed property: ``clock-frequency``
* property ``clocks`` is now required
:dtcompatible:nxp,lpc-lpadc:
* new property: ``nxp,reference-supply``
:dtcompatible:nxp,kinetis-pit:
* new property: ``max-load-value``
* property ``clocks`` is now required
:dtcompatible:nxp,mcux-edma:
* new property: ``dmamux-reg-offset``
* new property: ``channel-gap``
* new property: ``irq-shared-offset``
:dtcompatible:nxp,imx-elcdif:
* new property: ``nxp,pxp``
ON Semiconductor Corp. (onnn):
New bindings:
onnn,ncp5623Princeton Technology Corp. (ptc):
New bindings:
ptc,pt6314Quectel Wireless Solutions Co., Ltd. (quectel):
New bindings:
quectel,bg95QuickLogic Corp. (quicklogic):
New bindings:
quicklogic,eos-s3-pinctrlModified bindings:
:dtcompatible:quicklogic,usbserialport-s3b:
Raspberry Pi Foundation (raspberrypi):
New bindings:
raspberrypi,pico-headerraspberrypi,pico-i2craspberrypi,pico-spi-pioraspberrypi,pico-timerRaydium Semiconductor Corp. (raydium):
New bindings:
raydium,rm67162Renesas Electronics Corporation (renesas):
New bindings:
renesas,smartbond-lp-oscrenesas,smartbond-timerModified bindings:
:dtcompatible:renesas,smartbond-flash-controller:
* new property: ``read-cs-idle-delay``
* new property: ``erase-cs-idle-delay``
Smart Battery System (sbs):
New bindings:
sbs,default-sbs-gaugesbs,sbs-chargerSeeed Technology Co., Ltd (seeed):
New bindings:
seeed,hm330xSiFive, Inc. (sifive):
Modified bindings:
:dtcompatible:sifive,i2c0:
* pinctrl support
Silicon Laboratories (silabs):
New bindings:
silabs,gecko-adcSino Wealth Electronic Ltd (sinowealth):
New bindings:
sinowealth,sh1106sinowealth,sh1106Sitronix Technology Corporation (sitronix):
Modified bindings:
:dtcompatible:sitronix,st7735r (on spi bus):
* property ``reset-gpios`` is no longer required
Standard Microsystems Corporation (smsc):
Modified bindings:
:dtcompatible:smsc,lan91c111-mdio:
* removed property: ``protocol``
* property ``#address-cells`` const value changed from None to 1
* property ``#size-cells`` const value changed from None to 0
* property ``#address-cells`` is now required
* property ``#size-cells`` is now required
:dtcompatible:smsc,lan91c111:
* new property: ``local-mac-address``
* new property: ``zephyr,random-mac-address``
* property ``reg`` is no longer required
Synopsys, Inc. (snps):
New bindings:
snps,dw-timersSolomon Systech Limited (solomon):
Modified bindings:
:dtcompatible:solomon,ssd1306fb
* new property: ``inversion-on``
* new property: ``ready-time-ms``
Sequans Communications (sqn):
New bindings:
sqn,hwspinlockSTMicroelectronics (st):
New bindings:
st,stm32-bxcanst,stm32-spi-host-cmdst,stm32f1-rccst,stm32f3-rccst,stm32wba-flash-controllerst,stm32wba-hse-clockst,stm32wba-pll-clockst,stm32wba-rccst,stmpe811Removed bindings:
st,stm32-canModified bindings:
:dtcompatible:st,stm32-pwm:
* new property: ``four-channel-capture-support``
:dtcompatible:st,stm32f4-adc:
* new property: ``st,adc-clock-source``
* new property: ``st,adc-prescaler``
* new property: ``st,adc-sequencer``
* removed property: ``temp-channel``
* removed property: ``vref-channel``
* removed property: ``vbat-channel``
:dtcompatible:st,stm32-adc:
* new property: ``st,adc-clock-source``
* new property: ``st,adc-prescaler``
* new property: ``st,adc-sequencer``
* removed property: ``temp-channel``
* removed property: ``vref-channel``
* removed property: ``vbat-channel``
:dtcompatible:st,stm32f1-adc:
* new property: ``st,adc-sequencer``
* removed property: ``temp-channel``
* removed property: ``vref-channel``
* removed property: ``vbat-channel``
:dtcompatible:st,stm32-ospi:
* new property: ``io-low-port``
* new property: ``io-high-port``
:dtcompatible:st,stm32c0-hsi-clock:
* removed property: ``clocks``
:dtcompatible:st,stm32-hse-clock:
* removed property: ``clocks``
:dtcompatible:st,stm32wl-hse-clock:
* removed property: ``clocks``
:dtcompatible:st,stm32g0-hsi-clock:
* removed property: ``clocks``
:dtcompatible:st,stm32h7-hsi-clock:
* removed property: ``clocks``
:dtcompatible:st,stm32-lse-clock:
* removed property: ``clocks``
:dtcompatible:st,stm32u5-pll-clock:
* new property: ``fracn``
Telink Semiconductor (telink):
Modified bindings:
:dtcompatible:telink,b91-pwm:
* pinctrl support
:dtcompatible:telink,b91:
* new property: ``mmu-type``
* new property: ``riscv,isa``
:dtcompatible:telink,b91-i2c:
* pinctrl support
:dtcompatible:telink,b91-spi:
* pinctrl support
:dtcompatible:telink,b91-uart:
* pinctrl support
Texas Instruments (ti):
New bindings:
ti,ads1112ti,bq27z746ti,cc13xx-cc26xx-rtc-timerti,cc13xx-cc26xx-timerti,cc13xx-cc26xx-timer-pwmti,cc32xx-pinctrlti,davinci-gpioti,davinci-gpio-nexusti,lp5009ti,lp5012ti,lp5018ti,lp5024ti,lp5030ti,lp5036ti,lp5569ti,tas6422dacti,tcan4x5xti,tla2021ti,tmag5170ti,vimRemoved bindings:
ti,cc13xx-cc26xx-rtcti,lp503xModified bindings:
:dtcompatible:ti,cc32xx-i2c:
* pinctrl support
:dtcompatible:ti,ina230 (on i2c bus):
* new property: ``alert-config``
* new property: ``adc-mode``
* new property: ``vbus-conversion-time-us``
* new property: ``vshunt-conversion-time-us``
* new property: ``avg-count``
* new property: ``rshunt-micro-ohms``
* removed property: ``rshunt-milliohms``
* property ``config`` default value changed from None to 0
* property ``config`` deprecation status changed from False to True
* property ``config`` is no longer required
:dtcompatible:ti,ina237 (on i2c bus):
* new property: ``adc-mode``
* new property: ``vbus-conversion-time-us``
* new property: ``vshunt-conversion-time-us``
* new property: ``temp-conversion-time-us``
* new property: ``avg-count``
* new property: ``high-precision``
* new property: ``rshunt-micro-ohms``
* removed property: ``rshunt-milliohms``
* property ``adc-config`` default value changed from None to 0
* property ``config`` default value changed from None to 0
* property ``adc-config`` deprecation status changed from False to True
* property ``config`` deprecation status changed from False to True
* property ``adc-config`` is no longer required
* property ``config`` is no longer required
:dtcompatible:ti,cc32xx-uart:
* pinctrl support
A stand-in for a real vendor which can be used in examples and tests (vnd):
New bindings:
vnd,memory-attrvnd,reg-holder-64vnd,reserved-compatModified bindings:
:dtcompatible:vnd,serial:
* property ``reg`` is no longer required
X-Powers (x-powers):
New bindings:
x-powers,axp192x-powers,axp192-gpiox-powers,axp192-regulatorXen Hypervisor (xen):
New bindings:
xen,xenRemoved bindings:
xen,xen-4.15Xilinx (xlnx):
New bindings:
xlnx,zynqmp-ipi-mailboxShenzhen Xptek Technology Co., Ltd (xptek):
Modified bindings:
:dtcompatible:xptek,xpt2046 (on spi bus):
* bus list changed from ['kscan'] to []
Zephyr-specific binding (zephyr):
New bindings:
zephyr,fake-rtczephyr,i2c-dump-allowlistzephyr,lvgl-button-inputzephyr,lvgl-encoder-inputzephyr,lvgl-pointer-inputzephyr,mdio-gpiozephyr,native-tty-uartzephyr,ram-diskzephyr,sensingzephyr,sensing-phy-3d-sensorRemoved bindings:
zephyr,gpio-keysModified bindings:
:dtcompatible:zephyr,mmc-disk (on sd bus):
* new property: ``bus-width``
:dtcompatible:zephyr,bt-hci-spi (on spi bus):
* new property: ``controller-data-delay-us``
:dtcompatible:zephyr,sdhc-spi-slot (on spi bus):
* new property: ``pwr-gpios``
:dtcompatible:zephyr,memory-region:
* new property: ``zephyr,memory-attr``
* property ``zephyr,memory-region-mpu`` enum value changed from ['RAM', 'RAM_NOCACHE', 'FLASH', 'PPB', 'IO', 'EXTMEM'] to None
* property ``zephyr,memory-region-mpu`` deprecation status changed from False to True
* property ``reg`` is now required
Libraries / Subsystems
Management
Introduced MCUmgr client support with handlers for img_mgmt and os_mgmt.
Added response checking to MCUmgr's :c:enumerator:MGMT_EVT_OP_CMD_RECV
notification callback to allow applications to reject MCUmgr commands.
MCUmgr SMP version 2 error translation (to legacy MCUmgr error code) is now
supported in function handlers by setting mg_translate_error of
:c:struct:mgmt_group when registering a group. See
:c:type:smp_translate_error_fn for function details.
Fixed an issue with MCUmgr img_mgmt group whereby the size of the upload in the initial packet was not checked.
Fixed an issue with MCUmgr fs_mgmt group whereby some status codes were not checked properly, this meant that the error returned might not be the correct error, but would only occur in situations where an error was already present.
Fixed an issue whereby the SMP response function did not check to see if the initial zcbor map was created successfully.
Fixes an issue with MCUmgr shell_mgmt group whereby the length of a received command was not properly checked.
Added optional mutex locking support to MCUmgr img_mgmt group, which can
be enabled with :kconfig:option:CONFIG_MCUMGR_GRP_IMG_MUTEX.
Added MCUmgr settings management group, which allows for manipulation of
zephyr settings from a remote device, see :ref:mcumgr_smp_group_3 for
details.
Added :kconfig:option:CONFIG_MCUMGR_GRP_IMG_ALLOW_CONFIRM_NON_ACTIVE_IMAGE_SECONDARY
and :kconfig:option:CONFIG_MCUMGR_GRP_IMG_ALLOW_CONFIRM_NON_ACTIVE_IMAGE_ANY
that allow to control whether MCUmgr client will be allowed to confirm
non-active images.
Added :kconfig:option:CONFIG_MCUMGR_GRP_IMG_ALLOW_ERASE_PENDING that allows
to erase slots pending for next boot, that are not revert slots.
Added user_data as an optional field to :c:struct:mgmt_handler when
:kconfig:option:CONFIG_MCUMGR_MGMT_HANDLER_USER_DATA is enabled.
Added optional force parameter to os mgmt reset command, this can be checked in the
:c:enumerator:MGMT_EVT_OP_OS_MGMT_RESET notification callback whose data structure is
:c:struct:os_mgmt_reset_data.
Added configurable number of SMP encoding levels via
:kconfig:option:CONFIG_MCUMGR_SMP_CBOR_MIN_ENCODING_LEVELS, which automatically increments
minimum encoding levels for in-tree groups if :kconfig:option:CONFIG_ZCBOR_CANONICAL is
enabled.
Added STM32 SPI backend for EC Host command protocol.
Fixed settings_mgmt returning unknown error instead of invalid key specified error.
Fixed fs_mgmt returning parameter too large error instead of file is empty error when attempting to hash/checksum a file which is empty.
File systems
Random
CONFIG_XOROSHIRO_RANDOM_GENERATOR, deprecated a long time ago, is finally removed.Retention
Added the :ref:blinfo_api subsystem.
Added support for allowing mutex support to be forcibly disabled with
:kconfig:option:CONFIG_RETENTION_MUTEX_FORCE_DISABLE.
Binary descriptors
binary_descriptors (bindesc) subsystem.POSIX API
pthread_createstat so that it returns file stats instead of filesystem statspthread_barrierattr_destroy, :c:func:pthread_barrierattr_getpshared,
:c:func:pthread_barrierattr_init, :c:func:pthread_barrierattr_setpshared,
:c:func:pthread_condattr_destroy, :c:func:pthread_condattr_init,
:c:func:pthread_mutexattr_destroy, :c:func:pthread_mutexattr_init, :c:func:uname,
:c:func:sigaddset, :c:func:sigdelset, :c:func:sigemptyset, :c:func:sigfillset,
:c:func:sigismember, :c:func:strsignal, :c:func:pthread_spin_destroy,
:c:func:pthread_spin_init, :c:func:pthread_spin_lock, :c:func:pthread_spin_trylock,
:c:func:pthread_spin_unlock, :c:func:timer_getoverrun, :c:func:pthread_condattr_getclock,
:c:func:pthread_condattr_setclock, :c:func:clock_nanosleepFIONREAD request to :c:func:ioctlCONFIG_FDTABLE to conditionally compile file descriptor tablepoll issue with event file descriptorsLoRa/LoRaWAN
loramac-node from v4.6.0 to v4.7.0CAN ISO-TP
RTIO
RTIO_SQE_NO_RESPONSE flag for submissions when no completion notification
is neededZBus
ZBUS_CHAN_ADD_OBS macro for adding post-definition static observers of a
channel. That can replace the runtime observer feature, enabling developers to add static
observers after the channel definition in different files. It increases the composability of
the system using ZBus, making post-definition channel observation rely on the stack instead of
the heap.documentation <zbus delivery sequence>.user_data pointer to keep context between the function calls.ZBUS_LISTENER_DEFINE_WITH_ENABLE and
:c:macro:ZBUS_SUBSCRIBER_DEFINE_WITH_ENABLE that allows developers to define observers'
statuses (enabled/disabled) programmatically. With the API, developers can create observers
initially disabled and enable them in runtime.Power management
CONFIG_PM_NEED_ALL_DEVICES_IDLE. When this
option is set the power management will keep the system active
if there is any device busy.pm_device_runtime_get can be called from ISR now.status = "disabled";pm_device_driver_init, for
initializing devices into a specific power state.Modem modules
modem subsystem.HALs
Nordic
Nuvoton
MCUboot
Added :kconfig:option:CONFIG_MCUBOOT_BOOTLOADER_NO_DOWNGRADE
that allows to inform application that the on-board MCUboot has been configured
with downgrade prevention enabled. This option is automatically selected for
DirectXIP mode and is available for both swap modes.
Added :kconfig:option:CONFIG_MCUBOOT_BOOTLOADER_MODE_OVERWRITE_ONLY
that allows to inform application that the on-board MCUboot will overwrite
the primary slot with secondary slot contents, without saving the original
image in primary slot.
Fixed issue with serial recovery not showing image details for decrypted images.
Fixed issue with serial recovery in single slot mode wrongly iterating over 2 image slots.
Fixed an issue with boot_serial repeats not being processed when output was sent, this would lead to a divergence of commands whereby later commands being sent would have the previous command output sent instead.
Fixed an issue with the boot_serial zcbor setup encoder function wrongly including the buffer address in the size which caused serial recovery to fail on some platforms.
Fixed wrongly building in optimize for debug mode by default, this saves a significant amount of flash space.
Fixed issue with serial recovery use of MBEDTLS having undefined operations which led to usage faults when the secondary slot image was encrypted.
Fixed issue with bootutil asserting on maximum alignment in non-swap modes.
Added error output when flash device fails to open and asserts are disabled, which will now panic the bootloader.
Added currently running slot ID and maximum application size to shared data function definition.
Added P384 and SHA384 support to imgtool.
Added optional serial recovery image state and image set state commands.
Added dumpinfo command for signed image parsing in imgtool.
Added getpubhash command to dump the sha256 hash of the public key in imgtool.
Added support for getpub to print the output to a file in imgtool.
Added support for dumping the raw versions of the public keys in imgtool.
Added support for sharing boot information with application via retention subsystem.
Added support for serial recovery to read and handle encrypted seondary slot partitions.
Removed ECDSA P224 support.
Removed custom image list boot serial extension support.
Reworked boot serial extensions so that they can be used by modules or from user repositories by switching to iterable sections.
Reworked image encryption support for Zephyr, static dummy key files are no longer in the code, a pem file must be supplied to extract the private and public keys. The Kconfig menu has changed to only show a single option for enabling encryption and selecting the key file.
Reworked the ECDSA256 TLV curve agnostic and renamed it to ECDSA_SIG.
CDDL auto-generated function code has been replaced with zcbor function calls, this now allows the parameters to be supplied in any order.
The MCUboot version in this release is version 2.0.0+0-rc1.
Nanopb
Changed project status to maintained.
Added a separate nanopb.cmake file to be included by applications.
Added helper cmake function zephyr_nanopb_sources to simplify .proto file inclusion.
LVGL
Changed project status to maintained.
Library has been updated to release v8.3.7.
Added zephyr,lvgl-{pointer,button,encoder}-input pseudo device bindings.
:kconfig:option:CONFIG_LV_Z_KSCAN_POINTER is still supported but touch controllers
need a :dtcompatible:zephyr,kscan-input child node to emit input events.
LVGL shell allows for monkey testing (requires :kconfig:option:CONFIG_LV_USE_MONKEY)
and inspecting memory usage.
Trusted Firmware-A
Documentation
Tests and Samples
Created common sample for file systems (fs_sample). It originates from sample for FAT
(fat_fs) and supports both FAT and ext2 file systems.
Created the zbus confirmed channel sample to demonstrate how to implement a delivery-guaranteed channel using subscribers.
Created the zbus message subscriber sample to demonstrate how to use message subscribers.