| :orphan: |
| |
| .. _zephyr_3.7: |
| |
| Zephyr 3.7.0 (Working Draft) |
| ############################ |
| |
| We are pleased to announce the release of Zephyr version 3.7.0. |
| |
| Major enhancements with this release include: |
| |
| * A new, completely overhauled hardware model has been introduced. This changes |
| the way both SoCs and boards are named, defined and constructed in Zephyr. |
| Additional information can be found in the :ref:`board_porting_guide`. |
| * Zephyr now requires Python 3.10 or higher |
| * Trusted Firmware-M (TF-M) 2.1.0 and Mbed TLS 3.6.0 have been integrated into Zephyr. |
| Both of these versions are LTS releases. |
| |
| An overview of the changes required or recommended when migrating your application from Zephyr |
| v3.6.0 to Zephyr v3.7.0 can be found in the separate :ref:`migration guide<migration_3.7>`. |
| |
| The following sections provide detailed lists of changes by component. |
| |
| Security Vulnerability Related |
| ****************************** |
| The following CVEs are addressed by this release: |
| |
| More detailed information can be found in: |
| https://docs.zephyrproject.org/latest/security/vulnerabilities.html |
| |
| * CVE-2024-3077 `Zephyr project bug tracker GHSA-gmfv-4vfh-2mh8 |
| <https://github.com/zephyrproject-rtos/zephyr/security/advisories/GHSA-gmfv-4vfh-2mh8>`_ |
| |
| * CVE-2024-3332 Under embargo until 2024-07-01 |
| |
| * CVE-2024-4785: Under embargo until 2024-08-07 |
| |
| * CVE-2024-5754: Under embargo until 2024-09-04 |
| |
| * CVE-2024-5931: Under embargo until 2024-09-10 |
| |
| * CVE-2024-6135: Under embargo until 2024-09-11 |
| |
| API Changes |
| *********** |
| |
| Removed APIs in this release |
| ============================ |
| |
| * The Bluetooth subsystem specific debug symbols are removed. They have been replaced with the |
| Zephyr logging ones. |
| |
| * Removed deprecated ``pcie_probe`` and ``pcie_bdf_lookup`` functions from the PCIe APIs. |
| |
| * Removed deprecated ``CONFIG_EMUL_EEPROM_AT2X`` Kconfig option. |
| |
| Deprecated in this release |
| ========================== |
| |
| * Bluetooth advertiser options :code:`BT_LE_ADV_OPT_USE_NAME` and |
| :code:`BT_LE_ADV_OPT_FORCE_NAME_IN_AD` are now deprecated. That means the following macro are |
| deprecated: |
| |
| * :c:macro:`BT_LE_ADV_CONN_NAME` |
| * :c:macro:`BT_LE_ADV_CONN_NAME_AD` |
| * :c:macro:`BT_LE_ADV_NCONN_NAME` |
| * :c:macro:`BT_LE_EXT_ADV_CONN_NAME` |
| * :c:macro:`BT_LE_EXT_ADV_SCAN_NAME` |
| * :c:macro:`BT_LE_EXT_ADV_NCONN_NAME` |
| * :c:macro:`BT_LE_EXT_ADV_CODED_NCONN_NAME` |
| |
| Application developer will now need to set the advertised name themselves by updating the advertising data |
| or the scan response data. |
| |
| * CAN |
| |
| * Deprecated the :c:func:`can_calc_prescaler` API function, as it allows for bitrate |
| errors. Bitrate errors between nodes on the same network leads to them drifting apart after the |
| start-of-frame (SOF) synchronization has taken place, leading to bus errors. |
| * Deprecated the :c:func:`can_get_min_bitrate` and :c:func:`can_get_max_bitrate` API functions in |
| favor of :c:func:`can_get_bitrate_min` and :c:func:`can_get_bitrate_max`. |
| * Deprecated the :c:macro:`CAN_MAX_STD_ID` and :c:macro:`CAN_MAX_EXT_ID` macros in favor of |
| :c:macro:`CAN_STD_ID_MASK` and :c:macro:`CAN_EXT_ID_MASK`. |
| |
| .. _zephyr_3.7_posix_api_deprecations: |
| |
| * POSIX API |
| |
| * Deprecated :c:macro:`PTHREAD_BARRIER_DEFINE` has been removed. |
| * Deprecated :c:macro:`EFD_IN_USE` and :c:macro:`EFD_FLAGS_SET` have been removed. |
| |
| * In efforts to use Kconfig options that map directly to the Options and Option Groups in |
| IEEE 1003.1-2017, the following Kconfig options have been deprecated (replaced by): |
| |
| * :kconfig:option:`CONFIG_EVENTFD_MAX` (:kconfig:option:`CONFIG_ZVFS_EVENTFD_MAX`) |
| * :kconfig:option:`CONFIG_FNMATCH` (:kconfig:option:`CONFIG_POSIX_C_LIB_EXT`) |
| * :kconfig:option:`CONFIG_GETENTROPY` (:kconfig:option:`CONFIG_POSIX_C_LIB_EXT`) |
| * :kconfig:option:`CONFIG_GETOPT` (:kconfig:option:`CONFIG_POSIX_C_LIB_EXT`) |
| * :kconfig:option:`CONFIG_MAX_PTHREAD_COUNT` (:kconfig:option:`CONFIG_POSIX_THREAD_THREADS_MAX`) |
| * :kconfig:option:`CONFIG_MAX_PTHREAD_KEY_COUNT` (:kconfig:option:`CONFIG_POSIX_THREAD_KEYS_MAX`) |
| * :kconfig:option:`CONFIG_MAX_TIMER_COUNT` (:kconfig:option:`CONFIG_POSIX_TIMER_MAX`) |
| * :kconfig:option:`CONFIG_POSIX_LIMITS_RTSIG_MAX` (:kconfig:option:`CONFIG_POSIX_RTSIG_MAX`) |
| * :kconfig:option:`CONFIG_POSIX_CLOCK` (:kconfig:option:`CONFIG_POSIX_CLOCK_SELECTION`, |
| :kconfig:option:`CONFIG_POSIX_CPUTIME`, :kconfig:option:`CONFIG_POSIX_MONOTONIC_CLOCK`, |
| :kconfig:option:`CONFIG_POSIX_TIMERS`, and :kconfig:option:`CONFIG_POSIX_TIMEOUTS`) |
| * :kconfig:option:`CONFIG_POSIX_CONFSTR` (:kconfig:option:`CONFIG_POSIX_SINGLE_PROCESS`) |
| * :kconfig:option:`CONFIG_POSIX_ENV` (:kconfig:option:`CONFIG_POSIX_SINGLE_PROCESS`) |
| * :kconfig:option:`CONFIG_POSIX_FS` (:kconfig:option:`CONFIG_POSIX_FILE_SYSTEM`) |
| * :kconfig:option:`CONFIG_POSIX_MAX_FDS` (:kconfig:option:`CONFIG_POSIX_OPEN_MAX` and |
| :kconfig:option:`CONFIG_ZVFS_OPEN_MAX`) |
| * :kconfig:option:`CONFIG_POSIX_MAX_OPEN_FILES` (:kconfig:option:`CONFIG_POSIX_OPEN_MAX` and |
| :kconfig:option:`CONFIG_ZVFS_OPEN_MAX`) |
| * :kconfig:option:`CONFIG_POSIX_MQUEUE` (:kconfig:option:`CONFIG_POSIX_MESSAGE_PASSING`) |
| * :kconfig:option:`CONFIG_POSIX_PUTMSG` (:kconfig:option:`CONFIG_XOPEN_STREAMS`) |
| * :kconfig:option:`CONFIG_POSIX_SIGNAL` (:kconfig:option:`CONFIG_POSIX_SIGNALS`) |
| * :kconfig:option:`CONFIG_POSIX_SYSCONF` (:kconfig:option:`CONFIG_POSIX_SINGLE_PROCESS`) |
| * :kconfig:option:`CONFIG_POSIX_SYSLOG` (:kconfig:option:`CONFIG_XSI_SYSTEM_LOGGING`) |
| * :kconfig:option:`CONFIG_POSIX_UNAME` (:kconfig:option:`CONFIG_POSIX_SINGLE_PROCESS`) |
| * :kconfig:option:`CONFIG_PTHREAD` (:kconfig:option:`CONFIG_POSIX_THREADS`) |
| * :kconfig:option:`CONFIG_PTHREAD_BARRIER` (:kconfig:option:`CONFIG_POSIX_BARRIERS`) |
| * :kconfig:option:`CONFIG_PTHREAD_COND` (:kconfig:option:`CONFIG_POSIX_THREADS`) |
| * :kconfig:option:`CONFIG_PTHREAD_IPC` (:kconfig:option:`CONFIG_POSIX_THREADS`) |
| * :kconfig:option:`CONFIG_PTHREAD_KEY` (:kconfig:option:`CONFIG_POSIX_THREADS`) |
| * :kconfig:option:`CONFIG_PTHREAD_MUTEX` (:kconfig:option:`CONFIG_POSIX_THREADS`) |
| * :kconfig:option:`CONFIG_PTHREAD_RWLOCK` (:kconfig:option:`CONFIG_POSIX_READER_WRITER_LOCKS`) |
| * :kconfig:option:`CONFIG_PTHREAD_SPINLOCK` (:kconfig:option:`CONFIG_POSIX_SPIN_LOCKS`) |
| * :kconfig:option:`CONFIG_SEM_NAMELEN_MAX` (:kconfig:option:`CONFIG_POSIX_SEM_NAMELEN_MAX`) |
| * :kconfig:option:`CONFIG_SEM_VALUE_MAX` (:kconfig:option:`CONFIG_POSIX_SEM_VALUE_MAX`) |
| * :kconfig:option:`CONFIG_TIMER` (:kconfig:option:`CONFIG_POSIX_TIMERS`) |
| * :kconfig:option:`CONFIG_TIMER_DELAYTIMER_MAX` (:kconfig:option:`CONFIG_POSIX_DELAYTIMER_MAX`) |
| |
| Please see the :ref:`POSIX API migration guide <zephyr_3.7_posix_api_migration>`. |
| |
| * SPI |
| |
| * Deprecated :c:func:`spi_is_ready` API function has been removed. |
| * Deprecated :c:func:`spi_transceive_async` API function has been removed. |
| * Deprecated :c:func:`spi_read_async` API function has been removed. |
| * Deprecated :c:func:`spi_write_async` API function has been removed. |
| |
| Architectures |
| ************* |
| |
| * ARC |
| |
| * ARM |
| |
| * ARM64 |
| |
| * Implemented symbol names in the backtraces, enable by selecting :kconfig:option:`CONFIG_SYMTAB` |
| |
| * RISC-V |
| |
| * The fatal error message triggered from a fault now contains the callee-saved-registers states. |
| |
| * Implemented stack unwinding |
| |
| * Frame-pointer can be selected to enable precise stack traces at the expense of slightly |
| increased size and decreased speed. |
| |
| * Symbol names can be enabled by selecting :kconfig:option:`CONFIG_EXCEPTION_STACK_TRACE_SYMTAB` |
| |
| * Xtensa |
| |
| Kernel |
| ****** |
| |
| * Added :c:func:`k_uptime_seconds` function to simplify `k_uptime_get() / 1000` usage. |
| |
| * Added :c:func:`k_realloc`, that uses kernel heap to implement traditional :c:func:`realloc` |
| semantics. |
| |
| Bluetooth |
| ********* |
| * Audio |
| |
| * Removed ``err`` from :c:struct:`bt_bap_broadcast_assistant_cb.recv_state_removed` as it was |
| redundant. |
| |
| * The broadcast_audio_assistant sample has been renamed to bap_broadcast_assistant. |
| The broadcast_audio_sink sample has been renamed to bap_broadcast_sink. |
| The broadcast_audio_source sample has been renamed to bap_broadcast_source. |
| The unicast_audio_client sample has been renamed to bap_unicast_client. |
| The unicast_audio_server sample has been renamed to bap_unicast_server. |
| The public_broadcast_sink sample has been renamed to pbp_public_broadcast_sink. |
| The public_broadcast_source sample has been renamed to pbp_public_broadcast_source. |
| |
| * The CAP Commander and CAP Initiator now no longer require CAS to be discovered for |
| :code:`BT_CAP_SET_TYPE_AD_HOC` sets. This allows applications to use these APIs on e.g. |
| BAP Unicast Servers that do not implement the CAP Acceptor role. |
| |
| * Host |
| |
| * Added Nordic UART Service (NUS), enabled by the :kconfig:option:`CONFIG_BT_ZEPHYR_NUS`. |
| This Service exposes the ability to declare multiple instances of the GATT service, |
| allowing multiple serial endpoints to be used for different purposes. |
| |
| * Implemented Hands-free Audio Gateway (AG), enabled by the :kconfig:option:`CONFIG_BT_HFP_AG`. |
| It works as a device that is the gateway of the audio. Typical device acting as Audio |
| Gateway is cellular phone. It controls the device (Hands-free Unit), that is the remote |
| audio input and output mechanism. |
| |
| * Implemented Advanced Audio Distribution Profile (A2DP) and Audio/Video Distribution Transport |
| Protocol (AVDTP), A2DP is enabled by :kconfig:option:`CONFIG_BT_A2DP`, AVDTP is enabled |
| by :kconfig:option:`CONFIG_BT_AVDTP`. They implement the protocols and procedures that |
| realize distribution of audio content of high quality in mono, stereo, or multi-channel modes. |
| A typical use case is the streaming of music content from a stereo music player to headphones |
| or speakers. The audio data is compressed in a proper format for efficient use of the limited |
| bandwidth. |
| |
| * Reworked the transmission path for data and commands. The "BT TX" thread has been removed, along |
| with the buffer pools for HCI fragments and L2CAP segments. All communication with the |
| Controller is now exclusively done in the system workqueue context. |
| |
| * HCI Driver |
| |
| * Added support for Ambiq Apollo3 Blue series. |
| |
| Boards & SoC Support |
| ******************** |
| |
| * Added support for these SoC series: |
| |
| * Added support for Ambiq Apollo3 Blue and Apollo3 Blue Plus SoC series. |
| |
| * Made these changes in other SoC series: |
| |
| * ITE: Rename the Kconfig symbol for all ITE SoC variants. |
| |
| * Added support for these ARM boards: |
| |
| * Added support for :ref:`Ambiq Apollo3 Blue board <apollo3_evb>`: ``apollo3_evb``. |
| * Added support for :ref:`Ambiq Apollo3 Blue Plus board <apollo3p_evb>`: ``apollo3p_evb``. |
| * Added support for :ref:`Raspberry Pi 5 board <rpi_5>`: ``rpi_5``. |
| * Added support for :ref:`Seeed Studio XIAO RP2040 board <xiao_rp2040>`: ``xiao_rp2040``. |
| * Added support for :ref:`Mikroe RA4M1 Clicker board <mikroe_clicker_ra4m1>`: ``mikroe_clicker_ra4m1``. |
| * Added support for :ref:`Arduino UNO R4 WiFi board <arduino_uno_r4>`: : ``arduino_uno_r4_wifi``. |
| |
| * Added support for these Xtensa boards: |
| |
| * Made these changes for ARM boards: |
| |
| * Made these changes for RISC-V boards: |
| |
| * Made these changes for native/POSIX boards: |
| |
| * Introduced the simulated :ref:`nrf54l15bsim<nrf54l15bsim>` target. |
| |
| * The nrf5x bsim targets now support BT LE Coded PHY. |
| |
| * LLVM fuzzing support has been refactored while adding support for it in native_sim. |
| |
| * Added support for these following shields: |
| |
| Build system and Infrastructure |
| ******************************* |
| |
| * CI-enabled blackbox tests were added in order to verify correctness of the vast majority of Twister flags. |
| |
| * A ``socs`` folder for applications has been introduced that allows for Kconfig fragments and |
| devicetree overlays that should apply to any board target using a particular SoC and board |
| qualifier. |
| |
| * :ref:`Board/SoC flashing configuration<flashing-soc-board-config>` settings have been added. |
| |
| * Deprecated the global CSTD cmake property in favor of the :kconfig:option:`CONFIG_STD_C` |
| choice to select the C Standard version. Additionally subsystems can select a minimum |
| required C Standard version, with for example :kconfig:option:`CONFIG_REQUIRES_STD_C11`. |
| |
| * Fixed issue with passing UTF-8 configs to applications using sysbuild. |
| |
| * Fixed issue whereby domain file in sysbuild projects would be loaded and used with outdated |
| information if sysbuild configuration was changed, and ``west flash`` was ran directly after. |
| |
| * Fixed issue with Zephyr modules not being listed in sysbuild if they did not have a Kconfig |
| file set. |
| |
| * Add sysbuild ``SB_CONFIG_COMPILER_WARNINGS_AS_ERRORS`` Kconfig option to turn on |
| "warning as error" toolchain flags for all images, if set. |
| |
| * Fixed issue whereby files used in a project (e.g. devicetree overlays or Kconfig fragments) |
| were not correctly watched and CMake would not reconfigure if they were changed. |
| |
| * Added flash support for Intel Hex files for the LinkServer runner. |
| |
| Drivers and Sensors |
| ******************* |
| |
| * ADC |
| |
| * Auxiliary Display |
| |
| * Audio |
| |
| * Battery |
| |
| * Added ``re-charge-voltage-microvolt`` property to the ``battery`` binding. This allows to set |
| limit to automatically start charging again. |
| |
| * Battery backed up RAM |
| |
| * CAN |
| |
| * Added :c:func:`can_get_bitrate_min` and :c:func:`can_get_bitrate_max` for retrieving the minimum |
| and maximum supported bitrate for a given CAN controller/CAN transceiver combination, reflecting |
| that retrieving the bitrate limits can no longer fail. Deprecated the existing |
| :c:func:`can_get_min_bitrate` and :c:func:`can_get_max_bitrate` API functions. |
| * Extended support for automatic sample point location to also cover :c:func:`can_calc_timing` and |
| :c:func:`can_calc_timing_data`. |
| * Added optional ``min-bitrate`` devicetree property for CAN transceivers. |
| * Added devicetree macros :c:macro:`DT_CAN_TRANSCEIVER_MIN_BITRATE` and |
| :c:macro:`DT_INST_CAN_TRANSCEIVER_MIN_BITRATE` for getting the minimum supported bitrate of a CAN |
| transceiver. |
| * Added support for specifying the minimum bitrate supported by a CAN controller in the internal |
| ``CAN_DT_DRIVER_CONFIG_GET`` and ``CAN_DT_DRIVER_CONFIG_INST_GET`` macros. |
| * Added a new CAN controller API function :c:func:`can_get_bitrate_min` for getting the minimum |
| supported bitrate of a CAN controller/transceiver combination. |
| * Updated the CAN timing functions to take the minimum supported bitrate into consideration when |
| validating the bitrate. |
| * Made the ``sample-point`` and ``sample-point-data`` devicetree properties optional. |
| * Renamed the ``bus_speed`` and ``bus_speed_data`` fields of :c:struct:`can_driver_config` to |
| ``bitrate`` and ``bitrate_data``. |
| * Added driver for :dtcompatible:`nordic,nrf-can`. |
| * Added driver support for Numaker M2l31x to the :dtcompatible:`nuvoton,numaker-canfd` driver. |
| * Added host communication test suite. |
| |
| * Charger |
| |
| * Added ``chgin-to-sys-current-limit-microamp`` property to ``maxim,max20335-charger``. |
| * Added ``system-voltage-min-threshold-microvolt`` property to ``maxim,max20335-charger``. |
| * Added ``re-charge-threshold-microvolt`` property to ``maxim,max20335-charger``. |
| * Added ``thermistor-monitoring-mode`` property to ``maxim,max20335-charger``. |
| |
| * Clock control |
| |
| * Counter |
| |
| * Added support for Ambiq Apollo3 series. |
| |
| * Crypto |
| |
| * Disk |
| |
| * Support for eMMC devices was added to the STM32 SD driver. This can |
| be enabled with :kconfig:option:`CONFIG_SDMMC_STM32_EMMC`. |
| * Added a loopback disk driver, to expose a disk device backed by a file. |
| A file can be registered with the loopback disk driver using |
| :c:func:`loopback_disk_access_register` |
| * Added support for :c:macro:`DISK_IOCTL_CTRL_INIT` and |
| :c:macro:`DISK_IOCTL_CTRL_DEINIT` macros, which allow for initializing |
| and de-initializing a disk at runtime. This allows hotpluggable |
| disk devices (like SD cards) to be removed and reinserted at runtime. |
| |
| * Display |
| |
| * All in tree displays capable of supporting the :ref:`mipi_dbi_api` have |
| been converted to use it. GC9X01X, UC81XX, SSD16XX, ST7789V, ST7735R based |
| displays have been converted to this API. Boards using these displays will |
| need their devicetree updated, see the display section of |
| :ref:`migration_3.7` for examples of this process. |
| * Added driver for ST7796S display controller (:dtcompatible:`sitronix,st7796s`) |
| * Added support for :c:func:`display_read` API to ILI9XXX display driver, |
| which can be enabled with :kconfig:option:`CONFIG_ILI9XXX_READ` |
| * Added support for :c:func:`display_set_orientation` API to SSD16XXX |
| display driver |
| * Added driver for NT35510 MIPI-DSI display controller |
| (:dtcompatible:`frida,nt35510`) |
| * Added driver to abstract LED strip devices as displays |
| (:dtcompatible:`led-strip-matrix`) |
| * Added support for :c:func:`display_set_pixel_format` API to NXP eLCDIF |
| driver. ARGB8888, RGB888, and BGR565 formats are supported. |
| * Added support for inverting color at runtime to the SSD1306 driver, via |
| the :c:func:`display_set_pixel_format` API. |
| * Inversion mode can now be disabled in the ST7789V driver |
| (:dtcompatible:`sitronix,st7789v`) using the ``inversion-off`` property. |
| |
| * DMA |
| |
| * Entropy |
| |
| * EEPROM |
| |
| * Added property for specifying ``address-width`` to :dtcompatible:`zephyr,i2c-target-eeprom`. |
| |
| * eSPI |
| |
| * Renamed eSPI virtual wire direction macros, enum values and KConfig to match the new |
| terminology in eSPI 1.5 specification. |
| |
| * Ethernet |
| |
| * Deprecated eth_mcux driver in favor of the reworked nxp_enet driver. |
| * Driver nxp_enet is no longer experimental. |
| * All boards and SOCs with :dtcompatible:`nxp,kinetis-ethernet` compatible nodes |
| reworked to use the new :dtcompatible:`nxp,enet` binding. |
| |
| * Flash |
| |
| * Added support for Ambiq Apollo3 series. |
| * Added support for multiple instances of the SPI NOR driver (spi_nor.c). |
| * Added preliminary support for non-erase devices with introduction of |
| device capabilities to c:struct:`flash_parameters` and the utility function |
| c:func:`flash_params_get_erase_cap` that allows to obtain the erase type |
| provided by a device; added c:macro:`FLASH_ERASE_C_EXPLICIT`, which is |
| currently the only supported erase type and is set by all flash devices. |
| * Added the c:func:`flash_flatten` function that can be used on devices, |
| with or without erase requirement, when erase has been used not for preparing |
| a device for a random data write, but rather to remove/scramble data from |
| that device. |
| * Added the c:func:`flash_fill` utility function which allows to write |
| a single value across a provided range in a selected device. |
| * Added support for RRAM on nrf54l15 devices. |
| |
| * GNSS |
| |
| * GPIO |
| |
| * Added support for Ambiq Apollo3 series. |
| * Added Broadcom Set-top box(brcmstb) SoC GPIO driver. |
| |
| * I2C |
| |
| * Added support for Ambiq Apollo3 series. |
| |
| * I2S |
| |
| * I3C |
| |
| * IEEE 802.15.4 |
| |
| * Input |
| |
| * New drivers: :dtcompatible:`adc-keys`, :dtcompatible:`chipsemi,chsc6x`, |
| :dtcompatible:`cirque,pinnacle`, :dtcompatible:`futaba,sbus`, |
| :dtcompatible:`pixart,pat912x`, :dtcompatible:`pixart,paw32xx`, |
| :dtcompatible:`pixart,pmw3610` and :dtcompatible:`sitronix,cf1133`. |
| * Migrated :dtcompatible:`holtek,ht16k33` and |
| :dtcompatible:`microchip,xec-kbd` from kscan to input subsystem. |
| |
| * LED Strip |
| |
| * The ``chain-length`` and ``color-mapping`` properties have been added to all LED strip |
| bindings. |
| |
| |
| * LoRa |
| |
| * Added driver for Reyax LoRa module |
| |
| * MDIO |
| |
| * MFD |
| |
| * Modem |
| |
| * Removed deprecated ``GSM_PPP`` driver along with its dts compatible ``zephyr,gsm-ppp``. |
| |
| * Removed deprecated ``UART_MUX`` and ``GSM_MUX`` previously used by ``GSM_PPP``. |
| |
| * Removed support for dts compatible ``zephyr,gsm-ppp`` from ``MODEM_CELLULAR`` driver. |
| |
| * Removed integration with ``UART_MUX`` from ``MODEM_IFACE_UART_INTERRUPT`` module. |
| |
| * Removed integration with ``UART_MUX`` from ``MODEM_SHELL`` module. |
| |
| * Implemented modem pipelinks in ``MODEM_CELLULAR`` driver for additional DLCI channels |
| available by the different modems. This includes generic AT mode DLCI channels, named |
| ``user_pipe_<index>`` and DLCI channels reserved for GNSS tunneling named |
| ``gnss_pipe``. |
| |
| * Added new set of shell commands for sending AT commands directly to a modem using the |
| newly implemented modem pipelinks. The implementation of the new shell commands is |
| both functional and together with the ``MODEM_CELLULAR`` driver will provide an |
| example of how implement and use the modem pipelink module. |
| |
| * PCIE |
| |
| * MEMC |
| |
| * MIPI-DBI |
| |
| * Pin control |
| |
| * PWM |
| |
| * Regulators |
| |
| * Reset |
| |
| * Added driver for reset controller on Nuvoton NPCX chips. |
| * Added reset controller driver for NXP SYSCON. |
| * Added reset controller driver for NXP RSTCTL. |
| |
| * Retained memory |
| |
| * RTC |
| |
| * Added Raspberry Pi Pico RTC driver. |
| |
| * SMBUS: |
| |
| * SDHC |
| |
| * Added ESP32 SDHC driver (:dtcompatible:`espressif,esp32-sdhc`). |
| * Added SDHC driver for Renesas MMC controller (:dtcompatible:`renesas,rcar-mmc`). |
| |
| * Sensor |
| |
| * Added TMP114 driver |
| * Added DS18S20 1-wire temperature sensor driver. |
| |
| * Serial |
| |
| * Added driver to support UART over Bluetooth LE using NUS (Nordic UART Service). This driver |
| enables using Bluetooth as a transport to all the subsystems that are currently supported by |
| UART (e.g: Console, Shell, Logging). |
| |
| * SPI |
| |
| * Added support for Ambiq Apollo3 series general IOM based SPI. |
| * Added support for Ambiq Apollo3 BLEIF based SPI, which is specific for internal HCI. |
| |
| * USB |
| |
| * W1 |
| |
| * Watchdog |
| |
| * Added :kconfig:option:`CONFIG_WDT_NPCX_WARNING_LEADING_TIME_MS` to set the leading warning time |
| in milliseconds. Removed no longer used :kconfig:option:`CONFIG_WDT_NPCX_DELAY_CYCLES`. |
| * Added support for Ambiq Apollo3 series. |
| |
| * Wi-Fi |
| |
| * Fixed message parsing for esp-at. |
| * Fixed esp-at connect failures. |
| * Implement :c:func:`bind` and :c:func:`recvfrom` for UDP sockets for esp-at. |
| * Added option for setting maximum data size for eswifi. |
| |
| Networking |
| ********** |
| |
| * ARP: |
| |
| * Added support for gratuitous ARP transmission. |
| * Fixed a possible deadlock between TX and RX threads within ARP module. |
| * Fixed a possible ARP entry leak. |
| * Improved ARP debug logs. |
| |
| * CoAP: |
| |
| * Fixed CoAP observe age overflows. |
| * Increased upper limit for CoAP retransmissions (:kconfig:option:`CONFIG_COAP_MAX_RETRANSMIT`). |
| * Fixed CoAP observations in CoAP client library. |
| * Added new CoAP client :c:func:`coap_client_cancel_requests` API which allows |
| to cancel active observations. |
| * Fixed CoAP ID generation for responses in CoAP Server sample. |
| |
| * Connection manager: |
| |
| * Added support for new net_mgmt events, which allow to track IPv4 and IPv6 |
| connectivity independently: |
| |
| * :c:macro:`NET_EVENT_L4_IPV4_CONNECTED` |
| * :c:macro:`NET_EVENT_L4_IPV4_DISCONNECTED` |
| * :c:macro:`NET_EVENT_L4_IPV6_CONNECTED` |
| * :c:macro:`NET_EVENT_L4_IPV6_DISCONNECTED` |
| |
| * DHCPv4: |
| |
| * Added support for encapsulated vendor specific options. By enabling |
| :kconfig:option:`CONFIG_NET_DHCPV4_OPTION_CALLBACKS_VENDOR_SPECIFIC` callbacks can be |
| registered with :c:func:`net_dhcpv4_add_option_vendor_callback` to handle these options after |
| being initialised with :c:func:`net_dhcpv4_init_option_vendor_callback`. |
| * Added support for the "Vendor class identifier" option. Use the |
| :kconfig:option:`CONFIG_NET_DHCPV4_VENDOR_CLASS_IDENTIFIER` to enable it and |
| :kconfig:option:`CONFIG_NET_DHCPV4_VENDOR_CLASS_IDENTIFIER_STRING` to set it. |
| * The NTP server from the DHCPv4 option can now be used to set the system time. This is done by |
| default, if :kconfig:option:`CONFIG_NET_CONFIG_CLOCK_SNTP_INIT` is enabled. |
| * The syslog server address can now be set with DHCPv4 option. This is done by |
| default, if :kconfig:option:`CONFIG_LOG_BACKEND_NET_USE_DHCPV4_OPTION` is enabled. |
| * Fixed a bug, where options with registered callbacks were not requested from |
| the server. |
| * Fixed a bug, where netmask received from the server was not applied correctly. |
| * Reimplemented DHCPv4 client RENEW/REBIND logic to be compliant with RFC2131. |
| * Improved declined addresses management in DHCPv4 server, which now can be |
| reused after configured time. |
| * Fixed including the client ID option in the DHCPv4 server response, according to RFC6842. |
| * Added :kconfig:option:`CONFIG_NET_DHCPV4_SERVER_NAK_UNRECOGNIZED_REQUESTS` which |
| allows to override RFC-defined behavior, and NAK requests from unrecognized |
| clients. |
| * Other minor fixes in DHCPv4 client and server implementations. |
| |
| * DHCPv6: |
| |
| * Fixed incorrect DHCPv6 events code base for net_mgmt events. |
| * Added :kconfig:option:`CONFIG_NET_DHCPV6_DUID_MAX_LEN` which allows to configure |
| maximum supported DUID length. |
| * Added documentation page for DHCPv6. |
| |
| * DNS/mDNS/LLMNR: |
| |
| * Fixed an issue where the mDNS Responder did not work when the mDNS Resolver was also enabled. |
| The mDNS Resolver and mDNS Responder can now be used simultaneously. |
| * Reworked LLMNR and mDNS responders, and DNS resolver to use sockets and socket services API. |
| * Added ANY query resource type. |
| * Added support for mDNS to provide records in runtime. |
| * Added support for caching DNS records. |
| * Fixed error codes returned when socket creation fails, and when all results have been returned. |
| * Fixed DNS retransmission timeout calculation. |
| |
| * gPTP/PTP: |
| |
| * Added support for IEEE 1588-2019 PTP. |
| * Added support for SO_TIMESTAMPING socket option to get timestamping information in socket |
| ancillary data. |
| * Fixed race condition on timestamp callback. |
| * Fixed clock master sync send SM if we are not the GM clock. |
| |
| * HTTP: |
| |
| * Added HTTP/2 server library and sample application with support for static, |
| dynamic and Websocket resource types. |
| * Added HTTP shell component. |
| * Improved HTTP client error reporting. |
| * Moved HTTP client library out of experimental. |
| |
| * IPSP: |
| |
| * Removed IPSP support. ``CONFIG_NET_L2_BT`` does not exist anymore. |
| |
| * IPv4: |
| |
| * Implemented IPv4 Address Conflict Detection, according to RFC 5227. |
| * Added :c:func:`net_ipv4_is_private_addr` API function. |
| * IPv4 netmask is now set individually for each address instead of being set |
| for the whole interface. |
| * Other minor fixes and improvements. |
| |
| * IPv6: |
| |
| * Implemented IPv6 Privacy Extensions according to RFC 8981. |
| * Added :c:func:`net_ipv6_is_private_addr` API function. |
| * Implemented reachability hint for IPv6. Upper layers can use |
| c:func:`net_if_nbr_reachability_hint` to report Neigbor reachability and |
| avoid unnecessary Neighbor Discovery solicitations. |
| * Added :kconfig:option:`CONFIG_NET_IPV6_MTU` allowing to set custom IPv6 MTU. |
| * Added :kconfig:option:`CONFIG_NET_MCAST_ROUTE_MAX_IFACES` which allows to set |
| multiple interfaces for multicast forwarding entries. |
| * Added :kconfig:option:`CONFIG_NET_MCAST_ROUTE_MLD_REPORTS` which allows to |
| report multicast routes in MLDv2 reports. |
| * Fixed IPv6 hop limit handling for multicast packets. |
| * Improved IPv6 Neighbor Discovery test coverage. |
| * Fixed a bug, where Neighbor Advertisement packets reporting Duplicate address |
| detection conflict were dropped. |
| * Other minor fixes and improvements. |
| |
| * LwM2M: |
| |
| * Added new API functions: |
| |
| * :c:func:`lwm2m_set_bulk` |
| * :c:func:`lwm2m_rd_client_set_ctx` |
| |
| * Added new ``offset`` parameter to :c:type:`lwm2m_engine_set_data_cb_t` callback type. |
| This affects post write and validate callbacks as well as some firmware callbacks. |
| * Fixed block context not being reset upon receiving block number 0 in block transfer. |
| * Fixed block size negotiation with the server in block transfer. |
| * Added :kconfig:option:`CONFIG_LWM2M_ENGINE_ALWAYS_REPORT_OBJ_VERSION` which |
| allows to force the client to always report object version. |
| * Block transfer is now possible with resource w/o registered callback. |
| * Fixed a bug, where an empty ACK sent from the registered callback would not |
| be sent immediately. |
| * Removed deprecated API functions and definitions. |
| * Other minor fixes and improvements. |
| |
| * Misc: |
| |
| * Improved overall networking API doxygen documentation. |
| * Converted TFTP library to use ``zsock_*`` API. |
| * Added SNTP :c:func:`sntp_simple_addr` API function to perform SNTP query |
| when the server IP address is already known. |
| * Added :kconfig:option:`CONFIG_NET_TC_THREAD_PRIO_CUSTOM` allowing to override |
| default traffic class threads priority. |
| * Fixed the IPv6 event handler initialization order in net config library. |
| * Reworked telnet shell backend to use sockets and socket services API. |
| * Fixed double dereference of IGMP packets. |
| * Moved from ``native_posix`` to ``native_sim`` support in various tests and |
| samples. |
| * Added support for copying user data in network buffers. |
| * Fixed cloning of zero sized network buffers. |
| * Added net_buf APIs to handle 40 bit data format. |
| * Added receive callback for dummy L2, applicable in certain use cases |
| (for example packet capture). |
| * Implemented pseudo interface, a.k.a "any" interface for packet capture use |
| case. |
| * Added cooded mode capture support. This allows non-IP based network data capture. |
| * Generate network events when starting or stopping packet capture. |
| * Removed obsolete and unused ``tcp_first_msg`` :c:struct:`net_pkt` flag. |
| * Added new :zephyr:code-sample:`secure-mqtt-sensor-actuator` sample. |
| * Added support for partial L3 and L4 checksum offloading. |
| * Updated :zephyr:code-sample:`mqtt-azure` with new CA certificates, the current |
| on expires soon. |
| * Added new driver for Native Simulator offloaded sockets. |
| * Overhauled VLAN support to use Virtual network interfaces. |
| * Added statistics collection for Virtual network interfaces. |
| |
| * MQTT: |
| |
| * Added ALPN support for MQTT TLS backend. |
| * Added user data field in :c:struct:`mqtt_client` context structure. |
| |
| * Network Interface: |
| |
| * Added new API functions: |
| |
| * :c:func:`net_if_ipv4_maddr_foreach` |
| * :c:func:`net_if_ipv6_maddr_foreach` |
| |
| * Improved debug logging in the network interface code. |
| * Added reference counter to the :c:struct:`net_if_addr` structure. |
| * Fixed IPv6 DAD and MLDv2 operation when interface goes up. |
| * Other minor fixes. |
| |
| * OpenThread |
| |
| * Removed deprecated ``openthread_set_state_changed_cb()`` function. |
| * Added implementation of BLE TCAT advertisement API. |
| |
| * PPP |
| |
| * Removed deprecated ``gsm_modem`` driver and sample. |
| * Optimized memory allocation in PPP driver. |
| * Misc improvements in the :zephyr:code-sample:`cellular-modem` sample |
| * Added PPP low level packet capture support. |
| |
| * Shell: |
| |
| * Added ``net ipv4 gateway`` command to set IPv4 gateway address. |
| * Added argument validation in network shell macros. |
| * Fixed net_mgmt sockets information printout. |
| * Reworked VLAN information printout. |
| * Added option to set random MAC address with ``net iface set_mac`` command. |
| * Added multicast join status when printing multicast address information. |
| |
| * Sockets: |
| |
| * Implemented new networking POSIX APIs: |
| |
| * :c:func:`if_nameindex` |
| * :c:func:`inet_ntoa` |
| * :c:func:`inet_addr` |
| |
| * Added support for tracing socket API calls. |
| * TLS sockets are no longer experimental API. |
| * Fixed the protocol field endianness for ``AF_PACKET`` type sockets. |
| * Fixed :c:func:`getsockname` for TCP. |
| * Improve :c:func:`sendmsg` support when using DTLS sockets. |
| |
| * Syslog: |
| |
| * Added new API functions: |
| |
| * :c:func:`log_backend_net_set_ip` to initialize syslog net backend with IP |
| address directly. |
| * :c:func:`log_backend_net_start` to facilitate syslog net backend activation. |
| |
| * Added structured logging support to syslog net backend. |
| * Added TCP support to syslog net backend. |
| |
| * TCP: |
| |
| * Fixed possible deadlock when accepting new TCP connection. |
| * Fixed ACK number verification during connection teardown. |
| * Fixed a bug, where data bytes included in FIN packet were ignored. |
| * Fixed a possible TCP context leak in case initial SYN packet transmission failed. |
| * Deprecated :kconfig:option:`CONFIG_NET_TCP_ACK_TIMEOUT` as it was redundant with other configs. |
| * Improved debug logs, so that they're easier to follow under heavy load. |
| * ISN generation now uses SHA-256 instead of MD5. Moreover it now relies on PSA APIs |
| instead of legacy Mbed TLS functions for hash computation. |
| |
| * Websocket: |
| |
| * Added new Websocket APIs: |
| |
| * :c:func:`websocket_register` |
| * :c:func:`websocket_unregister` |
| |
| * Converted Websocket library to use ``zsock_*`` API. |
| * Added Object Core support to Websocket sockets. |
| |
| * Wi-Fi: |
| |
| * Reduce memory usage of 5 GHz channel list. |
| * Added channel validity check in AP mode. |
| * Added support for BSSID configuration in connect call. |
| * Wifi shell help text fixes. Option parsing fixes. |
| * Support WPA auto personal security mode. |
| * Collect unicast received/sent network packet statistics. |
| * Added support for configuring RTS threshold. With this, users can set the RTS threshold |
| value or disable the RTS mechanism. |
| * Added support for configuring AP parameters. With this, users can set AP parameters at |
| build and run time. |
| * Added support to configure ``max_inactivity`` BSS parameter. Users can set this both |
| build and runtime duration to control the maximum time duration after which AP may |
| disconnect a STA due to inactivity from STA. |
| * Added support to configure ``inactivity_poll`` BSS parameter. Users can set build |
| only AP parameter to control whether AP may poll the STA before throwing away STA |
| due to inactivity. |
| * Added support to configure ``max_num_sta`` BSS parameter. Users can set this both |
| build and run time parameter to control the maximum number of STA entries. |
| |
| * zperf: |
| |
| * Fixed ``IP_TOS`` and ``IPV6_TCLASS`` options handling in zperf. |
| * Fixed throughput calculation during long zperf sessions. |
| * Fixed error on TCP upload session end in case multicast IP address was used. |
| * Fixed a bug, where IPv6 socket was bound with IPv4 address, giving error. |
| * Added an option to specify the network interface to use during zperf sessions. |
| * Added a new ``ZPERF_SESSION_PERIODIC_RESULT`` event for periodic updates |
| during TCP upload sessions. |
| * Fixed possible socket leak in case of errors during zperf session. |
| |
| USB |
| *** |
| |
| Devicetree |
| ********** |
| |
| Libraries / Subsystems |
| ********************** |
| |
| * Debug |
| |
| * symtab |
| |
| * By enabling :kconfig:option:`CONFIG_SYMTAB`, the symbol table will be |
| generated with Zephyr link stage executable on supported architectures. |
| |
| * Management |
| |
| * hawkBit |
| |
| * The hawkBit subsystem has been reworked to use the settings subsystem to store the hawkBit |
| configuration. |
| |
| * By enabling :kconfig:option:`CONFIG_HAWKBIT_SET_SETTINGS_RUNTIME`, the hawkBit settings can |
| be configured at runtime. Use the :c:func:`hawkbit_set_config` function to set the hawkBit |
| configuration. It can also be set via the hawkBit shell, by using the ``hawkbit set`` |
| command. |
| |
| * When using the hawkBit autohandler and an update is installed, the device will now |
| automatically reboot after the installation is complete. |
| |
| * By enabling :kconfig:option:`CONFIG_HAWKBIT_CUSTOM_DEVICE_ID`, a callback function can be |
| registered to set the device ID. Use the :c:func:`hawkbit_set_device_identity_cb` function to |
| register the callback. |
| |
| * By enabling :kconfig:option:`CONFIG_HAWKBIT_CUSTOM_ATTRIBUTES`, a callback function can be |
| registered to set the device attributes that are sent to the hawkBit server. Use the |
| :c:func:`hawkbit_set_custom_data_cb` function to register the callback. |
| |
| * MCUmgr |
| |
| * Instructions for the deprecated mcumgr go tool have been removed, a list of alternative, |
| supported clients can be found on :ref:`mcumgr_tools_libraries`. |
| |
| * Logging |
| |
| * By enabling :kconfig:option:`CONFIG_LOG_BACKEND_NET_USE_DHCPV4_OPTION`, the IP address of the |
| syslog server for the networking backend is set by the DHCPv4 Log Server Option (7). |
| |
| * Modem modules |
| |
| * Added modem pipelink module which shares modem pipes globally, allowing device drivers to |
| create and set up pipes for the application to use. |
| |
| * Simplified the modem pipe module's synchronization mechanism to only protect the callback |
| and user data. This matches the actual in-tree usage of the modem pipes. |
| |
| * Added ``modem_stats`` module which tracks the usage of buffers throughout the modem |
| subsystem. |
| |
| * Picolibc |
| |
| * Power management |
| |
| * Crypto |
| |
| * Mbed TLS was updated to 3.6.0. Release notes can be found at: |
| https://github.com/Mbed-TLS/mbedtls/releases/tag/v3.6.0 |
| * When any PSA crypto provider is available in the system |
| (:kconfig:option:`CONFIG_MBEDTLS_PSA_CRYPTO_CLIENT` is enabled), desired PSA features |
| must now be explicitly selected through ``CONFIG_PSA_WANT_xxx`` symbols. |
| * Choice symbols :kconfig:option:`CONFIG_MBEDTLS_PSA_CRYPTO_LEGACY_RNG` and |
| :kconfig:option:`CONFIG_MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG` were added in order |
| to allow the user to specify how Mbed TLS PSA crypto core should generate random numbers. |
| The former option, which is the default, relies on legacy entropy and CTR_DRBG/HMAC_DRBG |
| modules, while the latter relies on CSPRNG drivers. |
| * :kconfig:option:`CONFIG_MBEDTLS_PSA_P256M_DRIVER_ENABLED` enables support |
| for the Mbed TLS's p256-m driver PSA crypto library. This is a Cortex-M SW |
| optimized implementation of secp256r1 curve. |
| |
| * CMSIS-NN |
| |
| * CMSIS-NN was updated to v6.0.0 from v4.1.0: |
| https://arm-software.github.io/CMSIS-NN/latest/rev_hist.html |
| |
| * Random |
| |
| * Besides the existing :c:func:`sys_rand32_get` function, :c:func:`sys_rand8_get`, |
| :c:func:`sys_rand16_get` and :c:func:`sys_rand64_get` are now also available. |
| These functions are all implemented on top of :c:func:`sys_rand_get`. |
| |
| * Retention |
| |
| * SD |
| |
| * SDMMC and SDIO frequency and timing selection logic have been reworked, |
| to resolve an issue where a timing mode would not be selected if the |
| SDHC device in use did not report support for the maximum frequency |
| possible in that mode. Now, if the host controller and card both report |
| support for a given timing mode but not the highest frequency that |
| mode supports, the timing mode will be selected and configured at |
| the reduced frequency (:github:`72705`). |
| |
| * State Machine Framework |
| |
| * The :c:macro:`SMF_CREATE_STATE` macro now always takes 5 arguments. |
| * Transition sources that are parents of the state that was run now choose the correct Least |
| Common Ancestor for executing Exit and Entry Actions. |
| * Passing ``NULL`` to :c:func:`smf_set_state` is now not allowed. |
| |
| * Storage |
| |
| * FAT FS: It is now possible to expose file system formatting functionality for FAT without also |
| enabling automatic formatting on mount failure by setting the |
| :kconfig:option:`CONFIG_FS_FATFS_MKFS` Kconfig option. This option is enabled by default if |
| :kconfig:option:`CONFIG_FILE_SYSTEM_MKFS` is set. |
| |
| * FS: It is now possible to truncate a file while opening using :c:func:`fs_open` |
| and by passing ``FS_O_TRUNC`` flag. |
| |
| * Flash Map: TinyCrypt has been replaced with PSA Crypto in Flash Area integrity check. |
| |
| * Flash Map: :c:func:`flash_area_flatten` has been added to be used where an erase |
| operation has been previously used for removing/scrambling data rather than |
| to prepare a device for a random data write. |
| |
| * Flash Map: :c:macro:`FIXED_PARTITION_NODE_OFFSET`, :c:macro:`FIXED_PARTITION_NODE_SIZE` |
| and :c:macro:`FIXED_PARTITION_NODE_DEVICE` have been added to allow obtaining |
| fixed partition information from a devicetree node rather than a label. |
| |
| * POSIX API |
| |
| * LoRa/LoRaWAN |
| |
| * Added the Fragmented Data Block Transport service, which can be enabled via |
| :kconfig:option:`CONFIG_LORAWAN_FRAG_TRANSPORT`. In addition to the default fragment decoder |
| implementation from Semtech, an in-tree implementation with reduced memory footprint is |
| available. |
| |
| * Added a sample to demonstrate LoRaWAN firmware-upgrade over the air (FUOTA). |
| |
| * ZBus |
| |
| HALs |
| **** |
| |
| * STM32 |
| |
| MCUboot |
| ******* |
| |
| * Fixed memory leak in bootutil HKDF implementation |
| |
| * Fixed enforcing TLV entries to be protected |
| |
| * Fixed disabling instruction/data caches |
| |
| * Fixed estimated image overhead size calculation |
| |
| * Fixed issue with swap-move algorithm failing to validate multiple-images |
| |
| * Fixed align script error in imgtool |
| |
| * Fixed img verify for hex file format in imgtool |
| |
| * Fixed issue with reading the flash image reset vector |
| |
| * Fixed too-early ``check_config.h`` include in mbedtls |
| |
| * Refactored image dependency functions to reduce code size |
| |
| * Added MCUboot support for ``ESP32-C6`` |
| |
| * Added optional MCUboot boot banner |
| |
| * Added TLV querying for protected region |
| |
| * Added using builtin keys for verification in bootutil |
| |
| * Added builtin ECDSA key support for PSA Crypto backend |
| |
| * Added ``OVERWRITE_ONLY_KEEP_BACKUP`` option for secondary images |
| |
| * Added defines for ``SOC_FLASH_0_ID`` and ``SPI_FLASH_0_ID`` |
| |
| * The MCUboot version in this release is version ``2.1.0+0-dev``. |
| |
| Trusted Firmware-M |
| ****************** |
| |
| * TF-M was updated to 2.1.0. Release notes can be found at: |
| https://tf-m-user-guide.trustedfirmware.org/releases/2.1.0.html |
| |
| * Support for MCUboot signature types other than RSA-3072 has been added. |
| The type can be chosen with the :kconfig:option:`CONFIG_TFM_MCUBOOT_SIGNATURE_TYPE` Kconfig option. |
| Using EC-P256, the new default, reduces flash usage by several KBs compared to RSA. |
| |
| zcbor |
| ***** |
| |
| LVGL |
| **** |
| |
| LVGL was updated to 8.4.0. Release notes can be found at: |
| https://docs.lvgl.io/8.4/CHANGELOG.html#v8-4-0-19-march-2024 |
| |
| Additionally, the following changes in Zephyr were done: |
| |
| * Added support to place memory pool buffers in ``.lvgl_heap`` section by enabling |
| :kconfig:option:`CONFIG_LV_Z_MEMORY_POOL_CUSTOM_SECTION` |
| |
| * Removed kscan-based pointer input wrapper code. |
| |
| * Corrected encoder button behavior to emit ``LV_KEY_ENTER`` events correctly. |
| |
| * Improved handling for :samp:`invert-{x,y}` and ``swap-xy`` configurations. |
| |
| * Added ``LV_MEM_CUSTOM_FREE`` call on file closure. |
| |
| * Added missing Kconfig stubs for DMA2D symbols. |
| |
| * Integrated support for LVGL rounder callback function. |
| |
| Tests and Samples |
| ***************** |
| |
| * Added snippet for easily enabling UART over Bluetooth LE by passing ``-S nus-console`` during |
| ``west build``. This snippet sets the :kconfig:option:`CONFIG_BT_ZEPHYR_NUS_AUTO_START_BLUETOOTH` |
| which allows non-Bluetooth samples that use the UART APIs to run without modifications |
| (e.g: Console and Logging examples). |
| |
| * Removed ``GSM_PPP`` specific configuration overlays from samples ``net/cloud/tagoio`` and |
| ``net/mgmt/updatehub``. The ``GSM_PPP`` device driver has been deprecated and removed. The new |
| ``MODEM_CELLULAR`` device driver which replaces it uses the native networking stack and ``PM`` |
| subsystem, which like ethernet, requires no application specific actions to set up networking. |
| |
| * Removed ``net/gsm_modem`` sample as the ``GSM_PPP`` device driver it depended on has been |
| deprecated and removed. The sample has been replaced by the sample ``net/cellular_modem`` |
| based on the ``MODEM_CELLULAR`` device driver. |
| |
| * BT LE Coded PHY is now runtime tested in CI with the nrf5x bsim targets. |