| :orphan: | 
 |  | 
 | .. _zephyr_3.1: | 
 |  | 
 | Zephyr 3.1.0 (Working Draft) | 
 | ############################ | 
 |  | 
 | The following sections provide detailed lists of changes by component. | 
 |  | 
 | Security Vulnerability Related | 
 | ****************************** | 
 |  | 
 | Known issues | 
 | ************ | 
 |  | 
 | API Changes | 
 | *********** | 
 |  | 
 | Changes in this release | 
 | ======================= | 
 |  | 
 | * All Zephyr public headers have been moved to ``include/zephyr``, meaning they | 
 |   need to be prefixed with ``<zephyr/...>`` when included. Because this change | 
 |   can potentially break many applications or libraries, | 
 |   :kconfig:option:`CONFIG_LEGACY_INCLUDE_PATH` is provided to allow using the | 
 |   old include path. This option is now enabled by default to allow a smooth | 
 |   transition. In order to facilitate the migration to the new include prefix, a | 
 |   script to automate the process is also provided: | 
 |   :zephyr_file:`scripts/utils/migrate_includes.py`. | 
 |  | 
 | * LoRaWAN: The message type parameter in :c:func:`lorawan_send` was changed | 
 |   from ``uint8_t`` to ``enum lorawan_message_type``. If ``0`` was passed for | 
 |   unconfirmed message, this has to be changed to ``LORAWAN_MSG_UNCONFIRMED``. | 
 |  | 
 | * Disk Subsystem: SPI mode SD cards now use the SD subsystem to communicate | 
 |   with SD cards. See :ref:`the disk access api <disk_access_api>` for an | 
 |   example of the new devicetree binding format required. | 
 |  | 
 | Removed APIs in this release | 
 | ============================ | 
 |  | 
 | * STM32F1 Serial wire JTAG configuration (SWJ CFG) configuration choice | 
 |   was moved from Kconfig to :ref:`devicetree <dt-guide>`. | 
 |   See the :dtcompatible:`st,stm32f1-pinctrl` devicetree binding for more information. | 
 |   As a consequence, the following Kconfig symbols were removed: | 
 |  | 
 |   * ``CONFIG_GPIO_STM32_SWJ_ENABLE`` | 
 |   * ``CONFIG_GPIO_STM32_SWJ_NONJTRST`` | 
 |   * ``CONFIG_GPIO_STM32_SWJ_NOJTAG`` | 
 |   * ``CONFIG_GPIO_STM32_SWJ_DISABLE`` | 
 |  | 
 | Deprecated in this release | 
 | ========================== | 
 |  | 
 | * :c:func:`nvs_init` is deprecated in favor of utilizing :c:func:`nvs_mount`. | 
 | * The TinyCBOR module has been deprecated in favor of the new zcbor CBOR | 
 |   library, included with Zephyr in this release. | 
 |  | 
 | * SPI | 
 |  | 
 |   * Deprecated the `gpio_dev`, `gpio_pin` and `gpio_dt_flags` members from | 
 |     spi_cs_control struct in favor of `gpio_dt_spec` gpio. | 
 |  | 
 | * PWM | 
 |  | 
 |   * The ``pin`` prefix has been removed from all PWM API calls. So for example, | 
 |     ``pwm_pin_set_cycles`` is now ``pwm_set_cycles``. The old API calls are | 
 |     still provided but marked as deprecated. | 
 |   * The PWM period is now always set in nanoseconds, so the ``_nsec`` and | 
 |     ``_usec`` set functions have been deprecated. Other units can be specified | 
 |     using, e.g. ``PWM_USEC()`` macros, which convert down to nanoseconds. | 
 |  | 
 | Stable API changes in this release | 
 | ================================== | 
 |  | 
 | Bluetooth | 
 | ********* | 
 |  | 
 | * Host | 
 |  | 
 |   * The enum bt_l2cap_chan_state values BT_L2CAP_CONNECT and BT_L2CAP_DISCONNECT | 
 |     has been renamed to BT_L2CAP_CONNECTING and BT_L2CAP_DISCONNECTING. | 
 |  | 
 |   * Moved the callbacks :c:func:`pairing_complete`, :c:func:`pairing_failed` and | 
 |     :c:func:`bond_delete` from the `struct bt_auth_cb` to a newly created | 
 |     informational-only callback `struct bt_auth_info_cb`. | 
 |  | 
 |   * The :c:macro:bt_conn_index function now takes a `const struct bt_conn`. | 
 |  | 
 |  | 
 | New APIs in this release | 
 | ======================== | 
 |  | 
 | * Util | 
 |  | 
 |   * Added :c:macro:`IN_RANGE` for checking if a value is in the range of two | 
 |     other values. | 
 |  | 
 | * SDHC API | 
 |  | 
 |   * Added the :ref:`SDHC api <sdhc_api>`, used to interact with SD host controllers. | 
 |  | 
 | * MIPI-DSI | 
 |  | 
 |   * Added a :ref:`MIPI-DSI api <mipi_dsi_api>`. This is an experimental API, | 
 |     some of the features/APIs will be implemented later. | 
 |  | 
 |  | 
 | Kernel | 
 | ****** | 
 |  | 
 | Architectures | 
 | ************* | 
 |  | 
 | * ARM | 
 |  | 
 |   * AARCH32 | 
 |  | 
 |   * AARCH64 | 
 |  | 
 | * Xtensa | 
 |  | 
 | Bluetooth | 
 | ********* | 
 |  | 
 | * Audio | 
 |  | 
 | * Direction Finding | 
 |  | 
 | * Host | 
 |  | 
 | * Mesh | 
 |  | 
 | * Controller | 
 |  | 
 | * HCI Driver | 
 |  | 
 | Boards & SoC Support | 
 | ******************** | 
 |  | 
 | * Added support for these SoC series: | 
 |  | 
 | * Removed support for these SoC series: | 
 |  | 
 | * Made these changes in other SoC series: | 
 |  | 
 | * Changes for ARC boards: | 
 |  | 
 | * Added support for these ARM boards: | 
 |  | 
 | * Added support for these ARM64 boards: | 
 |  | 
 | * Removed support for these ARM boards: | 
 |  | 
 | * Removed support for these X86 boards: | 
 |  | 
 | * Added support for these RISC-V boards: | 
 |  | 
 | * Made these changes in other boards: | 
 |  | 
 | * Added support for these following shields: | 
 |  | 
 |  | 
 | Drivers and Sensors | 
 | ******************* | 
 |  | 
 | * ADC | 
 |  | 
 | * CAN | 
 |  | 
 | * Counter | 
 |  | 
 | * DAC | 
 |  | 
 | * Disk | 
 |  | 
 | * DMA | 
 |  | 
 | * EEPROM | 
 |  | 
 | * Entropy | 
 |  | 
 | * Ethernet | 
 |  | 
 | * Flash | 
 |  | 
 | * GPIO | 
 |  | 
 | * I2C | 
 |  | 
 | * I2S | 
 |  | 
 | * Interrupt Controller | 
 |  | 
 | * MBOX | 
 |  | 
 | * MEMC | 
 |  | 
 | * Pin control | 
 |  | 
 | * PWM | 
 |  | 
 |   * Added :c:struct:`pwm_dt_spec` and associated helpers, e.g. | 
 |     :c:macro:`PWM_DT_SPEC_GET` or :c:func:`pwm_set_dt`. This addition makes it | 
 |     easier to use the PWM API when the PWM channel, period and flags are taken | 
 |     from a Devicetree PWM cell. | 
 |  | 
 | * Sensor | 
 |  | 
 | * Serial | 
 |  | 
 | * SPI | 
 |  | 
 | * Timer | 
 |  | 
 | * USB | 
 |  | 
 | * Watchdog | 
 |  | 
 | Networking | 
 | ********** | 
 |  | 
 | USB | 
 | *** | 
 |  | 
 | Build and Infrastructure | 
 | ************************ | 
 |  | 
 | Libraries / Subsystems | 
 | ********************** | 
 |  | 
 | * Management | 
 |  | 
 |   * Added support for MCUMGR Parameters command, which can be used to obtain | 
 |     MCUMGR parameters; :kconfig:option:`CONFIG_OS_MGMT_MCUMGR_PARAMS` enables | 
 |     the command. | 
 |   * Added mcumgr fs handler for getting file status which returns file size; | 
 |     controlled with :kconfig:option:`CONFIG_FS_MGMT_FILE_STATUS` | 
 |   * Added mcumgr fs handler for getting file hash/checksum, with support for | 
 |     IEEE CRC32 and SHA256, the following Kconfig options have been added to | 
 |     control the addition: | 
 |  | 
 |     * :kconfig:option:`CONFIG_FS_MGMT_CHECKSUM_HASH` to enable the command; | 
 |     * :kconfig:option:`CONFIG_FS_MGMT_CHECKSUM_HASH_CHUNK_SIZE` that sets size | 
 |       of buffer (stack memory) used for calculation: | 
 |  | 
 |       * :kconfig:option:`CONFIG_FS_MGMT_CHECKSUM_IEEE_CRC32` enables support for | 
 |         IEEE CRC32. | 
 |       * :kconfig:option:`CONFIG_FS_MGMT_HASH_SHA256` enables SHA256 hash support. | 
 |       * When hash/checksum query to mcumgr does not specify a type, then the order | 
 |         of preference (most priority) is CRC32 followed by SHA256. | 
 |  | 
 |   * Added mcumgr os hook to allow an application to accept or decline a reset | 
 |     request; :kconfig:option:`CONFIG_OS_MGMT_RESET_HOOK` enables the callback. | 
 |   * Added mcumgr fs hook to allow an application to accept or decline a file | 
 |     read/write request; :kconfig:option:`CONFIG_FS_MGMT_FILE_ACCESS_HOOK` | 
 |     enables the feature which then needs to be registered by the application. | 
 |   * Added supplied image header to mcumgr img upload callback parameter list | 
 |     which allows the application to inspect it to determine if it should be | 
 |     allowed or declined. | 
 |   * Made the img mgmt ``img_mgmt_vercmp`` function public to allow application- | 
 |     level comparison of image versions. | 
 |  | 
 | * SD Subsystem | 
 |  | 
 |   * Added the SD subsystem, which is used by the | 
 |     :ref:`disk access api <disk_access_api>` to interact with connected SD cards. | 
 |     This subsystem uses the :ref:`SDHC api <sdhc_api>` to interact with the SD | 
 |     host controller the SD device is connected to. | 
 |  | 
 | HALs | 
 | **** | 
 |  | 
 | MCUboot | 
 | ******* | 
 |  | 
 | Trusted Firmware-m | 
 | ****************** | 
 |  | 
 | Documentation | 
 | ************* | 
 |  | 
 | Tests and Samples | 
 | ***************** | 
 |  | 
 | Issue Related Items | 
 | ******************* | 
 |  | 
 | These GitHub issues were addressed since the previous 3.0.0 tagged | 
 | release: |