Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update MPSL and SoftDevice Controller #1088

Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions mpsl/CHANGELOG.rst
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ Changes
Added
=====
* Added :c:func:`mpsl_tx_power_dbm_to_radio_register_convert` to convert supported power in dBm to a register code for RADIO. (KRKNWK-17367)
* Added :c:func:`mpsl_clock_task_trigger_on_rtc_start_set` to trigger a PPI/DPPI task when the RTC starts. (DRGN-20396)

nRF Connect SDK v2.4.0
**********************
Expand Down
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
description: MPSL Front-End Module common
git_revision: dc4d47198b0a0b0f2ce82684c790d619b9c2ae2b
timestamp: '2023-10-02T13:37:00Z'
git_revision: c01a7e9e0c2a42908afbdc220d391e76a74cc85d
timestamp: '2023-10-10T14:07:30Z'
Binary file modified mpsl/fem/common/lib/cortex-m4/hard-float/libmpsl_fem_common.a
Binary file not shown.
4 changes: 2 additions & 2 deletions mpsl/fem/common/lib/cortex-m4/hard-float/manifest.yaml
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
description: MPSL Front-End Module common
git_revision: dc4d47198b0a0b0f2ce82684c790d619b9c2ae2b
timestamp: '2023-10-02T13:35:22Z'
git_revision: c01a7e9e0c2a42908afbdc220d391e76a74cc85d
timestamp: '2023-10-10T14:05:49Z'
Binary file modified mpsl/fem/common/lib/cortex-m4/soft-float/libmpsl_fem_common.a
Binary file not shown.
4 changes: 2 additions & 2 deletions mpsl/fem/common/lib/cortex-m4/soft-float/manifest.yaml
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
description: MPSL Front-End Module common
git_revision: dc4d47198b0a0b0f2ce82684c790d619b9c2ae2b
timestamp: '2023-10-02T13:35:22Z'
git_revision: c01a7e9e0c2a42908afbdc220d391e76a74cc85d
timestamp: '2023-10-10T14:05:49Z'
Binary file not shown.
4 changes: 2 additions & 2 deletions mpsl/fem/common/lib/cortex-m4/softfp-float/manifest.yaml
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
description: MPSL Front-End Module common
git_revision: dc4d47198b0a0b0f2ce82684c790d619b9c2ae2b
timestamp: '2023-10-02T13:35:22Z'
git_revision: c01a7e9e0c2a42908afbdc220d391e76a74cc85d
timestamp: '2023-10-10T14:05:49Z'
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
description: MPSL Front-End Module nrf21540_gpio
git_revision: dc4d47198b0a0b0f2ce82684c790d619b9c2ae2b
timestamp: '2023-10-02T13:37:00Z'
git_revision: c01a7e9e0c2a42908afbdc220d391e76a74cc85d
timestamp: '2023-10-10T14:07:30Z'
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
description: MPSL Front-End Module nrf21540_gpio
git_revision: dc4d47198b0a0b0f2ce82684c790d619b9c2ae2b
timestamp: '2023-10-02T13:35:22Z'
git_revision: c01a7e9e0c2a42908afbdc220d391e76a74cc85d
timestamp: '2023-10-10T14:05:49Z'
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
description: MPSL Front-End Module nrf21540_gpio
git_revision: dc4d47198b0a0b0f2ce82684c790d619b9c2ae2b
timestamp: '2023-10-02T13:35:22Z'
git_revision: c01a7e9e0c2a42908afbdc220d391e76a74cc85d
timestamp: '2023-10-10T14:05:49Z'
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
description: MPSL Front-End Module nrf21540_gpio
git_revision: dc4d47198b0a0b0f2ce82684c790d619b9c2ae2b
timestamp: '2023-10-02T13:35:22Z'
git_revision: c01a7e9e0c2a42908afbdc220d391e76a74cc85d
timestamp: '2023-10-10T14:05:49Z'
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
description: MPSL Front-End Module nrf21540_gpio_spi
git_revision: dc4d47198b0a0b0f2ce82684c790d619b9c2ae2b
timestamp: '2023-10-02T13:37:00Z'
git_revision: c01a7e9e0c2a42908afbdc220d391e76a74cc85d
timestamp: '2023-10-10T14:07:30Z'
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
description: MPSL Front-End Module nrf21540_gpio_spi
git_revision: dc4d47198b0a0b0f2ce82684c790d619b9c2ae2b
timestamp: '2023-10-02T13:35:22Z'
git_revision: c01a7e9e0c2a42908afbdc220d391e76a74cc85d
timestamp: '2023-10-10T14:05:49Z'
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
description: MPSL Front-End Module nrf21540_gpio_spi
git_revision: dc4d47198b0a0b0f2ce82684c790d619b9c2ae2b
timestamp: '2023-10-02T13:35:22Z'
git_revision: c01a7e9e0c2a42908afbdc220d391e76a74cc85d
timestamp: '2023-10-10T14:05:49Z'
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
description: MPSL Front-End Module nrf21540_gpio_spi
git_revision: dc4d47198b0a0b0f2ce82684c790d619b9c2ae2b
timestamp: '2023-10-02T13:35:22Z'
git_revision: c01a7e9e0c2a42908afbdc220d391e76a74cc85d
timestamp: '2023-10-10T14:05:49Z'
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
description: MPSL Front-End Module simple_gpio
git_revision: dc4d47198b0a0b0f2ce82684c790d619b9c2ae2b
timestamp: '2023-10-02T13:37:00Z'
git_revision: c01a7e9e0c2a42908afbdc220d391e76a74cc85d
timestamp: '2023-10-10T14:07:30Z'
Binary file not shown.
4 changes: 2 additions & 2 deletions mpsl/fem/simple_gpio/lib/cortex-m4/hard-float/manifest.yaml
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
description: MPSL Front-End Module simple_gpio
git_revision: dc4d47198b0a0b0f2ce82684c790d619b9c2ae2b
timestamp: '2023-10-02T13:35:22Z'
git_revision: c01a7e9e0c2a42908afbdc220d391e76a74cc85d
timestamp: '2023-10-10T14:05:49Z'
Binary file not shown.
4 changes: 2 additions & 2 deletions mpsl/fem/simple_gpio/lib/cortex-m4/soft-float/manifest.yaml
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
description: MPSL Front-End Module simple_gpio
git_revision: dc4d47198b0a0b0f2ce82684c790d619b9c2ae2b
timestamp: '2023-10-02T13:35:22Z'
git_revision: c01a7e9e0c2a42908afbdc220d391e76a74cc85d
timestamp: '2023-10-10T14:05:49Z'
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
description: MPSL Front-End Module simple_gpio
git_revision: dc4d47198b0a0b0f2ce82684c790d619b9c2ae2b
timestamp: '2023-10-02T13:35:22Z'
git_revision: c01a7e9e0c2a42908afbdc220d391e76a74cc85d
timestamp: '2023-10-10T14:05:49Z'
8 changes: 8 additions & 0 deletions mpsl/include/mpsl_clock.h
Original file line number Diff line number Diff line change
Expand Up @@ -184,6 +184,14 @@ int32_t mpsl_clock_hfclk_is_running(uint32_t * p_is_running);
*/
int32_t mpsl_clock_hfclk_latency_set(mpsl_clock_hfclk_latency_config_t mpsl_clock_hfclk_latency_config);

