Commit graph

22,555 commits

Author SHA1 Message Date
Emil Gydesen
f2b4896536 Bluetooth: CSIS: Move csis_instance to csis_internal.h
Move the struct definition to the internal header file,
and add it to the bt_csis struct.

This also renames the csis_instance to
bt_csis_client_svc_inst to use the bt_csis prefix.

Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
2022-01-18 10:40:33 -05:00
Carlo Caione
93b0ea9782 ipc: Remove multi-instance backend
Remove the legacy multi-instance backend and the sample.

Signed-off-by: Carlo Caione <ccaione@baylibre.com>
2022-01-17 15:50:58 -05:00
Anders Storrø
499c4fb1e3 Bluetooth: Mesh: Add LPN-disable BabbleSim test
Adds test to check correct behaviour for disabling
LPN feature.

Signed-off-by: Anders Storrø <anders.storro@nordicsemi.no>
2022-01-17 15:49:46 -05:00
Anders Storrø
e6d0ec1aba Bluetooth: Mesh: Add check to LPN friend_req_sent
Adds state check to the friend_req_sent CB to ensure
that the CB does not alter the LPN state if it is in a
disabled state. This resolves behavioural issue for lpn_set(false).

Signed-off-by: Anders Storrø <anders.storro@nordicsemi.no>
2022-01-17 15:49:46 -05:00
Krzysztof Chruscinski
aff9cfc65a logging: Add assert when wrong backend is used
Add assert when logging v2 is enabled but backend doesn't support it.

Signed-off-by: Krzysztof Chruscinski <krzysztof.chruscinski@nordicsemi.no>
2022-01-17 15:49:10 -05:00
Krzysztof Chruscinski
262cc55609 logging: Deprecate v1, default to v2
Reduced logging mode selection to deferred, immediate, minimal and
frontend. Decoupled logging version from mode and created CONFIG_LOG1
which can be used to explicitly select deprecated version.

From now on, chosing CONFIG_LOG_MODE_{IMMEDIATE,DEFERRED} will result
in version2.

Deprecated CONFIG_LOG2_MODE_{IMMEDIATE,DEFERRED} with cmake warning.

Codebase adapted to those changes.

Signed-off-by: Krzysztof Chruscinski <krzysztof.chruscinski@nordicsemi.no>
2022-01-17 15:49:10 -05:00
Lukasz Majewski
c9902412e6 fs: Extend the littlefs code to support block devices
Up till now the littlefs only has been supporting the flash medium in
Zephyr.

This change provides code to also use littlefs stored on the block
devices - like SD card (accessed via SPI).

When FS_LITTLEFS_BLK_DEV Kconfig option is defined, the support for
using littlefs on block devices is enabled.

Signed-off-by: Lukasz Majewski <lukma@denx.de>
2022-01-17 12:53:43 -05:00
Lukasz Majewski
6fa771f2d0 fs: littlefs: Rename *area (struct flash_area*) to *backend void pointer
The struct flash_area *area pointer has been renamed to void *backend
pointer.

This change is enabling further rework of the littlefs subsystem to work
with other backend devices (like block ones - i.e. SD card).

Signed-off-by: Lukasz Majewski <lukma@denx.de>
2022-01-17 12:53:43 -05:00
Trond Einar Snekvik
eadf04af82 Bluetooth: Mesh: Return a boolean from subnet_find callback
bt_mesh_subnet_find calls a callback for every subnet, and returns the
subnet that got a non-zero return code from the callback. As pointed out
in #41693, the callback should return a boolean, not an int.

Signed-off-by: Trond Einar Snekvik <Trond.Einar.Snekvik@nordicsemi.no>
2022-01-17 11:52:57 -05:00
Anders Storrø
8d9735824a Bluetooth: Mesh: GATT proxy enable fix for ext adv
Adds fix so that a node running with extended adveriser is able to
enable GATT proxy correctly. This fixes a corner case issue  where a
device with no other ongoing message sending is unable to advertise
the GATT proxy through
bt_mesh_gatt_proxy_set(BT_MESH_FEATURE_ENABLED) .

