The undefined Kconfig compliance check may report symbols as
undefined when the corresponding external module is not present.
This results in false positives, since such symbols are provided
only when the module is included in the workspace.
Exclude doc/develop/manifest/external from the grep search used by
the undefined Kconfig check.
This avoids extending UNDEF_KCONFIG_ALLOWLIST for optional external
modules while keeping the check strict for core Zephyr symbols.
Signed-off-by: Gaetan Perrot <gaetan.perrot@spacecubics.com>
Refactored main function for Twister execution.
- Rewrote the main function as a class and divided it into smaller,
more maintainable methods.
- Improved code structure, making it easier
to test with unit and module tests.
- Reduced the amount of code in a single function,
enhancing readability and understanding
Signed-off-by: Lukasz Fundakowski <lukasz.fundakowski@nordicsemi.no>
After the removal of the SOF module from the manifest, we should
no longer assume SOF source is available in the signing script.
If SOF source directory does not exist, we point the rimage
config directory to the support directory inside board directory
so that we can use local file to sign images.
Note that with this change, pulling SOF via Zephyr manifest is
no longer supported. Only SOF pulling in Zephyr via manifest is
supported.
Signed-off-by: Daniel Leung <daniel.leung@intel.com>
Environment variable RIMAGE_SIGN_KEY can be used to specify
the signing key for rimage. We should check if it points
directly to the key instead of always prefixing it with SOF
path.
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
Signed-off-by: Daniel Leung <daniel.leung@intel.com>
Obsolete the bespoke --reset-mode parameter in favor of the new standard
--reset-type parameter.
Signed-off-by: Pete Johanson <pete.johanson@analog.com>
Add support for setting the reset type for the jlink runner, to support
targets that need a non-default reset type for proper `reset halt`, etc.
Signed-off-by: Pete Johanson <pete.johanson@analog.com>
For some devices, the default JLink reset type may not work properly, so
allow overriding the reset type by passing, e.g. --reset-type=12 when
flashing.
Add new field to RunnerCaps to allow runners to specify either a fixed
list of possible types, or True to expose the standard --reset-type
parameter for that runner.
Signed-off-by: Pete Johanson <pete.johanson@analog.com>
boolean_strict_init.cocci would find false positive when a compilation
unit would contain a boolean variable "x" somewhere, and, in a different
scope, another variable "x" of e.g. int type that was assigned a 0 or 1.
See for example drivers/sensor/adi/adxl367/adxl367_stream.c:97 where
fifo_wmark_irq is declared as an int in the scope of the function but
as a bool in adxl367_process_status_cb.
This also adds the patching part to the script so that violations can be
fixed automatically.
Signed-off-by: Benjamin Cabé <benjamin@zephyrproject.org>
Update the Zsh completion script to support newer west extensions and
commands, bringing it closer to feature parity with the Bash completion.
Key changes:
- Add completion support for twister, bindesc, blobs, robot, sdk,
packages, patch, gtags, simulate, and reset
- Improve option completion for build, flash, debug, and runner commands
- Enable dynamic lookup for boards and shields
- Refactor argument handling for better Zsh compliance
Fixes#73129
Signed-off-by: Omkar Nanajkar <nomkar2131@gmail.com>
Commit 58bf2dc0e6 replaced pykwalify with
jsonschema for Zephyr module.yml files. However the west 'packages'
extension uses this module to list Python dependencies for Zephyr and
active Zephyr modules.
Make YAML validation optional using a new argument.
Signed-off-by: Pieter De Gendt <pieter.degendt@basalte.be>
The coredump parsing script raises an exception as it tries
to format bytes objects as integer (":d").
This is a regression from a recent PR fxing ruff warnings.
Signed-off-by: Damian Krolik <damian.krolik@nordicsemi.no>
Commit f55358bcbf changed all hex values to
use lowercase characters. Update the test accordingly.
Signed-off-by: Pieter De Gendt <pieter.degendt@basalte.be>
This makes using instrumentation with any sample/board combination
much easier, as it eliminates the need to define a custom dt overlay.
Trigger/stopper functions need to be configured at build time.
Signed-off-by: Maciej Sobkowski <msobkowski@antmicro.com>
When pykwalify was changed to jsonschema in commit 58bf2dc the optionality
of 'click-through' was lost. Fix this by making sure there's always a value
in the dictionary, eliminating the following error when the key is missing:
if blob['click-through'] and not args.auto_accept:
~~~~^^^^^^^^^^^^^^^^^
KeyError: 'click-through'
Signed-off-by: Johan Hedberg <johan.hedberg@silabs.com>
The AnyNode class has a `size` property which hides the value sourced from
JSON key 'size', resulting in the script displaying nonsense. Consume the
proper value by directly accessing the __dict__ which holds it instead of
relying on the dot operator.
Signed-off-by: Mathieu Choplain <mathieu.choplain-ext@st.com>
Add boolean_strict_init.cocci to detect improper boolean initialization
and assignment using integer literals (0/1) instead of true/false.
This enforces Zephyr coding guideline #59 (MISRA C:2012 Rule 10.1)
which states that operands shall not be of an inappropriate essential
type.
Rules added:
- rule1_init: detects bool var = 0/1 initialization
- rule2_assign: detects bool_var = 0/1 assignment
The original boolean.cocci (Rule 14.4) remains disabled due to
performance issues on large files causing CI timeouts. See PR #34773.
Enable boolean_strict_init.cocci in guideline_check.py so CI runs this
check on changed files.
Signed-off-by: Sylvio Alves <sylvio.alves@espressif.com>
Apply chnages from dts-linter 0.3.9.
Improve compliance with DTS Coding Style which says that:
4) Hex values in properties, e.g. “reg”, shall use lowercase hex.
The address part can be padded with leading zeros.
Signed-off-by: Kyle Bonnici <kylebonnici@hotmail.com>
Update DTS linter apply lowercase hex values in DTS files
Improve compliance with DTS Coding Style which says that:
4) Hex values in properties, e.g. “reg”, shall use lowercase hex.
The address part can be padded with leading zeros.
This need dts-linter 0.3.9
Signed-off-by: Kyle Bonnici <kylebonnici@hotmail.com>
when --file-type is provided without --file, automatically select
the corresponding build artifact (zephyr.hex, zephyr.bin, or
zephyr.elf) instead of requiring the user to specify both flags.
the validation that --file-type requires --file is preserved in
core.py, but run_common.py now auto-populates --file before the
validation runs.
Signed-off-by: Sylvio Alves <sylvio.alves@espressif.com>
Exclulde `tests/posix/` when running coccinelle checks for reserved names
since POSIX implements much of the reserved names.
This avoids the following failure in CI
```shell
Error: tests/posix/xsi_single_process/src/putenv.c:12: WARNING: \
Violation to rule 21.2 (Should not used a reserved identifier) - putenv
```
Signed-off-by: Chris Friedt <chris@fr4.co>
The generated lists have a trailing semicolon, which for CMake would
indicate a trailing empty item.
Signed-off-by: Pieter De Gendt <pieter.degendt@basalte.be>
Assign a platform to the test so Twister doesn't
pick up multiple platforms.
This reduces the test time by ~2 minutes.
Before: 9 passed in 265.88s (0:04:25)
After: 9 passed in 140.24s (0:02:20)
Signed-off-by: Guðni Már Gilbert <gudni.m.g@gmail.com>
Move a check to run earlier in a for-loop to minimize doing unnecessary
work like creating TestInstance class instances.
This is a very minor optimization when the number of testsuites are low.
But starts to count when there are a lot of testsuites.
Signed-off-by: Guðni Már Gilbert <gudni.m.g@gmail.com>
TLS sections (e.g. .tdata/.tbss) use addresses as TLS offsets and can
overlap normal VMA ranges. Avoid using TLS section address ranges for RAM
bucketing and classify TLS symbols using section flags instead.
Signed-off-by: Jon Ringle <jringle@gridpoint.com>
Introduce a new Zephyr runner, `lldbac`, providing interactive debugging
for both nSIM (simulator) and physical hardware using the run-lldbac
tool from Synopsys ARC MWDT.
This runner provides integrated debugging support:
- debug: Interactive debugging with integrated server management,
Available for both simulator and hardware (integrated mode)
- flash: Flash and run on physical hardware,
Available for hardware only (simulator should use arc-nsim)
Key features:
- Hardware mode: Flash and debug on physical hardware using JTAG flags
- Simulator mode: Interactive debugging on nSIM using run-lldbac with
--nsim flag (props or --tcf). Enable with --simulator flag.
- Board-driven config: Boards can specify defaults in board.cmake
- TCF support: Optional --tcf for simulator mode (mutually exclusive
with --nsim-props)
- GUI support: Optional --gui flag for VS Code debugging
- Postconnect support: Execute commands after connection via
--postconnect-cmd and --postconnect-file for hardware initialization
- Board JSON: Optional --board-json for complex board configurations
Hardware configuration (flag-based):
- --jtag-device: JTAG device name (optional, auto-detected)
- --jtag: JTAG adapter type (default: jtag-digilent)
- --jtag-frequency: JTAG clock frequency (default: 500KHz)
- --postconnect-cmd: Command to execute after connection
(can be used multiple times)
- --postconnect-file: File containing commands to execute after
hardware initialization
- --board-json: Path to board.json file for board configuration
Simulator configuration:
- --simulator: Enable simulator mode (required)
- --nsim-props: nSIM properties file path
- --tcf: Tool Configuration File (alternative to --nsim-props)
Signed-off-by: Afonso Oliveira <afonsoo@synopsys.com>
Signed-off-by: Mohamed Moawad <moawad@synopsys.com>
Currently apply_filters is parsing & validating a snippet YAML
file multiple times, duplicating expensive work.
Do the work once per testsuite instead of for each testsuite
multiplied by number of toolchains.
Signed-off-by: Guðni Már Gilbert <gudni.m.g@gmail.com>
Exit from twister in case of user's error e.g. empty list
of tests provided by user instead of throwing unhandled
exception.
Signed-off-by: Lukasz Fundakowski <lukasz.fundakowski@nordicsemi.no>
When running check_compliance downstream the prefix path is not correct.
This need to be relative to zepphyr base.
This PR ensure that the prefix is set correctly when invoking dts-linter
Signed-off-by: Kyle Bonnici <kylebonnici@hotmail.com>
In C, character literals have type int, so using sizeof() on a
character literal evaluates to sizeof(int) and can easily lead to
subtle size miscalculations.
Add a new checkpatch warning to flag sizeof() usage on character
literals and suggest using an explicit cast instead.
Signed-off-by: Somil Gupta <somil24559@iiitd.ac.in>
For Windows, if the build dir is under same drive with zephyr base, the
generated link shall be relative url like posix style.
If they are in different drive, url is meaningless. So just use raw link
format so that some editors can directly jump to.
Signed-off-by: Yves Wang <zhengjia.wang@nxp.com>
When the LLEXT subsystem detects that a symbol is marked for export from
the main image, but the symbol group in which the export belongs is not
enabled, add a marker in a special section in addition to not placing the
symbol in the final export table.
Add a post-build script which consumes the special section as post-build to
dump information about all discarded symbols in a build artifact, and also
check for common errors (missing Kconfig symbol / improperly named groups).
Signed-off-by: Mathieu Choplain <mathieu.choplain-ext@st.com>