/** @brief Trigger a task upon start of the RTC.
*
* MPSL will trigger the task at the same time as the RTC is started.
*
* @param[in] task_address The task address to be triggered
*/
void mpsl_clock_task_trigger_on_rtc_start_set(uint32_t task_address);

#ifdef __cplusplus
}
#endif
Expand Down
Binary file modified mpsl/lib/cortex-m33+nodsp/soft-float/libmpsl.a
Binary file not shown.
4 changes: 2 additions & 2 deletions mpsl/lib/cortex-m33+nodsp/soft-float/manifest.yaml
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
description: Multi-Protocol Service Layer (MPSL)
git_revision: dc4d47198b0a0b0f2ce82684c790d619b9c2ae2b
timestamp: '2023-10-02T13:37:00Z'
git_revision: c01a7e9e0c2a42908afbdc220d391e76a74cc85d
timestamp: '2023-10-10T14:07:30Z'
Binary file modified mpsl/lib/cortex-m4/hard-float/libmpsl.a
Binary file not shown.
4 changes: 2 additions & 2 deletions mpsl/lib/cortex-m4/hard-float/manifest.yaml
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
description: Multi-Protocol Service Layer (MPSL)
git_revision: dc4d47198b0a0b0f2ce82684c790d619b9c2ae2b
timestamp: '2023-10-02T13:35:22Z'
git_revision: c01a7e9e0c2a42908afbdc220d391e76a74cc85d
timestamp: '2023-10-10T14:05:49Z'
Binary file modified mpsl/lib/cortex-m4/soft-float/libmpsl.a
Binary file not shown.
4 changes: 2 additions & 2 deletions mpsl/lib/cortex-m4/soft-float/manifest.yaml
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
description: Multi-Protocol Service Layer (MPSL)
git_revision: dc4d47198b0a0b0f2ce82684c790d619b9c2ae2b
timestamp: '2023-10-02T13:35:22Z'
git_revision: c01a7e9e0c2a42908afbdc220d391e76a74cc85d
timestamp: '2023-10-10T14:05:49Z'
Binary file modified mpsl/lib/cortex-m4/softfp-float/libmpsl.a
Binary file not shown.
4 changes: 2 additions & 2 deletions mpsl/lib/cortex-m4/softfp-float/manifest.yaml
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
description: Multi-Protocol Service Layer (MPSL)
git_revision: dc4d47198b0a0b0f2ce82684c790d619b9c2ae2b
timestamp: '2023-10-02T13:35:22Z'
git_revision: c01a7e9e0c2a42908afbdc220d391e76a74cc85d
timestamp: '2023-10-10T14:05:49Z'
3 changes: 3 additions & 0 deletions softdevice_controller/CHANGELOG.rst
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,8 @@ Changes
* The LE Power Control Request feature is now :ref:`supported <nrf:software_maturity>` instead of experimental. (DRGN-17499)
* :c:func:`sdc_soc_flash_write_async` and :c:func:`sdc_soc_flash_page_erase_async` functions are removed.
This change does not affect applications developed in the |NCS| context. (DRGN-20451)
* When synchronizing to a periodic advertiser, the number of events skipped is restricted so that there are at least three opportunities to receive before timing out.
Previously, only one opportunity to receive was guaranteed before timing out. (DRGN-20448)

