Commit graph

136,983 commits

Author SHA1 Message Date
Jyri Sarha
9446b09ff2 arch: xtensa: Use exception dump hook helpers in exception dumping
The new exception dump hooks provides helper function for draining or
flushing the accumulated dump data. These helpers are for the backend
to deal intelligently with often excessive amount of data for limited
bandwidth interfaces.

These calls are placed specifically for SOF application, but AFAIK SOF
is the most widely used Zephyr application running on Xtensa.

The helpers do not have any effect if CONFIG_EXCEPTION_DUMP_HOOK is
not set.

Signed-off-by: Jyri Sarha <jyri.sarha@linux.intel.com>
2026-03-20 18:20:27 +09:00
Jyri Sarha
499cdcd51c arch: exception: Add hooks for delivering exception dumps
Add hooks for delivering exception dump prints over a specialized
interface. If CONFING_EXCEPTION_DUMP_HOOK=y then a client program can
set function pointers for printing, flushing, and draining exception
generated prints.

These hooks were implemented for SOF usage, but should be generic
enough to implement alternative exception reporting on any platform.

Signed-off-by: Jyri Sarha <jyri.sarha@linux.intel.com>
2026-03-20 18:20:27 +09:00
Maximilian Zimmermann
6d7d7005ec samples: drivers: display: add samples for ramfb driver
Adds configurations and overlays for the display driver
and LVGL demo sample for qemu_x86, qemu_cortex_a53 and
qemu_riscv64 boards.

Signed-off-by: Maximilian Zimmermann <gitmz@posteo.de>
2026-03-20 18:19:54 +09:00
Maximilian Zimmermann
7205044c7c drivers: display: add new driver for qemu ramfb
The driver implements the QEMU ramfb as a framebuffer-based display.
It only implements the basic capabilities necessary (ARGB8888) with
resolution configurable via DTS. For initialization it uses the fwcfg
driver.

Signed-off-by: Maximilian Zimmermann <gitmz@posteo.de>
2026-03-20 18:19:54 +09:00
Maximilian Zimmermann
74bb82d0d3 drivers: firmware: qemu_fwcfg: allow build without CONFIG_MULTITHREADING
Fixes the no-mt test at tests/arch/riscv/pmp/isr-stack-guard
by making the driver work without MULTITHREADING primitives
if they are disabled.

Signed-off-by: Maximilian Zimmermann <gitmz@posteo.de>
2026-03-20 18:19:54 +09:00
Titouan Christophe
f5e436c7d0 samples: bluetooth: central: add build test for 64b ts and monitoring
This builds a basic bluetooth sample with 64b logging timestamps,
together with the bluetooth uart monitor.

Signed-off-by: Titouan Christophe <titouan.christophe@mind.be>
2026-03-20 18:19:35 +09:00
Titouan Christophe
6e1a9e6c52 bluetooth: host: monitor: fix build with 64b log timestamps
If CONFIG_LOG_TIMESTAMP_64BIT is enabled, then the call to
log_set_timestamp_func in the Bluetooth monitor is type-invalid,
which may fail to build with -Werror.

To avoid this type inconsistency let's use the type `log_timestamp_t`,
which accounts for the correct size, depending on selected config.

Even though the monitoring protocol only seems to support 32b timestamps,
the rest of the module is already based on 64b timestamps, so the
truncation is only done when encoding the timestamp for transmission
to the host in encode_hdr()

Signed-off-by: Titouan Christophe <titouan.christophe@mind.be>
2026-03-20 18:19:35 +09:00
Josuah Demangeon
ca3991d150 west: blobs: support fallback URLs
Allow fallback URLs to select a different back-end.
The "url:" field can now take a list of URLs so that if an
URL fails, the next one can be fetched (i.e. a remote host is down).

Error handling is refactored to let blobs.py call os.exit(), with a
new ZephyrBlobException used for the purpose of catching blob-fetching
related errors, and still allow i.e. KeyboardInterrupt to be raised.

