Commit graph

108162 commits

Author SHA1 Message Date
Jordan Yates
5f0c800591 runners: jlink: win32: search for valid JLink.exe
Since "JLink.exe" is also an executable distributed with JDK's, do an
explicit search on the standard SEGGER install directories for a JTAG
"JLink.exe" before falling back to whatever is first on PATH.

Fixes #51825.

Signed-off-by: Jordan Yates <jordan@embeint.com>
2025-01-08 01:30:13 +01:00
Jordan Yates
a5643a4664 flash: stm32l4/g4: force load option bytes after write
After writing option bytes, force them to be loaded. Failing to perform
this step means the values are never applied and not actually written
to non-volatile memory.

Signed-off-by: Jordan Yates <jordan@embeint.com>
2025-01-08 01:29:53 +01:00
WenBin Zhang
59b1bb2059 driver: Add uart_emul work queue thread name
Add thread names to make debugging easier.

Signed-off-by: WenBin Zhang <freey7955@gmail.com>
2025-01-08 01:29:39 +01:00
Tristen Pierson
f634401f5c drivers: dma: sam0: Reset DMA during initialization.
Fixes issue #83555, where UART transmit operations fail in Zephyr
sysbuild projects using MCUboot and the asynchronous UART API
(`CONFIG_UART_ASYNC_API=y`) on SAM0 devices such as the
ATSAMC21G18A.

The issue occurs because the DMA controller is not reset during
initialization, causing `BASEADDR` and `WRBADDR` registers to retain
MCUboot's configuration. This prevents the application from reconfiguring
these registers to its own RAM addresses, leading to UART transmit
timeouts and triggering the `UART_TX_ABORTED` callback.

This patch resolves the issue by resetting the DMA controller during
initialization in `dma_sam0.c`. The following actions are performed:
- Disables the DMA and CRC modules.
- Applies a software reset to ensure a clean state for reconfiguration.

With this change, UART transmit operations work as expected, improving
stability and compatibility between MCUboot and the application.

Signed-off-by: Tristen Pierson <tpierson@electrohire.com>
2025-01-08 01:29:29 +01:00
Henrik Brix Andersen
5651764500 dts: arm: atmel: samx7x: refactor devicetree files for the Atmel SAMx7x
Refactor the devicetree files for the Atmel SAM E70 and SAM V71 product
series. These SoCs are part of a larger product family (SAM
E70/S70/V70/V71) and share a common set of peripherals.

Introduce a base samx7x.dtsi for all members of the family, containing the
union of all supported peripherals. Specific product series can use
/delete-node/ in their DTSI (e.g. same70.dtsi) for removing peripherals not
present in that product series.

Replace pin-count-specific DTSI files (e.g. same70q19b.dtsi) with
pin-count-agnostic DTSI files (e.g. same70x19b.dtsi) as the pin-count is
not taken into account in these anyways, and adjust the relevant board
devicetrees accordingly.

As part of this refactoring, introduce support for the missing flash memory
density variants of the SAM E70 product series.

Support for the two remaining product series (SAM S70/V70) is not part of
this refactoring as these will require further changes to the SoC support
code (soc/atmel/sam/).

Signed-off-by: Henrik Brix Andersen <henrik@brixandersen.dk>
2025-01-08 01:29:18 +01:00
Chris Friedt
2423219ea1 posix: include: dirent: rework the dirent.h header
Declare standard functions and split type definitions into
sys/dirent.h .

Signed-off-by: Chris Friedt <cfriedt@tenstorrent.com>
2025-01-08 01:29:06 +01:00
Chris Friedt
c0e0fc5d7f tests: posix: fs: declare entry statically
qemu_x86/atom was failing tests/posix/fs in
test_fs_readdir_threadsafe for some reason and only for that
platform.

All other platforms pass the testsuite properly with the dirent
declared on the stack.

Declare the dirent object statically so that qemu_x86/atom will
pass test cases.

Signed-off-by: Chris Friedt <cfriedt@tenstorrent.com>
2025-01-08 01:29:06 +01:00
Chris Friedt
3e49a19b17 scripts: checkpatch: add special consideration for DIR
DIR is a POSIX type defined via the dirent.h header.