Bug fixes
=========
Expand All @@ -80,6 +82,7 @@ Bug fixes
The least significant bit of the ``Peer_Address_Type`` parameter was set correctly.
* Fixed an issue where the stack would assert if trying to set up more advertisers than there are available advertising sets (DRGN-20118).
* Fixed an issue where enabling an extended advertising set would assert in cases where a host-provided address was not needed and no address had been set up for the advertising set (DRGN-20085).
* Fixed an issue where the controller acting as a central would assert when receiving a non-compliant LL_PHY_RSP from a peer device (DRGN-20578).

nRF Connect SDK v2.4.0
**********************
Expand Down
2 changes: 1 addition & 1 deletion softdevice_controller/include/sdc.h
Original file line number Diff line number Diff line change
Expand Up @@ -261,7 +261,7 @@ extern "C" {
#define SDC_MEM_PER_CIG(count) ((count) > 0 ? (13 + (count) * 123) : 0)

/** @brief Maximum memory required per CIS. Buffer and CIG memory comes in addition. */
#define SDC_MEM_PER_CIS(count) ((count) > 0 ? (13 + (count) * 500) : 0)
#define SDC_MEM_PER_CIS(count) ((count) > 0 ? (13 + (count) * 512) : 0)

/** @brief Maximum memory required per BIG. */
#define SDC_MEM_PER_BIG(count) ((count) > 0 ? (13 + (count) * 291) : 0)
Expand Down
84 changes: 84 additions & 0 deletions softdevice_controller/include/sdc_hci_vs.h
Original file line number Diff line number Diff line change
Expand Up @@ -85,6 +85,8 @@ enum sdc_hci_opcode_vs
SDC_HCI_OPCODE_CMD_VS_QOS_CHANNEL_SURVEY_ENABLE = 0xfd0e,
/** @brief See @ref sdc_hci_cmd_vs_set_power_control_apr_handling(). */
SDC_HCI_OPCODE_CMD_VS_SET_POWER_CONTROL_APR_HANDLING = 0xfd0f,
/** @brief See @ref sdc_hci_cmd_vs_set_power_control_request_params(). */
SDC_HCI_OPCODE_CMD_VS_SET_POWER_CONTROL_REQUEST_PARAMS = 0xfd10,
};

