Commit graph

57714 commits

Author SHA1 Message Date
Anas Nashif
8a4f0ae889 actions: optimize clang actions
- use zephyr runner
- reduce number of builders and adapt matrix to be platform based
- check for changed files and optimize run accordingly, should reduce
  build times depending on what has changed
- If no source has changed, skip twister completely.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2021-11-13 09:30:25 -05:00
Emil Gydesen
7b73472139 Bluetooth: shell: Enable ISO for the BT shell
Enable ISO (unicast and broadcast) for the BT shell.
This allows users to use the ISO features (if supported by
the controller) in the shell.

Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
2021-11-13 08:00:16 -05:00
Gerard Marull-Paretas
392a0bee31 doc: guides: pm: system: improve some sentences
Improve some sentences to make them easier to understand.

Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
2021-11-13 07:59:51 -05:00
Gerard Marull-Paretas
f51f5276b5 doc: reference: drivers: remove incorrect reference
The PM documentation does not provide any details on usage of
SYS_DEVICE_DEFINE, so remove the reference.

Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
2021-11-13 07:59:51 -05:00
Gerard Marull-Paretas
a4d257f19b doc: guides: pm: device_runtime: new guide
Add a new and more extensive guide that describes the device runtime
API. It contains a brief introduction, API design principles and goals,
some example sequence diagrams and usage guidelines.

While the API still needs important additions, such a guide will
hopefully guide developers when trying to deal with device PM in Zephyr.

Note: sequence diagrams have been created using PlantUML (2021 version).
The rendered SVG diagrams embed the original code if they have to be
edited and re-rendered.

Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
2021-11-13 07:59:51 -05:00
Gerard Marull-Paretas
40a94743a3 doc: guides: pm: device_runtime: remove outdated statement
The device runtime API does no longer use pm_device_state_set().

Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
2021-11-13 07:59:51 -05:00
Gerard Marull-Paretas
f28b57ff8d doc: guides: pm: system: fix DT bindings references
Use the :dtcompatible: role to refer to DT bindings.

Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
2021-11-13 07:59:51 -05:00
Gerard Marull-Paretas
68db978fb2 doc: guides: pm: device_runtime: remove API definitions
The API is already rendered automatically by breathe, so do not manually
add definitions again.

Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
2021-11-13 07:59:51 -05:00
Gerard Marull-Paretas
d1cb73a29c doc: guides: pm: device: remove API definitions
The API is already rendered automatically by breathe, so do not
duplicate it manually.

Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
2021-11-13 07:59:51 -05:00
Gerard Marull-Paretas
51dfd38baa doc: guides: pm: system: simplify C references
- Remove duplicated information (e.g. enum list, available in the API
  docs)
- Use C domain to reference

Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
2021-11-13 07:59:51 -05:00
Gerard Marull-Paretas
f64a9c1aba doc: reference: pm: include all API and move to pm
Include all API groups (some where missing) and move to pm folder
instead of power_management for consistency.

Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
2021-11-13 07:59:51 -05:00
Gerard Marull-Paretas
cfa56f2ecb doc: reference: pm: remove Kconfig list
Kconfig options will be listed as needed in the guidelines.

Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
2021-11-13 07:59:51 -05:00
Gerard Marull-Paretas
4d6803383d doc: pm: split sections and move to guides
Splitted the PM reference document into smaller chunks (overview,
system, device and device_runtime). Moved this content to the guides
section, since the documentation intent is to provide general PM subsys
information and usage guidelines.

Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
2021-11-13 07:59:51 -05:00
Gerard Marull-Paretas
11cf06f5d5 doc: reference: pm: move terms to glossary
Glossary is a place where all terms can be defined, so move them there.
Some terms have been slightly adjusted and SOC interface remove since it
was not much relevant.

Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
2021-11-13 07:59:51 -05:00
Joakim Andersson
4a60dce67c modules: tfm: Update crypto modules prompt strings
Update crypto modules prompt strings to follow the Kconfig guidelines.
"For a Kconfig symbol that enables a driver/subsystem FOO, consider
having just “Foo” as the prompt, instead of “Enable Foo support” or the
like."

Signed-off-by: Joakim Andersson <joakim.andersson@nordicsemi.no>
2021-11-13 07:58:50 -05:00
Joakim Andersson
aaa38bfcb6 modules: tfm: Split CRYPTO_ASYMMETRIC module into SIGN and ENCRYPT
The ASSYMETRIC crypto module has been split in two, for sign and
encrypt. Update Kconfig entries to match.

