Commit graph zephyr/scripts
Author SHA1 Message Date
Anas Nashif
021fd07448 Revert "scripts: checkpatch: fix missing blank line detection"
This reverts commit c310133b3e.

randomly asking for Missing a blank line after declarations.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2025-12-06 11:41:00 -05:00
Lucien Zhao
98673d0aad scripts: ... :edtlib.py: update edtlib.py to generate some warning messages
During the actual development process, it was discovered that the
controller/device' would describe the bus type in the binding. However,
when the two sides did not match, the generated process would not be
affected and there were no any prompts. This made it very difficult for
developers to identify the problem.

I've updated the implementation to:
1. Add a `warn_bus_mismatch` kwarg to `edtlib.EDT()` constructor
   (default: False)
2. Add a `--warn-bus-mismatch` flag to gen_edt.py
3. Only show the warning when explicitly opted in
4. Add some checks in the edtlib. When the bus type of the node
   does not match the binding requirements, provide some auxiliary
   judgment information:
     a. bus position of the node
     b. available binding types
     c. expected binding type.

Signed-off-by: Lucien Zhao <lucien.zhao@nxp.com>
2025-12-06 11:39:17 -05:00
Jamie McCrae
546adfa555 scripts: snippets: Use temp buffer and only output on change
Stores data to output in a temporary buffer and only outputs data
to a file if the data is different to the file's existing data
(assuming it exists). This prevents a random occurance whereby
sysbuild reconfigures itself after a reconfiguration for no known
discernable reason

Signed-off-by: Jamie McCrae <spam@helper3000.net>
2025-12-06 11:38:26 -05:00
Vignesh Pandian
c310133b3e scripts: checkpatch: fix missing blank line detection
Fix checkpatch not warning when blank line after declaration
is removed. Updated regexes to also handle context lines,
ensuring consistent detection.

Fixes: #98976

Signed-off-by: Vignesh Pandian <vignesh@aerlync.com>
2025-12-04 14:04:45 -05:00
Yves Wang
67e0217399 drivers: edac: Add NXP EDAC driver
Add edac driver for NXP's ERM and EIM peripherals. It can inject ECC
error to specific channel within EIM and then report the error address,
syndrome and count within ERM.

Signed-off-by: Yves Wang <zhengjia.wang@nxp.com>
2025-12-04 05:24:28 -05:00
Mathieu Choplain
636df434b9 twister: device-handler: use --dev-id for STM32CubeProgrammer runner
Now that the STM32CubeProgrammer runner supports the standard `--dev-id`
argument, replace usage of `--tool-opt` in the Twister device handler code.

Signed-off-by: Mathieu Choplain <mathieu.choplain-ext@st.com>
2025-12-03 09:12:09 -05:00
Mathieu Choplain
aaaf1d3992 scripts: pytest: hw_adapter: use --dev-id for STM32CubeProgrammer runner
Now that the STM32CubeProgrammer runner supports the standard `--dev-id`
argument, replace usage of `--tool-opt` in the pytest harness hardware
adapter.

Signed-off-by: Mathieu Choplain <mathieu.choplain-ext@st.com>
2025-12-03 09:12:09 -05:00
Mathieu Choplain
f1a75d75c7 runners: stm32cubeprogrammer: add support for --dev-id
Add support for the standard `--dev-id` argument used to select
target ST-Link debug probe based on serial number. Note that this
could already be achieved using custom argument `--conn-modifiers`.
(`--dev-id <XXX>` is equivalent to `--conn-modifiers sn=<XXX>`)

Signed-off-by: Mathieu Choplain <mathieu.choplain-ext@st.com>
2025-12-03 09:12:09 -05:00
Mathieu Choplain
5f67dfdf41 twister: device-handler: silence no-name-in-module warning
Silence CI warning caused by line "from . import ZEPHYR_BASE". This is a
legitimate pattern, but pylint seems unable to deduce so. Many other
scripts perform a similar silencing.

Signed-off-by: Mathieu Choplain <mathieu.choplain-ext@st.com>
2025-12-03 09:12:09 -05:00
Pieter De Gendt
7e4235ff21 scripts: ci: check_compliance: Skip generated Devicetree Kconfig symbols
Do not generate a compliance error when referring to generated Kconfig
symbols from Devicetree.

Signed-off-by: Pieter De Gendt <pieter.degendt@basalte.be>
2025-12-03 11:45:00 +01:00
James Roy
44106ac05f edtlib: binding: Add a examples keyword
Add an `examples` keyword to the binding to
provide a minimal example node for the binding.

