Skip to content

Commit

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

Signed-off-by: Herman Berget <[email protected]>
  • Loading branch information
hermabe committed Mar 14, 2024
1 parent 9a087de commit d3b80a0
Show file tree
Hide file tree
Showing 32 changed files with 75 additions and 67 deletions.
7 changes: 3 additions & 4 deletions softdevice_controller/README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,11 @@
SoftDevice Controller
#####################

The |controller| is an RTOS-agnostic library built for the Nordic Semiconductor nRF52 and nRF53 Series.
It supports Bluetooth 5.
The |controller| is an RTOS-agnostic library built for the Nordic Semiconductor devices that support Bluetooth.
The library utilizes services provided by the :ref:`mpsl`.

The |controller| is distributed in different variants containing different features.
Variants for the Arm Cortex-M4 processor are available as soft-float, softfp-float, and hard-float.
Variants for the Arm Cortex-M33 processor are available as soft-float only.
The libraries are available as soft-float, softfp-float, and hard-float builds for the nRF52, nRF54H and nRF54L Series, and as a soft-float build for the nRF53 Series.

|BLE| feature support:

Expand Down Expand Up @@ -72,6 +70,7 @@ Variants for the Arm Cortex-M33 processor are available as soft-float only.
* For Connection CTE Response, angle of arrival (AoA) is supported, but angle of departure (AoD) is not.
* For Periodic Advertising Sync Transfer - Receiver, only one sync transfer reception may be in progress at any one time per link.
* For the Isochronous Channels features, nRF52820 and nRF52833 are the nRF52 Series devices that support encrypting and decrypting the Isochronous Channels packets.
* For the nRF54H and nRF54L series, all Bluetooth features are experimental.

.. _sdc_proprietary_feature_support:

Expand Down
33 changes: 30 additions & 3 deletions softdevice_controller/doc/softdevice_controller.rst
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,10 @@ Integration with applications
:local:
:depth: 2

The |controller| is an RTOS-agnostic library built for the Nordic Semiconductor nRF52 and nRF53 Series that supports Bluetooth 5.
The |controller| is an RTOS-agnostic library built for the Nordic Semiconductor devices that support Bluetooth.

For the nRF53 Series, the requirements described in this document are only relevant for applications running alongside the |controller| on the network processor.
For the nRF54H Series, some peripherals in the global domain are reserved so the requirements described here are relevant for all processors.

Applications utilizing the |controller| library are responsible for the following:

Expand All @@ -28,11 +29,37 @@ Applications utilizing the |controller| library are responsible for the followin

The following peripherals are owned by the |controller| and must not be accessed directly by the application:

For the nRF52 Series:

* ``CCM``
* ``AAR``
* ``NVMC``
* PPI channels from ``17`` to ``31``

For the nRF53 Series:

* ``CCM``
* ``AAR``
* ``NVMC``
* PPI channels from ``17`` to ``31`` (for the nRF52 Series)
* DPPI channels from ``0`` to ``13`` (for the nRF53 Series)
* DPPI channels from ``0`` to ``13``

For the nRF54H Series:

* ``CCM030``
* ``AAR030``
* ``DPPIC020`` channels from ``0`` to ``13``
* ``PPIB020`` channels from ``0`` to ``3``
* ``PPIB030`` channels from ``0`` to ``3``

For the nRF54L Series:

* ``CCM00``
* ``AAR00``
* ``RRAMC``
* ``DPPIC10`` channels from ``0`` to ``13``
* ``PPIB00`` channels from ``0`` to ``3``
* ``PPIB10`` channels from ``0`` to ``3``


