Zephyr RTOS 2.1 Release Highlights

Written by David Leach, Software Architect at NXP Semiconductor and member of the Zephyr Technical Steering Committee

Last month, the Zephyr Project announced the release of Zephyr RTOS 2.1. A long list of enhancements and bug fixes contained in Zephyr 2.1 can be found in the release notes

Major Enhancements

·         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 new TCP stack implementation (experimental).

·         Added BLE support on Vega platform (experimental).

·         Memory size improvements to Bluetooth host stack.

The Numbers

This release is the result of the hard work and skill of over 350 individuals engaged with the project over the last 3 months with over 1500 PRs merged and 532 issues closed. We would like to thank all those who engaged with the project both in front and behind the scenes to help improve the Zephyr Project for this release.

Sample boards that now have support

What’s Next

Improvements to Zephyr Project never stops. Work continues on the new TCP stack implementation, many different activities with Bluetooth, converting GPIO drivers to the new GPIO API,  and many other enhancements and bug fixes.

Join Us

We invite you to try out Zephyr 2.1. You can find our Getting started Guide here.  If you are interested in contributing to the Zephyr Project please see our Contributor Guide. Join the conversation or ask questions on our Slack channel or Mailing List.

Top 5 Highlights from Zephyr TSC Meetings in Lyon

By Maureen Helm, Chair of the Zephyr Project Technical Steering Committee

The Zephyr community converges every year at the Embedded Linux Conference Europe, and 2019 was no exception. This year we traveled to Lyon, France for an engaging week full of technical talks, spontaneous hallway conversations and hacking sessions, team dinners, and perhaps a nice glass of wine or two. It was a wonderful opportunity to get to know some of our newer members in person and finally put faces to familiar names and voices.

After the main conference, the Zephyr technical steering committee stayed on for two days of face-to-face meetings, including a few dial-ins from those who couldn’t make the trip. Compared to our weekly calls, the longer format F2F meeting allowed us to discuss and debate issues in greater depth, and make decisions about the technical direction of the project.

#1 – Mainline releases: Historically we have aimed for quarterly releases, but will shift to a 4-month cycle in 2020. More details, including dates, are in the Program Management wiki page.

#2 – LTS releases: We clarified that LTS releases will be maintained for two years, and LTS2 will be released approximately two years after LTS1. We did not decide on a cadence beyond LTS2.

#3 – Toolchains: We agreed that multiple members have an interest in supporting commercial toolchains and will kickoff a new toolchain-focused working group.

#4 – User Experience: We brainstormed possible solutions to common problems encountered by new developers.

#5 – Roles and Responsibilities: We debated a contributor ladder towards maintainership, how to distribute merge rights, and how to fill the release manager role for future releases. This conversation has continued in subsequent process working group meetings.

Thank you to everyone who joined, and I look forward to seeing you next time at the Embedded Linux Conference in Austin, Texas!

Antmicro’s work with Time Sensitive Networking support in the Zephyr RTOS

This blog originally ran on the Antmicro website. For more Zephyr development tips and articles, please visit their blog.

Solving problems that require real-time calculations and precise control typically calls for using an RTOS. While we have been working with a wide variety of RTOSs for various applications (like Contiki-NG for IoT, RTEMS for space applications, eCos for satellite equipment, FreeRTOS in many other fields etc), Antmicro’s RTOS of choice these days has been Zephyr, a Linux-Foundation driven, well-structured, vendor-independent and scalable real-time OS. We’ve ported and adapted Zephyr to many platforms, encouraged its use as a standard on RISC-V, promoted it in less standard contexts like FPGA devices.

So if you have a single device with a real-time requirement, typically it’s not that hard to decide how to approach the problem – just use Zephyr!

The problem starts when there are multiple heterogeneous devices that have to communicate in a standardised and robust way, performing a complex operation involving a network protocol while never leaving the “real-time” world. Scenarios like this are typical in the aerospace, automotive, robotics industries, and increasingly those industries are looking to reuse technologies known from the commercial/consumer market to leverage the massive scale offered by omnipresent, commodity tech.

For your everyday use case, the easiest way to connect multiple devices is of course Ethernet, but plain old Ethernet does not list real-time capabilities in its dictionary – how then can it be used in a real-time use case?

The set of standards that define Time Sensitive Networking is the answer to that problem. Leveraging the physical and logical foundations of Ethernet and extends it to cover real-time use cases by defining different aspects of time sensitive communication: clock synchronization, traffic shaping, scheduling, fault tolerance etc.

TSN seems then like a good fit, and sure enough, open source support for TSN is widely available in Linux. In the RTOS world however, there has previously not existed a proper implementation of TSN, readily available and tested on real hardware platforms, well, not until Zephyr 1.13!

Initial work: towards a TSN implementation in Zephyr

As a member of the Zephyr Project, Antmicro is always excited to add new functionalities to the OS, especially in fields that open it up for adoption in new use cases. Here, we were happy to work with another Zephyr project member, Intel on getting gPTP support added to Zephyr. “gPTP” stands for “generic Precision Time Protocol” and is responsible for clock synchronization. When we joined the project it was already in progress, but far from being finished. We implemented the missing state machines and fixed various bugs in the existing code.

The initial target was making Zephyr’s clocks synchronize with external Grand Masters.

Our focus was getting it to work on Microchip SAM E70 Xplained. At that time, the platform already had a Zephyr port (including the Ethernet driver), but it lacked drivers for the PTP clock.

The TSN support was also tested on the NXP FRDM K64F development platform which also has a Zephyr port and hardware timestamping support.

After initial support was done and merged, we proceeded with configuring Zephyr nodes as Grand Masters, as well as ensuring operational Zephyr-to-Zephyr clock synchronization.

Qav: an important part of TSN

PTP is only a part of Time Sensitive Networking. Another important part of TSN is queue management.

The platform of our choice (SAM E70 Xplained) has multiple hardware queues built into its MAC controller, which allowed us to use the same platform to extend Zephyr’s TSN capabilities.

Antmicro implemented support for credit-based shaper algorithms in Zephyr, which are described in the 802.1Qav standard.

The work in that area required us to design an API to manage the Qav-capable Ethernet queues. Through this API/management interface, we made it possible to set and read various parameters, like idle slope, delta bandwidth, traffic class, etc.

Additionally, some status parameters were implemented. These are now shown in the regular networking shell in Zephyr for the supported network interfaces.

Running a basic Zephyr gPTP sample application

To find out how to run the basic gPTP sample, please refer to Zephyr’s official documentation.

More general info about the gPTP stack implementation can be found in a dedicated chapter.

Testing in Renode Cloud Environment

A network stack plays a critical role in an operating system like Zephyr. It is also constantly under very heavy development by various parties. Our work on the TSN/gPTP support was heavily influenced by all the changes in the networking subsystem. As can be expected in large development campaigns, these completely unrelated things would break our implementation repeatedly.

The reason for that was lack of more sophisticated testing of the setup. Sure, there were multiple unit tests which directly tested our stack implementation, but Time Sensitive Networking can be broken by seemingly minor changes in other parts of the networking stack.

Obviously, network protocol testing is difficult. You can either use synthetic tests that easily get outdated and don’t really reflect real life scenarios or you can create complicated physical network setups connected to a CI system – which is costly, difficult to maintain and creates only a single, static configuration.

A much better, more scalable solution is to use simulation. With Antmicro’s Renode open source simulation framework you can create script-defined complex configurations, allowing you to verify virtually every scenario imaginable.

In Renode’s 1.7 release, Antmicro added support for the SAM E70 platform, along with Ethernet with gPTP capabilities. With these new features we were able to create a CI setup testing upstream Zephyr in a virtual environment.

And thanks to an integration with the Robot Framework, it’s very easy to create new test cases in Renode. That’s why, for Zephyr, we decided to create a suite of tests verifying a range of aspects of a single application.

This lines up perfectly with the introduction of Renode Cloud Environment – a new CI system introduced by Antmicro, that you’ll be able to read about more on our blog soon. Here is a sneak peek of the TSN testing setup running in RCE.

First, Renode verifies if the board sends a PTP packet, which means that the PTP stack is started properly. Next, we analyze its reception and the proper reaction from the recipient’s OS. We analyze whether the compile-time configuration of the PTP stack is properly reflected in its runtime, and the highest level properties: whether the correct Grand Master node has been selected and whether the slave nodes are properly synchronizing their clocks.

The whole testing setup can be easily recreated with upstream Renode and Zephyr. For instructions, please refer to the TSN testing tutorial.

Building a TSN system?

If you’d like to use TSN is your system, and feel that an RTOS like Zephyr is a good fit for your needs, be sure to reach out to us at contact@antmicro.com – we’d be happy to help you apply TSN on existing and new hardware, and perhaps in simulation, for real-world use cases!

Zephyr – An Operating System for IoT

Written by Ivo Clarysse, CTO at Blue Clover Devices

This blog previously ran on the Blue Clover Devices website. You can view the website here.


These days there’s no lack of operating systems to choose from for embedded systems; Wikipedia counts about 100 of them. The Eclipse survey still shows Linux leading the pack, with Windows, FreeRTOS and Mbed OS being widely used as well.

For devices that have the necessary resources, full-blown operating systems like Linux (Android) or Windows dominate the field, but for more constrained devices, there’s a wide range of systems being used.

The Eclipse IoT Developer Survey 2019 shows more use of actual operating systems in IoT device firmware, as opposed to bare-metal programming or building on top of a minimal kernel.

Linux is widely used for IoT applications, but requires at least a Cortex-A MCU (or equivalent), and is not the preferred choice for more limited systems, such as Cortex-M.

FreeRTOS is quite popular in the embedded world and gets more support after the acquisition by Amazon in 2017. However, FreeRTOS is a bare operating system.  Everything else such as drivers, file systems, crypto modules, network stacks, middleware, and a bootloader must be added from other sources.

ARM’s Mbed OS has the out-of-the-box integration with ARM’s Pelion Device Management going for it, making it a great choice to learn about IoT device provisioning, connection and management through LwM2M. Provided by ARM, it obviously does not support popular IoT platforms like ESP32 or RISC-V.

Mynewt has everything you could wish for in an operating system for resource constrained IoT devices, but the BSP support is fairly limited.

Zephyr originated from the Virtuoso DSP operating system which initially got rebranded as “Rocket” kernel, following its acquisition by Wind River Systems, but became Zephyr in 2016 when it became a Linux Foundation hosted Collaborative Project. Major sponsors and contributors of this open source collaborative effort include IntelNordic SemiconductorNXPSiFiveSynopsys and TI.

Like many other operating systems, Zephyr provides:

  • Secure bootloader (MCU Boot)
  • Kernel
  • Network stacks
  • File systems (NFFS, LittleFS, NVS)
  • Middleware (including the MCUmgr OTA mechanism and LwM2M client functionality)
  • Device drivers


Zephyr is mostly licensed under the Apache 2.0 license, but drivers from Nordic and NXP are licensed under the permissible BSD-Clause-3 version, although some of the build tooling is GPLv2.

Example Project

An example Zephyr firmware project can be found on https://github.com/bdevices/ly10-zephyr-fw

This project is a demonstration firmware for our nRF52-based “LY10” demo board, which we ship with our Production Line Tool.


Use the following Terminal command to obtain a local copy of this example project.

git clone https://github.com/bcdevices/ly10-zephyr-fw.git


To simplify building the firmware, we’ve setup this project with Docker-based build scripts, avoiding the need to install anything else than Docker itself.

To build:

make docker

The resulting ly10-zephyr-fw-VERSION.hex file can be programmed through the west tool (if you’ve installed the Zephyr tooling locally), or use target-specific Vendor tools (nRF Connect Programmer).


The demo firmware source code is very simple, contained in the src/app folder:


Building for one of the target boards directly supported by zephyr is a matter of specifying the correct board name.

Since the LY10 is a custom board that is not defined in the upstream Zephyr project, we’re defining a custom board in boards/arm/ly10demo:


About the Author

Ivo Clarysse is CTO at Blue Clover Devices. At heart, he is a software engineer with extensive experience working on embedded systems software and linux device drivers.

Social Change in Open Source Software

Amy Occhialino is the Chair of the Zephyr Project Governing Board and Director of Software Engineering at Intel. She has more than 20 years experience in technology and has recently shared insight into the social change in open source software at several conferences. She recently gave the keynote at The Consortium for Computing Sciences in Colleges and the Society of Women Engineers. In this blog, Amy shares some of that insight from her talks. 

You may know Intel only as a hardware company, and in many ways this is true.  Intel’s core business is semiconductor design and manufacturing. What may be news to you is that Intel has spent close to two decades working in the open source software community, collaborating on projects that enhance Intel Architecture and advocating for the beauty, elegance, and possibilities that exist within open source software development. 

Intel software engineers are key contributors to the Linux kernel, are Linux kernel maintainers, and hold many software standards and leadership positions within open source projects and communities.  Open source software development is an enormous commitment and investment at Intel. In fact, we went from sponsoring 12 open source projects to 200 spanning cloud, edge, and device growth over the last decade. The Zephyr Project is a great example of this. 

Leading the future will require a wide range of perspectives, backgrounds, and ideas to effectively solve the world’s toughest challenges. We, as a technology community, are bound to fail if we do not demonstrate a commitment and passion to increasing and achieving full representative diversity within the open source software industry.  

Our success will be threatened in three ways:

  • Market Failure:  Without diversity-fueled creativity, innovation is stifled.  The same perspective and thoughts are generated and reinforced, preventing new solutions from emerging.
  • Customer Failure:  We will lose customers because we don’t listen to them, engage with them, understand them, and learn from them in a full perspective of ways.
  • Talent Failure:  We will lose top talent because individuals with diverse backgrounds feel out of place in our culture and environment.

The Zephyr Project is committed to achieving an inclusive and diverse open source environment. We encourage any and all developers interested in the RTOS landscape to join the conversation and share your interests and talents with the community. Change doesn’t happen all at once, it’s incremental, one person doing one thing every day. 

For me, I personally increase diversity in my own teams through my hiring practices, I have spent a decade creating support systems through my leadership of women’s groups, and I actively advocate for social change within Intel and my tech community.  I am proud that Zephyr is part of this as an open source project with a high amount of diversity 

Open source software gives us the potential conditions, but we must actively engage with it, and monitor it, for it to be what we want it to be.

If you’re new to Zephyr RTOS, please see our Getting Started Guide and check out our Contributor Guide. Or, you can join the conversation and ask questions on our Slack channel or Mailing List and follow #zephyrproject on IRC.

Co-simulating HDL models in Renode with Verilator running on Zephyr RTOS

This blog originally ran on the Antmicro website. For more Zephyr development tips and articles, please visit their blog.

Antmicro’s open source simulation framework, Renode, was built to enable simulating real-life scenarios – which have a tendency to be complex and require hybrid approaches.

That’s why, besides other things, the Renode 1.7.1 release has introduced an integration layer for Verilator, a well known, fast and open source HDL simulator, which lets you use hardware implementations written in Verilog within a Renode simulation.

When you are working on ASIC or FPGA IP written in an HDL, forming a part of a bigger system with unknowns both in the hardware and software, many things can go wrong on multiple levels. That’s why ultimately it’s best to test it within the scope of the full system, with drivers and test software, in a real-world use case. Simulating complete platforms with CPUs and all peripherals using actual HDL simulation, however, can be too slow for effective software development (and sometimes downright impossible, e.g. when access to the entire SoC’s HDL is not available). Renode models will give you better speed and flexibility to experiment with your architectural choices (as in the security IP development example of our partner Dover Microsystems) than HDL, but there might still be scenarios where you could quickly try to directly use complex peripherals you already have in HDL form before going on to model them in Renode. For these use cases Antmicro has enabled the option of co-simulating HDL in Renode using Verilator. Co-simulating means you’re only ‘verilating’ one part of the system, and may in turn expect a much faster development experience than with trying to perform an HDL simulation of the whole system.

In the 1.7.1 release of Renode you will find a demo which includes a ‘verilated’ UARTLite model connected to a RISC-V platform via the AXI4-Lite bus running Zephyr.

Integration layer overview

The integration layer was implemented as a plugin for Renode and consists of two parts: C# classes which manage the Verilator simulation process, and an integration library written in C++ that allows you to turn your Verilog hardware models into a Renode ‘verilated’ peripheral.

The ‘verilated’ peripheral is compiled separately and the resulting binary is started by Renode. The interprocess communication is based on sockets.

How to make your own ‘verilated’ peripheral

An example ‘verilated’ UARTLite model is available on Antmicro’s GitHub.

To make your own ‘verilated’ peripheral, in the main cpp file of your verilated model you need to include C++ headers applicable to the bus you are connecting to and the type of external interfaces you want to integrate with Renode – e.g. UART’s rx/tx signals. These headers can be found in the integration library.

// uart.h and axilite.h can be found in Renode's VerilatorPlugin
#include "src/peripherals/uart.h"
#include "src/buses/axilite.h"

Next, you will need to define a function that will call your model’s eval function, and provide it as a callback to the integration library struct, along with bus and peripheral signals.

