Skip to content

Commit

Permalink
softdevice_controller: rev c3da9a7fe9e1d321cd3fbe9a94f1c9d310ddfbfe
Browse files Browse the repository at this point in the history
CHANGELOG.rst contains the list of changes.

Signed-off-by: Lang Xie <lang.xie@nordicsemi.no>
  • Loading branch information
laxiLang authored and nordicjm committed Sep 25, 2024
1 parent 1230f26 commit 8fa4251
Show file tree
Hide file tree
Showing 35 changed files with 105 additions and 67 deletions.
23 changes: 16 additions & 7 deletions softdevice_controller/CHANGELOG.rst
Original file line number Diff line number Diff line change
Expand Up @@ -16,16 +16,17 @@ Added
=====

* Support for the LE Set Path Loss Reporting Parameters and LE Set Path Loss Reporting Enable HCI commands. (DRGN-17376)
* Support for generating connection anchor update event reports using the VS Conn Anchor Point Update Report Enable command. (DRGN-22662)
* Support for generating connection anchor update event reports using the VS Conn Anchor Point Update Report Enable command.
When enabled, one report is generated when the anchor point of a connection is updated.
This information can be used to synchronize two applications running on a central and a peripheral device.
This information can be used to synchronize two applications running on a central and a peripheral device. (DRGN-22662)
* Vendor-specific command for triggering a peripheral task at the start of a radio event.
See :c:func:`sdc_hci_cmd_vs_set_event_start_task`. (DRGN-20737)
* Support for the LE Set Default Subrate and LE Subrate Request HCI commands. (DRGN-19745)

Changes
=======

* The ``VersNr`` field in the ``LL_VERSION_IND`` packet now contains the value ``0x0E`` to indicate compatibility with Bluetooth Core Specification v6.0 (DRGN-23211).
* The ``sdc_coex_adv_mode_configure`` API has been deprecated as it is not applicable to any supported coexistence interfaces. (DRGN-20876).
* The ``sdc_hci_cmd_vs_coex_priority_config`` and ``sdc_hci_cmd_vs_coex_scan_mode_config`` vendor-specific HCI commands have been removed as they are not applicable to any supported coexistence interfaces. (DRGN-20876)
* The vendor-specific Set Connection Event Trigger command has been deprecated.
Expand All @@ -41,6 +42,8 @@ Changes
* For a Synchronized Receiver, the priority of the first ``BN`` subevents of relevant BISes in a BIG event now have an elevated priority.
This should improve reliability of ISO data being received by a Synchronized Receiver running alongside a role of lower priority.
For more details, see the :ref:`scheduling_priorities_table` table.
* The SoftDevice Controller can now utilize more than 64K of memory buffer passed to :c:func:`sdc_enable`. (DRGN-22067)
* If LE Power Control is not being used, the TX power of CISes is now the same as for the corresponding ACL connection. (DRGN-23291)

Bug fixes
=========
Expand All @@ -51,10 +54,11 @@ Bug fixes
* Fixed an assert that could happen when in a connection where the peer device is transmitting on S8 Coded PHY.
This issue was present in v2.6 and v2.7 releases. (DRGN-22652)
* Fixed an issue where the extended scanner would not generate a truncated advertising report after the coexistence interface aborted the reception of an ``AUX_CHAIN_IND`` packet. (DRGN-22686)
* Fixed a very rare issue where the controller stopped generating advertising reports. (DRGN-22678)
On nRF52 Series and nRF53 Series this would happen at least one hour after the scanner started.
On nRF54L and nRF54H Series this would occur immediately after the scanner started.
In would only happen when:
* Fixed a very rare issue where the controller stopped generating advertising reports.
On nRF52 Series and nRF53 Series devices, this would happen at least one hour after the scanner started.
On nRF54L and nRF54H Series devices, this would occur immediately after the scanner started. (DRGN-22678)

It would only happen when one of the following applies:

* There was another central-like scheduling activity running. Examples of roles with such activities are the ACL central, periodic advertiser, isochronous broadcaster and the CIS central.
This activity was configured with an event length or event spacing equal or greater than the scan interval.
Expand All @@ -64,17 +68,22 @@ Bug fixes
* Fixed a rare issue where the scanner would be stuck in the synchronizing state after failing to receive an ``AUX_ADV_IND`` packet.
This could only happen when the corresponding ``ADV_EXT_IND`` packet contained a resolvable address, private address resolution is enabled, and the periodic advertising list is not used. (DRGN-22230)
* Fixed an issue where the controller could generate the LE Advertising Set Terminated event one event sooner than expected. (DRGN-22705)
This could only happen when (all of the following)

This could only happen when all of the following apply:

* a non-zero Max_Extended_Advertising_Events parameter was used in the LE Set Extended Advertising Enable command.
* other ongoing activities in the controller prevented the first advertising event from taking place when the advertising set was created.
* Fixed an issue where calling the :c:func:`sdc_hci_cmd_vs_zephyr_write_tx_power` function without the LE Power Control feature enabled could cause the controller to de-reference a NULL pointer. (DRGN-22930)
* Fixed an issue where the Central failed to receive the last packet in an isochronous event.
This could only happen if the Connected Isochronous Stream Creation procedure was initiated by the host before the Encryption Start procedure completed. (DRGN-22879)
* Fixed an assert that could happen when using the coexistence interface. (DRGN-23002)

This could happen when any of the following controller activities were ongoing:

* Isochronous Broadcaster
* Connected Isochronous channel in the peripheral role
* Periodic Sync with Responses
* Fixed an issue where LE Power Control was not being used for CISes which are not the first CIS in a CIG. (DRGN-23291)

nRF Connect SDK v2.7.0
**********************
Expand Down
39 changes: 34 additions & 5 deletions softdevice_controller/doc/scheduling.rst
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,8 @@ The following table summarizes the priorities.
| Third priority | * All |BLE| roles in states other than above run with this priority |
| | * MPSL Timeslot with high priority |
+-----------------------------+---------------------------------------------------------------------------------------------------+
| Fourth priority | * Scanner when the scan window is equal to the scan interval |
| Fourth priority | * Scanner when the scan window is equal to the scan interval and the scanner has been able to |
| | run a timing-event at least once in the last couple of scan intervals. |
| | * Quality of Service channel survey |
+-----------------------------+---------------------------------------------------------------------------------------------------+
| Fifth priority | * 802.15.4 radio driver |
Expand Down Expand Up @@ -360,12 +361,21 @@ Here :math:`\mathsf{C1}` can utilize the free time left by a previously disconne

Multilink scheduling and Connection Event Length Extension

Scanner timing
**************
Scanner and Initiator timing
************************

Scanning is a periodic activity where the |controller| listens for packets from Advertisers.
When the |controller| starts scanning, it will listen for packets on the primary advertising channels.
If the |controller| is configured to accept extended advertising packets, and it receives a packet with a pointer to a secondary advertising channel, it will continue to scan on this channel to receive the auxiliary packet.
Initiating is a periodic activity where the |controller| tries to connect to an Advertiser by first listening for packets from an Advertiser.
When the |controller| starts scanning or initiating, it will listen for packets on the primary advertising channels.
If the |controller| is configured to accept extended advertising packets, and it receives a packet with a pointer to a secondary advertising channel, it will continue to listen on this secondary advertising channel to receive the auxiliary packet.

The `Primary channel Scanner timing`_ and `Secondary channel Scanner timing`_ sections describe how scanner and initiator timing-events are scheduled.
The sections only refer to scanner timing-events, but initiator timing-events are scheduled in the same way.

.. note::
The priority of scanner and initiator timing-events are different.
See :ref:`scheduling_priorities_table` for details.


Primary channel Scanner timing
==============================
Expand Down Expand Up @@ -467,6 +477,25 @@ Therefore, the Scanner cannot decide when the secondary scanning timing-events w
Scanner timing - secondary scan timing-events will interleave with connections


Concurrent scanner and initiator timing
=======================================

When the :kconfig:option:`CONFIG_BT_CTLR_SDC_ALLOW_PARALLEL_SCANNING_AND_INITIATING` Kconfig option is enabled, the application can run the scanner and initiator in parallel.
The scanner and initiator timing-events will be combined or scheduled separately depending on the parameters provided when starting the scanner and initiator.
When the timing-events are combined, each received packet is received and processed both by the scanner and initiator.
When the timing-events are scheduled separately, only one of the roles is processing an incoming packet.

The timing-events are combined only if all the following conditions are met:

* The scanner is configured to run with a scan duration of 0 (without timeout).
* The scanner and initiator are configured to scan on the same primary PHYs.
* The scanner and initiator are configured to use the same own address type.
* The scanner and initiator have the same scan interval configuration.
* The scanner and initiator have the same scan window configuration.

In most cases it is more efficient to have the timing-events combined, because then incoming packets will be processed by both roles.
This means that the application should use parameters that meet the conditions outlined above, unless the specific use case dictates otherwise.

Timing when synchronized to a periodic advertiser
*************************************************