Signed-off-by: James Roy <rruuaanng@outlook.com>
2025-12-02 20:53:01 -05:00
Anton Puppe
043a725b1f edtlib: Fix unformatted error message
Adds a missing f in the second line of a multiline f-string.
Previously, having the wrong top-level keys in a DTS binding YAML file
could cause a partially unformatted error message to be printed.

Signed-off-by: Anton Puppe <anton-noel-flynn.puppe@zeiss.com>
on-behalf-of: @ZEISS anton-noel-flynn.puppe@zeiss.com
2025-12-02 20:52:34 -05:00
Yves Wang
bf9f4c0cee ci: compliance: Correct dts-linter install cmd
Install dts-linter requires prefix for package.json

Signed-off-by: Yves Wang <zhengjia.wang@nxp.com>
2025-12-02 15:18:43 -05:00
Yangbo Lu
840d464ffb samples: net: move Ethernet samples to folder
Moved current Ethernet samples to folder ethernet,
as there will be more samples added in the future.

Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
2025-12-02 11:45:19 +01:00
Haoran Jiang
8454f91e39 scripts: west_commands: runners: sftool: Add flash_files param
In addition to Zephyr's default build artifacts, other build processes
may generate additional images. Therefore, we have added the
`--flash-file` parameter to flash these supplementary images


Signed-off-by: Haoran Jiang <halfsweet@halfsweet.cn>
2025-11-28 17:25:27 +00:00
Kyle Bonnici
589be43e2e devicetree: remaining files
Applying dts-linter results for remaining format files

Signed-off-by: Kyle Bonnici <kylebonnici@hotmail.com>
2025-11-28 10:09:39 +00:00
Thorsten Klein
69536a6811 scripts: zephyr_module: ignore empty paths in extra modules env variables
Ignore empty paths in environment variables ZEPHYR_EXTRA_MODULES or
EXTRA_ZEPHYR_MODULES.

Signed-off-by: Thorsten Klein <thorsten.klein@bshg.com>
2025-11-27 14:48:13 +01:00
Nikodem Kastelik
ad1e5ac253 nordic: update and align to nrfx 4.0.1
New nrfx release contains major rework of nrfx drivers
instantiation making it easier to integrate with dts nodes.
Now, nrfx driver instances can no longer be `const`
because they contain driver runtime state.
Additionally, all nrfx drivers return `errno` error codes
instead of deprecated `nrfx_err_t`.

Signed-off-by: Nikodem Kastelik <nikodem.kastelik@nordicsemi.no>
2025-11-27 14:45:17 +01:00
Jordan Yates
325c354913 scripts: build: ruff compliance
Update scripts in the build folder to pass all enabled `ruff` checks.

Signed-off-by: Jordan Yates <jordan@embeint.com>
2025-11-27 11:33:18 +01:00
Jordan Yates
b9a3f42d18 scripts: build: apply ruff format
Apply `ruff` formatting rules to all scripts in the build folder.

Signed-off-by: Jordan Yates <jordan@embeint.com>
2025-11-27 11:33:18 +01:00
Mathieu Choplain
e784a030f2 scripts: runners: stlink_gdbserver: add support for --no-load
Add support for the --load/--no-load argument from the base runner class.

Signed-off-by: Mathieu Choplain <mathieu.choplain-ext@st.com>
2025-11-26 12:15:53 -05:00
Mathieu Choplain
2240f10f16 scripts: runners: generalize --no-load argument
Move the existing "--no-load" argument from the OpenOCD and Intel Cyclone V
runners into an argument in the runners base class such that it can be used
by all runners. Also update the existing runners to work with the common
option instead of their own.

Signed-off-by: Mathieu Choplain <mathieu.choplain-ext@st.com>
2025-11-26 12:15:53 -05:00
Anas Nashif
5f91f5fb38 doc: fix reference to kernel.h
Fix reference to kernel.h and add zephyr namespace where it was missing.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2025-11-26 12:11:27 -05:00
Jiafei Pan
0ec9360cf4 scripts: requirements: update pyocd version
Update pyocd version to be greater than or equal to 0.36.0 to fix
the potential hang issue when execute "west packages pip --install"

This PR is to fix the issue #99115.

Signed-off-by: Jiafei Pan <Jiafei.Pan@nxp.com>
2025-11-26 07:10:39 +00:00
Beleswar Prasad Padhi
7e6215e140 scripts: west_commands: Log a hint for rate-limit failure during install
`west sdk install` may fail with a GitHub API rate-limit (HTTP 403)
error. This typically occurs when the command is run multiple times
after previous failures, which is common for new users setting up
the project. Currently, the thrown exception only links to a generic
GitHub rate-limit documentation page, which may be confusing to users.

