With BT_SETTINGS disabled, or when using an indefinite
RPL_STORE_TIMEOUT and not storing the RPL, the device will not be able
to follow the replay protection required by the spec. This adds a
warning about this.
Signed-off-by: Ludvig Samuelsen Jordet <ludvig.jordet@nordicsemi.no>
Multiple usages of the :kconfig: role, which is now obsolete, was
merged in the PR #43053; update these to use the :kconfig:option:
domain role.
Signed-off-by: Stephanos Ioannidis <root@stephanos.io>
Include a pointer to the CAN controller device for the CAN
transmit, receive, and state change callback functions.
Signed-off-by: Henrik Brix Andersen <hebad@vestas.com>
This is an attempt at formally distinguishing and supporting the case
described in 40795 where an architecture doesn't preserve/restore the
complete thread state upon entering/exiting interrupt exception state.
This is mainly about promoting the current behavior from the accepted
workaround to a formal API specification. This workaround is currently
used on ARM64 but RISC-V requires it too.
Signed-off-by: Nicolas Pitre <npitre@baylibre.com>
The LoRa and LoRaWAN documentation was not included anywhere, so the
Doxygen comments in drivers/lora.h and lorawan/lorawan.h were not
rendered. This commit adds a new section for LoRa and LoRaWAN to the
documentation.
People often confuse the difference between LoRa and LoRaWAN, so it
makes sense to combine both in the same doc section.
LoRa would otherwise not fit very well into any docs category, as it
is a driver, but not really a peripheral.
Signed-off-by: Martin Jäger <martin@libre.solar>
The pm_constraint_* APIs were effectively used by the policy manager
only. This patch renames the API to the policy namespace and makes its
naming more explicit:
- pm_constraint_set -> pm_policy_state_lock_get()
- pm_constraint_release -> pm_policy_state_lock_put()
- pm_constraint_get -> pm_policy_state_lock_is_active()
The reason for these changes is that constraints can be of many types:
allow/disallow states, impose latency requirements, etc. The new naming
also makes explicit that the API calls will influence the PM policy
behavior.
All drivers and documentation have been updated accordingly.
Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
The location of `fs.h` was wrongly specified as `include/fs.h`
resulting in a broken link.
Update the location to `include/fs/fs.h` which is the correct location.
Signed-off-by: Torsten Rasmussen <Torsten.Rasmussen@nordicsemi.no>
When using `zephyr-app-command` the CMake arguments and values are not
having spaces between them, except the `-B build`.
Remove the space, so that `-B build` becomes `-Bbuild` and thus looks
similar to other `-<arg><value>` occurences.
Example before this commit:
> Use cmake to configure a Ninja-based buildsystem:
> cmake -B build -GNinja -DBOARD=reel_board samples/hello_world
>
> Now run ninja on the generated build system:
> ninja -C build
With this commit:
> Use cmake to configure a Ninja-based buildsystem:
> cmake -Bbuild -GNinja -DBOARD=reel_board samples/hello_world
>
> Now run ninja on the generated build system:
> ninja -Cbuild
Signed-off-by: Torsten Rasmussen <Torsten.Rasmussen@nordicsemi.no>
This contains accessor macros for getting the maximum bitrate supported
by a CAN controller/transceiver combination.
Signed-off-by: Henrik Brix Andersen <hebad@vestas.com>
The message type parameter was changed to the more explicit enum.
Existing code with unconfirmed message type has to be updated.
Signed-off-by: Martin Jäger <martin@libre.solar>
Added information about package variants and updated package
structure table.
Signed-off-by: Krzysztof Chruscinski <krzysztof.chruscinski@nordicsemi.no>
Use DEVICE_DT_GET instead of device_get_binding on the samples. Also,
use the zephyr,canbus chosen device. Note that check for readiness has
not been added as previous code did not check for NULL either.
Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
Explain when the TF-M nonsecure firmware image is used.
Use non-secure consistently instead of nonsecure or ns.
Signed-off-by: Joakim Andersson <joakim.andersson@nordicsemi.no>
Add documentation with example commands for getting the RAM and ROM
reports for the secure firmware image (TF-M) and mcuboot (BL2).
Signed-off-by: Joakim Andersson <joakim.andersson@nordicsemi.no>
Fix whitespace alignment in example report.
This shows up unaligned in the published documentation.
Signed-off-by: Joakim Andersson <joakim.andersson@nordicsemi.no>
Zephyr is migrating into hardware where memory ordering is starting to
matter. The existing gcc-based defaults have always been specifying
__ATOMIC_SEQ_CST, which is safe and correct. And all the
arch-specific assembly we have currently are either safe or for
platforms where barriers aren't needed.
Discussion in #42831 made the case that it would be nice if we were to
formally promise this, and require it from future implementations. So
let's do that.
Fixes: #42831
Signed-off-by: Andy Ross <andrew.j.ross@intel.com>
The commit adds guide that describes format of SMP reqests/responses
as issued by Zephyr implementation within mcumgr.
Signed-off-by: Dominik Ermel <dominik.ermel@nordicsemi.no>
In this release, STM32 Clock Kconfig symbols, which were deprecated
in favor of device tree, we removed.
Document it.
Signed-off-by: Erwan Gouriou <erwan.gouriou@linaro.org>
Kconfig options now belong to the Kconfig domain, therefore, the
:kconfig:option: role needs to be used.
Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
Add a new extension to handle Kconfig documentation. This means that no
more CMake hackery is required. However, the way it works differs from
the current approach. Instead of creating a single page for each Kconfig
option, the extension creates a JSON "database" which is then used on
the client side to render Kconfig options on a search page. The reason
to go for a single page choice is because Sphinx is significantly slow
when handling a lot of pages. Kconfig was responsible for an increase of
about ~10K pages.
Main features:
- Generates a Kconfig JSON database using kconfiglib APIs.
- Adds a new Sphinx domain for Kconfig. The domain provides a directive,
:kconfig:search:: that can be used to insert a Kconfig search box onto
any page. This page is where all Kconfig references inserted using the
:kconfig:option: role will point to. The search functionality is
implemented on the client side using Javascript. If the URL contains a
hash with a Kconfig option (e.g. #CONFIG_SPI) it will load it.
Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
Add a new API call to replace nvs_init: nvs_mount. The new API does the
same as nvs_init except that it assumes to be provided with a valid
flash device via `struct nvs_fs` `flash_device` field. Previously, it
was not possible to avoid the runtime overhead of device_get_binding()
even if the flash device was known at compile time.
Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
Add "zephyr,ocm" to the list of supported "chosen" nodes in
the devicetree reference docs.
Signed-off-by: Immo Birnbaum <Immo.Birnbaum@weidmueller.com>
Instead of setting XCC_USE_CLANG=1, this patch adds xcc-clang toolchain
that is basically xcc using the clang compiler.
Initially, the new toolchain simply includes files from current xcc
toolchain and (re)sets some variables. This should be a more scalable
approach to diverge the toolchains in the future than placing
"if($ENV{XCC_USE_CLANG})" at several places.
It should also help to filter tests that run (or not) exclusively with
the clang variant of XCC on twister.
The XCC_USE_CLANG flag is documented as deprecated, and a message is
emitted during build if still in use. Its new behaviour is to instruct
Zephyr to use `xcc-clang` toolchain.
Signed-off-by: Ederson de Souza <ederson.desouza@intel.com>
The item mode is really a specialization of the byte mode. And in-tree
usage shows the byte mode is prominent. It feels more natural if the
byte mode is presented first with the item mode second. Swap the code
and documentation order accordingly. No code change.
Signed-off-by: Nicolas Pitre <npitre@baylibre.com>
This code is rather hairy. When I look at it I don't like the way it
stares back at me.
First, the rewind business looks fishy. It has to die.
And we don't have to rely on modulus either. Not even for non-power-of-2
buffers. Let's kill that distinction too and make all sizes always
"high performance".
The code is now entirely relying only on simple ALU operations (add,
sub and compare).
The key assumption: 32-bit values do wrap around after max range has
been reached. No saturation. All architectures supported by Zephyr
do that.
Some stats:
lib/os/ring_buffer.c: 62 insertions(+), 124 deletions(-)
ring_buffer.c.obj before after diff
----------------------------------------------
frdm_k64f 1224 1136 -88
m2gl025_miv 2485 2079 -406
mps2_an385 1228 1132 -96
mps2_an521 1228 1132 -96
native_posix 1546 1496 -50
native_posix_64 1598 1595 -3
nsim_hs_mpuv6 1252 1192 -60
nsim_hs_smp 1252 1192 -60
nsim_sem 1252 1192 -60
qemu_arc_em 1324 1192 -132
qemu_arc_hs6x 1824 1620 -204
qemu_arc_hs 1252 1192 -60
qemu_cortex_a53_smp 2154 1888 -266
qemu_cortex_a53 2154 1888 -266
qemu_cortex_a9 1938 1792 -146
Before (qemu_cortex_a53):
START - test_ringbuffer_performance
1 byte put-get, avg cycles: 52
4 byte put-get, avg cycles: 47
1 byte put claim-finish, avg cycles: 39
5 byte put claim-finish, avg cycles: 41
5 byte get claim-finish, avg cycles: 52
PASS - test_ringbuffer_performance in 0.8 seconds
After (qemu_cortex_a53):
START - test_ringbuffer_performance
1 byte put-get, avg cycles: 34
4 byte put-get, avg cycles: 41
1 byte put claim-finish, avg cycles: 27
5 byte put claim-finish, avg cycles: 29
5 byte get claim-finish, avg cycles: 29
PASS - test_ringbuffer_performance in 0.4 seconds
Signed-off-by: Nicolas Pitre <npitre@baylibre.com>
Conceptually, ring_buf_item_put() and ring_buf_item_get() are specialized
versions of ring_buf_put() and ring_buf_get(). Make it so to rationalize
the code to open the way for more optimizations.
This means we need specialized wrappers on top of ring_buf_init()
accordingly, given that the core machinery is now common and byte based.
Signed-off-by: Nicolas Pitre <npitre@baylibre.com>
The documentation was somewhat confused. Bring it closer to reality.
The SIZE32_OF() usage, while not wrong per se, is not as clear as
using the number of words directly. Let's favor the later to make the
documentation clearer.
Signed-off-by: Nicolas Pitre <npitre@baylibre.com>
Aligning with the rest of PM API, replace pm_power_state_exit_post_ops
with pm_state_exit_post_ops.
Signed-off-by: Flavio Ceolin <flavio.ceolin@intel.com>