void eval() {

void Init() {
  AxiLite* bus = new AxiLite();

  // Init bus signals
  bus->clk = &top->clk;
  bus->rst = &top->rst;
  bus->awaddr = (unsigned long *)&top->awaddr;
  bus->awvalid = &top->awvalid;
  bus->awready = &top->awready;
  bus->wdata = (unsigned long *)&top->wdata;
  bus->wstrb = &top->wstrb;
  bus->wvalid = &top->wvalid;
  bus->wready = &top->wready;
  bus->bresp = &top->bresp;
  bus->bvalid = &top->bvalid;
  bus->bready = &top->bready;
  bus->araddr = (unsigned long *)&top->araddr;
  bus->arvalid = &top->arvalid;
  bus->arready = &top->arready;
  bus->rdata = (unsigned long *)&top->rdata;
  bus->rresp = &top->rresp;
  bus->rvalid = &top->rvalid;
  bus->rready = &top->rready;

  // Init eval function
  bus->evaluateModel = &eval;

  // Init peripheral
  uart = new UART(bus, &top->txd, &top->rxd,

As part of the last step, in the main function, you have to call simulate, providing it with port numbers, which are passed as the first two command-line arguments of the resulting binary.

uart->simulate(atoi(argv[1]), atoi(argv[2]));

Now you can compile your project with Verilator:

verilator -cc top.v --exe -CFLAGS "-Wpedantic -Wall -I$(INTEGRATION_DIR)" sim_main.cpp $(INTEGRATION_DIR)/src/renode.cpp $(INTEGRATION_DIR)/src/buses/axilite.cpp $(INTEGRATION_DIR)/src/peripherals/uart.cpp

make -j 4 -C obj_dir -f Vtop.mk

The resulting simulation can be attached to the Renode platform and used in a .repl file as a ‘verilated’ peripheral.

uart: Verilated.VerilatedUART @ sysbus <0x70000000, +0x100>
  simulationFilePath: @verilated_simulation_file_path
  frequency: 100000000

When you load such a platform in Renode and run a sample application, this is the output you’ll see. Keep in mind that the UART window displays data printed by the verilated peripheral.

You can also enable signal trace dumping by setting the VERILATOR_TRACE=1 variable in your shell. The resulting trace is written into a vcd file and can be viewed in e.g. GTKWave viewer.

Renode’s powerful co-simulation capabilities

Whether you are working on a new hardware block or you want to reuse the HDL code you have, Renode’s co-simulation capabilities allow you to test your IP in a broader context than just usual hardware simulation, connecting it to entire RISC-V, ARM or other SoCs even without writing any model.

You can use Renode’s powerful tracing and logging mechanisms to observe your peripheral’s behavior when used by an operating system of your choice, in an environment of your choice – be it a full-blown Linux-capable multi-core system or a small RTOS-ready SoC, or even a mix of those options.

Want to debug your driver via GDB but your target FPGA does not have a debugger connector? Or maybe it is just too small to contain the whole SoC you’d like to run? Perhaps you’d like to run a Python script to create a nice graph on each peripheral access? Renode has got you covered with all these features available out of the box.

If this sounds interesting, you can start using Renode’s co-simulation capabilities today or let us know about your use case directly so that we can potentially help you improve your simulation-driven workflow – all you need to do is get back to us at contact@renode.io.

If you’re new to Zephyr RTOS, please see our Getting Started Guide and check out our Contributor Guide. Or, you can join the conversation and ask questions on our Slack channel or Mailing List and follow #zephyrproject on IRC.

When 32 bits isn’t enough — Porting Zephyr to RISCV64

Written by Nicolas Pitre, Senior Software Engineer at BayLibre

SiFive HiFive Unleashed Board

This blog post originally ran on the BayLibre website last month. For more details about BayLibre, visit https://baylibre.com/.

Conventional wisdom says you should normally apply small microcontrollers to dedicated applications with constrained resources. 8-bit microcontrollers with a few kilobytes of memory are still plentiful today. 32-bit microcontrollers with a couple of dozen kilobytes of memory are also very popular. In the latter case, it is typical to rely on a small RTOS to provide basic software interfaces and services.

The Zephyr Project provides such an RTOS. Many ARM-based microcontrollers are supported, but other architectures including ARC, XTENSA, RISC-V (32-bit) and X86 (32-bit) are also supported.

Yet some people are designing products with computing needs that are simple enough to be fulfilled by a small RTOS like Zephyr, but with memory addressing needs that cannot be described by kilobytes or megabytes, but that actually require gigabytes! So it was quite a surprise when BayLibre was asked to port Zephyr to the 64-bit RISC-V architecture.

Where to start

The 64-bit port required a lot of cleanups. Initially, we were far from concerned by the actual RISCV64 support. Zephyr supports a virtual “board” configuration faking basic hardware on one side and interfacing with a POSIX environment on the other side which allows for compiling a Zephyr application into a standard Linux process. This has enormous benefits such as the ability to use native Linux development tools. For example, it allows you to use gdb to look at core dumps without fiddling with a remote debugging setup or emulators such as QEMU.

Until this point, this “POSIX” architecture only created 32-bit executables. We started by only testing the generic Zephyr code in 64-bit mode. It was only a matter of flipping some compiler arguments to attempt a 64-bit build. But unsurprisingly, it failed.

The 32-bit legacy

Since its inception, the Zephyr RTOS targeted 32-bit architectures. The assumption that everything can be represented by an int32_t variable was everywhere. Code patterns like the following were ubiquitous:

static inline void mbox_async_free(struct k_mbox_async *async)
        k_stack_push(&async_msg_free, (u32_t)async);

Here the async pointer gets truncated on a 64-bit build. Fortunately, the compiler does flag those occurrences:

In function ‘mbox_async_free’:
warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
k_stack_push(&async_msg_free, (u32_t)async);

Therefore the actual work started with a simple task: converting all u32_t variables and parameters that may carry pointers into uintptr_t. After several days of work, the Hello_world demo application could finally be built successfully. Yay!

But attempting to execute it resulted in a segmentation fault. The investigation phase began.

Chasing bugs

While the compiler could identify bad u32_t usage when a cast to or from a pointer was involved, some other cases could be found only by manual code inspection. Still, Zephyr is a significant body of code to review and catching all issues, especially the subtle ones, couldn’t happen without some code execution tracing in gdb.

A much more complicated issue involved linked list pointers that ended up referring to non-existent list nodes for no obvious reason, and the bug only occurred after another item was removed from the list. This issue was only noticeable with a subsequent list search that followed the rogue pointer into Lalaland. And it didn’t trigger every time.

The header file for list operations starts with this:

#ifdef __LP64__
typedef u64_t unative_t;
typedef u32_t unative_t;

So one would quickly presume that the code is already 64-bit ready. From a quick glance, it does use unative_t everywhere. What is easily missed is this:


static inline sys_sfnode_t *z_sfnode_next_peek(sys_sfnode_t *node)
        return (sys_sfnode_t *)(node->next_and_flags & ~SYS_SFLIST_FLAGS_MASK);

Here we return the next pointer after masking out the bottom 2 flag bits. But 0x3U is interpreted by the compiler as an unsigned int and therefore a 32-bit value, meaning that ~0x3U is equal to 0xFFFFFFFC. Because node->next_and_flags is an u64_t, our (unsigned) 0xFFFFFFFC is promoted to 0x00000000FFFFFFFC, effectively truncating the returned pointer to its 32 bottom bits. So everything worked when the next node in the list was allocated in heap memory which is typically below the 4GB mark, but not for nodes allocated on the stack which is typically located towards the top of the address space on Linux.

The fix? Turning 0x3U into 0x3UL. The addition of that single character required many hours of debugging, and this is only one example. Other equally difficult bugs were also found.

The unsuspecting C library

One major change with most 64-bit targets is the width of pointers, but another issue is the change in width of long integer variables. This means that the printf() family of functions have to behave differently when the “l” conversion modifier is provided, as in “%ld”. On a 32-bit only target, all the printf() modifiers can be ignored as they all refer to a 32-bit integer (except for “%lld” but that isn’t supported by Zephyr). For 64-bit, this shortcut can no longer be used.

Alignment considerations are different too. For example, memory allocators must return pointers that are naturally aligned to 64-bit boundaries on 64-bit targets which has implications for the actual allocator design. The memcpy() implementation can exploit larger memory words to optimize data transfer but a larger align is necessary. Structure unions may need adjustments to remain space efficient in the presence of wider pointers and longs.

Test, test and test

One great thing about Zephyr is its extensive test suite. Once all the above was dealt with, it was time to find out if the test suite was happy. And of course it wasn’t. In fact, the majority of the tests failed. At least the Hello_world demo application worked at that point.

Writing good tests is difficult. The goal is to exercise code paths that ought to work, but it is even better when tests try to simulate normal failure conditions to make sure the core code returns with proper error codes. That often requires some programming trickery (read: type casting) within test code that is less portable than regular application code. This means that many tests had to be fixed to be compatible with a 64-bit build. And when core code bugs only affecting 64-bit builds were found, fixing them typically improved results in large portions of the tests all at once.

OK, but where does RV64 fit in this story?

We wrote the RV64 support at the very end of this project. In fact, it represented less than 10% of the whole development effort. Once Zephyr reached 64-bit maturity, it was quite easy to abstract register save/restore and pointer accesses in the assembly code to support RV64 within the existing RV32 code thanks to RISC-V’s highly symmetric architecture. Testing was also easy with QEMU since it can be instructed to use either an RV32 or an RV64 core with the same machine model.

Taking full advantage of 64-bit RISC-V cores on Zephyr may require additional work depending on the actual target where it would be deployed. For example, Zephyr doesn’t support hardware floating point context switching or SMP with either 32-bit or 64-bit RISC-V flavors yet.

But the groundwork is now done and merged into the mainline Zephyr project repository. Our RV64 port makes Zephyr RTOS 2.0.0 a milestone release — it’s the first Zephyr version to support both 32-bit and 64-bit architectures.

Zephyr RTOS 2.0 Release Highlights

Written by Ioannis Glaropoulos, Software System Architect at Nordic Semiconductor and active member of the Zephyr Technical Steering Committee

Last month, the Zephyr Project announced the release of Zephyr RTOS 2.0 and we are excited to share the details with you! Zephyr 2.0 is the first release of Zephyr RTOS after the 1.14 release with Long-Term support in April 2019. It is also a huge step up from the 1.14 release, bringing a wide list of new features, significant enhancements in existing features, as well as a large list of new HW platforms and development boards.

On the Kernel side, we enhanced the compatibility with 64-bit architectures, and significantly improved the precision of timeouts, by boosting the default tick rate for tickless kernels.

Additionally, we are excited to welcome ARM Cortex-R into the list of architectures supported in Zephyr RTOS.

A major achievement in this release is the stabilization of the Bluetooth Low Energy (BLE) split controller, which is now the default BLE controller in the Zephyr RTOS. The new BLE controller enables support for multi-vendor Bluetooth v5.0 radio hardware with a single controller code-base, thanks to a layered modular architecture, where most of the controller code is hardware agnostic. The new controller also features improved scheduling of continuous scanning and directed advertising, and increased radio time utilization. The latter significantly improves the achievable communication bandwidth – among other use-cases – in BLE Mesh networking.

In the networking area, we introduced support for SOCKS5 proxy, an Internet protocol that exchanges network packets between a client and server through a proxy server. In addition, we added support for 6LoCAN, a 6Lo adaption layer for Controller Area Networks, and for Point-to-Point Protocol (PPP), which is used to establish a direct connection between two nodes. We, finally, added support for UpdateHub, an end-to-end solution for large scale over-the-air device updates.

A most sincere thank you to the more than 215 developers who contributed to this release. Not only did you add a wealth of new features during the merge window, you also rallied together as a community during the stabilization period across time zones, companies, architectures, and even weekends, to find and fix bugs, to make Zephyr 2.0 yet another great release! This release would not have been possible without your hard work!

To learn more about Zephyr Project please see our Getting Started Guide, join the mailing list or follow #zephyrproject on IRC.

Zephyr RTOS and Cortex-R5 on Zynq UltraScale+

This blog originally appeared on the Antmicro blog.

The UltraScale+, a high-performance FPGA SoC designed for heterogeneous processing with 4 Cortex-A53 cores and 2 Cortex-R5 cores, is often used in Antmicro’s projects. For certain complex devices, the combined processing capabilities of the US+ FPGA SoC’s heterogeneous cores are ideal – with the R5 cores used for real-time processing, the A53s for running Linux with non-critical software, and the FPGA used for dedicated accelerators for large amounts of data, such as high-resolution video. A good example is our fast 3D vision system, X-MINE, currently being deployed in several valuable mineral mines across Europe.

For such AMP applications however, only FreeRTOS and bare metal are available as options to be run on the R5 core by default. Coming from a software-oriented and standards-driven perspective, Antmicro likes to work with the Linux-Foundation backed, vendor-neutral and scalable Zephyr RTOS, of which we are a member – and so porting Zephyr to the US+ was an obvious choice.

Why is Zephyr a good choice

Dedicated for all but the most resource-constrained devices, Zephyr can target a variety of use cases in real-time applications with the US+’ Cortex-R.

Zephyr allows for easy handling of multiple configuration options, APIs and external components, and is well suited to structured application development. We’d worked with many AMP Linux+RTOS applications on various platforms, including ones executed in TEEs, which makes us especially sensitive to mixing programming styles and code architecture, which differ immensely between Zephyr and more traditional RTOS.

Another benefit of Zephyr is that it targets some very serious protocol and standard implementations, being e.g. the first open source RTOS to introduce TSN support – by way of Antmicro’s contribution. The rising popularity of TSN in automotive and aerospace applications, and just about everywhere else, could be a very important reason to start using Zephyr in your TSN-capable product.

The Zephyr port

Just recently initial support for Cortex-R has been introduced in Zephyr, providing basic context switching and interrupts, as well as adding a testing platform in simulation.

Antmicro’s contribution, released to GitHub today, introduces the support for a first real hardware platform. Our choice was the Enclustra Mercury XU1 system-on-module, which is often used by ourselves and our customers, encapsulating the complexity of the UltraScale+ MPSoC in an easily swappable module. Antmicro has a standard devkit based on this SoM which you could use to recreate this demo, but of course it should be possible to run it with minor tweaks on any Zynq UltraScale+ MPSoC device.

It also helps that Antmicro has been in charge of developing the entire OS-level software stack for all the FPGA SoC modules from Enclustra, basing on Buildroot/OpenEmbedded and our deep cross-area HW/SW/FPGA expertise which helped build a very easy to use interface for thousands of customers purchasing SoMs from this vendor. For simplicity, we will leverage this building block, called Enclustra Build Environment, in this note, although of course that’s not a strict necessity.

How to run a demo

Zephyr can be run on Cortex-R5 either from Linux running on Cortex-A53, or using a JTAG adapter. Here we will use Linux to have supervisor control (power on, load firmware, power off) over the remote processor.

Zephyr comes with a number of demos you can run on the Mercury XU1 SoM, and we’ll focus on the philosophers demo here. It implements a solution to the Dining Philosophers problem, which in computer science is considered a classic multi-thread synchronization problem.

Building the Linux environment for Cortex-A53

The setup requires the Enclustra Build Environment – a tool by Antmicro that enables easy and fast build of Linux with necessary bootloaders and firmware. It provides a simple ncurses-based GUI and command line interface to fetch and build U-Boot, Linux and a Buildroot-based root file system. At present, EBE supports 10 modules of the two SoC families: Zynq-7000 and Zynq-UltraScale+ including the Mercury XU1 module that we used. To get you started with EBE, refer to its online documentation.

In order to use the Cortex-R5, you have to load the firmware to the Tightly Coupled Memory of the processor. For this, a few additions in the original devicetree, that are related to the remoteproc device, are required.
The necessary devicetree parts can be found in this document (pages 15-16).

A ready to use devicetree file for Mercury XU1 module can be found in the Xilinx Linux repository.

Building the ‘philosophers’ demo in Zephyr

The application was built with Zephyr version 1.14.99 and ZephyrOS SDK version 0.10.2. The code is available on GitHub.

The philosophers demo can be built using the following bash commands:

Go to the zephyr repository:
cd zephyrproject/zephyr
Set up your build environment:
source zephyr-env.sh
Go to the location of the demo and build it:

Starting the Zephyr app from Linux

The Zephyr app should be copied to /lib/firmware in the root filesystem
By default, the driver for the remote processor is compiled as a module. It can be loaded into the kernel using the following command:

Load and start the application for Cortex-R5:

The image below presents the result of running the application.

Future development

In the near future, We plan to enable Inter Processor Communication between Linux running on the A53 core and Zephyr on the R5 core. Both Zephyr and Linux support OpenAMP (Open Asymmetric Multi Processing) which is a platform that implements homogenous API for asymmetric multiprocessing.

Currently, Zephyr has only one OpenAMP demo. It targets the LPC54114 SoC which features a Cortex-M4 core. Adding a demo with Zephyr running on R5 and Linux on A53 would be the very first of this kind, so it’s definitely a worthwhile endeavor.

Benefits of AMP on US+

Asymmetric multiprocessing (AMP) can be really useful to get the best of both worlds, allowing you to get predictable, real-time responses where they matter, while keeping the ease-of-use and richness of a standard Linux OS. We have built many FPGA and regular SoC based Linux devices which benefited from e.g. running Web-based control servers and GUIs on Cortex-A cores, while keeping a critical functionality running on another CPU core (be it Cortex-M, A or R) with an RTOS. And in terms of the programming experience, Zephyr is a good match for the Linux you’ll be running on the main application core.

If you want to develop a complex application for Xilinx’s Zynq UltraScale+ MPSoC, and could use HW-SW co-design capabilities of Antmicro, whether it is designing dedicated PCBs, creating well-structured and modern FPGA code and/or integrating this with Linux or Zephyr – or both, don’t hesitate to contact us at contact@antmicro.com.

What’s new in Zephyr – 2.0.0rc1

This is the 28 August 2019 newsletter tracking the final part of the Zephyr v2.0 development which was merged into the mainline tree on GitHub. The merge window is now closed and the project is working hard on getting a 2.0 release out on August 30.

Until the merge window opens again, only bug fixes, new documentation, and special cases (with TSC approval) will be merged.


This newsletter covers the following inclusive commit range:

  • 85bc0d2f Revert “gen_app_partitions.py: make generated/app_smem_*.ld files deterministic”, merged 27 June 2019
  • 4524035b release: Zephyr 2.0.0-rc1, merged 11 August 2019


  • Zephyr is now a 64-bit operating system (in the LP64 sense — the existing x86_64 support uses the x32 ABI, which e.g. has 32 bit pointers)
  • Support for 64-bit RISCV
  • Support for 64-bit “native POSIX”


  • Support for Bluetooth version 5.1
  • The new “split” link layer, which has been in development for over a year, was made the default setting. Certain low-resource boards, such as those using nRF51 SoCs, are still using the legacy L2.
  • Many, many bugfixes and hardening improvements


Zephyr’s usage of device tree has been completely rewritten. See this mailing list post for more details.


Support for the Cortex-R family of Arm cores was added. See commit c30a71df (“arch: arm: Add Cortex-R support”) for details. Cortex-R4 and Cortex-R5 support is included.


Support for the following new boards was added.

  • ARC nsim_hs (in several variants, e.g. nsim_hs, nsim_hs_smp, etc.)
  • Arm mps2_an521, an FPGA-based Cortex-M33 board
  • DesignWare ARC EM Software Development Platform, emsdp (there are many variants, such as emsdp_em4, emsdp_em5d, etc.)
  • DesignWare ARC HS Development Kit, hsdk
  • “Native POSIX” native_posix_64 (no additional board-specific documentation was provided)
  • Nordic nrf51_pca10031
  • STM32 nucleo_g071rb
  • STM32 stm32h747i_disco (in …_m4 and …_m7 variants for each core)
  • qemu_cortex_r5 (no board-specific documentation was provided)
  • QEMU RV64 qemu_riscv64


The following boards were removed, due to loss of vendor support (no links, since they’re gone now):

  • arduino_101_sss
  • quark_se_c1000_ss_devboard
  • curie_ble
  • arduino_101
  • quark_se_c1000_devboard
  • tinytile

This also involved removal of the issm toolchain.


  • Arm: GIC
  • eSPI API, with microchip XEC driver
  • ST: LPS22HH, LSM6DSO, STTS751, ST7780, ST7789V
  • STM32: IPM, SPI for STM32MP1
  • RTT-based UART
  • Si7006 (temperature/humidity)
  • Xilinx: UART and TTC for ZymMP PS



  • ARC HS
  • STMicro STM32G0
  • STMicro STM32H7

Other Interesting Happenings


  • Network management socket support (AF_NET_MGMT and related socket options)
  • Userspace support for various routines
  • Timeout support for connect()
  • sendmsg() support for both TCP and UDP
  • Configurable TLS credential loading for LWM2M
  • LWM2M IPSO objects for buzzers, on/off switches, push buttons, location, accelerometers
  • LWM2M connection monitoring object support
  • Configurable MQTT keepalive
  • Improvements and changes to router handling
  • PPP (point-to-point protocol) support
  • 6LoCAN support and canbus Ethernet translators
  • DHCPv6 support for OpenThread


  • A shell framework for testing ADCs
  • A new framework was added for managing AT-based modems; the ublox-sara-r4 driver was converted to it
  • Support for the littlefs file system
  • CPU clock frequency can now be obtained from device tree; this affected device tree bindings and drivers widely in the tree
  • Faster context switch via per-thread page tables on x86
  • User mode may now induce kernel oops on x86
  • Initial support for SMP on ARC
  • Initial support for a trusted execution environment (TEE) on ARC
  • Unaligned access on ARC
  • gmtime (and an inverse, timegm_r) support
  • Support for version 6 of the LittleVGL graphics library
  • A log “frontend” API, logging/log_frontend.h
  • An NVS backend for the settings subsystem
  • i.MXRT usdhc disk access support


  • Massive include cleanup and re-work: various files in zephyr/include/ were moved. For now, out of tree users can make use of CONFIG_COMPAT_INCLUDES to keep using the old include locations, but this will go away “eventually”.
  • Various improvements to the built-in printf format string handler
  • A much faster 10 kHz default “tick” rate is set when the clock driver is tickless, greatly increasing the precision at which future events can be scheduled, among other things.
  • Much simpler page table generation on x86
  • The build system now looks for an “app.overlay” device tree overlay file in a Zephyr application’s root directory
  • The build system toolchain abstractions now cover the exact tools used for objdump, objcopy, and more
  • Various fixes and enhancements to the sanitycheck script used in CI
  • New char2hex(), hex2char(), bin2hex(), hex2bin() helpers

Individual Changes

Patches by area (1303 patches total):

  • Arches: 166
  • Bluetooth: 103
  • Boards: 101
  • Build: 41
  • Continuous Integration: 18
  • Debugging: 3
  • Device Tree: 117
  • Documentation: 34
  • Drivers: 168
  • External: 8
  • Firmware Update: 3
  • Kernel: 39
  • Libraries: 44
  • Logging: 14
  • Maintainers: 5
  • Miscellaneous: 68
  • Modules: 6
  • Networking: 120
  • Samples: 66
  • Scripts: 37
  • Shell: 5
  • Storage: 30
  • Testing: 107

Arches (166):

  • 1ef7a858 arch: arm: allocate a wide stack guard for FP-capable threads
  • 6a9b3f5d arch: arm: allocate a wide priv stack guard for FP-capable threads
  • 360ad9e2 arch: arm: mpu: program a wide MPU stack guard for FP capable threads
  • f70093af arch: arm: rework stack fail checking for FP capable threads
  • 171272cf arch: arm: update thread options flag and CONTROL atomically
  • 890b9eba arch: arc: implement z_arch_switch to replace swap
  • e82004e2 arch: arm: mpu: minor fix to the start of the guard
  • a3a89ed9 x86: only use lfence if x86 bcb config enabled
  • 517ef0d6 soc: nxp:rt: Add HAS_MCUX_GPT flag
  • 050a715d soc: nxp: rt: Enable mcux gpt when counter is enabled
  • 9b03cd8b arch: arm: allow user to fall-back to MPU-based guards in ARMv8-M
  • 1ee01705 arc: use different load instruction
  • 502094b0 arm: mps_an521: Add support for the AN521 on MPS2+
  • 56940ac2 soc: arm: nxp: ke1xf: add watchdog support
  • d202d620 soc: nordic: nrf9160: add IPC capabilities
  • f3a1270f arch: arm: userspace: correct inline comment for bad syscalls
  • da735b9c arch: arm: userspace: don’t use the default stack in z_arm_do_syscall
  • 8a8e6a1e arch/x86: merge asm_inline_gcc.h with asm_inline.h
  • c7bc7a8c arch/x86: clean up model-specific register definitions in msr.h
  • 6f3009ec arch/x86: move include/arch/x86/asm.h to include/arch/x86/ia32/asm.h
  • c4175e91 arch/x86: move arch/x86/syscall.h to arch/x86/ia32/syscall.h
  • dff016b5 arch/x86: move include/arch/x86/arch.h to ia32/arch.h
  • 930e6af9 arch/x86: move include/arch/x86/segmentation.h to ia32/segmentation.h
  • a039bec3 arch/x86: remove arch-specific ffs.h, rely on compiler built-ins
  • ef4eb300 arch/x86: merge include/arch/x86/asm_inline.h into arch.h
  • c384c668 arch/x86: move include/arch/x86/sys_io.h to ia32/sys_io.h
  • 7f0ab527 arch/x86: move 32-bit linker script to ia32/ directory
  • 15dac5b6 arch/x86: update msr.h to be safe with CONFIG_X86_LONGMODE
  • 0325a3d9 arch/x86: eliminate include/arch/x86/irq_controller.h
  • f5b37506 soc: stm32f7: Fix fixup file for uart devices
  • 4f2e8734 arch: arc: fix the bug caused by hardware sp switch in interrupt
  • 7c0f4481 soc/arm: Increase nRF timer default to the cycle rate.
  • 05c8e056 soc/arm: Remove 1 kHz tick rate default for mcimx7_m4 and msp432p401r
  • 7c2d7d7b arch/x86: move arch/x86/include/mmustructs.h to ia32/mmustructs.h
  • b4316fef arch/x86: eliminate arch/x86/include/asm_inline.h
  • 589b86f5 arch/x86: remove swapstk.h and references to it
  • 3ff27468 arch/x86: eliminate cache_private.h
  • 0fb9d345 arch/x86: move exception.h to ia32/exception.h
  • aa6d5b43 arch/x86: refactor kernel_arch_data.h
  • f40fe36c arch/x86: refactor kernel_arch_thread.h
  • 820ea28f arch/x86: move kernel_arch_func.h to ia32/
  • e96c178e arch/x86: refactor offsets_short_arch.h
  • ef35fbcf soc/arm: Provide basic support for STM32H7 series
  • 141b6500 soc: stm32h7: Add support for Cortex-M4 core
  • e001c9aa arch: x86: remove unused NANO_ISF
  • fe03e39c arch: arc: build cache.c conditionally
  • 7ea00134 soc: arm: st_stm32: Add STM32G071 SoC series
  • 26c38a49 soc: arm: uart: Add STM32G0X UART support
  • 85f7aeec arch: x86: make z_arch_float_disable return -ENOSYS if not supported
  • ad2601ac soc: stm32wb: enable counter on STM32WB
  • 81503a20 arch: POSIX: Do not assume 32bit pointers
  • 7662ba11 soc: ke1xf: fix SPI device numbering
  • f16ea52e native_posix: Replace system timer driver
  • 74db5ce2 native_posix: fix hw_irq_ctrl_get_irq_status() conflicting type
  • 1f783d92 arch/posix: 64-bit build flags
  • 8c5c5a94 native_posix: introduce a native_posix_64 board configuration
  • 119714f3 soc: ti_simplelink: add macro to prevent double inclusion of soc.h
  • caa47e6c x86: allow user mode to induce kernel oops
  • cbc4d41c arch: arm: cleanup workaround for QEMU Cortex-M3
  • 2269339a soc: k64f MPU configured to always allow ENET
  • fece6907 arch: POSIX: Fix race with unused threads
  • 3df9636d native_posix: Remove reg property from uart node in dts
  • 65b7f8dd soc: snps_arc_iot: Get CPU clock frequency from DTS
  • 3b4ca2cf soc: sam3x: Get CPU clock frequency from DTS
  • 7094193f soc: sam4s: Get CPU clock frequency from DTS
  • 48023b88 soc: samd2x: Get CPU clock frequency from DTS
  • 8d6f6ba8 soc: samr21: Get CPU clock frequency from DTS
  • 6dca31d7 soc: same70: Get CPU clock frequency from DTS
  • 810d5e54 soc: k6x: Get CPU clock frequency from DTS
  • cd317bea soc: kl2x: Get CPU clock frequency from DTS
  • 8ceb0d29 soc: kwx: Get CPU clock frequency from DTS
  • 1161fdf2 soc: lpc54xxx: Get CPU clock frequency from DTS
  • f2d84f08 arch: xtensa: Get CPU clock frequency from DTS
  • a8b787f4 soc: msp432p4xx: Get CPU clock frequency from DTS
  • 01e2789b soc: nxp_rt: Get system clock frequency from DTS
  • 0b0e7eeb native_posix: Fix undefined macro warning
  • 352687df nxp_imx: Fix dts build error
  • 9d371d83 soc: stm32wb: Enable SPI on stm32wb
  • 3693f858 posix: Move sys/stat.h to minimal libc
  • 3a455391 posix: struct timespec: Move definition to sys/_timespec.h
  • 15a97091 posix: time.h: Add workaround for outdated newlib used by Xtensa
  • 1347bf9b posix: mqueue.h: Move O_CREAT and friends to fcntl.h
  • b7bb48ee posix: unistd.h: open() doesn’t belong here
  • 81245a01 arm: don’t use exc reason codes for internal state
  • 297ca069 arc: use z_fatal_error() for spurious IRQs
  • fe8d75ac arm: fix exception reason code for bad syscall
  • c9a4bd47 arm: dump registers on fatal exceptions
  • 4aa21750 soc: stm32wb: Enable PWM on STM32WB
  • e78b61b1 arch: arm: only allow OOPS and STACK_CHK_FAIL from nPRIV mode
  • f7a0dce6 arch/x86: remove support for CONFIG_REALMODE
  • cb412df7 x86: remove code for interrupt forwarding bug
  • 11d8f1a1 soc: k64f MPU configured to always allow USB
  • abac940c arch: arc: remove arc_exc_saved_sp used in exc handling
  • 0318e3a7 arch: arc: remove saved_r0/saved_sp used in firq handling
  • 733c11b1 arch: arc: use IRQ_ACT to check nest interrupt
  • 83fb969c soc: stm32mp157: add I2c support
  • dd7999d2 soc: nordic: Add HAS_HW_NRF_RADIO_IEEE802154 Kconfig option
  • 26b1e07a arm: Musca B1: Migrate to eFlash
  • dea40b63 Musca B1: MHU: IPM MHU dual core on V2M Musca B1
  • 46b7fd16 ARC: Fix selection of custom atomic ops
  • a312c7a7 arc: Preserve STATUS32 flags while resetting AE flag
  • 59470146 arc: Add support for unaligned access
  • f2fd40e9 ARC: Add support for ARC HS family of CPU cores
  • dca08c95 stm32: pinmux: spi: Opt for lower power consumption
  • 58e9a93f soc : arm : microchip_mec Fix MEC1501 SoC ECIA initialization
  • 8b04c7de arch: arc: optimize the float support
  • a7845b10 arch: arc: implement z_arch_float_enable
  • 908f9ec8 arch: arc: add handling for accl regs, r25, r30
  • 14db5589 arch: arc: typo fixes and comments clean up
  • bd709c73 x86: support very early printk() if desired
  • 3015e7b7 arch: arm: Move irq_init.c to cortex_m specific directory
  • eb9f23fd arch: arm: Move thread_abort.c to cortex_m specific directory
  • 808b953e arch: arm: Move fault.c to cortex_m directory
  • 505aebf5 arch: arm: Move nmi code for Cortex-R support
  • e7882905 arch: arm: Move prep_c.c to common location
  • 4cee0eec arch: arm: Move header files to common location
  • 1514c41c arch: arm: Move Cortex-M specific CPU defines
  • 48b4ad4b arch: arc: remove custom atomic operations
  • 1f4b5ddd riscv32: rename to riscv
  • 0440a815 riscv: make core code 64-bit compatible
  • 77db273f stm32: clock_control: Enforce HCLK prescaler value
  • f7fd1ff6 arch: arc: fix the offset generation of accl_regs
  • 76310f68 x86: make guard pages ro instead of non-present
  • 26dccaab x86: reserve room for per-thread page tables
  • ea201b20 x86: add debug functions for dumping page tables
  • fcd2c145 x86: add functions to get/set page tables
  • 0c3e05ae x86: report CR3 on fatal exception
  • 8014e075 x86: use per-thread page tables
  • 0add9252 x86: use a struct to specify stack layout
  • 3a967f92 soc: arm: st_stm32: stm32mp1: Add SPI support
  • 39ada716 riscv: isr.S: fix a missing lw to LR conversion
  • edb58ec4 soc: arm: st_stm32: add STM32F437XI
  • 612a608e arc: snps_nsim: Fix -mfpu compiler flag for NSIM_HS build
  • 1978022f soc: mchp: Add configuration option to switch timer drivers
  • 1f4232ad arch: arc: add basic arc connect driver support
  • 83dfe5ea arch: arc: add macros to get current cpu id
  • e11be425 arch: arc: add initial support of SMP
  • de7fb747 posix: Add headers related to BSD Sockets API
  • 453ee5e7 soc: riscv32: fix zero-riscy zephyr,flash node
  • df583f27 soc: nxp_imx: Add PWM config
  • c3b3aafa x86: generate page tables at runtime
  • 02629b69 x86: add prep_c function
  • ce3cc4f9 x86: ia32: do not use the first megabyte
  • ec5eb8f7 x86: add build assert that RAM bounds <= 4GB
  • 75bf3c53 riscv: freedom: rename RISCV32 to RISCV
  • 06a79cc8 arch: arm: cpu_idle: Remove unused functions
  • 3f5aae9d soc: arm: nrf9160: add missing NRF_UICR definition
  • e98ea27c soc: mchp: Perform OTP override for 32KHz internal oscillator
  • 67126be6 soc: arm: nxp: ke1xf: add FlexTimer (FTM) module support
  • c351492b riscv: toolchain arguments for a 64-bit build
  • 7f748259 riscv: add a qemu_riscv64 board
  • a3ee56f9 arch: arm: BusFault, NMI, and HardFault in Secure state when in test
  • 07575838 arch: arc: the caculation of exception stack is wrong
  • 484b9231 arch: arc: fixes the case triggering a cpu exception in user mode
  • 61d570bb arch: arc: add extra handling about exception raised in interrupt
  • db8ddaa4 arch: arc: fix on the reason of software-triggered fatal exceptions
  • 92096048 soc: nrf9160: Remove unsupported Kconfig option GPIO_AS_PINRESET
  • 47250b50 soc: microchip_mec: mec1501: Fixup GPIO dts defines
  • c30a71df arch: arm: Add Cortex-R support
  • eb9515ab arch: arm: cortex_r: Add memory barriers for register accesses
  • e439cfdf arch: arm: Add Cortex-R4 support
  • 8080a848 arch: arm: Add Cortex-R5 support
  • 929dc717 soc: arm: xilinx_zynqmp: Add qemu based SoC
  • cca39204 arch: arc: add initial support of ARC TEE
  • a97053d5 arch: arc: no need of default n for arc_connect
  • 36a56e7a arch: arc: fix a bug when CONFIG_SMP is enabled

Bluetooth (103):

  • f1c55865 Bluetooth: controller: better field names
  • fc2fcd10 Bluetooth: Add dedicated pool for HCI_Num_Completed_Packets HCI event
  • 0d9dab30 Bluetooth: Introduce separate pool for discardable events
  • 3379b641 Bluetooth: controller: Remove BT_HCI_RAW dependency
  • d5962628 Bluetooth: controller: Rename assert handler Kconfig title
  • ba894d8b Bluetooth: gatt: Fix DB corruption when adding/removing service
  • dbe80fd9 Bluetooth: GATT: Fix registering on static service area
  • 3aa57808 Bluetooth: controller: split: Add interface to get adv/scan handle
  • a02151eb Bluetooth: controller: split: Port radio event abort
  • 8b9920fd Bluetooth: GATT: Make use of Z_STRUCT_SECTION_ITERABLE
  • 4e8ddfd6 Bluetooth: L2CAP: Make use of Z_STRUCT_SECTION_ITERABLE
  • 6ce89204 Bluetooth: L2CAP: fix use of Z_STRUCT_SECTION_ITERABLE
  • 1c7eecb1 Bluetooth: drivers: ipm_st32wb: Fix compilation
  • 408703e8 Bluetooth: Mesh: Move under subsys/bluetooth/mesh
  • 6d272a17 Bluetooth: controller: Move ticker_id_prepare reset to early return
  • 17b05526 Bluetooth: controller: Fix assert during DLE
  • 3bddc20f Bluetooth: GATT: Fix segfault discover descriptors all UUIDs
  • 30d65809 Bluetooth: services: battery service enhancements
  • 029a66a1 Bluetooth: services: Move Heart rate service
  • eecc58fa Bluetooth: services: Move health thermometer service
  • 88f13eba Bluetooth: services: Move Current Time service sample
  • 26ca3682 Bluetooth: services: Move HID over GATT service
  • 99e8710a Bluetooth: services: Delete unused IPSP sample
  • 74dbd835 Bluetooth: Add BT_SMP_ENFORCE_MITM option
  • ab690443 Bluetooth: controller: Fix logging assert
  • 88a2fb87 bluetooth: fix GATT database hash done too many times
  • 803739cd Bluetooth: controller: split: Fix incorrect CU under latency
  • 479edc9b Bluetooth: shell: Fix argument count of bt clear shell command
  • 8401fda9 Bluetooth: controller: split: Fix continuous initiator
  • 0ac83180 Bluetooth: host: Move address string parsing to bluetooth API
  • f8b7f2ab Bluetooth: smp: Add LE SC OOB support for central side
  • e03bdba8 Bluetooth: shell: Add support for LE SC OOB authentication in shell
  • 3f576360 Bluetooth: controller: Fix PHY update proc symmetric rsp
  • dbb3c7f7 Bluetooth: controller: Fix packet timing restriction reset
  • 70a89876 Bluetooth: controller: Fix missing data length update event
  • fa4b4932 Bluetooth: controller: Fix post DLE/PHY update event length
  • b60fa21f Bluetooth: controller: Enable Fast Enc and RSSI features
  • 35bbf148 Bluetooth: controller: Add deferred procedure complete event
  • 6f2476ca Bluetooth: controller: Fix DLE during data transmission
  • e0965fa5 Bluetooth: controller: Update Bluetooth version to 5.1
  • e54a7ba3 Bluetooth: controller: hci: Add some documentation for encode_control().
  • 845064bb Bluetooth: controller: hci: Add user hooks.
  • ae8628d0 Bluetooth: controller: split: Fix packet timing restrict reset
  • a081e001 Bluetooth: controller: split: Fix PHY update proc symmetric rsp
  • da431f2a Bluetooth: controller: split: Handle zero length L2CAP start frame
  • 2809bdf8 Bluetooth: shell: Fix L2CAP connect parameters count
  • 04f351ac Bluetooth: controller: Fix cond compile of DLU event generation
  • 35dcab98 Bluetooth: tester: Enable Mesh Friend support
  • d4f1a5ab Bluetooth: tester: Enable GAP writable device name
  • 1074efd3 Bluetooth: tester: Update to recent conn param related changes in BTP
  • 8b27af58 Bluetooth: tester: Change RPA timeout
  • 60bf4da4 Bluetooth: controller: split: Conditional compile LL Rx pool use
  • f4eb03c5 Bluetooth: controller: Rename BT_LL_SW to BT_LL_SW_LEGACY
  • fb8166ad Bluetooth: mesh: Use legacy LL for microbit build
  • 6cf26b8f Bluetooth: controller: Make ULL/LLL split the default
  • c5c3a468 Bluetooth: controller: Settings for company_id and subversion_number.
  • 4fa08259 Bluetooth: Host: Fix advertiser state flags
  • 662a519a Bluetooth: ATT: Fix bt_att_req_cancel clearing outstanding request
  • 219bb6fe Bluetooth: GATT: Fix not canceling on unsubscribe
  • 29782a00 Bluetooth: GATT: Use atomic_t for subscribe flags
  • 20ccdab4 Bluetooth: controller: split: Fix pipeline prepare/resume loop
  • 0ea07d30 bluetooth: Fix an undefined behavior
  • c2ee00f7 Bluetooth: SMP: Fix peripheral security request with authenticated keys
  • 09c1c9e8 Bluetooth: controller: Decorrelate address generation from resolution
  • a56695db Bluetooth: GATT: Fix byte order for database hash
  • 1555ae8f Bluetooth: Keys: Fix logging assertions when enabling BT_DEBUG_KEYS.
  • 7f757e64 Bluetooth: Host: Move BT_DBG out of irq_lock
  • 2b84c726 Bluetooth: Settings: Fix generated identity not persistently stored.
  • 67c66bd0 Bluetooth: Host: Fix bluetooth address string length
  • c1a754f6 Bluetooth: Host: Print error codes in hex
  • 45da629b Bluetooth: Host: Fix wrong init address when controller resolved address
  • 7c603007 Bluetooth: Shell: Fix unregister GATT Metrics vendor service
  • 699436a3 Bluetooth: Host: Fix bug in creating connection with wrong own address.
  • bd89cc3f Bluetooth: Controller: Fix privacy advertiser connect peer address type
  • ccbb18c9 Bluetooth: SMP: Fix SMP identity distributing IRK for ID 0 always
  • 3a9173af bluetooth: controller: Revised ticker for improved conflict resolution
  • 87c3db9e Bluetooth: Host: Find by type should accept 128bit UUIDs
  • b5b7853a Bluetooth: L2CAP: Kconfig: Remove redundant BT_CONN dependency
  • b785ded9 bluetooth: host: Fix Kconfig error
  • 83b50f6b Bluetooth: Mesh: Fix rejecting invalid remote public key
  • 5a7a520e Bluetooth: GATT: Add BTP Discover All Primary Services command handler
  • a80ab8bc Bluetooth: SMP: Fix kernel crash if auth handler is NULL
  • 16c24ea8 Bluetooth: SMP: Use error code for OOB data not available
  • 50b28c01 Bluetooth: controller: Fix assert in RPA timeout for advertiser
  • 857bcd96 Bluetooth: shell: Fix directed adv parameter check
  • 5ef7eea6 Bluetooth: GATT: Kconfig: Remove redundant BT_CONN dependencies
  • 54d9ae45 Bluetooth: Host: Add identity addresses to conn info object
  • 7f1e67ba Bluetooth: shell: Add info command to print connection information
  • 90706a82 Bluetooth: shell: Handle error code of bt_conn_auth_cb_register
  • e242c250 Bluetooth: Shell: Use on-air addresses when checking for OOB data
  • 835b1c14 Bluetooth: Shell: Update sec level help text and validate input
  • a2531e16 Bluetooth: SMP: MITM security possible without IO when OOB data present
  • 0307f6cd Bluetooth: Host: Improve shell OOB handling
  • a463d117 Bluetooth: Host: Add whitelist support in Bluetooth Host API
  • 513244af Bluetooth: Shell: Add whitelist commands to shell
  • 4244b320 Bluetooth: conn: Warn when blocking with K_FOREVER
  • 6b0242cf Bluetooth: Fix deadlock caused by blocking on syswq
  • b563f444 Bluetooth: Dispatch internal callbacks using RX thread
  • e8b776a9 Bluetooth: mesh_shell: Disable controller filter
  • f6799ff5 Bluetooth: controller: split: Reduce event done queue size
  • e4ae7b88 Bluetooth: controller: split: Increase event start overhead time
  • d90f3db3 Bluetooth: controller: split: Increase pipeline size
  • 3e0e378d Bluetooth: controller: split: Fix pipeline for continuous events

Boards (101):

  • c129ac44 boards: dts: Cleanup some “ok” -> “okay”
  • f7697c43 board: remove useless config in Avenger96 board
  • 0ca1aaa7 boards: arm: Add support for nRF51 Dongle (PCA10031)
  • 77581fcd boards: mimxrt10xx: Add counter to supported list
  • 86bfa07c boards: twr_ke18f: document watchdog support
  • 154e0913 boards: dts: cleanup partition node names
  • 7044ce74 boards/arm: Remove 1000 Hz tick rate on STM32 boards
  • b142033b boards/arc: Remove tick rate settings for ARC hardware
  • afcb1ae7 boards: Add stm32h747i_disco, C-M7 target
  • 0fbf0c39 boards: stm32h747i_disco: Add m4 target
  • 79e4d0af boards: stm32h747i_disco: Provide doc
  • 737d8051 boards: arm: disco_l475_iot1: remove MCU slow down when using BlueRNG-MS
  • 9f6a2874 boards: arm: Add nucleo for nucleo_g071rb board
  • 14ac665b boards/arm: Add arduino_header support to nucleo f401re and f411re
  • 19699743 boards: add support for shields x-nucleo-iks01a3
  • e4a47974 nrf52_bsim: Add nrfx path to include path
  • f39f234d boards: match specified jlink swd speed when using pyocd runner
  • 3b1dc145 boards: shields: Introduce frdm_cr20a shield
  • aa8e13c3 boards: lpcxpresso55s69: Enable pyocd runner
  • c69081d7 boards: arm: nrf52840_pca10056/nrf52_pca10040: enable pyocd runner
  • c231988d boards: arm: nrf52840_pca10090: fix warning in board.c
  • 173202f3 boards: arm: nrf52840_pca10090: swap error for assert in board.c
  • 271c63b7 boards: particle_*: move DTS includes to dts subdirectory
  • 6bdb1b8b boards: arm: particle_*: uncomment cs-gpios in spi assignments
  • 094d5c27 boards: nucleo_wb55rg: Enable RTC
  • 748413cb boards: holyiot_yj16019: Fix radio capabilities
  • 7311e798 boards: hifive1: add aliases for pwm
  • 986df68b boards: hifive1: add supported peripherals
  • 912c88e9 boards: arduino_due: this board does support gpio
  • ee01d0ac boards: add supported devices to boards
  • bdc19752 arduino_due: do not build gpio_sam driver
  • 99d65296 boards: mark boards as supporting usb_cdc in DT
  • 1cba0421 boards: colibri_imx7d_m4: this board supports PWM
  • 4335cc28 boards: arm: mps2_an385: clean up redundant Kconfig setting
  • 089127c3 boards: arm: mps2_an521: add QEMU target and coverage
  • f8c37d56 boards: arm: mps2_an521: some trivial Kconfig fixes
  • cdc7b6d6 boards/qemu_x86: fix qemu memory map
  • 5a3f106b boards/qemu_x86: fix emulated program memory size
  • 63157529 boards: arm: Activate DTCM for STM32F7 boards with Ethernet
  • b3a042a0 boards/arm/mps2_an521: Add missing timer labels to dts
  • 2d9032e5 boards/arm/v2m_musca_b1: Add missing label to timer node
  • c1899930 boards: litex_vexriscv: Enable LiteEth driver
  • 0928b1dd boards: nrf52840_pca10059: Enable ADC in DT
  • e6131a63 nrf52_bsim: doc: Clarify how to fetch and compile BabbleSim
  • 80de227a disco_l475_iot1: Enable I2C3
  • 25d7a09a boards: nrf52840_pca10056: add arduino spi, uart and i2c nodes
  • ea86f9a1 boards/particle_*: correct spi flash description
  • 64eca420 boards/arm/nrf52840_pca10056: add alias for external flash
  • 0bed1e9a boards: cc3220sf_launchxl: Use SDK OpenOCD
  • 0a56e856 mec1501: fix dts build error
  • 9c8c3312 mec1701: fix dts build error
  • 9bf2e3fd boards: nucleo_wb55rg: enable SPI1 on nucleo_wb55rg
  • 749c2240 boards: stm32h747i_disco: Fix picture size
  • a4d9c3b4 olimexino_stm32: Enable I2C1
  • 491702a6 boards : arm : Add ESPI support for MEC15xx EVB
  • c78acb75 boards: stm32_min_dev enable I2C_2
  • bcd60189 boards: nucleo_wb55rg: enable PWM2 on nucleo_wb55rg
  • 5cf60a32 boards: Set support for serial port networking as netif:serial-net
  • e806bd97 boards: stm32f429_disc1: add i2c
  • a597c86c boards: remove galileo board
  • ffaba63b boards: remove arduino 101 and related boards
  • 578ae407 boards: remove quarl_se_c1000
  • 710ab470 boards: nucleo_wb55rg: Enable ADC
  • 27d12f7d boards: stm32mp157c_dk2i: add support of i2c5
  • 5c96de61 boards: stm32mp157c_dk2: add ic2 support for arduino connector
  • 4eb85176 boards: 96b_nitrogen: Remove ‘csn-pin’ property from SPI master
  • e9055ae7 board/shields: x-nucleo-iks01a3: add STTS751 configuration in overlay
  • 7da47e63 boards/nsim: Enable unaligned data acess for nSIM with simple ARC EM
  • 61f073a7 board/nsim: Add support of ARC HS cores in nSIM
  • dcb12d66 boards: mchp: Fix MEC1501 dts warnings in eSPI
  • 1f8f390c boards: mec15xxevb_assy6853: Documentation improvements
  • 98a33991 boards: mec15xxevb_assy6853: Update debug control flag
  • 1593e52d m2gl025_miv: workaround for issue #17851
  • f8111840 board: efm32hg_slstk3400a: Add storage partition
  • c9553561 board: efm32pg_stk3402a: Add storage partition
  • 5ccdd18a board: efm32wg_stk3800: Add storage partition
  • d9c4d0ac board: efr32mg_sltb004a: Add storage partition
  • 6f0a2b49 board: efr32_slwstk6061a: Add storage partition
  • c12688ec boards: stm32h747i_disco: Enforce same clock configuration on both …
  • b8372522 boards: stm32h474i_disco: Fix m4 core sys clock
  • b7ee23bc nrf52_bsim: Minor fix in time coversion
  • 57a166ac boards: arm: stm32mp157c_dk2: Add SPI support
  • 27a5cb60 boards: nucleo_wb55rg: Add link to reference manual
  • 882503f9 board: mec: Select cortex-M systick-based driver
  • 2e1bed51 boards: mimxrt1064: Add PWM support
  • 5533da9a boards: mimzzrt1064_evk: Add pwm-led0 alias
  • 8d52f4ab boards: arm: 96b_avenger96: Add onboard LEDs
  • f71a0f40 boards: arm: 96b_avenger96: Enable Mailbox support
  • bcba284e boards: arc: emsdp: add basic emsdp board support
  • 80ca3e06 board: emsdp: doc update and bug fixes
  • 5be5b00e boards: nrf9160_pca10090: add default uart2 pins
  • 7b9ad2c7 boards: arm: mps2-an521: fix number of MPU regions in DTS
  • b711c1ef boards: arm: mps2_an521: adding support for qemu
  • 9fae4b03 boards: arm: twr_ke18f: add PWM LEDs
  • d075c916 boards: arm: mps2_an521: force secure firmware image by default
  • 6dd94127 boards: qemu_cortex_r5: Add qemu test board for the Cortex-R series
  • 5bb1f4f2 boards: emsk: add initial support of normal/non-secure application
  • 1e2d4227 boards: nsim: add initial support of normal/non-secure application
  • dbc29fe7 boards: hsdk: add initial support of ARC HS Development Kit
  • 408433d5 board/nsim: Add support of multi-core ARC HS platform in nSIM
  • 13cf5c22 boards: nsim: disable CONFIG_SMP by default for nsim_hs_smp

Build (41):

  • 85bc0d2f Revert “gen_app_partitions.py: make generated/app_smem_*.ld files deterministic”
  • eefea9da gen_app_partitions: deterministic _and_ decreasing app_smem_*.ld
  • e217c1b1 cmake: remove spurious IS_ABSOLUTE logic in zephyr_sources()
  • e53c0d0e cmake: toolchain_cc_imacros: don’t use the long argument form
  • b86aa657 CMakeLists.txt: parse zephyr_stdint.h after compiler specific flags
  • 635491b6 toolchain/xcc: augment compiler provided macros to match gcc and clang
  • d017a5ab cmake: Toolchain abstraction: Allow for out-of-tree cmake includes
  • a1e25b91 cmake: check ZEPHYR_SDK_INSTALL_DIR is set
  • b8d4a77e size_report: Don’t crash when observing stripped symbols
  • c6864dbe Kconfig: Kconfig support i.MX RT USDHC
  • 8437ab10 cmake: DT: Add support for overlays that reference board-provided dtsi
  • d6426226 build: dts: also look for application specific dts overlay
  • b4078c55 toolchain/zephyr: invoke ar with -D for deterministic .a files
  • 50b78f08 cmake: Remove check_link_map.py
  • 23716795 Revert “toolchain/zephyr: invoke ar with -D for deterministic .a files”
  • 3ad1f27e cmake: Encode and decode in UTF-8 in build system
  • e51c2095 linker: move scripts generated code at the beginning of .text
  • be2c9373 target_relocation.cmake: fix spell typo
  • b4c5f4b3 linker: Add dtcm section for Cortex M7 MCUs
  • 51bc0a06 linker: Make alignment size for sw_isr_table configurable
  • 1630292e cmake: Instruct Python to use UTF-8 on Windows
  • 64bdad20 cmake: Add serial port for ppp in qemu
  • e0569ac2 cmake: Toolchain abstraction: Abstract compiler flag for add debug info
  • d4310c07 toolchain: remove issm support
  • 2bdfede0 cpp: support for 64-bit constructors
  • aed9ea79 cmake: Toolchain abstraction: Abstraction of binary tools, foundation.
  • c41e712c cmake: Toolchain abstraction: Abstraction of print memory usage.
  • 51634cd6 cmake: Toolchain abstraction: Abstraction of binary tool, objcopy.
  • 0760a53d cmake: Toolchain abstraction: Abstraction of binary tool, objdump.
  • 919df016 cmake: Toolchain abstraction: Abstraction of binary tool, readelf.
  • 9336e3ee cmake: Toolchain abstraction: Abstraction of binary tool, strip.
  • 209a9104 cmake: compiler: gcc: Explicitly spell out stddef.h and limits.h
  • 6228a18d cmake: Support SDK versions more broadly
  • 34180d37 kconfig: Fix nrf91 NONSECURE dependency
  • a3ddc09a build: west: Update the error message when not in west dir
  • 54ce5eb3 build: west: Change the remote of civetweb to upstream
  • 1c6a7d78 CMakeLists.txt: Call toolchain_cc_nostdinc() at the end
  • 9d326192 cmake: Bump min version to 0.10.2
  • d78509e7 cmake/toolchain: Change to use riscv64 toolchain
  • 7daf42b1 Revert “toolchain: gcc: Remove ref. to undefined sym. CONFIG_ISA_ARM”
  • b602e383 cmake: emu: Allow overriding the qemu binary

Continuous Integration (18):

  • 649368c0 sanitycheck: Record time used in BinaryHandler
  • b91f3749 sanitycheck: Minor optimization in BinaryHandler
  • d62e2296 sanitycheck: extend coverage timeout
  • 9f4f57ee sanitycheck: don’t multiply CPU count
  • 095b82a3 sanitycheck: correct timeout extension comment
  • 8047a6f4 sanitycheck: make coverage reports easier to do
  • 1578ef71 sanitycheck: workaround file limits
  • 9e57338e sanitycheck: fix –jobs help message + other cosmetic fixes
  • d7ca903b sanitycheck: replace cmake -H “not meant for public use” with -S
  • e5cedcae sanitycheck help: how to spot tests that were not run and just built
  • 49cf4867 sanitycheck: select gcov tool based on target
  • c7633de0 sanitycheck: fix priority of –extra-args=CONFIG_ over testcase.yaml
  • 421ce46f sanitycheck: add west-runner parameter
  • 4ca54390 sanitycheck: handle west-flash dependency for device-testing
  • 010c609b sanitycheck: update sections whitelist
  • f8908cd0 sanitycheck: Add missing section to whitelist
  • 81ef42d2 sanitycheck: simplify fault detection
  • 90f5859f ci: Update to using SDK 0.10.2

Debugging (3):

  • 74da4393 debug: tracing: Rewrite assert on current_thread in CPU stats module
  • 5fbf05ce debug: Do not use CONFIG_SYS_CLOCK_HW_CYCLES_PER_SEC
  • 4fc2445d debug: tracing: Fix compilation error

Device Tree (117):

  • 24b2b594 dts: Rename PWM to PWMS
  • bb324616 dts: remove unused clock-controller property
  • 12589d6b dts: remove unused clock-controllers property
  • ca8ca03c dts: bindings: Add bindings for ARM, ARC, Xtensa CPUs
  • fb898e35 dts: bindings: Add fixed-clock DTS binding
  • 284bc9d9 dts: Rename SW._GPIO_* -> DT_ALIAS_SW._GPIOS_*
  • 304c5fd1 dts: arm: nxp_rt: Add GPT nodes
  • db167c60 dts: Rename LED._GPIO_* -> DT_ALIAS_LED._GPIOS_*
  • 8859089d dts: lpc55s6x: Fix SRAM-X address
  • 1453d0c4 dts: nxp_imx6sx_m4: fix cpu reg num
  • f7b02577 dts: nios2: fix flash node name
  • 799366a9 dts: silabs: fix gpio address
  • ecd23f4f dts: STM32H747 basic device tree description
  • d424385d dts: stm32h7: Add dtsi for m4 core
  • f81176aa dts/arm/st: l0: Fix gpioe reg address
  • 45eb589c dts: remove unused clock-controllers property #17122
  • 8977d5b3 dts/bindings: Clarify #cells in template
  • 22806d2d dts/bindings: Fixup some clock bindings to match reality
  • e5d83808 dts: Fix handling of fixed-clock
  • 77d143ac dts/bindings: Add missing clock-cells property
  • 81072b53 dts/scripts: mark all non DT_ prefix deprecated
  • 46106ece dts/sdhc: support mmc dts and usdhc dts
  • 6a0fcf1b dts: arc: fix cpu num
  • 8e1d3f33 dts/bindings: Remove generation from binding
  • 30ac1647 dts: stm32l4: Fix USB phy node for stm32l432 and stm32l452
  • e1e5b6a7 dts: wb: Enable RTC
  • 1c6952c4 dts/extract: Mark DT_FLASH_AREA_*_LABEL defines as deprecated
  • f79de4c0 dts/bindings: Remove unused property num-irq-priority-bits
  • 90badd53 dts: posix: Added dummy serial current-speed entry
  • 108a4b38 dts: nxp: mimxrt: Add missing jedec-id property to flash nodes
  • d4b33813 dts: bindings: Remove dead ‘label:’ keys on properties
  • da026347 dts/bindings: remove stale cell_string
  • fbb21bee dts/bindings: Remove unused required dts props from st,stm32-can
  • 8e6266ad dts: bindings: Do not require a ‘reg’ property for snps,arcv2-intc
  • 6e8c155c dts/binding: Move clocks into base.yaml
  • 3b9853d6 dts: bindings: Make ‘clocks’ optional in i2c.yaml
  • 9d02aa03 dts: bindings: Make ‘clocks’ optional in pwm.yaml
  • c023495d dts: bindings: Make ‘clocks’ optional in adc.yaml
  • 9a3f674a dts: bindings: Make ‘clocks’ optional in nxp,{imx-uart,lpc-usart}.yaml
  • 7d56fc35 dts: Add information about CPU frequency to the cpu nodes
  • e4bd11b3 dts: Add information about system bus frequency to the dts
  • a69f070b dts/bindings: remove required clock from intel,qmsi-watchdog
  • 53d3e37b dts/bindings: Mark rtc prescale as optional
  • ba490510 dts/bindings: Fix ‘required’ for interrupts
  • f7bef118 dts/bindings: Mark uart current-speed as optional
  • 333ca642 dts/bindings: Remove generation property from st,stm32-usb
  • 5071eeec dts: Remove unused virtualcom device node from dts
  • ad183ce6 dts/bindings: Mark ‘rdc’ as optional in nxp,imx-gpio
  • fbfb56b3 dts: stm32f7: Add Device Tightly Coupled Memory
  • 33c9acf1 dts: bindings: nxp,kinetis-usbd: Make clocks property optional
  • b9ef4a25 dts: bindings: simplify !include in jedec,spi-nor
  • fd62a502 dts/bindings: Fix category field for microchip,xec-i2c
  • ad3ee997 dts: Add missing spi-max-frequency for mimxrt/nxp/hifive1/qemu_riscv2
  • 4bf7ceaa dts: bindings: Do not require ‘interrupts’ on STM32 GPIO nodes
  • 3c8f8cb2 dts/arm/microchip: Mark uart & i2c nodes as disabled by default
  • e7ed4796 dts: bindings: fixed-clock: Make label optional
  • 1bb59bb6 dts: add label property to all jedec,spi-nor nodes
  • efae1a5e dts: riscv32: rv32m1: Disable unused interrupt multiplexers
  • 0ec0c848 dts: bindings: Remove unused ‘version’ field
  • 2224d55c dts: bindings: Remove some YAML document separators
  • 1e646486 dts/bindings: Remove version from litex,eth0.yaml
  • ce4aa113 dts/bindings: Make pwm-leds label optional
  • ebd34909 dts: riscv32: fix reg-names for liteeth
  • fa10a964 dts/spi-nor: use bytestring for JEDEC ID
  • 7f94e711 cmake/dts: Remove import of CONFIG_ prefixed symbols from dts
  • bcd5f321 dts: wb: Enable spi on stm32wb
  • 55684e03 dts/arm/st: Remove nodes i2s4, i2s5 and i2s6
  • 3837a545 dts/bindings: Cleanup microchip,xec-rtos-timer binding
  • 24df2288 dts: espi: Add dts bindings for eSPI
  • 1810d103 dts: espi: mchp: Add dts bindings for XEC eSPI driver
  • fff240e7 dts: bindings: Clean up microchip,xec-espi.yaml and espi.yaml
  • 18d35cc5 dts/bindings: Cleanup st,stm32-ipm-mailbox binding
  • 38ed3e01 dts: wb: enable PWM on STM32WB
  • 62d57414 dts: Add new DTS/binding parser
  • 850e3626 dts: bindings: Add lots more documentation
  • 0294f826 dts: bindings: Rename binding template to binding-template.yaml
  • 4e7863dc dts: Make instance defines consistent
  • 2e3bd4b5 dts: arm: Remove leftover zephyr,irq-prio property from CC2650
  • 25bca3ce dts: posix: Fix ‘current-speed’ property typo
  • 8e62304b dts: wb: enable ADC
  • 3fbe2828 dts: nordic: nrf9160: Remove redundant aliases
  • c874e1bd dts/nxp: Fix dtc warning with spi device node name
  • 583226a8 dts: nxp: Remove unused ‘clock-source’ properties
  • 7dbc318a dts: arm: nrf9160: minor typo fix
  • 2b614112 dts: nxp: Remove clk-* properties from nxp,kinetis-sim nodes
  • 0408dc31 dts: nxp: Remove unused ‘reload-counter’ properties
  • 34dcdf1d dts: nxp: Remove unused ‘start-on-boot’ properties
  • 8ed7cb89 dts: nxp: Remove unused ‘prescaler’ properties from watchdog nodes
  • 5d0db517 dts: riscv: Add sifive,plic-1.0.0 binding and fix riscv,ndev values
  • d841908e dts: bindings: st,stts751-i2c.yaml: (FIX) Remove unused ‘version’ field
  • b52b1b22 dts: arm: Remove device_type = “memory” from SRAM nodes
  • a5ae0daa dts: arc: Remove device_type = “memory” from {d,i}ccm nodes
  • 3d4fa575 dts: riscv: Remove device_type = “memory” from SRAM nodes
  • 01d11d50 dts: nios2: Remove device_type = “memory” from SRAM nodes
  • 630e0c7a dts: arm: nxp: rt: Add PWM nodes
  • ade6cc63 dts: pwm: nxp: Fixup bindings and dtsi so they build
  • 15700ff4 dts/bindings: Change clock type to compound
  • 27d8a639 dts/bindings: Remove unused snps,num-irq-priority-bits prop
  • 6e5e1e02 dts: Replace more status = “ok” with status = “okay”
  • acf276f1 edtlib: Check that ‘status’ has one of the values from the DT spec.
  • e328e56b dts/gen_defines.py: Use err() instead of _err()
  • c0c8dd1b dts: edtlib: Improve naming in _check_binding()
  • f7f0e0ad dts: edtlib: Simplify ‘category: optional’ code in Device._prop_val()
  • 4985c214 dts: edtlib: Shorten _init_{interrupts,gpios}() a bit
  • 75391c4f dts: edtlib: Shorten some license headers
  • 2be13ca8 dts: bindings: pwm: nxp: Fix missing copyright/license
  • 87bf1a4e dts/bindings: Remove #{addr,size}-cell props from st,stm32-timers
  • 61e4b069 dts/bindings: Mark #clock-cells as optional in nxp,kinetis-sim.yaml
  • ca8d038e dts/bindings: add ‘#cells’ to nrf-saadc
  • 786ecf62 dts: Add base interrupt-controller to dts bindings
  • d2c758b4 dts: Add base gpio-controller to dts bindings
  • 1fe41c16 dts/bindings: Add gpio-nexus base binding
  • 7cd49857 dts/bindings: Add base clock controller to dts bindings
  • 17f12ce2 dts/bindings: Add required #pwm-cells property to pwm base
  • 48c7cdb0 dts/bindings: Update pwm base binding
  • 2c5fb405 dts/bindings: cleanup partition binding
  • 226b3381 dts: nxp: cleanup remove system-clock-frequency

Documentation (34):

  • 0bae5a48 doc: reference: float: document ARM thread tag recommendation
  • 8f1780f6 docs: make doxygen happy with new locations
  • fb4d9c04 doc: exclude internal symbols
  • eee564fb doc: add space after cmake -Bdir and ninja -Cdir options
  • f3c624c8 doc: update coverage documentation
  • 26b94e76 doc: Bluetooth: Update GAP ICS to 7.4.1
  • 400ab8dc doc: Bluetooth: Update GATT ICS to 7.4.1
  • ad4035bc doc: Bluetooth: Update L2CAP ICS to 7.4.1
  • 7c5f641d doc: Bluetooth: Update SM ICS to 7.4.1
  • e5fd1c87 doc: Bluetooth: Add ICS for Mesh Profile
  • c8184061 doc: Bluetooth: Update PICS to ICS
  • bddb3f36 doc: add custom logger frontend description
  • 9058ef16 doc: move schedling doc to its own section
  • 2a1682e7 doc: scheduler: add diagrams illustrating scheduler
  • 15107b03 doc: boards: cc3220sf_launchxl: update OpenOCD instructions
  • c7d7b8cd doc/networking: Update network management part relevantly
  • 51fdef56 doc: getting_started: Add CMake snap installation option
  • ad5791cf doc: getting_started: Document DTC version installation
  • 6c736523 doc: getting_started: Remove Linux distro versions
  • 9b13d515 doc: Consolidate Python and pip documentation
  • 271eb008 doc: Minor fixes to the Getting Started guide
  • c9515b4f doc: net: ppp: Add PPP documentation
  • da6b49b4 doc: minnowboard: add grub docs
  • 4620bbf0 doc: dts: Add more information to .dtsi example
  • a39f5a8c doc: add doc of arc floating point support
  • c635409c doc: guides: tools: Fix URL to nRF Command-line tools
  • 23d863f6 doc: add doc home link in left nav
  • 6846de68 doc: add a release notes page for west
  • 247047bf doc: move runner documentation out of west-apis.rst
  • 13823b6b doc: Update Slack invitation link
  • c1864b44 doc/reference: add FCB page
  • 9fb1fd4d doc: sdk: Update docs to use SDK 0.10.2
  • a8d17437 doc: getting started: Use -U when installing west
  • 413f1be4 doc/reference/storage/settings: fix misleading examples

Drivers (168):

  • 6b40394d drivers/usb/device: stm32: Remove reference to unsupported low speed
  • ee040e9e drivers: rtc: Adapt to new counter API
  • 41bfeb54 drivers: counter: Add NXP MCUX GPT counter driver
  • c661cc6c drivers: clock_control: nrf: Add option to use external LF source
  • f1b349aa drivers: sensor: temp_nrf5: Code cleanup
  • 2b6b065d drivers: can: stm32: Remove STM CAN_Init
  • 82a1661c drivers: can: stm32: Change TX priority to chronological order
  • d644007c drivers: can: stm32 Add error message for buffer overflow
  • fc23fd19 drivers: can: stm32: Update enable driver help message
  • 7cb92552 drivers: watchdog: mcux_wdog32: add driver for the NXP Kinetis WDOG32
  • 2d537f49 usb_dc_stm32: Don’t update ret_bytes if send fails in usb_dc_ep_write()
  • 0baf72e1 drivers/timer/nrf_rtc_timer: Fix round-up for rapid tick rates
  • 17051e42 drivers/sensor/hp206c: Clarify tick rate warning
  • f4ff0a66 driver: timer: loapic_timer: fix compile issue
  • 9dbdd81a driver/sensor: add LPS22HH sensor support
  • 72ae24d8 driver/sensor: lsm6dso: Add support
  • 4b5095d3 drivers/interrupt_controller: stm32: Fix table irq reading
  • 3c8e28d1 drivers: counter: Fix references in the doxygen comment
  • 3338c287 drivers: ipm_console: increase coverage stack size
  • fc57ea8d drivers: ssd1673: rename driver to ssd16xx
  • fdc0874f drivers: ssd16xx: add defines to resolve coding style issues
  • 8c6070d8 drivers: stm32: Fix leading space warnings
  • 2805ea91 drivers/clock_control: STM32H7 support
  • 80278f7a drivers/interrupt_controller: stm32: Add support for stm32h7
  • d185ec4c drivers/gpio: Add support on STM32H7 series
  • fda2ea72 drivers/serial: stm32: Add support for STM32H7 series
  • 4d7a5806 drivers/pinmux: stm32: Add UART headers for STM32H7
  • edd2b44a drivers/clock_control: stm32h7: Disable configuration for CM4 core
  • 0914f103 drivers/gpio: stm32: Add semaphore on gpio_configure
  • d44f6317 drivers: pinmux: stm32f3: Add SPI3, USB support of STM32F302x8
  • 3704e8b8 drivers: bluetooth: hci: spi: Handle when the buffer is empty
  • 38cc23a7 drivers: usb_dc_nrfx: do not use NRF_USBD_EP_NR_GET in ep_is_valid
  • cb375059 drivers: usb_dc_nrfx: check the device state before disable or uninit
  • eb57607c drivers: usb_dc_nrfx: validate pointer in usb_dc_ep_is_stalled
  • a1d815ea drivers: flash: stm32: Fix insufficient wait time
  • 04b91579 drivers: usb_dc_nrfx: use REQTYPE_GET_DIR and REQTYPE_GET_TYPE macros
  • 226a429c drivers: usb_dc_nrfx: fix style issues
  • 6904a868 drivers: usb_dc_nrfx: cleanup USB_NRFX_EVT_QUEUE_SIZE
  • 7f118be6 drivers: usb_dc_nrfx: remove unused EPSTATUS defines
  • 1e9a53e5 drivers: usb_dc_nrfx: make macros names less confusing
  • bfc2ea6d drivers: flash: Add STM32G0XX flash support
  • 624c5663 drivers: clock_control: Add STM32G0XX clock support
  • da48451a drivers: pwm: Add STM32G0XX pwm support
  • 9b2025c8 drivers: pinmux: Add STM32G0X pinmux support
  • dd3ee06a drivers: gpio: Add STM32G0X pinmux support
  • f9d2a416 drivers: interrupt_controller: Add STM32G0X interrupt support
  • a37fce61 drivers: counter: Add optional flags to alarm configuration structure
  • 1baae96a drivers: counter: Extend set channel alarm flags
  • c016cd2c sensor: lis2dh: Fix stray use of old DT define
  • 6ff5ac05 usdhc/pinmux: configure pinmux of usdhc on mimxrt1050 evk
  • 27d8329f clock/usdhc: Enable clock of USDHC of i.MXRT
  • 388460ac drivers: eth_enc28j60: update for dts change to local-mac-address
  • ec2ba8d9 drivers: eth_mcux: update for dts change to local-mac-address
  • 7f00f38d drivers: eth_stellaris: update for dts change to local-mac-address
  • f8424c6d drivers: counter: enable counter for STM32WB
  • 5d2002d3 drivers: ieee802154_nrf: Fix SoC header inclusion
  • aca5edf1 drivers: pwm: sifive: fix DTS defines
  • 437692c0 drivers: pwm: imx: replace deprecated DTS macros
  • 23992a06 drivers: nrf: Add power management to nrf SPIM driver.
  • f4b999a3 drivers: nrf: Add power management to nrf SPI driver.
  • 914daf4e drivers: nrf: Fix PM for TWI and TWIM in case of multi instance
  • 743f3dba drivers/flash: add read alignment requirement comment
  • 474c99c9 drivers: usb/stm32: use dts information to populate clock settings
  • 891ccdc1 drivers/flash/flash_simulator: switch to use DT_FLASH_SIM labels
  • 428c281b drivers/flash/flash_simulator: fix flash size calculation
  • 0da4432b usb/stm32: Fix missing clock property for usb on stm32f103Xb
  • 9d428588 drivers/counter_cmos.c: Add config struct
  • 0fbaaa13 drivers: ethernet: stm32: Put DMA buffer to DTCM section
  • 42d18990 driver: display: Clarified blanking API
  • 00d6fe49 drivers: ssd16xx: Removed blanking support
  • 400cafe7 drivers: sdl: Added support to set def pix format
  • 35edfedf drivers: ethernet: Add LiteEth driver
  • f69e194e drivers: usb_dc_nrfx: Use dedicated work queue for handling ISR events
  • 710f9e7b sensors: lis2dh: support high resolution mode
  • 0f52c713 i2c_ll_stm32_v2: Set slave_attached to false on slave unregister
  • aa363178 drivers: i2c_bitbang: Do not use CONFIG_SYS_CLOCK_HW_CYCLES_PER_SEC
  • 129a23be drivers: pwm_qmsi: Do not use CONFIG_SYS_CLOCK_HW_CYCLES_PER_SEC
  • 0c0c0d93 drivers: timer: Do not use CONFIG_SYS_CLOCK_HW_CYCLES_PER_SEC
  • 8f22b16b drivers: i2c_cc32xx: Get clock frequency from DTS
  • 0509d063 drivers: beetle_clock_control: Get CPU clock frequency from DTS
  • 4a543e13 drivers: spi_dw: Get clock frequency from DTS
  • e8588057 drivers: uart_cmsdk_apb: Get clock frequency from DTS
  • 60314555 drivers: uart_pl011: Get clock frequency from DTS
  • 170e93bb drivers: uart_cc32xx: Get clock frequency from DTS
  • 69bbcec7 drivers: uart_msp432p4xx: Get clock frequency from DTS
  • dc44cb00 drivers: uart_qmsi: Get clock frequency from DTS
  • 9e9f5cec drivers: uart_stellaris: Get clock frequency from DTS
  • 08f8abcf drivers: uart_cc13xx_cc26xx: Get clock frequency from DTS
  • a901e32a drivers: wdog_cmsdk_apb: Get clock frequency from DTS
  • 70d61cdd drivers: adc_stm32: Get clock frequency from DTS
  • 2a590d3f drivers/spi_nor: remove configurability of page/sector/block sizes
  • 50550e02 drivers/spi_nor: remove write-block-size devicetree property
  • eb3858cb drivers/spi_nor: allow application control of flash layout page size
  • 660149b5 drivers/spi_nor: fix writes across page boundaries
  • 794e0109 drivers/spi_nor: enable logging API
  • bdaab8cf drivers : timer : Add MEC1501 32KHz kernel timer driver
  • 32a3ae8a drivers: spi: Enable SPI on stm32wb
  • 3f58038c drivers: pinmux: enable SPI pins on stm32wb
  • 6a01db3b drivers: i2c_ll_stm32_v1: add timeout
  • e3f32948 API: espi: Add API for Enhanced Serial Peripheral Interface
  • a7e44ebf drivers: espi: Add Kconfig for eSPI driver
  • 64c334f0 drivers: espi: Add driver for microchip XEC family
  • 725a3c9a drivers: introduce ipm driver for stm32
  • d9add0a6 ipm: Add support for stm31mp1 Soc
  • 386fcf3b ipm: Add support for stm31mp157c_dk2 board
  • b44f0eac drivers/gpio: stm32h7: Don’t use HSEM_CR_COREID_CURRENT as process id
  • 69af47d0 drivers: pinmux: enable PWM pins on STM32WB
  • aa46bac5 drivers: net: ppp: Driver for point-to-point protocol
  • 75f3e17b drivers: can: Add CAN shell
  • e6fe5424 drivers: i2c_nrfx_twi: Make use of NRFX_TWI_FLAG_SUSPEND
  • 4fffe790 drivers: flash: stm32l4x: Support SOCs with < 1MB
  • 12a9ff3b i2c_ll_stm32: Use macros to add I2C instances
  • 837f07a3 drivers: adc: enable ADC on STM32WB
  • 5ba6d576 drivers: pinmux: enable ADC pins on STM32WB
  • b8b8d46d drivers: adc: Enable ADC on STM32WB
  • dca45cb2 drivers: i2c: Add STM32F10X slave support
  • 303ff3fb drivers/i2c: Add support of stm32mp1
  • 0e0444af drivers/pinmux: add i2c5 pinmux for stm32mp1x
  • 3a6b46e2 drivers: spi: spi_ll_stm32: Fix uncleared MODF flag
  • 9e5c97ed driver/sensor: add STTS751 temperature sensor
  • b7db90da drivers: serial: uart_rtt: Virtual UARTs over RTT channels
  • 3bc7d9e5 drivers: spi: Fix spi related files of stm32f1x
  • 9f34d17c drivers: timer: nrf_rtc_timer: Fix set_comparator corner case
  • 5a39bcae drivers/adc: provide API to access reference voltage
  • 13ceab4c drivers: spi: spi_ll_stm32: Add config to manage slave select
  • ebcd6506 drivers: spi: spi_ll_stm32: Long line cleanup
  • 707a111c drivers: fix printf formatting in flash drivers
  • e555ddd9 drivers/gpio: Adding missing braces for XEC driver
  • d93b0f3e driver/pinumx: Adding missing braces for XEC driver
  • 4b18a079 drivers: gpio: add stm32f1x SWJ configuration
  • 86dcf3c1 drivers/spi_nor: fix writes across page boundaries
  • d60d16d4 drivers/spi_nor: de-pessimize reads
  • c935508c drivers: spi: spi_ll_stm32: set NSS before mode
  • 876eb63a drivers: spi: st_stm32: Abstract LL function for spi ver. compatibility
  • e0d6534f drivers: spi: spi_ll_stm32: Add support for STM32MP1x SoC
  • 3febaad1 can: Add RX timestamp to zcan_frame
  • 9923cf2d drivers: can: stm32: Implement timestamp for RX frames
  • 9a7734ab drivers: can: flexcan: implement timestamp for RX frames
  • 6dceb498 driver/sensor/lsm6dso: Fix deprecated macros CS_GPIO_* to CS_GPIOS_*
  • 0923ae41 drivers: sensors: Add Si7006 temperature/humidity sensor driver
  • f7541436 drivers: ethernet: Remove redundant NET_L2_ETHERNET dep. from ETH_LITETH
  • 2d8982d2 drivers: flash: Remove redundant FLASH dep. from FLASH_SIMULATOR
  • cc8cf88e drivers: flash: Remove redundant FLASH dep. from FLASH_NATIVE_POSIX
  • a9490541 drivers: espi: kconfig: Remove redundant ESPI_PERIPHERAL_CHANNEL deps.
  • 8e9bf88d usb: do not disable endpoints at USB_DC_SUSPEND event
  • 31a0371a drivers: arcv2_timer0: add support for smp
  • ea366e9a drivers: can: mcp2515: Fix interrupt bit tests for empty TX buffers
  • 447029d7 drivers: pwm: Add NXP MCUX PWM driver
  • d1dff712 drivers: gpio: Remove redundant GPIO dep. from GPIO_HT16K33
  • b945b104 drivers: sensors: Remove ‘version:’ field in Si7006 binding
  • e5981f2b drivers: sifiv: make them 64-bit compatible
  • ef9fdc31 drivers: eth_mcux: event corrected init->reset
  • b0203ac9 display: Add support for an ST7789V based LCD
  • a9a83917 drivers: clock_control: mcux_mcg: add driver for NXP Kinetis MCG
  • 84c74993 drivers: pwm: mcux_ftm: use device tree for obtaining clock frequency
  • a3318a45 gpio: arm: cmsdk-gpio: Fixup dts binding / nodes
  • 16162f25 drivers: entropy: nrf5: Fix dependency of the enabling Kconfig option
  • b34b00d6 drivers: interrupts: Add a set_priority callback
  • 571d3b54 interrupt_controller: gic: Add support for the GIC400
  • 5364a389 serial: Add Xilinx ZynqMP PS uart driver
  • 4ef9d4b6 timer: Add Xilinx ZynqMP PS ttc timer
  • 90e778d9 drivers: modem: context helper: introduce modem context helper driver
  • d56a05f7 drivers: modem: interface: introduce UART interface driver layer
  • 02abddcc drivers: modem: cmd handler: introduce cmd handler driver layer
  • f5c45c29 drivers: modem: introduce socket helper layer
  • ebf6520d drivers: modem: ublox SARA convert to modem context
  • ee92cf4d drivers: modem: ublox-sara-r4: Support SARA-U2 modems, sense VINT
  • 4fb8bf61 drivers: ns16550: add WORD only access support

External (8):

  • c2100c9d ext: hal: nordic: Fix nrf_clock external clock source control
  • 74e173c6 ext: hal: nordic: Fix DT symbols in 802154 radio driver
  • 396bbae5 ext: hal: nordic: Update nrfx to version 1.7.2
  • ad69bb9d ext: nordic: Align nrfx_config_* files with templates from nrfx v1.7.2
  • fce30646 ext: hal: mchp: Fix compilation for MEC1501 HAL macros
  • 8104c208 ext: hal: microchip: Fix compilation issue in HAL
  • 3484d5c8 ext: mcux: Add HAS_MCUX_PWM config
  • b948ca20 ext : hal : Microchip MEC1501 PS/2 and global configuration updates.

Firmware Update (3):

  • feaf008c mcumgr: fix type of pointer passed to base64_decode
  • a75fc419 dfu: make flash_img write to flash on buffer full
  • b0da8f2b mcumgr: select NET_BUF when MCUMGR=y

Kernel (39):

  • 1db9f18a kernel/timeout: Remove “clock_always_on”, replace with “SLOPPY_IDLE”
  • c3d4e650 kernel: exclude stubs from code coverage
  • 0b0294d6 kernel: cover k_usleep() from user mode
  • 06d7746c kernel: cover k_array_index_sanitize()
  • 8753becb kernel: delete k_futex_init()
  • a744501a kernel: test coverage for sflist
  • 38129ce1 kernel: fix CONFIG_THREAD_NAME from user mode.
  • 5d423b80 userspace: minor typo fixes in various places
  • cf974371 mempool: make alignment/rounding 64-bit compatible
  • fc4ca923 mempool: fully use the inline free block bitmap on 64-bit targets
  • ace11bbe mempool: make sure max block size isn’t smaller than minimum allowed
  • 669730f0 kernel: Crank up default tick rate
  • ed7d8631 kernel/sched: Interpret zero timeslice time correctly
  • 905209ba kernel/mempool: Fix ticks/ms confusion
  • 7bde81f4 kernel: msgq: avoid single char variables for msgq
  • 223a2b95 mempool: move BUILD_ASSERT to the end of K_MEM_POOL_DEFINE
  • 0e677599 kernel: fix #endif quard error for k_float_disable
  • 4d8e1f22 kernel/sched: Fix k_thread_priority_set() on SMP
  • f9ae2d8e Includes: #ifdef CONFIG_USE_SWITCH instead of #if to avoid undef warning
  • 7a93e948 kernel: lib: Add convert functions for hex strings and binary arrays
  • 629bd856 mempool: significant reduction of memory waste
  • 39425eaa assert: generate oops if invoked from usermode
  • 7875707a userspace: add kobject flag for drivers
  • 2463ded4 kernel: timeout: do not active time slicing if idle thread ready
  • 11d4f018 Z_ISR_DECLARE: ensure proper alignment on 64-bit targets
  • 71ce8ceb kernel: consolidate error handling code
  • 5623637a kernel: abolish _default_esf
  • 8a9e8e0c kernel: support log system for fatal errors
  • 96571a8c kernel: rename NANO_ESF
  • 137ea740 sys/sem.h: fix path to atomic.h
  • 8e437adc thread.c: remove vestigial CONFIG_INIT_STACKS cruft
  • 479c1aa6 mempool: simplify the logic for sizing the free block bitmap
  • e9cdcc23 kernel: timeout: Fix macro usage in next_timeout function
  • f281b74c userspace: set stack object earlier
  • fddd5508 userspace: clarify k_mem_partition_add()
  • 8915e41b userspace: adjust arch memory domain interface
  • 20d07246 kernel: sched: Do not force preempt when k_sched_unlock()
  • 00bf76ea kernel: add z_fatal_halt() to interface
  • b6d961b7 kernel: remove log system support for fatal msgs

Libraries (44):

  • 05212e82 lib: os: fix vsnprintk coverage
  • d045bd76 lib: os: exclude z_arch_printk_char_out()
  • b6e4f910 lib: os: fix slist code coverage
  • ee4c23cc CMSIS v2: Work around time unit confusion
  • 39cd2ebe malloc: make sure returned memory is properly aligned
  • 1b359e64 limits.h: streamline value definitions
  • 18ef131c gui: Move lvgl into a zephyr module
  • b889120c Revert “libc: types: Remove wrong definition”
  • 55dc481a libc: add strnlen implementation
  • ffab1979 libc: fix memchr() prototype
  • 0aa796cb print format: adjust specifiers to be compatible with a 64-bit build
  • fcb2968f subsys/fb: correct last character in vtiled fonts
  • ff7e4e69 realloc(): fix possible memory leak
  • e9b1cc5f prf.c: code and style cleanup
  • e1d8c1f8 prf.c: implement the “hh” length modifier
  • ab59209e prf.c: abstract output method call
  • 4ad2a8f9 prf.c: don’t be silent with unknown conversion specifiers
  • 33312cfd prf.c: remove buffer limitation on field width and string copy
  • 7c7f1078 prf.c: remove buffer limitation on field width and padding for integers
  • d28434b4 prf.c: remove buffer limitation on precision and padding for floats
  • f286eda6 prf.c: remove arbitrary large stack buffer usage
  • 132a286c prf.c: fix display of float exponent >= 100
  • 90ec5360 prf.c: fix wrong results with %g conversion
  • 53169743 prf.c: properly format INF/NAN/zero with prefix
  • 3c0cc086 prf.c: handle denormals properly
  • 8e119703 realloc(): struct sys_mem_pool_block is word aligned
  • 765c0637 Revert “sys/util.h: helper macro to perform pointer difference”
  • acc17032 libc: minimal: provide types in time.h
  • 3e8df8b3 libc: minimal: provide gmtime implementation
  • 9d25b671 sys: timeutil: add module
  • 47739962 include: json: reorder designated initializers
  • 71536935 lib: os: add sys_sem data type
  • 6b90a02b libc: minimal: time.h: Don’t (re)define struct timespec.
  • b8af1a6a libc/minimal: fix reproducibility of gmtime
  • 8420f43b libc: minimal: add strspn and strcspn support
  • e9809d53 ring_buffer: Fix return types
  • ff6432ed lib: posix: Use “posix_subsys” as the CMake lib for the subsystem.
  • 7d2df83b libc: minimal: Add headers as system includes
  • f0d483aa lib: posix: Switch to use zephyr_interface_library_named cmake directive
  • daf9f110 lib/libc/min: Handle duplicate time definitions
  • ef4cd6a1 lib/libc/minimal: Refined handle duplicate time definitions
  • 6bbd4cba gui: Add support for lvgl API version 6
  • fa27e583 gui: Disable LVGL features by default
  • 55c3585f gui: Corrected paths in Zephyr to LVGL FS mapping

Logging (14):

  • 09993873 logging: Fix corruption in log panic when scheduler was active
  • 96ac04c8 logging: add frontend API
  • a0c09961 logging: add frontend calls in log_core
  • 9fa60f03 logging: Add header with common log backend functions
  • 519c77d1 logging: Add qemu_x86_64 backend
  • 9768f782 logging: Removing redundant code from RTT backend
  • 65b47f89 logging: Removing redundant code from SWO backend
  • 20483961 logging: Removing redundant code from UART backend
  • 1f046f99 logging: Removing redundant code from xtensa sim backend
  • ec857d0e logging: Do not use CONFIG_SYS_CLOCK_HW_CYCLES_PER_SEC
  • 09b64467 logging: log_backend_swo: Get clock frequency from DTS
  • 6cd70a5f logging: Fix undefined macro warning
  • fce2692b logging: Clean up log.h dependencies

Maintainers (5):

  • 0ffcba4b CODEOWNERS: update file with new locations
  • 7937d801 CODEOWNERS: update architecture owners
  • 9d7da6a6 CODEWONERS: syntax fix: Remove comma
  • 138c38b0 CODEOWNERS: adding code-owner for arch/arm test suite
  • 879ce9c0 CODEOWNERS: add owner for subsys/fb

Miscellaneous (68):

  • cdfddecb include/: cleanup: add Kconfig for suppressing warnings
  • 83508a56 cleanup: include/: move flash_map.h to storage/flash_map.h
  • 16958922 cleanup: include/: move console.h to console/console.h
  • 52b3d2b6 cleanup: include/: move tty.h to console/tty.h
  • 656f4dfd cleanup: include/: move fs.h to fs/fs.h
  • d918c98e cleanup: include/: move fcb.h to fs/fcb.h
  • f0487928 cleanup: include/: move nvs/nvs.h to fs/nvs.h
  • 10291a07 cleanup: include/: move tracing.h to debug/tracing.h
  • 52e0efac cleanup: include/: move stats.h to stats/stats.h
  • e1e05a2e cleanup: include/: move atomic.h to sys/atomic.h
  • bd977d06 cleanup: include/: move base64.h to sys/base64.h
  • 4e48e87f cleanup: include/: move crc.h to sys/crc.h
  • f641d099 cleanup: include/: move disk_access.h to disk/disk_access.h
  • 190e3682 cleanup: include/: move power.h to power/power.h
  • ef281c42 cleanup: include/: move sys_io.h to sys/sys_io.h
  • 0abdacf3 cleanup: include/: move json.h to data/json.h
  • 4be2e9eb cleanup: include/: move zephyr/jwt.h to data/jwt.h
  • d4d20677 cleanup: include/: move watchdog.h to drivers/watchdog.h
  • f4709f2c cleanup: include/: move adc.h to drivers/adc.h
  • 8007266e cleanup: include/: move aio_comparator.h to drivers/aio_comparator.h
  • c0c9396d cleanup: include/: move can.h to drivers/can.h
  • 17ddd171 cleanup: include/: move clock_control.h to drivers/clock_control.h
  • 7e7a9bdf cleanup: include/: move counter.h to drivers/counter.h
  • 46a5d1e5 cleanup: include/: move dma.h to drivers/dma.h
  • 969f8f1c cleanup: include/: move entropy.h to drivers/entropy.h
  • fe051a90 cleanup: include/: move flash.h to drivers/flash.h
  • 08a99616 cleanup: include/: move gna.h to drivers/gna.h
  • 6aa9c3a6 cleanup: include/: move gpio.h to drivers/gpio.h
  • f901e26d cleanup: include/: move hwinfo.h to drivers/hwinfo.h
  • 8f692c7d cleanup: include/: move i2c.h to drivers/i2c.h
  • f2e35134 cleanup: include/: move i2s.h to drivers/i2s.h
  • 65249257 cleanup: include/: move ipm.h to drivers/ipm.h
  • a14ef3bf cleanup: include/: move led.h to drivers/led.h
  • afa85cdc cleanup: include/: move led_strip.h to drivers/led_strip.h
  • a8167ab1 cleanup: include/: move pinmux.h to drivers/pinmux.h
  • 58438848 cleanup: include/: move pwm.h to drivers/pwm.h
  • fd359c21 cleanup: include/: move rtc.h to drivers/rtc.h
  • 8c1f89fa cleanup: include/: move sensor.h to drivers/sensor.h
  • bd70f6f1 cleanup: include/: move spi.h to drivers/spi.h
  • d1b27186 cleanup: include/: move uart.h to drivers/uart.h
  • 9e35d53d cleanup: include/: move display.h to drivers/display.h
  • 7435e5e0 cleanup: include/: move ring_buffer.h to sys/ring_buffer.h
  • 5eb90ec1 cleanup: include/: move misc/__assert.h to sys/__assert.h
  • 5d001f3e cleanup: include/: move misc/byteorder.h to sys/byteorder.h
  • ee9dd1a5 cleanup: include/: move misc/dlist.h to sys/dlist.h
  • 896b8d3c cleanup: include/: move misc/errno_private.h to sys/errno_private.h
  • 8be9f5de cleanup: include/: move misc/fdtable.h to sys/fdtable.h
  • 447311ec cleanup: include/: move misc/libc-hooks.h to sys/libc-hooks.h
  • 68cb66d5 cleanup: include/: move misc/list_gen.h to sys/list_gen.h
  • 6ecadb03 cleanup: include/: move misc/math_extras.h to sys/math_extras.h
  • 43d2b9c2 cleanup: include/: move misc/math_extras_impl.h to sys/math_extras_impl.h
  • 1ed300b3 cleanup: include/: move misc/mempool_base.h to sys/mempool_base.h
  • 08ee8b09 cleanup: include/: move misc/mempool.h to sys/mempool.h
  • 0c9e2805 cleanup: include/: move misc/mutex.h to sys/mutex.h
  • 9ab2a567 cleanup: include/: move misc/printk.h to sys/printk.h
  • 1859244b cleanup: include/: move misc/rb.h to sys/rb.h
  • 5c0516bc cleanup: include/: move misc/sflist.h to sys/sflist.h
  • 536dd5a7 cleanup: include/: move misc/slist.h to sys/slist.h
  • d2225539 cleanup: include/: move misc/speculation.h to sys/speculation.h
  • a2fd7d70 cleanup: include/: move misc/util.h to sys/util.h
  • fa1c6001 cleanup: include/: move misc/gcov.h to debug/gcov.h
  • efb8df53 cleanup: include/: move misc/stack.h to debug/stack.h
  • 5b0aa794 cleanup: include/: move misc/reboot.h to power/reboot.h
  • 755cc644 sys/util.h: helper macro to perform pointer difference
  • a66a036a subsys/cfb: correct font definition macro for linker script
  • 779381b5 include: data: add missing __cplusplus checks
  • 1090dbc6 subsys/cfb: improve font structure packing
  • 4524035b release: Zephyr 2.0.0-rc1

Modules (6):

  • 5a8b40b9 west.yml: Update hal_stm32 to fix I2C_SPEED_FAST redefinition
  • 28d6d75f modules: update stm32cube Kconfig with H7
  • 3f057403 manifest: update to latest ci-tools revision
  • c6c20f08 manifest: Add OpenThread repository
  • 86077232 manifest: update to latest hal_stm32 revision.
  • 2f334817 west.yml: update hal_stm32 revision to add SPI LL for CubeMP1

Networking (120):

  • ffe25df8 mqtt: Allow client to override keepalive
  • ef109375 net: dns: Make dns_unpack_answer() to check non-compressed answers
  • 84b191ed net: sockets: Add timeout to socket connect call
  • b7d4b005 net: lwm2m: fix automatic notification frequency
  • 041cd5f1 net: if: Add syscall interface to IP address add and rm
  • 10189332 net: if: Make IPv4 address const in removal function
  • 813ae63f net: if: Add userspace support to IPv4 netmask set function
  • 7063921e net: if: Add userspace support to IPv4 gateway set function
  • 766ad9f9 net: if: Make gateway address in net_if_ipv4_set_gw() const
  • 02b3826f net: mgmt: Add info length to event wait API
  • c0d6831b net: sockets: mgmt: Add AF_NET_MGMT address family support
  • 2da132e5 net: mgmt: Send event with info when applicaple
  • 5d13df9c net: utils: Add userspace support to net_addr_ntop/pton()
  • ee849826 net: socket: Add userspace support to setsockopt()
  • 6f32f17c net: socket: Add userspace support to getsockopt()
  • 7c65db4e net: socket: mgmt: Add setsockopt() and getsockopt() support
  • 50fa6bdd wifi: eswifi: Parse async messages
  • 033b2670 wifi: eswifi: Allow nested locking
  • 8462f331 wifi: eswifi: Implement TCP listen/accept
  • e809b95c net: Collect network packet TX send time
  • eef76256 net: socket: Add SO_TIMESTAMPING socket option
  • 77c10fc7 net: shell: Show network packet TX transit times
  • a18bd3a2 net: mgmt: Remove L1 layer as that is useless
  • 2f95f4af net: sockets: Initialize IP socket addresses in getsockname()
  • 1ee8e0b0 net: openthread: Verify iface in net_mgmt event handler
  • 66045b5d net/socket: use the iterable section object constructor/iterator
  • d19a5f91 net: socket: mgmt: use uintptr_t for the nm_pid field
  • b68d6a9a net: tcp: Adjust data length if TCP options are present
  • 11a8b42d net/llmnr: Fix LLMNR answer creation
  • 57101e56 net: llmnr_responder: Fix debug prints after receiving query
  • c37faaa5 net: lwm2m: Ignoreclosereturn value
  • 315b47b5 net/iface: Reduce usage of ifdef around CONFIG_NET_IPV6
  • cf6c5428 net/iface: Reduce usage of ifdef around CONFIG_NET_IPV4
  • 6a513e43 net/iface: Reduce ifdef usage on various options
  • 4e3a93d5 net/iface: Initialize IPv4/6 address so it removes more ifdef
  • ca5d24d2 net/iface: Remove useless attributes in net_if_ipv6 structure
  • 09e7262b net/iface: Coalesce all DAD timers through one
  • b5bcd253 net/iface: Coalesce all RS timers through one
  • b2d95840 net/ipv4: Add a net mgmt event for IPv4 router deletion
  • eccc268d net/iface: Rework how routers are handled
  • d80d181d net/iface: Add IPv4 route find and add
  • 4b06ae32 net: mgmt: Add L4 layer and related events
  • 8f92dc46 net: dns: Send net-mgmt event for DNS server add and del
  • 868cd477 net: ipv4: Drop pkt if src address is unspecified
  • 05cc5ae9 net: lwm2m: remove IP CONFIG checks in lwm2m_sprint_ip_addr()
  • 88642ef2 net: lwm2m: remove IP CONFIG checks in lwm2m_parse_peerinfo()
  • 82e889a2 net: lwm2m: fix error message in load_tls_credential()
  • 13086ccd net: lwm2m: dont select MBEDTLS or set MBEDTLS options in subsys
  • b5231d0b net: lwm2m: firmware: add log_strdup to remove logging errors
  • 44d6838d net: ipv6: Drop pkt if src address is unspecified
  • 59945067 net/gptp: net_gptp_recv() dummy function needs to return a verdict
  • 845f070c net/ethernet: Cleanup a bit on the usage of ifdefs
  • c8f7c329 net/lldp: Simplify Kconfig file
  • e7155622 net: lwm2m: add custom TLS credential load function pointer
  • 3ebe60a3 net: ip: Helper for getting used network address family as string
  • b2e71a2f net: Add a connection manager preliminary logic
  • a928b6dc net: sntp: add missing __cplusplus check
  • 31785558 net: openthread: Allow DHCP configuration of OpenThread in Zephyr
  • 0ec43412 net: pkt: Move everything up when pulling data
  • ccba1036 net: ipv6: Fix fragmentation
  • aaafb6ab net: pkt: Allow larger packets for IPv6 fragmentation
  • 1a9e09c8 net: socket: userspace: Copy user specified value in getsockopt()
  • c1d03b24 net: ip: Add iovec and msghdr structs
  • a0865adf net: context: Use const for the IP address
  • 390a6cf6 net: context: Add support for net_context_sendmsg()
  • ec2e2f43 net: sockets: Add sendmsg() API
  • 0435dce6 net: Add support for TXTIME socket option
  • ddf2230f net: openthread: Use repository provided by west
  • 12e11b04 net: ip: 6lo compression rework
  • 0261ecde net: ip: net_pkt: Add pkt_cursor_advance before contiguous check
  • f10da7b6 net: ip: 6lo (IPHC) uncompression rework
  • 144dc592 net: ip: 6lo: Remove unnecessary net_buf allocation and memmove
  • f95938da net: ppp: Initial support for point-to-point protocol
  • 02239a99 net: ppp: Add IPV6CP support
  • 4df61cd7 net: shell: Refactor network statistics printing
  • 4a5543db net: shell: Add ppp network interface support
  • 3e481f9d net: ppp: Allow delay of PPP protocol handshakes
  • eff46a52 net: ppp: Reject unhandled protocols
  • 7ccc47de net: if: No need to set IP addresses etc for PPP
  • ddac835e net: pkt: Add net_pkt_write_le16() helper
  • 19a09bf5 net: pkt: Add net_pkt_read_le16() helper
  • c4a692a8 net: ppp: Add proper support to receive Echo-Reply message
  • 4a322c6a net: ppp: Handle received Discard-Request
  • d0dd1fbf net: lwm2m: cancel pending retransmit work when closing context
  • c0e313aa net: lwm2m: use server record to set default observe notify timing
  • a33a6f77 net: lwm2m: remove data storage for IPSO Timer application type
  • 9534bbd9 net: lwm2m: add missing application type to IPSO Light Control
  • ad01c035 net: lwm2m: update function prototypes and descriptions
  • 30f31fb4 net: lwm2m: remove unused multi_max_count field from obj_field
  • ca308ec4 net: lwm2m: remove unique lwm2m_engine_obj_delete_cb_t definition
  • 6a2f3623 net: lwm2m: remove lwm2m_engine_obj from most handlers/formatter OPs
  • 8817d930 net: lwm2m: rework resource instance storage / access methods
  • 4bf343d5 net: lwm2m: add IPSO Buzzer object support
  • 2019d49b net: lwm2m: add IPSO On/Off Switch object support
  • ca61a238 net: lwm2m: add IPSO Push Button object support
  • 9dc5e293 net: lwm2m: add Connection Monitoring object support
  • 3e7d374c net: lwm2m: add Location object support
  • 3d3af711 net: lwm2m: add IPSO Accelerometer object support
  • 6af8fa69 net: lwm2m: add LwM2M path to engine_set errors
  • e81332d4 net: lwm2m: cleanup memset usage during init
  • c8fa1692 net: Add support for SOCKS5 socket option
  • 39ed77e4 net: socks: Make SOCKS5 implementation transparent
  • 8e70bd6f net: mqtt: Modify SOCKS5 based connections
  • 0fd92b46 wifi: eswifi: Select socket before configuration
  • caa99b7f net: context: Clarify net_context_send() API documentation
  • 5c05ef51 net: Move include files outside of extern “C” block
  • abdd58ce net: sockets: Do not call NULL socket callback function
  • 7c387a34 net: context: Allow TCP to use sendmsg()
  • b6115892 civetweb: Bump module to simplify the build process
  • c8c5f3bb net: canbus: Rename canbus to canbus_raw
  • 35f01673 net: l2: 6LoCAN implementation
  • 7fe85170 net: l2: canbus: Add support for pkt reception from translator
  • 95863a73 net: ip: net_pkt: Implement net_pkt_shallow_clone
  • 64d495df net: ip: ipv6_nbr: take TLLAO length from src lladdres
  • d864f5de net: l2: canbus: Add support for canbus Ethernet translator
  • 8a69b83d net: ip: ipv6_nbr: use temp variables for ntoh conversion
  • e55c7d72 net/conn_mgr: Fix events handler
  • c80407d3 net: context: sendmsg: Allow use of connected UDP sockets
  • 210455a0 net: ip: ipv6_nbr: Make LLAO length calculation more universal
  • 07f9e8be net: lwm2m: fix IP address max calc in conn mon obj

Samples (66):

  • 506256c7 samples: sensors: fxos8700: add polling support
  • 917890a5 samples: sensors: fxos8700: add support for twr-ke18f board
  • c283016f samples: net: sock: mgmt: Add network management socket app
  • 645d2b20 samples: net: sock: mgmt: Print IP addresses for each event
  • 08d10e17 samples: net: lwm2m_client: If hwinfo interface is enabled, use it
  • b0e58d62 samples: bluetooth: peripheral_ht: Health Thermometer sample
  • d8c5c9dc samples/**/external_lib: invoke $(MAKE) instead of make
  • 530a1e54 samples: net: echo_server: Enable SO_TIMESTAMPING if needed
  • 3adf7e03 samples: intel_s1000: USB control for audio sample
  • 881971ad samples: intel_s1000: tuning driver for audio app
  • a2f1ad41 samples: intel_s1000: audio processing threads
  • 75ff541a samples: intel_s1000: add background thread
  • 47e2e624 samples: intel_s1000: track status of audio app
  • c3bf362c samples: intel_s1000: tuning commands in audio app
  • dff993ba samples: intel_s1000: update project configration
  • 192ca06a samples: intel_s1000: add files to cmake build
  • a4c3de16 samples: intel_s1000: script to control from host
  • 3d32acf3 samples: intel_s1000: update sample audio app doc
  • 75e1f4ef sample/shield: add support to x-nucleo-iks01a3 shield
  • 7cc57a15 samples: usb: webusb: Remove dependence on GPIO
  • 4d5ee282 samples: net: Convert mcr20a samples to use the frdm_cr20a shield
  • 933d59ee samples/fs: support fs demo on mimxrt_1050 evk board
  • f59af494 samples: gui: lvgl: fix the nRF52840 pins to run sample
  • a845c57b samples: net: echo-client: Start service in correct time
  • db5aa499 samples: spi_flash: remove whitelisting
  • 7d309ee7 samples: grove_temperature: cleanup whitelisting
  • 66b081d2 samples: quark_se_c1000_devboard does not have Wifi
  • 84e87a1e samples: net: quark/arduino 101 do not have ethernet support
  • d092952c samples: mass_storage: remove whitelisting
  • 0277f1af samples: console: remove whitelisting
  • 343d9ccd samples: hid-mouse: use DT filtering instead of platform_exclude
  • a9b32e26 samples: hci_usb: remove whitelisting
  • 4042ea5e samples: i2c_fujitsu_fram: remove whitelisting
  • decb773c samples: blink_led: remove whitelisting
  • 7727972f samples: fade_led: remove whitelisting
  • e99c4d2d samples: servo_motor: remove whitelisting
  • 587d0ec2 samples: webusb: remove whitelisting
  • 92ddf63c samples: led_apa102c_bitbang: remove whitelisting
  • 0626c8f1 samples: add board customization for native_posix_64
  • 9901d8cf samples: sample modified according to the changes in Zephyr macros
  • 6b8433bd samples: fs: Added libfuse req. to fs shell README
  • ff0b76ea samples: usb: console: Remove overlay file
  • ded4ba09 samples: fs: Corrected flash ctrl name in fs shell
  • 0e338efb samples/drivers/spi_flash: fix device naming
  • 7f2edeef samples/drivers/spi_flash: add board overrides
  • bea5e117 samples/subsys/fs: move existing test into fat_fs
  • 54eb4adf samples: net: echo_client: Fix bug in workqueue processing
  • 11d07254 samples: drivers: espi: Add eSPI driver sample app
  • a62c6b2b samples: net: echo-server: Add PPP overlay config file
  • 45358ca2 samples: drivers: CAN: enable can shell for the sample
  • f2bf9a17 samples: net: Add civetweb HTTP sample
  • 48602c4b sample/shield: x-nucleo-iks01a3: add support to STTS751
  • 61733a8f sample: button: Fix format specifier
  • 26b43804 samples: net: civetweb: Remove strcspn() implementation
  • 7ac1cbfe samples: net: lwm2m_client: set LWM2M_COAP_BLOCK_SIZE to 512
  • 3217129f samples: net: lwm2m_client: send temp value back to engine
  • efa16798 samples: net: lwm2m_client: support for compiling in new objects
  • fa7a5db1 samples: net: Modify mqtt_publisher to use set proxy
  • 08a93d27 samples: Counter alarm should display seconds, not ticks
  • cfa64bde samples/subsys/fs/littlefs: add a basic sample
  • 1c65789d samples: net: zperf: Use proper value in k_busy_wait()
  • 303ef275 samples: usb: hid-cdc: Use proper value in k_busy_wait()
  • 16d8ce51 sample: blink_led: Adjust PWM period
  • f8a5b013 samples: net: echo_client and echo_server: Add 6LoCAN config
  • 40a3e600 samples: display: add a simple sample for st7789v display
  • 5a0acd51 samples: add sample to show how ARC TEE works

Scripts (37):

  • c782ba82 scripts: dts: Add special handling of ‘+’ in ‘str_to_label’ function
  • bb8dddfa scripts: dts: Add extraction of clock frequency for fixed clock
  • 96f48ab3 west: Bump hal_stm32 to version supporting STM32H7 series
  • 859ca420 scripts: elf_helper: correct kernel object address check range
  • 5c78b93c scripts/dts: Mark ‘non-S’ forms of cell and controllers as deprecated
  • 8083f8a6 scripts/dts: deprecate DT___BUS_
  • 7ac767b8 scripts: dts: Match alpha numeric property values
  • 79765b8a scripts/dts: fix support for uint8-array property values
  • 31052837 scripts/dts: cleanup ‘generation’ usage
  • 8b4d5297 scripts: gen_cfb_font_header: correct last character
  • 98a8e293 scripts: gen_cfb_font_header: correct command sanitization
  • 4d2625cd scripts/dts: Add option to generate only deprecated defines
  • 9754201e west: Load CMakeCache.txt as a UTF-8 encoded file
  • fa7ce3ff scripts: make mpu align in sections for code reloation
  • 9d2669f1 west: gui: Updated lvgl revision
  • a72e4516 scripts/dts: Rename –deprecate-only to –deprecated-only
  • 7de2f4da scripts/dts: Add deprecation comments to old scripts
  • 9d9b108d scripts/dts: Sort output of DT_COMPAT_ defines
  • f14b19b0 scripts: gen_cfb_font_header: remove guard and make font data private
  • 9a0d9e3a scripts: gen_cfb_font_header: modify to replicate cfb fonts
  • 11e91a83 scripts/sanitycheck: optimize disk usage for –save-tests
  • b8909439 scripts: dts: support multiple binding dirs in new scripts
  • fe2d858b scripts: dts: Add test for multiple binding directories
  • 2b3d9df1 west: require v0.6.0 or higher
  • 7118d084 scripts: un-break test_nrfjprog.py
  • 04da7eaf scripts: dts: Consistently open text files with utf-8.
  • 95deec1d scripts: edtlib: Reduce code duplication in phandle/value list parsing
  • 99769990 scripts/dts/gen_defines: Cleanup write_prop for which props we process
  • 8622c341 scripts/dts: Fix detection of a GPIO specifier
  • 6778468c scripts: openocd: allow to overwrite elf file used to flash device
  • b08adcdd scripts: openocd: use hex file for flash command
  • 1e23f79a west: gui: Added support for lvgl API V6
  • 5dd715b9 scripts/dts/edtlib.py: error check # and -map properties
  • 67f53ba1 scripts/dts: Support ‘io-channels’ property just like ‘pwms’
  • 998d7a01 scripts/dts: add basic test for IO channel property
  • b0a6b3c0 scripts/dts/gen_defines.py: Ignore ‘interrupt-controller’ prop
  • 480dcc16 scripts/dts/gen_defines.py: Ignore ‘gpio-controller’ prop

Shell (5):

  • e5e45af4 shell: adc: adc shell for testing adcs
  • 91d057f1 shell_history: align buffer to pointer size
  • 70e77bec shell_history_test: make the test succeed on 64-bit targets
  • f89cc613 shell: fs: add dependency on kernel allocator
  • bdb0284b shell: Fix undefined macro warnings

Storage (30):

  • 88bb7597 settings: adding new nvs backend
  • c7e625f2 sdhc: rename disk_access_sdhc.c
  • da3765ab usdhc: support NXP i.MXRT usdhc
  • 12c0bc42 disk: sdhc: Fix use of deprecated DTS defines
  • 312f05ea subsys/fs: add implementation helper module
  • b3f99fe0 subsys/fs: remove FS_FLASH_STORAGE_PARTITION
  • 0b2725a4 subsys/fs: fix log messages requiring strdup
  • e3ba01ec subsys/storage/flash_map: detect missing flash device
  • 4d8726aa subsys/fs: hide non-public API
  • 56886b0f subsys/fs/shell: clean up nffs mount diagnostics
  • 8ce4d071 subsys/fs/shell: add statvfs command
  • fae62fc4 fs: add support for mount point listing on vfs root
  • af9a2670 settings: Fix missing kernel.h include
  • e3f2add6 disk: fixing the sending of commands with r1 response
  • 33535a26 fs/nvs: improve C++ compatibility
  • 273bb8e2 fs/nvs: fix the sector size check
  • e55f3eba Settings: Initialize settings_lock mutex
  • b8be48e6 subsys/fs: clean up CMakeLists
  • fb73fcd4 subsys/fs: add support for littlefs
  • 5fe25910 subsys/fs/shell: add littlefs support
  • bd6af278 subsys/fs/shell: avoid warning about output format truncation
  • a8b7a215 subsys/fs: remove ambiguity in readdir results
  • 167eb53e subsys/fs/littlefs: allow customization of file system configuration
  • 159ad65c fs: nvs: format specifier aligned with off_t type
  • 4c21b0f2 disk: kconfig: Remove redundant DISK_ACCESS_SDHC dependency
  • f42617ad fs/nvs: preserve the previous ate searching
  • a6d44f6c fs/fcb: add API documentation to the header
  • e941ea5a fs/nvs: fix delete ate accommodation
  • 369510af fs/nvs: fix initialization hang if sector is full
  • d1bd2490 fs/nvs: skip deletion on non existing entry

Testing (107):

  • bceca798 tests: kernel: fatal: check stack overflow of FP capable threads
  • ca3549d9 tests: sys_mutex: improve code coverage
  • e8092894 tests: futex: improve coverage
  • f3b0b441 tests: net: dns: Add tests for dns_unpack_answer()
  • 01fa8a6f tests: net: if: Test userspace support in net_if
  • 058ebe69 tests: common: add tests for extra sflist APIs
  • e8f2d86d tests: remove redundant CONFIG_HW_STACK_PROTECTION=y setting
  • f3f3dc87 tests: kernel: fatal: run test for ARMv8-M with MPU stack guards
  • eb018f81 tests: net: mgmt: Verify that info_length is correct
  • 8cf4d591 tests: net: utils: Add userspace tests for net_addr_ntop/pton()
  • 40ec4bc1 tests: net: socket: mgmt: Add unit tests for net_mgmt sockets
  • 3b3844a9 tests: net: socket: mgmt: Add tests for get|setsockopt()
  • 6d3566a0 tests: mem_alloc: don’t set main thread size
  • efd99e66 tests: net: ip-addr: Avoid possible null pointer dereference
  • b52abfe2 tests: schedule_api: cover priority checks
  • b696c3e4 tests/kernel/mem_pool: Fix timeout units
  • f288d1e4 tests: samples: Apps shouldn’t set tick rate
  • e019dac7 tests/kernel/sched/schedule_api: Fix slice time test for fast ticks
  • 8bd8663b tests/kernel/common: Fix uptime delta test for fast ticks
  • f4803bf1 tests/kernel/context: Fix sleep test for fast ticks
  • b1280108 tests/kernel/sleep: Fix usleep test for fast ticks
  • fc392a2c tests/kernel/tickless/tickless_concept: Force 100 Hz ticks
  • 5238f5b9 tests/kernel/early_sleep: Fix for fast ticks
  • 03164a78 tests/kernel/workq/work_queue: Fix for fast/non-standard tick rates
  • ffb9e097 tests/posix/common: Adjust miscalibrated timing test
  • 33c64c25 tests/cmsis_rtos_v1: Correct timing assumptions
  • 4dd0b7c9 tests: json: improve code coverage
  • 65e658b5 tests: fatal: test failed assertion
  • 4bb57c48 tests: net: tx_timestmp: Fix the tests
  • 89430b33 include: gcov: fix compilation error
  • 3c8fa37a tests: fp_sharing: properly dump coverage data
  • 2dc6eea1 test/bluetooth: sizeof() is not strlen()
  • 5acb6221 tests/net/ptp/clock: add ‘userspace’ tag
  • 922c7ec5 test/msgq: adjust overflow test for 64-bit targets
  • 06136e56 tests: net: socket: register: Do not close invalid fd
  • ab9a1c9f tests: ipm: remove superfluous configs
  • 528a2de2 tests: schedule_api: minor cleanup
  • ac56fd8d tests: net: Increase stack sizes for coverage testing
  • ab8bcd20 tests: usb: do not set device address
  • 6455ddbd test/usb: fix pointer type mismatch
  • eb07943b tests: crc: convert to regular test case
  • cd4c268a subsys tracing: remove (uintptr_t) casts in snprintk and use %p
  • 0d8b0c67 tests: net: dhcpv4: Make sure we get DNS add/del events
  • 3e734ddb tests: net: lib: dns: dns_addremove
  • 14797354 tests: kernel: move arm-specific kernel tests under tests/arch/arm
  • 3717c6b3 tests: arch: x86: move static_idx under tests/arch/x86
  • 3da2985b tests: clib: Make sure ssize_t type is signed
  • 2222d145 tests: settings: adding nvs backend configuration to functional tests
  • 600c1d6f tests: net: trickle: Adjust config options to avoid error prints
  • 3d3a8c55 tests: kernel: fp_sharing: move fp_sharing test
  • 4476ae00 tests: kernel: fp_sharing: add test for k_float_disable
  • d7e49ee3 tests: subsys: settings: fix pointer mismatch on 64-bit targets
  • 3b282970 tests: kernel: critical: alternative test-case for SAM SoCs with WDT
  • 04503127 tests: build_all: remove whitelisting on arduino_101
  • ba31f4fc tests: bluetooth: shell: remove whitelisting on arduino_101
  • 5f24b419 tests: pwm_api: remove whitelisting
  • 5c485208 tests: gpio: remove whitelisting
  • e7b615e4 tests: i2c: remove whitelisting
  • 2338fcf9 tests: pinmux: remove whitelisting
  • 9fac66ca tests: usb: make 64-bit compatible
  • a87f25e1 tests: arch: arm: contribute a test for arm swap
  • 0f7e485e tests: arch: arm: enhance swap test for FP sharing
  • 524300a9 tests: arch: arm_thread_swap: add README file
  • 4a50e1f8 tests: board_shell: enable ADC shell
  • c4290513 tests/net/: samples/net/: add a few ‘userspace’ tags
  • 6609c125 tests: enable native_posix_64 testing
  • 7251d8c3 tests/lib/timeutil: add tests for time conversions
  • 15b1196e tests: force stack canaries off for two user tests
  • 6c4fdc61 tests: kernel: fp_sharing: increase robustness of float_disable test
  • f1afb4c2 tests: fdtable: add tests
  • f62fe155 tests: Bluetooth: Add test case for settings in the controller.
  • 285bfa7f tests: work_queue_api: Fix k_delayed_work_remaining_get() test
  • 4a8154f6 tests: net: udp: Add tests for sendmsg() call
  • c470fff3 tests: net: txtime: Add tests for SO_TXTIME and SCM_TXTIME
  • 5f6cae38 tests: benchmarks: Do not use CONFIG_SYS_CLOCK_HW_CYCLES_PER_SEC
  • 33b10aa7 tests/subsys/settings/functional: ensure settings area is cleared
  • c59bac35 tests/subsys/settings/functional: test external flash
  • d4e580c6 tests: add test cases for sys_sem
  • 0f8c2ace tests: net: 6lo: Adapt tests to deal with headers in multiple frames
  • 62ded2de tests: net: 6Lo: Add test criterion HDR diff
  • b87ba9c9 tests: spi: enable SPI on STM32WB
  • 504dffa3 tests: uart_basic_api: fix configuration
  • d0924821 tests: net: ppp: Add unit tests for PPP driver
  • 7dbbd8ad tests: boards: board_shell: Activate CAN shell
  • 34ffda3d tests: mesh_shell: Optimize prj.conf to fit in nrf51
  • 55fce980 tests: z_except_reason() policy from usermode
  • 4d658ca4 tests: drivers: Fix coverity issue 198873
  • 1b976917 tests: kernel: userspace: fix test skipping for ARC
  • 2e6504b6 tests: base64: add tests for error paths
  • aed522da tests: nucleo_wb55rg: add adc test
  • 40aa42ee tests/cmsis_rtos_v1: relax timing check a bit
  • 7deca2e0 tests/cmsis_rtos_v2: exclude m2gl025_miv due to tick rate conflict
  • 7fae2bbc tests: increase main stack size for x86 with ztest
  • fc79a789 tests: net: context: Let the net_context cb to run first
  • 1fe82693 test: kernel: sched: Add a test for nested scheduler lock
  • 979fb85d tests/subsys/fs/littlefs: add tests
  • f2422f1f tests: clean up fatal error handlers
  • af1510d3 tests: fatal: make sure the illegal insn occupies a full word
  • 84d657c2 tests/subsys/fs/nvs: init on full storage test
  • f46cf1d6 tests/subsys/fs/nvs: entry delete test
  • 16c1db9b tests: posix: No longer use target_include_directories
  • 27109e63 tests/subsys/settings/fcb: add check for target compatibility
  • 8dc83c1d tests: several tweaks for passing tests on qemu
  • ed10c906 tests: net: sendmsg: Verify that connected UDP sock works
  • 7b3cd7d3 tests: net: increase stack size
  • 73df0656 tests: remove the exception for arc
  • c78be56f tests: enable hsdk and nsim_hs_smp for smp test