Skip to content

Commit f6c01d2

Browse files
committed
softdevice_controller: rev c3da9a7fe9e1d321cd3fbe9a94f1c9d310ddfbfe
CHANGELOG.rst contains the list of changes. Signed-off-by: Lang Xie <[email protected]>
1 parent 5c48315 commit f6c01d2

35 files changed

+105
-67
lines changed

softdevice_controller/CHANGELOG.rst

Lines changed: 16 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -16,16 +16,17 @@ Added
1616
=====
1717

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

2626
Changes
2727
=======
2828

29+
* 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).
2930
* The ``sdc_coex_adv_mode_configure`` API has been deprecated as it is not applicable to any supported coexistence interfaces. (DRGN-20876).
3031
* 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)
3132
* The vendor-specific Set Connection Event Trigger command has been deprecated.
@@ -41,6 +42,8 @@ Changes
4142
* For a Synchronized Receiver, the priority of the first ``BN`` subevents of relevant BISes in a BIG event now have an elevated priority.
4243
This should improve reliability of ISO data being received by a Synchronized Receiver running alongside a role of lower priority.
4344
For more details, see the :ref:`scheduling_priorities_table` table.
45+
* The SoftDevice Controller can now utilize more than 64K of memory buffer passed to :c:func:`sdc_enable`. (DRGN-22067)
46+
* 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)
4447

4548
Bug fixes
4649
=========
@@ -51,10 +54,11 @@ Bug fixes
5154
* Fixed an assert that could happen when in a connection where the peer device is transmitting on S8 Coded PHY.
5255
This issue was present in v2.6 and v2.7 releases. (DRGN-22652)
5356
* 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)
54-
* Fixed a very rare issue where the controller stopped generating advertising reports. (DRGN-22678)
55-
On nRF52 Series and nRF53 Series this would happen at least one hour after the scanner started.
56-
On nRF54L and nRF54H Series this would occur immediately after the scanner started.
57-
In would only happen when:
57+
* Fixed a very rare issue where the controller stopped generating advertising reports.
58+
On nRF52 Series and nRF53 Series devices, this would happen at least one hour after the scanner started.
59+
On nRF54L and nRF54H Series devices, this would occur immediately after the scanner started. (DRGN-22678)
60+
61+
It would only happen when one of the following applies:
5862

5963
* 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.
6064
This activity was configured with an event length or event spacing equal or greater than the scan interval.
@@ -64,17 +68,22 @@ Bug fixes
6468
* Fixed a rare issue where the scanner would be stuck in the synchronizing state after failing to receive an ``AUX_ADV_IND`` packet.
6569
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)
6670
* Fixed an issue where the controller could generate the LE Advertising Set Terminated event one event sooner than expected. (DRGN-22705)
67-
This could only happen when (all of the following)
71+
72+
This could only happen when all of the following apply:
73+
6874
* a non-zero Max_Extended_Advertising_Events parameter was used in the LE Set Extended Advertising Enable command.
6975
* other ongoing activities in the controller prevented the first advertising event from taking place when the advertising set was created.
7076
* 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)
7177
* Fixed an issue where the Central failed to receive the last packet in an isochronous event.
7278
This could only happen if the Connected Isochronous Stream Creation procedure was initiated by the host before the Encryption Start procedure completed. (DRGN-22879)
7379
* Fixed an assert that could happen when using the coexistence interface. (DRGN-23002)
80+
7481
This could happen when any of the following controller activities were ongoing:
82+
7583
* Isochronous Broadcaster
7684
* Connected Isochronous channel in the peripheral role
7785
* Periodic Sync with Responses
86+
* Fixed an issue where LE Power Control was not being used for CISes which are not the first CIS in a CIG. (DRGN-23291)
7887

7988
nRF Connect SDK v2.7.0
8089
**********************

softdevice_controller/doc/scheduling.rst

Lines changed: 34 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,8 @@ The following table summarizes the priorities.
7676
| Third priority | * All |BLE| roles in states other than above run with this priority |
7777
| | * MPSL Timeslot with high priority |
7878
+-----------------------------+---------------------------------------------------------------------------------------------------+
79-
| Fourth priority | * Scanner when the scan window is equal to the scan interval |
79+
| Fourth priority | * Scanner when the scan window is equal to the scan interval and the scanner has been able to |
80+
| | run a timing-event at least once in the last couple of scan intervals. |
8081
| | * Quality of Service channel survey |
8182
+-----------------------------+---------------------------------------------------------------------------------------------------+
8283
| Fifth priority | * 802.15.4 radio driver |
@@ -360,12 +361,21 @@ Here :math:`\mathsf{C1}` can utilize the free time left by a previously disconne
360361