Users can bypass the rate limit by authenticating with GitHub using a
Personal Access Token. The install script supports this via the
`--personal-access-token` argument. Therefore, detect rate-limit related
failures and print a helpful message suggesting the use of this
argument or netrc based authentication.

Signed-off-by: Beleswar Prasad Padhi <b-padhi@ti.com>
2025-11-25 17:37:19 +00:00
Thorsten Klein
bdbdbcbe8d scripts: west_commands: blobs: support blobs cache
An auto-cache directory can be provided via the `west blobs fetch
--auto-cache` argument or the `blobs.auto-cache-dir` config option.
When enabled, the auto-cache is automatically filled whenever a blob is
missing and must be downloaded.

One or more additional cache directories can be specified via argument
`west blobs fetch --cache-dirs` or the `blobs.cache-dir` config option
(multiple paths separated by `;`).

`west blobs fetch` searches all configured cache directories (including
the auto-cache) for a matching blob filename. Cached files may be stored
either under their original filename or with a SHA-256 suffix
(`<filename>.<sha>`).
If found, the blob is copied from the cache to the blob path; otherwise
it is downloaded from its url to the blob path.

Signed-off-by: Thorsten Klein <Thorsten.Klein@bshg.com>
2025-11-25 13:06:06 +01:00
Thorsten Klein
8fab89e521 scripts: west_commands: format blobs.py
blobs.py is formatted with `ruff format`

Signed-off-by: Thorsten Klein <Thorsten.Klein@bshg.com>
2025-11-25 13:06:06 +01:00
Nakul Chauhan
0172845b3d ci/compliance: update requirements of check_compliance.py script
add missing modules to requirements-compliance.txt to run compliance script

Signed-off-by: Nakul Chauhan <nakulchauhan111@gmail.com>
2025-11-25 13:04:34 +01:00
Morten Kristensen
4f2ad9a53d scripts: ci: use vermin 1.8.0
Update workflow to use the new version of Vermin to enrich the Python
minimum version checks in the CI pipelines.

Signed-off-by: Morten Kristensen <me@mortens.dev>
2025-11-24 14:56:36 -05:00
Eemil Visakorpi
1d70b705b0 twister: Fix serial open for UART devices that do not immediately appear
Testing on linux, --flash-before argument did not work to wait for jlink
upload to complete. Instead Serial port opening throws file not found. The
fix ensures that the code waits for the serial port to appear before
attempting to connect. Tested on a proprietary platform with virtual UART
through usb.

Signed-off-by: Eemil Visakorpi <eemil@doublepoint.com>
2025-11-24 17:22:22 +01:00
Anas Nashif
c9b01e8257 ci: set_assignee: remove size: XS label on updates
The script currently only adds the 'size: XS' label for small PRs (1
commit with ≤1 addition and ≤1 deletion), but it doesn't remove this
label if the PR grows larger after subsequent updates.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2025-11-24 08:47:51 +01:00
Arkadiusz Cholewinski
1d6e0d533a Power harness: Update path for the raw data file.
Change direction for raw data file from $ZEPHYR_BASE
to <path_to>twister-out/../<test>/

Signed-off-by: Arkadiusz Cholewinski <arkadiuszx.cholewinski@intel.com>
2025-11-22 11:45:44 +01:00
Simone Orru
5f7c451671 west: spdx: Fix copyright parsing in REUSE 0.6.x
Fix broken copyright parsing. Since REUSE 6.0.0 the copyright_lines
attribute has been removed. The new attribute copyright_notices is used.
Additionally, the python package REUSE should now be at least v0.6.0.
This will require an update of REUSE for users that were using a
version earlier than 0.6.

Fixes #98378

Signed-off-by: Simone Orru <simone.orru@secomind.com>
2025-11-22 05:13:26 -05:00
Carles Cufi
353dadf54b scripts: test_plan: Fix issue introduced in 3f77560
The rewrite by ruff seems to wrongly pass a single argument to filter(),
as seen in the logs:

```
    f.process()
  File "/home/runner/work/zephyr/zephyr/zephyr/./scripts/ci/test_plan.py",
  line 145, in process
    self.find_boards()
  File "/home/runner/work/zephyr/zephyr/zephyr/./scripts/ci/test_plan.py",
  line 292, in find_boards
    self.resolved_files.extend(list(filter(resolved_filter)))
                                    ^^^^^^^^^^^^^^^^^^^^^^^
TypeError: filter expected 2 arguments, got 1
```