Signed-off-by: Josuah Demangeon <me@josuah.net>
2026-03-20 18:19:06 +09:00
Emil Gydesen
57155a5b2b tests: Bluetooth: Audio: Spring cleaning
Add missing header files, remove unused header files,
fix typos and missing static.

Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
2026-03-20 18:18:55 +09:00
Sidharth Sankar
78325be910 boards: raspberrypi: rpi_4b: doc: Fix incorrect firmware requirements
Replace unused bootcode.bin in boot files list with recommended fixup4.dat

No functional changes.

Signed-off-by: Sidharth Sankar <sidstuffhere@gmail.com>
2026-03-20 18:18:18 +09:00
Phi Bang Nguyen
cb4e0478a0 drivers: video: Add support for external buffers
Add video_import_buffer() API and necessary changes to support buffers
allocated from outside, not from the video heap.

Signed-off-by: Phi Bang Nguyen <phibang.nguyen@nxp.com>
2026-03-20 18:18:08 +09:00
Phi Bang Nguyen
11049950ea drivers: video: Enqueue and track internal buffers via index
Currently, the video_enqueue() API enqueues the whole external video
buffer container structure from the application and the driver stores
this container in its FIFO queue.

While it works in simple applications where the enqueued video_buffer
container persists for the whole program lifecycle, it does not work in
situations where we cannot keep this container, e.g. enqueuing a buffer
inside a function, the local variable will be destroyed when the function
returns and hence the buffer is no longer valid.

Video buffers can be tracked via their indices in the buffer pool.
Set the index field when buffers are allocated and enqueue the internal
buffer rather than the external one to fix the issue.

Signed-off-by: Phi Bang Nguyen <phibang.nguyen@nxp.com>
2026-03-20 18:18:08 +09:00
Benjamin Cabé
5527ace9ed include: dap: minor doxygen fixups
Align the header with Doxygen guidelines. Main actual "issue" really
just was the incorrect "defgroup" (missing an actual group name, so "DAP"
was used as the name and "API" as the title...). The other changes are
minor stylistic changes.

Signed-off-by: Benjamin Cabé <benjamin@zephyrproject.org>
2026-03-20 18:17:46 +09:00
Krzysztof Chruściński
c2bcc85da4 drivers: serial: nrfx_uarte: Return error if PM suspend fails
PM suspend operation cannot be performed for UART using asynchronous
API is there are any active operations. Instead of asserting return
error.

Signed-off-by: Krzysztof Chruściński <krzysztof.chruscinski@nordicsemi.no>
2026-03-20 18:17:37 +09:00
Jordan Yates
1559515215 rtio: workq: set workqueue names
Set unique names for the RTIO workqueue threads. If
`CONFIG_RTIO_WORKQ_THREADS_POOL` goes over 9, the numbers repeat. This
is not expected to occur in practice since the two defaults for this
config are `1` and `2`, and fully handling it is not worth the code
complexity.

Signed-off-by: Jordan Yates <jordan@embeint.com>
2026-03-20 18:17:21 +09:00
Pieter De Gendt
3bcf145bac scripts: requirements: Generate actions dependencies
Run the uv command to update requirements-actions.txt.

Signed-off-by: Pieter De Gendt <pieter.degendt@basalte.be>
2026-03-20 18:16:57 +09:00
Zhaoxiang Jin
f684a66b3c doc: timer: document Cortex-M SysTick LPM API deprecation
Add documentation for the deprecation of the legacy Cortex-M SysTick
low-power companion compatibility macros and header in both the
migration guide and release notes.

The legacy macros `z_cms_lptim_hook_on_lpm_entry` and
`z_cms_lptim_hook_on_lpm_exit` along with the compatibility header
`drivers/timer/cortex_m_systick.h` are deprecated in Zephyr 4.4.0
and scheduled for removal in Zephyr 4.6.0.

Out-of-tree code should migrate to the generic system timer low-power
interface: `z_system_timer_lpm_enter()`, `z_system_timer_lpm_exit()`,
and `include/zephyr/drivers/timer/system_timer_lpm.h`.

Signed-off-by: Zhaoxiang Jin <Zhaoxiang.Jin_1@nxp.com>
2026-03-20 07:12:56 +01:00
Zhaoxiang Jin
9d6208a4fc drivers: timer: switch to use generic APIs
1. Keep drivers/timer/cortex_m_systick.h as a compatibility
shim for legacy Cortex-M-specific names.

