Replaced the k_pipe-based implementation in sockpair with ring_buffer
based implementation instead.
The move to ring_buffer is done to avoid overhead of k_pipe and to align
with the new k_pipe API.
This does not pose any added risk to concurrency as the read and write
functions are protected by semaphores for both spairs.
Signed-off-by: Måns Ansgariusson <Mansgariusson@gmail.com>
The smp_shell module uses k_fifo, but does not include the kernel header
file that defines it. This commit adds the missing include.
Signed-off-by: Måns Ansgariusson <Mansgariusson@gmail.com>
The struct ring_buf is renamed to struct ring_buffer to be able to coexist
with the sys/ring_buffer.h header file.
Signed-off-by: Måns Ansgariusson <Mansgariusson@gmail.com>
The struct ring_buf is renamed to struct ring_buffer to be able to coexist
with the sys/ring_buffer.h header file.
Signed-off-by: Måns Ansgariusson <Mansgariusson@gmail.com>
This commit adds new test cases for the pipe API rework.
* basic.c: Sanity check for pipe operations.
* concurrency.c: Test pipe operations with multiple threads.
* stress.c: Test pipe operations under stress conditions.
And moves the old pipe test cases to the deprecated folder.
Signed-off-by: Måns Ansgariusson <Mansgariusson@gmail.com>
This commit adds polling support to the newly rewritten k_pipe interface.
Changes include:
* Removed ifdef CONFIG_POLL from kernel/poll.c to let both implementations
coexist.
* Added the needed datastructures to the new k_pipe struct.
* k_pipe_write(..) now notifies the poll subsystem that data is available.
Signed-off-by: Måns Ansgariusson <Mansgariusson@gmail.com>
This commit updates the k_pipe documentation to reflect the rewritten
interface.
Changes include:
* Detailed explanations of k_pipe concepts, initialization, and usage.
* Examples for defining, writing to, reading from, flushing,
and closing a pipe.
* Clarified behavior in edge cases and introduced enhanced error-handling
details.
Updated suggested use cases and API references.
Signed-off-by: Måns Ansgariusson <Mansgariusson@gmail.com>
The `k_pipe_*` API has been reworked to provide a more consistent and
intuitive interface. The new API aims to provide a simple to use byte
stream interface that is more in line with the POSIX pipe API.
The previous API has been deprecated and will be removed in a future
release.
Signed-off-by: Måns Ansgariusson <Mansgariusson@gmail.com>
This change was triggered by a review comment linked below:
https://github.com/zephyrproject-rtos/zephyr/pull/83117#issuecomment-2549120181
It extends the current Reviewer Expectations with additional rules
agreed upon by multiple Zephyr contributors in order to simplify and
standardize the decision-making process during PR reviews.
Signed-off-by: Carles Cufi <carles.cufi@nordicsemi.no>
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
Clarify and extend some of the PR and contribution guidelines so that
they cover practices that have been effectively enforced by maintainers,
but were never properly documented.
Signed-off-by: Carles Cufi <carles.cufi@nordicsemi.no>
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
Since the ospi@ node does not exist anymore for the stm32u5 device
there is no more need for this pre_dt_board.cmake file.
Signed-off-by: Francois Ramu <francois.ramu@st.com>
Fixes the CMake Warning on build/zephyr/zephyr.dts:
Warning (spi_bus_bridge): /soc/xspi@47001400: node name
for SPI buses should be 'spi'
Signed-off-by: Francois Ramu <francois.ramu@st.com>
Fixes the CMake Warning on build/zephyr/zephyr.dts:
Warning (spi_bus_bridge): /soc/octospi@52005000: node name
for SPI buses should be 'spi'
<stdout>: Warning (spi_bus_reg): Failed prerequisite 'spi_bus_bridge'
Signed-off-by: Francois Ramu <francois.ramu@st.com>
Fixes the CMake Warning on build/zephyr/zephyr.dts:
Warning (spi_bus_bridge): /soc/octospi@52005000: node name
for SPI buses should be 'spi'
<stdout>: Warning (spi_bus_reg): Failed prerequisite 'spi_bus_bridge'
Signed-off-by: Francois Ramu <francois.ramu@st.com>
Add test that checks reset cause reported by HWINFO.
Check that hwinfo_get_supported_reset_cause() returns
expected value.
Check that hwinfo_get_reset_cause() correctly detects:
- RESET_PIN,
- RESET_SOFTWARE,
- RESET_WATCHDOG.
Check that reset cause can be cleared
with hwinfo_clear_reset_cause().
Signed-off-by: Sebastian Głąb <sebastian.glab@nordicsemi.no>
Introduce sysbuild-specific variants of existing Kconfig checks:
* SysbuildKconfig
* SysbuildKconfigBasic
* SysbuildKconfigBasicNoModules
This involves a few additions to the base `KconfigCheck` class:
* Supporting a variable symbol prefix, to handle `SB_CONFIG_`.
* Generating extra files, including `Kconfig.sysbuild.modules`.
Although these are never sourced outside of sysbuild Kconfig,
they're still generated for every regular Zephyr build, so it's
natural to let all Kconfig checks follow this behavior.
Signed-off-by: Grzegorz Swiderski <grzegorz.swiderski@nordicsemi.no>
The KCONFIG_BINARY_DIR/{boards,soc,arch}/ directories are only relevant
for `KconfigCheck.get_v2_model()`, so generate them within this method.
Signed-off-by: Grzegorz Swiderski <grzegorz.swiderski@nordicsemi.no>
HWMv1-specific Kconfig checks were meant to be removed before HWMv2 was
merged into `main` (see `collab-hwm` history), but some traces remained.
Do another round of cleanup.
Signed-off-by: Grzegorz Swiderski <grzegorz.swiderski@nordicsemi.no>
So far, the behavior of different Kconfig checks has been parametrized
using the `run()` method, and every new check has introduced with it a
new argument to that method.
It's possible to replace each `run()` argument by way of overriding
different class methods and making better use of inheritance:
free=False Stub check_no_undef_outside_kconfig()
no_modules=True Stub get_modules()
filename Introduce class member FILENAME
hwm (unused)
This should establish a more scalable and straightforward pattern for
adding future Kconfig checks. It also favors composability, which will
come in handy when implementing checks for sysbuild Kconfig.
Additionally, avoid duplicating `doc` and `path_hint` in every subclass.
Signed-off-by: Grzegorz Swiderski <grzegorz.swiderski@nordicsemi.no>
Add missing quotes around string values, so that they won't be
interpreted as undefined symbol names.
Signed-off-by: Grzegorz Swiderski <grzegorz.swiderski@nordicsemi.no>
Device adapter strips all whitespace from output lines causing test
failures when matching default shell prompt "uart:~$ " with trailing
space. Update _handle_device_output to only strip line endings (\r\n)
while preserving whitespace required for prompt detection.
A testcase sample.pytest.shell.no_vt100 was added to verify prompt
matching works with CONFIG_SHELL_VT100_COLORS disabled.
Signed-off-by: Thomas Günther <thomas.guenther@limatica.com>
Add endian specific buffer convert and copy functions.
This is helpful when you want to convert arbitrary data lengths
but only swapping byte order when needed.
Signed-off-by: Joakim Andersson <joerchan@gmail.com>
On the nucleo_g071rb , nucleo_g070rb and nucleo_g0b1re boards,
the CN7 MORPHO_L_9 to 11 pin are not correctly defined
in the st_morpho_connector.dtsi. This PR is fixing this.
Signed-off-by: Francois Ramu <francois.ramu@st.com>
Fix bug in modem_socket where an unallocated object can be returned
for file descriptor zero before the object has been used one time.
Signed-off-by: Joakim Andersson <joerchan@gmail.com>
Modem socket does not build with NET_SOCKETS enabled.
Referencing socket_data in struct net_context.
Signed-off-by: Joakim Andersson <joerchan@gmail.com>
In current implementation, the `accept` cannot be identified if the
same one `accept` callback is passed by the upper layer.
Similar with `accept` of `bt_l2cap_server.accept`, add a parameter
`server` to the `bt_rfcomm_server.accept` callback.
Add a argument `server` to function bt_hfp_hf_accept() to avoid
building issue for HFP_HF.
Add a argument `server` to function rfcomm_accept() to avoid building
issue for shell/rfcomm.c.
Signed-off-by: Lyle Zhu <lyle.zhu@nxp.com>
In the function `bt_rfcomm_server_register()`, the channel cannot be
dynamic allocated. And only pre-set channel is supported.
Improve the function `bt_rfcomm_server_register()` to support the
dynamic channel allocation if the passed channel is zero.
Signed-off-by: Lyle Zhu <lyle.zhu@nxp.com>
This commit deals mainly with bsim tests which have `common.c/h` files.
It does the following changes:
* Use functionality from the `babbelkit` library for common functions
related to flags, test progression (failing, passing etc.) and
synchronization between two devices. Locally defined equivalents are
removed.
* Remove the `common.c/h` containing only functionality that is provided
by the `babblekit` library.
* Remove the `test_pre_init_f` and `test_tick_f` functions (commonly
implemented as `test_init` and `test_tick`) from the modified tests.
These functions are not needed as they were only used to fail the test
if a device didn't complete the test within a certain time frame. This
is already handled by the `sim_length` argument used in the test
scripts.
* Changes use of `atol` to `strtol` as the prior is against Zephyr
coding guidelines.
Signed-off-by: Håvard Reierstad <haavard.reierstad@nordicsemi.no>
Print the register address, mask and value as hexadecimal to be more
intuitive and also print out the actual value from the register to have
some insights.
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
Previously, if there was no `zephyr,code-partition` chosen DT node, then
enabling CONFIG_USE_DT_CODE_PARTITION would make all of flash available
to the linker, with no immediate indication of that to the user.
To avoid this discrepancy, make the USE_DT_CODE_PARTITION Kconfig symbol
depend on that chosen node being present. For the sake of verbosity, add
a dedicated symbol to describe this: HAS_DT_CODE_PARTITION.
An additional benefit is that certain platforms or applications can now
use `select USE_DT_CODE_PARTITION` to signal `zephyr,code-partition` as
a hard requirement, by failing the build whenever the node is missing.
Signed-off-by: Grzegorz Swiderski <grzegorz.swiderski@nordicsemi.no>
This commit removes the TF-M support for the `xtools` toolchain variant,
which has been deprecated since Zephyr v3.3.0 and now removed.
Note that `zephyr` toolchain variant must be used instead of `xtools` when
building with Zephyr SDK.
Signed-off-by: Stephanos Ioannidis <root@stephanos.io>
This commit removes all references to the `xtools` toolchain variant in the
twister scripts.
Note that the `xtools` toolchain variant has been deprecated since Zephyr
v3.3.0 and now removed.
Signed-off-by: Stephanos Ioannidis <root@stephanos.io>
This commit removes all references to the `xtools` toolchain variant in the
board YAML files.
Note that the `xtools` toolchain variant has been deprecated since Zephyr
v3.3.0 and now removed.
The removal process was automated using the following command line:
git grep -l xtools -- boards/*.{yml,yaml} | \
xargs -n 1 -P $(nproc) \
yq -i 'del(.toolchain[] | select(. == "xtools"))'
Signed-off-by: Stephanos Ioannidis <root@stephanos.io>
The `xtools` toolchain variant, which was originally introduced to be used
with the Crosstool-NG-based Zephyr SDK toolchains and has been replaced by
the `zephyr` toolchain variant, has been marked as deprecated since Zephyr
v3.3.0.
Signed-off-by: Stephanos Ioannidis <root@stephanos.io>
With ACE3 the logging is skipped in dai_ssp_start(), move the code under
the same if cases to preserve them.
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
Increase the MAX_THREAD_BYTES from 5->6 to accomodate
for devices with an increased number of threads in the
tests schedule_api and dynamic_thread_stack.
Signed-off-by: Georgios Vasilakis <georgios.vasilakis@nordicsemi.no>
The buffer `BT_RFCOMM_BUF_SIZE` is used to define the TX buffer size of
TX pool.
In current implementation, the TX buffer size of RFCOMM cannot be
calculated due to the macro `BT_RFCOMM_BUF_SIZE` is defined in internal
header file `rfcomm_internal.h`.
Move the macro `BT_RFCOMM_BUF_SIZE` form internal header file
`rfcomm_internal.h` to interface `rfcomm.h`.
Signed-off-by: Lyle Zhu <lyle.zhu@nxp.com>