Add dt_compat_enabled_num Kconfig helper function for counting the number
of compatible nodes with status okay.
Signed-off-by: Henrik Brix Andersen <hebad@vestas.com>
The siwx91x need a specific firmware image format. These image end with
.rps extension. The current name of the image is zephyr.bin.rps. However,
the .bin suffix is not relevant. It makes even more sense if we consider
the output of west sign: zephyr.signed.bin.rps. We can simplify these name
by remove the .bin suffix.
Signed-off-by: Jérôme Pouiller <jerome.pouiller@silabs.com>
Silabs siwx91x support signed and encrypted firmwares. This PR includes
support for these features in "west sign"
Co-developed-by: Aasim Shaik <aasim.shaik@silabs.com>
Signed-off-by: Aasim Shaik <aasim.shaik@silabs.com>
Signed-off-by: Jérôme Pouiller <jerome.pouiller@silabs.com>
As the pointer has been removed from struct init_entry, there is no point
to look for it nor to display any information about it (obviously).
Fixing the test script as well.
Signed-off-by: Tomasz Bursztyka <tobu@bang-olufsen.dk>
Add tests to check the correctness of '#address-cells' usage.
The missing tests have allowed bug #77890 to persist for years.
Signed-off-by: Andrey VOLKOV <andrey.volkov@munic.io>
The '_raw_unit_addr()' function was incorrectly written a long time ago.
It tries to look up and use the '#address-cells' of the node containing
the 'interrupts' property itself, instead of using the '#address-cells' of
the interrupt controller's node (or its parent).
As a result, the mapping is successful only if the '#address-cells' value
is the same in both the node and the interrupt controller, all other cases
lead to random errors being generated by the 'gen_defines.py' script.
Also, the function was trying to use the '#address-cells' value as a
little-endian one, which led to unpredictable results as well.
This problem has been fixed too.
Fixes#77890, and probably #78020
Signed-off-by: Andrey VOLKOV <andrey.volkov@munic.io>
Signed-off-by: Ioannis Damigos <ioannis.damigos.uj@renesas.com>
According to the following comment on github
https://github.com/zephyrproject-rtos/zephyr/pull/77900/files#r1750393745
edtlib implementation is partially correct and it is missing two things:
1. If an ancestor has an interrupt-controller or interrupt-map property,
the walk must terminate.
2. If an interrupt-parent property is found, the linked node must be a
valid interrupt controller or nexus.
This commit add these checks.
Signed-off-by: Ioannis Damigos <ioannis.damigos.uj@renesas.com>
When running pytest tests with coverage enabled, the test process starts
to write the coverage data when it receives the SIGTERM signal. On slow
machines, this can take longer than 0.5s. Increase the timeout and only
attempt to kill the process if it is still running after the timeout.
Signed-off-by: Marco Widmer <marco.widmer@bytesatwork.ch>
I'm not sure why this was necessary, but analyzing RX
executables was crashing with a divide by zero error on a
symbol which appeared to be duplicated in this list.
Signed-off-by: Keith Packard <keithp@keithp.com>
RX adds an underscore to all global symbols, so when we look for
log_const_ globals, we need to allow for that.
Signed-off-by: Keith Packard <keithp@keithp.com>
Enable `flash-before` mode for devices connected via serial-pty
the same way, as for physical serial.
This mode allows Twister to start reading from the DUT's serial
connection only after the flashing stage has been completed,
thus excluding an early part of the log stream not directly
related to the current test.
It can help in situations, when the device is connected via some
serial-over-network harness which is still transferring device
logs or keeping in its buffer a tail with different RunID etc.
from the previous test image run.
Signed-off-by: Dmitrii Golovanov <dmitrii.golovanov@intel.com>
Previously, code like the snippet below would not pass compliance checks.
With this change, we add `CONFIG_BOARD_UNIT_TESTING` to the Kconfig allow
list, so that code like the snippet below is not incorrectly reported as
a compliance failure.
```
if defined(CONFIG_BOARD_UNIT_TESTING)
/* unit-testing only */
endif
```
Signed-off-by: Chris Friedt <cfriedt@tenstorrent.com>
Now that Python 3.12 is the minimum required version for Zephyr, ruff
should target that instead of 3.10.
Signed-off-by: Pieter De Gendt <pieter.degendt@basalte.be>
Add the ST-Link GDB server (part of the STM32CubeCLT) as west runner.
The STM32CubeCLT is an all-in-one multi-OS command-line toolset, which is
part of the STM32Cube ecosystem, and notably includes a GDB server for
debugging using ST-Link probes.
This runner supports the "attach", "debug" and "debugserver" commands.
Documentation: https://www.st.com/en/development-tools/stm32cubeclt.html
Signed-off-by: Mathieu Choplain <mathieu.choplain@st.com>
This is an X86 specific option and should not appear as generic debug
option.
Fixeszephyrproject-rtos/zephyr#52929
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
Adds support for checking modules for disallow Kconfig's in boards
and SoCs, which have been defined in a Zephyr module file
Signed-off-by: Jamie McCrae <jamie.mccrae@nordicsemi.no>
On windows the Magic.from_file method fails to convert a PathLike to its
representation.
Pass using os.fspath.
Signed-off-by: Pieter De Gendt <pieter.degendt@basalte.be>
SphinxLint doesn't need to report trailing whitespace errors as it's
already checked by checkpatch.pl.
Signed-off-by: Benjamin Cabé <benjamin@zephyrproject.org>
Few rules are duplicate and are reported multiple times, so disable
those from pylint and rely on ruff reporting them.
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
When we have skips in ctest, the overall result should not be marked as
a SKIP unless all tests have been skipped. If we have passing tests,
mark the test as PASS. Any failures/errors obviously will fail the
tests.
Also pass the skip reason from ctest to twister to give a hint about
what is going on in case of skips.
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
Update getting started guide, release notes, CI actions and
Python version compliance check to use Python 3.12 as
minimum supported version.
Signed-off-by: Benjamin Cabé <benjamin@zephyrproject.org>
Verify that collaborators/maintainers added to the MAINTAINERS.yml file
actually have access to the project and are members.
Only those who already gained access following the process shall be
added to the file.
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
The current test was just a basic sanity check.
This adds actual validation of the SPDX files being generated as
being spec-compliant.
Signed-off-by: Benjamin Cabé <benjamin@zephyrproject.org>
This information is useful for troubleshooting and not available
anywhere else, does not quite belong to this script but this runs for
every PR so it's not a bad place to have it.
Signed-off-by: Fabio Baltieri <fabiobaltieri@google.com>
Adds ability to get properties from the /cpus group,
in the goal of retrieving timebase-frequency for CPU groups.
Signed-off-by: Camille BAUD <mail@massdriver.space>
The code relocation feature allows code and data section to be located
inside a designated RAM region.
Currently, this feature supports relocation of code (text) and data
including mutable data (data), read-only data (rodata), and
zero-initialized data (bss).
However, relocation of non-initialized data sections was not previously
supported, meaning that any data annotated with the __noinit attribute
could not be relocated into the desired RAM region.
This patch adds a NOINIT memory-type which can be used implicitly or
explictly in the zephyr_code_relocate() CMake function. This causes the
build system to generate additional linker-script section-matching rules.
By the nature of noinit data, no action is required by Zephyr at boot.
Signed-off-by: Joel Holdsworth <jholdsworth@nvidia.com>
Functions like `add` and `sub` can only return base 10 integers, which
means they can't really be used to define Kconfig symbols of type `hex`.
For the same reason, there already exist pairs of devicetree functions
named e.g., `dt_node_reg_addr_(int|hex)` after different return types.
Introduce `add_hex`, `sub_hex`, and friends.
To avoid confusion, it should be possible for those new functions to
accept arguments in base 16 as well. It's actually easier to let all
arithmetic functions take their inputs in "any" base, by leveraging
Python's built-in: `int(..., base=0)`.
Signed-off-by: Grzegorz Swiderski <grzegorz.swiderski@nordicsemi.no>
Implement a check in the CI pipeline to enforce
that property names in device tree bindings do
not contain underscores.
Signed-off-by: James Roy <rruuaanng@outlook.com>
Signed-off-by: Martí Bolívar <marti.bolivar@nordicsemi.no>
Disable tracing on exit and do not discard data immediately after
enabling tracing. The length of the data depends on the timings of the
host and targets and may simply be an arbitrary length that does not fit
any trace format or frame.
Signed-off-by: Johann Fischer <johann.fischer@nordicsemi.no>
When the user presses Ctrl+c to exit the infinite capturing loop, ensure
that the cleanup funciton is always executed.
Signed-off-by: Carles Cufi <carles.cufi@nordicsemi.no>
Fix build error when CONFIG_MCUX_COMPONENT_driver.fro_calib is set.
Error message:
modules/hal/nxp/mcux/mcux-sdk-ng/cmake/extension/function.cmake:2084 (if)
if given arguments:
"IN_LIST" "NEED_WRAP_TOOLCHAINS"
The error is because, mcux sdk ng cmake functions `mcux_add_xxx` support
add content based on toolchains. CMake should set current toolchain in
CMake Variable `CONFIG_TOOLCHAIN` to use this feature.
Signed-off-by: Jason Yu <zejiang.yu@nxp.com>
Adds BOOT_IMAGE_EXECUTABLE_RAM_START and BOOT_IMAGE_EXECUTABLE_RAM_SIZE
to the list of mcuboot symbols ignored by the compliance checking
script.
Signed-off-by: Maureen Helm <maureen.helm@analog.com>
On arrays DT_ENUM_HAS_VALUE() and DT_INST_ENUM_HAS_VALUE()
were only checking the first index, this changes it to check all indexes.
Signed-off-by: Fin Maaß <f.maass@vogl-electronic.com>
#78615 Added a check for disallowed Kconfigs which does not work
on Windows machines. Windows machines seem to behave differently when
faced with the \b word boundary marker. I have removed the \b word
boundary marker from the grep commands when os.name=='nt'.
The script performs the same as before for any other os.
Signed-off-by: Jacob Wienecke <jacob.wienecke@nxp.com>
Since compiler options are unconditionally passed to the script,
we may pass arguments that are not recognized. So we change to
only parse known arguments. Currently, it only cares about -l,
which is related to linking libraries.
Signed-off-by: Daniel Leung <daniel.leung@intel.com>
Added automatic KMU key provisioning, when keyfile.json
file exists in the build directory.
This enables automated key provisioning during the
flashing process to enable testing nRF54L aplications using Twister.
Only applicable on nrfutil runner.
Signed-off-by: Grzegorz Chwierut <grzegorz.chwierut@nordicsemi.no>
Added nxp spsdk as west runner.
Secure Provisioning SDK (SPSDK) is a unified, reliable,
and easy to use Python SDK library working across the
NXP MCU portfolio providing a strong foundation from
quick customer prototyping up to production deployment.
Docs: https://spsdk.readthedocs.io
Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
Signed-off-by: Jiafei Pan <Jiafei.Pan@nxp.com>
Secure Provisioning SDK (SPSDK) is a unified, reliable,
and easy to use Python SDK library working across the
NXP MCU portfolio providing a strong foundation from
quick customer prototyping up to production deployment.
Docs: https://spsdk.readthedocs.io
Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
Signed-off-by: Jiafei Pan <Jiafei.Pan@nxp.com>
When not using dynamic interrupt mapping, various interrupt tables are
configured to be stored in read-only memory in the linker script.. Mark
them const so that the linker doesn't complain.
This affects _sw_isr_table, _irq_vector_table, and z_shared_sw_isr_table in
arch/common along with _VectorTable in arch/arc.
Signed-off-by: Keith Packard <keithp@keithp.com>
Statuses of quarantined test cases were not updated properly.
Quarantined tests shouldn't cause errors in integration mode.
Removed obsolate filter type.
Signed-off-by: Maciej Perkowski <maciej.perkowski@nordicsemi.no>
When support for SPDX 2.3 was added, it effectively dropped support for
SPDX 2.2, which in retrospect was a bad idea since SPDX 2.2 is the
version that is the current ISO/IEC standard.
This commit adds a `--spdx-version` option to the `west spdx` command
so that users can generate SPDX 2.2 documents if they want.
Default is 2.3 given that's effectively what shipped for a few releases
now, including latest LTS.
Signed-off-by: Benjamin Cabé <benjamin@zephyrproject.org>