2. Switch to use the generic low-power companion timer API
for the Cortex-M SysTick driver.

3. Mark the global CORTEX_M_SYSTICK_LPM_* kconfig options
as 'DEPRECATED' and replace them with SYSTEM_TIMER_LPM_*

4. Rename 'zephyr,cortex-m-idle-timer' to
'zephyr,system-timer-companion'

Signed-off-by: Zhaoxiang Jin <Zhaoxiang.Jin_1@nxp.com>
2026-03-20 07:12:56 +01:00
Zhaoxiang Jin
1edc3d35a0 drivers: timer: add generic low-power companion timer API
Add generic system timer low-power companion APIs in
'include/zephyr/drivers/timer/system_timer_lpm.h'.

These APIs are almost entirely from
'drivers/timer/cortex_m_systick.h', and the copyright
information from the original file has been preserved.

Signed-off-by: Zhaoxiang Jin <Zhaoxiang.Jin_1@nxp.com>
2026-03-20 07:12:56 +01:00
Kyle Bonnici
c7a6e6abda doc: Update binding default documentation
Update the documentation for default values in bindings to clarify that
default values for ``#address-cells`` and ``#size-cells`` cannot be
defined in the bindings, as their default behavior is already defined
in the devicetree specification section 2.3.5.

Signed-off-by: Kyle Bonnici <kylebonnici@hotmail.com>
2026-03-20 07:11:30 +01:00
Benjamin Cabé
81182b9f85 doc: _scripts: add type grouping to devicetree bindings index
Group bindings by type in addition to vendor in the bindings index doc
page.

Fixes zephyrproject-rtos/zephyr/issues#93150

Signed-off-by: Benjamin Cabé <benjamin@zephyrproject.org>
2026-03-20 07:11:20 +01:00
Benjamin Cabé
fc3b02d681 doc: _extensions: extract binding types utilities to dedicated module
There is enough logic for parsing binding types in the devicetree extension
that it makes sense to extract it to a dedicated module, especially as
others might want to use it too (e.g. as part of generating devicetree
bindings documentation)

Signed-off-by: Benjamin Cabé <benjamin@zephyrproject.org>
2026-03-20 07:11:20 +01:00
Benjamin Cabé
93cdf43c7e dts: bindings: update binding-types.txt
Add some missing binding types.

Signed-off-by: Benjamin Cabé <benjamin@zephyrproject.org>
2026-03-20 07:11:20 +01:00
Kyle Bonnici
eecf59716c dts: address dtslib unambiguous path matching
The spec makes it clear that node address can be omitted from node path
if not unambiguous see 2.2.3. Path Names

> A unit address may be omitted if the full path to the node is
unambiguous.

