Commit graph

22128 commits

Author SHA1 Message Date
Vinayak Kariappa Chettimada
4149e391ae Bluetooth: controller: Use the CSA#2 function for SubEvents
Use the CSA#2 functions for SubEvent channel selection.

Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
2021-11-18 16:48:47 +01:00
Vinayak Kariappa Chettimada
46e9679c5e Bluetooth: controller: Add function to calculate BIS access address
Added a function to calculate the BIS SubEvent access
addresses.

Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
2021-11-18 16:48:47 +01:00
Vinayak Kariappa Chettimada
aa11d9cac0 Bluetooth: controller: Add the BIG terminate event generation
Add the BIG terminate event generation.

Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
2021-11-18 16:48:47 +01:00
Vinayak Kariappa Chettimada
aff7d83149 Bluetooth: controller: Fix BIG complete event generation
Fix the LE BIG complete event generation to not use the
Sync Established structure to access the status value.

Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
2021-11-18 16:48:47 +01:00
Vinayak Kariappa Chettimada
b8a919be7b Bluetooth: controller: Fix BIG Sync Lost event generation
Fix the BIG Sync Lost event generation to not use the Sync
Established structure to access the reason value.

Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
2021-11-18 16:48:47 +01:00
Vinayak Kariappa Chettimada
919a184172 Bluetooth: controller: Add missing BIG Sync Estab and Lost reason
Added missing LE BIG Sync Established status and LE BIG Sync
Lost reason.

Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
2021-11-18 16:48:47 +01:00
Vinayak Kariappa Chettimada
5eb2892e11 Bluetooth: controller: Fix LE BIG Sync Terminate command response
Fix Fix LE BIG Sync Terminate command response which was not
returning the BIG handle.

Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
2021-11-18 16:48:47 +01:00
Vinayak Kariappa Chettimada
56fb23fb74 Bluetooth: controller: Update BIG Terminate Sync implementation
Minor update to BIG Terminate Sync implementation.

Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
2021-11-18 16:48:47 +01:00
Vinayak Kariappa Chettimada
eb4e81b918 Bluetooth: controller: Implement the BIG sync establish and lost
Implement the HCI LE BIG Sync Established event and HCI LE
BIG Sync Lost event.

Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
2021-11-18 16:48:47 +01:00
Vinayak Kariappa Chettimada
07bb9b1858 Bluetooth: controller: Fill BIS Payload Count in BIGInfo struct
Fill BIS Payload Count in the BIGInfo struct in the Periodic
Advertising PDU.

Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
2021-11-18 16:48:47 +01:00
Vinayak Kariappa Chettimada
4c06840269 Bluetooth: controller: Fix Adv ISO start ticker user context
Fix the Broadcast ISO ticker start caller context.

Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
2021-11-18 16:48:47 +01:00
Vinayak Kariappa Chettimada
a2153baa81 Bluetooth: controller: Handle Sync ISO notifications
Handle BIG Sync notifications in the HCI layer.

Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
2021-11-18 16:48:47 +01:00
Vinayak Kariappa Chettimada
0ea0f03bc9 Bluetooth: controller: BIG Create Sync LLL implementation
Implementation of BIG Create Sync in LLL. Generation of
LE BIG Sync Established event and LE BIG Sync Lost event
notifications from the controller.

Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
2021-11-18 16:48:47 +01:00
Vinayak Kariappa Chettimada
c4cb0ce92d Bluetooth: controller: Initial BIG Create Sync implementation
Added initial implementation for BIG Create Sync.

Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
2021-11-18 16:48:47 +01:00
Vinayak Kariappa Chettimada
0cb8517e20 Bluetooth: controller: Added BIGInfo Advertising Report generation
Added experimental support to generate BIGInfo Advertising
Report.

Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
2021-11-18 16:48:47 +01:00
Vinayak Kariappa Chettimada
20af5d524e Bluetooth: controller: Add create BIG complete event
Added implementation to generate the Create BIG Complete
event after the first empty BIS PDU has been transmitted.

Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
2021-11-18 16:48:47 +01:00
Vinayak Kariappa Chettimada
fdec0f593a Bluetooth: controller: Fix populate offset in latest advertising PDU
Fix implementation to populate the aux, sync and ISO offset
in the latest PDU. If both the current and latest of the
double buffer has been filled and LLL did not pick the
latest PDU, then the offset should be filled into the latest
PDU (and not into the first/current PDU).

Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
2021-11-18 16:48:47 +01:00
Vinayak Kariappa Chettimada
c5bede254a Bluetooth: Controller: Fix missing traversal of ADI to find BIGInfo
Fix missing traversal of ADI field in advertised Common
Extended Payload Format. This will cause invalid offset used
for other fields and BigInfo field following the ADI when
Periodic Advertising ADI feature is supported.

Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
2021-11-18 16:48:47 +01:00
Vinayak Kariappa Chettimada
acd3ccca6a Bluetooth: Controller: Fix missing traversal of CTEInfo to find BIGInfo
Fix missing traversal of CTEInfo field in advertised Common
Extended Payload Format. This will cause invalid offset used
for other fields and BigInfo field following the CTE Info
when Extended Directed Advertising is used.

Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
2021-11-18 16:48:47 +01:00
Vinayak Kariappa Chettimada
2b921f1977 Bluetooth: controller: Added BIS event with empty PDU
Added implementation to fill the BIG Offset, calculate the
BIS Access Address and CRC init, scheduling and transmission
of BIS empty PDUs.

Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
2021-11-18 16:48:47 +01:00
Vinayak Kariappa Chettimada
699a2ec730 Bluetooth: controller: Fix ticker user id used to terminate BIG
Fix incorrect ticker user id used to terminate BIG events.

Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
2021-11-18 16:48:47 +01:00
Vinayak Kariappa Chettimada
c06028fa67 Bluetooth: controller: Refactoring of BIS data members
Refactored Broadcast ISO related data members across ULL and
LLL contexts.

Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
2021-11-18 16:48:47 +01:00
Vinayak Kariappa Chettimada
71e15176e1 Bluetooth: controller: BIGInfo in ACAD with mandatory parameters
Construction of BIGInfo with mandatory parameters and
placing it in the ACAD of Periodic Advertising PDU.

Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
2021-11-18 16:48:47 +01:00
Vinayak Kariappa Chettimada
ac431f598f Bluetooth: controller: Fix pdu_big_info structure
Fix pdu_big_info structure for the incorrect definitions of
GIV and GSKD data members.

Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
2021-11-18 16:48:47 +01:00
Vinayak Kariappa Chettimada
b0d8a738c5 Bluetooth: controller: Add Broadcast ISO Sync and Sync Lost release
Add implementation to release Broadcast ISO Sync, Sync Lost
event and ISO instance allocations.

Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
2021-11-18 16:48:47 +01:00
Vinayak Kariappa Chettimada
b81d5595d3 Bluetooth: controller: Add data members related to ISO sync loss
Add data members related to implementing the Broadcast ISO
Sync Lost event generation.

Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
2021-11-18 16:48:47 +01:00
Vinayak Kariappa Chettimada
3d85babf65 Bluetooth: controller: Rename ll_adv_iso and ll_sync_iso
Rename ll_adv_iso and ll_sync_iso structs to ll_adv_iso_set
and ll_sync_iso_set.

Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
2021-11-18 16:48:47 +01:00
Piotr Pryga
ea1340acd3 Bluetooth: host: Add handling of failures in per sync established evt
Handling of HCI_LE_Periodic_Advertising_Sync_Established didn't
have implemented handling of possible failures of periodic
advertising synchronization.
There are two situations definded by BT 5.3 Core spec:
- There is no AUX_SYNC_IND pdu within 6 periodic advertising events.
  If that happens, status of the command is set to (0x3E) Connection
  Failed To Be Established / Synchronization Timeout.