In Zephyr, we define it as `typedef void DIR`, since it is only
ever described via a pointer (much like `FILE`).

However, in checkpatch.pl, functions that return DIR* or accept
a DIR* argument are met with an error of the form below:

```
ERROR:SPACING: need consistent spacing around '*' (ctx:WxV)
```

Examples that trigger this false positive are, for example

```cpp
int dirfd(DIR *dirp);
DIR *fdopendir(int fd);
```

Include `DIR` as a class of specific POSIX types that should be
matched as types rather than other tokens.

Signed-off-by: Chris Friedt <cfriedt@tenstorrent.com>
2025-01-08 01:29:06 +01:00
Chris Friedt
fa841fe7bd posix: fs: declare _POSIX_C_SOURCE in a consistent way
Declare _POSIX_C_SOURCE in a consistent way for both the
posix/options library as well as the tests/posix/fs
testsuite.

Signed-off-by: Chris Friedt <cfriedt@tenstorrent.com>
2025-01-08 01:29:06 +01:00
Neil Chen
7c31dd334d boards: nxp: frdm_mcxa156: Support wwdt for NXP frdm_mcxa156 board
Support watchdog for NXP frdm_mcxa156 board.
Test it using samples/drivers/watchdog.

Signed-off-by: Neil Chen <cheng.chen_1@nxp.com>
2025-01-08 01:28:51 +01:00
Neil Chen
bcc70d999a dts: arm/nxp: Add wwdt nodes to NXP MCXA156 dtsi file
Add wwdt nodes to NXP MCXA156 dtsi file

Signed-off-by: Neil Chen <cheng.chen_1@nxp.com>
2025-01-08 01:28:51 +01:00
Neil Chen
d7f0fbe7db drivers: watchdog: add wdt support on mcxa156 board
Update wdt clock frequency get function for mcxa156

Signed-off-by: Neil Chen <cheng.chen_1@nxp.com>
2025-01-08 01:28:51 +01:00
Xudong Zheng
2a04abafa0 boards: esp32c3_supermini: increase board heap and stack
The heap and stack are now consistent with other ESP32-C3 boards in
tree. This is necessary for Bluetooth to not crash on boot.

Signed-off-by: Xudong Zheng <7pkvm5aw@slicealias.com>
2025-01-07 23:00:25 +01:00
Gergo Vari
2759adaf1a drivers: rtc: maxim,ds3231: RTC driver
This is a squash of all the groundwork needed to
get a functioning driver for the DS3231 with the RTC API.

Signed-off-by: Gergo Vari <work@gergovari.com>
2025-01-07 23:00:05 +01:00
Fin Maaß
9d0627a4bc scripts: west_commands: add --ignore-venv-check option
add --ignore-venv-check option to ignore the venv check.

Signed-off-by: Fin Maaß <f.maass@vogl-electronic.com>
2025-01-07 20:35:53 +01:00
Reto Schneider
86e9faa995 boards: gardena: Fix link to manual
Updating the gateway manual URL because the old URL is now 404.

Signed-off-by: Reto Schneider <reto.schneider@husqvarnagroup.com>
2025-01-07 20:34:51 +01:00
Martin Jäger
0a838bc000 task_wdt: Kconfig: Increase TASK_WDT_HW_FALLBACK_DELAY range
If a time-intensive task (like coredump storage over logging interface)
is run in the task watchdog callback, the hardware watchdog might
reset the system before the task finishes.

Increasing the delay from 1s to 10s, which should be sufficient for any
use case.

Signed-off-by: Martin Jäger <martin@libre.solar>
2025-01-07 20:34:41 +01:00
Daniel DeGrasse
0c3c6355ce boards: nxp: mimxrt11xx: document support for launching CM4 core
Add documentation on how to launch the CM4 core by building with
sysbuild.