e.g.
````
/ {
foo@10 {};
}
```

both paths -> /foo and /foo@10 should work.

Signed-off-by: Kyle Bonnici <kylebonnici@hotmail.com>
2026-03-20 07:11:12 +01:00
Kyle Bonnici
82a84d628c dts: address dtslib address case sensitivity
IMO the spec is clear about the case insensitivity. The node address
must be match the reg value see 2.2.1.1. Node Name Requirements

> The unit-address must match the first address specified in the reg
property of the node.

reg property is a prop-encoded array and by definition.
reg = <0xA> or reg = <0xa> are the same. hence Both foo@a and foo@A
are the same.

Signed-off-by: Kyle Bonnici <kylebonnici@hotmail.com>
2026-03-20 07:11:12 +01:00
James Roy
72dbb2406d dts: bindings: retention: Move the dts clips to examples
Move the dts sample nodes from the binding description
into examples block.

Signed-off-by: James Roy <rruuaanng@outlook.com>
2026-03-20 07:10:54 +01:00
James Roy
66ddc0e26b dts: bindings: usb-c: Move the dts clips to examples
Move the dts sample nodes from the binding description
into examples block.

Signed-off-by: James Roy <rruuaanng@outlook.com>
2026-03-20 07:10:54 +01:00
James Roy
37a482067d dts: bindings: power-domain: Move the dts clips to examples
Move the dts sample nodes from the binding description
into examples block.

Signed-off-by: James Roy <rruuaanng@outlook.com>
2026-03-20 07:10:54 +01:00
James Roy
5adbc7965d dts: bindings: wifi: Move the dts clips to examples
Move the dts sample nodes from the binding description
into examples block.

Signed-off-by: James Roy <rruuaanng@outlook.com>
2026-03-20 07:10:54 +01:00
James Roy
62b7336dd9 dts: bindings: qspi: Move the dts clips to examples
Move the dts sample nodes from the binding description
into examples block.

Signed-off-by: James Roy <rruuaanng@outlook.com>
2026-03-20 07:10:54 +01:00
Marek Matej
3f0eb8be62 tests: boards: espresif: add esp_threadbr
Add new test case to cover esp_threadbr with ethernet shield.

Signed-off-by: Marek Matej <marek.matej@espressif.com>
2026-03-20 07:10:42 +01:00
Marek Matej
404a36ed58 soc: espressif: fix llext_heap missing
Some test failed because of orphaned section caused by missing
sections. This fixes the issue by including common-noinit.ld.

Signed-off-by: Marek Matej <marek.matej@espressif.com>
2026-03-20 07:10:42 +01:00
Marek Matej
c695eb7767 boards,shields: ESP Thread Border Router with ethernet
Add support for ESP Thread Border Router.
Add Ethernet shield for the ESP Thread Border Router.

Signed-off-by: Marek Matej <marek.matej@espressif.com>
2026-03-20 07:10:42 +01:00
Phi Bang Nguyen
017abf5b8f samples: video: capture: Fix video to display XRGB format conversion
The VIDEO_PIX_FMT_BGRX32 corresponds to the PIXEL_FORMAT_XRGB_8888
display format. A fallback to PIXEL_FORMAT_ARGB_8888 could also be
considered if supported.

Signed-off-by: Phi Bang Nguyen <phibang.nguyen@nxp.com>
2026-03-20 13:33:44 +09:00
Phi Bang Nguyen
fff825b8c1 drivers: display: st7796s: Add set_pixel_format
Add set_pixel_format() implementation

Signed-off-by: Phi Bang Nguyen <phibang.nguyen@nxp.com>
2026-03-20 13:33:44 +09:00
Phi Bang Nguyen
8ef4c538a3 drivers: display: st7796s: Fix get_capabilities
The supported pixel formats are the most important thing in
get_capabilities() but not reported. Fix it.

Signed-off-by: Phi Bang Nguyen <phibang.nguyen@nxp.com>
2026-03-20 13:33:44 +09:00
Phi Bang Nguyen
ca2f400df6 drivers: display: mcux_elcdif: Fix ARGB/XRGB format issue
The eLCDIF supports XRGB format but the ARGB format was used instead.
Fix it.

Signed-off-by: Phi Bang Nguyen <phibang.nguyen@nxp.com>
2026-03-20 13:33:44 +09:00
Phi Bang Nguyen
b51a66d1d1 drivers: display: Add support for XRGB_8888 format
Add PIXEL_FORMAT_XRGB_8888 and the corresponding panel format.
Add support for this format in display_sdl driver as well.

Signed-off-by: Phi Bang Nguyen <phibang.nguyen@nxp.com>
2026-03-20 13:33:44 +09:00
Armando Visconti
02e4cafa29 samples/sensor: 6dof_fifo_stream: add x_nucleo_iks5a1 shield
Add support to x_nucleo_iks5a1 shield.

Signed-off-by: Armando Visconti <armando.visconti@st.com>
2026-03-20 13:32:58 +09:00
Armando Visconti
faf44c3489 boards/shields: add support for x-nucleo-iks5a1 shield
x-nucleo-iks5a1 shield is an arduino compatible companion board
which can be used on top of Nucleo standard boards for industrial
applications. Following MEMS sensor are currently supported:

    - ISM6HG256X: 6-axis IMU
    - IIS2MDC:    3-axis magnetometer
    - ILPS22QS:   barometer

(https://www.st.com/resource/en/data_brief/x-nucleo-iks5a1.pdf)

Signed-off-by: Armando Visconti <armando.visconti@st.com>
2026-03-20 13:32:58 +09:00
Michal Smola
166ff27e62 boards: frdm_mcxl255: Add basic support for the board
Add basic support for NXP frdm_mcxl255 board. Console, leds and buttons
are supported. Console can use lpuart0 or aon_lpuart0. Default
selection is lpuart0. Core 0 is supported only.

Signed-off-by: Michal Smola <michal.smola@nxp.com>
2026-03-20 13:32:47 +09:00
Michal Smola
f9884ed503 soc: nxp mcxl25x: add initial support for NXP MCXL25x series
NXP MCXL25x SoCs are not supported. Add initial support.

Signed-off-by: Michal Smola <michal.smola@nxp.com>
2026-03-20 13:32:47 +09:00
Michal Smola
d2b6ec46eb dts: mcx: add initial support for NXP MCXL25x SoCs
NXP MCXL25x SoCs are not supported.
Add initial dts with peripherals needed for
Hello World and GPIO examples on cpu0 only.
Aon domain clock controls are modeled by fixed-clock
for the initial enablement. The aon clock configuration
corresponds default clock configuration.

Signed-off-by: Michal Smola <michal.smola@nxp.com>
2026-03-20 13:32:47 +09:00
Michal Smola
4434deff6b drivers: syscon: support mcxl25x lpuart clock
syscon does not support clock get rate function for lpuart
for MCXL family.
Enable lpuart clock get rate function for MCXL family.

Signed-off-by: Michal Smola <michal.smola@nxp.com>
2026-03-20 13:32:47 +09:00
Michal Smola
2a905ca660 drivers: syscon: support mcxl25x port clock
MCXL family has only PORT1, 2 and 3 controlled by syscon.
Do not enable clock for PORT0 in syscon driver.

Signed-off-by: Michal Smola <michal.smola@nxp.com>
2026-03-20 13:32:47 +09:00
Michal Smola
e8d7f3d299 modules: hal_nxp: support MCXL family
MCXL family is not supported in hal_nxp module.
Enable HAS_MCUX symbol for MCXL family in Kconfig. Add hal drivers
which are included by MCXL power driver in drivers cmake. Add mcxl
family to condition in drivers.cmake to use mcx_cmc driver.

Signed-off-by: Michal Smola <michal.smola@nxp.com>
2026-03-20 13:32:47 +09:00
Andrei-Edward Popa
caad0fd949 tests: drivers: build_all: ethernet: add dm9051 build test
Added build test for Davicom DM9051 Ethernet Controller

Signed-off-by: Andrei-Edward Popa <andrei.popa_1@nxp.com>
2026-03-20 13:32:33 +09:00
Andrei-Edward Popa
3abb23cd85 drivers: ethernet: add dm9051 driver
Added ethernet driver for DM9051 Ethernet Controller

Signed-off-by: Andrei-Edward Popa <andrei.popa105@yahoo.com>
2026-03-20 13:32:33 +09:00
Andrei-Edward Popa
52dc9587ad dts: bindings: ethernet: add bindings for dm9051
Added ethernet bindings for DM9051 Ethernet Controller

Signed-off-by: Andrei-Edward Popa <andrei.popa105@yahoo.com>
2026-03-20 13:32:33 +09:00
Ofir Shemesh
0a755ae198 serial: mcux_lpuart: report RX errors in async mode
The async mode ISR silently cleared RX error flags (overrun, parity,
framing, noise) without notifying the application. This violates the
Zephyr async UART API which requires a UART_RX_STOPPED event followed
by UART_RX_BUF_RELEASED and UART_RX_DISABLED.

Enable RX error interrupts alongside the idle-line interrupt, and
handle them in the ISR by reporting UART_RX_STOPPED with the
appropriate reason bitmask, then calling rx_disable() for the full
API-mandated teardown sequence.

Also set rx_dma_params.buf to NULL in rx_disable() after releasing
buffers, so stale pointers are not left behind.

Signed-off-by: Ofir Shemesh <ofirshemesh777@gmail.com>
2026-03-20 13:31:47 +09:00