Commit graph

57059 commits

Author SHA1 Message Date
Pieter De Gendt
421ecb77a3 net: coap: Add coap_next_block_for_option function
Add a function to update the coap block context from a
packet, according to the block option enum provided.

The existing coap_next_block does not handle block1 transfers
properly because we need to inspect the block1 option
returned by the server. This function is reworked to make use
of the newly introduced one.

Signed-off-by: Pieter De Gendt <pieter.degendt@basalte.be>
2021-10-27 13:46:19 -04:00
Pieter De Gendt
b966ba16a9 net: coap: Fix size1 for block1 transfers
According to RFC-7959:
When uploading with coap block1 requests the server may respond
with a size1 option (together with the response code 4.13).
This to indicate the maximum size the server is able and willing
to handle.

This commit changes the total_size in the current block context
being handled to the optional size1 option value from the server.

Signed-off-by: Pieter De Gendt <pieter.degendt@basalte.be>
2021-10-27 13:46:19 -04:00
Marek Pieta
07b9e4e992 drivers: led_pwm: Fix power management action callback
A single PWM driver can be used for multiple LED numbers. In that
case -EALREADY may be reported. It should be ignored.

Signed-off-by: Marek Pieta <Marek.Pieta@nordicsemi.no>
2021-10-27 13:45:43 -04:00
Henrik Brix Andersen
3c6177a445 MAINTAINERS: include the CANopenNode module in the CAN bus group
Include the CANopenNode module integration files in the CAN bus
maintainers group and assign ownership to me.

Signed-off-by: Henrik Brix Andersen <hebad@vestas.com>
2021-10-27 13:44:10 -04:00
Carlo Caione
af94cf55d0 sample: mbox: Introduce MBOX NRFX IPC sample
Make use of the new MBOX APIs to create a ping-pong sample application.
This sample is using the NRFX IPC peripheral to send and receive signals
on different channels

Signed-off-by: Carlo Caione <ccaione@baylibre.com>
2021-10-27 18:27:21 +02:00
Carlo Caione
012591c4a5 mbox: Introduce MBOX NRFX IPC driver
Rewrite the NRFX IPC driver to properly support multi-channel addressing
leveraging the newly introduced MBOX APIs.

Signed-off-by: Carlo Caione <ccaione@baylibre.com>
2021-10-27 18:27:21 +02:00
Carlo Caione
1976f33e87 drivers: mbox: Introduce MBOX driver class
One limitation of the current IPM API is that it is assuming that the
hardware is only exporting one single channel through which the data can
be sent or signalling can happen.

If the hardware supports multiple channels, the IPM device must be
instantiated (possibly in the DT) several times, one for each channel to
be able to send data through multiple channels using the same hw
peripheral. Also in the current IPM API only one callback can be
registered, that means that only one driver is controlling all the
signalling happening on all the channels.

This patch is introducing a new MBOX API that is supporting
multi-channel signalling and data exachange leveraging and extending the
previous (and outdated) IPM API.

Signed-off-by: Carlo Caione <ccaione@baylibre.com>
2021-10-27 18:27:21 +02:00
Nicolas Pitre
bc41234104 ethernet: Synopsys DesignWare MAC driver
This is a driver for the Synopsys DesignWare MAC. It should work
with the "DesignWare Cores Ethernet Quality-of-Service" versions 4.x
and 5.x.

This driver uses a zero-copy strategy, meaning that the hardware
reads and writes data directly from/to packet fragment buffers
provided by the network subsystem without first copying the data into
a dedicated DMA bounce buffer.

Platform specific setup is necessary for the hardware to work.
Currently, only the STM32H7X series is implemented and tested.
While this part needs refinement, this driver performs better and uses
far less code space than the HAL-based alternative.

Not yet implemented:

- MDIO (it is WIP, currently relying on default PHY config)
- PTP support
- VLAN support
- various hardware offloads (when available)

Signed-off-by: Nicolas Pitre <npitre@baylibre.com>
2021-10-27 10:43:05 -04:00
Nicolas Pitre
bd73cd5512 sys: util: provide bitfield construction/extraction utility macros
Those are especially useful with hardware device registers.
They behave the same way as their Linux equivalent, with a much
simpler implementation for now.

Example:

 #define REG_FIELD_A  GENMASK(6, 0)
 #define REG_FIELD_B  BIT(7)
 #define REG_FIELD_C  GENMASK(15, 8)
 #define REG_FIELD_D  GENMASK(31, 16)

Get:
 a = FIELD_GET(REG_FIELD_A, reg);
 b = FIELD_GET(REG_FIELD_B, reg);

