Skip to content

Commit 539afc2

Browse files
committed
softdevice_controller: rev 03063719e160e07413b0d7c2448cbd822a38640a
CHANGELOG.rst contains the list of changes. Signed-off-by: Rubin Ingwer Gerritsen <[email protected]>
1 parent 8fedc5c commit 539afc2

37 files changed

+1589
-78
lines changed

softdevice_controller/CHANGELOG.rst

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ Added
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)
25+
* Support for ISO broadcaster handles in the :c:func:`sdc_hci_cmd_vs_zephyr_write_tx_power` and :c:func:`sdc_hci_cmd_vs_zephyr_read_tx_power` commands (DRGN-23441).
2526

2627
Changes
2728
=======
@@ -44,8 +45,9 @@ Changes
4445
For more details, see the :ref:`scheduling_priorities_table` table.
4546
* The SoftDevice Controller can now utilize more than 64K of memory buffer passed to :c:func:`sdc_enable`. (DRGN-22067)
4647
* 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)
47-
* Prioritize generating the Number Of Completed Packets event above all other events.
48-
Generate the event irrespective of the state of the Controller to Host data flow control. (DRGN-23284)
48+
* Generating the Number of Completed Packets event is now prioritized above all other events.
49+
The event is generated irrespective of the state of the Controller to Host data flow control. (DRGN-23284)
50+
* When a link disconnects, the controller will now raise one or more Number Of Completed Packets events for data packets not ACKed by the peer device. (DRGN-23302)
4951

5052
Bug fixes
5153
=========

softdevice_controller/include/sdc.h

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -133,6 +133,9 @@ extern "C" {
133133
/** @brief Default ISO TX PDU buffer per stream count. */
134134
#define SDC_DEFAULT_ISO_TX_PDU_BUFFER_PER_STREAM_COUNT 0
135135

136+
/** @brief Default maximum number of concurrent connections supporting CS procedure */
137+
#define SDC_DEFAULT_CS_COUNT 0
138+
136139
/** @brief Size of build revision array in bytes. */
137140
#define SDC_BUILD_REVISION_SIZE 20
138141

@@ -330,6 +333,18 @@ extern "C" {
330333
* @param[in] size Maximum size of SDUs being used. */
331334
#define SDC_MEM_ISO_TX_SDU_POOL_SIZE(count, size) ((count) > 0 ? (12 + (count) * ((size) + 49)) : 0)
332335

336+
/** @brief Maximum additional memory required to support Channel Sounding
337+
*
338+
* @param[in] count Maximum number of concurrent connections supporting CS procedure.
339+
*/
340+
#define SDC_MEM_CS(count) ((count) > 0 ? (13 + (count)*7371) : 0)
341+
342+
/** @brief Maximum additional memory required to support Channel Sounding setup phase procedures
343+
*
344+
* @param[in] count Total number of links (central + peripheral).
345+
*/
346+
#define SDC_MEM_CS_SETUP_PHASE_LINKS(count) ((count) > 0 ? (11 + (count)*315) : 0)
347+
333348
/** @} end of sdc_mem_defines */
334349

335350
/** @brief Function prototype for the fault handler.
@@ -397,6 +412,8 @@ enum sdc_cfg_type
397412
SDC_CFG_TYPE_BIS_SOURCE_COUNT,
398413
/** See @ref sdc_cfg_t::iso_buffer_cfg. */
399414
SDC_CFG_TYPE_ISO_BUFFER_CFG,
415+
/** See @ref sdc_cfg_t::cs_count. */
416+
SDC_CFG_TYPE_CS_COUNT,
400417
};
401418

402419

@@ -640,6 +657,11 @@ typedef union
640657
* Default: See @ref sdc_cfg_iso_buffer_cfg_t.
641658
*/
642659
sdc_cfg_iso_buffer_cfg_t iso_buffer_cfg;
660+
/** Configures the maximum number of concurrent connections supporting CS procedure.
661+
*
662+
* Default: @ref SDC_DEFAULT_CS_COUNT.
663+
*/
664+
sdc_cfg_role_count_t cs_count;
643665
} sdc_cfg_t;
644666

645667

@@ -1265,6 +1287,31 @@ int32_t sdc_support_connection_subrating_central(void);
12651287
*/
12661288
int32_t sdc_support_connection_subrating_peripheral(void);
12671289