Expand Down
6 changes: 3 additions & 3 deletions softdevice_controller/include/sdc.h
Original file line number Diff line number Diff line change
Expand Up @@ -148,8 +148,8 @@ extern "C" {
*/

/** @brief Auxiliary defines, not to be used outside of this file. */
#define __MEM_MINIMAL_CENTRAL_LINK_SIZE 963
#define __MEM_MINIMAL_PERIPHERAL_LINK_SIZE 1075
#define __MEM_MINIMAL_CENTRAL_LINK_SIZE 811
#define __MEM_MINIMAL_PERIPHERAL_LINK_SIZE 915
#define __MEM_TX_BUFFER_OVERHEAD_SIZE 14
#define __MEM_RX_BUFFER_OVERHEAD_SIZE 14

Expand Down Expand Up @@ -203,7 +203,7 @@ extern "C" {
*
* @param[in] num_links Total number of peripheral and central links supported.
*/
#define SDC_MEM_SYNC_TRANSFER(num_links) (0 + (num_links) * 0)
#define SDC_MEM_SYNC_TRANSFER(num_links) ((num_links) > 0 ? (13 + (num_links) * 139) : 0)

/** Memory required for Quality of Service (QoS) channel survey module. */
#define SDC_MEM_QOS_CHANNEL_SURVEY (40)
Expand Down
Binary file not shown.
Binary file not shown.
Binary file not shown.
8 changes: 4 additions & 4 deletions softdevice_controller/lib/nrf52/hard-float/manifest.yaml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
description: SoftDevice Controller
git_revision: 6c48afc9da87c6b789378d4c365fbd63b9bf7ec2
ll_subversion_number: '0x1245'
ll_version_number: '0x0D'
timestamp: '2024-09-03T08:23:55Z'
git_revision: c3da9a7fe9e1d321cd3fbe9a94f1c9d310ddfbfe
ll_subversion_number: '0x101C'
ll_version_number: '0x0E'
timestamp: '2024-09-24T09:45:48Z'
Binary file not shown.
Binary file not shown.
Binary file not shown.
8 changes: 4 additions & 4 deletions softdevice_controller/lib/nrf52/soft-float/manifest.yaml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
description: SoftDevice Controller
git_revision: 6c48afc9da87c6b789378d4c365fbd63b9bf7ec2
ll_subversion_number: '0x1245'
ll_version_number: '0x0D'
timestamp: '2024-09-03T08:23:55Z'
git_revision: c3da9a7fe9e1d321cd3fbe9a94f1c9d310ddfbfe
ll_subversion_number: '0x101C'
ll_version_number: '0x0E'
timestamp: '2024-09-24T09:45:48Z'
Binary file not shown.
Binary file not shown.
Binary file not shown.
8 changes: 4 additions & 4 deletions softdevice_controller/lib/nrf52/softfp-float/manifest.yaml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
description: SoftDevice Controller
git_revision: 6c48afc9da87c6b789378d4c365fbd63b9bf7ec2
ll_subversion_number: '0x1245'
ll_version_number: '0x0D'
timestamp: '2024-09-03T08:23:55Z'
git_revision: c3da9a7fe9e1d321cd3fbe9a94f1c9d310ddfbfe
ll_subversion_number: '0x101C'
ll_version_number: '0x0E'
timestamp: '2024-09-24T09:45:48Z'
Binary file not shown.
8 changes: 4 additions & 4 deletions softdevice_controller/lib/nrf53/soft-float/manifest.yaml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
description: SoftDevice Controller
git_revision: 6c48afc9da87c6b789378d4c365fbd63b9bf7ec2
ll_subversion_number: '0x2245'
ll_version_number: '0x0D'
timestamp: '2024-09-03T08:24:56Z'
git_revision: c3da9a7fe9e1d321cd3fbe9a94f1c9d310ddfbfe
ll_subversion_number: '0x201C'
ll_version_number: '0x0E'
timestamp: '2024-09-24T09:46:54Z'
Binary file not shown.
8 changes: 4 additions & 4 deletions softdevice_controller/lib/nrf54h/hard-float/manifest.yaml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
description: SoftDevice Controller
git_revision: 6c48afc9da87c6b789378d4c365fbd63b9bf7ec2
ll_subversion_number: '0x4245'
ll_version_number: '0x0D'
timestamp: '2024-09-03T08:25:54Z'
git_revision: c3da9a7fe9e1d321cd3fbe9a94f1c9d310ddfbfe
ll_subversion_number: '0x401C'
ll_version_number: '0x0E'
timestamp: '2024-09-24T09:48:04Z'
Binary file not shown.
8 changes: 4 additions & 4 deletions softdevice_controller/lib/nrf54h/soft-float/manifest.yaml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
description: SoftDevice Controller
git_revision: 6c48afc9da87c6b789378d4c365fbd63b9bf7ec2
ll_subversion_number: '0x4245'
ll_version_number: '0x0D'
timestamp: '2024-09-03T08:25:54Z'
git_revision: c3da9a7fe9e1d321cd3fbe9a94f1c9d310ddfbfe
ll_subversion_number: '0x401C'
ll_version_number: '0x0E'
timestamp: '2024-09-24T09:48:04Z'
Binary file not shown.
8 changes: 4 additions & 4 deletions softdevice_controller/lib/nrf54h/softfp-float/manifest.yaml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
description: SoftDevice Controller
git_revision: 6c48afc9da87c6b789378d4c365fbd63b9bf7ec2
ll_subversion_number: '0x4245'
ll_version_number: '0x0D'
timestamp: '2024-09-03T08:25:54Z'
git_revision: c3da9a7fe9e1d321cd3fbe9a94f1c9d310ddfbfe
ll_subversion_number: '0x401C'
ll_version_number: '0x0E'
timestamp: '2024-09-24T09:48:04Z'
Binary file not shown.
8 changes: 4 additions & 4 deletions softdevice_controller/lib/nrf54l/hard-float/manifest.yaml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
description: SoftDevice Controller
git_revision: 6c48afc9da87c6b789378d4c365fbd63b9bf7ec2
ll_subversion_number: '0x3245'
ll_version_number: '0x0D'
timestamp: '2024-09-03T08:27:15Z'
git_revision: c3da9a7fe9e1d321cd3fbe9a94f1c9d310ddfbfe
ll_subversion_number: '0x301C'
ll_version_number: '0x0E'
timestamp: '2024-09-24T09:49:38Z'
Binary file not shown.
8 changes: 4 additions & 4 deletions softdevice_controller/lib/nrf54l/soft-float/manifest.yaml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
description: SoftDevice Controller
git_revision: 6c48afc9da87c6b789378d4c365fbd63b9bf7ec2
ll_subversion_number: '0x3245'
ll_version_number: '0x0D'
timestamp: '2024-09-03T08:27:15Z'
git_revision: c3da9a7fe9e1d321cd3fbe9a94f1c9d310ddfbfe
ll_subversion_number: '0x301C'
ll_version_number: '0x0E'
timestamp: '2024-09-24T09:49:38Z'
Binary file not shown.
8 changes: 4 additions & 4 deletions softdevice_controller/lib/nrf54l/softfp-float/manifest.yaml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
description: SoftDevice Controller
git_revision: 6c48afc9da87c6b789378d4c365fbd63b9bf7ec2
ll_subversion_number: '0x3245'
ll_version_number: '0x0D'
timestamp: '2024-09-03T08:27:15Z'
git_revision: c3da9a7fe9e1d321cd3fbe9a94f1c9d310ddfbfe
ll_subversion_number: '0x301C'
ll_version_number: '0x0E'
timestamp: '2024-09-24T09:49:38Z'
Binary file not shown.
8 changes: 4 additions & 4 deletions softdevice_controller/lib/nrf54l_ns/hard-float/manifest.yaml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
description: SoftDevice Controller
git_revision: 6c48afc9da87c6b789378d4c365fbd63b9bf7ec2
ll_subversion_number: '0x3245'
ll_version_number: '0x0D'
timestamp: '2024-09-03T08:27:55Z'
git_revision: c3da9a7fe9e1d321cd3fbe9a94f1c9d310ddfbfe
ll_subversion_number: '0x301C'
ll_version_number: '0x0E'
timestamp: '2024-09-24T09:50:53Z'
Binary file not shown.
8 changes: 4 additions & 4 deletions softdevice_controller/lib/nrf54l_ns/soft-float/manifest.yaml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
description: SoftDevice Controller
git_revision: 6c48afc9da87c6b789378d4c365fbd63b9bf7ec2
ll_subversion_number: '0x3245'
ll_version_number: '0x0D'
timestamp: '2024-09-03T08:27:55Z'
git_revision: c3da9a7fe9e1d321cd3fbe9a94f1c9d310ddfbfe
ll_subversion_number: '0x301C'
ll_version_number: '0x0E'
timestamp: '2024-09-24T09:50:53Z'
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
description: SoftDevice Controller
git_revision: 6c48afc9da87c6b789378d4c365fbd63b9bf7ec2
ll_subversion_number: '0x3245'
ll_version_number: '0x0D'
timestamp: '2024-09-03T08:27:55Z'
git_revision: c3da9a7fe9e1d321cd3fbe9a94f1c9d310ddfbfe
ll_subversion_number: '0x301C'
ll_version_number: '0x0E'
timestamp: '2024-09-24T09:50:53Z'

0 comments on commit 8fa4251

Please sign in to comment.