Signed-off-by: Joakim Andersson <joakim.andersson@nordicsemi.no>
2021-11-13 07:58:50 -05:00
Joakim Andersson
81c5fb47a8 modules: tfm: Remove CRYPTO_GENERATOR_MODULE kconfig
Remove CRYPTO_GENERATOR_MODULE Kconfig which has been removed.
Its features are covered by TFM_CRYPTO_KEY_MODULE and
CRYPTO_KEY_DERIVATION_MODULE.

Signed-off-by: Joakim Andersson <joakim.andersson@nordicsemi.no>
2021-11-13 07:58:50 -05:00
Herman Berget
49c2c37417 tests: bluetooth: tester: Reading multiple variable length
Adds support for reading multiple variable length characteristics.
Previously read_multiple() always set the variable flag to false.

This is used by GATT/CL/GAT/BV-03-C.

Signed-off-by: Herman Berget <herman.berget@nordicsemi.no>
2021-11-13 07:54:27 -05:00
Yasushi SHOJI
b48276e995 doc/application: Use tabs for Setting Variables
Setting variables for console is platform dependent.  Having
uninterested platform mixed in is too noisy and hard to read.  Follow
"Getting Started Guide" pattern to use tabs to group things.

Getting Started Guide uses "Ubuntu" to reference Linux based platform
but Application Development uses "Linux".  This commit doesn't change
the choice of words and sticks to "Linux".

The order of the platfroms is, OTOH, unified to "Linux/macOS" from
"macOS/Linux".

This commit only changes formatting, no wording change.

Signed-off-by: Yasushi SHOJI <yashi@spacecubics.com>
2021-11-12 21:34:29 -05:00
Filip Kokosinski
0851255258 boards: riscv: hifive1: add support for QEMU and Renode simulation
This commit adds required config files for Renode simulation and adds
missing QEMU_binary_suffix. It also adds flash and newlib tags to
ignore_tags, as flash chip is currently not provided by default in
Renode for FE310 and newlib does not fit into the available memory.

Signed-off-by: Filip Kokosinski <fkokosinski@antmicro.com>
2021-11-12 21:33:42 -05:00
Filip Kokosinski
5980f89e54 doc/application: add a note about choosing emulator platform
New targets have been added that allow the user to choose a specific
emulator platform. Inform about this in the docs.

Signed-off-by: Filip Kokosinski <fkokosinski@antmicro.com>
2021-11-12 21:33:42 -05:00
Filip Kokosinski
94428044e2 cmake: support multiple entries in board.cmake
Currently there is no way to support running a board on multiple
emulation platforms nor to choose a desired emulation platform for the
simulation to be run on. This commit introduces a new
SUPPORTED_EMU_PLATFORMS list, which defines available emulation
platforms for a given board.

Fixes #12375.

Signed-off-by: Filip Kokosinski <fkokosinski@antmicro.com>
2021-11-12 21:33:42 -05:00
Lixin Guo
6aa783ed6a kernel: mmu: exclude some funcs from coverage
page_frame_dump() and z_page_frames_dump() are used for
debug print, so there is no need to cover those funcs.
__weak function is also excluded, every test overrides it.

Signed-off-by: Lixin Guo <lixinx.guo@intel.com>
2021-11-12 11:57:50 -05:00
Lixin Guo
21e1e8cf23 tests: work_queue: add a test case for coverage
Add a test case for k_work_poll_cancel() API.

Signed-off-by: Lixin Guo <lixinx.guo@intel.com>
2021-11-12 11:56:23 -05:00
Ruibin Chang
e501c4a21a ITE boards/it8xxx2_evb: remove CONFIG_* not for every application
These drivers are no longer enabled for every application,
even hello_world. The right SoC-specific drivers are
enabled in applications that need them.

Signed-off-by: Ruibin Chang <Ruibin.Chang@ite.com.tw>
2021-11-12 10:25:47 -06:00
Ruibin Chang
4393f66ba2 ITE soc/riscv-ite/it8xxx2: move config to soc from board
Make config conditional and move to soc Kconfig.defconfig.series
from it8xxx2_evb_defconfig.

Signed-off-by: Ruibin Chang <Ruibin.Chang@ite.com.tw>
2021-11-12 10:25:47 -06:00
Sebastian Bøe
b39384f5df tf-m: Fix flashing of samples on nrf5340 and nrf9160 boards
Always flash the merged hex file.