1290+
/** @brief Support Channel Sounding test command
1291+
*
1292+
* After this API is called, the controller will support the HCI command
1293+
* HCI LE Channel Sounding Test
1294+
*
1295+
* @retval 0 Success
1296+
* @retval -NRF_EPERM This API must be called before @ref sdc_cfg_set() or @ref sdc_enable().
1297+
* @retval -NRF_EOPNOTSUPP Channel Sounding Test is not supported
1298+
*/
1299+
int32_t sdc_support_channel_sounding_test(void);
1300+
1301+
/** @brief Support LE Channel Sounding
1302+
*
1303+
* After this API is called, the controller will support the HCI command
1304+
* related to Channel Sounding.
1305+
*
1306+
* The application shall call @ref sdc_support_channel_sounding_test() to enable
1307+
* support for Channel Sounding test command.
1308+
*
1309+
* @retval 0 Success
1310+
* @retval -NRF_EPERM This API must be called before @ref sdc_cfg_set() or @ref sdc_enable().
1311+
* @retval -NRF_EOPNOTSUPP Channel Sounding is not supported
1312+
*/
1313+
int32_t sdc_support_channel_sounding(void);
1314+
12681315
#ifdef __cplusplus
12691316
}
12701317
#endif

softdevice_controller/include/sdc_hci_cmd_info_params.h