Signed-off-by: Anders Storrø <anders.storro@nordicsemi.no>
2022-01-17 11:43:39 -05:00
Daniel Leung
4b6eb55236 logging: output/syst: don't use raw output for hexdump
Hexdump via logging is supposed to be human-readable for
debug information. Therefore, it should actually print
in human-readable form (well... after some magical decoder
has processed the raw MIPI Sys-T output).

Signed-off-by: Daniel Leung <daniel.leung@intel.com>
2022-01-14 09:59:06 -05:00
Morten Priess
c71dd80834 Bluetooth: controller: Fixed BSIM ISO compile error
Added missing #includes for access to ULL functions.

Signed-off-by: Morten Priess <mtpr@oticon.com>
2022-01-13 15:15:49 +01:00
Rubin Gerritsen
a722c014ad Bluetooth: Host: Support setting long periodic adv data
If the advertiser is not running, the host can now set
periodic advertising data in multiple operations.

Signed-off-by: Rubin Gerritsen <rubin.gerritsen@nordicsemi.no>
2022-01-13 13:23:29 +01:00
Rubin Gerritsen
727ea49029 Bluetooth: Fix default event size when periodic adv sync is enabled
Periodic Advertising reports can be up to 255.

Signed-off-by: Rubin Gerritsen <rubin.gerritsen@nordicsemi.no>
2022-01-13 10:35:13 +01:00
Jarno Lamsa
8f4a1fd906 net: lwm2m: Instance specific callbacks
Provide possibility to have instance specific callbacks
for writing the FW image and executing the update

Signed-off-by: Jarno Lamsa <jarno.lamsa@nordicsemi.no>
2022-01-13 10:34:25 +01:00
Jarno Lamsa
eedbbdc61a net: lwm2m: Provide backwards compatibility for single object 5
Previously the object 5 was only single instance object. Provide
backwards compatibility, so it can be continued to use with single
instance.

