:orphan:

.. _zephyr_2.7:

.. _zephyr_2.7.5:

Zephyr 2.7.5
####################

This is an LTS maintenance release with fixes.

Issues Fixed
************

These GitHub issues were addressed since the previous 2.7.4 tagged
release:

.. comment  List derived from GitHub Issue query: ...
   * :github:`issuenumber` - issue title

* :github:`41111` - utils: tmcvt: fix integer overflow after 6.4 days with ``gettimeofday()`` and ``z_tmcvt()``
* :github:`51663` - tests: kernel: increase coverage for kernel and mmu tests
* :github:`53124` - bmake: fix argument passing in ``zephyr_check_compiler_flag()`` cmake function
* :github:`53315` - net: tcp: fix possible underflow in ``tcp_flags()``.
* :github:`53981` - scripts: fixes for ``gen_syscalls`` and ``gen_app_partitions``
* :github:`53983` - init: correct early init time calls to ``k_current_get()`` when TLS is enabled
* :github:`54140` - net: fix BUS FAULT when running nmap towards echo_async sample
* :github:`54325` - coredump: support out-of-tree coredump backend definition
* :github:`54386` - kernel: correct SMP scheduling with more than 2 CPUs
* :github:`54527` - tests: kernel: remove faulty test from tests/kernel/poll
* :github:`55019` - bluetooth: initialize backport of #54905 failed
* :github:`55068` - net: ipv6: validate arguments in ``net_if_ipv6_set_reachable_time()``
* :github:`55069` - net: core: ``net pkt`` shell command missing input validation
* :github:`55323` - logging: fix userspace runtime filtering
* :github:`55490` - cxx: fix compile error in C++ project for bad flags ``-Wno-pointer-sign`` and ``-Werror=implicit-int``
* :github:`56071` - security: MbedTLS: update to v2.28.3
* :github:`56729` - posix: SCHED_RR valid thread priorities
* :github:`57210` - drivers: pcie: endpoint: pcie_ep_iproc: correct use of optional devicetree binding
* :github:`57419` - tests: dma: support 64-bit addressing in tests
* :github:`57710` - posix: support building eventfd on arm-clang

mbedTLS
*******

Moving mbedTLS to 2.28.x series (2.28.3 precisely). This is a LTS release
that will be supported with bug fixes and security fixes until the end of 2024.

Detailed information can be found in:
https://github.com/Mbed-TLS/mbedtls/releases/tag/v2.28.3
https://github.com/zephyrproject-rtos/zephyr/issues/56071

This version is incompatible with TF-M and because of this TF-M is no longer
supported in Zephyr LTS. If TF-M is required it can be manually added back
changing the mbedTLS revision on ``west.yaml`` to the previous one
(5765cb7f75a9973ae9232d438e361a9d7bbc49e7). This should be carefully assessed
by a security expert to ensure that the know vulnerabilities in that version
don't affect the product.

Vulnerabilities addressed in this update:

* MBEDTLS_AESNI_C, which is enabled by default, was silently ignored on
  builds that couldn't compile the GCC-style assembly implementation
  (most notably builds with Visual Studio), leaving them vulnerable to
  timing side-channel attacks. There is now an intrinsics-based AES-NI
  implementation as a fallback for when the assembly one cannot be used.

* Fix potential heap buffer overread and overwrite in DTLS if
  MBEDTLS_SSL_DTLS_CONNECTION_ID is enabled and
  MBEDTLS_SSL_CID_IN_LEN_MAX > 2 * MBEDTLS_SSL_CID_OUT_LEN_MAX.

* An adversary with access to precise enough information about memory
  accesses (typically, an untrusted operating system attacking a secure
  enclave) could recover an RSA private key after observing the victim
  performing a single private-key operation if the window size used for the
  exponentiation was 3 or smaller. Found and reported by Zili KOU,
  Wenjian HE, Sharad Sinha, and Wei ZHANG. See "Cache Side-channel Attacks
  and Defenses of the Sliding Window Algorithm in TEEs" - Design, Automation
  and Test in Europe 2023.

* Zeroize dynamically-allocated buffers used by the PSA Crypto key storage
  module before freeing them. These buffers contain secret key material, and
  could thus potentially leak the key through freed heap.

* Fix a potential heap buffer overread in TLS 1.2 server-side when
  MBEDTLS_USE_PSA_CRYPTO is enabled, an opaque key (created with
  mbedtls_pk_setup_opaque()) is provisioned, and a static ECDH ciphersuite
  is selected. This may result in an application crash or potentially an
  information leak.

* Fix a buffer overread in DTLS ClientHello parsing in servers with
  MBEDTLS_SSL_DTLS_CLIENT_PORT_REUSE enabled. An unauthenticated client
  or a man-in-the-middle could cause a DTLS server to read up to 255 bytes
  after the end of the SSL input buffer. The buffer overread only happens
  when MBEDTLS_SSL_IN_CONTENT_LEN is less than a threshold that depends on
  the exact configuration: 258 bytes if using mbedtls_ssl_cookie_check(),
  and possibly up to 571 bytes with a custom cookie check function.
  Reported by the Cybeats PSI Team.

* Zeroize several intermediate variables used to calculate the expected
  value when verifying a MAC or AEAD tag. This hardens the library in
  case the value leaks through a memory disclosure vulnerability. For
  example, a memory disclosure vulnerability could have allowed a
  man-in-the-middle to inject fake ciphertext into a DTLS connection.

* In psa_cipher_generate_iv() and psa_cipher_encrypt(), do not read back
  from the output buffer. This fixes a potential policy bypass or decryption
  oracle vulnerability if the output buffer is in memory that is shared with
  an untrusted application.

* Fix a double-free that happened after mbedtls_ssl_set_session() or
  mbedtls_ssl_get_session() failed with MBEDTLS_ERR_SSL_ALLOC_FAILED
  (out of memory). After that, calling mbedtls_ssl_session_free()
  and mbedtls_ssl_free() would cause an internal session buffer to
  be free()'d twice.

* Fix a bias in the generation of finite-field Diffie-Hellman-Merkle (DHM)
  private keys and of blinding values for DHM and elliptic curves (ECP)
  computations.

* Fix a potential side channel vulnerability in ECDSA ephemeral key generation.
  An adversary who is capable of very precise timing measurements could
  learn partial information about the leading bits of the nonce used for the
  signature, allowing the recovery of the private key after observing a
  large number of signature operations. This completes a partial fix in
  Mbed TLS 2.20.0.

Security Vulnerability Related
******************************

The following security vulnerabilities (CVEs) were addressed in this
release:

* CVE-2023-0397: `Zephyr project bug tracker GHSA-wc2h-h868-q7hj
  <https://github.com/zephyrproject-rtos/zephyr/security/advisories/GHSA-wc2h-h868-q7hj>`_

* CVE-2023-0779: `Zephyr project bug tracker GHSA-9xj8-6989-r549
  <https://github.com/zephyrproject-rtos/zephyr/security/advisories/GHSA-9xj8-6989-r549>`_

More detailed information can be found in:
https://docs.zephyrproject.org/latest/security/vulnerabilities.html

.. _zephyr_2.7.4:

Zephyr 2.7.4
####################

This is an LTS maintenance release with fixes.

Issues Fixed
************

These GitHub issues were addressed since the previous 2.7.3 tagged
release:

.. comment  List derived from GitHub Issue query: ...
   * :github:`issuenumber` - issue title

* :github:`25417` - net: socket: socketpair: check for ISR context
* :github:`41012` - irq_enable() doesn’t support enabling NVIC IRQ number more than 127
* :github:`44070` - west spdx TypeError: 'NoneType' object is not iterable
* :github:`46072` - subsys/hawkBit: Debug log error in hawkbit example "CONFIG_LOG_STRDUP_MAX_STRING"
* :github:`48056` - Possible null pointer dereference after k_mutex_lock times out
* :github:`49102` - hawkbit - dns name randomly not resolved
* :github:`49139` - can't run west or DT tests on windows / py 3.6
* :github:`49564` - Newer versions of pylink are not supported in latest zephyr 2.7 release
* :github:`49569` - Backport cmake string cache fix to v2.7 branch
* :github:`50221` - tests: debug: test case subsys/debug/coredump failed on acrn_ehl_crb on branch v2.7
* :github:`50467` - Possible memory corruption on ARC when userspace is enabled
* :github:`50468` - Incorrect Z_THREAD_STACK_BUFFER in arch_start_cpu for Xtensa
* :github:`50961` - drivers: counter: Update counter_set_channel_alarm documentation
* :github:`51714` - Bluetooth: Application with buffer that cannot unref it in disconnect handler leads to advertising issues
* :github:`51776` - POSIX API is not portable across arches
* :github:`52247` - mgmt: mcumgr: image upload, then image erase, then image upload does not restart upload from start
* :github:`52517` - lib: posix: sleep() does not return the number of seconds left if interrupted
* :github:`52518` - lib: posix: usleep() does not follow the POSIX spec
* :github:`52542` - lib: posix: make sleep() and usleep() standards-compliant
* :github:`52591` - mcumgr user data size out of sync with net buffer user data size
* :github:`52829` - kernel/sched: Fix SMP race on pend
* :github:`53088` - Unable to chage initialization priority of logging subsys

Security Vulnerability Related
******************************

The following security vulnerabilities (CVEs) were addressed in this
release:

* CVE-2022-2741: `Zephyr project bug tracker GHSA-hx5v-j59q-c3j8
  <https://github.com/zephyrproject-rtos/zephyr/security/advisories/GHSA-hx5v-j59q-c3j8>`_

* CVE-2022-1841: `Zephyr project bug tracker GHSA-5c3j-p8cr-2pgh
  <https://github.com/zephyrproject-rtos/zephyr/security/advisories/GHSA-5c3j-p8cr-2pgh>`_

More detailed information can be found in:
https://docs.zephyrproject.org/latest/security/vulnerabilities.html

.. _zephyr_2.7.3:

Zephyr 2.7.3
####################

This is an LTS maintenance release with fixes.

Issues Fixed
************

These GitHub issues were addressed since the previous 2.7.2 tagged
release:

.. comment  List derived from GitHub Issue query: ...
   * :github:`issuenumber` - issue title

* :github:`39882` - Bluetooth Host qualification on 2.7 branch
* :github:`41074` - can_mcan_send sends corrupted CAN frames with a byte-by-byte memcpy implementation
* :github:`43479` - Bluetooth: Controller: Fix per adv scheduling issue
* :github:`43694` - drivers: spi: stm32 spi with dma must enable cs after periph
* :github:`44089` - logging: shell backend: null-deref when logs are dropped
* :github:`45341` - Add new EHL SKUs for IBECC
* :github:`45529` - GdbStub get_mem_region bugfix
* :github:`46621` - drivers: i2c: Infinite recursion in driver unregister function
* :github:`46698` - sm351 driver faults when using global thread
* :github:`46706` - add missing checks for segment number
* :github:`46757` - Bluetooth: Controller: Missing validation of unsupported PHY when performing PHY update
* :github:`46807` - lib: posix: semaphore: use consistent timebase in sem_timedwait
* :github:`46822` - L2CAP disconnected packet timing in ecred reconf function
* :github:`46994` - Incorrect Xtensa toolchain path resolution
* :github:`47356` - cpp: global static object initialisation may fail for MMU and MPU platforms
* :github:`47609` - posix: pthread: descriptor leak with pthread_join
* :github:`47955` - drivers: can: various RTR fixes
* :github:`48249` - boards: nucleo_wb55rg: documentation BLE binary compatibility issue
* :github:`48271` - net: Possible net_pkt leak in ipv6 multicast forwarding

Security Vulnerability Related
******************************

The following security vulnerabilities (CVEs) were addressed in this
release:

* CVE-2022-2741: Under embargo until 2022-10-14

* CVE-2022-1042: `Zephyr project bug tracker GHSA-j7v7-w73r-mm5x
  <https://github.com/zephyrproject-rtos/zephyr/security/advisories/GHSA-j7v7-w73r-mm5x>`_

* CVE-2022-1041: `Zephyr project bug tracker GHSA-p449-9hv9-pj38
  <https://github.com/zephyrproject-rtos/zephyr/security/advisories/GHSA-p449-9hv9-pj38>`_

* CVE-2021-3966: `Zephyr project bug tracker GHSA-hfxq-3w6x-fv2m
  <https://github.com/zephyrproject-rtos/zephyr/security/advisories/GHSA-hfxq-3w6x-fv2m>`_

More detailed information can be found in:
https://docs.zephyrproject.org/latest/security/vulnerabilities.html

.. _zephyr_2.7.2:

Zephyr 2.7.2
####################

This is an LTS maintenance release with fixes.

Issues Fixed
************

These GitHub issues were addressed since the previous 2.7.1 tagged
release:

.. comment  List derived from GitHub Issue query: ...
   * :github:`issuenumber` - issue title

* :github:`23419` - posix: clock: No thread safety clock_getime / clock_settime
* :github:`30367` - TCP2 does not send our MSS to peer
* :github:`37389` - nucleo_g0b1re: Swapping image in mcuboot results in hard fault and softbricks the device
* :github:`38268` - Multiple defects in "Multi Producer Single Consumer Packet Buffer" library
* :github:`38576` - net shell: self-connecting to TCP might lead to a crash
* :github:`39184` - HawkBit hash mismatch
* :github:`39242` - net: sockets: Zephyr Fatal in dns_resolve_cb if dns request was attempted in offline state
* :github:`39399` - linker: Missing align __itcm_load_start / __dtcm_data_load_start linker symbols
* :github:`39608` - stm32: lpuart: 9600 baudrate doesn't work
* :github:`39609` - spi: slave: division by zero in timeout calculation
* :github:`39660` - poll() not notified when a TLS/TCP connection is closed without TLS close_notify
* :github:`39687` - sensor: qdec_nrfx: PM callback has incorrect signature
* :github:`39774` - modem: uart mux reading optimization never used
* :github:`39882` - Bluetooth Host qualification on 2.7 branch
* :github:`40163` - Use correct clock frequency for systick+DWT
* :github:`40464` - Dereferencing NULL with getsockname() on TI Simplelink Platform
* :github:`40578` - MODBUS RS-485 transceiver support broken on several platforms due to DE race condition
* :github:`40614` - poll: the code judgment condition is always true
* :github:`40640` - drivers: usb_dc_native_posix: segfault when using composite USB device
* :github:`40730` - More power supply modes on STM32H7XX
* :github:`40775` - stm32: multi-threading broken after #40173
* :github:`40795` - Timer signal thread execution loop break SMP on ARM64
* :github:`40925` - mesh_badge not working reel_board_v2
* :github:`40985` - net: icmpv6: Add support for Route Info option in Router Advertisement
* :github:`41026` - LoRa: sx126x: DIO1 interrupt left enabled in sleep mode
* :github:`41077` - console: gsm_mux: could not send more than 128 bytes of data on dlci
* :github:`41089` - power modes for STM32H7
* :github:`41095` - libc: newlib: 'gettimeofday' causes stack overflow on non-POSIX builds
* :github:`41237` - drivers: ieee802154_dw1000: use dedicated workqueue
* :github:`41240` - logging can get messed up when messages are dropped
* :github:`41284` - pthread_cond_wait return value incorrect
* :github:`41339` - stm32, Unable to read UART while checking from Framing error.
* :github:`41488` - Stall logging on nrf52840
* :github:`41499` - drivers: iwdg: stm32: WDT_OPT_PAUSE_HALTED_BY_DBG might not work
* :github:`41503` - including net/socket.h fails with redefinition of struct zsock_timeval (sometimes :-) )
* :github:`41529` - documentation: generate Doxygen tag file
* :github:`41536` - Backport STM32 SMPS Support to v2.7.0
* :github:`41582` - stm32h7: CSI as PLL source is broken
* :github:`41683` - http_client: Unreliable rsp->body_start pointer
* :github:`41915` - regression: Build fails after switching logging to V2
* :github:`41942` - k_delayable_work being used as k_work in work's handler
* :github:`41952` - Log timestamp overflows when using LOGv2
* :github:`42164` - tests/bluetooth/tester broken after switch to logging v2
* :github:`42271` - drivers: can: m_can: The can_set_bitrate() function doesn't work.
* :github:`42299` - spi: nRF HAL driver asserts when PM is used
* :github:`42373` - add k_spin_lock() to doxygen prior to v3.0 release
* :github:`42581` - include: drivers: clock_control: stm32 incorrect DT_PROP is used for xtpre
* :github:`42615` - Bluetooth: Controller: Missing ticks slot offset calculation in Periodic Advertising event scheduling
* :github:`42622` - pm: pm_device structure bigger than nessecary when PM_DEVICE_RUNTIME not set
* :github:`42631` - Unable to identify owner of net_mgmt_lock easily
* :github:`42825` - MQTT client disconnection (EAGAIN) on publish with big payload
* :github:`42862` - Bluetooth: L2CAP: Security check on l2cap request is wrong
* :github:`43117` - Not possible to create more than one shield.
* :github:`43130` - STM32WL ADC idles / doesn't work
* :github:`43176` - net/icmpv4: client possible to ddos itself when there's an error for the broadcasted packet
* :github:`43177` - net: shell: errno not cleared before calling the strtol
* :github:`43178` - net: ip: route: log_strdup misuse
* :github:`43179` - net: tcp: forever loop in tcp_resend_data
* :github:`43180` - net: tcp: possible deadlock in tcp_conn_unref()
* :github:`43181` - net: sockets: net_pkt leak in accept
* :github:`43182` - net: arp: ARP retransmission source address selection
* :github:`43183` - net: mqtt: setsockopt leak on failure
* :github:`43184` - arm: Wrong macro used for z_interrupt_stacks declaration in stack.h
* :github:`43185` - arm: cortex-m: uninitialised ptr_esf in get_esf() in fault.c
* :github:`43470` - wifi: esp_at: race condition on mutex's leading to deadlock
* :github:`43490` - net: sockets: userspace accept() crashes with NULL addr/addrlen pointer
* :github:`43548` - gen_relocate_app truncates files on incremental builds
* :github:`43572` - stm32: wrong clock the LSI freq for stm32l0x mcus
* :github:`43580` - hl7800: tcp stack freezes on slow response from modem
* :github:`43807` - Test "cpp.libcxx.newlib.exception" failed on platforms which use zephyr.bin to run tests.
* :github:`43839` - Bluetooth: controller: missing NULL assign to df_cfg in ll_adv_set
* :github:`43853` - X86 MSI messages always get to BSP core (need a fix to be backported)
* :github:`43858` - mcumgr seems to lock up when it receives command for group that does not exist
* :github:`44107` - The SMP nsim boards are started incorrectly when launching on real HW
* :github:`44310` - net: gptp: type mismatch calculation error in gptp_mi
* :github:`44336` - nucleo_wb55rg: stm32cubeprogrammer runner is missing for twister tests
* :github:`44337` - twister: Miss sn option to stm32cubeprogrgammer runner
* :github:`44352` - stm32l5x boards missing the openocd runner
* :github:`44497` - Add guide for disabling MSD on JLink OB devices and link to from smp_svr page
* :github:`44531` - bl654_usb without mcuboot maximum image size is not limited
* :github:`44886` - Unable to boot Zephyr on FVP_BaseR_AEMv8R
* :github:`44902` - x86: FPU registers are not initialised for userspace (eager FPU sharing)
* :github:`45869` - doc: update requirements
* :github:`45870` - drivers: virt_ivshmem: Allow multiple instances of ivShMem devices
* :github:`45871` - ci: split Bluetooth workflow
* :github:`45872` - ci: make git credentials non-persistent
* :github:`45873` - soc: esp32: use PYTHON_EXECUTABLE from build system