/** @brief VS subevent Code values. */
Expand Down Expand Up @@ -156,6 +158,7 @@ typedef __PACKED_STRUCT
uint8_t set_power_control_apr_handling : 1;
uint8_t set_adv_randomness : 1;
uint8_t qos_channel_survey_enable : 1;
uint8_t set_power_control_request_params : 1;
} sdc_hci_vs_supported_vs_commands_t;

/** @brief Zephyr Static Address type. */
Expand Down Expand Up @@ -554,6 +557,52 @@ typedef __PACKED_STRUCT
uint8_t margin;
} sdc_hci_cmd_vs_set_power_control_apr_handling_t;

/** @brief Set LE Power Control Request procedure parameters command parameter(s). */
typedef __PACKED_STRUCT
{
/** @brief Enable or Disable controller initiated autonomous LE Power Control Request procedure.
* Disabled by default.
*/
uint8_t auto_enable;
/** @brief Enable or Disable received APR handling in controller during LE Power Control Request
* procedure. Disabled by default.
*/
uint8_t apr_enable;
/** @brief Beta value used for exponential weighted averaging of RSSI in 12-bit fixed point
* fraction. The valid range of beta is [0, 4095]. The beta value used in computation is
* beta/4096. For example, for beta to be 0.25 in the computation, set the beta
* parameter in the command to 1024. Default value is 2048.
*/
uint16_t beta;
/** @brief The lower limit of RSSI golden range that is explained in Core_v5.4, Vol 6, Part B,
* Section 5.1.17.1, in dBm units. Default value is -70 dBm.
*/
int8_t lower_limit;
/** @brief The upper limit of RSSI golden range that is explained in Core_v5.4, Vol 6, Part B,
* Section 5.1.17.1, in dBm units. Default value is -30 dBm.
*/
int8_t upper_limit;
/** @brief Target RSSI level in dBm units when the average RSSI level is less than the lower
* limit of RSSI Golden range. Default value is -65 dBm.
*/
int8_t lower_target_rssi;
/** @brief Target RSSI level in dBm units when the average RSSI level is greater than the upper
* limit of RSSI Golden range. Default value is -35 dBm.
*/
int8_t upper_target_rssi;
/** @brief Duration in milliseconds to wait before initiating a new LE Power Control Request
* procedure by the controller. 0 milliseconds value is an invalid value. Default value
* is 5000 milliseconds.
*/
uint8_t wait_period_ms;
/** @brief Margin between APR value received from peer in LL_POWER_CONTROL_RSP PDU and actual
* reduction in TX power that is applied locally. The applied decrease in local TX power
* will be (received_apr - apr_margin) if received_apr > apr_margin, otherwise no
* change. Default value is 5 dB.
*/
uint8_t apr_margin;
} sdc_hci_cmd_vs_set_power_control_request_params_t;

/** @} end of HCI_COMMAND_PARAMETERS */

