1:orphan: 2 3.. _zephyr_4.1: 4 5Zephyr 4.1.0 (Working Draft) 6############################ 7 8We are pleased to announce the release of Zephyr version 4.1.0. 9 10Major enhancements with this release include: 11 12An overview of the changes required or recommended when migrating your application from Zephyr 13v4.0.0 to Zephyr v4.1.0 can be found in the separate :ref:`migration guide<migration_4.1>`. 14 15The following sections provide detailed lists of changes by component. 16 17Security Vulnerability Related 18****************************** 19The following CVEs are addressed by this release: 20 21More detailed information can be found in: 22https://docs.zephyrproject.org/latest/security/vulnerabilities.html 23 24API Changes 25*********** 26 27Removed APIs in this release 28============================ 29 30 * The deprecated Bluetooth HCI driver API has been removed. It has been replaced by a 31 :c:group:`new API<bt_hci_api>` that follows the normal Zephyr driver model. 32 * The deprecated ``CAN_MAX_STD_ID`` (replaced by :c:macro:`CAN_STD_ID_MASK`) and ``CAN_MAX_EXT_ID`` 33 (replaced by :c:macro:`CAN_EXT_ID_MASK`) CAN API macros have been removed. 34 * The deprecated ``can_get_min_bitrate()`` (replaced by :c:func:`can_get_bitrate_min`) and 35 ``can_get_max_bitrate()`` (replaced by :c:func:`can_get_bitrate_max`) CAN API functions have been 36 removed. 37 * The deprecated ``can_calc_prescaler()`` CAN API function has been removed. 38 39Deprecated in this release 40========================== 41 42* Deprecated the :c:func:`bt_le_set_auto_conn` API function. Application developers can achieve 43 the same functionality in their application code by reconnecting to the peer when the 44 :c:member:`bt_conn_cb.disconnected` callback is invoked. 45 46* Deprecated TinyCrypt library. The reasons for this are (:github:`43712`): 47 48 * The upstream version of this library is no longer maintained. 49 * Reducing the number of cryptographic libraries in Zephyr to reduce maintenance overhead. 50 * The PSA Crypto API is the recommended cryptographic library for Zephyr. 51 52Architectures 53************* 54 55* Common 56 57 * Introduced :kconfig:option:`CONFIG_ARCH_HAS_CUSTOM_CURRENT_IMPL`, which can be selected when 58 an architecture implemented and enabled its own :c:func:`arch_current_thread` and 59 :c:func:`arch_current_thread_set` functions for faster retrieval of the current CPU's thread 60 pointer. When enabled, ``_current`` variable will be routed to the 61 :c:func:`arch_current_thread` (:github:`80716`). 62 63* ARC 64 65* ARM 66 67* ARM64 68 69* RISC-V 70 71 * Implements :c:func:`arch_current_thread_set` & :c:func:`arch_current_thread`, which can be enabled 72 by :kconfig:option:`CONFIG_RISCV_CURRENT_VIA_GP` (:github:`80716`). 73 74* Xtensa 75 76* native/POSIX 77 78 * :kconfig:option:`CONFIG_NATIVE_APPLICATION` has been deprecated. 79 * For the native_sim target :kconfig:option:`CONFIG_NATIVE_SIM_NATIVE_POSIX_COMPAT` has been 80 switched to ``n`` by default, and this option has been deprecated. 81 82Kernel 83****** 84 85Bluetooth 86********* 87 88* Audio 89 90* Host 91 92 * :kconfig:option:`CONFIG_BT_BUF_ACL_RX_COUNT` has been deprecated and 93 :kconfig:option:`CONFIG_BT_BUF_ACL_RX_COUNT_EXTRA` has been added. 94 95* HCI Drivers 96 97* Mesh 98 99 * Introduced a :c:member:`bt_mesh_health_cli::update` callback which is used to update the message 100 published periodically. 101 102Boards & SoC Support 103******************** 104 105* Added support for these SoC series: 106 107 * Added Raspberry Pi RP2350 108 109* Made these changes in other SoC series: 110 111* Added support for these boards: 112 113 * :zephyr:board:`Raspberry Pi Pico 2 <rpi_pico2>`: ``rpi_pico2`` 114 * :zephyr:board:`Adafruit QT Py ESP32-S3 <adafruit_qt_py_esp32s3>`: ``adafruit_qt_py_esp32s3`` 115 116* Made these board changes: 117 118 * All HWMv1 board name aliases which were added as deprecated in v3.7 are now removed 119 (:github:`82247`). 120 * ``mimxrt1050_evk`` and ``mimxrt1060_evk`` revisions for ``qspi`` and ``hyperflash`` have been 121 converted into variants. ``mimxrt1060_evkb`` has been converted into revision ``B`` of 122 ``mimxrt1060_evk``. 123 * Enabled USB, RTC on NXP ``frdm_mcxn236`` 124 125* Added support for the following shields: 126 127Build system and Infrastructure 128******************************* 129 130* Space-separated lists support has been removed from Twister configuration 131 files. This feature was deprecated a long time ago. Projects that do still use 132 them can use the :zephyr_file:`scripts/utils/twister_to_list.py` script to 133 automatically migrate Twister configuration files. 134 135* Twister 136 137 * Test Case names for Ztest now include Ztest suite name, so the resulting identifier has 138 three sections and looks like: ``<test_scenario_name>.<ztest_suite_name>.<ztest_name>``. 139 These extended identifiers are used in log output, twister.json and testplan.json, 140 as well as for ``--sub-test`` command line parameters (:github:`80088`). 141 * The ``--no-detailed-test-id`` command line option also shortens Ztest Test Case names excluding 142 its Test Scenario name prefix which is the same as the parent Test Suite id (:github:`82302`). 143 Twister XML reports have full testsuite name as ``testcase.classname property`` resolving 144 possible duplicate testcase elements in ``twister_report.xml`` testsuite container. 145 146Drivers and Sensors 147******************* 148 149* ADC 150 151* Battery 152 153* CAN 154 155* Charger 156 157* Clock control 158 159* Counter 160 161* DAC 162 163* Disk 164 165* Display 166 167 * Added flag ``frame_incomplete`` to ``display_write`` that indicates whether a write is the last 168 write of the frame, allowing display drivers to implement double buffering / tearing enable 169 signal handling (:github:`81250`) 170 * Added ``frame_incomplete`` handling to SDL display driver (:dtcompatible:`zephyr,sdl-dc`) 171 (:github:`81250`) 172 * Added transparency support to SDL display driver (:dtcompatible:`zephyr,sdl-dc`) (:github:`81184`) 173 174* Ethernet 175 176* Flash 177 178 * NXP MCUX FlexSPI: Add support for 4-byte addressing mode of Micron MT25Q flash family (:github:`82532`) 179 180* FPGA 181 182 * Extracted from :dtcompatible:`lattice,ice40-fpga` the compatible and driver for 183 :dtcompatible:`lattice,ice40-fpga-bitbang`. This replaces the original ``load_mode`` property from 184 the binding, which selected either the SPI or GPIO bitbang load mode. 185 186* GNSS 187 188* GPIO 189 190* Hardware info 191 192* I2C 193 194* I2S 195 196* I3C 197 198* Input 199 200* LED 201 202 * Added a new set of devicetree based LED APIs, see :c:struct:`led_dt_spec`. 203 * lp5569: added use of auto-increment functionality. 204 * lp5569: implemented ``write_channels`` api. 205 * lp5569: demonstrate ``led_write_channels`` in the sample. 206 207* LED Strip 208 209* LoRa 210 211* Mailbox 212 213* MDIO 214 215* MFD 216 217* Modem 218 219* MIPI-DBI 220 221* MSPI 222 223* Pin control 224 225 * Added new driver for Silabs Series 2 (:dtcompatible:`silabs,dbus-pinctrl`). 226 227* PWM 228 229* Regulators 230 231* Reset 232 233* RTC 234 235* RTIO 236 237* SDHC 238 239* Sensors 240 241* Serial 242 243* SPI 244 245* Stepper 246 247 * Added driver for ADI TMC2209. :dtcompatible:`adi,tmc2209`. 248 * Added driver for TI DRV8424. :dtcompatible:`ti,drv8424`. 249 * Added :kconfig:option:`CONFIG_STEP_DIR_STEPPER` to enable common functions for step/dir steppers. 250 251* USB 252 253* Video 254 255 * Changed :file:`include/zephyr/drivers/video-controls.h` to have control IDs (CIDs) matching 256 those present in the Linux kernel. 257 258* Watchdog 259 260* Wi-Fi 261 262Networking 263********** 264 265* ARP: 266 267* CoAP: 268 269* Connection manager: 270 271* DHCPv4: 272 273* DHCPv6: 274 275* DNS/mDNS/LLMNR: 276 277* gPTP/PTP: 278 279* HTTP: 280 281* IPSP: 282 283* IPv4: 284 285* IPv6: 286 287* LwM2M: 288 289* Misc: 290 291* MQTT: 292 293* Network Interface: 294 295* OpenThread: 296 297 * Removed the implicit enabling of the :kconfig:option:`CONFIG_NVS` Kconfig option by the :kconfig:option:`CONFIG_NET_L2_OPENTHREAD` symbol. 298 299* PPP 300 301* Shell: 302 303* Sockets: 304 305 * The deprecated :kconfig:option:`CONFIG_NET_SOCKETS_POSIX_NAMES` option has been removed. 306 It was a legacy option and was used to allow user to call BSD socket API while not enabling POSIX API. 307 This removal means that in order to use POSIX API socket calls, one needs to enable the 308 :kconfig:option:`CONFIG_POSIX_API` option. 309 If the application does not want or is not able to enable that option, then the socket API 310 calls need to be prefixed by a ``zsock_`` string. 311 312* Syslog: 313 314* TCP: 315 316* Websocket: 317 318* Wi-Fi: 319 320 * hostap: Removed the unused default Crypto module :kconfig:option:`CONFIG_WIFI_NM_WPA_SUPPLICANT_CRYPTO` Kconfig option. 321 322* zperf: 323 324USB 325*** 326 327Devicetree 328********** 329 330* Added :c:macro:`DT_ANY_INST_HAS_BOOL_STATUS_OKAY`. 331 332Kconfig 333******* 334 335Libraries / Subsystems 336********************** 337 338* Debug 339 340* Demand Paging 341 342* Formatted output 343 344* Management 345 346* Logging 347 348* Modem modules 349 350* Power management 351 352* Crypto 353 354 * The Kconfig symbol :kconfig:option:`CONFIG_MBEDTLS_PSA_STATIC_KEY_SLOTS` was 355 added to allow Mbed TLS to use statically allocated buffers to store key material 356 in its PSA Crypto core instead of heap-allocated ones. This can help reduce 357 (or remove, if no other component makes use of it) heap memory requirements 358 from the final application. 359 360 * The Kconfig symbol :kconfig:option:`CONFIG_MBEDTLS_PSA_KEY_SLOT_COUNT` was 361 added to allow selecting the number of key slots available in the Mbed TLS 362 implementation of the PSA Crypto core. It defaults to 16. Since each 363 slot consumes RAM memory even if unused, this value can be tweaked in order 364 to minimize RAM usage. 365 366* CMSIS-NN 367 368* FPGA 369 370* Random 371 372* SD 373 374* State Machine Framework 375 376* Storage 377 378 * Shell: :kconfig:option:`CONFIG_FILE_SYSTEM_SHELL_MOUNT_COMMAND` was added, 379 allowing the mount subcommand to be optionally disabled. This can reduce 380 flash and RAM usage since it requires the heap to be present. 381 382* Task Watchdog 383 384* POSIX API 385 386* LoRa/LoRaWAN 387 388* ZBus 389 390HALs 391**** 392 393* Nordic 394 395* STM32 396 397* ADI 398 399* Espressif 400 401MCUboot 402******* 403 404OSDP 405**** 406 407Trusted Firmware-M 408****************** 409 410LVGL 411**** 412 413* Added ``frame_incomplete`` support to indicate whether a write is the last 414 write of the frame (:github:`81250`) 415 416Tests and Samples 417***************** 418 419* Fixed incorrect alpha values in :zephyr_file:`samples/drivers/display`. (:github:`81184`) 420* Added :zephyr_file:`samples/modules/lvgl/screen_transparency`. (:github:`81184`) 421 422Issue Related Items 423******************* 424 425Known Issues 426============ 427