Set:
 reg = FIELD_PREP(REG_FIELD_A, 1) |
       FIELD_PREP(REG_FIELD_B, 0) |
       FIELD_PREP(REG_FIELD_C, c) |
       FIELD_PREP(REG_FIELD_D, 0x40);

Modify:
 reg &= ~REG_FIELD_C;
 reg |= FIELD_PREP(REG_FIELD_C, c);

Signed-off-by: Nicolas Pitre <npitre@baylibre.com>
2021-10-27 10:43:05 -04:00
Jordan Stein
aeee57bfe1 samples: fxos8700: fp support for accel devices
Adds a config flag to enable floating point support for fxos8700
compatible accelerometer devices.

Signed-off-by: Jordan Stein <jordan.stein@fortrobotics.com>
2021-10-27 09:37:05 -05:00
Johann Fischer
b92ce9a6c1 usb: function_rndis: do not force USB_COMPOSITE_DEVICE for IAD
Just always prove interface association descriptor for RNDIS
function instead of forcing it via Kconfig USB_COMPOSITE_DEVICE
option.

Signed-off-by: Johann Fischer <johann.fischer@nordicsemi.no>
2021-10-27 11:56:00 +02:00
Johann Fischer
70c25119d1 usb: function_rndis: align rndis_cmd_pool to request buffer size
Set reasonable range for the request buffer in case RNDIS
function is used. Align net_buf size from rndis_cmd_pool to
request buffer size since request is copied there before
it is queued.

Signed-off-by: Johann Fischer <johann.fischer@nordicsemi.no>
2021-10-27 11:56:00 +02:00
Vinayak Kariappa Chettimada
7496e3f0cf Bluetooth: Controller: Select CSA#2 for Extended Advertising Support
Select CONFIG_BT_CTLR_CHAN_SEL_2 when CONFIG_BT_CTLR_ADV_EXT
is enabled.

