1:orphan: 2 3.. _zephyr_3.5: 4 5Zephyr 3.5.0 6############ 7 8We are pleased to announce the release of Zephyr version 3.5.0. 9 10Major enhancements with this release include: 11 12* Added support for linkable loadable extensions (llext) 13* Added native_sim simulator target (successor to native_posix) 14* Added new battery charger driver API 15* Added new hardware spinlock driver API 16* Added new modem subsystem 17* Added support for 45+ new boards 18* Networking: improvements to CoAP, Connection Manager, DHCP, Ethernet, gPTP, ICMP, 19 IPv6 and LwM2M 20* Bluetooth: improvements to the Controller, Audio, Mesh, as well as the host stack in 21 general 22* Improved LVGL graphics library integration 23* Integrated support with the CodeChecker static analyzer 24* Picolibc is now the default C standard library 25 26An overview of the changes required or recommended when migrating your application from Zephyr 27v3.4.0 to Zephyr v3.5.0 can be found in the separate :ref:`migration guide<migration_3.5>`. 28 29The following sections provide detailed lists of changes by component. 30 31Security Vulnerability Related 32****************************** 33The following CVEs are addressed by this release: 34 35More detailed information can be found in: 36https://docs.zephyrproject.org/latest/security/vulnerabilities.html 37 38* CVE-2023-3725 `Zephyr project bug tracker GHSA-2g3m-p6c7-8rr3 39 <https://github.com/zephyrproject-rtos/zephyr/security/advisories/GHSA-2g3m-p6c7-8rr3>`_ 40 41* CVE-2023-4257 `Zephyr project bug tracker GHSA-853q-q69w-gf5j 42 <https://github.com/zephyrproject-rtos/zephyr/security/advisories/GHSA-853q-q69w-gf5j>`_ 43 44* CVE-2023-4258 `Zephyr project bug tracker GHSA-m34c-cp63-rwh7 45 <https://github.com/zephyrproject-rtos/zephyr/security/advisories/GHSA-m34c-cp63-rwh7>`_ 46 47* CVE-2023-4259 `Zephyr project bug tracker GHSA-gghm-c696-f4j4 48 <https://github.com/zephyrproject-rtos/zephyr/security/advisories/GHSA-gghm-c696-f4j4>`_ 49 50* CVE-2023-4260 `Zephyr project bug tracker GHSA-gj27-862r-55wh 51 <https://github.com/zephyrproject-rtos/zephyr/security/advisories/GHSA-gj27-862r-55wh>`_ 52 53* CVE-2023-4263 `Zephyr project bug tracker GHSA-rf6q-rhhp-pqhf 54 <https://github.com/zephyrproject-rtos/zephyr/security/advisories/GHSA-rf6q-rhhp-pqhf>`_ 55 56* CVE-2023-4264 `Zephyr project bug tracker GHSA-rgx6-3w4j-gf5j 57 <https://github.com/zephyrproject-rtos/zephyr/security/advisories/GHSA-rgx6-3w4j-gf5j>`_ 58 59* CVE-2023-4424: Under embargo until 2023-11-01 60 61* CVE-2023-5055: Under embargo until 2023-11-01 62 63* CVE-2023-5139: Under embargo until 2023-10-25 64 65* CVE-2023-5184 `Zephyr project bug tracker GHSA-8x3p-q3r5-xh9g 66 <https://github.com/zephyrproject-rtos/zephyr/security/advisories/GHSA-8x3p-q3r5-xh9g>`_ 67 68* CVE-2023-5563 `Zephyr project bug tracker GHSA-98mc-rj7w-7rpv 69 <https://github.com/zephyrproject-rtos/zephyr/security/advisories/GHSA-98mc-rj7w-7rpv>`_ 70 71* CVE-2023-5753 `Zephyr project bug tracker GHSA-hmpr-px56-rvww 72 <https://github.com/zephyrproject-rtos/zephyr/security/advisories/GHSA-hmpr-px56-rvww>`_ 73 74Kernel 75****** 76 77* Added support for dynamic thread stack allocation via :c:func:`k_thread_stack_alloc` 78* Added support for :c:func:`k_spin_trylock` 79* Added :c:func:`k_object_is_valid` to check if a kernel object is valid. This replaces 80 code that has been duplicated throughout the tree. 81 82Architectures 83************* 84 85* ARC 86 87 * Introduced the scalar port for ARC VPX processors 88 * Introduced support for ARCv3 HS (both 32 and 64 bit) SMP platforms with up to 12 CPU cores 89 * Reworked GNU helper tools usage for ARC MWDT toolchain. Now helper tools can be used from 90 Zephyr SDK (if SDK is installed) 91 * Fixed dynamic thread stack allocation 92 * Fixed STR assembly macro offset calculation issue which may cause build error for ARCv3 64bit 93 * Cleaned-up and made more user friendly handling of the ARC MWDT toolchain path 94 (ARCMWDT_TOOLCHAIN_PATH) 95 96* ARM 97 98 * Architectural support for Arm Cortex-M has been separated from Arm 99 Cortex-A and Cortex-R. This includes separate source modules to handle 100 tasks like IRQ management, exception handling, thread handling and swap. 101 For implementation details see :github:`60031`. 102 103* ARM64 104 105* RISC-V 106 107 * Added support for detecting null pointer exception using PMP. 108 * Added the :kconfig:option:`CONFIG_RISCV_RESERVED_IRQ_ISR_TABLES_OFFSET` 109 option to allow IRQ vector at a specified offset to meet the requirements 110 set by the Core-Local Interrupt Controller RISC-V specification. 111 * Added the :kconfig:option:`CONFIG_RISCV_SOC_HAS_CUSTOM_SYS_IO` option to 112 allow the use of custom system input/output functions. 113 * Introduced the :kconfig:option:`CONFIG_RISCV_TRAP_HANDLER_ALIGNMENT` option 114 to set the correct alignment of the trap handling code which is dependent on 115 the ``MTVEC.BASE`` field size and is platform or application-specific. 116 117* Xtensa 118 119 * Added basic MMU v2 Support. 120 121* x86 122 123 * Added support for Intel Alder Lake boards 124 * Added support for Intel Sensor Hub (ISH) 125 126* POSIX 127 128 * Has been reworked to use the native simulator. 129 * New boards have been added. 130 * For the new boards, embedded C libraries can be used, and conflicts with the host symbols 131 and libraries avoided. 132 * The :ref:`POSIX OS abstraction<posix_support>` is supported in these new boards. 133 * AMP targets are now supported. 134 * Added support for LLVM source profiling/coverage. 135 136Bluetooth 137********* 138 139* Audio 140 141 Improved memory usage of codec configurations and codec capabilities. Fixed several bugs in BAP 142 and the BAP-related services (ASCS, PACS, BASS), as well as missing features such as proper 143 notification handling. 144 145 * Added BAP ``bt_bap_stream_get_tx_sync`` 146 * Added CAP stream send and tx sync 147 * Added ``bt_audio_codec_cap_get`` helper functions 148 * Added support for long read/write in CAP 149 * Fixed ASCS Source ASE link loss state transition 150 * Fixed ASCS possible ASE leak 151 * Fixed ASCS to drop ISO PDUs if ASE is not in streaming state 152 * Fixed BAP ``bt_bap_scan_delegator_find_state`` implementation 153 * Fixed BAP issue with PA sync and ID in ``broadcast_sink_create`` 154 * Fixed TMAS characteristic permissions 155 * Fixed ``tbs_client`` missing discovery complete event 156 * Fixed audio stack to accept empty CCID list in audio metadata 157 * Fixed bad size of metadata_backup in ASCS 158 * Fixed possible ASCS ASE stuck in releasing state 159 * Refactored ``bt_audio_codec_cap`` to flat arrays 160 * Refactored ``bt_audio_codec_cfg`` to flat arrays 161 * Removed ``CONFIG_BT_PACS_{SNK,SRC}_CONTEXT`` 162 * Removed scanning and PA sync from broadcast sink 163 * Renamed ``bt_codec`` to ``bt_audio_codec_{cap, conf, data}`` 164 * Renamed codec qos framing 165 * Replaced ``BT_AUDIO_CODEC_LC3_ID`` -> ``BT_HCI_CODING_FORMAT_LC3`` 166 * Replaced ``BT_AUDIO_CODEC_PARSE_ERR_`` values with errno values. 167 * Reworked PACS notify system 168 * Updated ASCS ISO QOS based on BAP QOS 169 * Updated BAP to filter PA data duplicates by default 170 * Updated CSIP to unlock Non-bonded devices immediately. 171 * Updated PACS to notify bonded clients on reconnect 172 * Updated ``bt_cap_stream_ops_register`` to always register BAP callbacks 173 * Updated the ASCS ACL disconnect behavior 174 * Updated to split ``bt_audio_codec_meta_get`` to ``cfg`` and ``cap`` 175 176* Direction Finding 177 178* Host 179 180 * Added SMP bondable flag overlay per connection 181 * Added USE_NRPA advertising option 182 * Added ``BT_CONN_PARAM_ANY`` to allow setting any value to connection parameters 183 * Added advanced broadcast ISO parameters 184 * Added advanced unicast ISO parameters 185 * Added new API to manage Bluetooth settings storage 186 * Fixed HCI ISO Data packets fragmentation 187 * Fixed HCI ISO SDU length sent to controller 188 * Fixed OTS ``bt_ots_init`` parameter struct naming 189 * Fixed OTS memory leak while procedure is not finished 190 * Fixed a connection reference leak 191 * Fixed forced pairing request handling 192 * Fixed host to invalidate the Resolvable Private Address when starting legacy advertising 193 * Fixed issue with ``bt_iso_cig_reconfigure`` 194 * Fixed possible buffer overflow in ``bt_conn_le_start_encryption`` 195 * Fixed some SMP issues 196 * Fixed to abort pairing if connection disconnected 197 * Updated L2CAP accept callbacks 198 * Updated LE L2CAP connected callback to be after connection response 199 * Updated PAwR implementation to use RPA as responder address if BT_PRIVACY=y 200 201* Mesh 202 203 * Added TF-M support. 204 * Added support to use both tinycrypt and PSA based crypto 205 * Added full virtual addresses support with the collisions resolution. The 206 :kconfig:option:`CONFIG_BT_MESH_LABEL_NO_RECOVER` Kconfig option is introduced to restore the 207 addresses for the subscription list and model publication. 208 * Added statistic module. 209 * Fixed an issue where a node acting as a LPN was triggering Friend Poll messages when sending a 210 segmented message over the loopback interface. 211 * Fixed an issue where provisioning completes successfully on a node when the identical Public Key 212 is used by a provisioner. 213 * Fixed an issue where the :c:func:`settings_load` function called from a cooperative thread other 214 than the system workqueue caused the GATT Mesh Proxy Service registration to fail. 215 * Fixed an issue where a node could enter IV Update in Progress state if an old SNB with the 216 current IV Index and IV Update flag set to 1 was resent. 217 218 * Mesh Protocol v1.1 changes 219 220 * Added storing Private GATT Proxy state persistently. 221 * Added support for Firmware Distribution Upload OOB Start message in the Firwmware Distribution 222 Server model. The message support can be enabled with the 223 :kconfig:option:`CONFIG_BT_MESH_DFD_SRV_OOB_UPLOAD` Kconfig option. 224 * Added extended provisioning protocol timeout when OOB methods are used in the provisioning. 225 * Added support for Composition Data Pages 2, 129 and 130. 226 * Added documentation for Composition Data Pages 0, 1, 2, 128, 129 and 130. 227 * Added documentation for the Segmentation and Reassembly in the Transport layer. 228 * Added documentation for the SAR Configuration models 229 * Fixed an issue where the Opcode Aggregator Server model did not compile without the Opcode 230 Aggregator Client model. 231 * Fixed an issue where the identity address was used in Private GATT Proxy advertisements 232 instead of Non-Resolvable Private Addresses. 233 * Fixed the Proxy Privacy parameter support. 234 * Fixed an issue where the Composition Data Page 128 was not present on a node that has 235 instantiated the Remote Provisioning Server model. 236 * Fixed an issue where the Large Composition Data Server model did not support Composition Data 237 Pages other then 0. 238 * Fixed an issue where the Remote Provisioning Client model instanted on a node together with 239 the Remote Provisioning Server model could not reprovision itself. 240 * Fixed an issue where the acknowledgment timer in the Segmentation and Reassembly was not 241 restarted when the incoming Segment Acknowledgment message did not contain at least one 242 segment newly marked as acknowledged. 243 * Fixed an issue where the On-Demand Private Proxy Server and Client models had interdependency 244 that did not allow to compile them separately. 245 246* Controller 247 248 Improved support for Broadcast and Connected Isochronous channels in the Controller, enabling 249 LE audio application development. The Controller is experimental, is missing implementations for 250 interleaved packing in Isochronous channels' lower link layer. 251 252 * Added Checks for minimum sizes of Adv PDUs 253 * Added Kconfig Option to ignore Tx HCI ISO Data Packet Seq Num 254 * Added Kconfig for avoiding ISO SDU fragmentation 255 * Added Kconfig to maximize BIG event length and preempt PTO & CTRL subevents 256 * Added ``BT_CTLR_EVENT_OVERHEAD_RESERVE_MAX`` Kconfig 257 * Added memory barrier to ticker transactions 258 * Added missing nRF53x Tx Power Kconfig 259 * Added support for Flush Timeout in Connected ISO 260 * Fixed BIS payload sliding window overrun check 261 * Fixed CIS Central FT calculation 262 * Fixed CIS Central error handling 263 * Fixed CIS asymmetric PHY usage 264 * Fixed CIS encryption when DF support enabled 265 * Fixed ISO-AL for quality tests and time stamps 266 * Fixed PHY value in HCI LE CIS Established Event 267 * Fixed ULL stuck in semaphore under rare conditions 268 * Fixed assertion due to late PER CIS active set 269 * Fixed compiler instruction re-ordering that caused assertions 270 * Fixed connected ISO dynamic tx power 271 * Fixed failing advertising conformance tests 272 * Fixed handling received Auxiliary PDUs when Coded PHY not supported 273 * Fixed leak in scheduled ticker node when rescheduling ticker nodes 274 * Fixed missing host feature reset 275 * Fixed nRF53 SoC back-to-back PDU chaining 276 * Fixed nRF53 SoC back-to-back Tx Rx implementation 277 * Fixed regression in Adv PDU overflow calculation 278 * Fixed regression in observer that caused assertions and scheduling stall 279 * Fixed use of pre-programmed PPI on nRF SoCs 280 * Removed HCI ISO data with invalid status in preparation for FT support 281 * Updated Extended Advertising Report to not be generated when ``AUX_ADV_IND`` not received 282 * Updated to have ``EVENT_OVERHEAD_START_US`` verbose assertion in each state/role LLL 283 * Updated to stop following ``aux_ptr`` if ``DATA_LEN_MAX`` is reached during extended scanning 284 285Boards & SoC Support 286******************** 287 288* Added support for these SoC series: 289 290 * Nuvoton NuMaker M46x series 291 * Added support for STM32F072X8 SoC variants 292 * Added support for STM32L051X6 SoC variants 293 * Added support for STM32L451XX SoC variants 294 * Added support for STM32L4Q5XX SoC variants 295 * Added support for STM32WBA SoC series 296 297* Removed support for these SoC series: 298 299* Made these changes in other SoC series: 300 301 * i.MX RT SOCs no longer enable CONFIG_DEVICE_CONFIGURATION_DATA by default. 302 boards using external SDRAM should set CONFIG_DEVICE_CONFIGURATION_DATA 303 and CONFIG_NXP_IMX_EXTERNAL_SDRAM to enabled. 304 * i.MX RT SOCs no longer support CONFIG_OCRAM_NOCACHE, as this functionality 305 can be achieved using devicetree memory regions 306 * Refactored ESP32 SoC folders. So now these are a proper SoC series. 307 * RP2040: Changed to reset the I2C device on initializing 308 309* Added support for these ARC boards: 310 311 * Added support for nsim_vpx5 - simulation (nSIM) platform with ARCv2 VPX5 core, close to 312 vpx5_integer_full template 313 * Added support for nsim_hs5x_smp_12cores - simulation (nSIM) platform with 12 cores SMP 32-bit 314 ARCv3 HS 315 * Added support for nsim_hs6x_smp_12cores - simulation (nSIM) platform with 12 cores SMP 64-bit 316 ARCv3 HS 317 318* Added support for these ARM boards: 319 320 * Nuvoton NuMaker Platform M467 321 * ST Nucleo U5A5ZJ Q 322 * ST Nucleo WBA52CG 323 324* Added support for these ARM64 boards: 325 326* Added support for these RISC-V boards: 327 328* Added support for these X86 boards: 329 330* Added support for these Xtensa boards: 331 332 * Added ``esp32_devkitc_wroom`` and ``esp32_devkitc_wrover``. 333 334 * Added ``esp32s3_luatos_core``. 335 336 * Added ``m5stack_core2``. 337 338 * Added ``qemu_xtensa_mmu`` utilizing Diamond DC233c SoC to support 339 testing Xtensa MMU. 340 341 * Added ``xiao_esp32s3``. 342 343 * Added ``yd_esp32``. 344 345* Added support for these POSIX boards: 346 347 * :ref:`native_sim(_64) <native_sim>` 348 * nrf5340bsim_nrf5340_cpu(net|app). A simulated nrf5340 SOC, which uses Babblesim for its radio 349 traffic. 350 351* Made these changes for ARC boards: 352 353 * Turned off unsupported stack checking option for hsdk4xd platform 354 * Changed vendor prefix for ARC QEMU platforms from "qemu" to "snps" 355 356* Made these changes for ARM boards: 357 358 * ST morpho connector description was added on ST nucleo boards. 359 360 * rpi_pico: 361 362 * The default adapter when debugging with openocd has been changed to cmsis-dap. 363 364* Made these changes for ARM64 boards: 365 366* Made these changes for RISC-V boards: 367 368* Made these changes for X86 boards: 369 370* Made these changes for Xtensa boards: 371 372 * esp32s3_devkitm: 373 374 * Added USB-CDC support. 375 376 * Added CAN support. 377 378* Made these changes for POSIX boards: 379 380 * nrf52_bsim: 381 382 * Has been reworked to use the native simulator as its runner. 383 * Multiple HW models improvements and fixes. GPIO & GPIOTE peripherals added. 384 385* Removed support for these ARC boards: 386 387* Removed support for these ARM boards: 388 389* Removed support for these ARM64 boards: 390 391* Removed support for these RISC-V boards: 392 393* Removed support for these X86 boards: 394 395* Removed support for these Xtensa boards: 396 397 * Removed ``esp32``. Use ``esp32_devkitc_*`` instead. 398 399* Made these changes in other boards: 400 401* Added support for these following shields: 402 403 * Adafruit PiCowbell CAN Bus Shield for Pico 404 * Arduino UNO click shield 405 * G1120B0MIPI MIPI Display 406 * MikroElektronika MCP2518FD Click shield (CAN-FD) 407 * RK055HDMIPI4M MIPI Display 408 * RK055HDMIPI4MA0 MIPI Display 409 * Semtech SX1276MB1MAS LoRa Shield 410 411Build system and infrastructure 412******************************* 413 414* SCA (Static Code Analysis) 415 416 * Added support for CodeChecker 417 418* Twister now supports ``required_snippets`` in testsuite .yml files, this can 419 be used to include a snippet when a test is ran (and exclude any boards from 420 running that the snippet cannot be applied to). 421 422* Interrupts 423 424 * Added support for shared interrupts 425 426* Added support for setting MCUboot encryption key in sysbuild which is then 427 propagated to the bootloader and target images to automatically create 428 encrypted updates. 429 430* Build time priority checking: enable build time priority checking by default. 431 This fails the build if the initialization sequence in the final ELF file 432 does not match the devicetree hierarchy. It can be turned off by disabling 433 the :kconfig:option:`CONFIG_CHECK_INIT_PRIORITIES` option. 434 435* Added a new ``initlevels`` target for printing the final device and 436 :c:macro:`SYS_INIT` initialization sequence from the final ELF file. 437 438* Reworked syscall code generations so that not all marshalling functions 439 will be included in the final binary. Syscalls associated with disabled 440 subsystems no longer have their marshalling functions generated. 441 442* Partially enabled compiler warning about shadow variables for subset of 443 in-tree code. Out-of-tree code needs to be patched before we can fully 444 enable shadow variable warnings. 445 446Drivers and Sensors 447******************* 448 449* ADC 450 451 * Added support for STM32F0 HSI14 clock (dedicated ADC clock) 452 * Added support for STM32 ADC source clock and prescaler. On STM32F1 and STM32F3 453 series, ADC prescaler can be configured using dedicated RCC Clock Controller 454 option. 455 * Added support for the ADC sequencer for all STM32 series (except F1) 456 * Fixed STM32F4 ADC temperature and Vbat measurement. 457 * Added driver for TI ADS1112. 458 * Added driver for TI TLA2021. 459 * Added driver for Gecko ADC. 460 * Added driver for NXP S32 ADC SAR. 461 * Added driver for MAX1125x family. 462 * Added driver for MAX11102-MAX1117. 463 464* CAN 465 466 * Added support for TI TCAN4x5x CAN-FD controller with integrated transceiver 467 (:dtcompatible:`ti,tcan4x5x`). 468 * Added support for Microchip MCP251xFD CAN-FD controller (:dtcompatible:`microchip,mcp251xfd`). 469 * Added support for CAN statistics to the Bosch M_CAN controller driver backend. 470 * Switched the NXP S32 CANXL driver to use clock control for the CAN clock instead of hard-coding 471 a CAN clock frequency in the devicetree. 472 473* Clock control 474 475 * Added support for Nuvoton NuMaker M46x 476 477* Counter 478 479 * Added :kconfig:option:`CONFIG_COUNTER_RTC_STM32_SUBSECONDS` to enable subsecond as 480 the basic time tick on STM32 RTC based counter driver. 481 482 * Added support for Raspberry Pi Pico Timer 483 484* DAC 485 486 * Added support for Analog Devices AD56xx 487 * Added support for NXP lpcxpresso55s36 (LPDAC) 488 489* Disk 490 491 * Ramdisk driver is now configured using devicetree, and supports multiple 492 instances 493 494* Display 495 496 * Added support for ST7735S (in ST7735R driver) 497 498* DMA 499 500 * Added support for NXP S32K to the eDMA driver 501 * Added support for NXP SMARTDMA 502 * Added support for NXP Pixel Pipeline (PXP) for display acceleration 503 * Added support for DMA get_status() to the SAM XDMAC driver 504 * Fixes for Intel HDA driver for L1 entry/exit, explicit SCS (sample container) settings 505 * Fixes for STM32U5 enables error interrupts, fixes block size and data size configuration 506 * Better Kconfig options for tuning static memory usage in NXP LPC driver 507 508* EEPROM 509 510 * Added support for Fujitsu MB85RCxx series I2C FRAM (:dtcompatible:`fujitsu,mb85rcxx`). 511 512* Entropy 513 514 * Added a requirement for ``entropy_get_entropy()`` to be thread-safe because 515 of random subsystem needs. 516 517* Ethernet 518 519 * Added :kconfig:option:`CONFIG_ETH_NATIVE_POSIX_RX_TIMEOUT` to set rx timeout for native posix. 520 * Added support for adin2111. 521 * Added support for NXP S32 GMAC. 522 * Added support for promiscuous mode in eth_smsc91x. 523 * Added support for STM32H5X SOC series. 524 * Added support for MDIO Clause 45 APIs. 525 * Added support for YD-ESP32 board Ethernet. 526 * Fixed stm32 to generate more unique MAC address by using device id as a base for the MAC. 527 * Fixed mcux to increase the PTP timestamp accuracy from 20us to 200ns. 528 * Fixed Ethernet max header size when using VLAN. 529 * Removed the ``mdio`` DT property. Please use :c:macro:`DT_INST_BUS()` in the driver instead. 530 * Reworked the device node hierarchy in smsc91x. 531 * Renamed the phy-dev property with phy-handle to match the Linux ethernet-controller binding 532 and move it up to ethernet.yaml so that it can be used by other drivers. 533 * Updated Ethernet PHY to use ``reg`` property in DT bindings. 534 * Updated driver DT bindings to use ``ethernet-phy`` devicetree node name consistently. 535 * Updated esp32 and sam-gmac DT so that the phy is pointed by a phandle rather than 536 a child node, this makes the phy device a child of mdio. 537 538* Flash 539 540 * Introduce npcx flash driver that supports two or more spi nor flashes via a 541 single Flash Interface Unit (FIU) module and Direct Read Access (DRA) mode 542 for better performance. 543 * Added support for Nuvoton NuMaker M46x embedded flash 544 * STM32 QSPI driver now supports Jedec SFDP parameter reading. 545 * STM32 OSPI driver now supports both Low and High ports of IO manager. 546 547* GPIO 548 549 * Added support for Nuvoton NuMaker M46x 550 551* I2C 552 553 * STM32 V1 driver now supports large transactions (more than 256 bytes chunks) 554 * STM32 V2 driver now supports 10-bit addressing. 555 * I2C devices can now be used as wakeup source from STOP modes on STM32. 556 * Fix long ISR execution in Silicon Labs I2C target callback 557 * Fail gracefully on DMA max size for nRF52 devices in the TWIM driver 558 * Added support for Intel LPSS DMA usage in the DesignWare driver 559 * Added filtering of dumped messages for debugging using DeviceTree 560 * Added target mode to Silicon Labs Gecko driver 561 * Added Intel SEDI driver 562 * Added Infineon XMC4 driver 563 * Added Microchip PolarFire SoC driver 564 * Added Ambiq driver for Apollo4 SoCs 565 566* I2S 567 568 * Fixed handling of the PCM data format in the NXP MCUX driver. 569 570* I3C 571 572 * ``i3c_cdns``: 573 574 * Fixed build error when :kconfig:option:`CONFIG_I3C_USE_IBI` is disabled. 575 576 * Fixed transfer issue when controller is busy. Now wait for controller to 577 idle before proceeding with another transfer. 578 579* IEEE 802.15.4 580 581 * A new mandatory method attr_get() was introduced into ieee802154_radio_api. 582 Drivers need to implement at least 583 IEEE802154_ATTR_PHY_SUPPORTED_CHANNEL_PAGES and 584 IEEE802154_ATTR_PHY_SUPPORTED_CHANNEL_RANGES. 585 * The hardware capabilities IEEE802154_HW_2_4_GHZ and IEEE802154_HW_SUB_GHZ 586 were removed as they were not aligned with the standard and some already 587 existing drivers couldn't properly express their channel page and channel 588 range (notably SUN FSK and HRP UWB drivers). The capabilities were replaced 589 by the standard conforming new driver attribute 590 IEEE802154_ATTR_PHY_SUPPORTED_CHANNEL_PAGES that fits all in-tree drivers. 591 * The method get_subg_channel_count() was removed from ieee802154_radio_api. 592 This method could not properly express the channel range of existing drivers 593 (notably SUN FSK drivers that implement channel pages > 0 and may not have 594 zero-based channel ranges or UWB drivers that could not be represented at 595 all). The method was replaced by the new driver attribute 596 IEEE802154_ATTR_PHY_SUPPORTED_CHANNEL_RANGES that fits all in-tree drivers. 597 598* Interrupt Controller 599 600 * GIC: Architecture version selection is now based on the device tree 601 602* Input 603 604 * New drivers: :dtcompatible:`gpio-qdec`, :dtcompatible:`st,stmpe811`. 605 606 * Drivers converted from Kscan to Input: :dtcompatible:`goodix,gt911` 607 :dtcompatible:`xptek,xpt2046` :dtcompatible:`hynitron,cst816s` 608 :dtcompatible:`microchip,cap1203`. 609 610 * Added a Kconfig option for dumping all events to the console 611 :kconfig:option:`CONFIG_INPUT_EVENT_DUMP` and new shell commands 612 :kconfig:option:`CONFIG_INPUT_SHELL`. 613 614 * Merged ``zephyr,gpio-keys`` into :dtcompatible:`gpio-keys` and added 615 ``zephyr,code`` codes to all in-tree board ``gpio-keys`` nodes. 616 617 * Renamed the callback definition macro from ``INPUT_LISTENER_CB_DEFINE`` to 618 :c:macro:`INPUT_CALLBACK_DEFINE`. 619 620* PCIE 621 622 * Added support in shell to display PCIe capabilities. 623 624 * Added virtual channel support. 625 626 * Added kconfig :kconfig:option:`CONFIG_PCIE_INIT_PRIORITY` to specify 627 initialization priority for host controller. 628 629 * Added support to get IRQ from ACPI PCI Routing Table (PRT). 630 631* ACPI 632 633 * Adopted the ACPICA library as a new module to further enhance ACPI support. 634 635* Pin control 636 637 * Added support for Nuvoton NuMaker M46x 638 639* PWM 640 641 * Added 4 channels capture on STM32 PWM driver. 642 * Added driver for Intel Blinky PWM. 643 * Added driver for MAX31790. 644 * Added driver for Infineon XMC4XXX CCU4. 645 * Added driver for Infineon XMC4XXX CCU8. 646 * Added MCUX CTimer based PWM driver. 647 * Added PWM driver based on TI CC13xx/CC26xx GPT timer. 648 * Reworked the pwm_nrf5_sw driver so that it can be used also on nRF53 and 649 nRF91 Series. Consequently, the driver was renamed to pwm_nrf_sw. 650 * Added driver for Nuvoton NuMaker family. 651 * Added PWM driver based on NXP S32 EMIOS peripheral. 652 653* Regulators 654 655 * Added support for GPIO-controlled voltage regulator 656 657 * Added support for AXP192 PMIC 658 659 * Added support for NXP VREF regulator 660 661 * Fixed regulators can now specify their operating voltage 662 663 * PFM mode is now support for nPM1300 664 665 * Added new API to configure "ship" mode 666 667 * Regulator shell allows to configure DVS modes 668 669* Reset 670 671 * Added support for Nuvoton NuMaker M46x 672 673* Retained memory 674 675 * Added support for allowing mutex support to be forcibly disabled with 676 :kconfig:option:`CONFIG_RETAINED_MEM_MUTEX_FORCE_DISABLE`. 677 678 * Fixed issue with user mode support not working. 679 680* RTC 681 682 * Added support for STM32 RTC API driver. This driver is not compatible with 683 the use of RTC based implementation of COUNTER API. 684 685* SDHC 686 687 * Added driver for EMMC Host controller present on Alder lake platforms 688 * Added driver for Atmel HSMCI controller present on SAM4E MCU series 689 690* Sensor 691 692 * Reworked the :dtcompatible:`ti,bq274xx` to add ``BQ27427`` support, fixed 693 units for capacity and power channels. 694 * Added ADC current sense amplifier and voltage sensor drivers. 695 * Added ADI LTC2990 voltage, current, and temperature sensor driver. 696 * Added AMS TSL2540 ambient light sensor driver. 697 * Added Bosch BMI08x accelerometer/gyroscope driver. 698 * Added DFRobot A01NYUB distance sensor driver. 699 * Added Fintek F75303 temperature sensor driver. 700 * Added Isentek IST8310 magnetometer driver. 701 * Added Microchip TCN75A temperature sensor driver. 702 * Added NXP TEMPMON driver. 703 * Added Seeed HM330X dust sensor driver. 704 * Added TI TMAG5170 3D Hall sensor driver. 705 * Added power management support to BMM150, LM75, and Microchip tachometer 706 drivers. 707 * Added trigger support to the BMM150 magnetometer driver. 708 * Added tap trigger support to the LIS2DH accelerometer driver. 709 * Updated ST sensor drivers to use STMEMSC HAL i/f v2.3 710 * Updated the decoder APIs to vertically decode raw sensor data. 711 * Various fixes and enhancements in the NTC thermistor and INA23x drivers. 712 713* Serial 714 715 * Added support for Nuvoton NuMaker M46x 716 717 * NS16550: Reworked how device initialization macros. 718 719 * ``CONFIG_UART_NS16550_ACCESS_IOPORT`` and ``CONFIG_UART_NS16550_SIMULT_ACCESS`` 720 are removed. For UART using IO port access, add ``io-mapped`` property to 721 device tree node. 722 723 * Added async support for ESP32S3. 724 725 * Added support for serial TTY under ``native_posix``. 726 727 * Added support for UART on Efinix Sapphire SoCs. 728 729 * Added Intel SEDI UART driver. 730 731 * Added support for UART on BCM2711. 732 733 * ``uart_stm32``: 734 735 * Added RS485 support. 736 737 * Added wide data support. 738 739 * ``uart_pl011``: added support for Ambiq SoCs. 740 741 * ``serial_test``: added support for interrupt and async APIs. 742 743 * ``uart_emul``: added support for interrupt API. 744 745 * ``uart_rpi_pico``: fixed handling Modbus DE-RE signal 746 747* SPI 748 749 * Remove npcx spi driver implemented by Flash Interface Unit (FIU) module. 750 * Added support for Raspberry Pi Pico PIO based SPI. 751 752* Timer 753 754 * The TI CC13xx/26xx system clock timer compatible was changed from 755 :dtcompatible:`ti,cc13xx-cc26xx-rtc` to :dtcompatible:`ti,cc13xx-cc26xx-rtc-timer` 756 and the corresponding Kconfig option from :kconfig:option:`CC13X2_CC26X2_RTC_TIMER` 757 to :kconfig:option:`CC13XX_CC26XX_RTC_TIMER` for improved consistency and 758 extensibility. No action is required unless the internal timer was modified. 759 760* USB 761 762 * Added UDC driver for STM32 based MCU, relying on HAL/PCD. This driver is compatible 763 with UDC API (experimental). 764 * Added support for STM32H5 series on USB driver. 765 766* WiFi 767 768 * Increased esp32 default network (TCP workq, RX and mgmt event) stack sizes to 2048 bytes. 769 * Reduced the RAM usage for esp32s2_saola in Wi-Fi samples. 770 * Fixed undefined declarations in winc1500. 771 * Fixed SPI buffer length in eswifi. 772 * Fixed esp32 data sending and channel selection in AP mode. 773 * Fixed esp_at driver init and network interface dormant state setting. 774 775Networking 776********** 777 778* CoAP: 779 780 * Optimized CoAP client library to use only a single thread internally. 781 * Converted CoAP client library to use ``zsock_*`` API internally. 782 * Fixed a bug in CoAP client library, which resulted in an incorrect 783 retransmission timeout calculation. 784 * Use 64 bit timer values for calculating transmission timeouts. This fixes potential problems for 785 devices that stay on for more than 49 days when the 32 bit uptime counter might roll over and 786 cause CoAP packets to not timeout at all on this event. 787 * API documentation improvements. 788 * Added new API functions: 789 790 * :c:func:`coap_has_descriptive_block_option` 791 * :c:func:`coap_remove_descriptive_block_option` 792 * :c:func:`coap_packet_remove_option` 793 * :c:func:`coap_packet_set_path` 794 795* Connection Manager: 796 797 * Added support for auto-connect and auto-down behaviors (controlled by 798 :c:enum:`CONN_MGR_IF_NO_AUTO_CONNECT` and :c:enum:`CONN_MGR_IF_NO_AUTO_DOWN` 799 flags). 800 * Split Connection Manager APIs into separate header files. 801 * Extended Connection Manager documentation to cover new functionalities. 802 803* DHCP: 804 805 * Added support for DHCPv4 unicast replies processing. 806 * Added support for DHCPv6 protocol. 807 808* Ethernet: 809 810 * Fixed ARP queueing so that the queued network packet is sent immediately 811 instead of queued 2nd time in the core network stack. 812 813* gPTP: 814 815 * Added support for detecting gPTP packets that use the default multicast destination address. 816 * Fixed Announce and Follow Up message handling. 817 818* ICMP: 819 820 * Fixed ICMPv6 error message type check. 821 * Reworked ICMP callback registration and handling, which allows to register 822 multiple handlers for the same ICMP message. 823 * Introduced an API to send ICMP Echo Request (ping). 824 * Added possibility to register offloaded ICMP ping handlers. 825 * Added support for setting packet priority for ping. 826 827* IPv6: 828 829 * Made sure that ongoing DAD procedure is cancelled when IPv6 address is removed. 830 * Fixed a bug, where Solicited-Node multicast address could be removed while 831 still in use. 832 833* LwM2M: 834 835 * Added support for tickless mode. This removes the 500 ms timeout from the socket loop 836 so the engine does not constantly wake up the CPU. This can be enabled by 837 :kconfig:option:`CONFIG_LWM2M_TICKLESS`. 838 * Added new :c:macro:`LWM2M_RD_CLIENT_EVENT_DEREGISTER` event. 839 * Block-wise sending now supports LwM2M read and composite-read operations as well. 840 When :kconfig:option:`CONFIG_LWM2M_COAP_BLOCK_TRANSFER` is enabled, any content that is larger 841 than :kconfig:option:`CONFIG_LWM2M_COAP_MAX_MSG_SIZE` is split into a block-wise transfer. 842 * Block-wise transfers don't require tokens to match anymore as this was not in line 843 with CoAP specification (CoAP doesn't require tokens reuse). 844 * Various fixes to bootstrap. Now client ensures that Bootstrap-Finish command is sent, 845 before closing the DTLS pipe. Also allows Bootstrap server to close the DTLS pipe. 846 Added timeout when waiting for bootstrap commands. 847 * Added support for X509 certificates. 848 * Various fixes to string handling. Allow setting string to zero length. 849 Ensure string termination when using string operations on opaque resources. 850 * Added support for Connection Monitoring object version 1.3. 851 * Added protection for Security object to prevent read/writes by the server. 852 * Fixed a possible notification stall in case of observation token change. 853 * Added new shell command, ``lwm2m create``, which allows to create LwM2M object instances. 854 * Added LwM2M interoperability test-suite against Leshan server. 855 * API documentation improvements. 856 * Several other minor fixes and improvements. 857 858* Misc: 859 860 * Time and timestamps in the network subsystem, PTP and IEEE 802.15.4 861 were more precisely specified and all in-tree call sites updated accordingly. 862 Fields for timed TX and TX/RX timestamps have been consolidated. See 863 :c:type:`net_time_t`, :c:struct:`net_ptp_time`, :c:struct:`ieee802154_config`, 864 :c:struct:`ieee802154_radio_api` and :c:struct:`net_pkt` for extensive 865 documentation. As this is largely an internal API, existing applications will 866 most probably continue to work unchanged. 867 * Added support for additional net_pkt filter hooks: 868 869 * :kconfig:option:`CONFIG_NET_PKT_FILTER_IPV4_HOOK` 870 * :kconfig:option:`CONFIG_NET_PKT_FILTER_IPV6_HOOK` 871 * :kconfig:option:`CONFIG_NET_PKT_FILTER_LOCAL_IN_HOOK` 872 873 * Reworked several networking components to use timepoint API. 874 * Added API functions facilitate going through all IPv4/IPv6 registered on an 875 interface (:c:func:`net_if_ipv4_addr_foreach`, :c:func:`net_if_ipv6_addr_foreach`). 876 * ``NET_EVENT_IPV6_PREFIX_ADD`` and ``NET_EVENT_IPV6_PREFIX_DEL`` events now provide 877 more detailed information about the prefix (:c:struct:`net_event_ipv6_prefix`). 878 * General cleanup of the shadowed variables across the networking subsystem. 879 * Added ``qemu_cortex_a53`` networking support. 880 * Introduced new modem subsystem. 881 * Added new :zephyr:code-sample:`cellular-modem` sample. 882 * Added support for network interface names (instead of reusing underlying device name). 883 * Removed support for Google Cloud IoT sample due to service retirement. 884 * Fixed a bug where packets passed in promiscuous mode could have been modified 885 by L2 in certain cases. 886 * Added support for setting syslog server (used for networking log backend) 887 IP address at runtime. 888 * Removed no longer used ``queued`` and ``sent`` net_pkt flags. 889 * Added support for binding zperf TCP/UDP server to a specific IP address. 890 891* MQTT-SN: 892 893 * Improved thread safety of internal buffers allocation. 894 * API documentation improvements. 895 896* OpenThread: 897 898 * Reworked :c:func:`otPlatEntropyGet` to use :c:func:`sys_csrand_get` internally. 899 * Introduced ``ieee802154_radio_openthread.h`` radio driver extension interface 900 specific for OpenThread. Added new transmit mode, specific to OpenThread, 901 :c:enum:`IEEE802154_OPENTHREAD_TX_MODE_TXTIME_MULTIPLE_CCA`. 902 903* PPP: 904 905 * Fixed PPP L2 usage of the network interface carrier state. 906 * Made PPP L2 thread priority configurable (:kconfig:option:`CONFIG_NET_L2_PPP_THREAD_PRIO`). 907 * Moved PPP L2 out of experimental stage. 908 * Prevent PPP connection reestablish when carrier is down. 909 910* Sockets: 911 912 * Added support for statically allocated socketpairs (in case no heap is available). 913 * Made send timeout configurable (:kconfig:option:`CONFIG_NET_SOCKET_MAX_SEND_WAIT`). 914 * Added support for ``FIONREAD`` and ``FIONBIO`` :c:func:`ioctl` commands. 915 * Fixed input filtering for connected datagram sockets. 916 * Fixed :c:func:`getsockname` operation on unconnected sockets. 917 * Added new secure socket options for DTLS Connection ID support: 918 919 * :c:macro:`TLS_DTLS_CID` 920 * :c:macro:`TLS_DTLS_CID_VALUE` 921 * :c:macro:`TLS_DTLS_PEER_CID_VALUE` 922 * :c:macro:`TLS_DTLS_CID_STATUS` 923 924 * Added support for :c:macro:`SO_REUSEADDR` and :c:macro:`SO_REUSEPORT` socket options. 925 926* TCP: 927 928 * Fixed potential stall in data retransmission, when data was only partially acknowledged. 929 * Made TCP work queue priority configurable (:kconfig:option:`CONFIG_NET_TCP_WORKER_PRIO`). 930 * Added support for TCP new Reno collision avoidance algorithm. 931 * Fixed source address selection on bound sockets. 932 * Fixed possible memory leak in case listening socket was closed during active handshake. 933 * Fixed RST packet handling during handshake. 934 * Refactored the code responsible for connection teardown to fix found bugs and 935 simplify future maintenance. 936 937* TFTP: 938 939 * Added new :zephyr:code-sample:`tftp-client` sample. 940 * API documentation improvements. 941 942* WebSocket 943 944 * WebSocket library no longer closes underlying TCP socket automatically on disconnect. 945 This aligns with the connect behavior, where the WebSocket library expects an already 946 connected TCP socket. 947 948* Wi-Fi: 949 950 * Added Passive scan support. 951 * The Wi-Fi scan API updated with Wi-Fi scan parameter to allow scan mode selection. 952 * Updated TWT handling. 953 * Added support for generic network manager API. 954 * Added support for Wi-Fi mode setting and selection. 955 * Added user input validation for SSID and PSK in Wi-Fi shell. 956 * Added scan extension for specifying channels, limiting scan results, filtering SSIDs, 957 setting active and passive channel dwell times and frequency bands. 958 959USB 960*** 961 962* USB device HID 963 * Kconfig option USB_HID_PROTOCOL_CODE, deprecated in v2.6, is finally removed. 964 965Devicetree 966********** 967 968API 969=== 970 971New general-purpose macros: 972 973- :c:macro:`DT_REG_ADDR_U64` 974- :c:macro:`DT_REG_ADDR_BY_NAME_U64` 975- :c:macro:`DT_INST_REG_ADDR_BY_NAME_U64` 976- :c:macro:`DT_INST_REG_ADDR_U64` 977- :c:macro:`DT_FOREACH_STATUS_OKAY_NODE_VARGS` 978- :c:macro:`DT_FOREACH_NODE_VARGS` 979- :c:macro:`DT_HAS_COMPAT_ON_BUS_STATUS_OKAY` 980 981New special-purpose macros introduced for dependency ordinals: 982 983- :c:macro:`DT_DEP_ORD_STR_SORTABLE` 984 985New general purpose macros introduced for fixed flash partitions: 986 987- :c:macro:`DT_MEM_FROM_FIXED_PARTITION` 988- :c:macro:`DT_FIXED_PARTITION_ADDR` 989 990Bindings 991======== 992 993* Generic or vendor-independent: 994 995 * New bindings: 996 997 * :dtcompatible:`current-sense-amplifier` 998 * :dtcompatible:`current-sense-shunt` 999 * :dtcompatible:`gpio-qdec` 1000 * :dtcompatible:`regulator-gpio` 1001 * :dtcompatible:`usb-audio-feature-volume` 1002 1003 * Modified bindings: 1004 1005 * CAN (Controller Area Network) controller bindings: 1006 1007 * property ``phase-seg1-data`` deprecation status changed from False to True 1008 * property ``phase-seg1`` deprecation status changed from False to True 1009 * property ``phase-seg2-data`` deprecation status changed from False to True 1010 * property ``phase-seg2`` deprecation status changed from False to True 1011 * property ``prop-seg-data`` deprecation status changed from False to True 1012 * property ``prop-seg`` deprecation status changed from False to True 1013 * property ``sjw-data`` default value changed from None to 1 1014 * property ``sjw-data`` deprecation status changed from False to True 1015 * property ``sjw`` default value changed from None to 1 1016 * property ``sjw`` deprecation status changed from False to True 1017 1018 * Ethernet controller bindings: new ``phy-handle`` property (in some 1019 bindings, this was renamed from ``phy-dev``), matching the Linux 1020 ethernet-controller binding. 1021 1022 * The ``riscv,isa`` property used by RISC-V CPU bindings no longer has an 1023 ``enum`` value. 1024 1025 * :dtcompatible:`neorv32-cpu`: 1026 1027 * new property: ``mmu-type`` 1028 * new property: ``riscv,isa`` 1029 1030 * :dtcompatible:`regulator-fixed`: 1031 1032 * new property: ``regulator-min-microvolt`` 1033 * new property: ``regulator-max-microvolt`` 1034 * property ``enable-gpios`` is no longer required 1035 1036 * :dtcompatible:`ethernet-phy`: 1037 1038 * removed property: ``address`` 1039 * removed property: ``mdio`` 1040 * property ``reg`` is now required 1041 1042 * :dtcompatible:`usb-audio-hs` and :dtcompatible:`usb-audio-hp`: 1043 1044 * new property: ``volume-max`` 1045 * new property: ``volume-min`` 1046 * new property: ``volume-res`` 1047 * new property: ``status`` 1048 * new property: ``compatible`` 1049 * new property: ``reg`` 1050 * new property: ``reg-names`` 1051 * new property: ``interrupts`` 1052 * new property: ``interrupts-extended`` 1053 * new property: ``interrupt-names`` 1054 * new property: ``interrupt-parent`` 1055 * new property: ``label`` 1056 * new property: ``clocks`` 1057 * new property: ``clock-names`` 1058 * new property: ``#address-cells`` 1059 * new property: ``#size-cells`` 1060 * new property: ``dmas`` 1061 * new property: ``dma-names`` 1062 * new property: ``io-channels`` 1063 * new property: ``io-channel-names`` 1064 * new property: ``mboxes`` 1065 * new property: ``mbox-names`` 1066 * new property: ``wakeup-source`` 1067 * new property: ``power-domain`` 1068 * new property: ``zephyr,pm-device-runtime-auto`` 1069 1070 * :dtcompatible:`ntc-thermistor-generic`: 1071 1072 * removed property: ``r25-ohm`` 1073 1074 * :dtcompatible:`ns16550`: 1075 1076 * new property: ``resets`` 1077 * new property: ``reset-names`` 1078 1079 * :dtcompatible:`fixed-clock`: 1080 1081 * removed property: ``clocks`` 1082 1083 * All CPU bindings got a new ``enable-method`` property. `pull request 1084 60210 <https://github.com/zephyrproject-rtos/zephyr/pull/60210>`_ for 1085 details. 1086 1087* Analog Devices, Inc. (adi): 1088 1089 * New bindings: 1090 1091 * :dtcompatible:`adi,ad5628` 1092 * :dtcompatible:`adi,ad5648` 1093 * :dtcompatible:`adi,ad5668` 1094 * :dtcompatible:`adi,ad5672` 1095 * :dtcompatible:`adi,ad5674` 1096 * :dtcompatible:`adi,ad5676` 1097 * :dtcompatible:`adi,ad5679` 1098 * :dtcompatible:`adi,ad5684` 1099 * :dtcompatible:`adi,ad5686` 1100 * :dtcompatible:`adi,ad5687` 1101 * :dtcompatible:`adi,ad5689` 1102 * :dtcompatible:`adi,adin1110` 1103 * :dtcompatible:`adi,adltc2990` 1104 1105 * Modified bindings: 1106 1107 * :dtcompatible:`adi,adin2111-mdio` (on adin2111 bus): 1108 1109 * removed property: ``protocol`` 1110 1111* Altera Corp. (altr): 1112 1113 * New bindings: 1114 1115 * :dtcompatible:`altr,pio-1.0` 1116 1117* Ambiq Micro, Inc. (ambiq): 1118 1119 * New bindings: 1120 1121 * :dtcompatible:`ambiq,am1805` 1122 * :dtcompatible:`ambiq,apollo4-pinctrl` 1123 * :dtcompatible:`ambiq,counter` 1124 * :dtcompatible:`ambiq,i2c` 1125 * :dtcompatible:`ambiq,mspi` 1126 * :dtcompatible:`ambiq,pwrctrl` 1127 * :dtcompatible:`ambiq,spi` 1128 * :dtcompatible:`ambiq,stimer` 1129 * :dtcompatible:`ambiq,uart` 1130 * :dtcompatible:`ambiq,watchdog` 1131 1132* AMS AG (ams): 1133 1134 * New bindings: 1135 1136 * :dtcompatible:`ams,tsl2540` 1137 1138* Andes Technology Corporation (andestech): 1139 1140 * New bindings: 1141 1142 * :dtcompatible:`andestech,atcwdt200` 1143 * :dtcompatible:`andestech,plic-sw` 1144 * :dtcompatible:`andestech,qspi-nor` 1145 1146* ARM Ltd. (arm): 1147 1148 * New bindings: 1149 1150 * :dtcompatible:`arm,cortex-a76` 1151 * :dtcompatible:`arm,gic-v1` 1152 * :dtcompatible:`arm,gic-v2` 1153 * :dtcompatible:`arm,gic-v3` 1154 * :dtcompatible:`arm,psci-1.1` 1155 1156* ASPEED Technology Inc. (aspeed): 1157 1158 * Modified bindings: 1159 1160 * :dtcompatible:`aspeed,ast10x0-reset`: 1161 1162 * specifier cells for space "reset" are now named: ['id'] (old value: None) 1163 * specifier cells for space "clock" are now named: None (old value: ['reset_id']) 1164 1165* Atmel Corporation (atmel): 1166 1167 * New bindings: 1168 1169 * :dtcompatible:`atmel,sam-hsmci` 1170 1171 * Modified bindings: 1172 1173 * :dtcompatible:`atmel,sam-mdio`: 1174 1175 * removed property: ``protocol`` 1176 * property ``#address-cells`` const value changed from None to 1 1177 * property ``#size-cells`` const value changed from None to 0 1178 * property ``#address-cells`` is now required 1179 * property ``#size-cells`` is now required 1180 1181* Bosch Sensortec GmbH (bosch): 1182 1183 * New bindings: 1184 1185 * :dtcompatible:`bosch,bmi08x-accel` 1186 * :dtcompatible:`bosch,bmi08x-accel` 1187 * :dtcompatible:`bosch,bmi08x-gyro` 1188 * :dtcompatible:`bosch,bmi08x-gyro` 1189 1190 * Modified bindings: 1191 1192 * :dtcompatible:`bosch,bmm150`: 1193 1194 * new property: ``drdy-gpios`` 1195 1196 * :dtcompatible:`bosch,bmi270`: 1197 1198 * new property: ``irq-gpios`` 1199 1200* Broadcom Corporation (brcm): 1201 1202 * New bindings: 1203 1204 * :dtcompatible:`brcm,bcm2711-aux-uart` 1205 1206* Cadence Design Systems Inc. (cdns): 1207 1208 * New bindings: 1209 1210 * :dtcompatible:`cdns,tensilica-xtensa-lx3` 1211 1212* DFRobot (dfrobot): 1213 1214 * New bindings: 1215 1216 * :dtcompatible:`dfrobot,a01nyub` 1217 1218* Efinix Inc (efinix): 1219 1220 * New bindings: 1221 1222 * :dtcompatible:`efinix,sapphire-gpio` 1223 * :dtcompatible:`efinix,sapphire-timer0` 1224 * :dtcompatible:`efinix,sapphire-uart0` 1225 1226* EPCOS AG (epcos): 1227 1228 * Modified bindings: 1229 1230 * :dtcompatible:`epcos,b57861s0103a039`: 1231 1232 * removed property: ``r25-ohm`` 1233 1234* Espressif Systems (espressif): 1235 1236 * Modified bindings: 1237 1238 * :dtcompatible:`espressif,esp-at` (on uart bus): 1239 1240 * new property: ``external-reset`` 1241 1242 * :dtcompatible:`espressif,esp32-mdio`: 1243 1244 * removed property: ``protocol`` 1245 * property ``#address-cells`` const value changed from None to 1 1246 * property ``#size-cells`` const value changed from None to 0 1247 * property ``#address-cells`` is now required 1248 * property ``#size-cells`` is now required 1249 1250 * :dtcompatible:`espressif,riscv`: 1251 1252 * new property: ``mmu-type`` 1253 * new property: ``riscv,isa`` 1254 1255 * :dtcompatible:`espressif,esp32-spi`: 1256 1257 * new property: ``line-idle-low`` 1258 1259* Feature Integration Technology Inc. (fintek): 1260 1261 * New bindings: 1262 1263 * :dtcompatible:`fintek,f75303` 1264 1265* FocalTech Systems Co.,Ltd (focaltech): 1266 1267 * Modified bindings: 1268 1269 * :dtcompatible:`focaltech,ft5336` (on i2c bus): 1270 1271 * new property: ``reset-gpios`` 1272 1273* Fujitsu Ltd. (fujitsu): 1274 1275 * New bindings: 1276 1277 * :dtcompatible:`fujitsu,mb85rcxx` 1278 1279* Shenzhen Huiding Technology Co., Ltd. (goodix): 1280 1281 * Modified bindings: 1282 1283 * :dtcompatible:`goodix,gt911` (on i2c bus): 1284 1285 * bus list changed from ['kscan'] to [] 1286 * new property: ``alt-addr`` 1287 1288* Himax Technologies, Inc. (himax): 1289 1290 * New bindings: 1291 1292 * :dtcompatible:`himax,hx8394` 1293 1294* Infineon Technologies (infineon): 1295 1296 * New bindings: 1297 1298 * :dtcompatible:`infineon,cat1-counter` 1299 * :dtcompatible:`infineon,cat1-spi` 1300 * :dtcompatible:`infineon,xmc4xxx-ccu4-pwm` 1301 * :dtcompatible:`infineon,xmc4xxx-ccu8-pwm` 1302 * :dtcompatible:`infineon,xmc4xxx-i2c` 1303 1304* Intel Corporation (intel): 1305 1306 * New bindings: 1307 1308 * :dtcompatible:`intel,agilex5-clock` 1309 * :dtcompatible:`intel,alder-lake` 1310 * :dtcompatible:`intel,apollo-lake` 1311 * :dtcompatible:`intel,blinky-pwm` 1312 * :dtcompatible:`intel,elkhart-lake` 1313 * :dtcompatible:`intel,emmc-host` 1314 * :dtcompatible:`intel,ish` 1315 * :dtcompatible:`intel,loapic` 1316 * :dtcompatible:`intel,sedi-gpio` 1317 * :dtcompatible:`intel,sedi-i2c` 1318 * :dtcompatible:`intel,sedi-ipm` 1319 * :dtcompatible:`intel,sedi-uart` 1320 * :dtcompatible:`intel,socfpga-agilex-sip-smc` 1321 * :dtcompatible:`intel,socfpga-reset` 1322 * :dtcompatible:`intel,timeaware-gpio` 1323 1324 * Removed bindings: 1325 1326 * ``intel,agilex-socfpga-sip-smc`` 1327 * ``intel,apollo_lake`` 1328 * ``intel,elkhart_lake`` 1329 * ``intel,gna`` 1330 1331 * Modified bindings: 1332 1333 * :dtcompatible:`intel,niosv`: 1334 1335 * new property: ``mmu-type`` 1336 * new property: ``riscv,isa`` 1337 1338 * :dtcompatible:`intel,adsp-imr`: 1339 1340 * new property: ``zephyr,memory-attr`` 1341 * property ``zephyr,memory-region-mpu`` enum value changed from ['RAM', 'RAM_NOCACHE', 'FLASH', 'PPB', 'IO', 'EXTMEM'] to None 1342 * property ``zephyr,memory-region-mpu`` deprecation status changed from False to True 1343 1344 * :dtcompatible:`intel,lpss`: 1345 1346 * new property: ``dma-parent`` 1347 1348 * :dtcompatible:`intel,adsp-shim-clkctl`: 1349 1350 * new property: ``adsp-clkctl-clk-ipll`` 1351 1352* Isentek Inc. (isentek): 1353 1354 * New bindings: 1355 1356 * :dtcompatible:`isentek,ist8310` 1357 1358* Integrated Silicon Solutions Inc. (issi): 1359 1360 * New bindings: 1361 1362 * :dtcompatible:`issi,is31fl3216a` 1363 * :dtcompatible:`issi,is31fl3733` 1364 1365* ITE Tech. Inc. (ite): 1366 1367 * New bindings: 1368 1369 * :dtcompatible:`ite,it8xxx2-sha` 1370 1371 * Modified bindings: 1372 1373 * :dtcompatible:`ite,it8xxx2-pinctrl-func`: 1374 1375 * new property: ``func3-ext`` 1376 * new property: ``func3-ext-mask`` 1377 1378 * :dtcompatible:`ite,riscv-ite`: 1379 1380 * new property: ``mmu-type`` 1381 * new property: ``riscv,isa`` 1382 1383 * :dtcompatible:`ite,enhance-i2c`: 1384 1385 * new property: ``target-enable`` 1386 * new property: ``target-pio-mode`` 1387 1388* Linaro Limited (linaro): 1389 1390 * New bindings: 1391 1392 * :dtcompatible:`linaro,ivshmem-ipm` 1393 1394* Maxim Integrated Products (maxim): 1395 1396 * New bindings: 1397 1398 * :dtcompatible:`maxim,max11102` 1399 * :dtcompatible:`maxim,max11103` 1400 * :dtcompatible:`maxim,max11105` 1401 * :dtcompatible:`maxim,max11106` 1402 * :dtcompatible:`maxim,max11110` 1403 * :dtcompatible:`maxim,max11111` 1404 * :dtcompatible:`maxim,max11115` 1405 * :dtcompatible:`maxim,max11116` 1406 * :dtcompatible:`maxim,max11117` 1407 * :dtcompatible:`maxim,max11253` 1408 * :dtcompatible:`maxim,max11254` 1409 * :dtcompatible:`maxim,max31790` 1410 1411* Microchip Technology Inc. (microchip): 1412 1413 * New bindings: 1414 1415 * :dtcompatible:`microchip,mcp251xfd` 1416 * :dtcompatible:`microchip,mpfs-i2c` 1417 * :dtcompatible:`microchip,tcn75a` 1418 1419 * Modified bindings: 1420 1421 * :dtcompatible:`microchip,xec-pwmbbled`: 1422 1423 * new property: ``enable-low-power-32k`` 1424 1425 * :dtcompatible:`microchip,cap1203` (on i2c bus): 1426 1427 * bus list changed from ['kscan'] to [] 1428 * new property: ``input-codes`` 1429 1430 * :dtcompatible:`microchip,xec-ps2`: 1431 1432 * new property: ``wakerx-gpios`` 1433 1434* Motorola, Inc. (motorola): 1435 1436 * Modified bindings: 1437 1438 * :dtcompatible:`motorola,mc146818`: 1439 1440 * new property: ``clock-frequency`` 1441 1442* Murata Manufacturing Co., Ltd. (murata): 1443 1444 * New bindings: 1445 1446 * :dtcompatible:`murata,ncp15wb473` 1447 1448* Nordic Semiconductor (nordic): 1449 1450 * New bindings: 1451 1452 * :dtcompatible:`nordic,npm1300-led` 1453 * :dtcompatible:`nordic,npm1300-wdt` 1454 1455 * Removed bindings: 1456 1457 * ``nordic,nrf-cc310`` 1458 * ``nordic,nrf-cc312`` 1459 1460 * Modified bindings: 1461 1462 * :dtcompatible:`nordic,nrf-ccm`: 1463 1464 * new property: ``headermask-supported`` 1465 1466 * :dtcompatible:`nordic,nrf-twi`: 1467 1468 * new property: ``easydma-maxcnt-bits`` 1469 1470 * :dtcompatible:`nordic,nrf-twim` and :dtcompatible:`nordic,nrf-twis`: 1471 1472 * new property: ``easydma-maxcnt-bits`` 1473 * new property: ``memory-regions`` 1474 * new property: ``memory-region-names`` 1475 1476 * :dtcompatible:`nordic,nrf-spi`, :dtcompatible:`nordic,nrf-spis`, and 1477 :dtcompatible:`nordic,nrf-spim`: 1478 1479 * new property: ``wake-gpios`` 1480 1481 * :dtcompatible:`nordic,npm1300-charger`: 1482 1483 * new property: ``thermistor-cold-millidegrees`` 1484 * new property: ``thermistor-cool-millidegrees`` 1485 * new property: ``thermistor-warm-millidegrees`` 1486 * new property: ``thermistor-hot-millidegrees`` 1487 * new property: ``trickle-microvolt`` 1488 * new property: ``term-current-percent`` 1489 * new property: ``vbatlow-charge-enable`` 1490 * new property: ``disable-recharge`` 1491 1492 * :dtcompatible:`nordic,nrf-uicr`: 1493 1494 * new property: ``nfct-pins-as-gpios`` 1495 * new property: ``gpio-as-nreset`` 1496 1497 * :dtcompatible:`nordic,npm1300` (on i2c bus): 1498 1499 * new property: ``host-int-gpios`` 1500 * new property: ``pmic-int-pin`` 1501 1502* Nuclei System Technology (nuclei): 1503 1504 * Modified bindings: 1505 1506 * :dtcompatible:`nuclei,bumblebee`: 1507 1508 * new property: ``mmu-type`` 1509 * new property: ``riscv,isa`` 1510 1511* Nuvoton Technology Corporation (nuvoton): 1512 1513 * New bindings: 1514 1515 * :dtcompatible:`nuvoton,nct38xx` 1516 * :dtcompatible:`nuvoton,nct38xx-gpio` 1517 * :dtcompatible:`nuvoton,npcx-fiu-nor` 1518 * :dtcompatible:`nuvoton,npcx-fiu-qspi` 1519 * :dtcompatible:`nuvoton,numaker-fmc` 1520 * :dtcompatible:`nuvoton,numaker-gpio` 1521 * :dtcompatible:`nuvoton,numaker-pcc` 1522 * :dtcompatible:`nuvoton,numaker-pinctrl` 1523 * :dtcompatible:`nuvoton,numaker-pwm` 1524 * :dtcompatible:`nuvoton,numaker-rst` 1525 * :dtcompatible:`nuvoton,numaker-scc` 1526 * :dtcompatible:`nuvoton,numaker-spi` 1527 * :dtcompatible:`nuvoton,numaker-uart` 1528 1529 * Removed bindings: 1530 1531 * ``nuvoton,nct38xx-gpio`` 1532 * ``nuvoton,npcx-spi-fiu`` 1533 1534 * Modified bindings: 1535 1536 * :dtcompatible:`nuvoton,npcx-sha`: 1537 1538 * new property: ``context-buffer-size`` 1539 1540 * :dtcompatible:`nuvoton,npcx-adc`: 1541 1542 * new property: ``vref-mv`` 1543 * removed property: ``threshold-reg-offset`` 1544 1545 * :dtcompatible:`nuvoton,adc-cmp`: 1546 1547 * new property: ``thr-sel`` 1548 1549 * :dtcompatible:`nuvoton,npcx-pcc`: 1550 1551 * new property: ``pwdwn-ctl-val`` 1552 * 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] 1553 * property ``ram-pd-depth`` enum value changed from [12, 15] to [8, 12, 15] 1554 1555* NXP Semiconductors (nxp): 1556 1557 * New bindings: 1558 1559 * :dtcompatible:`nxp,ctimer-pwm` 1560 * :dtcompatible:`nxp,fs26-wdog` 1561 * :dtcompatible:`nxp,imx-flexspi-w956a8mbya` 1562 * :dtcompatible:`nxp,irqsteer-intc` 1563 * :dtcompatible:`nxp,lpdac` 1564 * :dtcompatible:`nxp,mbox-imx-mu` 1565 * :dtcompatible:`nxp,mcux-dcp` 1566 * :dtcompatible:`nxp,mcux-edma-v3` 1567 * :dtcompatible:`nxp,pcf8563` 1568 * :dtcompatible:`nxp,pxp` 1569 * :dtcompatible:`nxp,s32-adc-sar` 1570 * :dtcompatible:`nxp,s32-clock` 1571 * :dtcompatible:`nxp,s32-emios` 1572 * :dtcompatible:`nxp,s32-emios-pwm` 1573 * :dtcompatible:`nxp,s32-gmac` 1574 * :dtcompatible:`nxp,s32-qspi` 1575 * :dtcompatible:`nxp,s32-qspi-device` 1576 * :dtcompatible:`nxp,s32-qspi-nor` 1577 * :dtcompatible:`nxp,s32k3-pinctrl` 1578 * :dtcompatible:`nxp,smartdma` 1579 * :dtcompatible:`nxp,tempmon` 1580 * :dtcompatible:`nxp,vref` 1581 1582 * Modified bindings: 1583 1584 * :dtcompatible:`nxp,s32-netc-emdio`: 1585 1586 * removed property: ``protocol`` 1587 * property ``#address-cells`` const value changed from None to 1 1588 * property ``#size-cells`` const value changed from None to 0 1589 * property ``#address-cells`` is now required 1590 * property ``#size-cells`` is now required 1591 1592 * :dtcompatible:`nxp,mipi-dsi-2l`: 1593 1594 * property ``nxp,lcdif`` is no longer required 1595 1596 * :dtcompatible:`nxp,imx-mipi-dsi`: 1597 1598 * property ``nxp,lcdif`` is no longer required 1599 1600 * :dtcompatible:`nxp,pca9633` (on i2c bus): 1601 1602 * new property: ``disable-allcall`` 1603 1604 * :dtcompatible:`nxp,s32-sys-timer`: 1605 1606 * removed property: ``clock-frequency`` 1607 * property ``clocks`` is now required 1608 1609 * :dtcompatible:`nxp,imx-lpspi`: 1610 1611 * new property: ``data-pin-config`` 1612 1613 * :dtcompatible:`nxp,s32-spi`: 1614 1615 * property ``clock-frequency`` is no longer required 1616 * property ``clocks`` is now required 1617 1618 * :dtcompatible:`nxp,imx-wdog`: 1619 1620 * pinctrl support 1621 1622 * :dtcompatible:`nxp,s32-swt`: 1623 1624 * removed property: ``clock-frequency`` 1625 * property ``clocks`` is now required 1626 1627 * :dtcompatible:`nxp,lpc-lpadc`: 1628 1629 * new property: ``nxp,reference-supply`` 1630 1631 * :dtcompatible:`nxp,kinetis-pit`: 1632 1633 * new property: ``max-load-value`` 1634 * property ``clocks`` is now required 1635 1636 * :dtcompatible:`nxp,mcux-edma`: 1637 1638 * new property: ``dmamux-reg-offset`` 1639 * new property: ``channel-gap`` 1640 * new property: ``irq-shared-offset`` 1641 1642 * :dtcompatible:`nxp,imx-elcdif`: 1643 1644 * new property: ``nxp,pxp`` 1645 1646* ON Semiconductor Corp. (onnn): 1647 1648 * New bindings: 1649 1650 * :dtcompatible:`onnn,ncp5623` 1651 1652* Princeton Technology Corp. (ptc): 1653 1654 * New bindings: 1655 1656 * :dtcompatible:`ptc,pt6314` 1657 1658* Quectel Wireless Solutions Co., Ltd. (quectel): 1659 1660 * New bindings: 1661 1662 * :dtcompatible:`quectel,bg95` 1663 1664* QuickLogic Corp. (quicklogic): 1665 1666 * New bindings: 1667 1668 * :dtcompatible:`quicklogic,eos-s3-pinctrl` 1669 1670 * Modified bindings: 1671 1672 * :dtcompatible:`quicklogic,usbserialport-s3b`: 1673 1674 * pinctrl support 1675 1676* Raspberry Pi Foundation (raspberrypi): 1677 1678 * New bindings: 1679 1680 * :dtcompatible:`raspberrypi,pico-header` 1681 * :dtcompatible:`raspberrypi,pico-i2c` 1682 * :dtcompatible:`raspberrypi,pico-spi-pio` 1683 * :dtcompatible:`raspberrypi,pico-timer` 1684 1685* Raydium Semiconductor Corp. (raydium): 1686 1687 * New bindings: 1688 1689 * :dtcompatible:`raydium,rm67162` 1690 1691* Renesas Electronics Corporation (renesas): 1692 1693 * New bindings: 1694 1695 * :dtcompatible:`renesas,smartbond-lp-osc` 1696 * :dtcompatible:`renesas,smartbond-timer` 1697 1698 * Modified bindings: 1699 1700 * :dtcompatible:`renesas,smartbond-flash-controller`: 1701 1702 * new property: ``read-cs-idle-delay`` 1703 * new property: ``erase-cs-idle-delay`` 1704 1705* Smart Battery System (sbs): 1706 1707 * New bindings: 1708 1709 * :dtcompatible:`sbs,default-sbs-gauge` 1710 * :dtcompatible:`sbs,sbs-charger` 1711 1712* Seeed Technology Co., Ltd (seeed): 1713 1714 * New bindings: 1715 1716 * :dtcompatible:`seeed,hm330x` 1717 1718* SiFive, Inc. (sifive): 1719 1720 * Modified bindings: 1721 1722 * :dtcompatible:`sifive,i2c0`: 1723 1724 * pinctrl support 1725 1726* Silicon Laboratories (silabs): 1727 1728 * New bindings: 1729 1730 * :dtcompatible:`silabs,gecko-adc` 1731 1732* Sino Wealth Electronic Ltd (sinowealth): 1733 1734 * New bindings: 1735 1736 * :dtcompatible:`sinowealth,sh1106` 1737 * :dtcompatible:`sinowealth,sh1106` 1738 1739* Sitronix Technology Corporation (sitronix): 1740 1741 * Modified bindings: 1742 1743 * :dtcompatible:`sitronix,st7735r` (on spi bus): 1744 1745 * property ``reset-gpios`` is no longer required 1746 1747* Standard Microsystems Corporation (smsc): 1748 1749 * Modified bindings: 1750 1751 * :dtcompatible:`smsc,lan91c111-mdio`: 1752 1753 * removed property: ``protocol`` 1754 * property ``#address-cells`` const value changed from None to 1 1755 * property ``#size-cells`` const value changed from None to 0 1756 * property ``#address-cells`` is now required 1757 * property ``#size-cells`` is now required 1758 1759 * :dtcompatible:`smsc,lan91c111`: 1760 1761 * new property: ``local-mac-address`` 1762 * new property: ``zephyr,random-mac-address`` 1763 * property ``reg`` is no longer required 1764 1765* Synopsys, Inc. (snps): 1766 1767 * New bindings: 1768 1769 * :dtcompatible:`snps,dw-timers` 1770 1771* Solomon Systech Limited (solomon): 1772 1773 * Modified bindings: 1774 1775 * :dtcompatible:`solomon,ssd1306fb` 1776 1777 * new property: ``inversion-on`` 1778 * new property: ``ready-time-ms`` 1779 1780* Sequans Communications (sqn): 1781 1782 * New bindings: 1783 1784 * :dtcompatible:`sqn,hwspinlock` 1785 1786* STMicroelectronics (st): 1787 1788 * New bindings: 1789 1790 * :dtcompatible:`st,stm32-bxcan` 1791 * :dtcompatible:`st,stm32-spi-host-cmd` 1792 * :dtcompatible:`st,stm32f1-rcc` 1793 * :dtcompatible:`st,stm32f3-rcc` 1794 * :dtcompatible:`st,stm32wba-flash-controller` 1795 * :dtcompatible:`st,stm32wba-hse-clock` 1796 * :dtcompatible:`st,stm32wba-pll-clock` 1797 * :dtcompatible:`st,stm32wba-rcc` 1798 * :dtcompatible:`st,stmpe811` 1799 1800 * Removed bindings: 1801 1802 * ``st,stm32-can`` 1803 1804 * Modified bindings: 1805 1806 * :dtcompatible:`st,stm32-pwm`: 1807 1808 * new property: ``four-channel-capture-support`` 1809 1810 * :dtcompatible:`st,stm32f4-adc`: 1811 1812 * new property: ``st,adc-clock-source`` 1813 * new property: ``st,adc-prescaler`` 1814 * new property: ``st,adc-sequencer`` 1815 * removed property: ``temp-channel`` 1816 * removed property: ``vref-channel`` 1817 * removed property: ``vbat-channel`` 1818 1819 * :dtcompatible:`st,stm32-adc`: 1820 1821 * new property: ``st,adc-clock-source`` 1822 * new property: ``st,adc-prescaler`` 1823 * new property: ``st,adc-sequencer`` 1824 * removed property: ``temp-channel`` 1825 * removed property: ``vref-channel`` 1826 * removed property: ``vbat-channel`` 1827 1828 * :dtcompatible:`st,stm32f1-adc`: 1829 1830 * new property: ``st,adc-sequencer`` 1831 * removed property: ``temp-channel`` 1832 * removed property: ``vref-channel`` 1833 * removed property: ``vbat-channel`` 1834 1835 * :dtcompatible:`st,stm32-ospi`: 1836 1837 * new property: ``io-low-port`` 1838 * new property: ``io-high-port`` 1839 1840 * :dtcompatible:`st,stm32c0-hsi-clock`: 1841 1842 * removed property: ``clocks`` 1843 1844 * :dtcompatible:`st,stm32-hse-clock`: 1845 1846 * removed property: ``clocks`` 1847 1848 * :dtcompatible:`st,stm32wl-hse-clock`: 1849 1850 * removed property: ``clocks`` 1851 1852 * :dtcompatible:`st,stm32g0-hsi-clock`: 1853 1854 * removed property: ``clocks`` 1855 1856 * :dtcompatible:`st,stm32h7-hsi-clock`: 1857 1858 * removed property: ``clocks`` 1859 1860 * :dtcompatible:`st,stm32-lse-clock`: 1861 1862 * removed property: ``clocks`` 1863 1864 * :dtcompatible:`st,stm32u5-pll-clock`: 1865 1866 * new property: ``fracn`` 1867 1868* Telink Semiconductor (telink): 1869 1870 * Modified bindings: 1871 1872 * :dtcompatible:`telink,b91-pwm`: 1873 1874 * pinctrl support 1875 1876 * :dtcompatible:`telink,b91`: 1877 1878 * new property: ``mmu-type`` 1879 * new property: ``riscv,isa`` 1880 1881 * :dtcompatible:`telink,b91-i2c`: 1882 1883 * pinctrl support 1884 1885 * :dtcompatible:`telink,b91-spi`: 1886 1887 * pinctrl support 1888 1889 * :dtcompatible:`telink,b91-uart`: 1890 1891 * pinctrl support 1892 1893* Texas Instruments (ti): 1894 1895 * New bindings: 1896 1897 * :dtcompatible:`ti,ads1112` 1898 * :dtcompatible:`ti,bq27z746` 1899 * :dtcompatible:`ti,cc13xx-cc26xx-rtc-timer` 1900 * :dtcompatible:`ti,cc13xx-cc26xx-timer` 1901 * :dtcompatible:`ti,cc13xx-cc26xx-timer-pwm` 1902 * :dtcompatible:`ti,cc32xx-pinctrl` 1903 * :dtcompatible:`ti,davinci-gpio` 1904 * :dtcompatible:`ti,davinci-gpio-nexus` 1905 * :dtcompatible:`ti,lp5009` 1906 * :dtcompatible:`ti,lp5012` 1907 * :dtcompatible:`ti,lp5018` 1908 * :dtcompatible:`ti,lp5024` 1909 * :dtcompatible:`ti,lp5030` 1910 * :dtcompatible:`ti,lp5036` 1911 * :dtcompatible:`ti,lp5569` 1912 * :dtcompatible:`ti,tas6422dac` 1913 * :dtcompatible:`ti,tcan4x5x` 1914 * :dtcompatible:`ti,tla2021` 1915 * :dtcompatible:`ti,tmag5170` 1916 * :dtcompatible:`ti,vim` 1917 1918 * Removed bindings: 1919 1920 * ``ti,cc13xx-cc26xx-rtc`` 1921 * ``ti,lp503x`` 1922 1923 * Modified bindings: 1924 1925 * :dtcompatible:`ti,cc32xx-i2c`: 1926 1927 * pinctrl support 1928 1929 * :dtcompatible:`ti,ina230` (on i2c bus): 1930 1931 * new property: ``alert-config`` 1932 * new property: ``adc-mode`` 1933 * new property: ``vbus-conversion-time-us`` 1934 * new property: ``vshunt-conversion-time-us`` 1935 * new property: ``avg-count`` 1936 * new property: ``rshunt-micro-ohms`` 1937 * removed property: ``rshunt-milliohms`` 1938 * property ``config`` default value changed from None to 0 1939 * property ``config`` deprecation status changed from False to True 1940 * property ``config`` is no longer required 1941 1942 * :dtcompatible:`ti,ina237` (on i2c bus): 1943 1944 * new property: ``adc-mode`` 1945 * new property: ``vbus-conversion-time-us`` 1946 * new property: ``vshunt-conversion-time-us`` 1947 * new property: ``temp-conversion-time-us`` 1948 * new property: ``avg-count`` 1949 * new property: ``high-precision`` 1950 * new property: ``rshunt-micro-ohms`` 1951 * removed property: ``rshunt-milliohms`` 1952 * property ``adc-config`` default value changed from None to 0 1953 * property ``config`` default value changed from None to 0 1954 * property ``adc-config`` deprecation status changed from False to True 1955 * property ``config`` deprecation status changed from False to True 1956 * property ``adc-config`` is no longer required 1957 * property ``config`` is no longer required 1958 1959 * :dtcompatible:`ti,cc32xx-uart`: 1960 1961 * pinctrl support 1962 1963* A stand-in for a real vendor which can be used in examples and tests (vnd): 1964 1965 * New bindings: 1966 1967 * :dtcompatible:`vnd,memory-attr` 1968 * :dtcompatible:`vnd,reg-holder-64` 1969 * :dtcompatible:`vnd,reserved-compat` 1970 1971 * Modified bindings: 1972 1973 * :dtcompatible:`vnd,serial`: 1974 1975 * property ``reg`` is no longer required 1976 1977* X-Powers (x-powers): 1978 1979 * New bindings: 1980 1981 * :dtcompatible:`x-powers,axp192` 1982 * :dtcompatible:`x-powers,axp192-gpio` 1983 * :dtcompatible:`x-powers,axp192-regulator` 1984 1985* Xen Hypervisor (xen): 1986 1987 * New bindings: 1988 1989 * :dtcompatible:`xen,xen` 1990 1991 * Removed bindings: 1992 1993 * ``xen,xen-4.15`` 1994 1995* Xilinx (xlnx): 1996 1997 * New bindings: 1998 1999 * :dtcompatible:`xlnx,zynqmp-ipi-mailbox` 2000 2001* Shenzhen Xptek Technology Co., Ltd (xptek): 2002 2003 * Modified bindings: 2004 2005 * :dtcompatible:`xptek,xpt2046` (on spi bus): 2006 2007 * bus list changed from ['kscan'] to [] 2008 2009* Zephyr-specific binding (zephyr): 2010 2011 * New bindings: 2012 2013 * :dtcompatible:`zephyr,fake-rtc` 2014 * :dtcompatible:`zephyr,i2c-dump-allowlist` 2015 * :dtcompatible:`zephyr,lvgl-button-input` 2016 * :dtcompatible:`zephyr,lvgl-encoder-input` 2017 * :dtcompatible:`zephyr,lvgl-pointer-input` 2018 * :dtcompatible:`zephyr,mdio-gpio` 2019 * :dtcompatible:`zephyr,native-tty-uart` 2020 * :dtcompatible:`zephyr,ram-disk` 2021 * :dtcompatible:`zephyr,sensing` 2022 * :dtcompatible:`zephyr,sensing-phy-3d-sensor` 2023 2024 * Removed bindings: 2025 2026 * ``zephyr,gpio-keys`` 2027 2028 * Modified bindings: 2029 2030 * :dtcompatible:`zephyr,mmc-disk` (on sd bus): 2031 2032 * new property: ``bus-width`` 2033 2034 * :dtcompatible:`zephyr,bt-hci-spi` (on spi bus): 2035 2036 * new property: ``controller-data-delay-us`` 2037 2038 * :dtcompatible:`zephyr,sdhc-spi-slot` (on spi bus): 2039 2040 * new property: ``pwr-gpios`` 2041 2042 * :dtcompatible:`zephyr,memory-region`: 2043 2044 * new property: ``zephyr,memory-attr`` 2045 * property ``zephyr,memory-region-mpu`` enum value changed from ['RAM', 'RAM_NOCACHE', 'FLASH', 'PPB', 'IO', 'EXTMEM'] to None 2046 * property ``zephyr,memory-region-mpu`` deprecation status changed from False to True 2047 * property ``reg`` is now required 2048 2049Libraries / Subsystems 2050********************** 2051 2052* Management 2053 2054 * Introduced MCUmgr client support with handlers for img_mgmt and os_mgmt. 2055 2056 * Added response checking to MCUmgr's :c:enumerator:`MGMT_EVT_OP_CMD_RECV` 2057 notification callback to allow applications to reject MCUmgr commands. 2058 2059 * MCUmgr SMP version 2 error translation (to legacy MCUmgr error code) is now 2060 supported in function handlers by setting ``mg_translate_error`` of 2061 :c:struct:`mgmt_group` when registering a group. See 2062 :c:type:`smp_translate_error_fn` for function details. 2063 2064 * Fixed an issue with MCUmgr img_mgmt group whereby the size of the upload in 2065 the initial packet was not checked. 2066 2067 * Fixed an issue with MCUmgr fs_mgmt group whereby some status codes were not 2068 checked properly, this meant that the error returned might not be the 2069 correct error, but would only occur in situations where an error was 2070 already present. 2071 2072 * Fixed an issue whereby the SMP response function did not check to see if 2073 the initial zcbor map was created successfully. 2074 2075 * Fixes an issue with MCUmgr shell_mgmt group whereby the length of a 2076 received command was not properly checked. 2077 2078 * Added optional mutex locking support to MCUmgr img_mgmt group, which can 2079 be enabled with :kconfig:option:`CONFIG_MCUMGR_GRP_IMG_MUTEX`. 2080 2081 * Added MCUmgr settings management group, which allows for manipulation of 2082 zephyr settings from a remote device, see :ref:`mcumgr_smp_group_3` for 2083 details. 2084 2085 * Added :kconfig:option:`CONFIG_MCUMGR_GRP_IMG_ALLOW_CONFIRM_NON_ACTIVE_IMAGE_SECONDARY` 2086 and :kconfig:option:`CONFIG_MCUMGR_GRP_IMG_ALLOW_CONFIRM_NON_ACTIVE_IMAGE_ANY` 2087 that allow to control whether MCUmgr client will be allowed to confirm 2088 non-active images. 2089 2090 * Added :kconfig:option:`CONFIG_MCUMGR_GRP_IMG_ALLOW_ERASE_PENDING` that allows 2091 to erase slots pending for next boot, that are not revert slots. 2092 2093 * Added ``user_data`` as an optional field to :c:struct:`mgmt_handler` when 2094 :kconfig:option:`CONFIG_MCUMGR_MGMT_HANDLER_USER_DATA` is enabled. 2095 2096 * Added optional ``force`` parameter to os mgmt reset command, this can be checked in the 2097 :c:enumerator:`MGMT_EVT_OP_OS_MGMT_RESET` notification callback whose data structure is 2098 :c:struct:`os_mgmt_reset_data`. 2099 2100 * Added configurable number of SMP encoding levels via 2101 :kconfig:option:`CONFIG_MCUMGR_SMP_CBOR_MIN_ENCODING_LEVELS`, which automatically increments 2102 minimum encoding levels for in-tree groups if :kconfig:option:`CONFIG_ZCBOR_CANONICAL` is 2103 enabled. 2104 2105 * Added STM32 SPI backend for EC Host command protocol. 2106 2107 * Fixed settings_mgmt returning unknown error instead of invalid key specified error. 2108 2109 * Fixed fs_mgmt returning parameter too large error instead of file is empty error when 2110 attempting to hash/checksum a file which is empty. 2111 2112* File systems 2113 2114 * Added support for ext2 file system. 2115 * Added support of mounting littlefs on the block device from the shell/fs. 2116 * Added alignment parameter to FS_LITTLEFS_DECLARE_CUSTOM_CONFIG macro, it can speed up read/write 2117 operation for SDMMC devices in case when we align buffers on CONFIG_SDHC_BUFFER_ALIGNMENT, 2118 because we can avoid extra copy of data from card buffer to read/prog buffer. 2119 2120* Random 2121 2122 * ``CONFIG_XOROSHIRO_RANDOM_GENERATOR``, deprecated a long time ago, is finally removed. 2123 2124* Retention 2125 2126 * Added the :ref:`blinfo_api` subsystem. 2127 2128 * Added support for allowing mutex support to be forcibly disabled with 2129 :kconfig:option:`CONFIG_RETENTION_MUTEX_FORCE_DISABLE`. 2130 2131* Binary descriptors 2132 2133 * Added the :ref:`binary_descriptors` (``bindesc``) subsystem. 2134 2135* POSIX API 2136 2137 * Added dynamic thread stack support for :c:func:`pthread_create` 2138 * Fixed :c:func:`stat` so that it returns file stats instead of filesystem stats 2139 * Implemented :c:func:`pthread_barrierattr_destroy`, :c:func:`pthread_barrierattr_getpshared`, 2140 :c:func:`pthread_barrierattr_init`, :c:func:`pthread_barrierattr_setpshared`, 2141 :c:func:`pthread_condattr_destroy`, :c:func:`pthread_condattr_init`, 2142 :c:func:`pthread_mutexattr_destroy`, :c:func:`pthread_mutexattr_init`, :c:func:`uname`, 2143 :c:func:`sigaddset`, :c:func:`sigdelset`, :c:func:`sigemptyset`, :c:func:`sigfillset`, 2144 :c:func:`sigismember`, :c:func:`strsignal`, :c:func:`pthread_spin_destroy`, 2145 :c:func:`pthread_spin_init`, :c:func:`pthread_spin_lock`, :c:func:`pthread_spin_trylock`, 2146 :c:func:`pthread_spin_unlock`, :c:func:`timer_getoverrun`, :c:func:`pthread_condattr_getclock`, 2147 :c:func:`pthread_condattr_setclock`, :c:func:`clock_nanosleep` 2148 * Added support for querying the number of bytes available to read via the 2149 :c:macro:`FIONREAD` request to :c:func:`ioctl` 2150 * Added :kconfig:option:`CONFIG_FDTABLE` to conditionally compile file descriptor table 2151 * Added logging to POSIX threads, mutexes, and condition variables 2152 * Fixed :c:func:`poll` issue with event file descriptors 2153 2154* LoRa/LoRaWAN 2155 2156 * Updated ``loramac-node`` from v4.6.0 to v4.7.0 2157 2158* CAN ISO-TP 2159 2160 * Added support for CAN FD. 2161 2162* RTIO 2163 2164 * Added atomic completion counter fixing a race caught by unit tests 2165 * Added a :c:macro:`RTIO_SQE_NO_RESPONSE` flag for submissions when no completion notification 2166 is needed 2167 * Removed unused Kconfig options for different executors 2168 2169* ZBus 2170 2171 * Changed channels' and observers' metadata to comply with the data/config approach. ZBus stores 2172 immutable config in iterable sections in Flash and the mutable portion of data in the RAM. 2173 * The relationship between channels and observers is mapped using a new entity called 2174 observation. The observation enables us to increase the granularity of masking observation. 2175 Developers can mask individual observations, disable the observer, or use runtime observers. 2176 * Added API :c:macro:`ZBUS_CHAN_ADD_OBS` macro for adding post-definition static observers of a 2177 channel. That can replace the runtime observer feature, enabling developers to add static 2178 observers after the channel definition in different files. It increases the composability of 2179 the system using ZBus, making post-definition channel observation rely on the stack instead of 2180 the heap. 2181 * Added a new type of observer called Message Subscriber. ZBus' VDED will send a copy of the 2182 message during the publication/notification process. 2183 * Changed the VDED delivery sequence. Check the ref:`documentation<zbus delivery sequence>`. 2184 * ZBus runtime observers now rely on the heap instead of a memory pool. 2185 * Added new iterable section iterators APIs (for channels and observers) can now receive a 2186 ``user_data`` pointer to keep context between the function calls. 2187 * Added APIs :c:macro:`ZBUS_LISTENER_DEFINE_WITH_ENABLE` and 2188 :c:macro:`ZBUS_SUBSCRIBER_DEFINE_WITH_ENABLE` that allows developers to define observers' 2189 statuses (enabled/disabled) programmatically. With the API, developers can create observers 2190 initially disabled and enable them in runtime. 2191 2192* Power management 2193 2194 * Added :kconfig:option:`CONFIG_PM_NEED_ALL_DEVICES_IDLE`. When this 2195 option is set the power management will keep the system active 2196 if there is any device busy. 2197 * :c:func:`pm_device_runtime_get` can be called from ISR now. 2198 * Power states can be disabled directly in devicetree doing ``status = "disabled";`` 2199 * Added the helper function, :c:func:`pm_device_driver_init`, for 2200 initializing devices into a specific power state. 2201 2202* Modem modules 2203 2204 * Added the :ref:`modem` subsystem. 2205 2206HALs 2207**** 2208 2209* Nordic 2210 2211 * Updated nrfx to version 3.1.0. 2212 2213* Nuvoton 2214 2215 * Added Nuvoton NuMaker M46x 2216 2217MCUboot 2218******* 2219 2220 * Added :kconfig:option:`CONFIG_MCUBOOT_BOOTLOADER_NO_DOWNGRADE` 2221 that allows to inform application that the on-board MCUboot has been configured 2222 with downgrade prevention enabled. This option is automatically selected for 2223 DirectXIP mode and is available for both swap modes. 2224 2225 * Added :kconfig:option:`CONFIG_MCUBOOT_BOOTLOADER_MODE_OVERWRITE_ONLY` 2226 that allows to inform application that the on-board MCUboot will overwrite 2227 the primary slot with secondary slot contents, without saving the original 2228 image in primary slot. 2229 2230 * Fixed issue with serial recovery not showing image details for decrypted images. 2231 2232 * Fixed issue with serial recovery in single slot mode wrongly iterating over 2 image slots. 2233 2234 * Fixed an issue with boot_serial repeats not being processed when output was sent, this would 2235 lead to a divergence of commands whereby later commands being sent would have the previous 2236 command output sent instead. 2237 2238 * Fixed an issue with the boot_serial zcbor setup encoder function wrongly including the buffer 2239 address in the size which caused serial recovery to fail on some platforms. 2240 2241 * Fixed wrongly building in optimize for debug mode by default, this saves a significant amount 2242 of flash space. 2243 2244 * Fixed issue with serial recovery use of MBEDTLS having undefined operations which led to usage 2245 faults when the secondary slot image was encrypted. 2246 2247 * Fixed issue with bootutil asserting on maximum alignment in non-swap modes. 2248 2249 * Added error output when flash device fails to open and asserts are disabled, which will now 2250 panic the bootloader. 2251 2252 * Added currently running slot ID and maximum application size to shared data function 2253 definition. 2254 2255 * Added P384 and SHA384 support to imgtool. 2256 2257 * Added optional serial recovery image state and image set state commands. 2258 2259 * Added ``dumpinfo`` command for signed image parsing in imgtool. 2260 2261 * Added ``getpubhash`` command to dump the sha256 hash of the public key in imgtool. 2262 2263 * Added support for ``getpub`` to print the output to a file in imgtool. 2264 2265 * Added support for dumping the raw versions of the public keys in imgtool. 2266 2267 * Added support for sharing boot information with application via retention subsystem. 2268 2269 * Added support for serial recovery to read and handle encrypted seondary slot partitions. 2270 2271 * Removed ECDSA P224 support. 2272 2273 * Removed custom image list boot serial extension support. 2274 2275 * Reworked boot serial extensions so that they can be used by modules or from user repositories 2276 by switching to iterable sections. 2277 2278 * Reworked image encryption support for Zephyr, static dummy key files are no longer in the code, 2279 a pem file must be supplied to extract the private and public keys. The Kconfig menu has 2280 changed to only show a single option for enabling encryption and selecting the key file. 2281 2282 * Reworked the ECDSA256 TLV curve agnostic and renamed it to ``ECDSA_SIG``. 2283 2284 * CDDL auto-generated function code has been replaced with zcbor function calls, this now allows 2285 the parameters to be supplied in any order. 2286 2287 * The MCUboot version in this release is version ``2.0.0+0-rc1``. 2288 2289Nanopb 2290****** 2291 2292 * Changed project status to maintained. 2293 2294 * Added a separate nanopb.cmake file to be included by applications. 2295 2296 * Added helper cmake function ``zephyr_nanopb_sources`` to simplify ``.proto`` file inclusion. 2297 2298LVGL 2299**** 2300 2301 * Changed project status to maintained. 2302 2303 * Library has been updated to release v8.3.7. 2304 2305 * Added ``zephyr,lvgl-{pointer,button,encoder}-input`` pseudo device bindings. 2306 :kconfig:option:`CONFIG_LV_Z_KSCAN_POINTER` is still supported but touch controllers 2307 need a :dtcompatible:`zephyr,kscan-input` child node to emit input events. 2308 2309 * LVGL shell allows for monkey testing (requires :kconfig:option:`CONFIG_LV_USE_MONKEY`) 2310 and inspecting memory usage. 2311 2312Trusted Firmware-A 2313****************** 2314 2315* Updated to TF-A 2.9.0. 2316 2317Documentation 2318************* 2319 2320* Upgraded Sphinx to 6.2 2321 2322Tests and Samples 2323***************** 2324 2325* Created common sample for file systems (`fs_sample`). It originates from sample for FAT 2326 (`fat_fs`) and supports both FAT and ext2 file systems. 2327 2328* Created the zbus confirmed channel sample to demonstrate how to implement a delivery-guaranteed 2329 channel using subscribers. 2330 2331* Created the zbus message subscriber sample to demonstrate how to use message subscribers. 2332