/**
Expand Down Expand Up @@ -1122,6 +1171,41 @@ uint8_t sdc_hci_cmd_vs_qos_channel_survey_enable(const sdc_hci_cmd_vs_qos_channe
*/
uint8_t sdc_hci_cmd_vs_set_power_control_apr_handling(const sdc_hci_cmd_vs_set_power_control_apr_handling_t * p_params);

/** @brief Set LE Power Control Request procedure parameters.
*
* This command sets the parameters used in LE Power Control Request
* procedure by the Link Layer.
*
* beta parameter is used for exponential weighted averaging of RSSI.
* The average RSSI is calculated using the following formula,
* avg[n] = beta * avg[n - 1] + (1 - beta) * rssi[n]
*
* Average RSSI and lower_limit parameter are used to calculate APR value the controller sends
* in LL_POWER_CONTROL_RSP.
*
* When auto_enable parameter is set, the controller will keep average RSSI within
* [lower_limit, upper_limit] bounds. When the average RSSI goes out of these bounds, the
* controller will autonomously send LL_POWER_CONTROL_REQ requesting to adjust the
* peer's TX power so average RSSI becomes either lower_target_rssi or upper_target_rssi.
* The controller will not send such requests more often than specified by wait_period_ms parameter.
*
* When apr_enable parameter is set, the controller will adjust local TX power according to
* APR value received from the peer in LL_POWER_CONTROL_RSP and the apr_margin parameter.
*
* When this command is issued, the controller stores the parameters and
* uses them for the subsequent LE Power Control Request procedures across all the connections.
*
* Event(s) generated (unless masked away):
* When the command has completed, an HCI_Command_Complete event shall be generated.
*
* @param[in] p_params Input parameters.
*
* @retval 0 if success.
* @return Returns value between 0x01-0xFF in case of error.
* See Vol 2, Part D, Error for a list of error codes and descriptions.
*/
uint8_t sdc_hci_cmd_vs_set_power_control_request_params(const sdc_hci_cmd_vs_set_power_control_request_params_t * p_params);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this something we should mention in the changelog?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@seko-nordic , it was intentional not mention anything now, right?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes this was on purpose. Reason being that it is not completely implemented, but once it is, it will replace the two existing VS commands sdc_hci_cmd_vs_set_auto_power_control_request_param and sdc_hci_cmd_vs_set_power_control_apr_handling. We want to minimize confusion with this, as customers cannot use it yet. (Answering as Sergey is in vacation at the moment.)


/** @} end of HCI_VS_API */

/** @} */
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: fead8448520dbb44a1f6d540b52316c3e4ca24bc
ll_subversion_number: '0x20F4'
git_revision: d01eb29d381c6afb0a0c662062af4ea0b9990b4b
ll_subversion_number: '0x20FC'
ll_version_number: '0x0D'
timestamp: '2023-10-02T13:36:32Z'
timestamp: '2023-10-10T14:07:03Z'
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: fead8448520dbb44a1f6d540b52316c3e4ca24bc
ll_subversion_number: '0x10F4'
git_revision: d01eb29d381c6afb0a0c662062af4ea0b9990b4b
ll_subversion_number: '0x10FC'
ll_version_number: '0x0D'
timestamp: '2023-10-02T13:34:14Z'
timestamp: '2023-10-10T14:04:43Z'
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: fead8448520dbb44a1f6d540b52316c3e4ca24bc
ll_subversion_number: '0x10F4'
git_revision: d01eb29d381c6afb0a0c662062af4ea0b9990b4b
ll_subversion_number: '0x10FC'
ll_version_number: '0x0D'
timestamp: '2023-10-02T13:34:14Z'
timestamp: '2023-10-10T14:04:43Z'
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: fead8448520dbb44a1f6d540b52316c3e4ca24bc
ll_subversion_number: '0x10F4'
git_revision: d01eb29d381c6afb0a0c662062af4ea0b9990b4b
ll_subversion_number: '0x10FC'
ll_version_number: '0x0D'
timestamp: '2023-10-02T13:34:14Z'
timestamp: '2023-10-10T14:04:43Z'
Loading