Security Vulnerability Related
******************************

The following security vulnerabilities (CVEs) were addressed in this
release:

* CVE-2021-3966: `Zephyr project bug tracker GHSA-hfxq-3w6x-fv2m
  <https://github.com/zephyrproject-rtos/zephyr/security/advisories/GHSA-hfxq-3w6x-fv2m>`_

More detailed information can be found in:
https://docs.zephyrproject.org/latest/security/vulnerabilities.html


.. _zephyr_2.7.1:

Zephyr 2.7.1
####################

This is an LTS maintenance release with fixes.

Issues Fixed
************

These GitHub issues were addressed since the previous 2.7.0 tagged
release:

.. comment  List derived from GitHub Issue query: ...
   * :github:`issuenumber` - issue title

* :github:`36558` - Use of CMAKE_<lang>_COMPILER_FORCED on host-builds flag breaks third-party libraries
* :github:`36852` - acrn_ehl_crb:  the test of tests/subsys/cpp/libcxx/ failed
* :github:`38181` - tests/drivers/uart/uart_basic_api/drivers.uart.cdc_acm fails to build
* :github:`38612` - Fault with assertions enabled prevents detailed output because of ISR() assertion check in shell function
* :github:`38972` - logging: Cleaning references to tracing in logging
* :github:`38999` - Bluetooth: Controller: Fix HCI command parameter check failures
* :github:`39022` - tests/drivers/uart/uart_basic_api/drivers.uart.cdc_acm fails to build
* :github:`39297` - Lorawan regression in v2.7rc4 for US915 and AU915 regions
* :github:`39361` - BL5340 image is broken on documentation page
* :github:`39409` - runners: canopen: program download fails with slow flash access and/or congested CAN nets
* :github:`39523` - task watchdog crash/asset on NRF52840 - need to reorder task_wdt_feed() in task_wdt_add()
* :github:`39541` - can: mcux_flexcan: wrong timing calculation
* :github:`39575` - k_mutex_lock and k_sem_take with K_FOREVER return -EAGAIN value
* :github:`39594` - Possible bug or undocumented behaviour of spi_write
* :github:`39609` - spi: slave: division by zero in timeout calculation
* :github:`39687` - sensor: qdec_nrfx: PM callback has incorrect signature
* :github:`39704` - Using OpenThread makes the system unresponsive after 49.7 days
* :github:`39817` - drivers: pwm: nxp: (potentially) Incorrect return value on API function
* :github:`39851` - [Coverity CID: 240242] Dereference after null check in tests/bluetooth/tester/src/l2cap.c
* :github:`39882` - Bluetooth Host qualification on 2.7 branch
* :github:`40133` - mimxrt1060-evk flash shell command causes shell deadlock
* :github:`40244` - hci_spi sample cannot be built for nrf51dk_nrf51422 and 96b_carbon_nrf51
* :github:`40290` - CAN_STM32: Build error with CONFIG_CAN_AUTO_BUS_OFF_RECOVERY=n
* :github:`40844` - gen_app_partitions scans object files unrelated to current image
* :github:`41237` - drivers: ieee802154_dw1000: use dedicated workqueue

Security Vulnerability Related
******************************

The following security vulnerabilities (CVEs) were addressed in this
release:

* CVE-2021-3966: `Zephyr project bug tracker GHSA-hfxq-3w6x-fv2m
  <https://github.com/zephyrproject-rtos/zephyr/security/advisories/GHSA-hfxq-3w6x-fv2m>`_

More detailed information can be found in:
https://docs.zephyrproject.org/latest/security/vulnerabilities.html


.. _zephyr_2.7.0:

Zephyr 2.7.0
############

We are pleased to announce the release of Zephyr RTOS version 2.7.0 (LTS2).

Major enhancements since v2.6.0 include:

* Bluetooth Audio, Direction Finding, and Mesh improvements
* Support for Bluetooth Advertisement PDU Chaining
* Added support for armclang / armlinker toolchain
* Added support for MWDT C / C++ toolchain
* Update to CMSIS v5.8.0 (Core v5.5.0, DSP v1.9.0)
* Support for M-Profile Vector Extensions (MVE) on ARMv8.1-M
* Improved thread safety for Newlib and C++ on SMP-capable systems
* IEEE 802.15.4 Software Address Filtering
* New Action-based Power Management API
* USB Device Framework now includes all Chapter 9 defines and structures
* Generic System Controller (``syscon``) driver and emulator
* Linker Support for Tightly-Coupled Memory in RISC-V
* Additional Blocking API calls for LoRa
* Support for extended PCI / PCIe capabilities, improved MIS-X support
* Added Support for Service Type Enumeration (STE) with mDNS / DNS Service Discovery
* Added Zephyr Thread Awareness for OpenOCD to West
* EEPROM now can be emulated in flash
* Added both Ethernet MDIO and Ethernet generic PHY drivers

Additional Major enhancements since v1.14.0 (LTS1) include:

* The kernel now supports both 32- and 64-bit architectures
* We added support for SOCKS5 proxy
* Introduced support for 6LoCAN, a 6Lo adaption layer for Controller Area Networks
* We added support for Point-to-Point Protocol (PPP)
* We added support for UpdateHub, an end-to-end solution for over-the-air device updates
* We added support for ARM Cortex-R Architecture
* Normalized APIs across all architectures
* Expanded support for ARMv6-M architecture
* Added support for numerous new boards and shields
* Added numerous new drivers and sensors
* Added BLE support on Vega platform
* Memory size improvements to Bluetooth host stack
* We added initial support for 64-bit ARMv8-A architecture
* CANopen protocol support through 3rd party CANopenNode stack
* LoRa support was added along with the SX1276 LoRa modem driver
* A new Zephyr CMake package has been introduced
* A new Devicetree API which provides access to virtually all DT nodes and properties
* The kernel timeout API has been overhauled
* A new k_heap/sys_heap allocator, with improved performance
* Zephyr now integrates with the TF-M (Trusted Firmware M) PSA-compliant framework
* The Bluetooth Low Energy Host now supports LE Advertising Extensions
* The CMSIS-DSP library is now included and integrated
* Introduced initial support for virtual memory management
* Added Bluetooth host support for periodic advertisement and isochronous channels.
* Added a new TCP stack which improves network protocol testability
* Introduced a new toolchain abstraction with initial support for GCC and LLVM/Clang
* Moved to using C99 integer types and deprecate Zephyr integer types
* Introduced support for the SPARC architecture and the LEON implementation
* Added Thread Local Storage (TLS) support
* Added support for per thread runtime statistics
* Added support for building with LLVM on X86
* Added new synchronization mechanisms using Condition Variables
* Add support for demand paging, initial support on X86
* Logging subsystem overhauled
* Added support for 64-bit ARCv3
* Split ARM32 and ARM64, ARM64 is now a top-level architecture
* Added initial support for Arm v8.1-m and Cortex-M55
* Removed legacy TCP stack support which was deprecated in 2.4
* Tracing subsystem overhaul / added support for Percepio Tracealyzer
* Device runtime power management (PM) completely overhauled
* Automatic SPDX SBOM generation has been added to West
* Added an example standalone Zephyr application

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-2021-3510: `Zephyr project bug tracker GHSA-289f-7mw3-2qf4
  <https://github.com/zephyrproject-rtos/zephyr/security/advisories/GHSA-289f-7mw3-2qf4>`_.


Known issues
************

You can check all currently known issues by listing them using the GitHub
interface and listing all issues with the `bug label
<https://github.com/zephyrproject-rtos/zephyr/issues?q=is%3Aissue+is%3Aopen+label%3Abug>`_.

API Changes
***********

Deprecated in this release

* :c:macro:`DT_ENUM_TOKEN` and :c:macro:`DT_ENUM_UPPER_TOKEN`,
  were deprecated in favor of utilizing
  :c:macro:`DT_STRING_TOKEN` and :c:macro:`DT_STRING_UPPER_TOKEN`

* :c:macro:`BT_CONN_ROLE_MASTER` and :c:macro:`BT_CONN_ROLE_SLAVE`
  have been deprecated in favor of
  :c:macro:`BT_CONN_ROLE_CENTRAL` and :c:macro:`BT_CONN_ROLE_PERIPHERAL`

* :c:macro:`BT_LE_SCAN_OPT_FILTER_WHITELIST`
  has been deprecated in favor of
  :c:macro:`BT_LE_SCAN_OPT_FILTER_ACCEPT_LIST`

* The following whitelist functions have been deprecated:
  :c:func:`bt_le_whitelist_add`
  :c:func:`bt_le_whitelist_rem`
  :c:func:`bt_le_whitelist_clear`
  in favor of
  :c:func:`bt_le_filter_accept_list_add`
  :c:func:`bt_le_filter_accept_list_remove`
  :c:func:`bt_le_filter_accept_list_clear`

Modified in this release

* The following Bluetooth macros and structures in :file:`hci.h` have been
  modified to align with the inclusive naming in the v5.3 specification:

  * ``BT_LE_FEAT_BIT_SLAVE_FEAT_REQ`` is now ``BT_LE_FEAT_BIT_PER_INIT_FEAT_XCHG``
  * ``BT_LE_FEAT_BIT_CIS_MASTER`` is now ``BT_LE_FEAT_BIT_CIS_CENTRAL``
  * ``BT_LE_FEAT_BIT_CIS_SLAVE`` is now ``BT_LE_FEAT_BIT_CIS_PERIPHERAL``
  * ``BT_FEAT_LE_SLAVE_FEATURE_XCHG`` is now ``BT_FEAT_LE_PER_INIT_FEAT_XCHG``
  * ``BT_FEAT_LE_CIS_MASTER`` is now ``BT_FEAT_LE_CIS_CENTRAL``
  * ``BT_FEAT_LE_CIS_SLAVE`` is now ``BT_FEAT_LE_CIS_PERIPHERAL``
  * ``BT_LE_STATES_SLAVE_CONN_ADV`` is now ``BT_LE_STATES_PER_CONN_ADV``
  * ``BT_HCI_OP_LE_READ_WL_SIZE`` is now ``BT_HCI_OP_LE_READ_FAL_SIZE``
  * ``bt_hci_rp_le_read_wl_size`` is now ``bt_hci_rp_le_read_fal_size``
  * ``bt_hci_rp_le_read_wl_size::wl_size`` is now ``bt_hci_rp_le_read_fal_size::fal_size``
  * ``BT_HCI_OP_LE_CLEAR_WL`` is now ``BT_HCI_OP_LE_CLEAR_FAL``
  * ``BT_HCI_OP_LE_ADD_DEV_TO_WL`` is now ``BT_HCI_OP_LE_REM_DEV_FROM_FAL``
  * ``bt_hci_cp_le_add_dev_to_wl`` is now ``bt_hci_cp_le_add_dev_to_fal``
  * ``BT_HCI_OP_LE_REM_DEV_FROM_WL`` is now ``BT_HCI_OP_LE_REM_DEV_FROM_FAL``
  * ``bt_hci_cp_le_rem_dev_from_wl`` is now ``bt_hci_cp_le_rem_dev_from_fal``
  * ``BT_HCI_ROLE_MASTER`` is now ``BT_HCI_ROLE_CENTRAL``
  * ``BT_HCI_ROLE_SLAVE`` is now ``BT_HCI_ROLE_PERIPHERAL``
  * ``BT_EVT_MASK_CL_SLAVE_BC_RX`` is now ``BT_EVT_MASK_CL_PER_BC_RX``
  * ``BT_EVT_MASK_CL_SLAVE_BC_TIMEOUT`` is now ``BT_EVT_MASK_CL_PER_BC_TIMEOUT``
  * ``BT_EVT_MASK_SLAVE_PAGE_RSP_TIMEOUT`` is now ``BT_EVT_MASK_PER_PAGE_RSP_TIMEOUT``
  * ``BT_EVT_MASK_CL_SLAVE_BC_CH_MAP_CHANGE`` is now ``BT_EVT_MASK_CL_PER_BC_CH_MAP_CHANGE``
  * ``m_*`` structure members are now ``c_*``
  * ``s_*`` structure members are now ``p_*``

* The ``CONFIG_BT_PERIPHERAL_PREF_SLAVE_LATENCY`` Kconfig option is now
  :kconfig:`CONFIG_BT_PERIPHERAL_PREF_LATENCY`
* The ``CONFIG_BT_CTLR_SLAVE_FEAT_REQ_SUPPORT`` Kconfig option is now
  :kconfig:`CONFIG_BT_CTLR_PER_INIT_FEAT_XCHG_SUPPORT`
* The ``CONFIG_BT_CTLR_SLAVE_FEAT_REQ`` Kconfig option is now
  :kconfig:`CONFIG_BT_CTLR_PER_INIT_FEAT_XCHG`

Changes in this release
==========================

Removed APIs in this release

* Removed support for the deprecated ``DEVICE_INIT`` and ``DEVICE_AND_API_INIT`` macros.
* Removed support for the deprecated ``BUILD_ASSERT_MSG`` macro.
* Removed support for the deprecated ``GET_ARG1``, ``GET_ARG2`` and ``GET_ARGS_LESS_1`` macros.
* Removed support for the deprecated Kconfig ``PRINTK64`` option.
* Removed support for the deprecated ``bt_set_id_addr`` function.
* Removed support for the Kconfig ``USB`` option. Option ``USB_DEVICE_STACK``
  is sufficient to enable USB device support.

* Removed ``CONFIG_OPENTHREAD_COPROCESSOR_SPINEL_ON_UART_ACM`` and
  ``CONFIG_OPENTHREAD_COPROCESSOR_SPINEL_ON_UART_DEV_NAME`` Kconfig options
  in favor of chosen node ``zephyr,ot-uart``.
* Removed ``CONFIG_BT_UART_ON_DEV_NAME`` Kconfig option
  in favor of direct use of chosen node ``zephyr,bt-uart``.
* Removed ``CONFIG_BT_MONITOR_ON_DEV_NAME`` Kconfig option
  in favor of direct use of chosen node ``zephyr,bt-mon-uart``.
* Removed ``CONFIG_MODEM_GSM_UART_NAME`` Kconfig option
  in favor of direct use of chosen node ``zephyr,gsm-ppp``.
* Removed ``CONFIG_UART_MCUMGR_ON_DEV_NAME`` Kconfig option
  in favor of direct use of chosen node ``zephyr,uart-mcumgr``.
* Removed ``CONFIG_UART_CONSOLE_ON_DEV_NAME`` Kconfig option
  in favor of direct use of chosen node ``zephyr,console``.
* Removed ``CONFIG_UART_SHELL_ON_DEV_NAME`` Kconfig option
  in favor of direct use of chosen node ``zephyr,shell-uart``.

============================

Stable API changes in this release
==================================

* Bluetooth

  * Added :c:struct:`multiple` to the :c:struct:`bt_gatt_read_params` - this
    structure contains two members: ``handles``, which was moved from
    :c:struct:`bt_gatt_read_params`, and ``variable``.

Kernel
******


Architectures
*************

* ARC

  * Add SMP support to ARCv3 HS6x
  * Add MWDT C library support
  * Add basic C++ support with MWDT toolchain
  * Add MPUv3 and MPUv6 support
  * Remove dead PM code from ARC core interrupt controller driver
  * Add updating arc connect debug mask dynamically


* ARM

  * AARCH32

     * Updated CMSIS version to 5.8.0
     * Added support for FPU in QEMU for Cortex-M, allowing to build and execute
       tests in CI with FPU and FPU_SHARING options enabled.
     * Added MPU support for Cortex-R


  * AARCH64


* RISC-V

  * Added support to RISC-V CPU devicetree compatible bindings
  * Added support to link with ITCM & DTCM sections


* x86


Bluetooth
*********

* Updated all APIs and internal implementation to be conformant with the new
  inclusive terminology in version 5.3 of the Bluetooth Core Specification

* Audio

  * Added the Microphone Input Control Service and client.
  * Changed the connected isochronous API to use a group-based opaque struct
  * Split the configuration options into connected and broadcast groups
  * Added support for a new sent callback to be notified when an SDU has been
    transmitted

* Direction Finding

  * Added configurability for conditional CTE RX support
  * Added support for CTE periodic advertising chain transmissions

* Host

  * Added support for setting more than 251 bytes of advertising data
  * Added new callbacks on ATT MTU update
  * Added a new call to retrieve the handle of an advertising set
  * Fixed key overwrite algorithm when working with multiple connections
  * Added configuration support for GATT security re-establishment
  * Added support for writing a long device name
  * OTS: Added object name write capability

* Mesh

  * Added return value for opcode callback
  * Added support for OOB Public Key in the provisionee role
  * Added a new API to manually store pending RPL entries
  * Added support for application access to mesh messages
  * Refactored the Mesh Model Extensions

* Bluetooth LE split software Controller

  * Added support for advertising PDU chaining, implementing advertising trains
    for Direction Finding
  * Added support for adding or removing the ACAD field in Common Extended
    Header Format to support BIGInfo
  * Refactored the legacy, extended and periodic advertising time reservation
    slot calculations
  * Implemented CSA#2 in Extended Advertising and Broadcast ISO sub-events
  * Added support for Extended Active Scanning
  * Added support for advertising on the S2 and S8 coding schemes
  * Added support for the Periodic Advertising channel map update indication

* HCI Driver

  * Removed all ``CONFIG_BT_*_ON_DEV_NAME`` Kconfig options, use Devicetree
    instead