This fixes flashing for samples. Before "west flash" only worked for
tests.

I don't know why this was not done from the get-go.

This also fixes builds that enables CONFIG_TFM_REGRESSION_NS, which will
use the tfm_ns application file instead of the zephyr application, and
will merge tfm_ns hex into the merged hex file. Otherwise the wrong
application hex file will be flashed.

Signed-off-by: Sebastian Bøe <sebastian.boe@nordicsemi.no>
Signed-off-by: Joakim Andersson <joakim.andersson@nordicsemi.no>
2021-11-12 15:03:09 +01:00
Emil Gydesen
12decc70d0 Bluetooth: ISO: Add bitmask for retrieving iso header lenght
Add a macro to retrieve the iso data load length (the
length stored in the iso header) with a bit mask that
ensures that we only take the first 14 bits.

This is to remove any RFU bits that may have been set.

Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
2021-11-12 14:52:33 +01:00
Emil Gydesen
08b1dfb4a2 Bluetooth: ISO: Fix incorrect struct for ISO hdr data
There were a few cases where bt_hci_iso_data_hdr was used
instead of the proper struct bt_hci_iso_hdr.

Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
2021-11-12 14:52:33 +01:00
Rafał Kuźnia
e1ba2f75cf drivers: ieee802154: nrf5: fix NULL pointer dereference
When a frame is sent with a cleared ACK request bit, the transmit
metadata contains a NULL pointer to the ACK frame.

The pointer must not be dereferenced in such case.

Signed-off-by: Rafał Kuźnia <rafal.kuznia@nordicsemi.no>
2021-11-12 14:51:54 +01:00
Carlo Caione
bf19df0292 ipc_service: Re-organize Kconfig
Re-organize Kconfigs to make easier adding new backends.

Signed-off-by: Carlo Caione <ccaione@baylibre.com>
2021-11-12 14:51:29 +01:00
Carlo Caione
2e3481b59c samples: ipc_service: Make space for new backends
Move the backend-specific samples to a new subdirectory to make space
for new samples.

Signed-off-by: Carlo Caione <ccaione@baylibre.com>
2021-11-12 14:51:29 +01:00
Carlo Caione
b64666bcc7 samples: Move IPM samples in a different directory
Currently the IPM samples are hosted in the IPC sample location. Clean
this situation up by moving the IPM samples to a new location.

Signed-off-by: Carlo Caione <ccaione@baylibre.com>
2021-11-12 14:51:29 +01:00
Carlo Caione
f141565b85 ipc_service: Move libraries in a stalone directory
The IPC libraries will be used by several backends. Move the libraries
out in a new 'lib' directory.

Signed-off-by: Carlo Caione <ccaione@baylibre.com>
2021-11-12 14:51:29 +01:00
Joakim Andersson
ba85663a42 doc: Update TF-M documentation to match current TF-M version
Update TF-M documentation to match the current integrated TF-M version.
Include mention of the Platform secure partition that can be enabled.

Signed-off-by: Joakim Andersson <joakim.andersson@nordicsemi.no>
2021-11-12 14:51:22 +01:00
Fabio Baltieri
911a483f7a samples: canopennode: update led and sw to use gpio_dt_spec
Switch the LED and button code to the gpio_dt_spec APIs. This also gets
rid of the code conditionals, so that the entire sample code is always
compiled.

Signed-off-by: Fabio Baltieri <fabio.baltieri@gmail.com>
2021-11-12 14:51:16 +01:00
Fabio Baltieri
fa87410cd6 samples: canopennode: increase main stack size
Bump up the main stack size from 1kB to 2kB, seems like the settings
restore function right now goes above the default stack size for SPI
flash devices:

0x20000aa8 main (real size 2048): unused 864 usage 1184 / 2048 (57 %)

Signed-off-by: Fabio Baltieri <fabio.baltieri@gmail.com>
2021-11-12 14:51:16 +01:00
Fabio Baltieri
b5f9f34fb5 modules: canopennode: set tx_workq thread name
Set a thread name for the tx_workq thread, so that it shows up in
"kernel stacks" when the shell or thread debugging are enabled.

Signed-off-by: Fabio Baltieri <fabio.baltieri@gmail.com>
2021-11-12 14:51:16 +01:00
Dino Li
6d8f1bf6d9 soc: it8xxx2: add support for eSPI driver
This supports eSPI slave, virtual wire, and peripheral functions.