361362
Multilink scheduling and Connection Event Length Extension
362363

363-
Scanner timing
364-
**************
364+
Scanner and Initiator timing
365+
************************
365366

366367
Scanning is a periodic activity where the |controller| listens for packets from Advertisers.
367-
When the |controller| starts scanning, it will listen for packets on the primary advertising channels.
368-
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.
368+
Initiating is a periodic activity where the |controller| tries to connect to an Advertiser by first listening for packets from an Advertiser.
369+
When the |controller| starts scanning or initiating, it will listen for packets on the primary advertising channels.
370+
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.
371+
372+
The `Primary channel Scanner timing`_ and `Secondary channel Scanner timing`_ sections describe how scanner and initiator timing-events are scheduled.
373+
The sections only refer to scanner timing-events, but initiator timing-events are scheduled in the same way.
374+
375+
.. note::
376+
The priority of scanner and initiator timing-events are different.
377+
See :ref:`scheduling_priorities_table` for details.
378+
369379

370380
Primary channel Scanner timing
371381
==============================
@@ -467,6 +477,25 @@ Therefore, the Scanner cannot decide when the secondary scanning timing-events w
467477
Scanner timing - secondary scan timing-events will interleave with connections
468478

469479

480+
Concurrent scanner and initiator timing
481+
=======================================
482+
483+
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.
484+
The scanner and initiator timing-events will be combined or scheduled separately depending on the parameters provided when starting the scanner and initiator.
485+
When the timing-events are combined, each received packet is received and processed both by the scanner and initiator.
486+
When the timing-events are scheduled separately, only one of the roles is processing an incoming packet.
487+
488+
The timing-events are combined only if all the following conditions are met:
489+
490+
* The scanner is configured to run with a scan duration of 0 (without timeout).
491+
* The scanner and initiator are configured to scan on the same primary PHYs.
492+
* The scanner and initiator are configured to use the same own address type.
493+
* The scanner and initiator have the same scan interval configuration.
494+
* The scanner and initiator have the same scan window configuration.
495+
496+
In most cases it is more efficient to have the timing-events combined, because then incoming packets will be processed by both roles.
497+
This means that the application should use parameters that meet the conditions outlined above, unless the specific use case dictates otherwise.
498+
470499
Timing when synchronized to a periodic advertiser
471500
*************************************************
472501

softdevice_controller/include/sdc.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -148,8 +148,8 @@ extern "C" {
148148
*/
149149

150150
/** @brief Auxiliary defines, not to be used outside of this file. */
151-
#define __MEM_MINIMAL_CENTRAL_LINK_SIZE 963
152-
#define __MEM_MINIMAL_PERIPHERAL_LINK_SIZE 1075
151+
#define __MEM_MINIMAL_CENTRAL_LINK_SIZE 811
152+
#define __MEM_MINIMAL_PERIPHERAL_LINK_SIZE 915
153153
#define __MEM_TX_BUFFER_OVERHEAD_SIZE 14
154154
#define __MEM_RX_BUFFER_OVERHEAD_SIZE 14
155155

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

208208
/** Memory required for Quality of Service (QoS) channel survey module. */
209209
#define SDC_MEM_QOS_CHANNEL_SURVEY (40)
Binary file not shown.
Binary file not shown.
Binary file not shown.
Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
description: SoftDevice Controller
2-
git_revision: 6c48afc9da87c6b789378d4c365fbd63b9bf7ec2
3-
ll_subversion_number: '0x1245'
4-
ll_version_number: '0x0D'
5-
timestamp: '2024-09-03T08:23:55Z'
2+
git_revision: c3da9a7fe9e1d321cd3fbe9a94f1c9d310ddfbfe
3+
ll_subversion_number: '0x101C'
4+
ll_version_number: '0x0E'
5+
timestamp: '2024-09-24T09:45:48Z'
Binary file not shown.
Binary file not shown.
Binary file not shown.

0 commit comments

Comments
 (0)