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>
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>
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>
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>
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>
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>
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>
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>
Replace unused bootcode.bin in boot files list with recommended fixup4.dat
No functional changes.
Signed-off-by: Sidharth Sankar <sidstuffhere@gmail.com>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>