- Periodic advertising has wrong CTE type while periodic advertising
  list is not used to determine the advertiser to listen.
  In this case status of the command is set to (0x1A) Unsupported
  Remote Feature.

The commit provides missing functionality.
In case of error, the periodic advertising will be deleted and
application will be notified by call to terminated callback.
The callback data were extended by err member. It provides
information why periodic advertising was terminated.

Signed-off-by: Piotr Pryga <piotr.pryga@nordicsemi.no>
2021-11-18 17:12:22 +02:00
Johann Fischer
fdcc104455 usb: remove Kconfig option USB_UART_CONSOLE
Since there are no more users and dependencies of
Kconfig option USB_UART_CONSOLE in the tree,
remove the remains and the option USB_UART_CONSOLE.

Signed-off-by: Johann Fischer <johann.fischer@nordicsemi.no>
2021-11-18 14:29:18 +01:00
Johann Fischer
4151f42710 usb: cdc_acm: use same init level and priority as serial drivers
Use same init level and priority as serial drivers.
Align priority to the changes in
commit ad1450510a ("drivers: serial: Refactor drivers
to use shared init priority Kconfig")

Signed-off-by: Johann Fischer <johann.fischer@nordicsemi.no>
2021-11-18 14:29:18 +01:00
Flavio Ceolin
252aaf7637 pm: suspend: Simplify exit logic
Do not have the "forced" bit cleared up scattered across the function.
Do it only in one place at the exit of the function.

Signed-off-by: Flavio Ceolin <flavio.ceolin@intel.com>
2021-11-18 13:56:15 +01:00
Flavio Ceolin
4998c52ba8 pm: Make pm_power_state_force multicore aware
Change pm_power_state_force to receive which cpu the state should be
forced. Also, it changed the API behavior to force the given state only
when the idle thread for that core is executed.

In a multicore environment force arbitrarily a core to suspend is not
safe because the kernel cannot infer what that cpu is running and how it
impacts the overall system, for example, if it is holding a lock that is
required by a thread that is running in another cpu.

Signed-off-by: Flavio Ceolin <flavio.ceolin@intel.com>
2021-11-18 13:56:15 +01:00
Martin Tverdal
0d4f685dbd Bluetooth: Host: avoid runtime warning in bt_enable
Avoid runtime warning in bt_enable when CONFIG_BT_SETTINGS
and CONFIG_BT_DEVICE_NAME_DYNAMIC is not set.
This warning was intoroduced in
commit d76bba4b5e
("Bluetooth: host: Device name handling of invalid length")

Signed-off-by: Martin Tverdal <martin.tverdal@nordicsemi.no>
2021-11-17 12:40:20 +01:00
Christopher Friedt
5dc6686c63 logging: log_core: do not alias atomic_t
Previously, a `uint32_t` was aliased as an `atomic_t`. However,
with #39531, `atomic_t` is now a `long` under the hood, which
is 64-bit on 64-bit platforms.

Fixes #40369

Signed-off-by: Christopher Friedt <chrisfriedt@gmail.com>
2021-11-17 12:25:10 +01:00
Jani Hirsimäki
8a51a79d89 net: l2: ppp: possibility to have a custom MRU/MTU
Reading a set MTU from the used net_if when starting LCP.
This enables also other custom MTU/MRU to be set for the link than
the default CONFIG_NET_PPP_MTU_MRU (set by a ppp driver during
initialization).

Signed-off-by: Jani Hirsimäki <jani.hirsimaki@nordicsemi.no>
2021-11-16 21:25:47 -05:00
Andries Kruithof
f023b5f611 Bluetooth: controller: push topic branch to main
Pushes all work done in the topic-ble-llcp branch into main branch
This is a refactoring of the LL control procedures; the refactored
control procedures are hidden behind a KConfig option and
per default disabled

Goal of the refactoring:

close issue Link Layer Control Procedure overhaul #15256
make it easier to add/update control procedures
Refactoring consists in principal of writing explicit state machines
for the control procedures.
To reduce the risk of regression errors unit-tests have been added

Following control procedures are implemented:

Connection update procedure
Channel map update procedure
Encryption procedure
Feature exchange procedure
Version exchange procedure
ACL termination procedure
Connection parameters request procedure
LE Ping procedure
Data Length Update procedure
PHY update procedure
Min. nr. Of channels used procedure
Constant Tone extension request procedure

This is a joined work by the people listed in the signed-off-by
list (in alphabetical order)

Signed-off-by: Andries Kruithof Andries.Kruithof@nordicsemi.no
Signed-off-by: Erik Brockhoff erbr@oticon.com
Signed-off-by: Piotr Pryga piotr.pryga@nordicsemi.no
Signed-off-by: Szymon Janc szymon.janc@codecoup.pl
Signed-off-by: Thomas Ebert Hansen thoh@oticon.com
Signed-off-by: Tommie Skriver tosk@demant.com

Signed-off-by: Andries Kruithof <Andries.Kruithof@nordicsemi.no>
2021-11-16 21:24:37 -05:00
Dominik Ermel
020d44456d mgmt/mcumgr/lib: Fix multi-image upload not working
The commit fixes the issue where duplicated code in
img_mgmt_impl_upload_inspect caused redirecting all image uploads,
in multi-image configuration, to the first image.

Signed-off-by: Dominik Ermel <dominik.ermel@nordicsemi.no>
2021-11-16 21:24:09 -05:00
Torbjörn Leksell
86d8b36955 Tracing: k_free tracing hook heap reference added
Added heap reference parameter to k_free tracing
hook to allow tracing of the pointer which was
passed as a parameter to a k_free call.
As part of this update the defines
(for this hook) in the various tracing formats
was also updated.

Signed-off-by: Torbjörn Leksell <torbjorn.leksell@percepio.com>
2021-11-16 09:45:01 -05:00
Vinayak Kariappa Chettimada
e07af1fa08 Bluetooth: Controller: Fix Periodic Sync Failed to be Established
Fix Periodic Advertising Synchronize implementation to
generate Synchronization Failed to be Established event
when 6 AUX_SYNC_IND PDUs are not received when establishing
synchronization.

Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
2021-11-16 12:12:56 +01:00
Vinayak Kariappa Chettimada
f9ac97336d Bluetooth: Controller: Rename ticker operation callbacks
Rename ticker operation callback suitably to reflect their
purpose.

Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
2021-11-16 12:12:56 +01:00
Dominik Ermel
1d17a4bc55 mgmt/mcumgr: Add CONFIG_IMG_MGMT_FRUGAL_LIST
The commit adds Kconfig options that enables "frugal status list";
when enabled, the status list will be sent with zero, empty and false
values omitted, slightly reducing number of bytes sent as response
from device.

Signed-off-by: Dominik Ermel <dominik.ermel@nordicsemi.no>
2021-11-16 10:45:57 +01:00
Dominik Ermel
a29ab5106b mgmt/mcumgr/lib: Add Kconfig option MGMT_CBORATTR_FLOAT_SUPPORT
The option enables float numbers processing within CBOR attributes.

Signed-off-by: Dominik Ermel <dominik.ermel@nordicsemi.no>
2021-11-16 10:45:57 +01:00
Dominik Ermel
cf10549e7e mgmt/mcumgr/lib: Replace license block
The commit changes licensing to SPDX tags.

Signed-off-by: Dominik Ermel <dominik.ermel@nordicsemi.no>
2021-11-16 10:45:57 +01:00
Dominik Ermel
56e602b22b mgmt/mcumgr/lib: Fix compliance
Commit fixes compliance issues.

Signed-off-by: Dominik Ermel <dominik.ermel@nordicsemi.no>
2021-11-16 10:45:57 +01:00
Dominik Ermel
0bc87573bf mgmt/mcumgr/lib: Documentation fixes
References to Mynewt have been removed and README for Zephyr has been
merged directly to the README.

Signed-off-by: Dominik Ermel <dominik.ermel@nordicsemi.no>
2021-11-16 10:45:57 +01:00
Dominik Ermel
dfc57ae390 mgmt/mcumgr/lib: Remove non-Zephyr code
The commit removes MYNEWT sepcific code and code that has been
conditionally compiled with "ifndef _ZEPHYR_".

Signed-off-by: Dominik Ermel <dominik.ermel@nordicsemi.no>
2021-11-16 10:45:57 +01:00
Dominik Ermel
c8381a9d14 mgmt/mcumgr/lib: Remove log management commands
Not implemented.

Signed-off-by: Dominik Ermel <dominik.ermel@nordicsemi.no>
2021-11-16 10:45:57 +01:00
Dominik Ermel
af75feac4f mgmt/mcumgr/lib: Copy mcumgr library under mgmt subsystem
The commit copies code of mcumgr, as a lib, under subsys/mgmt/mcumgr.
Only source files relevant for Zephyr have been copied, and changes
to source files have been limited only to path changes, where
required.
Samples have been left out as the only relevant sample, smp_svr,
is already within Zephyr source tree.

Signed-off-by: Dominik Ermel <dominik.ermel@nordicsemi.no>
2021-11-16 10:45:57 +01:00
Vinayak Kariappa Chettimada
c025e07557 Bluetooth: Controller: Fix DTM HCI command returned error codes
Fix DTM HCI command returned error codes.

Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
2021-11-16 10:42:38 +01:00
Vinayak Kariappa Chettimada
ee40950282 Bluetooth: Controller: Fix missing DTM Tx/Rx reset on HCI Reset Command
Fix missing implementation to reset DTM Tx/Rx reset on HCI
Reset Command.

Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
2021-11-16 10:42:38 +01:00