Boards & SoC Support
********************

* Added support for these SoC series:

  * Added STM32U5 basic SoC support

* Removed support for these SoC series:


* Made these changes in other SoC series:

  * Added Atmel SAM0 pinctrl support
  * Added Atmel SAM4L USBC device controller
  * Added Atmel GMAC support for MDIO driver
  * Added Atmel GMAC support to use generic PHY driver
  * Added Atmel SAM counter (TC) Driver
  * Added Atmel SAM DAC (DACC) driver
  * Enabled Atmel SAM ``clock-frequency`` support from devicetree
  * Free Atmel SAM TRACESWO pin when unused
  * Enabled Cypress PSoC-6 Cortex-M4 support
  * Added low power support to STM32L0, STM32G0 and STM32WL series
  * STM32: Enabled ART Flash accelerator by default when available (F2, F4, F7, H7, L5)
  * STM32: Added Kconfig option to enable STM32Cube asserts (CONFIG_USE_STM32_ASSERT)
  * NXP FRDM-K82F: Added arduino_i2c and arduino_spi aliases
  * NXP i.MX RT series: Added support for flash controller with XIP
  * NXP i.MX RT series: Added TRNG support
  * NXP i.MX RT1170: Added LPSPI driver support
  * NXP i.MX RT1170: Added ADC driver support
  * NXP i.MX RT1170: Enabled Segger RTT/SystemView
  * NXP i.MX RT1170: Added MCUX FlexCan support
  * NXP i.MX RT1064: Added watchdog driver support
  * NXP i.MX RT1064: Added DMA driver support
  * NXP i.MX RT600: Added arduino serial port
  * NXP i.MX RT600: Add mcuboot flash partitions
  * NXP i.MX RT600: Added counter support
  * NXP i.MX RT600: Added PWM support
  * NXP i.MX RT600: Added disk driver support
  * NXP i.MX RT600: Added USB driver support
  * NXP i.MX RT600: Added LPADC driver support
  * NXP i.MX RT600: Added CTimer Counter support
  * NXP KE1xF: Added SoC Power Management support
  * NXP LPC55s69: Added USB driver support
  * NXP LPC55s69: Added ctimer driver support
  * NXP LPC55s69: Added I2S driver support


* Changes for ARC boards:

  * Implement 'run' command for SMP nSIM simulation board
  * Enable upstream verification on QEMU ARCv3 HS6x board (qemu_arc_hs6x)
  * Implement creg GPIO driver and add it to hsdk and em_starterkit boards


* Changes for ARM boards:

  * Added SPI support on Arduino standard SPI when possible

* Added support for these ARM boards:

  * Dragino NBSN95 NB-IoT Sensor Node
  * Seeedstudio LoRa-E5 Dev Board
  * ST B_U585I_IOT02A Discovery kit
  * ST Nucleo F446ZE
  * ST Nucleo U575ZI Q
  * ST STM32H735G Discovery
  * PJRC Teensy 4 Board

* Added support for these ARM64 boards:


* Removed support for these ARM boards:


* Removed support for these X86 boards:


* Made these changes in other boards:

  * arduino_due: Added support for TC driver
  * atsame54_xpro: Added support for PHY driver
  * sam4l_ek: Added support for TC driver
  * sam4e_xpro: Added support for PHY driver
  * sam4e_xpro: Added support for TC driver
  * sam4s_xplained: Added support for TC driver
  * sam_e70_xplained: Added support for DACC driver
  * sam_e70_xplained: Added support for PHY driver
  * sam_e70_xplained: Added support for TC driver
  * sam_v71_xult: Added support for DACC driver
  * sam_v71_xult: Added support for PHY driver
  * sam_v71_xult: Added support for TC driver
  * sam_v71_xult: Enable pwm on LED0
  * cy8ckit_062_ble: Added arduino's nexus map


* Added support for these following shields:

  * 4.2inch epaper display (GDEW042T2)
  * X-NUCLEO-EEPRMA2 EEPROM memory expansion board

Drivers and Sensors
*******************

* ADC

  * Added STM32WL ADC driver
  * STM32: Added support for oversampling
  * Added driver for Microchip MEC172x

* Audio

  * Added DMIC driver for nRF PDM peripherals

* Bluetooth


* CAN

  * Renesas R-Car driver added


* Clock Control


* Console


* Counter

  * Add Atmel SAM counter (TC) Driver
  * Added STM32WL RTC counter driver

* Crypto

  * STM23: Add support for SOCs with AES hardware block (STM32G0, STM32L5 and STM32WL)

* DAC

  * Added Atmel SAM DAC (DACC) driver
  * Added support for Microchip MCP4725
  * Added support for STM32F3 series

* Disk

  * Added SDMMC support on STM32L4+
  * STM32 SDMMC now supports SDIO enabled devices
  * Added USDHC support for i.MX RT685

* Display

  * Added support for ST7735R

* DMA

  * Added Atmel SAM XDMAC reload support
  * Added support on STM32F3, STM32G0, STM32H7 and STM32L5
  * STM32: Reviewed bindings definitions, "st,stm32-dma-v2bis" introduced.


* EEPROM

  * Added support for EEPROM emulated in flash.

* Entropy

  * Added support for STM32F2, STM32G0, STM32WB and STM32WL

* ESPI

  * Added support for Microchip eSPI SAF

* Ethernet

  * Added Atmel SAM/SAM0 GMAC devicetree support
  * Added Atmel SAM/SAM0 MDIO driver
  * Added MDIO driver
  * Added generic PHY driver


* Flash

  * Added STM32F2, STM32L5 and STM32WL Flash driver support
  * STM32: Max erase time parameter was moved to device tree
  * Added quad SPI support for STM32F4

* GPIO


* Hardware Info


* I2C


* I2S

  * Added Atmel SAM I2S driver support to XDMAC reload
  * Added driver for nRF I2S peripherals

* IEEE 802.15.4

* IPM

  * STM32: Add HSEM based IPM driver for STM32H7 series

* Interrupt Controller


* LED


* LoRa

  * lora_send now blocks until the transmission is complete. lora_send_async
    can be used for the previous, non-blocking behaviour.
  * Enabled support for STM32WL series

* MEMC

  * Added STM32F4 support


* Modem

  * Added gsm_ppp devicetree support

* PCI/PCIe

  * Fixed an issue that MSI-X was used even though it is not available.
  * Improved MBAR retrieval for MSI-X.
  * Added ability to retrieve extended PCI/PCIe capabilities.

* Pinmux

  * Added Atmel SAM0 pinctrl support
  * STM32: Deprecated definitions like 'STM32F2_PINMUX_FUNC_PA0_UART4_TX'
    are now removed.


* PWM

  * Property "st,prescaler" of binding "st,stm32-pwm" now defaults to "0".
  * Added driver for ITE IT8XXX2 series
  * Added driver for NXP LPC devices
  * Added driver for Telink B91

* Sensor

  * Refactored various drivers to use ``_dt_spec``.
  * Refactored various drivers to support multiple instances.
  * Enhanced TI HDC20XX driver to support DRDY/INT pin.
  * Updated temperature conversion formula in TI HDC20XX driver.
  * Enhanced MS5607 pressure sensor driver to support I2C.
  * Fixed temperature compensation in MS5607 pressure sensor driver.
  * Refactored ST LIS2DW12 driver to move range, power, and trigger
    configuration from Kconfig to dts.
  * Enhanced TI BQ274XX fuel gauge driver to support power management.
  * Aligned ST sensor drivers to use STMEMC HAL I/F v2.00.
  * Added Sensirion SGP40 multipixel gas sensor driver.
  * Added Sensirion SHTCX humidity sensor driver.
  * Added Sensirion SHT4X temperature and humidity sensor driver.
  * Added SiLabs SI7270 hall effect magnetic position and temperature sensor
    driver.
  * Added ST I3G4250D gyroscope driver.
  * Added TI INA219 and INA23X current/power monitor drivers.
  * Added TI LM75 and LM77 temperature sensor drivers.
  * Added TI HDC20XX humidity and temperature sensor driver.

* Serial

  * Added kconfig to disable runtime re-configuration of UART
    to reduce footprint if so desired.
  * Added ESP32-C3 polling only UART driver.
  * Added ESP32-S2 polling only UART driver.
  * Added Microchip XEC UART driver.

* SPI


* Timer


* USB

  * Added Atmel SAM4L USBC device controller driver
  * Added support for NXP LPC USB controller
  * Adapted drivers use new USB framework header

* Watchdog

  * Added STM32L5 watchdog support


* WiFi


Networking
**********

* 802.15.4 L2:

  * Fixed a bug, where the net_pkt structure contained invalid LL address
    pointers after being processed by 802.15.4 L2.
  * Added an optional destination address filtering in the 802.15.4 L2.

* CoAP:

  * Added ``user_data`` field to the :c:struct:`coap_packet` structure.
  * Fixed processing of out-of-order notifications.
  * Fixed :c:func:`coap_packet_get_payload` function.
  * Converted CoAP test suite to ztest API.
  * Improved :c:func:`coap_packet_get_payload` function to minimize number
    of RNG calls.
  * Fixed retransmissions in the ``coap_server`` sample.
  * Fixed observer removal in the ``coap_server`` sample (on notification
    timeout).

* DHCPv4:

  * Fixed a bug, where DHPCv4 library removed statically configured gateway
    before obtaining a new one from the server.

* DNS:

  * Fixed a bug, where the same IP address was used to populate the result
    address info entries, when multiple IP addresses were obtained from the
    server.

* DNS-SD:

  * Added Service Type Enumeration support (``_services._dns_sd._udp.local``)

* HTTP:

  * Switched the library to use ``zsock_*`` API, to improve compatibility with
    various POSIX configurations.
  * Fixed a bug, where ``HTTP_DATA_FINAL`` notification was triggered even for
    intermediate response fragments.

* IPv6:

  * Multiple IPv6 fixes, addressing failures in IPv6Ready compliance tests.

* LwM2M:

  * Added support for notification timeout reporting to the application.
  * Fixed a bug, where a multi instance resource with only one active instance
    was incorrectly encoded on reads.
  * Fixed a bug, where notifications were generated on changes to non-readable
    resources.
  * Added mutex protection  for the state variable of the ``lwm2m_rd_client``
    module.
  * Removed LWM2M_RES_TYPE_U64 type, as it's not possible to encode it properly
    for large values.
  * Fixed a bug, where large unsigned integers were incorrectly encoded in TLV.
  * Multiple fixes for FLOAT type processing in the LwM2M engine and encoders.
  * Fix a bug, where IPSO Push Button counter resource was not triggering
    notification on incrementation.
  * Fixed a bug, where Register failures were reported as success to the
    application.

* Misc:

  * Added RX/TX timeout on a socket in ``big_http_download`` sample.
  * Introduced :c:func:`net_pkt_remove_tail` function.
    Added IEEE 802.15.4 security-related flags to the :c:struct:`net_pkt`
    structure.
  * Added bridging support to the Ethernet L2.
  * Fixed a bug in mDNS, where an incorrect address type could be set as a
    response destination.
  * Added an option to suppress ICMP destination unreachable errors.
  * Fixed possible assertion in ``net nbr`` shell command.
  * Major refactoring of the TFTP library.

* MQTT:

  * Added an option to register a custom transport type.
  * Fixed a bug in :c:func:`mqtt_abort`, where the function could return without
    releasing a lock.

* OpenThread:

  * Update OpenThread module up to commit ``9ea34d1e2053b6b2a80e1d46b65a6aee99fc504a``.
    Added several new Kconfig options to align with new OpenThread
    configurations.
  * Added OpenThread API mutex protection during initialization.
  * Converted OpenThread thread to a dedicated work queue.
  * Implemented missing :c:func:`otPlatAssertFail` platform function.
  * Fixed a bug, where NONE level OpenThread logs were not processed.
  * Added possibility to disable CSL sampling, when used.
  * Fixed a potential bug, where invalid error code could be returned by the
    platform radio layer to OpenThread.
  * Reworked UART configuration in the OpenThread Coprocessor sample.

* Socket:

  * Added microsecond accuracy in :c:func:`zsock_select` function.
  * Reworked :c:func:`zsock_select` into a syscall.
  * Fixed a bug, where :c:func:`poll` events were not signalled correctly
    for socketpair sockets.
  * Fixed a bug, where socket mutex could be used after being initialized by a
    new owner after being deallocated in :c:func:`zsock_close`.
  * Fixed a possible assert after enabling CAN sockets.
  * Fixed IPPROTO_RAW usage in packet socket implementation.

* TCP:

  * Fixed a bug, where ``unacked_len`` could be set to a negative value.
  * Fixed possible assertion failure in :c:func:`tcp_send_data`.
  * Fixed a bug, where [FIN, PSH, ACK] was not handled properly in
    TCP_FIN_WAIT_2 state.

* TLS:

  * Reworked TLS sockets to use secure random generator from Zephyr.
  * Fixed busy looping during DTLS handshake with offloaded sockets.
  * Fixed busy looping during TLS/DTLS handshake on non blocking sockets.
  * Reset mbed TLS session on timed out DTLS handshake, to allow a retry without
    closing a socket.
  * Fixed TLS/DTLS :c:func:`sendmsg` implementation for larger payloads.
  * Fixed TLS/DTLS sockets ``POLLHUP`` notification.

* WebSocket:

  * Fixed :c:func:`poll` implementation for WebSocket, which did not work
    correctly with offloaded sockets.
  * Fixed :c:func:`ioctl` implementation for WebSocket, which did not work
    correctly with offloaded sockets.

USB
***

* Added new header file where all defines and structures from Chapter 9
  (USB Device Framework) should be included.
* Revised configuraiton of USB device support.
  Removed Kconfig option ``CONFIG_USB`` and introduced Kconfig option
  ``CONFIG_USB_DEVICE_DRIVER`` to enable USB device controller drivers,
  which is selected when option ``CONFIG_USB_DEVICE_STACK`` is enabled.
* Enhanced verification of the control request in device stack, classes, and samples.
* Added support to store alternate interface setting.
* Added ``zephyr_udc0`` nodelabel to all boards with USB support to allow
  generic USB device support samples to be build.
* Reworked descriptors, config, and data definitions macros in CDC ACM class.
* Changed CDC ACM UART implementation to get configuration from devicetree.
  With this change, many ``CONFIG_*_ON_DEV_NAME`` options were removed and
  applications revised. See :ref:`usb_device_cdc_acm` for more information.

Build and Infrastructure
************************

* Devicetree API

  * New "for-each" macros which work like existing APIs, but take variable
    numbers of arguments: :c:macro:`DT_FOREACH_CHILD_VARGS`,
    :c:macro:`DT_FOREACH_CHILD_STATUS_OKAY_VARGS`,
    :c:macro:`DT_FOREACH_PROP_ELEM_VARGS`,
    :c:macro:`DT_INST_FOREACH_CHILD_VARGS`,
    :c:macro:`DT_INST_FOREACH_STATUS_OKAY_VARGS`,
    :c:macro:`DT_INST_FOREACH_PROP_ELEM_VARGS`

  * Other new "for-each" macros: :c:macro:`DT_FOREACH_STATUS_OKAY`,
    :c:macro:`DT_FOREACH_STATUS_OKAY_VARGS`

  * New macros for converting strings to C tokens: :c:macro:`DT_STRING_TOKEN`,
    :c:macro:`DT_STRING_UPPER_TOKEN`

  * New :ref:`devicetree-pinctrl-api` helper macros

* Devicetree tooling

  * Errors are now generated when invalid YAML files are discovered while
    searching for bindings. See :ref:`dt-where-bindings-are-located` for
    information on the search path.

  * File names ending in ``.yml`` are now considered YAML files when searching
    for bindings.

  * Errors are now generated if invalid node names are used. For example, the
    node name ``node?`` now generates an error message ending in ``node?: Bad
    character '?' in node name``. The valid node names are documented in
    "2.2.2 Node Names" of the Devicetree specification v0.3.

  * Warnings are now generated if a :ref:`compatible property
    <dt-important-props>` in the ``vendor,device`` format uses an unknown
    vendor prefix. This warning does not apply to the root node.

    Known vendor prefixes are defined in
    :file:`dts/bindings/vendor-prefixes.txt` files, which may appear in any
    directory in :ref:`DTS_ROOT <dts_root>`.

    These may be upgraded to errors using the edtlib Python APIs; Zephyr's CI
    now generates such errors.