Signed-off-by: Jarno Lamsa <jarno.lamsa@nordicsemi.no>
2022-01-13 10:34:25 +01:00
Veijo Pesonen
9782f86450 net: lwm2m: separate FW update object instances - /5/*
This is a proof-of-concept implementation.

A device might have multiple firmware images which needs to be updated
separately. For example a single device might have

	* A bootloader image
	* An application image
	* External firmware image

Instead of pushing all these updates through the object instance 0 -
/5/0 - here a split to multiple has been made possible.

Signed-off-by: Veijo Pesonen <veijo.pesonen@nordicsemi.no>
2022-01-13 10:34:25 +01:00
Morten Priess
7c89f1fe9f Bluetooth: controller: Support for separate ISO RX data path
Provides interface, data structures and demuxing capability for ISO RX
PDU allocation and transport from LLL to HCI.
Uses the RXFIFO composite for simplicity and reduced overhead.

Signed-off-by: Morten Priess <mtpr@oticon.com>
2022-01-13 10:32:37 +01:00
Enjia Mai
7aba5fa633 tests: coverage: fix the blocking on mps2_an385 coverage report
The overall code coverage report of mps2_an385 was blocked by the
tests/net/lib/coap, the error message shows "No Mem available to
continue dump". So we enlarge the gcov heap size to prevent this
situation, try to make the report can be generated at least.

Signed-off-by: Enjia Mai <enjia.mai@intel.com>
2022-01-12 16:30:39 -06:00
Daniel Leung
8d8369204f net: remove @return doc for void functions
For functions returning nothing, there is no need to document
with @return, as Doxgen complains about "documented empty
return type of ...".

Signed-off-by: Daniel Leung <daniel.leung@intel.com>
2022-01-12 16:02:16 -05:00
Daniel Leung
9f1fc49ac9 random: remove @return doc for void functions
For functions returning nothing, there is no need to document
with @return, as Doxgen complains about "documented empty
return type of ...".

Signed-off-by: Daniel Leung <daniel.leung@intel.com>
2022-01-12 16:02:16 -05:00
Daniel Leung
1be8c15e4c cpp: remove @return doc for void functions
For functions returning nothing, there is no need to document
with @return, as Doxgen complains about "documented empty
return type of ...".

Signed-off-by: Daniel Leung <daniel.leung@intel.com>
2022-01-12 16:02:16 -05:00
Daniel Leung
c955a44f13 usb: remove @return doc for void functions
For functions returning nothing, there is no need to document
with @return, as Doxgen complains about "documented empty
return type of ...".

Signed-off-by: Daniel Leung <daniel.leung@intel.com>
2022-01-12 16:02:16 -05:00
Anas Nashif
5e05393afa tests: ztress: fix dependency on SMP
Use CONFIG_MP_NUM_CPUS=1 with ztress and do not disable SMP completely.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2022-01-12 14:13:21 -05:00
Abe Kohandel
45a693a2a9 bluetooth: ots: validate OTS procedure sizes
Validate the OACP and OLCP procedure sizes as the procedure is parsed.
This is in contrast with the current implementation which first parses
the procedure and then validates its size and is prone to accessing
invalid memory when the procedure is malformed.

Signed-off-by: Abe Kohandel <abe.kohandel@gmail.com>
2022-01-12 15:47:20 +01:00
Emil Gydesen
df6289d7ec Bluetooth: Shell: Add name and address scan filters
Add a way to filter scan results by name and/or
address. The idea is that this can be further expanded
by also scanning the content for specific UUIDs, PHY,
RSSI, etc.

This is particularly useful for cases where there are many
devices advertising at once.

Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
2022-01-12 15:46:23 +01:00
Krzysztof Chruscinski
4d9507ae33 testsuite: ztress: Minor fixes
Fix initial thread priority and move starting of the
test timer after threads initialization to ensure that
it does not expire before threads are initiated.

Signed-off-by: Krzysztof Chruscinski <krzysztof.chruscinski@nordicsemi.no>
2022-01-12 08:49:59 -05:00
Krzysztof Chruscinski
851d0f0a3b testsuite: ztress: Disable ztress for SMP
Currently, ztress is not supporting SMP, mainly because of
cpu load calculation algorithm. It may be re-enabled in the
future.

Signed-off-by: Krzysztof Chruscinski <krzysztof.chruscinski@nordicsemi.no>
2022-01-12 08:49:59 -05:00
Mark Holden
7b2b283677 debug: coredump: allow for coredump backends to be defined outside of tree
Move coredump_backend_api struct to public header so that custom backends
for coredump can be defined out of tree. Create simple backend in test
directory for verification.

Signed-off-by: Mark Holden <mholden@fb.com>
2022-01-11 18:17:24 -05:00
Wealian Liao
1fd29fb131 tracing: Fix tracing_user config
`tracing_user.h` lost several definitions, which made
CONFIG_TRACING_USER build fail. This fixes the TRACING_USER
config & adds it to the test case.

Moreover, the idle task stack is overflow on qemu_x86, qemu_cortex_m0 &
qemu_riscv64. This makes the test fail. So this commit sets the idle
stack size to 2048 for this sample to avoid it.

Signed-off-by: Wealian Liao <WHLIAO@nuvoton.com>
2022-01-11 18:13:18 -05:00
Andreas Chmielewski
fbae13122f net: lwm2m: enable monitoring of fw update state/result
The intention behind this patch is to know the current state/result
of a firmware update process in the application code. It makes it
possible to use pre/post_write_callbacks to get the proper value
of state (5/0/3) and result (5/0/5) resource.

Signed-off-by: Andreas Chmielewski <andreas.chmielewski@grandcentrix.net>
2022-01-11 11:52:50 +01:00
Piotr Pryga
bbf19b24be Bluetooth: Controller: llcp: Missing llcp ctx release when disconnect
If there were local LLCP pending and connection lost happened there
were no release of allocated control procedure context.
It caused to exhaustion of available procedures.

Signed-off-by: Piotr Pryga <piotr.pryga@nordicsemi.no>
2022-01-11 11:52:42 +01:00
Piotr Pryga
3d9784a79e Bluetooth: Controller: change def val BT_CTLR_LLCP_PROC_CTX_BUF_NUM
Default value for CONFIG_BT_CTLR_LLCP_PROC_CTX_BUF_NUM was set to
CONFIG_BT_CTLR_LLCP_CONN, so the value was 1. That caused a problem
if a device had started a local control procedure and remote procedure
request was received. Ther there were no free context for remote
procedure.

The commit changes the range of allowed value to start from 2.
Also the default value is set to two if CONFIG_BT_CTLR_LLCP_CONN
is 1. In other case default value is set to number of CONFIG_BT_-
LLCP_CONN.

Signed-off-by: Piotr Pryga <piotr.pryga@nordicsemi.no>
2022-01-11 11:52:42 +01:00
Dominik Ermel
bd10559364 mgmt/mcumgr/lib: Shorten error path in taskstat processing
The tasktat code filling reposes with use of CBOR has been modified,
utilizing lazy evaluation of C '||' operator, to terminate CBOR
encoding as soon as first error appears.

Signed-off-by: Dominik Ermel <dominik.ermel@nordicsemi.no>
2022-01-11 11:48:08 +01:00
Dominik Ermel
78f01b5900 mgmt/mcumgr/lib: Add OS_MGMT_TASKSTAT_STACK_INFO to mcumgr
The commit adds OS_MGMT_TASKSTAT_STACK_INFO Kconfig option
that allows to skip, when disabled,  "stksz" and "stkuse" reports,
in "taskstat" command responses.

Signed-off-by: Dominik Ermel <dominik.ermel@nordicsemi.no>
2022-01-11 11:48:08 +01:00
Dominik Ermel
a566c92c1c mgmt/mcumgr/lib: Thread name selection for taskstat report
The commit adds Kconfig options and supporting code that allows
to select characteristic that will be used for thread name
in taskstat from:
 - thread name, when THREAD_NAME is enabled;
 - thread ID/index;
 - thread priority.

Signed-off-by: Dominik Ermel <dominik.ermel@nordicsemi.no>
2022-01-11 11:48:08 +01:00
Dominik Ermel
49a3624cc8 mgmt/mcumgr/lib: Allow signed priorities in taskstat
By default the mcumgr taskstat responses send task priorities
as unsigned integers, while Zephyr uses int8_t as priority type.
This commit adds OS_MGMT_TASKSTAT_SIGNED_PRIORITY Kconfig option
that allows to switch to use signed priorities in responses.

Signed-off-by: Dominik Ermel <dominik.ermel@nordicsemi.no>
2022-01-11 11:48:08 +01:00
Dominik Ermel
e293be6ab0 mgmt/mcumgr/lib: Make thread name in taskstat response configurable
The change adds OS_MGMT_THREAD_NAME_LEN that allows to set length of
thread name that is returned in taskstat response.

Signed-off-by: Dominik Ermel <dominik.ermel@nordicsemi.no>
2022-01-11 11:48:08 +01:00
Dominik Ermel
845010287a mgmt/mcumgr/lib: Optimize taskstat for Zephyr
The commit changes taskstat code to directly process thread information
from Zephyr structures, instead of translating them to system agnostic
layer, before formatting response.
It also moves the takstat code to os_mgmt.c.

Signed-off-by: Dominik Ermel <dominik.ermel@nordicsemi.no>
2022-01-11 11:48:08 +01:00
Dominik Ermel
e6437a7ef3 mgmt/mcumgr/lib: Remove os_mgmt_config.h
The commit removes os_mgmt_config.h that has been translating Kconfig
options to mgmt internal definitions for constants, and replaces
usage of these constants with direct use of Kconfig options.

Signed-off-by: Dominik Ermel <dominik.ermel@nordicsemi.no>
2022-01-11 11:48:08 +01:00
Yuval Peress
ab1caef8c3 ztest: Update ztest with more powerful testing APIs
1. Test suites in prior ztest serve no purpose other than logical
ordering of tests into a named-group. Move the construct of setup and
teardown into the test suite and away from individual tests.
Additionally, add the constructs of before/after to the test suites.
This model more closely resembels other testing frameworks such as gTest
and Junit.
2. Test can be added to a suite by using ZTEST() or ZTEST_F() where _F
stands for fixture. In the case where _F is used, the argument `this`
will be provided with the type `struct suite_name##_fixture*`. Again,
this models other modern testing frameworks and allows the test to
directly access the already set up data related to the test suite.
3. Add the concept of test rules (from Junit). Rules are similar to the
before/after functions of the test suites but are global and run on all
suites. An example of a test rule can be to check that nothing was
logged to ERROR. The rule can cause the test to fail if anything was
logged to ERROR during an integration test. Another example would be a
rule that verifies that tests ran within some defined timeout.

Signed-off-by: Yuval Peress <peress@google.com>
2022-01-11 11:47:30 +01:00
Gerard Marull-Paretas
7eb50bebe4 pm: state: require cpus node
The PM state code is in practice useless when no cpus are defined in DT,
so require this node to be defined.

Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
2022-01-11 10:46:20 +01:00
Gerard Marull-Paretas
e239f94457 pm: policy: residency: remove redundant logging
The pm.c already performs sufficient logging/tracing, so cleanup the
policy file.

Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
2022-01-11 10:46:20 +01:00
Gerard Marull-Paretas
696caa0524 pm: policy: return a reference to the next state
Return a constant reference to the next state instead of a copy of
struct pm_state_info. When the next state should be active, just return
NULL. Struct copying should be in general avoided, specially in code
paths executed frequently as is this one.

Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
2022-01-11 10:46:20 +01:00
Gerard Marull-Paretas
e5df3a8cc4 pm: policy: residency: use pm_state_cpu_get_all
Use the pm_state_cpu_get_all API to obtain the list of available CPU
states. This changes reduces the need for non-interesting code within
the policy codebase.

Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
2022-01-11 10:46:20 +01:00
Gerard Marull-Paretas
8385d1bce5 pm: state: add pm_state_cpu_get_all
Add a new API to obtain the list of power states available for a given
CPU.

Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
2022-01-11 10:46:20 +01:00
Peter Mitsis
d1353a4584 kernel: pipes: add pipe flush routines
Adds two routines to flush pipe objects:
   k_pipe_flush()
     - This routine flushes the entire pipe. That includes both
     the pipe's buffer and all pended writers. It is equivalent
     to reading everything into a giant temporary buffer which
     is then discarded.
   k_pipe_buffer_flush()
     - This routine flushes only the pipe's buffer (if it exists).
     It is equivalent to reading a maximum of "buffer size" bytes
     into a temporary buffer which is then discarded.

Signed-off-by: Peter Mitsis <peter.mitsis@intel.com>
2022-01-10 12:17:14 -05:00
Johann Fischer
767a87b1b6 modbus: keep transaction and protocol IDs in gateway mode
Serial line interface does not use transaction and protocol
IDs. Continue to use memcpy() for the whole frame as it is safer
and more efficient but temporarily store transaction and protocol
IDs, and write it back if the transfer was successful.

Signed-off-by: Johann Fischer <johann.fischer@nordicsemi.no>
2022-01-10 09:45:42 -06:00
Peter Mitsis
f498118daa debug: thread analyzer to display runtime stats
Updates the thread analyzer to display the thread runtime
stats.

Signed-off-by: Peter Mitsis <peter.mitsis@intel.com>
2022-01-10 10:38:06 -05:00
Peter Mitsis
68c9845b41 shell: report thread runtime stats
Updates the kernel service to display the extended thread
runtime stats when the following shell command is issued.

 kernel threads

Signed-off-by: Peter Mitsis <peter.mitsis@intel.com>
2022-01-10 10:38:06 -05:00