Re: Zephyr development news, 20 August 2018

Marti Bolivar <marti@...>

Sure thing! Sorry for the long delay since the last one. Summertime...

On Mon, Aug 20, 2018 at 1:37 PM Thea Aldrich <aldrich.thea@...> wrote:

Thank you Marti!

On Mon, Aug 20, 2018 at 1:33 PM, Marti Bolivar <marti@...> wrote:


This is the 20 August 2018 newsletter tracking the latest Zephyr
development merged into the mainline tree on GitHub.

An HTML version is available here:

As usual, contents are broken down as follows:

- Highlights
- Important changes
- New features
- Bug fixes
- Individual changes: a complete list of patches, sorted chronologically
and categorized into areas, like:
- Architectures
- Kernel
- Drivers
- etc.


Breakage ahoy: The time since the last newsletter has seen a variety of
incompatible or breaking changes merged into mainline. As
usual, we've summarized these in the Important Changes
section below, along with descriptions of what developers of
affected applications should do to handle them. (A couple of
new features were included there as well.)

This newsletter covers commits in the following inclusive range:

- bb8cb5ac ("tests: pipe: Add description and RTM links"),
merged 26 July 2018
- 36ef1921 ("samples: led_lp5562: cmake_minimum_required added"),
merged 16 August 2018

Important Changes

Various net app settings renamed:

Various Kconfig variables that were formerly in the CONFIG_NET_APP_
namespace were moved into CONFIG_NET_CONFIG_. For example,