Relates to commit 651137ee11 ("Bluetooth: Controller: Fix
Extended Advertising channel use").

Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
2021-10-27 11:33:07 +02:00
Vinayak Kariappa Chettimada
c6ae4d52f7 Bluetooth: Controller: Fix LOW_LAT_ULL_DONE synchronization counting
Fix BT_CTLR_LOW_LAT_ULL_DONE synchronization counting so
that done events are processed before pipeline enqueue
decisions are taken in LLL.

Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
2021-10-27 11:32:48 +02:00
Maureen Helm
9eef764c65 drivers: dac: Refactor drivers to use shared init priority
Refactors all of the DAC drivers to use a shared driver class
initialization priority configuration, CONFIG_DAC_INIT_PRIORITY, to
allow configuring DAC drivers separately from other devices. This is
similar to other driver classes like I2C and SPI.

The default is set to CONFIG_KERNEL_INIT_PRIORITY_DEVICE to preserve the
existing default initialization priority for most drivers. The
exceptions are dacx0508, dacx3608, and mcp4725 drivers which have
dependencies on SPI or I2C drivers and must therefore initialize later
than the default device priority.

Signed-off-by: Maureen Helm <maureen.helm@intel.com>
2021-10-27 10:58:33 +02:00
Maureen Helm
fc9347cf52 boards: arm: Configure DAC driver on bl5340_dvk
Moves DAC driver configuration defaults from the application level to
the board level for the bl5340_dvk board.

Signed-off-by: Maureen Helm <maureen.helm@intel.com>
2021-10-27 10:58:33 +02:00
Maureen Helm
1d7d294a58 boards: arm: Configure DAC on bl654_dvk
Moves DAC dts node and driver configuration defaults from the
application level to the board level for the bl654_dvk board.

Signed-off-by: Maureen Helm <maureen.helm@intel.com>
2021-10-27 10:58:33 +02:00
Maureen Helm
96c7875f40 boards: arm: Configure DAC on bl653_dvk
Moves DAC dts node and driver configuration defaults from the
application level to the board level for the bl653_dvk board.

Signed-off-by: Maureen Helm <maureen.helm@intel.com>
2021-10-27 10:58:33 +02:00
Maureen Helm
192d710c45 boards: arm: Configure DAC on bl652_dvk
Moves DAC dts node and driver configuration defaults from the
application level to the board level for the bl652_dvk board.

Signed-off-by: Maureen Helm <maureen.helm@intel.com>
2021-10-27 10:58:33 +02:00
Emil Gydesen
254108bcf5 Bluetooth: Audio: Mark VOCS and VOCS_CLIENT as experimental
The implementation and its API is still considered experimental.

Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
2021-10-27 10:53:24 +02:00
Emil Gydesen
6cf9138eac Bluetooth: Audio: Mark MICS and MICS_CLIENT as experimental
The implementation and its API is still considered experimental.

Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
2021-10-27 10:53:24 +02:00
Emil Gydesen
46e299daa8 Bluetooth: Audio: Mark AICS and AICS_CLIENT as experimental
The implementation and its API is still considered experimental.

Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
2021-10-27 10:53:24 +02:00
Emil Gydesen
864d1aa4ed Bluetooth: Audio: Mark VCS and VCS_CLIENT as experimental
The implementation and its API is still considered experimental.

Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
2021-10-27 10:53:24 +02:00
Vinayak Kariappa Chettimada
39a667659f Bluetooth: Controller: Fix incorrect periodic advertising interval
Fix incorrect Periodic Advertising interval when Coded PHY
support is built, chain PDUs is used and Extended
Advertising is disable while the Periodic Advertising
continues to be active.

Related to commit a379196b48 ("Bluetooth: controller:
nRF5: Back-to-Back Radio Tx interface").

Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
2021-10-27 10:51:55 +02:00
Joakim Andersson
4748777126 modules: tfm: Fix not defined configuration for TF-M log options
Fix configuration options for TF-M log levels configured to an empty
string when not defined. This can happen when none of the options
have been selected due to dependencies not being met.
For example when TFM_MINIMAL=y then TFM_PARTITION_LOG_LEVEL will not be
defined.

Signed-off-by: Joakim Andersson <joakim.andersson@nordicsemi.no>
2021-10-27 10:51:34 +02:00
Maureen Helm
b88111bcf0 tests: build_all: Add device pm configuration for sensor drivers
Adds another test configuration to ensure we build sensor drivers with
device power management enabled, in addition to the existing test that
builds sensor drivers with device power management disabled.

Signed-off-by: Maureen Helm <maureen.helm@intel.com>
2021-10-26 20:51:13 -04:00
Maureen Helm
1788b036fb drivers: sensor: Fix ina219 driver when device pm enabled
Fixes a build error in the ina219 sensor driver when device power
management is enabled.

Signed-off-by: Maureen Helm <maureen.helm@intel.com>
2021-10-26 20:51:13 -04:00
Maureen Helm
be38a87089 drivers: sensor: Fix bq274xx driver when device pm enabled
Fixes a build error in the bq274xx sensor driver when device power
management is enabled.

Signed-off-by: Maureen Helm <maureen.helm@intel.com>
2021-10-26 20:51:13 -04:00
Andries Kruithof
324ad2465a MAINTAINERS: add myself to maintainers
Adds myself to collaborators for Bluetooth controller

Signed-off-by: Andries Kruithof <Andries.Kruithof@nordicsemi.no>
2021-10-26 20:37:44 -04:00
Keith Short
031ff08bc6 tests: benchmark: Add power management to footprint
Add a build-only test to track footprint when enabling device power
management.

Signed-off-by: Keith Short <keithshort@google.com>
2021-10-26 19:44:15 -04:00
Damian Krolik
e8c7e026e7 openthread: upmerge up to commit afcfb7ac
Regular upmerge on October 25th 2021.

Signed-off-by: Damian Krolik <damian.krolik@nordicsemi.no>
2021-10-26 19:32:27 -04:00
Lauren Murphy
e28fcf8831 MAINTAINERS: add self as x86 collaborator
Adds myself as a collaborator for x86 architecture and platforms.

Signed-off-by: Lauren Murphy <lauren.murphy@intel.com>
2021-10-26 18:18:26 -04:00
Gerard Marull-Paretas
569b794d4b doc: extensions: vcs_link: only run for HTML builder
The vcs_link should only run for the HTML builder, since it is the only
target of this extension. The other builders do not have the templates
instance, making them fail.

Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
2021-10-26 18:01:32 -04:00
Sam Hurst
c4cdbc6062 lib: smf: Remove unused variables
In function smf_execute_ancestor_exit_actions, variables
"tmp_state" and "target_parent" are set but not used.

Twister passed:
twister -T tests/lib/smf/

Signed-off-by: Sam Hurst <sbh1187@gmail.com>
2021-10-26 17:53:32 -04:00
Henrik Brix Andersen
92c8d87b90 boards: riscv: neorv32: mention TRNG support
Mention TRNG support in the NEORV32 board documentation, but leave it
disabled by default.

Signed-off-by: Henrik Brix Andersen <henrik@brixandersen.dk>
2021-10-26 17:53:15 -04:00
Henrik Brix Andersen
770694f0f1 tests: drivers: entropy: enable neorv32 trng for testing
Enable the NEORV32 True Random Number Generator (TRNG) device for
testing.

Signed-off-by: Henrik Brix Andersen <henrik@brixandersen.dk>
2021-10-26 17:53:15 -04:00
Henrik Brix Andersen
95226c056f dts: riscv: neorv32: add trng devicetree node
Add devicetree node for the NEORV32 True Random Number Generator (TRNG).

Signed-off-by: Henrik Brix Andersen <henrik@brixandersen.dk>
2021-10-26 17:53:15 -04:00
Henrik Brix Andersen
91233dba70 drivers: entropy: add driver for the neorv32 trng
Add entropy driver for the NEORV32 True Random Number Generator (TRNG).

Signed-off-by: Henrik Brix Andersen <henrik@brixandersen.dk>
2021-10-26 17:53:15 -04:00
Henrik Brix Andersen
ed041e30e7 dts: bindings: rng: add binding for the neorv32 trng
Add devicetree binding for the NEORV32 True Random Number Generator
(TRNG).

Signed-off-by: Henrik Brix Andersen <henrik@brixandersen.dk>
2021-10-26 17:53:15 -04:00
Bartosz Bilas
7965d7582b drivers: wifi: eswifi: convert to spi_dt_spec
Convert eswifi driver to use `spi_dt_spec` helpers.

Signed-off-by: Bartosz Bilas <bartosz.bilas@hotmail.com>
2021-10-26 17:40:54 -04:00
Keith Short
b588221aa7 MAINTAINERS: add section for state machine library
Add "State machine framework" section for the smf library.

Signed-off-by: Keith Short <keithshort@google.com>
2021-10-26 17:08:23 -04:00
Flavio Ceolin
e6d832d8b9 pm: Simplify pm_system_suspend
There is not need to handle all power states in switch state after
remove lower power and off states for devices.

Also, it incorporates the fix done in pull/38873.

Signed-off-by: Flavio Ceolin <flavio.ceolin@intel.com>
2021-10-26 15:02:15 -05:00
Flavio Ceolin
9239fd4a90 pm: device: Simplify device pm states
As discussed in issues/38619, this commit aims to simplify device
power management. It was removed PM_DEVICE_SATE_LOW_POWER.
The power subsystem now doesn't need to figure out which device state to
use of a given system power state. It just suspend and resume devices.

Devices now just need to respond to ACTIVE and SUSPEND and OFF actions
and they are free to use any particular substate they have when the
subsystem asks to suspend. They also don't need to worry about states
transitions (unless they have multiple substates) because the system
will just request them to suspend if they are active and vice-versa.

Signed-off-by: Flavio Ceolin <flavio.ceolin@intel.com>

rebase
2021-10-26 15:02:15 -05:00
Flavio Ceolin
a507f60390 pm: Add a new function to query the next power state
Add a function that can be used by device drivers to know
what will be next power state used by the SoC.

Signed-off-by: Flavio Ceolin <flavio.ceolin@intel.com>
2021-10-26 15:02:15 -05:00
Torbjörn Leksell
95ad27fe1f Tracing: TRACING_SYSCALL status ignored fix
Added check to respect the TRACING_SYSCALL tracing option
when generating syscall tracing overrides in
gen_syscalls.py.

Signed-off-by: Torbjörn Leksell <torbjorn.leksell@percepio.com>
2021-10-26 15:13:08 -04:00
Gerard Marull-Paretas
fe7529f917 doc: enable vcs_link extension
Enable the vcs_link extension so that pages contain "Open on Github"
link at the top.

Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
2021-10-26 17:00:56 +02:00
Gerard Marull-Paretas
1e79096d9a doc: extensions: add vcs_link
Add vcs_link extension. The extension can be used to obtain VCS (Git)
URLs for given Sphinx documents.

Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
2021-10-26 17:00:56 +02:00
Gerard Marull-Paretas
8b3f23eddc doc: fix dark-mode-toggle style
- Use designated CSS parts to style the toggle properly
- Use breadcrumbs_aside block to render dark mode toggle

Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
2021-10-26 17:00:56 +02:00
Jordan Yates
13c516e04b samples: lora: receive: demo async reception
Demonstrate asynchronous reception in the LoRa sample.

Signed-off-by: Jordan Yates <jordan.yates@data61.csiro.au>
2021-10-26 15:48:09 +02:00
Jordan Yates
526b3e9605 lora: asynchronous packet reception
Adds functionality to receive LoRa packets asynchronously. Reception
runs continuously until cancelled by another call to `lora_recv_async`.

Signed-off-by: Jordan Yates <jordan.yates@data61.csiro.au>
2021-10-26 15:48:09 +02:00