Lines changed: 31 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -219,8 +219,8 @@ typedef struct __PACKED __ALIGN(1)
219219
uint8_t previously_used_11_7 : 1;
220220
uint8_t previously_used_12_0 : 1;
221221
uint8_t hci_set_afh_host_channel_classification : 1;
222-
uint8_t rfu_12_2 : 1;
223-
uint8_t rfu_12_3 : 1;
222+
uint8_t hci_le_cs_read_remote_fae_table : 1;
223+
uint8_t hci_le_cs_write_cached_remote_fae_table : 1;
224224
uint8_t hci_read_inquiry_scan_type : 1;
225225
uint8_t hci_write_inquiry_scan_type : 1;
226226
uint8_t hci_read_inquiry_mode : 1;
@@ -251,12 +251,12 @@ typedef struct __PACKED __ALIGN(1)
251251
uint8_t hci_read_clock : 1;
252252
uint8_t hci_read_loopback_mode : 1;
253253
uint8_t hci_write_loopback_mode : 1;
254-
uint8_t hci_enable_device_under_test_mode : 1;
254+
uint8_t hci_enable_implementation_under_test_mode : 1;
255255
uint8_t hci_setup_synchronous_connection_request : 1;
256256
uint8_t hci_accept_synchronous_connection_request : 1;
257257
uint8_t hci_reject_synchronous_connection_request : 1;
258-
uint8_t rfu_16_6 : 1;
259-
uint8_t rfu_16_7 : 1;
258+
uint8_t hci_le_cs_create_config : 1;
259+
uint8_t hci_le_cs_remove_config : 1;
260260
uint8_t hci_read_extended_inquiry_response : 1;
261261
uint8_t hci_write_extended_inquiry_response : 1;
262262
uint8_t hci_refresh_encryption_key : 1;
@@ -286,9 +286,9 @@ typedef struct __PACKED __ALIGN(1)
286286
uint8_t hci_send_keypress_notification : 1;
287287
uint8_t hci_io_capability_request_negative_reply : 1;
288288
uint8_t hci_read_encryption_key_size : 1;
289-
uint8_t rfu_20_5 : 1;
290-
uint8_t rfu_20_6 : 1;
291-
uint8_t rfu_20_7 : 1;
289+
uint8_t hci_le_cs_read_local_supported_capabilities : 1;
290+
uint8_t hci_le_cs_read_remote_supported_capabilities : 1;
291+
uint8_t hci_le_cs_write_cached_remote_supported_capabilities : 1;
292292
uint8_t previously_used_21_0 : 1;
293293
uint8_t previously_used_21_1 : 1;
294294
uint8_t previously_used_21_2 : 1;
@@ -308,19 +308,19 @@ typedef struct __PACKED __ALIGN(1)
308308
uint8_t hci_read_flow_control_mode : 1;
309309
uint8_t hci_write_flow_control_mode : 1;
310310
uint8_t hci_read_data_block_size : 1;
311-
uint8_t rfu_23_3 : 1;
312-
uint8_t rfu_23_4 : 1;
311+
uint8_t hci_le_cs_test : 1;
312+
uint8_t hci_le_cs_test_end : 1;
313313
uint8_t previously_used_23_5 : 1;
314314
uint8_t previously_used_23_6 : 1;
315315
uint8_t previously_used_23_7 : 1;
316316
uint8_t hci_read_enhanced_transmit_power_level : 1;
317-
uint8_t rfu_24_1 : 1;
317+
uint8_t hci_le_cs_security_enable : 1;
318318
uint8_t previously_used_24_2 : 1;
319319
uint8_t previously_used_24_3 : 1;
320320
uint8_t previously_used_24_4 : 1;
321321
uint8_t hci_read_le_host_support : 1;
322322
uint8_t hci_write_le_host_support : 1;
323-
uint8_t rfu_24_7 : 1;
323+
uint8_t hci_le_cs_set_default_settings : 1;
324324
uint8_t hci_le_set_event_mask : 1;
325325
uint8_t hci_le_read_buffer_size_v1 : 1;
326326
uint8_t hci_le_read_local_supported_features : 1;
@@ -352,10 +352,10 @@ typedef struct __PACKED __ALIGN(1)
352352
uint8_t hci_le_receiver_test_v1 : 1;
353353
uint8_t hci_le_transmitter_test_v1 : 1;
354354
uint8_t hci_le_test_end : 1;
355-
uint8_t rfu_28_7 : 1;
356-
uint8_t rfu_29_0 : 1;
357-
uint8_t rfu_29_1 : 1;
358-
uint8_t rfu_29_2 : 1;
355+
uint8_t hci_le_enable_monitoring_advertisers : 1;
356+
uint8_t hci_le_cs_set_channel_classification : 1;
357+
uint8_t hci_le_cs_set_procedure_parameters : 1;
358+
uint8_t hci_le_cs_procedure_enable : 1;
359359
uint8_t hci_enhanced_setup_synchronous_connection : 1;
360360
uint8_t hci_enhanced_accept_synchronous_connection : 1;
361361
uint8_t hci_read_local_supported_codecs : 1;
@@ -492,19 +492,21 @@ typedef struct __PACKED __ALIGN(1)
492492
uint8_t hci_le_set_default_subrate_command : 1;
493493
uint8_t hci_le_subrate_request_command : 1;
494494
uint8_t hci_le_set_extended_advertising_parameters_v2 : 1;
495-
uint8_t rfu_46_3 : 1;
496-
uint8_t rfu_46_4 : 1;
495+
uint8_t hci_le_set_decision_data : 1;
496+
uint8_t hci_le_set_decision_instructions : 1;
497497
uint8_t hci_le_set_periodic_advertising_subevent_data : 1;
498498
uint8_t hci_le_set_periodic_advertising_response_data : 1;
499499
uint8_t hci_le_set_periodic_sync_subevent : 1;
500500
uint8_t hci_le_extended_create_connection_v2 : 1;
501501
uint8_t hci_le_set_periodic_advertising_parameters_v2 : 1;
502-
uint8_t rfu_47_2 : 1;
503-
uint8_t rfu_47_3 : 1;
504-
uint8_t rfu_47_4 : 1;
505-
uint8_t rfu_47_5 : 1;
506-
uint8_t rfu_47_6 : 1;
507-
uint8_t rfu_47_7 : 1;
502+
uint8_t hci_le_read_all_local_supported_features : 1;
503+
uint8_t hci_le_read_all_remote_features : 1;
504+
uint8_t hci_le_set_host_feature_v2 : 1;
505+
uint8_t hci_le_add_device_to_monitored_advertisers_list : 1;
506+
uint8_t hci_le_remove_device_from_monitored_advertisers_list : 1;
507+
uint8_t hci_le_clear_monitored_advertisers_list : 1;
508+
uint8_t hci_le_read_monitored_advertisers_list_size : 1;
509+
uint8_t hci_le_frame_space_update : 1;
508510
} sdc_hci_ip_supported_commands_t;
509511

510512
/** @} end of HCI_TYPES */
@@ -578,20 +580,18 @@ uint8_t sdc_hci_cmd_ip_read_local_version_information(sdc_hci_cmd_ip_read_local_
578580

579581
/** @brief Read Local Supported Commands.
580582
*
581-
* The description below is extracted from Core_v5.4,
583+
* The description below is extracted from Core_v6.0,
582584
* Vol 4, Part E, Section 7.4.2
583585
*
584-
* This command reads the list of HCI commands supported for the local
585-
* Controller.
586+
* This command reads the list of HCI commands supported for the local Controller.
586587
*
587-
* This command shall return the Supported_Commands configuration
588-
* parameter.
588+
* This command shall return the Supported_Commands configuration parameter.
589589
*
590590
* See Section 6.27 for more information.
591591
*
592592
* Event(s) generated (unless masked away):
593-
* When the HCI_Read_Local_Supported_Commands command has completed,
594-
* an HCI_Command_Complete event shall be generated.
593+
* When the HCI_Read_Local_Supported_Commands command has completed, an
594+
* HCI_Command_Complete event shall be generated.
595595
*
596596
* @param[out] p_return Extra return parameters.
597597
*

0 commit comments

Comments
 (0)