Skip to content

Commit dc6c138

Browse files
committed
lib/stm32wba/hci Adding ll_intf_cmn.h
Adding interfaces of MAC only and BLE/Coexistence API Missing file after cube stm32wba version 1.4.1 update Signed-off-by: Alessandro Manganaro <[email protected]>
1 parent c30ad8a commit dc6c138

File tree

3 files changed

+171
-0
lines changed

3 files changed

+171
-0
lines changed

lib/stm32wba/hci/README

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,7 @@ Patch List:
116116
main.h
117117
app_conf.h
118118
scm.c
119+
ll_intf_cmn.h
119120

120121
* Changes from official delivery:
121122
- dos2unix applied

lib/stm32wba/hci/ll_intf_cmn.h

Lines changed: 169 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,169 @@
1+
/*$Id: //dwh/bluetooth/DWC_ble154combo/firmware/rel/1.32a-LCA00/firmware/public_inc/ll_intf_cmn.h#1 $*/
2+
/**
3+
********************************************************************************
4+
* @file ll_intf_cmn.h
5+
* @brief This file includes declaration of common interfaces of MAC only and BLE/COEXISTENCE APIs.
6+
******************************************************************************
7+
* @copy
8+
* This Synopsys DWC Bluetooth Low Energy Combo Link Layer/MAC software and
9+
* associated documentation ( hereinafter the "Software") is an unsupported
10+
* proprietary work of Synopsys, Inc. unless otherwise expressly agreed to in
11+
* writing between Synopsys and you. The Software IS NOT an item of Licensed
12+
* Software or a Licensed Product under any End User Software License Agreement
13+
* or Agreement for Licensed Products with Synopsys or any supplement thereto.
14+
* Synopsys is a registered trademark of Synopsys, Inc. Other names included in
15+
* the SOFTWARE may be the trademarks of their respective owners.
16+
*
17+
* Synopsys MIT License:
18+
* Copyright (c) 2020-Present Synopsys, Inc
19+
*
20+
* Permission is hereby granted, free of charge, to any person obtaining a copy of
21+
* the Software), to deal in the Software without restriction, including without
22+
* limitation the rights to use, copy, modify, merge, publish, distribute,
23+
* sublicense, and/or sell copies of the Software, and to permit persons to whom
24+
* the Software is furnished to do so, subject to the following conditions:
25+
*
26+
* The above copyright notice and this permission notice shall be included in all
27+
* copies or substantial portions of the Software.
28+
*
29+
* THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
30+
* IMPLIED, INCLUDING, BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
31+
* FITNESS FOR A PARTICULAR PURPOSE, AND NONINFRINGEMENT. IN NO EVENT SHALL THE
32+
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
33+
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT, OR OTHERWISE ARISING FROM,
34+
* OUT OF, OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
35+
*
36+
* */
37+
38+
#ifndef INCLUDE_LL_INTF_CMN_H_
39+
#define INCLUDE_LL_INTF_CMN_H_
40+
41+
#include "common_types.h"
42+
43+
44+
/*========================================================================================================*/
45+
/*================================ Configure LL Context Control Command =================================*/
46+
/*========================================================================================================*/
47+
48+
/**
49+
* @brief Used to configure the LL contexts, where:
50+
* 1. For bare-metal:
51+
* - High ISR is executed in the ISR context
52+
* - Low ISR can be executed in the high ISR context, or switched to low ISR context
53+
* 2. For RTOS:
54+
* - High ISR is executed in the ISR context
55+
* - Low ISR is executed in the thread of the "linkLayerHighPrioTask"
56+
*
57+
* @param allow_low_isr : [in] Configuration parameter for the context of the low ISR in the bare-metal model. Range is [0,1].
58+
* 0: Low ISR code is executed in the same context of the high ISR.
59+
* 1: Low ISR code is executed in the context of the low ISR (by configuring a low priority interrupt that is triggered by FW).
60+
* @param run_post_evnt_frm_isr : [in] Configuration parameter to decide whether the scheduling of the next BLE event is done in the low ISR context or to be handled by the LL main thread. Range is [0,1].
61+
* 0: BLE next event scheduling is handled in the LL main thread.
62+
* 1: BLE next event scheduling is handled in the low ISR context.
63+
*
64+
* @retval ble_state_t : Command status
65+
*/
66+
ble_stat_t ll_intf_cmn_config_ll_ctx_params(uint8_t allow_low_isr, uint8_t run_post_evnt_frm_isr);
67+
68+
69+
/*========================================================================================================*/
70+
/*================================== LE Select Sleep Clock Source =======================================*/
71+
/*========================================================================================================*/
72+
73+
#if (USE_NON_ACCURATE_32K_SLEEP_CLK)
74+
/**
75+
* @brief Used to select the source that drives the sleep clock, whether to use an external crystal oscillator or an integrated RC oscillator (RCO).
76+
*
77+
* @param slp_clk_src : [in] Indicate which source to drive the sleep clock. 0: Crystal Oscillator (default). 1: RC0
78+
* @param ptr_slp_clk_freq_value : [out] Indicate the nominal frequency value of the sleep clock.
79+
*
80+
* @retval ble_stat_t : Command status to be sent to the Host.
81+
*/
82+
ble_stat_t ll_intf_cmn_le_select_slp_clk_src(uint8_t slp_clk_src, uint16_t *ptr_slp_clk_freq_value);
83+
84+
/*========================================================================================================*/
85+
/*=============================== LE Set RCO Calibration Event Parameters ===============================*/
86+
/*========================================================================================================*/
87+
88+
/**
89+
* @brief Used to configure the runtime RCO calibration event parameters.
90+
*
91+
* @param rco_clbr_event_duration : [in] Indicate the number of sleep clock cycles for performing the RCO calibration process.
92+
* @param rco_clbr_event_interval : [in] Indicate the periodicity of running the runtime RCO calibration event.
93+
*
94+
* @retval None.
95+
*/
96+
97+
ble_stat_t ll_intf_cmn_le_set_rco_clbr_evnt_params(uint8_t rco_clbr_event_duration, uint32_t rco_clbr_event_interval);
98+
99+
#endif
100+
101+
/*========================================================================================================*/
102+
/*====================================== LE Select TX_Power Table =======================================*/
103+
/*========================================================================================================*/
104+
105+
/**
106+
* @brief Used to specify the used power table and its size based on the selected TX_Power table ID.
107+
*
108+
* @param tx_power_table_id : [in] Selected TX_Power table ID.
109+
*
110+
* @retval Status : 0: SUCCESS. Otherwise: Error code.
111+
*/
112+
uint8_t ll_intf_cmn_select_tx_power_table(uint8_t tx_power_table_id);
113+
114+
115+
/**
116+
* @brief flag to the LL the existence of a temperature sensor
117+
* @retval None
118+
*/
119+
void ll_intf_cmn_set_temperature_sensor_state(void);
120+
121+
/**
122+
* @brief set the current temperature
123+
* @param temperature : The current temperature
124+
* @retval None
125+
*/
126+
uint32_t ll_intf_cmn_set_temperature_value(uint32_t temperature);
127+
128+
/*========================================================================================================*/
129+
/*==================================== Random Number Generation Group ===================================*/
130+
/*========================================================================================================*/
131+
132+
/**
133+
* @brief Request new random number.
134+
*
135+
* @param ptr_rnd : Pointer to the output random bytes .
136+
* @param len : Number of required random bytes.
137+
*
138+
* @retval Status.
139+
*/
140+
141+
uint32_t ll_intf_cmn_gen_rnd_num(uint8_t *ptr_rnd, uint32_t len);
142+
143+
/**
144+
*
145+
* @brief A common wrapper for BLE-ECB and MAC-CCM security modes
146+
*
147+
* @param ptr_pckt : Pointer to the data buffer (variable length
148+
* in case of CCM mode, 16 bytes in case of ECB mode). The resulting
149+
* Encrypted/Decrypted data overwrites this buffer.
150+
* @param ptr_key[in] : Pointer to the security key buffer (16 bytes).
151+
* @param ptr_nonce[in] : Pointer to the security nonce buffer (13 bytes
152+
* in case of CCM mode, a Null pointer in case of ECB mode).
153+
* @param mic_len[in] : Length of MIC, supported values are 0, 4, 6,
154+
* 8, 10, 12, 14, and 16 in case of CCM, 0 only in case of ECB.
155+
* @param ad_len[in] : Length of Data to be authenticated.
156+
* @param md_len[in] : Length of Data to be encrypted.
157+
* @param key_endian[in] : Represents the format of the security key.
158+
* @param data_endian[in] : Represents the endian format of the data.
159+
* @param security_mode[in]: Hardware security mode.
160+
* @retval Status
161+
*/
162+
uint32_t ll_intf_cmn_crypto(uint8_t *ptr_pckt, const uint8_t *ptr_key,
163+
uint8_t *ptr_nonce, uint32_t mic_len, uint32_t ad_len, uint32_t md_len,
164+
crypto_endian_enum_t key_endian, crypto_endian_enum_t data_endian,
165+
security_mode_enum_t security_mode);
166+
167+
ble_stat_t ll_intf_cmn_le_set_dp_slp_mode(uint8_t dp_slp_mode);
168+
169+
#endif /* INCLUDE_LL_INTF_CMN_H_ */

scripts/ble_library.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,7 @@
7474
"Middlewares/ST/STM32_WPAN/link_layer/ll_sys/src/ll_sys_startup.c",
7575
"Middlewares/ST/STM32_WPAN/link_layer/ll_sys/inc/ll_sys_startup.h",
7676
"Middlewares/ST/STM32_WPAN/stm32_wpan_common.h",
77+
"Middlewares/ST/STM32_WPAN/ll_intf_cmn.h",
7778
ble_heartrate_app_path + "/Core/Inc/app_common.h",
7879
ble_heartrate_app_path + "/Core/Inc/app_conf.h",
7980
ble_heartrate_app_path + "/Core/Inc/app_entry.h",

0 commit comments

Comments
 (0)