Signed-off-by: Dino Li <Dino.Li@ite.com.tw>
2021-11-12 14:51:10 +01:00
Dominik Ermel
4c9b308367 mgmt/mcumgr: Remove duplicated frame fragment marker processing
The mcumgr_serial_parse_op has been called to extract marker and
check if it is valid, just for the caller mcumgr_serial_process_frag
to process the marker again.

Signed-off-by: Dominik Ermel <dominik.ermel@nordicsemi.no>
2021-11-12 14:48:52 +01:00
Aleksander Wasaznik
d8c40d3626 MAINTAINERS: Replace joerchan with alwa-nordic
I'm taking over for joerchan at Nordic Semiconductor as a Zephyr
Bluetooth host collaborator.

Signed-off-by: Aleksander Wasaznik <aleksander.wasaznik@nordicsemi.no>
2021-11-12 08:18:47 -05:00
Anas Nashif
81e6ba8ba0 ci: add code coverage action
Add a code coverage collection action that triggers based on a schedule
on the main branch and posts results to

 https://app.codecov.io/gh/zephyrproject-rtos/zephyr

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2021-11-12 08:18:24 -05:00
Vinayak Kariappa Chettimada
6820141a3b tests: Bluetooth: bsim: Check duplicate Periodic Adv Sync create
Add test to check duplicate Periodic Advertiser Sync Create
is not permitted.

Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
2021-11-12 14:08:19 +01:00
Vinayak Kariappa Chettimada
b1c03b4185 Bluetooth: Controller: Periodic Adv Sync same peer and sid check
Add implementation to check Periodic Advertiser
Synchronization to already synchronized peer and same SID.

Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
2021-11-12 14:08:19 +01:00
Emil Gydesen
2be4a537af Bluetooth: shell: VCS: Use BT_VOCS_MIN_OFFSET/BT_VOCS_MAX_OFFSET
Use the defined min and max values for offset instead
of UINT8_MAX.

Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
2021-11-11 19:26:02 -05:00
Robert Lubos
41c2789b77 samples: net: telnet: Enable command handling by default
Not handling telnet commands may lead to some unexpected behaviour, like
telnet client locking when it does not receive a response for DO TIMING
MARK command.

Therefore enable it by default in the sample to improve user exprience.

Signed-off-by: Robert Lubos <robert.lubos@nordicsemi.no>
2021-11-11 19:23:20 -05:00
Robert Lubos
51dc4c3b1e shell: telnet: Disable echo
When telnet client queries about remote echo support, we reply that we
won't do it (which reduces the traffic), however the echo was not
actually disabled on the shell. In result characters were double-echoed
in the character mode (by both local echo from the client and remote
echo from the server).

Signed-off-by: Robert Lubos <robert.lubos@nordicsemi.no>
2021-11-11 19:23:20 -05:00
Robert Lubos
c932354694 shell: telnet: Fix handling of multiple commands in a single packet
In case multiple commands were sent in a single packet, only the first
one was processed. Fix this by processing them in a loop.

As the subnegotiation command have variable length, and we currently
don't have any support for subnegotiation, stop processing packet when
such a command occurs.

Signed-off-by: Robert Lubos <robert.lubos@nordicsemi.no>
2021-11-11 19:23:20 -05:00
Robert Lubos
c479458392 net: arp: Fix ARP retransmission source address selection
There was a problem with source address selection for ARP
retransmissions, when an ARP entry was already pending. In such case,
the `entry` value passed to `arp_prepare()` is NULL, which in result
caused the `current_ip` variable being used as the source value. The
problem with this approach is, that the `current_ip` is only set in
IPv4 autoconf, the Ethernet L2 does not set this variable. In result,
every retransmission of an ARP packet was sent with unspecified source
address, preventing the response from being handled.

Fix this by partially restoring the behaviour of the ARP source address
assignment from before IPv4 autoconf was introduced. If the ARP is sent
by the IPv4 autoconf, use the `current_ip` value provided. If entry is
not set, use the source IPv4 address set in the actual data packet.
Otherwise, search for a source address on the interface corresponding to
the `entry`.

Signed-off-by: Robert Lubos <robert.lubos@nordicsemi.no>
2021-11-11 19:19:40 -05:00
Felipe Neves
b50cb2a537 drivers: counter: esp32: add support for esp32c3
to the unified esp32 counter driver.

Signed-off-by: Felipe Neves <felipe.neves@espressif.com>
2021-11-11 19:14:15 -05:00