The POSIX_CLOCK option does not correspond to any standard
option. It was used to active features of several distinct
POSIX Options and Option Groups, which complicated API and
application configuration as a result.
POSIX_CLOCK is being deprecated in order to ensure that Zephyr's
POSIX Kconfig variables correspond to those defined in the
specification, as of IEEE 1003.1-2017.
Additionally, CONFIG_TIMER is being deprecated because it does
not match the corresponding POSIX Option (_POSIX_TIMERS).
With this deprecation, we introduce the following Kconfig
options that map directly to standard POSIX Option Groups by
simply removing "CONFIG_":
* CONFIG_POSIX_TIMERS
Similarly, we introduce the following Kconfig options that
map directly to standard POSIX Options by simply removing
"CONFIG":
* CONFIG_POSIX_CLOCK_SELECTION
* CONFIG_POSIX_CPUTIME
* CONFIG_POSIX_DELAYTIMER_MAX
* CONFIG_POSIX_MONOTONIC_CLOCK
* CONFIG_POSIX_TIMEOUTS
* CONFIG_POSIX_TIMER_MAX
In order to maintain parity with the current feature set, we
introduce the following Kconfig options that map directly to
standard POSIX Option Groups by simply removing "CONFIG_":
* CONFIG_POSIX_MULTI_PROCESS - sleep()
Similarly, in order to maintain parity with the current feature
set, we introduce the following additional Kconfig options that
map directly to standard POSIX Options by simply removing
"CONFIG":
* CONFIG_XSI_SINGLE_PROCESS - gettimeofday()
Signed-off-by: Chris Friedt <cfriedt@tenstorrent.com>
There were two Kconfig constants defined for (effectively) the
same thing in Zephyr. Namely, RTSIG_MAX - the highest valued
real-time signal.
Deprecate CONFIG_POSIX_LIMITS_RTSIG_MAX in favour of
CONFIG_POSIX_RTSIG_MAX since the latter more closely matches
convention.
Signed-off-by: Chris Friedt <cfriedt@tenstorrent.com>
Namespaced the generated headers with `zephyr` to prevent
potential conflict with other headers.
Introduce a temporary Kconfig `LEGACY_GENERATED_INCLUDE_PATH`
that is enabled by default. This allows the developers to
continue the use of the old include paths for the time being
until it is deprecated and eventually removed. The Kconfig will
generate a build-time warning message, similar to the
`CONFIG_TIMER_RANDOM_GENERATOR`.
Updated the includes path of in-tree sources accordingly.
Most of the changes here are scripted, check the PR for more
info.
Signed-off-by: Yong Cong Sin <ycsin@meta.com>
Modify the SMF such that state transitions from parent states choose the
correct Least Common Ancestor based on the transition source rather than
the current state.
SMF set as experimental.
Signed-off-by: Glenn Andrews <glenn.andrews.42@gmail.com>
Add a link to _POSIX_CLOCK_MONOTONIC, correct the
_POSIX_RAW_SOCKETS kconfig option.
Define _POSIX_CHOWN_RESTRICTED and _POSIX_NO_TRUNC so that they
conform to the spec.
Signed-off-by: Chris Friedt <cfriedt@tenstorrent.com>
Link the option _POSIX_REALTIME_SIGNALS to the option group
POSIX_REALTIME_SIGNALS since it is well-defined in the spec.
Add the definition to the option_groups page.
Signed-off-by: Chris Friedt <cfriedt@tenstorrent.com>
This sets the number of arguments for SMF_CREATE_STATE() to always
be the same, independent of the selected Kconfig options.
Signed-off-by: Fin Maaß <f.maass@vogl-electronic.com>
Add a diagram that was first created for eoss 2024 to help
visualize the relation between the different application
environment profiles of IEEE 1003.13-2003.
Signed-off-by: Chris Friedt <cfriedt@tenstorrent.com>
The POSIX Application Environment Profiles are additive and
offer incrementally more features over the System Interfaces.
For example, PSE51 includes all of the features of the Minimal
Realtime System Profile plus all of the System Interfaces.
PSE52 includes all of the features of the Realtime Controller
System Profile, plus the features of PSE51, plus the System
Interfaces, and so on.
It makes sense to take advantage of that and to condense the
AEP documenation.
Signed-off-by: Chris Friedt <cfriedt@tenstorrent.com>
Define additional options and option groups for PSE51 to PSE53.
The options groups added in this commit are:
POSIX_SIGNAL_JUMP
POSIX_FILE_SYSTEM
POSIX_PIPE
POSIX_FILE_LOCKING
The options added in this commit are:
_POSIX_MEMLOCK
_POSIX_MEMLOCK_RANGE
_POSIX_MONOTONIC_CLOCK
_POSIX_SHARED_MEMORY_OBJECTS
_POSIX_THREAD_CPUTIME
Signed-off-by: Chris Friedt <cfriedt@tenstorrent.com>
Previously, some links were not resolving properly since they
lacked the :ref: prefix, so it was added.
Signed-off-by: Chris Friedt <cfriedt@tenstorrent.com>
Mark the _POSIX_ASYNCHRONOUS_IO headers as supported, and note
the deviation that they return -1 and set errno to ENOTSUP.
At some later date, it might be possible to implement the
standard functions with other Zephyr API calls.
Signed-off-by: Chris Friedt <cfriedt@tenstorrent.com>
Instead of chapters, make device runtime power management and
system-managed device power management sections.
Signed-off-by: Flavio Ceolin <flavio.ceolin@intel.com>
There is a whole section dedicated to power domains. The brief
information in device power management was not adding anything.
Signed-off-by: Flavio Ceolin <flavio.ceolin@intel.com>
Add POSIX FD_MGMT option and mark ftruncate as supported
in POSIX Option group Documentation
Signed-off-by: Karthikeyan Krishnasamy <karthikeyan@linumiz.com>
The following changes:
- Generally reword all the paragraphs to hopefully by clearer and
easier to read by using more straighforward and direct wording,
and avoiding run on sentences and ambiguous/wrong grammar, etc.
- Move Examples to the bottom of the page.
- Fix a typo in the code expression where there was an extra
parentheses.
Signed-off-by: Declan Snyder <declan.snyder@nxp.com>
Update the Zephyr `gdbstub` documentation with its 'how to use'
example to align with former sample application replaced by the test.
Fixes: zephyrproject-rtos#70966
Signed-off-by: Dmitrii Golovanov <dmitrii.golovanov@intel.com>
Update system pm diagram to reflect recent changes in the subysystem.
Use graphviz to create this new diagram.
Signed-off-by: Flavio Ceolin <flavio.ceolin@intel.com>
s/System Power Management/System Managed Device Power Management/g
System Power Management is confusing and does not tell
anything about device. Change it for something more explicit.
Signed-off-by: Flavio Ceolin <flavio.ceolin@intel.com>
`pthread_attr_getinheritsched()` and
`pthread_attr_setinheritsched()` are now implemented,
mark it so.
signed-off-by: Gaetan Perrot <gaetanperrotpro@gmail.com>
Mark the POSIX_NETWORKING Option Group as supported. The
POSIX_NETWORKING Option Group is required for PSE53 Conformance.
Signed-off-by: Chris Friedt <chrisfriedt@gmail.com>
Add support to coredump_gdbserver.py for running in a pipeline,
communicating through stdin/stdout instead of a socket.
This allows starting it from inside gdb, with:
target remote | coredump_gdbserver.py --pipe <elf_file> <log_file>
Signed-off-by: Kevin ORourke <kevin.orourke@ferroamp.se>
Previously, XSI_THREADS_EXT included a note about
undefined behaviour. However, the required functions
pthread_attr_getstack(), pthread_attr_setstack(),
pthread_getconcurrency(), and pthread_setconcurrency()
are all conformant.
Remove the unneeded note (all of them)
Signed-off-by: Chris Friedt <chrisfriedt@gmail.com>
Mark pthread_rwlockattr_setpshared() and
pthread_rwlockattr_getpshared() as supported in the POSIX
Options documentation.
Signed-off-by: Christopher Friedt <cfriedt@meta.com>
Mark the POSIX_SINGLE_PROCESS Option Group as supported
in PSE51, PSE52, and PSE53 Application Environment
Profiles.
Signed-off-by: Christopher Friedt <cfriedt@meta.com>
The `_POSIX_CPUTIME` interface requires
`CLOCK_PROCESS_CPUTIME_ID` and `clock_getcpuclockid()` to be
present. Both of those are now available and therefore we can
mark `_POSIX_CPUTIME` as supported for PSE53.
Signed-off-by: Christopher Friedt <cfriedt@meta.com>
Previously, XSI_THREADS_EXT included a note about
undefined behaviour. However, the required functions
pthread_attr_getstack(), pthread_attr_setstack(),
pthread_getconcurrency(), and pthread_setconcurrency()
are all conformant.
Remove the unneeded note.
Signed-off-by: Christopher Friedt <cfriedt@meta.com>
Fixes a typo found by @bryceschober
Spell-checked the rest of the document and found no issues.
Signed-off-by: Glenn Andrews <glenn.andrews.42@gmail.com>
Mark `sched_setparam()` , `sched_setscheduler()`
and `sched_rr_get_interval()`
have implemented but will fail with ``ENOSYS``
Were missing on the documentation before.
signed-off-by: Gaetan Perrot <gaetanperrotpro@gmail.com>
Mark `putmsg()` as implemented but will fail with ``ENOSYS``
Was missing on the documentation before.
signed-off-by: Gaetan Perrot <gaetanperrotpro@gmail.com>
`getmsg()` and `getpmsg()` are now implemented, mark it so.
There are place holder so will fail with ENOSYS.
signed-off-by: Gaetan Perrot <gaetanperrotpro@gmail.com>
Incorporated changes requested by @keith-zephyr:
1. Grammar fix
2. Make explicit that transition to self in super-states is not supported
Signed-off-by: Glenn Andrews <glenn.andrews.42@gmail.com>
Brings SMF framework closer into alignment with accepted Hierarchical State
Machine operation by:
1. Allowing 'programming by difference' by having some child states handle
events and prevent propagation up to the parent run actions while others
propagate events up to a common handler in a parent state.
2. Optionally allow initial transitions within a parent state to determine
the most nested child state to transition to.
3. Adding a test case for `CONFIG_SMF_INITIAL_TRANSITION` and
`smf_set_handled()`
4. Updating documentation for the new API (and fixing some references)
There was discussion in https://github.com/zephyrproject-rtos/zephyr/issues/55344
about not making the initial transition a Kconfig option, but I'm not sure
of any way else of doing it without permanently adding a pointer to each
`smf_state` entry, which is a problem for resource-constrained devices.
This does not fix https://github.com/zephyrproject-rtos/zephyr/issues/66341
but documentation has been updated to warn users of the issue.
Signed-off-by: Glenn Andrews <glenn.andrews.42@gmail.com>
Move part of the Nanopb sample documentation to a serialization entry
and add information on how to configure proto files.
Signed-off-by: Pieter De Gendt <pieter.degendt@basalte.be>
Since the removal of logging v1, there's only one version,
so remove the '2' from the function references for the docs
to link to the correct functions properly.
Signed-off-by: Yong Cong Sin <ycsin@meta.com>
The sensor-based illustration example did not consider the HLP feature
and used the work queue to publish to the Trigger channel. With the HLP,
that is not necessary anymore. The timer ISR can publish to the channel
directly. So, this commit improves the example description by
considering the HLP feature.
Signed-off-by: Rodrigo Peixoto <rodrigopex@gmail.com>
Update outdated links. This includes a new repository address for the
Golioth OTA sample and an updated path for the OTA documentation.
Signed-off-by: Mike Szczys <mike@golioth.io>
`sched_getscheduler()` and `sched_getparam()`
is now implemented, mark it so.
Was missing on the documentation before.
signed-off-by: Gaetan Perrot <gaetanperrotpro@gmail.com>
The CONFIG_APP_LINK_WITH_POSIX_SUBSYS option was originally
present so that internal POSIX implementation headers would be
on the include path.
There is no implicit need for any app or library to include
private POSIX headers. Instead, the standard POSIX API should
be used.
Signed-off-by: Christopher Friedt <cfriedt@meta.com>
Updates in documentation support for `sysconf` API
in the `POSIX_SINGLE_PROCESS` group option.
Signed-off-by: Adam Wojasinski <awojasinski@baylibre.com>
`mq_timedsend()` and `mq_timedreceive()` are implemented but
the information is missing in the documentation.
Signed-off-by: Adam Wojasinski <awojasinski@baylibre.com>
Utilize a code spell-checking tool to scan for and correct spelling errors
in all files within the doc/services directory.
Signed-off-by: Pisit Sawangvonganan <pisit@ndrsolution.com>
Updates in documentation support for `mq_notify` API
in `_POSIX_MESSAGE_PASSING` group option.
Signed-off-by: Adam Wojasinski <awojasinski@baylibre.com>
Update the mention of the "currently integrated" version of TFM to match
the latest upgrade.
Signed-off-by: Markus Swarowsky <markus.swarowsky@nordicsemi.no>
Any C library with conformant implementations of POSIX features,
options, or option groups can be used in place of the versions
provided with Zephyr's POSIX implementation as long as there is
no source licensing compatibility or linking clause violation.
Implementations of such features, options, or option groups can
be used in whole or in part, as long as there is no conflict
with the rest of Zephyr or the application.
Signed-off-by: Christopher Friedt <cfriedt@meta.com>
Add POSIX_C_LANG_JUMP and POSIX_C_LANG_MATH option groups
with links to specification details on opengroup.org .
Signed-off-by: Christopher Friedt <cfriedt@meta.com>
In order to reduce verbosity on the primary Option Groups page,
simply add a note that the POSIX_C_LANG_SUPPORT is considered
supported with newlib, picolibc, or any other libc conforming to
the ISO C standard.
Add a link to the language support page that details C, C++, ..
Signed-off-by: Christopher Friedt <cfriedt@meta.com>
Add an input driver to read data from an analog device, such as a
thumbstick, connected to an ADC channel, and report it as an input
device.
Signed-off-by: Fabio Baltieri <fabiobaltieri@google.com>
The `sem_open()`, `sem_close()` & `sem_unlink()` functions are
now implemented, so mark them as supported.
Signed-off-by: Yong Cong Sin <ycsin@meta.com>
This driver supports few different hardware configurations, add a
document page showing some of them next to some schematics snippets
Signed-off-by: Fabio Baltieri <fabiobaltieri@google.com>
* use _POSIX_AEP_REALTIME_DEDICATED instead of CONTROLLER
* use _POSIX_AEP_REALTIME_DEDICATED instead of MINIMAL in
comment
Signed-off-by: Christopher Friedt <cfriedt@meta.com>
Resolve wrong documentation c function links for
irq: z_shared_isr, rtio: rtio_cqe_get_mempool_buffer
and sensor: sensor_read
Signed-off-by: Simon Hein <Shein@baumer.com>
Add a delay parameter to asynchronous device runtim put. This allows
to delay the put operation what is useful to avoid multiple states
transitions.
Signed-off-by: Flavio Ceolin <flavio.ceolin@intel.com>
samples/boards/nrf/system_off does not enable CONFIG_PM so
it should not be listed as an example in system power management
documentation.
Signed-off-by: Flavio Ceolin <flavio.ceolin@intel.com>
Add a name for the Kconfig choice symbol
indicating the Zbus subscriber buffer allocation
and adjust the name of the existing choices.
Signed-off-by: Bartosz Bilas <bartosz.bilas@hotmail.com>
Previously pthread_attr_getguardsize() and
pthread_attr_setguardsize() were part of the
XSI_THREADS_EXT option group. That is no longer the case.
In IEEE 1003.1-2017 they are part of the POSIX_THREADS_EXT
option group.
Signed-off-by: Christopher Friedt <cfriedt@meta.com>
The function pthread_setcanceltype() is supported and mandatory
for conforming implementations.
Mark it as supported since the preceding commit.
Signed-off-by: Christopher Friedt <cfriedt@meta.com>
Mark pthread_atfork() as supported in the documentation.
This option is a mandatory requirement (i.e. it must be present)
even when calling it produces undefined behaviour. That is the
case here, and documentation sbould be updated to reflect that.
Signed-off-by: Christopher Friedt <cfriedt@meta.com>
Revise the structure of the POSIX API docs. This separates
related items out to dedicated pages. Further improvements
could yet be made - e.g. using the 'collapse' feature to
expand and collapse large sections of text or tables.
Signed-off-by: Christopher Friedt <cfriedt@meta.com>
Fixes the "rc" text to include that it can also be returned when
SMP version 2 is used to indicate an SMP error instead of a group
error.
Signed-off-by: Jamie McCrae <jamie.mccrae@nordicsemi.no>
Refer to the native_sim overlay instead of the native_posix one,
as native_posix is going to be deprecated soon.
Signed-off-by: Alberto Escolar Piedras <alberto.escolar.piedras@nordicsemi.no>
Another round of repeated words cleanup. This commit tries to keep the
diff minimal and line wrapping was mostly left intact in the touched
files, as having them consistent across the documentation is probably
the topic of a future tree-wide cleanup (or not)
Signed-off-by: Benjamin Cabé <benjamin@zephyrproject.org>
Add a input_kbd_matrix doxygen group and add this to the other Input
APIs page, add few missing argument documentation entries.
Signed-off-by: Fabio Baltieri <fabiobaltieri@google.com>
In the docs replace the references to native_posix with native_sim.
In the sample, add overlays for native_sim, and add native_sim to filter
and as default integration platform.
Signed-off-by: Alberto Escolar Piedras <alberto.escolar.piedras@nordicsemi.no>
The examples in the RTIO docs were nice but continuously became out of
date without being updated. This is unfortunately the downside of
doc-only samples like this.
Some real, buildable, samples right be better but will take a little
time to write up. In the meantime drop the examples in the docs to avoid
confusion.
Signed-off-by: Tom Burdick <thomas.burdick@intel.com>
The icmsg and icmsg_me backends has limitations in context of
concurrent access to single instance. Some limitations are:
* sending by more thread at the same time may cause -EBUSY
* allocating TX buffer will cause errors in other threads that want
to allocate before first thread sent the message,
* during no-copy receive, when RX buffer is on hold receiving is
totally blocked.
This backend resolves those limitations by adding dynamically allocated
buffers on shared memory next to ICmsg circular buffer. The data is
passed using those buffers, so concurrency is not a problem. The ICmsg
is used only to pass short 2-byte messages containing references to
those buffers. The backend also supports multiple endpoint.
The ipc/icmsg_me sample was modified to support this backend.
Signed-off-by: Dominik Kilian <Dominik.Kilian@nordicsemi.no>
Function prototype in PM device implementation documentation had the
incorrect prototype for device power management. Fix this to align
with the correct prototype.
Signed-off-by: Daniel DeGrasse <daniel.degrasse@nxp.com>
Adding support for echo option if telnet commands are supported. This is
useful when the telnet client is in character mode. It allows to use the
arrow keys, ctrl-c and more. Something to keep in mind is that when
character mode is turned on by the client, network traffic is
considerably increased as each typed character is sent over the wire.
Note: echo mode is only supported if SHELL_TELNET_SUPPORT_COMMAND is
enabled.
Signed-off-by: David Corbeil <david.corbeil@dynon.com>
The figure and table related to the VDED notification sequence were wrong.
It fixes that by changing the image and adjusting the table content.
Signed-off-by: Rodrigo Peixoto <rodrigopex@gmail.com>
Remove gdbstub sample (samples/subsys/debug/gdbstub) as duplicated
by a test (tests/subsys/debug/gdbstub).
Update the GDB stub documentation.
Signed-off-by: Dmitrii Golovanov <dmitrii.golovanov@intel.com>
Fixed a few occurrences of incorrect references to Kconfig options
(missing the CONFIG_ prefix)
Signed-off-by: Benjamin Cabé <benjamin@zephyrproject.org>
Add documentation for the new way to storage observers, the message
subscribers, and the confirmed message sample.
Signed-off-by: Rodrigo Peixoto <rodrigopex@gmail.com>
Adds a note on how to configure and what to beware of when
disabling mutex support in a multithreading application
Signed-off-by: Jamie McCrae <jamie.mccrae@nordicsemi.no>
Specification for MCUmgr OS group command allowing to query
for bootloader information.
Provide information on supported MCUboot parameters query by MCUmgr
group OS.
Signed-off-by: Dominik Ermel <dominik.ermel@nordicsemi.no>
The list of user-defined functions in "User-Defined Tracing" section was
not properly formatted (missing blank line).
Switched the (broken) list to a code block to now provide C syntax
highlighting.
Signed-off-by: Benjamin Cabé <benjamin@zephyrproject.org>
In Zephyr, this is let to the disk access API user. There is nothing the
driver can do about it.
Signed-off-by: Tomasz Bursztyka <tomasz.bursztyka@linux.intel.com>
This migrates the subsys code samples to the new Sphinx code-sample
extension, making it easier to find relevant samples when browsing
API reference.
Signed-off-by: Benjamin Cabé <benjamin@zephyrproject.org>
Use the new code-sample directive and roles to document the networking
samples so that they show up as "Related samples" when browsing the
various relevant networking APIs.
Signed-off-by: Benjamin Cabé <benjamin@zephyrproject.org>
This is the final step in making the `zephyr,memory-attr` property
actually useful.
The problem with the current implementation is that `zephyr,memory-attr`
is an enum type, this is making very difficult to use that to actually
describe the memory capabilities. The solution proposed in this PR is to
use the `zephyr,memory-attr` property as an OR-ed bitmask of memory
attributes.
With the change proposed in this PR it is possible in the DeviceTree to
mark the memory regions with a bitmask of attributes by using the
`zephyr,memory-attr` property. This property and the related memory
region can then be retrieved at run-time by leveraging a provided helper
library or the usual DT helpers.
The set of general attributes that can be specified in the property are
defined and explained in
`include/zephyr/dt-bindings/memory-attr/memory-attr.h` (the list can be
extended when needed).
For example, to mark a memory region in the DeviceTree as volatile,
non-cacheable, out-of-order:
mem: memory@10000000 {
compatible = "mmio-sram";
reg = <0x10000000 0x1000>;
zephyr,memory-attr = <( DT_MEM_VOLATILE |
DT_MEM_NON_CACHEABLE |
DT_MEM_OOO )>;
};
The `zephyr,memory-attr` property can also be used to set
architecture-specific custom attributes that can be interpreted at run
time. This is leveraged, among other things, to create MPU regions out
of DeviceTree defined memory regions on ARM, for example:
mem: memory@10000000 {
compatible = "mmio-sram";
reg = <0x10000000 0x1000>;
zephyr,memory-region = "NOCACHE_REGION";
zephyr,memory-attr = <( DT_ARM_MPU(ATTR_MPU_RAM_NOCACHE) )>;
};
See `include/zephyr/dt-bindings/memory-attr/memory-attr-mpu.h` to see
how an architecture can define its own special memory attributes (in
this case ARM MPU).
The property can also be used to set custom software-specific
attributes. For example we can think of marking a memory region as
available to be used for memory allocation (not yet implemented):
mem: memory@10000000 {
compatible = "mmio-sram";
reg = <0x10000000 0x1000>;
zephyr,memory-attr = <( DT_MEM_NON_CACHEABLE |
DT_MEM_SW_ALLOCATABLE )>;
};
Or maybe we can leverage the property to specify some alignment
requirements for the region:
mem: memory@10000000 {
compatible = "mmio-sram";
reg = <0x10000000 0x1000>;
zephyr,memory-attr = <( DT_MEM_CACHEABLE |
DT_MEM_SW_ALIGN(32) )>;
};
The conventional and recommended way to deal and manage with memory
regions marked with attributes is by using the provided `mem-attr`
helper library by enabling `CONFIG_MEM_ATTR` (or by using the usual DT
helpers).
When this option is enabled the list of memory regions and their
attributes are compiled in a user-accessible array and a set of
functions is made available that can be used to query, probe and act on
regions and attributes, see `include/zephyr/mem_mgmt/mem_attr.h`
Note that the `zephyr,memory-attr` property is only a descriptive
property of the capabilities of the associated memory region, but it
does not result in any actual setting for the memory to be set. The
user, code or subsystem willing to use this information to do some work
(for example creating an MPU region out of the property) must use either
the provided `mem-attr` library or the usual DeviceTree helpers to
perform the required work / setting.
Signed-off-by: Carlo Caione <ccaione@baylibre.com>
Key combinations described using the sphinx :kbd: role should not have
a white space around + sign
i.e. should be :kbd:`Ctrl+d` not :kbd:`Ctrl + d`
Signed-off-by: Benjamin Cabé <benjamin@zephyrproject.org>
- Updated basic samples READMEs to use the new zephyr:code-sample::
directive. Dropped "-sample" suffix that's not required anymore now
that samples have their own namespace.
- Updated all references to the samples to use the :zephyr:code-sample:
role. Checked and updated the wording of said references to account
for the fact that samples should not have "... sample" in their name
anymore.
Signed-off-by: Benjamin Cabé <benjamin@zephyrproject.org>
Use the new code-sample directive and roles to document the zbus samples
so that they show up as "Related samples" when browsing zbus API.
Signed-off-by: Benjamin Cabé <benjamin@zephyrproject.org>
Add details of the new VDED sequence;
Change the function iterators documentation considering `user_data`;
Adjust the runtime observers' allocation information. Now it uses heap
instead of memory slabs;
Adjust the configuration list and details of it.
Signed-off-by: Rodrigo Peixoto <rodrigopex@gmail.com>
- Updated TFM v1.4 to v1.8
- Delete the TFM "Audit log" service, as it was removed from TFM.
- Delete not used secure service abbreviations.
Signed-off-by: Andrej Butok <andrey.butok@nxp.com>
Add support for SPI host command backend for STM32 chips family.
Unfortunately, the current SPI API can't be used to handle the host
commands communication. The main issues are unknown command size sent
by the host(the SPI transaction sends/receives specific number of bytes)
and need to constant sending status byte(the SPI module is enabled and
disabled per transaction). Thus the SPI backend includes basic SPI STM32
driver adjusted to host command specification.
Signed-off-by: Dawid Niedzwiecki <dawidn@google.com>
This is a stable API treewide change changing the newly introduced
"ret" response to "err" as it was overlooked that the shell_mgmt
group already used "ret" to return the exit code of the command
and this created a collision. Since SMP version 2 was only recently
introduced, there should not be any public implementations of it
as of yet, but the original function has been kept and marked as
deprecated.
Signed-off-by: Jamie McCrae <jamie.mccrae@nordicsemi.no>
The simple executor was removed with the usage of the spsc queue but
some stray references remained. Remove those.
Signed-off-by: Tom Burdick <thomas.burdick@intel.com>
Looking back at the current INPUT_LISTENER_CB_DEFINE api naming, it
feels like it's a bit overloaded. Rename it to a simpler
INPUT_CALLBACK_DEFINE.
Signed-off-by: Fabio Baltieri <fabiobaltieri@google.com>
Fixes a minor documentation issue and suggests/documents additional RTT
tracing and logging options.
Showcases logging via RTT UART which is now available w/o restrictions
due to the preceding change. This has been tested on CC13/26xx hardware.
Signed-off-by: Florian Grandel <fgrandel@code-for-humans.de>
The RTIO API docs weren't being shown. I made a poor assumption thinking
I could simply include the top level doxygen group in index.rst which isn't
the case. Fix the groups, and remove a note about a poll function
that doesn't exist yet.
Signed-off-by: Tom Burdick <thomas.burdick@intel.com>
Add a new API to perform an immediate system power off:
`sys_poweroff()`.
Until now, this functionality has been implemented via the system power
management module, but in a clunky fashion. The way system PM works is
by defining some idle states in devicetree, that, given some properties
(e.g. minimal residency, exit latency, etc.) are automatically selected
when system goes to idle based on the expected next wake-up. However,
system off is a power state that one typically wants to control manually
from the application because it implies state loss, and in most cases,
configuring some sort of wake-up source. So in general, it is not
desired to let the system enter this state automatically. This led to
the following stuff in-tree:
from `boards/arm/mimxrt595_evk/mimxrt595_evk_cm33.dts`:
```c
/*
* Deep power-down mode is supported in this SoC through
* 'PM_STATE_SOFT_OFF' state. There is no entry for this in device tree,
* user can call pm_state_force to enter this state.
*/
```
That is, state not being defined in devicetree so that PM subsystem
doesn't pick it automatically, but still implemented in in the PM hooks:
from `soc/arm/nxp_imx/rt5xx/power.c`, `pm_state_set()`:
```c
case PM_STATE_SOFT_OFF:
set_deepsleep_pin_config();
POWER_EnterDeepPowerDown(EXCLUDE_FROM_DEEP_POWERDOWN);
break;
```
And to actually make use of this state, users had to do this kind of
abominations:
```c
pm_state_force(0u, &(struct pm_state_info){ PM_STATE_SOFT_OFF, 0, 0 });
/* Now we need to go sleep. This will let the idle thread runs and
* the pm subsystem will use the forced state. To confirm that the
* forced state is used, lets set the same timeout used previously.
*/
k_sleep(K_SECONDS(SLEEP_S));
printk("ERROR: System off failed\n");
while (true) {
/* spin to avoid fall-off behavior */
}
```
Signed-off-by: Gerard Marull-Paretas <gerard@teslabs.com>
Clarifies the details in the upload section of img_mgmt for MCUmgr
to better describe when fields should be sent, including a note
when a server responds with offset of 0.
Signed-off-by: Jamie McCrae <jamie.mccrae@nordicsemi.no>
Updates docs to account for the large number of changes that have
occured since the initial documentation was written.
Signed-off-by: Tom Burdick <thomas.burdick@intel.com>
Add a hint that when a device is on a power domain
and the device and power domain have runtime PM,
the power domain will automatically resumed/susepended.
Signed-off-by: Marcel Krüger <marcel.krueger@ithinx.io>
Adds a guide on how to make out-of-tree MCUmgr function handlers
and groups, with an example showing a test implementation.
Signed-off-by: Jamie McCrae <jamie.mccrae@nordicsemi.no>
Fixes an issue where double maps were shown for some items,
and one whereby there was excess text.
Signed-off-by: Jamie McCrae <jamie.mccrae@nordicsemi.no>
Ensure `POSIX_SPIN_LOCKS` are documented as part of the
mandatory option requirements according to IEEE Std 1003.1-2017.
Additionally, list the functions implemented according to the
standard.
Signed-off-by: Christopher Friedt <cfriedt@meta.com>
Add a native way to log Host Command communication.
Use Zephyr logging system to do it. Use debug and normal levels.
Signed-off-by: Dawid Niedzwiecki <dawidn@google.com>
The functions pthread_mutexattr_destroy()
and pthread_mutexattr_init() are implemented (they just do nothing).
Signed-off-by: Christopher Friedt <cfriedt@meta.com>