Signed-off-by: Daniel DeGrasse <daniel@degrasse.com>
2025-01-07 20:34:26 +01:00
Daniel DeGrasse
a7ad63c1d0 soc: nxp: imxrt: add CONFIG_SECOND_CORE_MCUX_LAUNCHER
Add CONFIG_SECOND_CORE_MCUX_LAUNCHER. This Kconfig is only enabled when
using sysbuild targeting the Cortex-M4 core on the RT11xx series, and
results in loading a minimal application to the Cortex-M7 core that
boots the Cortex-M4 core. This makes developing on the M4 core simpler,
as the user can now simply target the core with sysbuild enabled and
flashing the application will work as expected.

Signed-off-by: Daniel DeGrasse <daniel@degrasse.com>
2025-01-07 20:34:26 +01:00
Daniel DeGrasse
aec0355380 boards: nxp: mimxrt11xx: change zephyr,flash node to ocram
OCRAM region in Cortex-M4 memory map at 0x2020_0000 is simply an alias
to the M4 TCM at 0x1FFE_0000, which the zephyr,flash node was previously
set to. Using this base address for OCRAM allows the base address to
match the one used in the M7 memory map, which simplifies loading the M4
image from flash into RAM in the M7 init routine

Signed-off-by: Daniel DeGrasse <daniel@degrasse.com>
2025-01-07 20:34:26 +01:00
Jérôme Pouiller
3bf8bcee45 boards: silabs: Drop clock configurations for Series-2
Since commit bda8ae8c3f ("drivers: clock_control: silabs: Add clock
control driver"), clock configuration is defined in Device Tree.

We can drop now unused configurations existing in board definitions.

Signed-off-by: Jérôme Pouiller <jerome.pouiller@silabs.com>
2025-01-07 20:34:12 +01:00
Jérôme Pouiller
05578ab51f soc: silabs: Hide clock options for Series-2
Silabs Series-2 (all the EFR32xg2x chips) use the new clock driver
introduced in commit bda8ae8c3f ("drivers: clock_control: silabs: Add
clock control driver"). This driver get all the configuration from the
Device Tree.

The CMU (Clock Management Unit) options (CMU_HFXO_FREQ, CMU_HFRCO_FREQ,
CMU_NEED_LFXO, CMU_HFCLK_HFXO, etc...) are now only used for Series-0
and Series-1. It does not make sense to bother the users with them.

Signed-off-by: Jérôme Pouiller <jerome.pouiller@silabs.com>
2025-01-07 20:34:12 +01:00
Tomi Fontanilles
561ee12597 tests: secure_storage: speed up psa.its.secure_storage.custom.transform
It would time out when run on-device due to the NVS setting backend being
incredibly slow once enough entries exist.

Also, rename the tests which use different store implementations to make
that explicit.

Fixes https://github.com/zephyrproject-rtos/zephyr/issues/83210.

Signed-off-by: Tomi Fontanilles <tomi.fontanilles@nordicsemi.no>
2025-01-07 18:24:33 +01:00
Lucien Zhao
a101a4cdb2 soc: nxp: imxrt: imxrt118x: Remove cm7 core condition for CPU_HAS_ICACHE
Although I/DCACHE aren't included under cm33 architecture,
NXP design and integrate Code Cache/Sys Cache for cm33 to
speed up the core execution efficiency.
For the convenience of developers, we believe that software
developers can directly use Code/Sys Cache as arm's I/D Cache.

Signed-off-by: Lucien Zhao <lucien.zhao@nxp.com>
2025-01-07 18:24:20 +01:00
Peter Mitsis
f4f3b9378f kernel: Inline halt_thread() and z_thread_halt()
Inlining these routines helps to improve the
performance of k_thread_suspend()

Signed-off-by: Peter Mitsis <peter.mitsis@intel.com>
2025-01-07 18:24:09 +01:00
Peter Mitsis
d774594547 kernel: thread suspend/resume bail paths are unlikely
Gives a hint to the compiler that the bail-out paths in both
k_thread_suspend() and k_thread_resume() are unlikely events.

Signed-off-by: Peter Mitsis <peter.mitsis@intel.com>
2025-01-07 18:24:09 +01:00
Peter Mitsis
af14e120a5 kernel: Simplify clear_halting() on UP systems
There is no need for clear_halting() to do anything on UP systems.

Signed-off-by: Peter Mitsis <peter.mitsis@intel.com>
2025-01-07 18:24:09 +01:00
Peter Mitsis
85a9cffd0f kernel: cache priority queue index on UP multiq
Even though calculating the priority queue index in the priority
multiq is quick, caching it allows us to extract an extra 2% in
terms of performance as measured by the thread_metric cooperative
benchmark.

Signed-off-by: Peter Mitsis <peter.mitsis@intel.com>
2025-01-07 18:24:09 +01:00
Peter Mitsis
ea6adb6726 kernel: Add custom scheduler yield routines
Adds customized yield implementations based upon the selected
scheduler (dumb, multiq or scalable). Although each follows the
same broad outline, some of them allow for additional tweaking
to extract maximal performance. For example, the multiq variant
improves the performance of k_yield() by about 20%.

Signed-off-by: Peter Mitsis <peter.mitsis@intel.com>
2025-01-07 18:24:09 +01:00
Peter Mitsis
30f667bceb kernel: Add routines for _THREAD_QUEUED bit
Adds routines for setting and clearing the _THREAD_QUEUED
thread_state bit.

Signed-off-by: Peter Mitsis <peter.mitsis@intel.com>
2025-01-07 18:24:09 +01:00
Peter Mitsis
472c71d3f4 kernel: Add method to dequeue from a dlist
Dequeuing from a doubly linked list is similar to removing an item
except that it does not re-initialize the dequeued node.

This comes in handy when sorting a doubly linked list (where the
node gets removed and re-added). In that circumstance, re-initializing
the node is required. Furthermore, the compiler does not always
'understand' this. Thus, when performance is critical, dequeuing
may be preferred to removing.

Signed-off-by: Peter Mitsis <peter.mitsis@intel.com>
2025-01-07 18:24:09 +01:00
Peter Mitsis
d1c2fc0667 kernel: inline z_sched_prio_cmp()
Inlines z_sched_prio_cmp() to get better performance.

Signed-off-by: Peter Mitsis <peter.mitsis@intel.com>
2025-01-07 18:24:09 +01:00
Peter Mitsis
c6693bfdae kernel: Clean up priority_q.h
Minor cleanups include ...
 1. Eliminating unnecessary if-defs and forward declarations
 2. Co-locating routines of the same queue type

Signed-off-by: Peter Mitsis <peter.mitsis@intel.com>
2025-01-07 18:24:09 +01:00
Kai Vehmanen
76dc24ba0a soc: intel_adsp: tools: add cavstool.py fallback for PCI class
If no PCI device with DSP capability is reported, also try to
find compatible devices using PCI_CLASS=40300. This is mostly
useful on preproduction systems where incorrect PCI class data
is reported.

Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
2025-01-07 15:58:26 +01:00
Derek Snell
a9097c9c58 boards: nxp: mimxrt595_evk: configure DMA requests in INPUTMUX
Configure the requests that have only 1 mux option.

Signed-off-by: Derek Snell <derek.snell@nxp.com>
2025-01-07 15:57:50 +01:00
Derek Snell
ed7c8285f5 soc: nxp: imxrt5xx: enable Flexcomm12 clock for SPI
Enable clock when using as SPI.

Signed-off-by: Derek Snell <derek.snell@nxp.com>
2025-01-07 15:57:50 +01:00
Adib Taraben
7e2d020df5 eth_nxp_enet_qos_mac: enable pass through of multicasts
first check if the chip has a hosh module to futher filter MAC addresses
if not then enabling the pass through for all multicast protocols

Signed-off-by: Adib Taraben <theadib@gmail.com>
2025-01-07 15:57:34 +01:00
Andries Kruithof
5c886faa05 maintainers: bluetooth: remove Andries as a bluetooth maintainer
I will be working on non-bluetooth topics, so removing myself as a
maintainer for the bluetooth groups

Signed-off-by: Andries Kruithof <andries.kruithof@nordicsemi.no>
2025-01-07 15:57:27 +01:00
Wilfried Chauveau
13528daf06 maintainers: ethosu: Add @ithinuel as maintainer and @wearyzen as collab
Myself (Ithinuel) & wearyzen will be assisting in maintaining that
driver.

Signed-off-by: Wilfried Chauveau <wilfried.chauveau@arm.com>
2025-01-07 15:57:05 +01:00
Neil Chen
1a4bc137c8 tests: drivers: can: timing: enable full timing test on frdm_mcxa156
Enable the full range of CAN timing tests on the NXP FRDM-MCXA156 board.

Signed-off-by: Neil Chen <cheng.chen_1@nxp.com>
2025-01-07 15:56:57 +01:00
Neil Chen
fd1826e48c boards: nxp/frdm_mcxn236: Support Flexcan for NXP frdm_mcxa156 board
Support Flexcan for NXP frdm_mcxa156 board

Signed-off-by: Neil Chen <cheng.chen_1@nxp.com>
2025-01-07 15:56:57 +01:00
Neil Chen
0004a3f08f dts: arm/nxp: Add Flexcan nodes to NXP MCXA156 dtsi file
Add Flexcan nodes to NXP MCXA156 dtsi file

Signed-off-by: Neil Chen <cheng.chen_1@nxp.com>
2025-01-07 15:56:57 +01:00
Neil Chen
55f68b7ac3 drivers: syscon: update syscon driver to support mcxa flexcan clock
Add mcxa flexcan clock support

Signed-off-by: Neil Chen <cheng.chen_1@nxp.com>
2025-01-07 15:56:57 +01:00
Dominik Ermel
bb0fa0746b stream_flash: Enforce size to be explicitly present on init
The commit changes requirements for stream_flash_init, where size
can no longer be 0 and has to be explicitly set, to avoid situation
where size autodetection, invoked by size == 0, would miss changes in
layout and silently allow overflow of Stream Flash into other partitions.

There has also been new Kconfig option CONFIG_STREAM_FLASH_INSPECT,
set to y by default to keep legacy behaviour, that can be used to turn
off stream_flash_ctx vs device inspection, allowing user to shed
inspection code once it is not useful anymore.

Fixes: #71042

Signed-off-by: Dominik Ermel <dominik.ermel@nordicsemi.no>
2025-01-07 15:56:49 +01:00
Neil Chen
5b001d32af samples: sensor: Add support for temperature sensor on FRDM_MCXN236
Add new test sample.sensor.thermometer_i3c, can't assign the same
platform with i2c, and i3c at the same time.
Support the shield on FRDM_MCXN236 board by I2C and I3C way.

Signed-off-by: Neil Chen <cheng.chen_1@nxp.com>
2025-01-07 15:56:32 +01:00
Neil Chen
f861b4fd94 boards: nxp: frdm_mcxn236: Support i3c for NXP frdm_mcxn236 board
Support i3c for NXP frdm_mcxn236 board.

Signed-off-by: Neil Chen <cheng.chen_1@nxp.com>
2025-01-07 15:56:32 +01:00
Neil Chen
50f128d127 dts: arm/nxp: Add i3c nodes to NXP MCXN23x dtsi file
Add i3c nodes to NXP MCXN23x dtsi file

Signed-off-by: Neil Chen <cheng.chen_1@nxp.com>
2025-01-07 15:56:32 +01:00
James Roy
19963594b0 doc: build: dts: Fix incorrect foreach documentation
Replaced incorrect rst link references in the description
of traversing ancestor nodes, along with some conflicting
descriptions.

Signed-off-by: James Roy <rruuaanng@outlook.com>
2025-01-07 14:13:21 +01:00
Martin Becker
2871f1abef sca: added support for Polyspace tool
Add the cmake files for running static code analysis with the Polyspace
tools in the west build. The analysis leverages the compilation database.
Options for the analysis are documented in doc/develop/sca/polyspace.rst.

Analysis results are printed as command line output and provided as CSV.

Manually tested on v4.0.0 with various sample applications.

Signed-off-by: Martin Becker <mbecker@mathworks.com>
2025-01-07 14:13:13 +01:00
Pieter De Gendt
4c5e74deae scripts: west_commands: patch: Use subprocess cwd
Instead of changing directories, pass the cwd argument to the different
subprocess calls.

Signed-off-by: Pieter De Gendt <pieter.degendt@basalte.be>
2025-01-07 14:12:57 +01:00