Some of these peripherals can be accessed by APIs provided in :file:`sdc_soc.h` and by :ref:`mpsl`.
The application can access most of these directly using :ref:`mpsl_timeslot`.
Expand Down
10 changes: 6 additions & 4 deletions softdevice_controller/include/sdc.h
Original file line number Diff line number Diff line change
Expand Up @@ -190,11 +190,13 @@ extern "C" {
/** Memory required for Quality of Service (QoS) channel survey module. */
#define SDC_MEM_QOS_CHANNEL_SURVEY (40)

/** Memory required for scanner buffers when only supporting legacy scanning. */
#define SDC_MEM_SCAN_BUFFER(buffer_count) (26 + (buffer_count) * 88)
/** Memory required for the scanner when only supporting legacy scanning. */
#define SDC_MEM_SCAN_BUFFER(buffer_count) (344 + (buffer_count) * 88)
#define SDC_MEM_SCAN(buffer_count) (344 + (buffer_count) * 88)

/** Memory required for scanner buffers when supporting extended scanning. */
#define SDC_MEM_SCAN_BUFFER_EXT(buffer_count) (26 + (buffer_count) * 306)
/** Memory required for the scanner when supporting extended scanning. */
#define SDC_MEM_SCAN_BUFFER_EXT(buffer_count) (345 + (buffer_count) * 307)
#define SDC_MEM_SCAN_EXT(buffer_count) (345 + (buffer_count) * 307)

/** Memory required for the Filter Accept List */
#define SDC_MEM_FAL(max_num_entries) ((max_num_entries) > 0 ? (4 + (max_num_entries) * 8) : 0)
Expand Down
5 changes: 3 additions & 2 deletions softdevice_controller/include/sdc_hci.h
Original file line number Diff line number Diff line change
Expand Up @@ -113,13 +113,14 @@ int32_t sdc_hci_iso_data_put(uint8_t const * p_data_in);
* @param[in,out] p_packet_out Buffer where the HCI packet will be stored.
* If an event is retrieved, the first byte corresponds to the Event Code.
* If a data packet is retrieved, the first byte corresponds to the Handle.
* @param[out] p_msg_type_out Enum indicating the type of HCI packet produced by the controller.
* @param[out] p_msg_type_out Type of HCI packet produced by the controller.
* See @ref sdc_hci_msg_type_t for possible values.
*
* @retval 0 Success
* @retval -NRF_EAGAIN No event available
* @retval -NRF_EINVAL Invalid input
*/
int32_t sdc_hci_get(uint8_t * p_packet_out, sdc_hci_msg_type_t * p_msg_type_out);
int32_t sdc_hci_get(uint8_t * p_packet_out, uint8_t * p_msg_type_out);

#ifdef __cplusplus
}
Expand Down
21 changes: 1 addition & 20 deletions softdevice_controller/include/sdc_soc.h
Original file line number Diff line number Diff line change
Expand Up @@ -52,30 +52,11 @@ int32_t sdc_soc_ecb_block_encrypt(const uint8_t key[16],
/**
* @brief Functions used by the SoftDevice Controller to obtain random numbers.
*
* These functions are used for several different purposes,
* including private address generation so they are expected to conform to:
* These functions are used for security-related purposes, so they must conform to:
* BLUETOOTH CORE SPECIFICATION Version 5.2 | Vol 2, Part H, Section 2.
*/
typedef struct
{
/** @brief Function used by the controller to obtain random numbers in a low priority context.
* The function will be executed in the same context as mpsl_low_priority_process and should not block.
*
* @param[out] p_buff The destination buffer for the random numbers
* @param[in] length The requested number of random bytes and the maximum length of the destination buffer
* @retval The number of bytes written to p_buff
*/
uint8_t (*rand_prio_low_get)(uint8_t *p_buff, uint8_t length);

/** @brief Function used by the controller to obtain random numbers in a high priority context.
* This function will be called in an ISR context and should not block.
*
* @param[out] p_buff The destination buffer for the random numbers
* @param[in] length The requested number of random bytes and the maximum length of the destination buffer
* @retval The number of bytes written to p_buff
*/
uint8_t (*rand_prio_high_get)(uint8_t *p_buff, uint8_t length);

/** @brief Function used by the controller to obtain random numbers.
* This function must block until length bytes of random numbers were written to p_buff.
* The function will be executed in the same context as mpsl_low_priority_process.
Expand Down
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
description: SoftDevice Controller
git_revision: 36f0e50e876848fb02fd9f82cc32e57b91b15ced
ll_subversion_number: '0x218F'
git_revision: 93ccb683b14bbf82dcfe7a27fdca9a2adb70a52c
ll_subversion_number: '0x2198'
ll_version_number: '0x0D'
timestamp: '2024-03-05T14:46:47Z'
timestamp: '2024-03-14T09:27:01Z'
Binary file not shown.
Binary file not shown.
Binary file not shown.
6 changes: 3 additions & 3 deletions softdevice_controller/lib/cortex-m4/hard-float/manifest.yaml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
description: SoftDevice Controller
git_revision: 36f0e50e876848fb02fd9f82cc32e57b91b15ced
ll_subversion_number: '0x118F'
git_revision: 93ccb683b14bbf82dcfe7a27fdca9a2adb70a52c
ll_subversion_number: '0x1198'
ll_version_number: '0x0D'
timestamp: '2024-03-05T14:43:03Z'
timestamp: '2024-03-14T09:24:06Z'
Binary file not shown.
Binary file not shown.
Binary file not shown.
6 changes: 3 additions & 3 deletions softdevice_controller/lib/cortex-m4/soft-float/manifest.yaml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
description: SoftDevice Controller
git_revision: 36f0e50e876848fb02fd9f82cc32e57b91b15ced
ll_subversion_number: '0x118F'
git_revision: 93ccb683b14bbf82dcfe7a27fdca9a2adb70a52c
ll_subversion_number: '0x1198'
ll_version_number: '0x0D'
timestamp: '2024-03-05T14:43:03Z'
timestamp: '2024-03-14T09:24:06Z'
Binary file not shown.
Binary file not shown.
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
description: SoftDevice Controller
git_revision: 36f0e50e876848fb02fd9f82cc32e57b91b15ced
ll_subversion_number: '0x118F'
git_revision: 93ccb683b14bbf82dcfe7a27fdca9a2adb70a52c
ll_subversion_number: '0x1198'
ll_version_number: '0x0D'
timestamp: '2024-03-05T14:43:03Z'
timestamp: '2024-03-14T09:24:06Z'
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
description: SoftDevice Controller
git_revision: 36f0e50e876848fb02fd9f82cc32e57b91b15ced
ll_subversion_number: '0x418F'
git_revision: 93ccb683b14bbf82dcfe7a27fdca9a2adb70a52c
ll_subversion_number: '0x4198'
ll_version_number: '0x0D'
timestamp: '2024-03-05T14:49:18Z'
timestamp: '2024-03-14T09:29:02Z'
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
description: SoftDevice Controller
git_revision: 36f0e50e876848fb02fd9f82cc32e57b91b15ced
ll_subversion_number: '0x418F'
git_revision: 93ccb683b14bbf82dcfe7a27fdca9a2adb70a52c
ll_subversion_number: '0x4198'
ll_version_number: '0x0D'
timestamp: '2024-03-05T14:49:18Z'
timestamp: '2024-03-14T09:29:02Z'
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
description: SoftDevice Controller
git_revision: 36f0e50e876848fb02fd9f82cc32e57b91b15ced
ll_subversion_number: '0x418F'
git_revision: 93ccb683b14bbf82dcfe7a27fdca9a2adb70a52c
ll_subversion_number: '0x4198'
ll_version_number: '0x0D'
timestamp: '2024-03-05T14:49:18Z'
timestamp: '2024-03-14T09:29:02Z'
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
description: SoftDevice Controller
git_revision: 36f0e50e876848fb02fd9f82cc32e57b91b15ced
ll_subversion_number: '0x318F'
git_revision: 93ccb683b14bbf82dcfe7a27fdca9a2adb70a52c
ll_subversion_number: '0x3198'
ll_version_number: '0x0D'
timestamp: '2024-03-05T14:55:21Z'
timestamp: '2024-03-14T09:33:53Z'
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
description: SoftDevice Controller
git_revision: 36f0e50e876848fb02fd9f82cc32e57b91b15ced
ll_subversion_number: '0x318F'
git_revision: 93ccb683b14bbf82dcfe7a27fdca9a2adb70a52c
ll_subversion_number: '0x3198'
ll_version_number: '0x0D'
timestamp: '2024-03-05T14:55:21Z'
timestamp: '2024-03-14T09:33:53Z'
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
description: SoftDevice Controller
git_revision: 36f0e50e876848fb02fd9f82cc32e57b91b15ced
ll_subversion_number: '0x318F'
git_revision: 93ccb683b14bbf82dcfe7a27fdca9a2adb70a52c
ll_subversion_number: '0x3198'
ll_version_number: '0x0D'
timestamp: '2024-03-05T14:55:21Z'
timestamp: '2024-03-14T09:33:53Z'
6 changes: 2 additions & 4 deletions softdevice_controller/limitations.rst
Original file line number Diff line number Diff line change
Expand Up @@ -51,10 +51,8 @@ DRGN-6362: Synthesized low frequency clock source not tested
DRGN-12259: HCI Receiver and Transmitter Test commands not available
The HCI Receiver and Transmitter Test commands are not available.

**Workaround:** To perform a radio test, use a DTM application:

* For nRF52, use the DTM application in the nRF5 SDK.
* For nRF53, use :ref:`direct_test_mode`.
**Workaround:** To perform a radio test, use the :ref:`direct_test_mode` sample.
For nRF52 Series devices, you can choose to use the DTM application in the nRF5 SDK instead.

DRGN-15989: In some cases, the SDC can connect to the peer it is already connected to
To prevent this, the application can remove the already connected peer from the Filter Accept List, or from the Resolving List, or not use that peer's address in Create Connection command.
Expand Down

0 comments on commit d3b80a0

Please sign in to comment.