The affected variables are (without the CONFIG_NET_APP_ prefix, for


Out of tree applications will need to perform the appropriate renames. The
default settings of the Kconfig library will cause fatal errors on attempts
to assign to the old names in .conf fragments, which should help find any

This completes the work of splitting network configuration from the net-app
library, which is in the process of being replaced and deprecated, into a
new net-config library.

Network interfaces now require flags:

Layer 2 objects must now declare supported features via a new flags
field. Initial flags declare support for multicast and promiscuous mode,
and whether or not to join a solicited node multicast group. Existing
in-tree users have been updated; out of tree implementations will need to
take care of build errors in the changed NET_L2_INIT.

Kconfig now prefers first default:

The Kconfig library used by Zephyr no longer carries a local patch to make
it prefer later default settings in Kconfig option definitions. The
application boilerplate.cmake file thankfully emits a loud warning about
this, which can be silenced by creating a file named "hide-defaults-note"
in the Zephyr build directory.

This change is likely to bite any out of tree applications which define
their own default settings for Zephyr's Kconfig options and expect them to
override Zephyr's.

Affected applications should change from this pattern in their
application's KCONFIG_ROOT:

# OLD STYLE, for older Zephyr versions:

source "$ZEPHYR_BASE/Kconfig.zephyr"

default your_value

to this:

# NEW STYLE, use this from now on:

default your_value

source "$ZEPHYR_BASE/Kconfig.zephyr"

Kconfig: gsource is gone, use source, osource, or orsource:

The Zephyr dialect of the Kconfig language previously featured a gsource
extension, which, like source, worked to include a Kconfig file within
another one, but also supported shell-like glob patterns. However, gsource
did not check if any files matched the pattern. This has been replaced with
a scheme in which source is globbing, and requires at least one file to
match. A new osource (optional source) works the way gsource used to, and
orsource is an optional source included by relative path (rsource, to
include nother source by relative path, already existed).

NVS rewritten:

The NVS storage layer has been completely rewritten, and has what appears
to be a backwards-incompatible format on the storage medium. Any
applications using this layer will likely need to have their storage
partitions set up anew.

In the new version, the storage medium can become "locked" in case of fatal
errors. When this occurs, writes are prevented, but the user can read
existing data which has been stored without error before re-initializing
the flash device.

In the previous version, metadata and user data were placed together on the
storage medium. This has been replaced with a new layout, which separates
data from metadata. The data layout has also been changed in ways which
reduces overhead on some flash devices, and allows for the latest items to
be searched first on reads, improving performance in some workloads.

Bluetooth ID changes:

Bluetooth LE peripherals built with Zephyr can now support multiple
identity addresses.

This new feature seems to have brought incompatible API changes, as various
functions now take u8_t id parameters which index into the array of IDs
returned by bt_id_get(). If broken by this change and in doubt about what
to do, BT_ID_DEFAULT (0) is provided as a recommended value.

The number of supported identities can be controlled with
CONFIG_BT_ID_MAX, and several routines (with documentation!) were
added to manage them:

- int bt_id_create(bt_addr_le_t *addr, u8_t *irk)
- int bt_id_get(bt_addr_le_t *addrs, size_t *count)
- int bt_id_reset(u8_t id, bt_addr_le_t *addr, u8_t *irk)
- int bt_id_delete(u8_t id)

There are new Bluetooth shell commands related to these as well:
id-create, id-delete, id-reset, id-show, and id-select.

The Bluetooth Settings API takes multiple identities into account.

Bluetooth dynamic device name changes:

Dynamic setting of the Bluetooth device name is now disabled unless

Build system use of target_link_libraries changed:

The build system's internals now use the CMake target_link_libraries()
signature which includes PRIVATE/PUBLIC/INTERFACE keywords.

This is incompatible with the "plain" signature, which does not use
these keywords.

This change was made for good reasons, but has the rather unpleasant side
effect of breaking the build in cases where the application CMakeLists.txt
used the "plain" signature, as Zephyr's build system internals tend to get
included into the top level file. Affected application developers are
advised that adding PUBLIC after the target name restores the same
behavior as the "plain" signature.

Arm toolchain renamed:

The Zephyr environment and CMake variables used to select the GNU toolchain
provided by Arm have changed; the old usage is now deprecated. Users of
this toolchain should make the following changes:

- Change the value of ZEPHYR_TOOLCHAIN_VARIANT from gccarmemb to

This follows the replacement of the GCC ARM Embedded toolchain page with
the GNU Arm Embedded version:

PyOCD on Python 3, now with Zephyr thread awareness:

Thankfully, this is not a breaking change, but it is welcome news.

The PyOCD project, used for flashing and debugging several Zephyr boards,
now supports Python 3. It's now possible to remove any Python 2 PyOCD
install and re-install it with pip3 install --user pyOCD (perhaps after
updating applications and toolchain configurations to handle the changes
discussed above.)

To add a carrot of incentive to upgrade, PyOCD has also now learned
Zephyr thread awareness. To play along at home:

1. Add CONFIG_OPENOCD_SUPPORT=y to samples/synchronization/prj.conf
2. Build the sample for any board which uses PyOCD (like frdm_k64f)
3. ninja debug
4. Type continue at the (gdb) prompt
5. Hit control-C to halt execution
6. Run info threads at the (gdb) prompt.

Example output:

(gdb) info threads
Id Target Id Frame
* 2 Thread 536874280 (Unnamed; Running; Priority 15) k_cpu_idle ()
at /home/mbolivar/src/zephyr/arch/arm/core/cpu_idle.S:135
3 Thread 536870912 (Unnamed; Ready; Priority 7) __swap
(key=key@entry=0) at /home/mbolivar/src/zephyr/arch/arm/core/swap.c:69
4 Thread 536874544 (Unnamed; Pending; Priority 7) __swap (key=0)
at /home/mbolivar/src/zephyr/arch/arm/core/swap.c:69
5 Thread 536875032 (Unnamed; Pending; Priority 255) __swap
(key=key@entry=0) at /home/mbolivar/src/zephyr/arch/arm/core/swap.c:69

Socket-based DTLS support:

The new sockets layer now has experimental support for the DTLS
protocol. It can be enabled with CONFIG_NET_SOCKETS_ENABLE_DTLS. Support
for creation of DTLS sockets, DTLS handshaking, send()/sendto(), and
recv()/recvfrom() is included. Demonstration code illustrating usage
was added to the echo_client and echo_server pair of samples.

This continues the work of remaking Zephyr's secure networking code as
a socket-based implementation, with TLS managed via a set of
nonstandard setsockopt() calls.

Syscall support for sockets:

The following socket-related APIs are now accessible from Zephyr user
space, if that is enabled: socket(), close(), bind(),
connect(), listen(), accept(), send()/sendto(),
recv()/recvfrom(), fcntl(), poll(), inet_pton(), and

CMSIS RTOS v1 support:

Zephyr now supports version 1 of the CMSIS RTOS API. This is a common API
defined by Arm for Cortex microcontrollers, which provides abstractions for
common RTOS interfaces, such as multi-threading, mutual exclusion, CPU
time, memory pools, etc. At time of writing, official documentation on
usage within Zephyr mostly refers users to the KEIL CMSIS-RTOS
v1 reference page:

Support for this API can be included within a Zephyr application by
enabling CONFIG_CMSIS_RTOS_V1. The main header is <cmsis_os.h>, which is
a shim between the abstractions presented by the CMSIS RTOS API and
Zephyr's own kernel APIs. There is also a new lib/cmsis_rtos_v1
directory, which contains the implementation. A variety of test cases were
added to tests/cmsis_rtos_v1.



The effort to support Arm v8-M's secure and non-secure worlds
continues with the building blocks necessary to transfer control flow
between the "secure" and "insecure" worlds. Zephyr has gained support
for building secure world images which export entry points as a
library that non-secure images can be linked against to call into, as
well as invocation of function pointers to non-trusted code from the
secure world. Support for this feature can be enabled with
related changes allow for controlling secure and non-secure world
exceptions, system reset behavior, and stack management.

The native POSIX pseudo-architecture now supports a mechanism for
executing code at various points in its initialization, power
management sequence, and shutdown. It can also dynamically manage
command line options with native_add_command_line_opts() and
native_cleanup_cmd_line(). See the NATIVE_TASK() macro defined in
its soc.h header for details. There appears to be some overlap here
with Zephyr's existing <init.h> APIs, but those do not allow for
task execution at sleep or exit times.

The x86, Arm, and ARC architectures grew the architecture-specific
code needed to implement safe copying to and from userspace discussed
in the kernel features below.


Various other features were merged in addition to the somewhat
breaking identity management changes discussed above.

Many (but definitely not all) of the changes merged during this period
improve Zephyr's feature set related to secure pairing.

New APIs include:

- An int bt_passkey_set(unsigned int passkey) routine, which can set
a passkey to be used during pairing, and can be enabled with

- The bt_conn_auth_cb struct, which contains application callbacks for
events of interest during authenticated pairing, now has documentation
for all of its fields. It also gained new callbacks for learning the
results of the pairing process, with signatures:

{{< highlight c >}}
void (*pairing_complete)(struct bt_conn *conn, bool bonded);
void (*pairing_failed)(struct bt_conn *conn);{{< /highlight >}}

The Bluetooth shell sports some new commands, mainly to exercise the
above new features:

- hci-cmd: this Swiss Army knife can be used to inject arbitrary HCI
commands into the system
- fixed-passkey: sets a fixed passkey to be used during pairing
using bt_passkey_set()
- the auth command now takes confirm as an authentication method,
which can be used to test passkey support

When Zephyr's Bluetooth stack is being built in a "combined" configuration
(i.e. host and controller on the same chip), the default for
CONFIG_BT_TINYCRYPT_ECC is now y. This implements elliptic curve
cryptography related HCI commands required to support LE Secure Connections
in software, using the TinyCrypt library. (This of course implies a
footprint penalty.)

Finally, access address generation now supports Coded PHY requirements.


New board-specific peripheral and shield enablement includes:

- frdm_k64f now supports uart2, and has device tree settings for
the Wistron WNC-M14A2A LTE-M modem, which can be connected as a shield
- frdm_kl25z now supports the the MMA8451Q accelerometer attached to i2c0
- nrf52840_pca10056 also now supports the WNC-M14A2A
- nucleo_f207zg now supports USB and Ethernet
- up_squared now has I2C support (the Zephyr board configuration also
now works on all the marketed variants of the board hardware)


The Kconfig dialect also now features def_int, def_hex, and
def_string keywords, which specify the type of a config option and
set its default value in a single line.

The Zephyr SDK has been packaged for Arch Linux, and is available as
zephyr-sdk in the AUR:

Device Tree:

The RISC-V boards were all converted to use device tree.

Cortex M4 cores on i.MX devices which have a Cortex A core on the same
die now have device tree bindings and support for the Resource Domain
Controller (RDC), which allows safe sharing of other peripherals
between the cores. A variety of i.MX peripheral bindings now contain a
required rdc property, through which the relevant permissions can be


Zephyr's documentation was re-themed to use the popular Read the Docs
Sphinx theme. Zephyr's documentation continues to be hosted at; just the theme was changed.


About 30% of the total driver commits in this period affected a single
driver, for the Atmel SAM GMAC Ethernet peripheral. This now supports
the gPTP protocol which Zephyr learned about during the v1.13 cycle,
multiple transmit and receive queues, and 802.1Qav support. Whew.

Zephyr received initial support for modem drivers, which can be enabled by
setting CONFIG_MODEM=y. Modem-specific shell commands can be enabled with
CONFIG_MODEM_SHELL. There is a new "modem receiver" API and driver which
can be enabled using CONFIG_MODEM_RECEIVER; its purpose is to allow modem
drivers to communicate via a UART using custom protocols. The initial
device is the Wistron WNC-M14A2A (LTE / LTE-M) modem.

The UART driver core now supports registering user-specified callbacks with
arbitrary callback data via uart_irq_callback_user_data_set. This is a
backwards-compatible change; existing callbacks registered with
uart_irq_callback_set() will continue to work in the same way.

Support was added for the MMA8451Q accelerometer.

The I2S API is now userspace-aware. All memory buffers are copied.

The I2C driver core now supports up to 8 controllers. The initial user
is the DesignWare I2C driver.

On x86, the Apollo Lake SoCs now have PCI-based UART and I2C device

STM32F2 devices now support Ethernet and USB OTG FS.

There is a new LED driver for the TI LP5562 device.

The SLIP and POSIX ethernet networking drivers now have LLDP support,
following addition of that protocol to Zephyr.

The POSIX ethernet driver can now execute user-defined scripts at
various points in time.

The console driver is starting to be refactored to more closely
resemble a UNIX-like TTY layer. Somewhat ominously, its APIs have been
marked "experimental" in Kconfig.

Nordic devices have an optimized implementation for the clock control
driver which provides k_cycle_get_32(). (This is important for users
of the new Logger subsystem on those devices, as Logger relies on this
routine being fast to retrieve timestamps with minimum overhead. This
propagated into the real time clock driver.)


The Kconfiglib library was updated to revision 6aea8d0, bringing in
the changes discussed above.

TinyCrypt was updated to revision 3ea1a60.


Zephyr's userspace implementation now has all the necessary routines
for copying buffers to and from userspace in the kernel. Curious
readers are referred to the API documentation in
kernel/include/syscall_handler.h for details.

There is a new _k_object_recycle() routine, which can be used to
re-initialize a kernel object with permissions that only allow access
by the caller. This is intended for scenarios in which objects are
allocated and released to a shared pool.

The userspace implementation is now aware of net_context
structures. This was necessary to implement the argument validation
steps of system calls which operate on them.


Since its initial merge, the Logger hexdump macros (LOG_HEXDUMP_INF()
and friends) now take an additional parameter. Their revised "signature"
is now:

{{< highlight c >}}
/* Likewise for DBG, WRN, and ERR. */
void LOG_HEXDUMP_INF(void *data, size_t size, const char *metadata);
{{< /highlight >}}

The final "metadata" parameter is new; any out of tree applications
using the API will need changes. The expected value is a string
literal which can be used to describe the data being
printed. Presumably, this makes it easier to distinguish the origin of
multiple different types of hexdump coming from the same module.


Additional features not discussed above follow.

Experimental support for auto-configuration of link-local IPv4 addresses
was added, per RFC 3927. It can be enabled with CONFIG_NET_IPV4_AUTO (and
extra debugging can be enabled with NET_DEBUG_IPV4_AUTOCONF). A sample
application is in samples/net/ipv4_autoconf.

Support for the Link Layer Discovery Protocol (LLDP) was added, per
802.1AB. It can be enabled using CONFIG_NET_LLDP. Only support for
transmission of LLDP frames is included; received LLDP frames are
dropped. Sample code is in samples/net/lldp.

The network management layer for Ethernet gained support for
device-specific enable and disable routines in struct
ethernet_api. Ethernet also gained support for 802.1Qav (priority
routing for audio-video streams) requests; when Ethernet management is
enabled, the iface network shell command now prints Qav status.

The existing traffic class support saw the addition of a new choice
for the mapping between priority and traffic class. See this choice
option for details:

The net_pkt structure used to store network packets has had routines
for linearizing data into a contiguous array, as well as appending
bytes. However, the underlying net_buf struct, which actually
implements the buffer management, was lacking in this regard. As part
of the modem support work, the relevant routines were moved into the
net_buf layer, with net_pkt wrappers left behind to avoid API

The networking shell iface command now prints the supported hardware
capabilities for Ethernet interfaces.

Ethernet devices saw continued feature additions. They can now report
hardware-specific configuration. The initial user is a getter for the
number of priority queues. Support for MAC-based incoming packet
filters was also added.

enabled, the stats command can now include vendor-specific statistics in
its output.

The DHCPv4 implementation got some love, reducing footprint through
increasing code reuse and cleaning up the code.

A variety of other structure sizes were also optimized.


New sample support includes samples/sensor/mma8451q for MMA8451Q
accelerometers, WNC-M14A2A LTE-M modem support in lwm2m_client, a
variety of new features in the Bluetooth Mesh samples, and LP5562 LED
support in samples/drivers/led_lp5562.


The West implementation for flashing with nrfjprog can now
configurably mass erase or sector erase the underlying flash device.

The menuconfig script displays symbols in a more compact format, among
other improvements.


As has become usual, a great number of tests have increased Doxygen
grouping and requirements traceability matrix annotations.

A variety of other test cases were added to cover several of the new
features discussed above.

Bug Fixes


A bug in the ARC MPU driver stack guard implementation was fixed.

The POSIX pseudo-architecture saw fixes related to, and stopped
silencing, the undef and implicit-function-declaration GCC


A variety of fixes were merged, including a Mesh SeqAuth calculation
fix, increased robustness during pairing, the set PHY command status
response, the existence of keying material before doing encryption,
and storage of the Bluetooth device name in via the settings


A bug causing corrupt data copying into RAM during RISC-V
initialization was fixed.

The build system generator's Kconfig logic would previously get
confused if failed after creating the .config file. Since
has become more common since the addition of several helpful errors
which are emitted in response to malformed Kconfig fragments, the
confusion has been resolved.

The continued removal of redundant default n introduced into
Zephyr's Kconfig continues.

Various Kconfig patterns for describing the type (int, bool, etc.)
and prompt ("help string for the option") were merged into a single
line: <type> "prompt". This improves concision and avoids potential
confusion about (nonexistent) differences between the other styles.


A variety of errors and misspellings were corrected. The installation
documentation on Linux was cleaned up for readability.


The POSIX Ethernet driver got a fix for an unlikely memory leak.

The nRFx clock control driver saw some fixes related to clock status

The nRF5 entropy driver got a fix for an infinite loop.

The FXOS8700 and FXAS21002 sensor drivers (these peripherals are
available on some NXP FRDM boards) got fixes for initialization race

Various issues in the CAN driver were fixed.


The STM32F2 USB OTG HAL received a local patch to fix VBUS sensing

The STM32 HAL CAN APIs were switched to the legacy versions, restoring
Zephyr CAN functionality.


A kernel bug which allowed dynamically allocated thread objects to
potentially masquerade as other threads has been fixed.

A schedule bug affecting time slice update has been fixed. As part of
this effort, all scheduler time slices are now measured in ticks
rather than milliseconds.

The kernel's support for shared memory between threads was fixed;
users affected by the previous incorrect implementation include
systems using an ARM MPU.


The calloc() implementation in Zephyr's libc was failing to live up
to its contract to return zeroed memory; this has been fixed.


A few fixes were merged, affecting modules which span multiple files,
runtime filtering, and compilation on non-GCC toolchains.


VLAN tags are now properly set for ARP messages.

TCP servers now have their disconnection callbacks invoked correctly.

A couple of memory leaks were fixed, along with a TCP RST edge case.

The MQTT parser now properly handles UNSUBACK packets.

A couple of OpenThread addressing issues were resolved: duplicate
multicast addresses are no longer registered with their network
interfaces, and unicast addresses are now also registered with their
Zephyr network interfaces. The latter fix resolves an issue preventing
use of mesh-local endpoint identifiers.


The device tree management scripts were fixed to avoid destroying
shared data due to a shallow copy of a data structure.

Zephyr's Kconfig generation script no longer ignores warnings
generated during symbol evaluation.

Individual Changes

Patches by area (417 patches total):

- Arches: 39
- Bluetooth: 39
- Boards: 11
- Build: 22
- Continuous Integration: 3
- Device Tree: 2
- Documentation: 25
- Drivers: 56
- External: 8
- Kernel: 15
- Libraries: 13
- Logging: 7
- Maintainers: 1
- Miscellaneous: 2
- Networking: 80
- Samples: 23
- Scripts: 7
- Storage: 2
- Testing: 62

Arches (39):

- 88f4b681 arch/x86: apollo_lake: add MMU regions for I2C controllers
- b3e68703 arch/x86: apollo_lake: add PCI related bits for UARTs/I2Cs
- 0b899205 arch/x86: update linker definition for x86 real mode
- 550225b6 native: Generalize native tasks
- f742d0e2 native: Allow cmd line options to be registered dynamically
- 55f6620c native_posix: Refactor cmd line options
- 3369a5ed arch: introduce exc_handle.h
- 9d3cdb35 x86: add z_arch_user_string_nlen
- 3cef6deb arm: add z_arch_user_string_nlen
- b1dec299 arc: add z_arch_user_string_nlen
- 9426a3cb arch: x86: set output format/arch per arch
- 61570342 arch/x86: always make BSS section MMU page align if X86_MMU
- a76fa45e native_posix: minor doc fixes
- c0ea40cd posix arch: Add missing header
- 00b07615 native_posix: Add missing headers and function prototypes
- 4388cde9 arch posix: Allow including XOPEN extensions
- 11aa0b80 posix arch: Do not disable warnings
- eab3f3f2 arm: _FaultShow: fix typo MMFSR -> UFSR
- 37cc2ccc arch: arc: fix a bug in mpu driver
- 9283ee7a arch: i.MX add RDC peripheral permission setting for
applications cores
- b996955e arch: arm: optimize _size_to_mpu_rasr_size function
- 034499af arch: arm: configure non-secure registers from secure firmware
- de784300 arch: arm: internal API to enable/disable SAU
- 97d5f60a arch: arm: configure NS stack pointer limit registers
- 28acaead arch: arm: add macro definition for vector key write permit value
- 179b8d15 arch: arm: API to configure fault target state
- 5bb3d015 arch: arm: API to configure Secure exception boost
- ba02c6d9 arch: arm: api for reading MCU SAU regions
- f8b5046b arch: arm: include GCC -mcmse compile option for secure firmware
- a0508180 arch: arm: API macros for CMSE non-secure function pointers
- d9cfbc28 arch: arm: macro API for defining non-secure entry functions
- 6e93eea3 arch: arm: api to permit/block NS system reset requests
- 3b79b283 arch: arm: API & implementation of SAU region configuration
- db3f6aab arch: arm: add option to define an NSC region
- f2bdee35 arch: arm: export entry veneers
- c4703661 arch: arm: soc: add STM32L433
- bb0b66e1 arch: arm: clean-up "default n" entries in Kconfig option definitions
- 970cfdb8 arch: riscv32: Move MEPC increment in irq_wrapper
- 218d7a0a riscv: Rename the FE310 SoC to Sifive Freedom

Bluetooth (39):

- 9b6ad406 bluetooth: add callback to notify pairing is complete
- e2e02029 Bluetooth: SMP: Fix minor coding style issues
- 8780636f Bluetooth: shell: Add hci-cmd command
- 4d10b04a Bluetooth: SMP: Fix missing NULL-checks for bt_auth
- 4fe8eddd Bluetooth: SMP: Don't return STK if it hasn't been generated yet
- db0e4d52 Bluetooth: Kconfig: Enable TINYCRYPT_ECC for combined builds
- 642db775 bluetooth: kconfig: Fix swapped 'range's on BT_RFCOMM_L2CAP_MTU
- 4752788c Bluetooth: Fix documentation and other issues with auth callbacks
- da8f62de Bluetooth: SMP: Remove redundant check for smp pointer
- ef70fc85 Bluetooth: SMP: Fix SMP context init when sending security request
- c446c826 Bluetooth: Add support for fixed passkeys
- b049ac12 Bluetooth: shell: Add command for setting fixed passkey
- e504aad2 Bluetooth: shell: Add pairing failed/complete callbacks
- 0ab27e68 Bluetooth: shell: Add support for pairing confirm-only callbacks
- 97da52bb Bluetooth: controller: Update AA generation for Coded PHY support
- 76320d21 Bluetooth: controller: Fix HCI LE Set PHY command status response
- 3ebb81ba Bluetooth: controller: Wait for stable k32src for connected roles
- 28d5a65a Bluetooth: SMP: Don't try to encrypt with a non-existing LTK
- 6ee8e419 Bluetooth: Mesh: Clarify confusing log message
- 304f26c3 Bluetooth: Userchan: Add missing headers
- 1329763a Bluetooth: Fix storing name in plain text
- 504584a9 Bluetooth: att: Add option to disable GATT writable name
- e0864a93 Bluetooth: controller: HAL: Separate simulated SOC in own header
- 3712fd34 Bluetooth: controller: remove unnecessary guards in hal headers
- 6b8af4f0 Bluetooth: Minor whitespace fixes
- 5708f1e8 Bluetooth: Add infrastructure to handle multiple identities
- 1d8dab81 Bluetooth: Add initial APIs for identity manipulation
- 3ed01b48 Bluetooth: Remove redundant BT_DEV_ID_STATIC_RANDOM flag
- e70c556d Bluetooth: Add full storage support for multiple identities
- cbb1b84f Bluetooth: Pass identity to connection and pairing clearing functions
- 93360497 Bluetooth: Remove bogus bt_keys_func_t typedef
- 3d3888c0 Bluetooth: Remove return parameter from bt_id_add/del
- 7dba2512 Bluetooth: Introduce bt_id_reset() API
- 7ec40e81 Bluetooth: shell: Add multiple identity support
- 47291330 Bluetooth: Add safe-guards for creating duplicate identities
- 346f815d Bluetooth: Introduce bt_id_delete() API
- 61ec5125 Bluetooth: shell: Add id-delete command
- 734eda39 bluetooth: tester: Increase SDU size to meet PTS requirement
- e4908119 Bluetooth: Mesh: Transport: Fix calculating SeqAuth

Boards (11):

- bcc95235 boards/x86: up_squared: add I2C configurations
- 7b0c7aab boards/x86: up_squared: support new devices and Atom SoC
- ee7f834e boards: frdm_kl25z: Add mma8451q to i2c in dts
- b9bbebca boards: 96b_argonkey, fix lsm6dsl label name
- d917f239 boards: arm: k64f: add settings for UART_2
- 01745c38 boards: arm: frdm_k64f: add settings to use WNC-M14A2A LTE-M modem
- 65af15bc boards: arm: nrf52840_pca10056: add settings for WNC-M14A2A modem
- 5fda25af Revert "mimxrt1050_evk: disable sanitycheck on this board
- 7433f75e mimxrt1050_evk: Update jlink device name
- 45d5d5db boards: riscv: Convert HiFive1 to DTS
- 107efdf2 boards: nucleo_f207zg: enable usb

Build (22):

- 15516ed0 linker: riscv: Relocate .eh_frame symbol
- 99306334 kconfig: remove whitelisting for ARC_INIT
- c1bf7350 cmake: Improve the error message when the compiler is not executable
- d1684a83 Kconfig: Clean up some symbol definitions
- 5402662d cmake: kconfig: Fix rerunning cmake after Kconfig warnings
- a500e7e0 cmake: kconfig: Fix broken menuconfig due to misspelling
- d46e2c7e ld: Don't use --start-group and --end-group
- 957262e3 build: Replace GCC ARM Embedded with GNU Arm Embedded
- b9e8cd11 cmake: Refactor usage of target_link_libraries on Zephyr libraries
- ec3eff57 Kconfig: Use the first default with a satisfied condition
- 3ed9328d Kconfig: Get rid of some leftover 'option env's
- a8aba2f8 Kconfig: Include Kconfig.zephyr last in sample Kconfig files
- d08a212e Kconfig: Document the new prefer-earlier-defaults behavior
- 9c93e8e8 Kconfig: Have CMake print a note about the changed 'default' behavior
- 83d2a47d cmake: Don't propagate zephyr_library_compile_options
- bf8efdbf genrest: Generate RST links in a less hacky way
- 55ee53ce cmake: Prepend 'cmake_minimum_required()' into 'app' build scripts
- 6682652a cmake: change policy CMP0000 to NEW
- 17f1b0ad Kconfig: Switch to improved globbing statements
- 0af60bc2 Kconfig: Document new def_{int,hex,string} extensions
- 8cf8db3a Kconfig: Use a short, consistent style for prompts
- 1186f5bb cmake: Deprecate the 2 symbols _SYSCALL_{LIMIT,BAD}

Continuous Integration (3):

- 632597eb coverage: kernel: poll: Cleanup redundant code to improve coverage
- a51fb782 coverage: tests: poll: Add missing poll event to improve
code coverage
- f3a6e8aa sanitycheck: Recommend installing "ply" instead of "python3-ply"

Device Tree (2):

- 4016136b dts: bindings: add generic yaml description for uart-devices
- 0b60f383 dts: Fix get_compat when parent compat is a list

Documentation (25):

- 4cac31b2 doc: fix doxygen error for BUILD_ASSERT_MSG
- d47bd0b5 doc: prepare for read_the_docs theme change
- d7d10904 doc: scripts: Updates for pyocd v0.11.1
- f6349c88 doc: simplify CONTRIBUTING, merge non-apache
- f3f266ea doc: more RTD theme tweaks
- 368826e9 doc: getting started: add Arch Linux package
- 7555476b doc: Replace title with logo in front page
- ac7753ee doc: Add getting started to README.rst
- cb243eae doc: Correct arch spellings in README.rst
- cd170531 Doc: installation_linux.rst: Feedback Updates
- 2cf47fed doc: tweak table CSS for caption location
- a0dbc7aa doc: Copy all doc/ contents and not just .rst files
- a33b15d2 doc: Remove workaround file
- d6c56d57 doc: Remove unnecessary copy statements
- 9a3d7a43 doc: fix misspellings in API docs
- 7c89b63b doc: fix kconfig misspellings
- 6750b8d2 doc: fix misspellings in docs
- 17d04524 doc: tweak doc build instructions
- 0c5a88a6 doc: Update OpenSDA document for flashing with jlink
- 5c8398da doc: switch to use RTD theme
- 2300a592 doc: fix errors in ipv4_autoconf sample doc
- d04eaf3b doc: Fix warning associated with GNU ARM embedded rename
- 3ffac998 doc: fix wrong board name in Nordic doc
- 3747b5ba doc: Document new app boilerplate requirement
- 896a6966 doc: Make Sphinx output directory configurable

Drivers (56):

- e482feac drivers: watchdog: Align nrf wdt driver to new nrfx
- 14112768 drivers: watchdog: Fix assert errors in nrf watchdog implementation
- 525b0ce8 drivers: eth: gmac: Restore original frags data after transmitting
- aabaf98c drivers: eth: gmac: Enable gPTP support
- 9099b248 drivers: eth: gmac: Use correct iface for gPTP over VLAN
- 7dc9831d drivers: eth: gmac: Disallow drastic rate changes
- 4e642f62 drivers: eth: gmac: Fix ptp clock rate re-calculation
- 75d23d59 drivers: eth: gmac: Add support for multiple hardware queues
- 3dd1101c drivers: eth: gmac: Minor reformatting
- a43ed0f4 drivers: eth: gmac: rework timestamping
- 982b4e14 drivers/i2c: extends Kconfig to support 8 controllers
- 67b48ab2 drivers/i2c: i2c_dw: extends driver to support 8 controllers
- 39ec52d2 drivers: eth: native_posix: Make sure sent pkt is freed properly
- abd417c0 drivers: eth: gmac: Implement the get_config callback
- 1b6e5f61 drivers: eth: gmac: Enable 802.1Qav support
- 9c0d7813 drivers: sensor: Add support for MMA8451Q (3-axis accelerometer)
- a10d1780 drivers/pinmux: stm32 fix ports_enable array definition
- 55767ade drivers: eth: gmac: Implement Qav status callbacks
- 45b1079b drivers: console: Kconfig: Improve native descriptions
- 23c92100 clock_control: nRF5x: Non-blocking 32KHz crystal oscillator startup
- 26d22b00 clock_control: nRF5x: Fix HFSTAT and LFSTAT check
- 0272a537 drivers: eth: gmac: Don't verify RX buffers count for unit tests
- 995411f4 drivers/i2c: kconfig: Clean up I2C Kconfigs a bit
- d775c2f5 drivers: crypto: Fix input len size for cbc decryption
- 57286afd drivers: uart: Allow to pass arbitrary user data to irq callback
- bdd2e591 drivers: eth: gmac: Fix idle slope setting
- 78b6dc6d drivers: eth: gmac: Do not implicitly enable Qav
- b15c3cb5 drivers: eth: gmac: Prefer routing packets based on TC
- ef96384d drivers: eth: gmac: Finish 802.1Qav support
- 9182d2e5 drivers: modem: add modem receiver (tty) driver
- 042d79e8 drivers: modem: add Wistron WNC-M14A2A LTE-M Modem Driver
- 8b3d4ab6 drivers: modem: add modem shell extension
- b4e36133 drivers: eth: native_posix: Exec program after creating zeth
- 34ff437b drivers: slip: Add LLDP support
- 3913f1ae drivers: eth: Enable LLDP support for native_posix board
- 0ffdd7fb drivers: eth: gmac: Don't use Qav code without priority queues
- 2681199c drivers: serial: uart_sam: Fix typo in param name.
- a2bfd819 drivers: spi: nrfx: Use HAS_HW_NRF_* in driver options dependencies
- 841b8400 drivers: spi: nrfx: Remove "optional" from driver type choices
- 16e8860f drivers: i2c: nrfx: Use HAS_HW_NRF_* in driver options dependencies
- ead39991 drivers: watchdog: nrfx: Remove false dependency on
- f9aa9783 drivers: eth: native_posix: Allow user to manipulate zeth status
- ddb7f88f drivers: entropy: nrf5: Fix ENTROPY_BUSYWAIT implementation
- ed4f0ff3 drivers/sensor/fxos8700: Fix race condition during initialization
- 72cad66c drivers/sensor/fxas21002: Fix race condition during initialization
- 1dfd33b7 drivers: timer: nrf: Optimize k_cycle_get_32().
- 24abedbd driver: timer: nrf: Remove redundant RTC_COUNTER reads.
- 06c23f15 i2s: expose i2s APIs to user mode
- 2469097b drivers: nrfx: Allow simultaneous use of SPI_0 and I2C_0 on nRF52810
- 78d24763 subsys: console: Mark as EXPERIMENTAL.
- eb737280 drivers: pinmux: stm32: STM32F2 added ETH support to pinmux
and use it
- eaca7d78 drivers: ethernet: Kconfig: Document availability of eth_stm32_hal
- 39cb4b41 drivers: can: Fix Issue #8226
- 95b64fb7 subsys: console: Refactor code to allow per-UART "tty" wrapper
- ea9d4a79 drivers: usb: add support for USB OTG FS on STM32F2
- 41b7e7aa drivers: led: Add LED driver support for TI LP5562

External (8):

- 4dcfc870 ext: Atmel ASF: Add missing interrupt number definitions
- ba8d8350 ext: hal: atmel: sam: Add README for Atmel SAM E70 HAL
- 263282b2 ext: tinycrypt: Update revision
- d22cd76c CMSIS RTOS V1: Introduce CMSIS RTOS V1 API header file
- 57fda14f ext/hal: stm32cube: STM32F4: Enable legacy CAN API
- 6409f9a9 ext/hal: stm32cube: STM32F7: Enable legacy CAN API
- ee29e603 ext/hal: stm32cube: STM32L4: Enable legacy CAN API
- 8bb0e7a5 hal: stm32f2x: usbotg_fs: fix VBUS sensing deactivation

Kernel (15):

- 300b060e obj_tracing: Declare object trace list for queue
- 1f2eedff kernel: add z_arch_user_string_nlen prototype
- c8188f67 userspace: add functions for copying to/from user
- cef07486 userspace: add syscalls test case
- 4b22ba7e syscall: Move arch specific syscall code into its own header
- e58b6542 kernel: threads: assign index no. to dynamically created threads
- ee9a0615 kernel: sched: Fix comparsion in _update_time_slice_before_swap()
- 4a39b9ea kernel: sched: Use ticks as time unit in time slicing.
- 83fda7c6 userspace: add _k_object_recycle()
- 09c22cc4 userspace: add net_context as a kernel object
- 1a40990b syscalls: Define the syscall id's with '#define' instead of enum
- c69fb0d0 userspace: app_shared_mem: Fixed incorrect implementation.
- e670135f kernel: sched: Fix comparsion in _update_time_slice_before_swap()
- 2a26576b kernel: sched: Use ticks as time unit in time slicing.
- 3c7f9903 kernel: Do not use sys_clock_ticks_per_sec in _ms_to_ticks()

Libraries (13):

- 3641c25d libc: minimal: fix calloc()
- ccd1c218 lib/cmsis_rtos_v1: Implement support for thread APIs
- 2d7619ec lib/cmsis_rtos_v1: Implement support for osDelay
- 7e5f0b7b lib/cmsis_rtos_v1: Implement support for osKernelSysTick
- 7d3a5390 lib/cmsis_rtos_v1: Implement support for timer APIs
- 055da731 lib/cmsis_rtos_v1: Implement support for mutex APIs
- 45e67150 lib/cmsis_rtos_v1: Implement support for semaphore APIs
- aff8c511 lib/cmsis_rtos_v1: Implement support for mempool APIs
- 76fc443b lib/cmsis_rtos_v1: Implement support for kernel APIs
- 7c67140b lib/cmsis_rtos_v1: Implement support for Mail Queue APIs
- 3bb243c6 lib/cmsis_rtos_v1: Implement support for Message Queue APIs
- b5df23e4 lib/cmsis_rtos_v1: Implement support for Signal Event APIs
- 2fc836d2 lib: cmsis_rtos_v1: Fix timeout calculation in signals

Logging (7):

- 66111d7d logging: use BUILD_ASSERT_MSG instead of _Static_assert
- df8d4e96 logging: fix multi-file module support
- 55327a18 logging: fix runtime filtering initialization
- c859e2a2 logging: Replace ifdefs with if
- 3c63d05d logging: Add metadata to hexdump
- 2cb17a03 log: make name param explicit
- ebc3ce3a Revert "log: make name param explicit"

Maintainers (1):

- 3a257262 codeowners: Assign tests/boards/native_posix to aescolar

Miscellaneous (2):

- 4486478f shell: Add missing header
- 04b7838f misc: dlist: Fixed dlist.h error to pass script.

Networking (80):

- 09233e69 net/dhcpv4: Move definitions to header
- 3d5876d4 net/dhcpv4: Rename functions to follow domain related naming rules
- 6d74e262 net/dhcpv4: Reorder variable declaration
- 502912ac net/dhcpv4: Reuse generic IPv4 function relevantly
- bb6b2769 net/dhcpv4: Tiny style fixes
- 11ccf36a net/dhcpv4: Cleanup debug messages
- 2ba28dd7 net/dhcpv4: Unify timeout management in a unique k_delayed_work
- e487fc78 net: eth: mgmt: Minor formatting fix
- a10a1c26 net: eth: Add API callback to get hw configuration
- 3cd1425b net: eth: mgmt: Extend the management interface with a getter
- 9ffab9e6 net: arp: Fix ARP message sending if VLAN is enabled
- 2c1863ff net/ethernet: Add a way to configure MAC address filters into devices
- 21a27e88 net: l2: Move individual L2 to dedicated directories
- 96e794e6 net: openthread: Register OT unicast adresses in Zephyr
- 80e828b9 net: openthread: Don't regsiter mcast addresses in Zephyr
multiple times
- 00e37cbb net: IPv4 link local support
- f568be48 net: eth: mgmt: Add Qav status hooks
- cb3f30a0 net: shell: print info about priority queues
- 528f7f8f net: shell: Print supported features for ethernet interfaces
- 805e2f2c net: eth: mgmt: Merge 802.1Qav related mgmt requests
- c3eea5f6 net: net_app: Correctly notify server on TCP disconnection
- dd88711a net: eth: Vendor specific statistics
- bab35512 net: ipv4_autoconf: Fix requested IPv4 address in ARP packet
- 1f23d268 ip: route: disable LL address check when using dummy L2
- 7c776c8c net: eth: native_posix: Add missing headers
- c0487a06 net: tc: Fix priority to traffic class mappings
- 126602ac net: tc: Add other priority to traffic class mappings
- aed075ef net: ip: Fix net priorities definitions
- b6852e5a net: eth: mgmt: Add remaining 802.1Qav parameter types
- db577f00 net: buf: add linearize, append_bytes and skip APIs to net_buf
- b7e68664 net: sockets: Fix setsockopt coverity issues
- 2ff503b7 net: shell: Check strtol() conversion errors
- 9c26c3fa net: lwm2m: no need to cleanup net_app_ctx in RD client
- 59827626 net: l2: Add support for Link Layer Discovery Protocol (LLDP)
- ccfcdaba net: l2: Add flags to tell if L2 supports multicast
- 66244a0e net: if: No need to always join solicit node mcast group
- 1f855095 net: l2: Add promiscuous mode to L2 flags when applicable
- e75b6071 net: Fix credit-based shaper typos
- b8fdf3c6 net: if: Add net_if_ipv6_select_src_iface() function
- d0205693 net: if: Add net_if_select_src_iface() function
- f39ff76c net: if: Do not inline net_if_ipv6_addr_lookup_by_iface()
- d003d0e6 net: ipv4: Corrupted ARP pkt was sent instead of real IPv4 pkt
- 33e06441 net: ipv4: Minor refactoring
- fbac80bb net: ipv4: Refactor IPv4 header length handling
- bfa75168 net: Do not set appdata on a cloned packet
- c8b58904 net: ipv6: Fix memory leak
- 31f89b03 net: eth: Add start and stop L2 functions
- 06c4a950 net: icmpv6: Simplify the flow at net_icmpv6_get/set_xxx() calls
- 6521b9e4 net: tcp: Fix net_buf leak in case of low available net_buf count
- 7d55b7f1 net: icmpv4: Simplify the flow at net_icmpv4_get/set_xxx() calls
- ac92a01f net: ipv6: Refactor IPv6 header length handling
- 0aa437a1 net: ipv6: Fix regression in IPv6 cleanup
- 8b1f966b net: tcp: Handle RST packet when multiple flags are set
- 85db974e net: tls: Add DTLS protocol types
- b03a388d net: tls: Add socket option to set DTLS role
- 011b4f42 net: tls: Add timer handling for DTLS
- 3ad2bbce net: tls: Add cookie for DTLS
- 4aaffaff net: tls: Add DTLS peer address helpers
- 8719f9a8 net: socket: Extract flag related functions to internal header file
- 4c235dea net: tls: Add DTLS bio functions
- 6c5aaa07 net: tls: Handle HELLO_VERIFY_REQUIRED during DTLS handshake
- d021b8c6 net: tls: Adapt connect for DTLS
- bdc56cfe net: tls: Support DTLS send and handshake
- b1d82711 net: tls: Support DTLS recv and handshake
- 8697cc94 net: tls: Add timeout for mbetTLS read
- ae41ec1f net: tls: Make TLS poll implementation check mbedTLS data
- 800392e1 net: tls: Enable non-blocking DTLS handshake
- 7c487ba0 net: tls: Use EINVAL for NULL pointer error in option setters
- 18cec245 net: introduce system calls for zsock socket APIs
- 028aae1e net: config: Rename Kconfig options to correspond to library name
- 96abe861 net/mqtt: Fix function mqtt_parser
- 4b9d9809 net: if: Lower memory usage for IPv6 address, prefix and router info
- 7c7cfdda net: core: Always have a timeout when allocating a net_buf
- 4078e46e net: l2/lib: Always have a timeout when allocating a net_buf
- 7e3eaaa0 net: Use packed enums when applicable
- 14b4084d net: rpl: Kconfig: Fix 'Network type' choice default
- 355d58b0 net: http: One extra byte was sent in last chunk
- afa0e002 net: ipv6: Fix crash from fragmented packets
- 5d3bc8b3 net: pkt: Added new function net_pkt_append_memset() to
prefill packet
- d66e8077 net/dhcpv4: Use new net_pkt_append_memset() function

Samples (23):

- 9834b551 samples: net: gptp: Add support for Atmel SAM E70 Xplained board
- aa609faa samples: board: 96b_argonkey: remove led blinking
- 00dd90ef samples: ipm: improve sample metadata
- 9f817c8c samples: net: Allow to register more adresses for OpenThread
- c761002e samples: net/mqtt_publisher: Explicitly disable BT_TINYCRYPT_ECC
- fd1fec8a samples: net: IPv4 autoconf sample application
- 70a35e23 samples: sensors: mma8451q: Add accelerometer sample
- 926c341c samples: net: lwm2m: add wnc-m14a2a overlay .conf file
- 3e27187e samples: net: coaps_client: Increase IPv6 mcast table size
- 0b012257 samples: net: lwm2m: cleanup prj.conf
- c162bad3 samples: net: lldp: Sample application that enables LLDP support
- a564e640 samples: subsys: mgmt: mcumgr: smp_svr: documentation update
- d71a1dfe samples/driver/gpio : Updated gpio support
- b7c254fc samples: net: Add DTLS support to socket echo_client/echo_server
- df20ebd6 samples: boards: Fix incorrect min max range validation
- b8b230f2 samples: net: echo-client: Handle net_buf out-of-mem gracefully
- 38323783 samples: net: echo-server: Handle net_buf out-of-mem gracefully
- 26322d65 samples: mesh: nrf52: upgrade state binding
- 6efb173e samples: mesh: nrf52: Time filtering, Coding style & others
- 993c349a samples: mesh: nrf52: Transition Time support, Coding Style
- 0aafcd64 samples: mesh: nrf52 : to solve remaining PTS issues
- f8d53e5d samples: drivers: Add sample application for LP5562
- 36ef1921 samples: led_lp5562: cmake_minimum_required added

Scripts (7):

- 94be858f scripts: west: sync with upstream
- b3d165f3 scripts: kconfig: Handle warnings generated during evaluation
- 8e740350 scripts/dts: extract_dts_includes: makes 'defs' and 'structs' global
- 69a211fe scripts: extract_dts_includes: use deepcopcy when accessing reduced
- 6686efb8 kconfiglib/menuconfig: Add functionality and improve symbol
- f24d4bb3 check-compliance: Simplify undefined Kconfig symbol check
- f8a8bdf3 scripts: Removing a needless file.

Storage (2):

- b9dead0a subsys: fs/nvs: Improved nvs for larger blocksizes
- 7d2e5981 subsys: fs/nvs: Rewrite for improved robustness

Testing (62):

- bb8cb5ac tests: pipe: Add description and RTM links
- f19a0538 tests: watchdog: Add new testcase and improve existing ones
- 55642afe tests: obj_tracing: Add obj_tracing tests for kernel objects
- dbc8789a tests: sched: Enhance tests to improve code coverage
- abd646c3 tests: net: ethernet_mgmt: Test the new get_config callback
- 6101e232 tests: net: TLS credentials subsystem tests
- 44be3943 tests/benchmarks/footprint/min/x86: disable I2C and SPI
- d05bee87 tests: kernel: profiling: Add description and doxygen group
- 87de383c tests: CONFIG_ARC_INIT is n by default
- 07a8c0cf tests: kernel: Add test to verify k_thread_user_mode_enter()
- f16a7ea8 tests: flash_map: Disable write protection before erase
- 08db8c19 tests: flash_map: Enable mpu and allow flash write
- 08470c0f tests: flash_map: Don't enable stdout console
- 45f34a43 tests: flash_map: Add k64-based boards to platform whitelist
- 966ab0e4 tests: net: ethernet_mgmt: Add Qav status tests
- 0b76567a tests: mem_protect: Add description and doxygen groups
- 67d2ddc6 tests: mem_protect: Add RTM links and description
- 334ce69e tests: net: ipv6: Must use Ethernet L2 instead of Dummy L2
- 71523ece tests: native_tasks: Add missing header
- 1ad369df tests: crypto: cbc_mode: Fix input length
- b8ca8cf9 tests: net: lib: coap: Added new functions to improve code coverage
- d380c891 tests: net: Add new TC mappings testcases
- 7930419a tests: net: ethernet_mgmt: Improve and finish Qav testing
- 05d9b046 tests: net: iface: Add test for net_if_ipv6_select_src_iface()
- 297efa51 tests: net: iface: Add test for net_if_select_src_iface() function
- cd3e5b56 tests/kernel: kernel.queue.poll: fails if MAX_THREAD_BYTES > 2
- b16b4e6e tests: kernel: add tests for dynamic threads
- 3a82aef5 tests: lib: mem_alloc: Add tests to validate dynamic allocation
- 45a1c1fb tests: net: ipv6: Wrong API struct was used for ethernet device
- 4ae9dd5a tests: mp: Add description, RTM links and doxygen group
- 477219b2 tests: syscall: Add description and RTM links
- 0975663e tests: x86_mmu_api: Add description and doxygen groups
- b32b39af tests: userspace: Remove extra call to same testcase
- 6910f15f tests: protection: Add description and doxygen group
- 234f48e1 tests: userspace: Add description and doxygen links
- dec8b9e5 tests: msgq: Add description and RTM links
- b3f4d6b0 tests: lifo: Add description and RTM links
- 68bde79e tests: kernel: device: Add RTM link, description and doxygen group
- b073b296 tests/booting/stub: remove CONFIG_ARC_INIT
- e21e6c1b tests: posix: improve pthread_key test
- 8525944c tests: power: refactor power_states test
- db9f6a90 tests: obj_tracing: Enhance object tracing test
- a54a887a tests: kernel: Add doxygen groups
- 648477c6 tests: static_idt: Add description and RTM links
- 4cc28663 tests: FIFO: Add description and RTM links
- 0ab496b5 tests/cmsis_rtos_v1: Introduce tests to make use of Thread APIs
- b2b53196 tests/cmsis_rtos_v1: Introduce tests to verify Thread instances
- a57d994a tests/cmsis_rtos_v1: Introduce tests to make use of Timer APIs
- a76556a2 tests/cmsis_rtos_v1: Introduce tests to make use of Mutex APIs
- c996d058 tests/cmsis_rtos_v1: Introduce tests to make use of Semaphore APIs
- d543e8c8 tests/cmsis_rtos_v1: Introduce tests to make use of mempool APIs
- 1b6eb7d1 tests/cmsis_rtos_v1: Introduce tests to make use of mailq APIs
- f4999f79 tests/cmsis_rtos_v1: Introduce tests to make use of messageQ APIs
- f7779895 tests/cmsis_rtos_v1: Introduce tests to make use of Signal APIs
- 7dc09636 tests: spi_loopback: Increase size of async callback thread stack
- f15bca29 tests: spi_loopback: Add zasserts to fix false passes
- ecd7504d tests: spi_loopback: Increase k_poll timeout
- 5b3a7ed7 tests: kernel: Do not use exact time in timing checks.
- 5f1d6264 tests: CONFIG_ARC_INIT is n by default
- 331659c7 tests/net: ieee802154: fragment: Fix build error
- 74e02e5d tests: cmsis_rtos_v1: add negative tests
- c9ca1994 tests: cmsis_rtos_v1: Add and enhance test suite

Join to automatically receive all group messages.