Split things up properly to avoid this.

Signed-off-by: Carles Cufi <carles.cufi@nordicsemi.no>
2025-11-21 09:48:12 -05:00
Carles Cufi
d6f5aa9258 scripts: west: nrfutil: Use build dir to store generated json
Until now the code was using the path to the .hex file to select the
directory where the generated JSON file required for nrfutil would be
generated. But this has a problem: if the .hex file in a sysbuild
project is located in the tree as a precompiled binary, the runner would
place a file in there and make the tree dirty. Instead use the build_dir
folder which always corresponds (in both sysbuild and regular builds)
to the current target build directory.

Signed-off-by: Carles Cufi <carles.cufi@nordicsemi.no>
2025-11-21 09:46:41 -05:00
Jordan Yates
f8eb167619 scripts: ci: simple ruff formatting
Basic `ruff` format operations to allow CI to enforce from now on.

Signed-off-by: Jordan Yates <jordan@embeint.com>
2025-11-21 10:08:50 +02:00
Jordan Yates
3f77560b92 scripts: ci: test_plan: fix ruff reports
Fix problems reported by `ruff` and remove exclusions from the config
file.

Signed-off-by: Jordan Yates <jordan@embeint.com>
2025-11-21 10:08:50 +02:00
Jordan Yates
2186558f37 scripts: ci: coverage: fix ruff reports
Fix problems reported by `ruff` and remove exclusions from the config
file.

Signed-off-by: Jordan Yates <jordan@embeint.com>
2025-11-21 10:08:50 +02:00
Jordan Yates
3a165b6f5d scripts: ci: stats: merged_prs: fix ruff reports
Fix problems reported by `ruff` and remove exclusions from the config
file.

Signed-off-by: Jordan Yates <jordan@embeint.com>
2025-11-21 10:08:50 +02:00
Jordan Yates
764ad5562a scripts: ci: version_mgr: fix ruff reports
Fix problems reported by `ruff` and remove exclusions from the config
file.

Signed-off-by: Jordan Yates <jordan@embeint.com>
2025-11-21 10:08:50 +02:00
Jordan Yates
dc1c23312d scripts: ci: errno: fix ruff reports
Fix problems reported by `ruff` and remove exclusions from the config
file.

Signed-off-by: Jordan Yates <jordan@embeint.com>
2025-11-21 10:08:50 +02:00
Jordan Yates
f2af864712 scripts: ci: check_compliance: fix ruff reports
Fix problems reported by `ruff` and remove exclusions from the config
file.

Signed-off-by: Jordan Yates <jordan@embeint.com>
2025-11-21 10:08:50 +02:00
Jordan Yates
4c6bbae9cc scripts: ci: guideline_check: fix ruff reports
Fix problems reported by `ruff` and remove exclusions from the config
file.

Signed-off-by: Jordan Yates <jordan@embeint.com>
2025-11-21 10:08:50 +02:00
Anas Nashif
909373f10c scripts: set_assignee: get area object before before collabs
In the manifest case, we were operating on a str instead of the area
object.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2025-11-20 06:05:26 -05:00
Lukasz Fundakowski
3a1428f957 twister: Keep pytest output formatting in log
Fixed formatting of pytest output in log by not removing
leading whitespaces.

Signed-off-by: Lukasz Fundakowski <lukasz.fundakowski@nordicsemi.no>
2025-11-20 06:02:15 -05:00
Anas Nashif
75f69425dd ci: tags: add posix headers to posix group in tags
When posix headers change, make sure we verify the posix portability
layer.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2025-11-19 09:18:36 -05:00
Anas Nashif
c55d2eafff scripts: get_maintainer: file group pattern inherit top area patterns
File groups inherit file patterns from their parent area. A file will only
match a file group if it first matches the parent area's patterns, and then
also matches the file group's own patterns. This allows file groups to
further filter and subdivide files that are already covered by the area.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2025-11-18 17:44:53 -05:00
Anas Nashif
19cb7f031b scripts: set_assignee: request review from maintainers of changed areas
Also request reviewes from maintainers of changes areas in the
maintainer file.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2025-11-18 17:44:53 -05:00
Anas Nashif
616e8d6602 scripts: move set_assignee.py into scripts/ci
Scripts only used by CI, so move it into that directory.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2025-11-18 17:44:53 -05:00
Anas Nashif
c4b9497b3d scripts: set_assignee.py: Support file groups
Deal with new section in the maintainer file defining file groups.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2025-11-18 17:44:53 -05:00