* Devicetree bindings

  * Various bindings had incorrect vendor prefixes in their :ref:`compatible
    <dt-important-props>` properties; the following changes were made to fix
    these.

    .. list-table::
       :header-rows: 1

       - * Old compatible
         * New compatible
       - * ``nios,i2c``
         * :dtcompatible:`altr,nios2-i2c`
       - * ``cadence,tensilica-xtensa-lx4``
         * :dtcompatible:`cdns,tensilica-xtensa-lx4`
       - * ``cadence,tensilica-xtensa-lx6``
         * :dtcompatible:`cdns,tensilica-xtensa-lx6`
       - * ``colorway,lpd8803``
         * :dtcompatible:`greeled,lpd8803`
       - * ``colorway,lpd8806``
         * :dtcompatible:`greeled,lpd8806`
       - * ``grove,light``
         * :dtcompatible:`seeed,grove-light`
       - * ``grove,temperature``
         * :dtcompatible:`seeed,grove-temperature`
       - * ``max,max30101``
         * :dtcompatible:`maxim,max30101`
       - * ``ublox,sara-r4``
         * :dtcompatible:`u-blox,sara-r4`
       - * ``xtensa,core-intc``
         * :dtcompatible:`cdns,xtensa-core-intc`
       - * ``vexriscv,intc0``
         * :dtcompatible:`vexriscv-intc0`

    Out of tree users of these bindings will need to update their
    devicetrees.

    You can support multiple versions of Zephyr with one devicetree by
    including both the old and new values in your nodes' compatible properties,
    like this example for the LPD8803::

        my-led-strip@0 {
                compatible = "colorway,lpd8803", "greeled,lpd8803";
                ...
        };

  * Other new bindings in alphabetical order: :dtcompatible:`andestech,atcgpio100`,
    :dtcompatible:`arm,gic-v3-its`, :dtcompatible:`atmel,sam0-gmac`,
    :dtcompatible:`atmel,sam0-pinctrl`, :dtcompatible:`atmel,sam-dac`,
    :dtcompatible:`atmel,sam-mdio`, :dtcompatible:`atmel,sam-usbc`,
    :dtcompatible:`cdns,tensilica-xtensa-lx7`,
    :dtcompatible:`espressif,esp32c3-uart`,
    :dtcompatible:`espressif,esp32-intc`,
    :dtcompatible:`espressif,esp32s2-uart`, :dtcompatible:`ethernet-phy`,
    :dtcompatible:`fcs,fxl6408`, :dtcompatible:`ilitek,ili9341`,
    :dtcompatible:`ite,it8xxx2-bbram`, :dtcompatible:`ite,it8xxx2-kscan`,
    :dtcompatible:`ite,it8xxx2-pinctrl-conf`, :dtcompatible:`ite,it8xxx2-pwm`,
    :dtcompatible:`ite,it8xxx2-pwmprs`, :dtcompatible:`ite,it8xxx2-watchdog`,
    :dtcompatible:`lm75`, :dtcompatible:`lm77`, :dtcompatible:`meas,ms5607`,
    :dtcompatible:`microchip,ksz8863`, :dtcompatible:`microchip,mcp7940n`,
    :dtcompatible:`microchip,xec-adc-v2`, :dtcompatible:`microchip,xec-ecia`,
    :dtcompatible:`microchip,xec-ecia-girq`,
    :dtcompatible:`microchip,xec-gpio-v2`,
    :dtcompatible:`microchip,xec-i2c-v2`, :dtcompatible:`microchip,xec-pcr`,
    :dtcompatible:`microchip,xec-uart`, :dtcompatible:`nuvoton,npcx-bbram`,
    :dtcompatible:`nuvoton,npcx-booter-variant`,
    :dtcompatible:`nuvoton,npcx-ps2-channel`,
    :dtcompatible:`nuvoton,npcx-ps2-ctrl`, :dtcompatible:`nuvoton,npcx-soc-id`,
    :dtcompatible:`nxp,imx-ccm-rev2`, :dtcompatible:`nxp,lpc-ctimer`,
    :dtcompatible:`nxp,lpc-uid`, :dtcompatible:`nxp,mcux-usbd`,
    :dtcompatible:`nxp,sctimer-pwm`, :dtcompatible:`ovti,ov2640`,
    :dtcompatible:`renesas,rcar-can`, :dtcompatible:`renesas,rcar-i2c`,
    :dtcompatible:`reserved-memory`, :dtcompatible:`riscv,sifive-e24`,
    :dtcompatible:`sensirion,sgp40`, :dtcompatible:`sensirion,sht4x`,
    :dtcompatible:`sensirion,shtcx`, :dtcompatible:`silabs,si7055`,
    :dtcompatible:`silabs,si7210`, :dtcompatible:`snps,creg-gpio`,
    :dtcompatible:`st,i3g4250d`, :dtcompatible:`st,stm32-aes`,
    :dtcompatible:`st,stm32-dma`, :dtcompatible:`st,stm32-dma-v2bis`,
    :dtcompatible:`st,stm32-hsem-mailbox`, :dtcompatible:`st,stm32-nv-flash`,
    :dtcompatible:`st,stm32-spi-subghz`,
    :dtcompatible:`st,stm32u5-flash-controller`,
    :dtcompatible:`st,stm32u5-msi-clock`, :dtcompatible:`st,stm32u5-pll-clock`,
    :dtcompatible:`st,stm32u5-rcc`, :dtcompatible:`st,stm32wl-hse-clock`,
    :dtcompatible:`st,stm32wl-subghz-radio`, :dtcompatible:`st,stmpe1600`,
    :dtcompatible:`syscon`, :dtcompatible:`telink,b91`,
    :dtcompatible:`telink,b91-flash-controller`,
    :dtcompatible:`telink,b91-gpio`, :dtcompatible:`telink,b91-i2c`,
    :dtcompatible:`telink,b91-pinmux`, :dtcompatible:`telink,b91-power`,
    :dtcompatible:`telink,b91-pwm`, :dtcompatible:`telink,b91-spi`,
    :dtcompatible:`telink,b91-trng`, :dtcompatible:`telink,b91-uart`,
    :dtcompatible:`telink,b91-zb`, :dtcompatible:`ti,hdc2010`,
    :dtcompatible:`ti,hdc2021`, :dtcompatible:`ti,hdc2022`,
    :dtcompatible:`ti,hdc2080`, :dtcompatible:`ti,hdc20xx`,
    :dtcompatible:`ti,ina219`, :dtcompatible:`ti,ina23x`,
    :dtcompatible:`ti,tca9538`, :dtcompatible:`ti,tca9546a`,
    :dtcompatible:`ti,tlc59108`,
    :dtcompatible:`xlnx,gem`, :dtcompatible:`zephyr,bbram-emul`,
    :dtcompatible:`zephyr,cdc-acm-uart`, :dtcompatible:`zephyr,gsm-ppp`,
    :dtcompatible:`zephyr,native-posix-udc`

* West (extensions)

    * openocd runner: Zephyr thread awareness is now available in GDB by default
      for application builds with :kconfig:`CONFIG_DEBUG_THREAD_INFO` set to ``y``
      in :ref:`kconfig`. This applies to ``west debug``, ``west debugserver``,
      and ``west attach``. OpenOCD version later than 0.11.0 must be installed
      on the host system.


Libraries / Subsystems
**********************

* Disk


* Management


* CMSIS subsystem


* Power management

  * The APIs to set/clear/check if devices are busy from a power management
    perspective have been moved to the PM subsystem. Their naming and signature
    has also been adjusted to follow common conventions. Below you can find the
    equivalence list.

    * ``device_busy_set`` -> ``pm_device_busy_set``
    * ``device_busy_clear`` -> ``pm_device_busy_clear``
    * ``device_busy_check`` -> ``pm_device_is_busy``
    * ``device_any_busy_check`` -> ``pm_device_is_any_busy``

  * The device power management callback (``pm_device_control_callback_t``) has
    been largely simplified to work based on *actions*, resulting in simpler and
    more natural implementations. This principle is also used by other OSes like
    the Linux Kernel. As a result, the callback argument list has been reduced
    to the device instance and an action (e.g. ``PM_DEVICE_ACTION_RESUME``).
    Other improvements include specification of error codes, removal of some
    unused/unclear states, or guarantees such as avoid calling a device for
    suspend/resume if it is already at the right state. All these changes
    together have allowed simplifying multiple device power management callback
    implementations.

  * Introduced a new API to allow devices capable of wake up the system
    register themselves was wake up sources. This permits applications to
    select the most appropriate way to wake up the system when it is
    suspended. Devices marked as wake up source are not suspended by the kernel
    when the system is idle. It is possible to declare a device wake up capable
    direct in devicetree like this example::

        &gpio0 {
                compatible = "zephyr,gpio-emul";
                gpio-controller;
                wakeup-source;
        };

    * Removed  ``PM_DEVICE_STATE_FORCE_SUSPEND`` device power state.because it
      is an action and not a state.

    * Removed ``PM_DEVICE_STATE_RESUMING`` and ``PM_DEVICE_STATE_SUSPENDING``.
      They were transitional states and only used in device runtime. Now the
      subsystem is using device flag to keep track of a transition.

    * Implement constraint API as weak symbols so applications or platform
      can override them. Platforms can have their own way to
      set/release constraints in their drivers that are not part of
      Zephyr code base.


* Logging

* MODBUS

  * Changed server handler to copy Transaction and Protocol Identifiers
    to response header.

* Random

  * xoroshiro128+ PRNG deprecated in favor of xoshiro128++

* Shell


* Storage


* Task Watchdog


* Tracing


* Debug

* OS


HALs
****

* HALs are now moved out of the main tree as external modules and reside in
  their own standalone repositories.


Trusted Firmware-m
******************

* Renamed psa_level_1 sample to psa_crypto. Extended the use of the PSA Cryptography
  1.0 API in the sample code to demonstrate additional crypto functionality.
* Added a new sample to showcase the PSA Protecter Storage service.

Documentation
*************

* Kconfig options need to be referenced using the ``:kconfig:`` Sphinx role.
  Previous to this change, ``:option:`` was used for this purpose.
* Doxygen alias ``@config{}`` has been deprecated in favor of ``@kconfig{}``.

Tests and Samples
*****************


Issue Related Items
*******************

These GitHub issues were addressed since the previous 2.6.0 tagged
release:

* :github:`39443` - Be more inclusive
* :github:`39419` - STM32WL55 not found st/wl/stm32wl55jcix-pinctrl.dtsi
* :github:`39413` - warnings when using newlibc and threads
* :github:`39409` - runners: canopen: program download fails with slow flash access and/or congested CAN nets
* :github:`39389` - http_get, big_http_download samples fails to build
* :github:`39388` - GSM Modem sample fails to build
* :github:`39378` - Garbage IQ Data Reports are generated if some check in hci_df_prepare_connectionless_iq_report fails
* :github:`39294` - noticing stm32 clock domain naming changes
* :github:`39291` - Bluetooth: Periodic advertising
* :github:`39284` - mdns + dns_sd: fix regression that breaks ptr queries
* :github:`39281` - Undefined references to k_thread_abort related tracing routines
* :github:`39270` - example-application CI build fails
* :github:`39263` - Bluetooth: controller: DF: wrong handling of max_cte_count
* :github:`39260` - [backport v2.7-branch] backport of #38292 failed
* :github:`39240` - ARC Kconfig allows so select IRQ configuration which isn't supported in SW
* :github:`39206` - lwm2m: send_attempts field does not seem to be used?
* :github:`39205` - drivers: wifi: esp_at: cannot connect to open (unsecure) WiFi networks
* :github:`39195` - USB: netusb: example echo_server not working as expected
* :github:`39190` - tests/subsys/logging/log_core_additional/logging.add.log2 fails
* :github:`39188` - tests/bluetooth/mesh/bluetooth.mesh.ext_adv fails
* :github:`39185` - tests/subsys/logging/log_core_additional/logging.add.user fails on several platforms
* :github:`39180` - samples/subsys/mgmt/osdp/peripheral_device & samples/subsys/mgmt/osdp/control_panel fail to build
* :github:`39170` - Can not run correctly on NXP MIMXRT1061 CVL5A.
* :github:`39135` - samples/compression/lz4 build failed (lz4.h: No such file or directory)
* :github:`39132` - subsys/net/ip/tcp2: Missing feature to decrease Receive Window size sent in the ACK messge
* :github:`39123` - ztest:  Broken on NRF52840 Platform
* :github:`39115` - sensor: fdc2x1x: warnings and compilation errors when PM_DEVICE is used
* :github:`39086` - CMake warning during build - depracated roule CMP0079
* :github:`39085` - Ordering of device_map() breaks PCIe config space mapping on ARM64
* :github:`39075` - IPv6 address not set on loopback interface
* :github:`39051` - Zephyr was unable to find the toolchain. Is the environment misconfigured?
* :github:`39036` - Multicast packet forwarding not working for the coap_server sample and Openthread
* :github:`39022` - [backport v2.7-branch] backport of #38834 failed
* :github:`39011` - Bluetooth: Mesh: Model extensions walk stops before last model
* :github:`39009` - Nordic PWM causing lock up due to infinte loop
* :github:`39008` - tests: logging.add.user: build failure on STM32H7 targets
* :github:`38999` - [backport v2.7-branch] backport of #38407 failed
* :github:`38996` - There is no way to leave a ipv6 multicast group
* :github:`38994` - ARP: Replies are sent to multicast MAC address rather than senders MAC address.
* :github:`38970` - LWM2M Client Sample with DTLS enabled fail to connect
* :github:`38966` - Please add STM32F412VX
* :github:`38961` - tests: kernel: sched: schedule_api: instable on disco_l475_iot1
* :github:`38959` - ITE RISCV I2C driver returning positive values for error instead of negative values
* :github:`38943` - west: update hal_espressif failure
* :github:`38938` - Bluetooth tester application should be able return L2CAP ECFC credits on demand
* :github:`38930` - Low Power mode not functional on nucleo_l073rz
* :github:`38924` - twister: cmake: Misleading error in Twister when sdk-zephyr 0.13.1 not used
* :github:`38904` - [backport v2.7-branch] backport of #38860 failed
* :github:`38902` - i2c_nrfx_twim: Error 0x0BAE0002 if sensor is set in trigger mode and reset with nrf device
* :github:`38899` - There is no valid date setting function in the RTC driver of the LL Library of STM32
* :github:`38893` - g0b1re + spi_flash_at45 + flash_shell: First write always fails with ``CONFIG_PM_DEVICE``
* :github:`38886` - devicetree/memory.h probably should not exist as-is
* :github:`38877` - Running the zephyr elf natively on an arm a53 machine (ThunderX2) with KVM emulation
* :github:`38870` - stm32f1: Button callback not fired
* :github:`38853` - Bluetooth: host: bt_unpair failed because function [bt_conn_set_state] wont work as expected
* :github:`38849` - drivers: i2c: nrf: i2c error with burst write
* :github:`38829` - net_buf issue leads to unwanted elem free
* :github:`38826` - tests/lib/cmsis_dsp: malloc failed on 128K SRAM targets
* :github:`38818` - driver display display_st7789v.c build error
* :github:`38815` - kernel/mem_domain: Remove dead case in check_add_partition()
* :github:`38807` - stm32: Missing header in power.c files
* :github:`38804` - tests\kernel\threads\thread_stack test fail with ARC
* :github:`38799` - BLE central_ht only receives 7 notifications
* :github:`38796` - Failure building the zephyr\tests\subsys\cpp\libcxx project
* :github:`38791` - Example code_relocation not compiling.
* :github:`38790` - SD FatFS Sample Build Failure
* :github:`38784` - stm32: pm: Debug mode not functional on G0
* :github:`38782` - CONFIG_BT_CTLR_DATA_LENGTH_MAX=250 causes pairing compatibility issues with many devices
* :github:`38769` - mqtt: the size of a mqtt payload is limited
* :github:`38765` - samples: create an OLED example
* :github:`38764` - CBPRINTF_FP_SUPPORT does not work after NEWLIB_LIBC enabled
* :github:`38761` - Does zephyr_library_property defines -DTRUE in command-line?
* :github:`38756` - Twister: missing testcases with error in report
* :github:`38745` - Bluetooth when configured for extended advertising does not limit advertisement packet size if a non-extended avertisement is used
* :github:`38737` - drivers: syscon: missing implementation
* :github:`38735` - nucleo_wb55rg: Flash space left to M0 binary is not sufficient anymore
* :github:`38731` - test-ci: ptp_clock_test :  test failure on frdm_k64f platform
* :github:`38727` - [RFC] Add hal_gigadevice to support GigaDevice SoC Vendor
* :github:`38716` - modem: HL7800: does not work with IPv6
* :github:`38702` - Coap server not properly removing observers
* :github:`38701` - Observable resource of coap server seems to not support a restart of an observer
* :github:`38700` - Observable resource of coap server seems to not support 2 observers simultaneously
* :github:`38698` - stm32f4_disco: Socket CAN sample not working
* :github:`38697` - The coap_server sample is missing the actual send in the retransmit routine
* :github:`38694` - Disabling NET_CONFIG_AUTO_INIT does not require calling net_config_init() manually in application as mentioned in Zephyr Network Configuration Library documentation
* :github:`38692` - samples/tfm_integration: Compilation fails ("unexpected keyword argument 'rom_fixed'")
* :github:`38691` - MPU fault with mcumgr bluetooth FOTA started whilst existing FOTA is in progress
* :github:`38690` - Wrong initialisation priority on different display drivers (eg. ST7735r) cause exception when using lvgl.
* :github:`38688` - bt_gatt_unsubscribe does not remove subscription from internal list/returning BT_GATT_ITER_STOP causes bt_gatt_subscribe to return -ENOMEM / -12
* :github:`38675` - DTS binding create devicetree_unfixed.h build error at v2.7.0
* :github:`38673` - DNS-SD library does not support ``_services._dns-sd._udp.local`` meta-query for service enumeration
* :github:`38668` -  ESP32‘s I2S
* :github:`38667` - ST LSM6DSO polling mode does not work on nRF52dk_nrf52832
* :github:`38655` - Failing Tests for Regulator API
* :github:`38653` - drivers: modem: gsm_ppp: Add support for Quectel modems
* :github:`38646` - SIMD Rounding bug while running Assembly addps instruction on Zephyr
* :github:`38641` - Arm v8-M '_ns' renaming was applied inconsistently
* :github:`38635` - USDHC driver broken on RT10XX after 387e6a676f86c00d1f9ef018e4b2480e0bcad3c8 commit
* :github:`38622` - subsys/usb: CONFIG_USB_DEVICE_STACK resulted in 10kb increase in firmware size
* :github:`38621` - Drivers: spi: stm32: Transceive lock forever
* :github:`38620` - STM32 uart driver prevent system to go to deep sleep
* :github:`38617` - HL7800 PSM not working as intended
* :github:`38613` - BLE connection parameters updated with inconsistent values
* :github:`38612` - Fault with assertions enabled prevents detailed output because of ISR() assertion check in shell function
* :github:`38602` - modem gsm
* :github:`38601` - nucleo_f103rb: samples/posix/eventfd/ failed since "retargetable locking" addition
* :github:`38593` - using RTT console to print along with newlib C library in Zephyr
* :github:`38591` - nucleo_f091rc: Linking issue since "align __data_ram/rom_start/end linker" (65a2de84a9d5c535167951bf1cf610c4f7967ea5)
* :github:`38586` - olimexino_stm32: "no DEVICE_HANDLE_ENDS inserted" builld issue (samples/subsys/usb/audio/headphones_microphone)
* :github:`38581` - tests-ci : kernel: scheduler: multiq test failed
* :github:`38582` - tests-ci : kernel: scheduler:  test failed
* :github:`38578` - STM32L0X ADC hangs
* :github:`38572` - Builds with macOS SDK are failing
* :github:`38571` - bug: drivers: ethernet: build as static library breaks frdm_k64f gptp sample application
* :github:`38563` - ISO broadcast cannot send with callback if CONFIG_BT_CONN=n
* :github:`38560` - log v2 with 64-bit integers and threads causes invalid 64-bit value output
* :github:`38559` - Shell log backend may hang on qemu_x86_64
* :github:`38558` - CMake warning: CMP0079
* :github:`38554` - tests-ci : kernel: scheduler:  test failed
* :github:`38552` - stm32: g0b1: garbage output in log and suspected hard fault when configuring modem
* :github:`38536` - samples: tests: display: Sample for display.ft800 causes end in timeout
* :github:`38535` - drivers: modem: bg9x: Kconfig values compiled into ``autoconf.h`` even if it isn't being used
* :github:`38534` - lwm2m: add api to inspect observation state of resource/object
* :github:`38532` - samples: audio: tests: Twister fails on samples/drivers/audio/dmic
* :github:`38527` - lwm2m: re-register instead of removing observer on COAP reset answer to notification
* :github:`38520` - Bluetooth:Host:Scan: "bt_le_per_adv_list_add" function doesn't work
* :github:`38519` - stm32: g0b1re: Log/Shell subsys with serial uart buggy after #38432
* :github:`38516` - subsys: net: ip: packet_socket: always returning of NET_CONTINUE caused access to unreferred pkt and causing a crash/segmentation fault
* :github:`38514` - mqtt azure sample failing with net_tcp "is waiting on connect semaphore"
* :github:`38512` - stm32f7: CAN: STM32F645VE CAN signal seems upside down.
* :github:`38500` - tests/kernel/device/kernel.device.pm fails to build on TI platforms
* :github:`38498` - net: ipv6: nbr_lock not initialized with CONFIG_NET_IPV6_ND=n
* :github:`38480` - Improve samples documentation
* :github:`38479` - "west flash" command exiting with error
* :github:`38477` - json: JSON Library Orphaned, Request to Become a Maintainer
* :github:`38474` - command exited with status 63: nrfjprog --ids
* :github:`38463` - check_compliance gives very many Kconfig warnings
* :github:`38452` - Some STM32 series require CONFIG_PM_DEVICE if CONFIG_PM=y
* :github:`38442` - test-ci: can: twr_ke18f: all can driver test fails with BUS Fault
* :github:`38438` - test-ci: test_flash_map:twr_ke18f: test failure
* :github:`38437` - stm32: g0b1re: Serial UART timing issue after MCU entered deep sleep
* :github:`38433` - gpio_pin_set not working on STM32 with CONFIG_PM_DEVICE_RUNTIME
* :github:`38428` - http_client response callback always reports final_data == HTTP_DATA_FINAL
* :github:`38427` - mimxrt1050_evk and mimxrt1020_evk boards fail to boot some sample applications
* :github:`38421` - HardFault regression detected on Cortex-M0+ following Cortex-R introduction
* :github:`38418` - twister: Remove toolchain-depandat filter for native_posix
* :github:`38417` - Add support for WeAct-F401CC board
* :github:`38414` - Build of http client fails if CONFIG_POSIX_API=y
* :github:`38405` - samples/philosophers/sample.kernel.philosopher.stacks fails on xtensa
* :github:`38403` - Cleanup ``No SOURCES given to Zephyr library`` warnings
* :github:`38402` - module: MCUboot module missing fixes available upstream
* :github:`38401` - Builds fail due to a proxy error by launchpadlibrarian
* :github:`38400` - mec15xxevb_assy6853: arm_ramfunc and arm_sw_vector_relay tests timeout after the build
* :github:`38398` - DT_N_INST error for TMP116 sample
* :github:`38396` - RISC-V privilege SoC initialisation code skips the __reset vector
* :github:`38382` - stm32 uart finishes Tx before going to PM
* :github:`38365` - drivers: gsm_ppp: gsm_ppp_stop fails to lock tx_sem after some time
* :github:`38362` - soc: ti cc13x2-cc26x2: PM standby + radio interaction regression
* :github:`38354` - stm32: stm32f10x JTAG realated gpio repmap didn't works
* :github:`38351` - Custom radio protocol
* :github:`38349` - XCC compilation fails on Intel cAVS platforms
* :github:`38348` - Bluetooth: Switch to inclusive terminology from the 5.3 specification
* :github:`38340` - Bluetooth:DirectionFinding: Disabling the MPU causes some compilation errors
* :github:`38332` - stm32g0: power hooks should be define as weak
* :github:`38323` - Can not generate code coverage report by running samples/subsys/tracing
* :github:`38316` - Synchronize multiple DF TX devices in the DF Connectionless RX Example "Periodic Advertising list"
* :github:`38309` - ARC context switch to interrupted thread busted with CONFIG_ARC_FIRQ=y and CONFIG_NUM_IRQ_PRIO_LEVELS=1
* :github:`38303` - The current BabbleSim tests build system based on bash scripts hides warnings
* :github:`38290` - net_buf_add_mem() hard-faults when adding buffer from external SDRAM
* :github:`38279` - Bluetooth: Controller: assert LL_ASSERT(!radio_is_ready()) in lll_conn.c
* :github:`38277` - soc: stm32h7: Fails to boot with LDO power supply, if soc has SMPS support.
* :github:`38276` - LwM2M: RD Client: Wrong state if registration fails
* :github:`38273` - Support UART4 on STM32F303Xe
* :github:`38272` - "west flash" stopped working
* :github:`38271` - Expose emulator_get_binding function
* :github:`38264` - Modbus over RS485 on samd21g18a re-gpios turning on 1 byte too early
* :github:`38259` - subsys/shell: ``[JJ`` escape codes in logs after disabling colors
* :github:`38258` - newlib: first malloc call may fail on Xtensa depending on image size
* :github:`38246` - samples: drivers: flash_shell: fails on arduino_due due to compilation issue
* :github:`38245` - board: bl654_usb project: samples/basic/blinky does not blink LED
* :github:`38240` - Connected ISO does not disconnect gracefully
* :github:`38237` - [backport v2.6-branch] backport of #37479 failed
* :github:`38235` - Please add stm32h723Xe.dtsi to dts/arm/st/h7/
* :github:`38234` - Newlib retargetable lock init fails on qemu_xtensa
* :github:`38233` - Build newlib function read() and write() failed when enable userspace
* :github:`38219` - kernel: Z_MEM_SLAB_INITIALIZER MACRO not compatible with C++
* :github:`38216` - nxp_adsp_imx8 fails to build a number of tests
* :github:`38214` - xtensa builds fail in CI due to running out of ram to link
* :github:`38207` - Use of unaligned noinit data hangs qemu_arc_hs
* :github:`38202` - mbedtls and littlefs on a STM32L4
* :github:`38197` - Invalid NULL check for ``iso`` in bt_iso_connected
* :github:`38196` - net nbr command might crash
* :github:`38191` - Unable to connect multiple MQTT clients
* :github:`38186` - i.MX RT10xx boards fail to initialize when Ethernet is enabled
* :github:`38181` - tests/drivers/uart/uart_basic_api/drivers.uart.cdc_acm fails to build
* :github:`38177` - LORA Module crashes SHT3XD sensor.
* :github:`38173` - STM32WB: Low power modes entry blocked by C2 when CONFIG_BLE=n
* :github:`38172` - modem_context_sprint_ip_addr returns pointer to stack array
* :github:`38170` - Shell argument in second position containing a question mark is ignored
* :github:`38168` - aarch32: flags value collision between base IRQ layer and GIC interrupt controller driver
* :github:`38162` - Upgrade to 2.6 GPIO device_get_binding("GPIO_0") now returns null
* :github:`38154` - Error building example i2c_fujitsu_fram
* :github:`38153` - Zephyr Native POSIX select() implementation too frequent wakeup on pure timeout based use
* :github:`38145` - [backport v2.6-branch] backport of #37787 failed
* :github:`38144` - [backport v2.6-branch] backport of #37787 failed
* :github:`38141` - Wrong output from printk() with CONFIG_CBPRINTF_NANO=y
* :github:`38138` - [Coverity CID: 239554] Out-of-bounds read in /zephyr/include/generated/syscalls/log_msg2.h (Generated Code)
* :github:`38137` - [Coverity CID: 239555] Unchecked return value in subsys/mgmt/hawkbit/hawkbit.c
* :github:`38136` - [Coverity CID: 239557] Out-of-bounds read in /zephyr/include/generated/syscalls/kernel.h (Generated Code)
* :github:`38135` - [Coverity CID: 239560] Out-of-bounds access in subsys/modbus/modbus_core.c
* :github:`38134` - [Coverity CID: 239563] Logically dead code in subsys/bluetooth/host/id.c
* :github:`38133` - [Coverity CID: 239564] Side effect in assertion in subsys/bluetooth/controller/ll_sw/nordic/lll/lll.c
* :github:`38132` - [Coverity CID: 239565] Unchecked return value in drivers/sensor/adxl372/adxl372_trigger.c
* :github:`38131` - [Coverity CID: 239568] Out-of-bounds access in subsys/modbus/modbus_core.c
* :github:`38130` - [Coverity CID: 239569] Out-of-bounds access in subsys/bluetooth/host/id.c
* :github:`38129` - [Coverity CID: 239572] Out-of-bounds read in /zephyr/include/generated/syscalls/kernel.h (Generated Code)
* :github:`38127` - [Coverity CID: 239579] Logically dead code in drivers/flash/nrf_qspi_nor.c
* :github:`38126` - [Coverity CID: 239581] Out-of-bounds access in subsys/modbus/modbus_core.c
* :github:`38125` - [Coverity CID: 239582] Unchecked return value in drivers/display/ssd1306.c
* :github:`38124` - [Coverity CID: 239583] Side effect in assertion in subsys/bluetooth/controller/ll_sw/nordic/lll/lll.c
* :github:`38123` - [Coverity CID: 239584] Improper use of negative value in subsys/logging/log_msg2.c
* :github:`38122` - [Coverity CID: 239585] Side effect in assertion in subsys/bluetooth/controller/ll_sw/nordic/lll/lll.c
* :github:`38121` - [Coverity CID: 239586] Side effect in assertion in subsys/bluetooth/controller/ll_sw/nordic/lll/lll.c
* :github:`38120` - [Coverity CID: 239588] Unchecked return value in subsys/bluetooth/host/id.c
* :github:`38119` - [Coverity CID: 239592] Dereference before null check in subsys/ipc/rpmsg_multi_instance/rpmsg_multi_instance.c
* :github:`38118` - [Coverity CID: 239597] Explicit null dereferenced in tests/net/context/src/main.c
* :github:`38117` - [Coverity CID: 239598] Unchecked return value in drivers/sensor/adxl362/adxl362_trigger.c
* :github:`38116` - [Coverity CID: 239601] Untrusted loop bound in subsys/bluetooth/host/sdp.c
* :github:`38115` - [Coverity CID: 239605] Logically dead code in drivers/flash/nrf_qspi_nor.c
* :github:`38114` - [Coverity CID: 239607] Missing break in switch in subsys/usb/class/dfu/usb_dfu.c
* :github:`38113` - [Coverity CID: 239609] Out-of-bounds access in subsys/random/rand32_ctr_drbg.c
* :github:`38112` - [Coverity CID: 239612] Out-of-bounds read in /zephyr/include/generated/syscalls/log_ctrl.h (Generated Code)
* :github:`38111` - [Coverity CID: 239615] Out-of-bounds access in subsys/net/lib/sockets/sockets_tls.c
* :github:`38110` - [Coverity CID: 239619] Out-of-bounds access in subsys/net/lib/sockets/sockets_tls.c
* :github:`38109` - [Coverity CID: 239623] Out-of-bounds access in subsys/net/lib/sockets/sockets_tls.c
* :github:`38108` - nxp: usb driver build failure due to d92d1f162af3ba24963f1026fc0a304f1a44d1f3
* :github:`38104` - kheap buffer own section attribute causing memory overflow in ESP32
* :github:`38101` - bt_le_adv_update_data() assertion fail
* :github:`38093` - preempt_cnt not reset in each test case in tests/lib/ringbuffer/libraries.data_structures
* :github:`38090` - LPS22HH: int32_t overflow in pressure calculations
* :github:`38082` - Hawkbit (http request) and MQTT can't seem to work together
* :github:`38078` - RT6XX I2S test fails after d92d1f162af3ba24963f1026fc0a304f1a44d1f3
* :github:`38069` - stm32h747i_disco M4 not working following merge of 9fa5437447712eece9c88e728ac05ac10fb01c4a
* :github:`38065` - Bluetooth: Direction Finding: Compiler warning when included in other header files
* :github:`38059` - automount configuration in nrf52840dk_nrf52840.overlay causes error: mount point already exists!! in subsys/fs/littlefs sample
* :github:`38054` - Bluetooth: host: Local Host terminated but send host number of completed Packed
* :github:`38047` - twister: The --board-root parameter doesn't appear to work
* :github:`38046` - twister: The --device-serial only works at 115200 baud
* :github:`38044` - tests: newlib: Scenarios from tests/lib/newlib/thread_safety fail on nrf9160dk_nrf9160_ns
* :github:`38031` - STM32WB - Problem with data reception on LPUART when PM and LPTIM are enabled
* :github:`38026` - boards: bl654_usb: does not support samples/bluetooth/hci_uart
* :github:`38022` - thread: k_float_enable() API can't build on x86_64 platforms, fix that API and macro documentation
* :github:`38019` - nsim_sem_mpu_stack_guard board can't run
* :github:`38017` - [Coverity CID: 237063] Untrusted value as argument in tests/net/lib/coap/src/main.c
* :github:`38016` - [Coverity CID: 238375] Uninitialized pointer read in subsys/bluetooth/mesh/shell.c
* :github:`38015` - [Coverity CID: 237072] Uninitialized pointer read in subsys/bluetooth/controller/ll_sw/ull_adv_aux.c
* :github:`38014` - [Coverity CID: 237071] Unexpected control flow in subsys/bluetooth/host/keys.c
* :github:`38013` - [Coverity CID: 237070] Unchecked return value in subsys/bluetooth/shell/gatt.c
* :github:`38012` - [Coverity CID: 236654] Unchecked return value in subsys/bluetooth/host/gatt.c
* :github:`38011` - [Coverity CID: 236653] Unchecked return value in drivers/sensor/bmi160/bmi160_trigger.c
* :github:`38010` - [Coverity CID: 236652] Unchecked return value in drivers/sensor/fxas21002/fxas21002_trigger.c
* :github:`38009` - [Coverity CID: 236651] Unchecked return value in drivers/sensor/bmg160/bmg160_trigger.c
* :github:`38008` - [Coverity CID: 236650] Unchecked return value in drivers/sensor/fxos8700/fxos8700_trigger.c
* :github:`38007` - [Coverity CID: 236649] Unchecked return value in drivers/sensor/adt7420/adt7420_trigger.c
* :github:`38006` - [Coverity CID: 236648] Unchecked return value in drivers/sensor/sx9500/sx9500_trigger.c
* :github:`38005` - [Coverity CID: 236647] Unchecked return value in drivers/sensor/bmp388/bmp388_trigger.c
* :github:`38004` - [Coverity CID: 238360] Result is not floating-point in drivers/sensor/sgp40/sgp40.c
* :github:`38003` - [Coverity CID: 238343] Result is not floating-point in drivers/sensor/sgp40/sgp40.c
* :github:`38002` - [Coverity CID: 237060] Out-of-bounds access in subsys/bluetooth/host/gatt.c
* :github:`38001` - [Coverity CID: 238371] Negative array index read in tests/lib/cbprintf_package/src/test.inc
* :github:`38000` - [Coverity CID: 238347] Negative array index read in tests/lib/cbprintf_package/src/test.inc
* :github:`37999` - [Coverity CID: 238383] Logically dead code in tests/bluetooth/tester/src/mesh.c
* :github:`37998` - [Coverity CID: 238381] Logically dead code in tests/bluetooth/tester/src/mesh.c
* :github:`37997` - [Coverity CID: 238380] Logically dead code in tests/bluetooth/tester/src/mesh.c
* :github:`37996` - [Coverity CID: 238379] Logically dead code in tests/bluetooth/tester/src/mesh.c
* :github:`37995` - [Coverity CID: 238378] Logically dead code in tests/bluetooth/tester/src/mesh.c
* :github:`37994` - [Coverity CID: 238377] Logically dead code in tests/bluetooth/tester/src/mesh.c
* :github:`37993` - [Coverity CID: 238376] Logically dead code in tests/bluetooth/tester/src/mesh.c
* :github:`37992` - [Coverity CID: 238374] Logically dead code in tests/bluetooth/tester/src/mesh.c
* :github:`37991` - [Coverity CID: 238373] Logically dead code in tests/bluetooth/tester/src/mesh.c
* :github:`37990` - [Coverity CID: 238372] Logically dead code in tests/bluetooth/tester/src/mesh.c
* :github:`37989` - [Coverity CID: 238370] Logically dead code in tests/bluetooth/tester/src/mesh.c
* :github:`37988` - [Coverity CID: 238369] Logically dead code in tests/bluetooth/tester/src/mesh.c
* :github:`37987` - [Coverity CID: 238368] Logically dead code in tests/bluetooth/tester/src/mesh.c
* :github:`37986` - [Coverity CID: 238367] Logically dead code in tests/bluetooth/tester/src/mesh.c
* :github:`37985` - [Coverity CID: 238366] Logically dead code in tests/bluetooth/tester/src/mesh.c
* :github:`37984` - [Coverity CID: 238364] Logically dead code in tests/bluetooth/tester/src/mesh.c
* :github:`37983` - [Coverity CID: 238363] Logically dead code in tests/bluetooth/tester/src/mesh.c
* :github:`37982` - [Coverity CID: 238362] Logically dead code in tests/bluetooth/tester/src/mesh.c
* :github:`37981` - [Coverity CID: 238361] Logically dead code in tests/bluetooth/tester/src/mesh.c
* :github:`37980` - [Coverity CID: 238359] Logically dead code in tests/bluetooth/tester/src/mesh.c
* :github:`37979` - [Coverity CID: 238358] Logically dead code in tests/bluetooth/tester/src/mesh.c
* :github:`37978` - [Coverity CID: 238357] Logically dead code in tests/bluetooth/tester/src/mesh.c
* :github:`37977` - [Coverity CID: 238356] Logically dead code in tests/bluetooth/tester/src/mesh.c
* :github:`37976` - [Coverity CID: 238355] Logically dead code in tests/bluetooth/tester/src/mesh.c
* :github:`37975` - [Coverity CID: 238354] Logically dead code in tests/bluetooth/tester/src/mesh.c
* :github:`37974` - [Coverity CID: 238353] Logically dead code in tests/bluetooth/tester/src/mesh.c
* :github:`37973` - [Coverity CID: 238352] Logically dead code in tests/bluetooth/tester/src/mesh.c
* :github:`37972` - [Coverity CID: 238351] Logically dead code in tests/bluetooth/tester/src/mesh.c
* :github:`37971` - [Coverity CID: 238350] Logically dead code in tests/bluetooth/tester/src/mesh.c
* :github:`37970` - [Coverity CID: 238349] Logically dead code in tests/bluetooth/tester/src/mesh.c
* :github:`37969` - [Coverity CID: 238348] Logically dead code in tests/bluetooth/tester/src/mesh.c
* :github:`37968` - [Coverity CID: 238346] Logically dead code in tests/bluetooth/tester/src/mesh.c
* :github:`37967` - [Coverity CID: 238345] Logically dead code in tests/bluetooth/tester/src/mesh.c
* :github:`37966` - [Coverity CID: 238344] Logically dead code in tests/bluetooth/tester/src/mesh.c
* :github:`37965` - [Coverity CID: 238342] Logically dead code in tests/bluetooth/tester/src/mesh.c
* :github:`37964` - [Coverity CID: 238341] Logically dead code in tests/bluetooth/tester/src/mesh.c
* :github:`37963` - [Coverity CID: 238340] Logically dead code in tests/bluetooth/tester/src/mesh.c
* :github:`37962` - [Coverity CID: 238339] Logically dead code in tests/bluetooth/tester/src/mesh.c
* :github:`37961` - [Coverity CID: 238337] Logically dead code in tests/bluetooth/tester/src/mesh.c
* :github:`37960` - [Coverity CID: 238336] Logically dead code in tests/bluetooth/tester/src/mesh.c
* :github:`37959` - [Coverity CID: 238335] Logically dead code in tests/bluetooth/tester/src/mesh.c
* :github:`37958` - [Coverity CID: 238334] Logically dead code in tests/bluetooth/tester/src/mesh.c
* :github:`37957` - [Coverity CID: 238333] Logically dead code in tests/bluetooth/tester/src/mesh.c
* :github:`37956` - [Coverity CID: 238332] Logically dead code in tests/bluetooth/tester/src/mesh.c
* :github:`37955` - [Coverity CID: 238331] Logically dead code in tests/bluetooth/tester/src/mesh.c
* :github:`37954` - [Coverity CID: 238330] Logically dead code in tests/bluetooth/tester/src/mesh.c
* :github:`37953` - [Coverity CID: 238328] Logically dead code in tests/bluetooth/tester/src/mesh.c
* :github:`37952` - [Coverity CID: 238327] Logically dead code in tests/bluetooth/tester/src/mesh.c
* :github:`37951` - [Coverity CID: 238365] Logical vs. bitwise operator in drivers/i2s/i2s_nrfx.c
* :github:`37950` - [Coverity CID: 237067] Division or modulo by zero in tests/benchmarks/latency_measure/src/heap_malloc_free.c
* :github:`37949` - [Coverity CID: 238382] Dereference before null check in subsys/bluetooth/mesh/cfg_cli.c
* :github:`37948` - [Coverity CID: 238338] Dereference before null check in subsys/bluetooth/mesh/cfg_cli.c
* :github:`37947` - [Coverity CID: 237069] Dereference before null check in subsys/bluetooth/host/att.c
* :github:`37946` - [Coverity CID: 237066] Calling risky function in tests/lib/c_lib/src/main.c
* :github:`37945` - [Coverity CID: 237064] Calling risky function in tests/lib/c_lib/src/main.c
* :github:`37944` - [Coverity CID: 237062] Calling risky function in tests/lib/c_lib/src/main.c
* :github:`37940` - Unconsistent UART ASYNC API
* :github:`37927` - tests-ci: net-lib: test/net/lib : build missing drivers__net and application has no console output
* :github:`37916` - [Coverity CID :219656] Uninitialized scalar variable in file /tests/kernel/threads/thread_stack/src/main.c
* :github:`37915` - led_pwm driver not generating correct linker symbol
* :github:`37896` - samples: bluetooth: mesh: build failed for native posix
* :github:`37876` - Execution of twister in makefile environment
* :github:`37865` - nRF Battery measurement issue
* :github:`37861` - tests/lib/ringbuffer failed on ARC boards
* :github:`37856` - tests: arm: uninitialized FPSCR
* :github:`37852` - RISC-V machine timer time-keeping question
* :github:`37850` - Provide macros for switching off Zephyr kernel version
* :github:`37842` - TCP2 statemachine gets stuck in TCP_FIN_WAIT_2 state
* :github:`37839` - SX1272 LoRa driver is broken and fails to build
* :github:`37838` - cmake 3.20 not supported (yet) by recent Ubuntu
* :github:`37830` - intel_adsp_cavs15: run queue testcases failed on ADSP
* :github:`37827` - stm32h747i_disco M4 not working, if use large size(>1KB) global array
* :github:`37821` - pm: ``pm_device_request`` incorrectly returns errors
* :github:`37797` - Merge vendor-prefixes.txt from all modules with build.settings.dts_root in zephyr/module.yml
* :github:`37790` - Bluetooth: host: Confusion about periodic advertising interval
* :github:`37786` - Example for tca9546a multiplexor driver
* :github:`37784` - MPU6050 accel and gyro values swapped
* :github:`37781` - nucleo_l496zg lpuart1 driver not working
* :github:`37779` - adc sam0 interrupt mapping, RESRDY maps to second interrupt in samd5x.dtsi
* :github:`37772` - samples: subsys: usb: mass: Use &flash0 storage_partition for USB mass storage
* :github:`37768` - tests/lib/ringbuffer/libraries.data_structures fails to build on number of platforms due to CONFIG_SYS_CLOCK_TICKS_PER_SEC=100000
* :github:`37765` - cmake: multiple ``No SOURCES given to Zephyr library:`` warnings
* :github:`37746` - qemu_x86_64 fails samples/hello_world/sample.basic.helloworld.uefi in CI
* :github:`37735` - Unsigned types are incorrectly serialized when TLV format is used in LWM2M response
* :github:`37734` - xtensa xcc build spi_nor.c fail
* :github:`37720` - net: dtls: received close_notify alerts are not properly handled by DTLS client sockets
* :github:`37718` - Incompatible (u)intptr_t type and PRIxPTR definitions
* :github:`37709` - x86 PCIe ECAM does not work as expected
* :github:`37701` - stm32:  conflicts with uart serial DMA
* :github:`37696` - Modbus TCP: wrong transaction id in response
* :github:`37694` - Update CMSIS-DSP version to 1.9.0 (CMSIS 5.8.0)
* :github:`37693` - Update CMSIS-Core version to 5.5.0 (CMSIS 5.8.0)
* :github:`37691` - samples/subsys/canbus/isotp/sample.subsys.canbus.isotp fails to build on mimxrt1170_evk_cm7
* :github:`37687` - Support MVE on ARMv8.1-M
* :github:`37684` - Add State Machine Framework to Zephyr
* :github:`37676` - tests/kernel/device/kernel.device.pm (and tests/subsys/pm/power_mgmt/subsys.pm.device_pm) fails to build on mec172xevb_assy6906 & mec1501modular_assy6885
* :github:`37675` - tests/kernel/device/kernel.device.pm fails on bt510/bt6x0
* :github:`37672` - Board qemu_x86 is no longer working with shell
* :github:`37665` - File system: wrong type for ssize_t in fs.h for CONFIG_ARCH_POSIX
* :github:`37660` - Changing zephyr,console requires a clean build
* :github:`37658` - samples: boards/stm32/backup_sram : needs backup sram enabled in DT to properly display memory region
* :github:`37652` - bluetooth: tests/bluetooth/bsim_bt/bsim_test_advx reported success but still reported failed.
* :github:`37637` - Infinite configuring loop for samples\drivers\led_ws2812 sample
* :github:`37619` - RT6xx TRNG reports error on first request after reset
* :github:`37611` - Bluetooth: host: Implement L2CAP ecred reconfiguration request as initiator
* :github:`37610` - subsys/mgmt/hawkbit: Unable to parse json if the payload is split into 2 packets
* :github:`37600` - Invalidate TLB after ptables swap
* :github:`37597` - samples: bluetooth: scan_adv
* :github:`37586` - get_maintainer.py is broken
* :github:`37581` - Bluetooth: controller: radio: Change CTE configuration method
* :github:`37579` - PWM: Issue compiling project when CONFIG_PWM and CONFIG_PWM_SAM is used with SAME70
* :github:`37571` - Bluetooth: Extended advertising assertion
* :github:`37556` - Schedule or timeline of LE audio in zephyr
* :github:`37547` - Bluetooth: Direction Finding: Channel index of received CTE packet is incorrect
* :github:`37544` - Change partition name using .overlay
* :github:`37543` - Using STM32Cube HAL function results in linker error
* :github:`37536` - _pm_devices() skips the very first device in the list and suspend() is not called.
* :github:`37530` - arc smp build failed with mwdt toolchain.
* :github:`37527` - Replace mqtt-azure example with azure-sdk-for-c
* :github:`37526` - ehl_crb:  edac tests are failing
* :github:`37520` - Is zephyr can run syscall or extrenal program
* :github:`37519` - friend.c:unseg_app_sdu_decrypt causes assert: net_buf_simple_tailfroom(buf) >= len when payload + opcode is 10 or 11 bytes long
* :github:`37515` - drivers: flash_sam: Random failures when writing large amount of data to flash
* :github:`37502` - OPENTHREAD_CUSTOM_PARAMETERS does not seem to work
* :github:`37495` - mcuboot: Booting an image flashed on top of a Hawkbit updated ones results in hard fault
* :github:`37491` - wrong documentation format on DMA peripheral API reference
* :github:`37482` - 'cmd.exe' is not recognized as an internal or external command, operable program or batch file.
* :github:`37475` - twister: wrong test statuses in json report
* :github:`37472` - Corrupted timeout on poll for offloaded sockets
* :github:`37467` - Bluetooth: host: Incorrect advertiser timeout handling when using Limited Discoverable flag
* :github:`37465` - samples/bluetooth/iso_receive fails on nrf5340dk target
* :github:`37462` - Bluetooth: Advertising becomes scannable even if BT_LE_ADV_OPT_FORCE_NAME_IN_AD is set
* :github:`37461` - Schedule of LE audio in zephyr
* :github:`37460` - tests/kernel/sched/schedule_api/kernel.scheduler and tests/kernel/fifo/fifo_timeout/kernel.fifo.timeout failed on nsim_hs_smp board
* :github:`37456` - script: Unaccounted size in ram/rom reports
* :github:`37454` - Sensor driver: sht4x, sgp40, invalid include path
* :github:`37446` - Sensor driver: ST LPS22HH undeclared functions and variables
* :github:`37444` - MSI-X: wrong register referenced in map_msix_table()
* :github:`37441` - Native POSIX Flash Storage Does not Support Multiple Instances
* :github:`37436` - Delayed startup due to printing over not ready console
* :github:`37412` - IQ samples are not correct during the "reference period" of CTE signal
* :github:`37409` - Allow dual controller on usb
* :github:`37406` - ISO disconnect complete event doesn't reach the application
* :github:`37400` - esp32 build
* :github:`37396` - DHCP issue with events not triggering on network with microsoft windows DHCP server
* :github:`37395` - stm32h747i_disco board M4 core not working
* :github:`37391` - Bluetooth: 4 Bits of IQ Samples Are Removed (Direction Finding Based on CTE)
* :github:`37386` - bt_vcs_register() enhancement for setting default volume and step
* :github:`37379` - drivers: adc for stm32h7 depends on the version for oversampling
* :github:`37376` - samples/subsys/usb/dfu/sample.usb.dfu fails on teensy41/teensy40
* :github:`37375` - tests/drivers/adc/adc_api/drivers.adc fails to build on nucleo_h753zi
* :github:`37371` - logging.log2_api_deferred_64b_timestamp tests fails running on several qemu platforms
* :github:`37367` - Bluetooth: Host: Support setting long advertising data
* :github:`37365` - STM32 :DTCM: incorrect buffer size utilization
* :github:`37346` - STM32WL LoRa increased the current in "suspend_to_idle" state
* :github:`37338` - west flash to teensy 41 fail, use blinky with west build
* :github:`37332` - Increased power consumption for STM32WB55 with enabled PM and Bluetooth
* :github:`37327` - subsys/mgmt/hawkbit: hawkbit run can interrupt a running instance
* :github:`37319` - West 0.11.0 fails in Zephyr doc build under other manifest repo & renamed Zephyr fork
* :github:`37309` - ARC: add MPU v6 (and others) support
* :github:`37307` - Use XOSHIRO random number generator on NXP i.MX RT platform
* :github:`37306` - revert commit with bogus commit message
* :github:`37305` - Bluetooth Direction Finding Support of "AoA RX 1us"
* :github:`37304` - k_timer_status_sync can lock forever on qemu_x86_64
* :github:`37303` - tests: drivers: i2s: drivers.i2s.speed scenario fails on nrf platforms
* :github:`37294` - RTT logs not found with default west debug invocation on jlink runner
* :github:`37293` - Native POSIX MAC addresses are not random and are duplicate between multiple instances
* :github:`37272` - subsys/mgmt/hawkbit: Falsely determine that an update is installed successfully
* :github:`37270` - stm32l4 System Power Management issue
* :github:`37264` - tests-ci : can: isotp: implemmentation test  report FATAL ERROR when do not connect can loopback test pins
* :github:`37265` - tests-ci : kernel: scheduler: multiq test failed
* :github:`37266` - tests-ci : kernel: memory_protection: userspace test Timeout
* :github:`37267` - tests-ci : kernel: threads: apis test Timeout
* :github:`37263` - lib: timeutil: conversion becomes less accurate as time progresses
* :github:`37260` - STM32WL does not support HSE as RCC source and HSEDiv
* :github:`37258` - symmetric multiprocessing failed in user mode
* :github:`37254` - Run Coverity / Generate GitHub Issues
* :github:`37253` - west flash is failed with openocd  for on macOS
* :github:`37236` - ESP32 will not start when CONFIG_ASSERT=y is enabled
* :github:`37231` - BME280 faulty measurement after power cycle
* :github:`37228` - Bluetooth SMP does not complete pairing
* :github:`37226` - PM: soc: Leftover in conversion of PM hooks to __weak
* :github:`37225` - subsys/mgmt/hawkbit & sample: Bugs/improvements
* :github:`37222` - k_queue data corruption, override user data after reserved heading word
* :github:`37221` - nRF5340: SPIM4 invalid clock frequency selection
* :github:`37213` - ESP32: can't write to SD card over SPI (CRC error)
* :github:`37207` - drivers: serial: convert uart_altera_jtag_hal to use devicetree
* :github:`37206` - counter: stm32: Missing implementation of set_top_value
* :github:`37205` - openocd: Configure thread awareness by default
* :github:`37202` - esp32c3 build error
* :github:`37189` - Bug "Key 'name', 'cmake-ext' and 'kconfig-ext' were not defined" when build a zephyr application
* :github:`37188` - Get an error  of "Illegal load of EXC_RETURN into PC" when print log in IO interrupt callback
* :github:`37182` - cmsis_v1 osSignalWait doesn't clear the signals properly when any signal mask is set
* :github:`37180` - Led driver PCA9633 does nok take chip out from sleep
* :github:`37175` - nucleo-f756zg: rtos aware debugging not working
* :github:`37174` - Zephyr's .git directory is 409 MiB, can it be squashed?
* :github:`37173` - drivers: clock_control: stm32: AHB prescaler usable for almost all stm32 series
* :github:`37170` - LwM2M lwm2m_rd_client_stop() not working when called during bootstrapping/registration
* :github:`37160` - [Moved] Bootloader should provide the version of zephyr, mcuboot and a user defined version to the application
* :github:`37159` - osThreadTerminate does not decrease the instances counter
* :github:`37153` - USB serial number is not unique for STM32 devices
* :github:`37145` - sys: ring_buffer: ring_buf_peek() and ring_buf_size_get()
* :github:`37140` - Twister: Cmake error wrongly counted in the report
* :github:`37135` - Extend the HWINFO API to provide variable length unique ID
* :github:`37134` - Add support for the Raspberry Pi Compute Module 4
* :github:`37132` - Assert on enabling Socket CAN
* :github:`37120` - Documentation on modules
* :github:`37119` - tests: kernel tests hardfault on nucleo_l073rz
* :github:`37115` - tests/bluetooth/shell fails to builds on a lot of platforms
* :github:`37109` - Zephyr POSIX layer uses swapping with an interrupt lock held
* :github:`37105` - mcumgr: BUS FAULT when starting dfu with mcumgr CLI
* :github:`37104` - tests-ci : kernel: scheduler: multiq test failed
* :github:`37075` - PlatformIO: i cannot use the Wifi Shield ESP8266 to build the sample wifi project with the Nucleo F429ZI
* :github:`37070` - NXP mcux ADC16 reading 65535
* :github:`37057` - PWM-blinky for Silabs MCU
* :github:`37038` - stm32f4 - DMA tx interrupt doesn't trigger
* :github:`37032` - document: API reference missing: In clock of zephyr document
* :github:`37029` - drivers: sensor: sensor_value_to_double requieres non const sensor_value pointer
* :github:`37028` - ipv6 multicast addresses vanish after iface down/up sequence
* :github:`37024` - Compile error if we only use VCS without VOCS and AICS
* :github:`37023` - zephyr_prebuilt.elf and zephyr.elf has inconsistent symbol address in RISC-V platform
* :github:`37007` - Problem with out of tree driver
* :github:`37006` - tests: kernel: mem_protect: stack_random: enable qemu_riscv32
* :github:`36998` - TF-M: does not allow PSA Connect to proceed with IRQs locked
* :github:`36990` - Memory misalignment ARM Cortex-M33
* :github:`36971` - ESP32: wifi station sample does not get IP address by DHCP4
* :github:`36967` - Bluetooth: public API to query controller public address
* :github:`36959` - Direction Finding - CTE transmitted in connectionless mode has wrong length
* :github:`36953` - <err> lorawan: MlmeConfirm failed : Tx timeout
* :github:`36948` - Cluttering of logs on USB Console in Zephyr when CDC Shell is enabled
* :github:`36947` - Tensorflow: Dedicated tflite-micro repository
* :github:`36929` - Failure to build OpenThread LwM2M client on nrf52840dk
* :github:`36928` - Disconnecting ISO mid-send giver error in hci_num_completed_packets
* :github:`36927` - LWM2M: Writing to Write-Only resource causes notification
* :github:`36926` - samples/boards/nrf/system_off wouldn't compile on Particle Xenon board
* :github:`36924` - embARC Machine Learning Inference Library from Synopsys
* :github:`36917` - Runtime device PM is broken on STM32
* :github:`36909` - Shell log` commands crash the system if CONFIG_SHELL_LOG_BACKEND is not defined
* :github:`36896` - tests: net: select: still failing occasionally due to FUZZ
* :github:`36891` - Significant TCP perfomance regression
* :github:`36889` - string.h / strcasestr() + strtok()
* :github:`36885` - Update ISO API to better support TWS
* :github:`36882` - MCUMGR: fs upload fail for first time file upload
* :github:`36873` - USB AUDIO Byte alignment issues
* :github:`36869` - Direction Finding Connectionless porting to nrf52811
* :github:`36866` - CONFIG_NO_OPTIMIZATIONS=y MPU fault on Zephyr 2.6
* :github:`36865` - k_work_q seems to check uninitialized flag on start
* :github:`36859` - Possible Advertising PDU Corruption if bt_enable called in SYS_INIT function
* :github:`36858` - Static object constructors execute twice on the NATIVE_POSIX target
* :github:`36857` - i2c_samd0.c burst write not compatible with ssd1306.c
* :github:`36851` - FS logging backend assumes littlefs
* :github:`36823` - Build excludes paths to standard C++ headers when using GNUARMEMB toolchain variant
* :github:`36819` - qemu_leon3 samples/subsys/portability/cmsis_rtos_v2 samples failing
* :github:`36814` - Wrong format type for uint32_t
* :github:`36811` - Clarify ``Z_`` APIs naming conventions and intended scope
* :github:`36802` - MCUboot doesn't work with encrypted images on external flash
* :github:`36796` - Build failure: samples/net/civetweb/http_server using target stm32h735g_disco
* :github:`36794` - Build failure: tests/drivers/adc using stm32l562e_dk
* :github:`36790` - sys: ring_buffer: correct space calculation when tail is less than head
* :github:`36789` - [ESP32] samples blinky / gpio / custom board
* :github:`36783` - drivers: modem: hl7800 gpio init failed with interrupt flags
* :github:`36782` - drivers: serial: nrfx: Enforced pull-ups on RXD and CTS conflict on many custom boards
* :github:`36781` - source_periph incorrectly set in dma_stm32
* :github:`36778` - firmware update using mcumgr displays information for only slot 0 and not slot 1.
* :github:`36770` - doc：Missing description for deadline scheduling
* :github:`36769` - Zephyr assumes Interrupt Line config space register is RW, while ACRN hardwired it to 0.
* :github:`36767` - tests-ci :arch.arm.irq_advanced_features.arm_irq_target_state : test failed
* :github:`36768` - tests-ci :coredump.logging_backend : test failed
* :github:`36765` - [PCI] ACRN sets Interrupt Line config space register to 0 and ReadOnly.
* :github:`36764` - Bluetooth Require paired after disconnected work with iphone
* :github:`36755` - NTP client faults module when it fails
* :github:`36748` - Zephyr IP Stack Leaks when using PROMISCUOUS socket along with POSIX sockets based implementation.
* :github:`36747` - Adding Board Support for STEVAL-STWINKT1B
* :github:`36745` - Zephyr IP Stack Limited to 1514 bytes on the wire - no ICMPs beyond this limit
* :github:`36739` - coap_packet_get_payload() returns the wrong size
* :github:`36737` - Cortex M23: "swap_helper.S:223: Error: invalid offset, value too big (0x0000009C)"
* :github:`36736` - kernel: SMP global lock (and therefore irq_lock) works incorrectly on SMP platforms
* :github:`36718` - st_ble_sensor sample references wrong attribute
* :github:`36716` - zephyr - ADC - ATSAMD21G18A
* :github:`36713` - nrf5 ieee802154 driver does not compile and breaks CI
* :github:`36711` - Enable "template repository" for zephyrproject-rtos/example-application
* :github:`36696` - Json on native_posix_64 board
* :github:`36695` - net: ieee802154: cc13xx_26xx: Sub-GHz RF power saving
* :github:`36692` - Release Notes for 2.6.0 not useful (BLE API changes)
* :github:`36679` - Bluetooth - notifications not sending (bonded, CONFIG_BT_MAX_CONN=4, after disconnection then reconnection)
* :github:`36678` - Zephyr Throws Exception for Shell "log status" command when Telnet is shell backend and log is UART backend
* :github:`36668` - LittleFS example overwrite falsh memory
* :github:`36667` - logger: Filesystem backend doesn't work except for first time boot
* :github:`36665` - l2cap cids mixed up in request
* :github:`36661` - xtensa xcc does not support "-Warray-bounds"
* :github:`36659` - samples/net/sockets small bugs
* :github:`36655` - twister:  sometimes the twister fails because the error ``configparser.NoSectionError: No section: 'manifest'``
* :github:`36652` - deadlock in pthread implementation on SMP platforms
* :github:`36646` - sample.shell.shell_module.minimal_rtt fails to build on mimxrt1170_evk_cm4/mimxrt1170_evk_cm7
* :github:`36644` - Toolchain C++ headers can be included when libstdc++ is not selected
* :github:`36631` - Turn on GPIO from DTS
* :github:`36625` - compilation fails while building samples/net/openthread/coprocessor for Arduino nano 33 ble
* :github:`36613` - LoRaWAN - Provide method to register a callback for received data
* :github:`36609` - could not mount fatfs on efm32pg_stk3402a
* :github:`36608` - Unable to compile USB console example with uart_mux
* :github:`36606` - Regression in udp socket performance from zephyr v2.3.0 to v2.6.0
* :github:`36600` - Bluetooth: Peripheral: Bond issue when using secure connection
* :github:`36598` - Lora driver TX done wait/synchronous call
* :github:`36593` - Failing IPv6 Ready compliance (RFC 2460)
* :github:`36590` - NVS sector size above 65535 not supported
* :github:`36578` - net: ip: Assertion fails when tcp_send_data() with zero length packet
* :github:`36575` - Modbus RTU Client on ESP32
* :github:`36572` - kernel: Negative mutex lock_count value
* :github:`36570` - Use a custom role for Kconfig configuration options
* :github:`36569` - '.. only:' is not working as expected in documentation
* :github:`36568` - net: lib: sockets: Assertion fails when zsock_close()
* :github:`36565` - ehl_crb: Only boot banner is printed but not the test related details for multiple tests due to PR #36191 is not backported to v2.6.0 release
* :github:`36553` - LoRaWAN Sample: join accept but "Join failed"
* :github:`36552` - Bluetooth v2.6.0 connectable advertising leak/loss
* :github:`36540` - LoRaWAN otaa.app_key belongs to mib_req.Param.AppKey
* :github:`36524` - HSE clock doesn't initialize and blinky doesn't run on custom board when moving from zephyr v2.3.0 to v2.6.0
* :github:`36520` - tests/kernel/timer/timer_api/kernel.timer.tickless fails to build on npcx9m6f_evb
* :github:`36500` - espressif: cannot install toolchain on Darwin-arm64
* :github:`36496` - bluetooth: only the first Extended Advertising Report with data status "incomplete, more data to  come" is issued
* :github:`36495` - dtc generates missing #address-cells in interrupt provider warning
* :github:`36486` - LOG2 - self referential macro
* :github:`36467` - runner mdb-hw not work with arc hsdk board
* :github:`36466` - tests/kernel/mem_protect/mem_protect failed with arcmwdt toolchain
* :github:`36465` - samples/compression/lz4 failed with arcmwdt toolchian
* :github:`36462` - [bluetooth stack][limited_discoverable_advertising timeout] Some problems about the lim_adv_timeout
* :github:`36448` - samples: subsys: fs: fat_fs: adafruit_2_8_tft_touch_v2: buildkite compilation failed when no i2c defined
* :github:`36447` - net: socket: socketpair: Poll call resetting all events
* :github:`36435` - RFC: API Change: Mesh: Add return value for opcode callback
* :github:`36427` - test: kernel.common.nano32: zephyr-v2.6.0-286-g46029914a7ac: mimxrt1060_evk: test fails
* :github:`36419` - test-ci: net.ethernet_mgmt: zephyr-v2.6.0-286-g46029914a7ac: frdm_k64f: test fails
* :github:`36418` - test-ci: net.socket.tls: zephyr-v2.6.0-286-g46029914a7ac: frdm_k64f: test fail
* :github:`36417` - tests-ci :coredump.logging_backend : zephyr-v2.6.0-286-g46029914a7ac: lpcxpresso55s28: test failed
* :github:`36416` - tests-ci :arch.arm.irq_advanced_features.arm_irq_target_state : zephyr-v2.6.0-286-g46029914a7ac: lpcxpresso55s28: test failed
* :github:`36414` - ESP32 with samples/net/wifi gives: net_if: There is no network interface to work with!
* :github:`36412` - Blinky on ESP32: Unsupported board: led0 devicetree alias is not defined"
* :github:`36410` - board: cc1352r_sensortag: add dts entry for hdc2080
* :github:`36408` - ARM_MPU on boards ``stm32_min_dev_*`` without MPU enabled
* :github:`36398` - [Video API] Erroneous function pointer validation
* :github:`36390` - net: ip: Negative TCP unacked_len value
* :github:`36388` - ARM: Architecture Level user guide
* :github:`36382` - segfault when hardware isn't emulated
* :github:`36381` - Bluetooth ASSERTION FAIL [evdone] Zephyr v2.6.0
* :github:`36380` - missing auto-dependency on CONFIG_EMUL
* :github:`36357` - tests: samples: watchdog: sample.subsys.task_wdt fails on nrf platforms
* :github:`36356` - Network fails to transmit STM32H747DISC0 board zephyr v2.6.0
* :github:`36351` - nRF: we do not always guarantee that SystemInit is inlined
* :github:`36347` - Zephyr Wifi IoT device - whats a good board to start with?
* :github:`36344` - Zephyr 2.6.0 st_ble_sensor sample is broken when compiled for nucleo_wb55rg
* :github:`36339` - samples/subsys/logging/dictionary doesn't build under MS Windows environment
* :github:`36329` - Support for CC3120 WiFi module
* :github:`36324` - add project groups to upsteam west manifest
* :github:`36323` - Don't set TFM_CMAKE_BUILD_TYPE_DEBUG by default on LPC55S69-NS if DEBUG_OPTIMIZATIONS
* :github:`36319` - Help: Asking for Help Tips page gets 404 error
* :github:`36318` - [Coverity CID: 236600] Unused value in drivers/ieee802154/ieee802154_nrf5.c
* :github:`36317` - [Coverity CID: 236599] Unused value in drivers/ieee802154/ieee802154_nrf5.c
* :github:`36316` - [Coverity CID: 236597] Unused value in drivers/ieee802154/ieee802154_nrf5.c
* :github:`36315` - [Coverity CID: 236604] Untrusted value as argument in subsys/net/lib/lwm2m/lwm2m_engine.c
* :github:`36314` - [Coverity CID: 236610] Uninitialized pointer read in subsys/bluetooth/mesh/proxy.c
* :github:`36313` - [Coverity CID: 236602] Unchecked return value in drivers/modem/gsm_ppp.c
* :github:`36312` - [Coverity CID: 236608] Out-of-bounds access in subsys/bluetooth/audio/mics_client.c
* :github:`36311` - [Coverity CID: 236598] Out-of-bounds access in subsys/bluetooth/audio/mics_client.c
* :github:`36310` - [Coverity CID: 236607] Missing break in switch in drivers/ieee802154/ieee802154_nrf5.c
* :github:`36309` - [Coverity CID: 236606] Missing break in switch in drivers/ieee802154/ieee802154_nrf5.c
* :github:`36308` - [Coverity CID: 236601] Missing break in switch in drivers/ieee802154/ieee802154_nrf5.c
* :github:`36307` - [Coverity CID: 236605] Logically dead code in subsys/bluetooth/audio/mics.c
* :github:`36306` - [Coverity CID: 236596] Logically dead code in subsys/bluetooth/audio/mics.c
* :github:`36305` - [Coverity CID: 236595] Logically dead code in samples/drivers/eeprom/src/main.c
* :github:`36304` - [Coverity CID: 236609] Explicit null dereferenced in subsys/bluetooth/audio/mics_client.c
* :github:`36303` - [Coverity CID: 236603] Dereference after null check in subsys/bluetooth/audio/vcs_client.c
* :github:`36301` - soc: cypress: Port Zephyr to Cypress CYW43907
* :github:`36298` - TF-M integration: add a brief user guide
* :github:`36291` - ADC and math library functions use for stm32l496
* :github:`36289` - eswifi gets a deadlock on b_l4s5i_iot01a target
* :github:`36282` - Overwrite mode for RTT logging
* :github:`36278` - ARM: Cortex-M: SysTick priority is not initialized if the SysTick is not used
* :github:`36276` - NULL pointer access in check_used_port()
* :github:`36270` - TF-M: introduce uniformity in Non-Secure target names
* :github:`36267` - net: ieee802154: software address filtering
* :github:`36263` - up_squared: kernel.memory_protection.mem_map.x86_64 failed.
* :github:`36256` - SPI4 & 3 MISO not working on nRF5340
* :github:`36255` - tests/subsys/logging/log_core failed on hsdk board
* :github:`36254` - Zephyr shell subsystem not work with ARC hardware boards.
* :github:`36250` - tests/subsys/cpp/cxx - doesn't compile on native_posix when CONFIG_EXCEPTIONS=y
* :github:`36247` - samples: usb: testusb: Problems with using with cdc-acm
* :github:`36242` - Zephyr Upstream + sdk-nrf BLE NUS SHELL LOG/CBPRINTF build problem.
* :github:`36238` - net_if.c: possible mutex deadlock
* :github:`36237` - fs_open returns 0 on existing file with FS_O_CREATE | FS_O_WRITE
* :github:`36197` - BOSSA flashing on Arduino Nano 33 BLE (NRF52840)
* :github:`36185` - CMP0116 related warnings
* :github:`36172` - net: ieee802154: LL src/dst address is lost from received net_pkt (when using 6LO)
* :github:`36163` - nvs no longer supports the use of id=0xffff
* :github:`36131` - Occasionally unable to scan for extended advertisements when connected
* :github:`36117` - toolchain: The added abstraction for llvm, breaks builds with off-tree llvm based toolchains
* :github:`36107` - ehl_crb: Multiple tests are failing and board is not booting up.
* :github:`36101` - tfm related build rebuild even if nothing changes
* :github:`36100` - pb_gatt buf_send does not call callback
* :github:`36095` - drivers: pwm: sam: compilation failure for sam_v71b_xult
* :github:`36094` - BLE wrong connections intervals on multible connections
* :github:`36093` - Fix dt_compat_enabled_with_label behavior (or usage)
* :github:`36089` - intel_adsp_cavs25: support more than 2 DSP cores
* :github:`36088` - intel_adsp_cavs25: secondary boot fails in arch_start_cpu()
* :github:`36084` - Arduino Nano 33 BLE: USB gets disconnected after flashing
* :github:`36078` - coredump.logging_backend: lpcxpresso55s28: test failure assertion fail
* :github:`36077` - net: lib: coap: Impossible to get socket info from incoming packet
* :github:`36075` - drivers: can: stm32fd: can2 does not work
* :github:`36074` - LoRaWAN: sx126x: infinite loop on CRC error
* :github:`36061` - Undefined reference to ``z_priq_rb_lessthan(rbnode*, rbnode*)`` when using k_timer_start in cpp file.
* :github:`36057` - Zephyr Shell Console and Logging Targeting Isolated Different Device Interfaces
* :github:`36048` - Cannot establish ISO CIS connection properly after ACL disconnected several times
* :github:`36038` - iotdk: the testcase samples/modules/nanopb can't build
* :github:`36037` - bt_init returning success when Bluetooth initialization does not get finalized.
* :github:`36035` - struct devices should be allocated in ROM, not RAM
* :github:`36033` - Mere warnings slow down incremental documentation build from seconds to minutes
* :github:`36030` - West warnings (and others?) are ignored when building documentation
* :github:`36028` - More Description in Example Documentation
* :github:`36026` - wolfssl / wolfcrypt
* :github:`36022` - Wrong channel index in connectionless IQ samples report
* :github:`36014` - stm32g050: Missing closing parenthesis for soc prototype
* :github:`36013` - arm: qemu: run cmsis-dsp tests on the qemu target with FPU
* :github:`35999` - Unexpected Bluetooth disconnection and removal of bond
* :github:`35992` - stm32f303k8 device tree missing DACs
* :github:`35986` - POSIX: multiple definition of posix_types
* :github:`35983` - [backport v1.14-branch] backport of #35935 failed
* :github:`35978` - ESP32 SPI send data hangup
* :github:`35972` - C++ exceptions do not work when building with GNU Arm Embedded
* :github:`35971` - ehl_crb: test_nop  is failing under tests/kernel/common/
* :github:`35970` - up_squared: samples/boards/up_squared/gpio_counter/ is failing
* :github:`35964` - shell_uart hangs when putting UART into PM_LOW_POWER_STATE / PM_DEVICE_STATE_LOW_POWER
* :github:`35962` - drivers using deprecated Kconfigs
* :github:`35955` - Bluetooth: Controller: Regression in connection setup
* :github:`35949` - can: mcan: sjw-data devicetree configuration is not written correctly
* :github:`35945` - SPI4 on nRF5340 not working when using k_sleep() in main
* :github:`35941` - subsys: tracing: sysview: No SEGGER_SYSVIEW.h in path
* :github:`35939` - enc424j600 driver unusable/broken on stm32l552
* :github:`35931` - Bluetooth: controller: Assertion in ull_master.c
* :github:`35930` - nRF Dongle as BLE Central Unstable Connectivity at Long-ish Range
* :github:`35926` - Shell tab-completion with more than two levels of nested dynamic commands fails
* :github:`35916` - drivers: TI cc13xx_cc26xx: build error when PM is enabled (serial, entropy, spi, i2c modules)
* :github:`35908` - Stopping DHCP with network interface goes down leaves networking state in a broken state
* :github:`35897` - Bluetooth: PTS Tester on native posix
* :github:`35890` - Build system ignores explicit ZephyrBuildConfiguration_ROOT variable
* :github:`35880` - PSA tests run indefinitely when CONFIG_TFM_IPC=y
* :github:`35870` - Build failure with gcc 11.x on native_posix
* :github:`35857` - intel_adsp_cavs15: run msgq testcases failed on ADSP
* :github:`35856` - intel_adsp_cavs15: run semaphore testcases failed on ADSP
* :github:`35850` - the sample kernel/metairq_dispatch fails on nucleo_g474re
* :github:`35835` - ADC support for STM32l496_disco board
* :github:`35809` - sample: USB audio samples are not working on STM32
* :github:`35793` - kernel.scheduler.multiq: Failed since #35276 ("cooperative scheduling only" special cases removal)
* :github:`35789` - sockets_tls: receiving data on offloaded socket before handshake causes pollin | pollerr and failed recvfrom (SARA-R4)
* :github:`35721` - Atmel sam0 Async and/or DMA may not work
* :github:`35720` - tests:kernel timer fails on test_sleep_abs with TICKLESS_KERNEL and PM on nucleo_wb55rg
* :github:`35718` - Excessive error messages from filesystem interface
* :github:`35711` - net: sockets: dtls: handshake not reset as it ought to be
* :github:`35707` - AssertionError: zephyr/tests/kernel/common test case is failing with gcc-11 (Yocto)
* :github:`35703` - posix_apis: fails at test_posix_realtime for mimxrt1024_evk
* :github:`35681` - Unable to get output for samples/subsys/logging/logger and samples/philosophers
* :github:`35668` - The channel selection of auxiliary advertisments in extended advertisments
* :github:`35663` - STM32H7: Support memory protection unit(MPU) to enable shared memory
* :github:`35658` - arch.interrupt.arm.irq_vector_table.arm_irq_vector_table: MPU FAULT Halting system for mximxrt685_evk_cm33
* :github:`35656` - arch.interrupt.arm.arm_interrupt: hangs on mimxrt685_evk_cm33
* :github:`35581` - stm32 SPI problems with DMA and INTR set-up
* :github:`35550` - nRF91: DPS310 I2C driver not working
* :github:`35532` - SSL Handshake error with modified http(s) client example
* :github:`35529` - STM32: STM32H7 ADC calibration must be performed on startup
* :github:`35429` - subsys: settings: Encryption
* :github:`35377` - add creg_gpio driver for ARC HSDK board
* :github:`35354` - Adding support for measurement of Ultraviolet(UV) Light.
* :github:`35293` - Sporadic boot failure
* :github:`35256` - DOC:  DATA PASSING TABLE MISSING THE OBJECT QUEUES
* :github:`35250` - Twister is not reading the serial line output completely
* :github:`35244` - twister: build failure for native_posix with GNU binutils 2.35
* :github:`35238` - ieee802.15.4 support for stm32wb55
* :github:`35229` - twister log mixing between tests
* :github:`35190` - echo_server sample non-functional rails all CPUs on native_posix_64 board build
* :github:`35055` - STM32L432KC Nucleo Reference board SWD problem after programming with Zephyr
* :github:`34917` - arch.interrupt.arm| arch.interrupt.extra_exception_info: lpcxpresso55s28 series: test failure
* :github:`34913` - ModuleNotFoundError: No module named 'elftools'
* :github:`34879` - mec15xxevb_assy6853: 2 GPIO test failures
* :github:`34855` - FANSTEL BT840X
* :github:`34832` - Coding Guideline - MISRA rule 14.4 not applied properly
* :github:`34829` - Bluetooth: ISO: Don't attempt to remove the ISO data path of a disconnected ISO channel
* :github:`34767` - C++ support on ESP boards
* :github:`34760` - Hawkbit not downloading large files
* :github:`34659` - Bluetooth: HCI cmd response timeout
* :github:`34571` - Twister mark successfully passed tests as failed
* :github:`34557` - upgrade fatfs to 0.14b
* :github:`34554` - Settings FS: Duplicate finding is extremely slow when dealing with larger number of settings entries
* :github:`34544` - lib: gui: lvgl: buffer overflow bug on misconfiguration
* :github:`34543` - STM32F1 failed to compile with CONFIG_UART_ASYNC_API
* :github:`34392` - [backport v2.5-branch] backport of #34237 failed
* :github:`34391` - [backport v1.14-branch] backport of #34237 failed
* :github:`34390` - i2s: bitrate is wrongly configured on STM32
* :github:`34372` - CPU Lockups when using own Log Backend
* :github:`34354` - Please investigate adding DMA support to STM32 I2C!
* :github:`34324` - RTT is not working on STM32
* :github:`34315` - BMI270 configuration file sending to I2C seems to be not handling the last part of the configuration properly.
* :github:`34305` - Shell [modem send] command causes shell to hang after about 10 seconds, Sara R4 - Particle Boron
* :github:`34282` - HAL Module Request: hal_telink
* :github:`34273` - mqtt_publisher: Unable to connect properly on EC21 modem with bg9x driver
* :github:`34269` - LOG_MODE_MINIMAL BUILD error
* :github:`34268` - Bluetooth: Mesh: Sample is stuck in init process on disco_l475_iot
* :github:`34259` - Problem running code with memory domain
* :github:`34239` - Call settings_save_one in the system work queue, which will cause real-time performance degradation.
* :github:`34236` - External source code integration request: Raspberry Pi Pico SDK
* :github:`34231` - uzlib (decompression library)
* :github:`34226` - Compile error when building civetweb http_server sample for posix_native
* :github:`34222` - Commit related to null pointer exception detection causing UART issues
* :github:`34218` - Civetweb server crashing when trying to access invalid resource
* :github:`34204` - nvs_write: Bad documented return value.
* :github:`34192` - Sensor BME680: Add support for SPI operation
* :github:`34134` - USB do not works if bootloader badly use the device before
* :github:`34131` - TFTP client ignores incoming data packets
* :github:`34121` - Unable to generate pdf according to the documentation steps on windows
* :github:`34105` - Convert tests/kernel/workq to new kwork API
* :github:`34049` - Nordic nrf9160 switching between drivers and peripherals
* :github:`34015` - cfb sample "Device not found" for esp32 when SSD1306 is enabled
* :github:`33994` - kscan_ft5336 doesn't provide proper up/down information when polling, and hogs resources in interrupt mode
* :github:`33960` - Zephyr for Briey SoC
* :github:`33937` - [backport v1.14-branch] backport of #26712 failed
* :github:`33932` - [backport v1.14-branch] backport of #26083 failed
* :github:`33910` - sam_v71_xult -> I2C_1 hang during scanning i2c devices
* :github:`33901` - tests: interrupt: irq_enable() and irq_disable() do not work with direct and regular interrupt on x86
* :github:`33895` - Device tree: STM32L412 and STM32L422 are missing nodes
* :github:`33883` - [backport v2.5-branch] backport of #33340 failed
* :github:`33876` - Lora sender sample build error for esp32
* :github:`33873` - arm_arch_timer: Too many clock announcements with CONFIG_TICKLESS_KERNEL=n on SMP
* :github:`33862` - [backport v2.5-branch] backport of #33771 failed
* :github:`33753` - LVGL output doesn't match the LVGL TFT simulator for gauge widget
* :github:`33652` - Monitoring the BLE connection
* :github:`33573` - JSON_OBJ_DESCR_ARRAY_ARRAY is dangerously broken
* :github:`33554` - Request to add OM13056 board (LPC1500 family or specifically SoC LPC1519) support to Zephyr
* :github:`33544` - ehl_crb: portability.posix.common.posix_realtime failed.
* :github:`33485` - Issue with DMA transfers outside of the Zephyr DMA driver on STM32F767
* :github:`33483` - TIMESLICE and PM interaction and expected behavior
* :github:`33449` - Remove deprecated items in 2.7
* :github:`33440` - lsm6dso sensor driver not working on nRF5340
* :github:`33435` - armclang / armlinker
* :github:`33337` - twister: Find and fix all "dead" samples/tests
* :github:`33275` - ehl_crb: samples/subsys/shell/shell_module does not work
* :github:`33265` - Power Management Overhaul
* :github:`33192` - LoRaWAN - Application fails to start if module is not powered
* :github:`33113` - Improve code coverage for new feature or code change in kernel
* :github:`33104` - Updating Zephyr to fix Work Queue Problems
* :github:`33099` - ppp: termination packet not sent
* :github:`33052` - [Coverity CID :219624] Untrusted loop bound in subsys/bluetooth/host/sdp.c
* :github:`33041` - [Coverity CID :219645] Untrusted loop bound in subsys/bluetooth/host/sdp.c
* :github:`33016` - spi_nor: CONFIG_SPI_NOR_SFDP_RUNTIME leaves flash in Standby after spi_nor_configure()
* :github:`33015` - spi_nor driver: SPI_NOR_IDLE_IN_DPD breaks SPI_NOR_SFDP_RUNTIME
* :github:`32997` - Improve documentation search experience
* :github:`32990` - FS/littlefs: it is possible to write to already deleted file
* :github:`32984` - West: openocd runner: Don't let debug mode on by default
* :github:`32875` - Benchmarking Zephyr vs. RIOT-OS
* :github:`32836` - Remaining integration failures on intel_adsp_cavs15
* :github:`32822` - Code doesn't compile after changing the PWM pin on example "blinky_pwm" on NRF52
* :github:`32803` - Extend mcux uart drivers to support async API
* :github:`32789` - USB DFU support w/o MPU support
* :github:`32733` - RS-485 support
* :github:`32669` - [Bluetooth] sample code for Periodic Advertising Sync Transfer
* :github:`32603` - acrn_ehl_crb: test case of arch.interrupt.prevent_interruption failed
* :github:`32564` - net_buf reference count not protected
* :github:`32545` - It seems that CONFIG_IMG_MGMT_VERBOSE_ERR does not work
* :github:`32531` - get_maintainer.py cannot parse MAINTAINERS.yml
* :github:`32293` - Zephyr 2.6 Release Checklist
* :github:`32289` - USDHC: Fails after reset
* :github:`32282` - x86 ACPI images are much too large
* :github:`32261` - problem with CONFIG_STACK_SENTINEL
* :github:`32133` - Current atomics are subtly broken on AArch64 due to memory ordering
* :github:`32111` - Zephyr build fail with LLVM on Windows
* :github:`32035` - Bluetooth: application notification when MTU updated
* :github:`31993` - Add west extension to parse yml file
* :github:`31985` - riscv: Long execution time when TICKLESS_KERNEL=y
* :github:`31943` - drivers: flash: stm32: harmonization of flash erase implementation across STM32 series
* :github:`31739` - Convert CoAP unit tests to use ztest API
* :github:`31593` - civetweb hangs when there are no free filedescriptors
* :github:`31499` - lwm2m : Add visibility into observer notification success/fail
* :github:`31475` - TCP keepalive
* :github:`31473` - Failed phy request not retried and may prevent DLE procedure during auto-initiation
* :github:`31447` - MQTT idling gets disconnected when using TCP2
* :github:`31290` - dts: arm: st: standardize pwm default property st,prescaler to 0
* :github:`31253` - lis3dh driver support is confusing
* :github:`31162` - Mapping between existing and new system power management states
* :github:`31107` - libc: minimal: add qsort routine
* :github:`31043` - Infinite loop in modem cmd_handler_process
* :github:`30921` - west flash failed with an open ocd error
* :github:`30861` - drivers: uart: increase timeout precision in uart_rx_enable
* :github:`30635` - cpu_stats: Change from printk to ``LOG_*``
* :github:`30429` - Thread Border Router with NRC/RCP sample and nrf52840dk not starting
* :github:`30367` - TCP2 does not send our MSS to peer
* :github:`30245` - Bluetooth: controller: event scheduling pipeline preemption by short schedule
* :github:`30244` - Bluetooth: controller: Extended scan window time reservation prevents auxiliary channel reception
* :github:`30243` - Bluetooth: controller: IRK resolution in extended scanning breaks auxiliary PDU reception
* :github:`30236` - Main thread sometimes looping forever before user application is reached when using UDP and IPv6 on Nucleo F767ZI
* :github:`30209` - TCP2 : How to add MSS option on sending [SYN, ACK] to client?
* :github:`30066` - CI test build with RAM overflow
* :github:`30026` - Can not make multiple BLE IPSP connection to the same host
* :github:`29545` - samples: tfm_integration: tfm_ipc: No module named 'cryptography.hazmat.primitives.asymmetric.ed25519'
* :github:`29535` - riscv: stack objects are mis-aligned
* :github:`29520` - make k_current_get() work without a system call
* :github:`29397` - Build all tests of module mcuboot
* :github:`28872` - Support ESP32 as Bluetooth controller
* :github:`28819` - memory order and consistency promises for Zephyr atomic API?
* :github:`28729` - ARM: Core Stack Improvements/Bug fixes for 2.6 release
* :github:`28716` - 2.5 Release Checklist
* :github:`28312` - Add option to enable ART Accelerator on STM32 FLASH controller
* :github:`27992` - stm32f7: usb: Bursting HID Get and Set report requests leads to unresponding Control endpoint.
* :github:`27525` - Including STM32Cube's USB PD support to Zephyr
* :github:`27415` - Decide if we keep a single thread support (CONFIG_MULTITHREADING=n) in Zephyr
* :github:`27176` - [v1.14] Restore socket descriptor permission management
* :github:`27015` - Add custom transport support for MQTT
* :github:`26981` - Problem with PPP + GSM MUX with SIMCOM7600E
* :github:`26585` - IPv4 multicast datagrams can't be received for mimxrt1064_evk board (missing ethernet API)
* :github:`26256` - NRF51822 BLE Micro module: hangs on k_msleep() (RTC counter not working)
* :github:`26136` - CMake Error in Windows Environment
* :github:`26051` - shell: uart: Allow a change in the shell initalisation to let routing it through USB UART
* :github:`25832` - [test][kernel][lpcxpresso55s69_ns] kernel cases meet ESF could not be retrieved successfully
* :github:`25182` - Raspberry Pi 4B Support
* :github:`25015` - Bluetooth Isochronous Channels Support
* :github:`24854` - docs: Using third-party libraries not well documented in Memory partitions docs
* :github:`24733` - Misconfigured environment
* :github:`24200` - USB GET_INTERFACE response always 0, even when an alternate setting is used
* :github:`24051` - double to sensor_val
* :github:`23745` - Align PS/2 handlers with the handlers found in other drivers
* :github:`23723` - Poor sinf/cosf performance compared to the Segger math libraries
* :github:`23349` - Question: How to add external soc, board, DTS, drivers and libs?
* :github:`22731` - Improve docker CI documentation
* :github:`22705` - Implement counter driver for lpcxpresso55s69
* :github:`22702` - Implement I2S driver for lpcxpresso55s69
* :github:`22455` - How to assign USB endpoint address manually in stm32f4_disco for CDC ACM class driver
* :github:`22210` - Bluetooth -  bt_gatt_get_value_attr_by_uuid
* :github:`22131` - ARM Cortex_R: CONFIG_USERSPACE: external interrupts are disabled during system calls
* :github:`21869` - IPv6 neighbors get added too eagerly
* :github:`21648` - improve documentation on meta-IRQ threads
* :github:`21519` - RFC: libc: thread-safe newlib
* :github:`21339` - Expired IPv6 router causes an infinite loop
* :github:`21293` - adding timeout the I2C read/write functions for the stm32 port
* :github:`21205` - get_device_list only available if power management invoked
* :github:`21167` - libraries.libc.newlib test fails
* :github:`20576` - DTS overlay files must include full path name
* :github:`20409` - USB: Create webusb shell
* :github:`20236` - usb: api: Cleanup of current inclusion path for USB
* :github:`20171` - support external spi nor flash on mimxrt1060-evk
* :github:`19882` - Add support for multiple channel sampling to STM32 ADC driver
* :github:`19328` - Logger could block in thread at certain log message pool usage
* :github:`18960` - [Coverity CID :203908]Error handling issues in /lib/libc/newlib/libc-hooks.c
* :github:`18896` - Concurrent Multi-Protocol Support NRF52840
* :github:`18850` - Bluetooth: controller: Advertiser following directed advertiser will have corrupt data
* :github:`18386` - [Coverity CID :203443]Memory - corruptions in /subsys/bluetooth/host/rfcomm.c
* :github:`18351` - logging: 32 bit float values don't work.
* :github:`18316` - Support for unregistering bt_conn callbacks
* :github:`18042` - Only corporate members can join the slack channel
* :github:`17748` - stm32: clock-control: Remove usage of SystemCoreClock
* :github:`17692` - Proper way for joining a multicast group (NRF52840/OpenThread)
* :github:`17375` - Add VREF, TEMPSENSOR, VBAT internal channels to the stm32 adc driver
* :github:`17021` - revise concurrency control in kernel/userspace.c
* :github:`16761` - nrf52840 usb driver with openthread
* :github:`16671` - ideas for future of the settings
* :github:`16231` - Add CONFIG_UART_DYNAMIC_SETTINGS option
* :github:`15841` - Support AT86RF233
* :github:`15793` - Unable to load binaries into iotdk
* :github:`15676` - Support instrumentation for time spent in various power states
* :github:`15555` - Counter Docs Missing Callback Context Note
* :github:`14308` - Better integration between system and device power modes.
* :github:`12405` - add test to catch issues fixed in PR  #12384
* :github:`11773` - Add Bluetooth support for Silicon Labs EFR32MG12
* :github:`11702` - Add support for nrfx i2s driver
* :github:`11519` - Add at least build test for cc1200
* :github:`11193` - ARM V8M Trusted Execution Environments and Zephyr
* :github:`11028` - CONFIG_LOAPIC_SPURIOUS_VECTOR not being tested
* :github:`11000` - USB 2.0 high-speed support in Zephyr
* :github:`10930` - Extending string formatting function
* :github:`10676` - Feature Required: DFU over Thread network
* :github:`10378` - watchdog: Limitation with the current watchdog API for Nordic devices
* :github:`10324` - Publish PDF with the release doc build
* :github:`10198` - Add support for FRDM-STBC-AGM01 sensor shield
* :github:`8876` - Adapt net/l2/ieee802154 subsystem to new shell subsystem
* :github:`8275` - when zephyr can support popular IDE develop?
* :github:`7001` - ST Sensors: Driver factorization
* :github:`6777` - Add copyright handling to contributing doc
* :github:`6657` - Question: Is Bluetooth avrcp supported in Zephyr? Or any plan?
* :github:`6493` - need APIs for ranged random number generation
* :github:`6450` - Several devices of same type on same bus - how to address?
* :github:`6117` - Make sanitycheck aware of DTS and HW support
* :github:`4911` - Filesystem support for qemu
* :github:`1392` - No module named 'elftools'
* :github:`3886` - Add mutual authentication to net/crypto examples
* :github:`3885` - Add real entropy to crypto-based net samples
* :github:`3884` - Improve the TLS and DTLS examples to use best practices on security
* :github:`3879` - k_thread_abort vs k_thread->fn_abort()
* :github:`3677` - Implement HCI Zephyr extensions
* :github:`3199` - xtensa: simplify linker scripts
* :github:`2811` - Investigate having timeout code track tick deadlines instead of deltas
* :github:`2619` - Define APIs for hashing/ Message Authentication
* :github:`2248` - Split LE Controller: style fixes
