Skip to content

Commit 71cd1d1

Browse files
ABOSTMfpistm
authored andcommitted
feat: add patch files to be applied on stm32wb Cube update
Signed-off-by: Alexandre Bourdiol <alexandre.bourdiol@st.com>
1 parent 4e0d7d6 commit 71cd1d1

4 files changed

+516
-0
lines changed
Lines changed: 310 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,310 @@
1+
From 7f99c89e8a6f834daf4a76bf98307e9ebcd01c91 Mon Sep 17 00:00:00 2001
2+
From: Frederic Pillon <frederic.pillon@st.com>
3+
Date: Wed, 10 Jan 2024 18:16:01 +0100
4+
Subject: [PATCH 1/4] chore: adapt STM32_WPAN sources
5+
6+
Signed-off-by: Frederic Pillon <frederic.pillon@st.com>
7+
---
8+
src/utility/STM32_WPAN/app_conf_default.h | 49 +++++++++++++++++++----
9+
src/utility/STM32_WPAN/hw.h | 13 +++++-
10+
src/utility/STM32_WPAN/hw_ipcc.c | 4 +-
11+
src/utility/STM32_WPAN/shci.c | 2 +
12+
src/utility/STM32_WPAN/shci_tl.c | 17 ++++++++
13+
src/utility/STM32_WPAN/stm_list.c | 6 ++-
14+
src/utility/STM32_WPAN/tl_mbox.c | 6 +++
15+
7 files changed, 85 insertions(+), 12 deletions(-)
16+
17+
diff --git a/src/utility/STM32_WPAN/app_conf_default.h b/src/utility/STM32_WPAN/app_conf_default.h
18+
index 71fc107..bf2274a 100644
19+
--- a/src/utility/STM32_WPAN/app_conf_default.h
20+
+++ b/src/utility/STM32_WPAN/app_conf_default.h
21+
@@ -1,9 +1,9 @@
22+
/* USER CODE BEGIN Header */
23+
/**
24+
******************************************************************************
25+
- * @file app_conf.h
26+
+ * @file app_conf_default.h
27+
* @author MCD Application Team
28+
- * @brief Application configuration file for STM32WPAN Middleware.
29+
+ * @brief Default application configuration file for STM32WPAN Middleware.
30+
******************************************************************************
31+
* @attention
32+
*
33+
@@ -19,18 +19,40 @@
34+
/* USER CODE END Header */
35+
36+
/* Define to prevent recursive inclusion -------------------------------------*/
37+
-#ifndef APP_CONF_H
38+
-#define APP_CONF_H
39+
+#ifndef APP_CONF_DEFAULT_H
40+
+#define APP_CONF_DEFAULT_H
41+
42+
+#if 0
43+
#include "hw.h"
44+
#include "hw_conf.h"
45+
#include "hw_if.h"
46+
#include "ble_bufsize.h"
47+
+#endif
48+
49+
/******************************************************************************
50+
* Application Config
51+
******************************************************************************/
52+
53+
+/**< generic parameters ******************************************************/
54+
+/* HCI related defines */
55+
+
56+
+#define ACI_HAL_SET_TX_POWER_LEVEL 0xFC0F
57+
+#define ACI_WRITE_CONFIG_DATA_OPCODE 0xFC0C
58+
+#define ACI_READ_CONFIG_DATA_OPCODE 0xFC0D
59+
+#define MAX_HCI_ACL_PACKET_SIZE (sizeof(TL_PacketHeader_t) + 5 + 251)
60+
+#define HCI_RESET 0x0C03
61+
+
62+
+#ifndef BLE_SHARED_MEM_BYTE_ORDER
63+
+ #define BLE_SHARED_MEM_BYTE_ORDER MSBFIRST
64+
+#endif
65+
+#define BLE_MODULE_SHARED_MEM_BUFFER_SIZE 128
66+
+
67+
+/**
68+
+ * Define Tx Power
69+
+ */
70+
+#define CFG_TX_POWER (0x18) /* -0.15dBm */
71+
+
72+
+#if 0
73+
/**
74+
* Define Secure Connections Support
75+
*/
76+
@@ -104,6 +126,7 @@
77+
#define CFG_FW_SUBVERSION (1)
78+
#define CFG_FW_BRANCH (0)
79+
#define CFG_FW_BUILD (0)
80+
+#endif
81+
82+
/******************************************************************************
83+
* BLE Stack
84+
@@ -250,7 +273,7 @@
85+
* 0: LE Power Class 2-3
86+
* other bits: complete with Options_extension flag
87+
*/
88+
-#define CFG_BLE_OPTIONS (SHCI_C2_BLE_INIT_OPTIONS_LL_HOST | SHCI_C2_BLE_INIT_OPTIONS_WITH_SVC_CHANGE_DESC | SHCI_C2_BLE_INIT_OPTIONS_DEVICE_NAME_RW | SHCI_C2_BLE_INIT_OPTIONS_EXT_ADV | SHCI_C2_BLE_INIT_OPTIONS_CS_ALGO2 | SHCI_C2_BLE_INIT_OPTIONS_FULL_GATTDB_NVM | SHCI_C2_BLE_INIT_OPTIONS_GATT_CACHING_NOTUSED | SHCI_C2_BLE_INIT_OPTIONS_POWER_CLASS_2_3)
89+
+#define CFG_BLE_OPTIONS (SHCI_C2_BLE_INIT_OPTIONS_LL_ONLY | SHCI_C2_BLE_INIT_OPTIONS_WITH_SVC_CHANGE_DESC | SHCI_C2_BLE_INIT_OPTIONS_DEVICE_NAME_RW | SHCI_C2_BLE_INIT_OPTIONS_EXT_ADV | SHCI_C2_BLE_INIT_OPTIONS_CS_ALGO2 | SHCI_C2_BLE_INIT_OPTIONS_FULL_GATTDB_NVM | SHCI_C2_BLE_INIT_OPTIONS_GATT_CACHING_NOTUSED | SHCI_C2_BLE_INIT_OPTIONS_POWER_CLASS_2_3)
90+
91+
/**
92+
* BLE stack Options_extension flags to be configured with:
93+
@@ -292,7 +315,11 @@
94+
* This parameter is considered by the CPU2 when CFG_BLE_OPTIONS has SHCI_C2_BLE_INIT_OPTIONS_EXT_ADV flag set
95+
*/
96+
97+
-#define CFG_BLE_MAX_ADV_SET_NBR (8)
98+
+#if defined(STM32WB15xx)
99+
+ #define CFG_BLE_MAX_ADV_SET_NBR (3)
100+
+#else
101+
+ #define CFG_BLE_MAX_ADV_SET_NBR (8)
102+
+#endif
103+
104+
/* Maximum advertising data length (in bytes)
105+
* Range: 31 .. 1650 with limitation:
106+
@@ -301,7 +328,11 @@
107+
* This parameter is considered by the CPU2 when CFG_BLE_OPTIONS has SHCI_C2_BLE_INIT_OPTIONS_EXT_ADV flag set
108+
*/
109+
110+
-#define CFG_BLE_MAX_ADV_DATA_LEN (207)
111+
+#if defined(STM32WB15xx)
112+
+ #define CFG_BLE_MAX_ADV_DATA_LEN (414)
113+
+#else
114+
+ #define CFG_BLE_MAX_ADV_DATA_LEN (207)
115+
+#endif
116+
117+
/* RF TX Path Compensation Value (16-bit signed integer). Units: 0.1 dB.
118+
* Range: -1280 .. 1280
119+
@@ -324,6 +355,7 @@
120+
121+
#define CFG_BLE_CORE_VERSION (SHCI_C2_BLE_INIT_BLE_CORE_5_4)
122+
123+
+#if 0
124+
/******************************************************************************
125+
* Transport Layer
126+
******************************************************************************/
127+
@@ -660,4 +692,5 @@ typedef enum
128+
129+
#define CFG_OTP_END_ADRESS OTP_AREA_END_ADDR
130+
131+
-#endif /*APP_CONF_H */
132+
+#endif
133+
+#endif /*APP_CONF_DEFAULT_H */
134+
diff --git a/src/utility/STM32_WPAN/hw.h b/src/utility/STM32_WPAN/hw.h
135+
index 651e1f1..1472a5e 100644
136+
--- a/src/utility/STM32_WPAN/hw.h
137+
+++ b/src/utility/STM32_WPAN/hw.h
138+
@@ -26,14 +26,23 @@ extern "C" {
139+
#endif
140+
141+
/* Includes ------------------------------------------------------------------*/
142+
+#include "stm32_def.h"
143+
+#include "stm32wbxx_ll_bus.h"
144+
+#include "stm32wbxx_ll_exti.h"
145+
+#include "stm32wbxx_ll_system.h"
146+
+#include "stm32wbxx_ll_rcc.h"
147+
+#include "stm32wbxx_ll_ipcc.h"
148+
+#include "stm32wbxx_ll_cortex.h"
149+
+#include "stm32wbxx_ll_utils.h"
150+
+#include "stm32wbxx_ll_pwr.h"
151+
152+
/******************************************************************************
153+
* HW IPCC
154+
******************************************************************************/
155+
void HW_IPCC_Enable( void );
156+
void HW_IPCC_Init( void );
157+
- void HW_IPCC_Rx_Handler( void );
158+
- void HW_IPCC_Tx_Handler( void );
159+
+#define HW_IPCC_Rx_Handler IPCC_C1_RX_IRQHandler
160+
+#define HW_IPCC_Tx_Handler IPCC_C1_TX_IRQHandler
161+
162+
void HW_IPCC_BLE_Init( void );
163+
void HW_IPCC_BLE_SendCmd( void );
164+
diff --git a/src/utility/STM32_WPAN/hw_ipcc.c b/src/utility/STM32_WPAN/hw_ipcc.c
165+
index 6a311b1..ad3c9d4 100644
166+
--- a/src/utility/STM32_WPAN/hw_ipcc.c
167+
+++ b/src/utility/STM32_WPAN/hw_ipcc.c
168+
@@ -18,8 +18,9 @@
169+
*/
170+
/* USER CODE END Header */
171+
172+
+#if defined(STM32WBxx)
173+
/* Includes ------------------------------------------------------------------*/
174+
-#include "app_common.h"
175+
+#include "hw.h"
176+
#include "mbox_def.h"
177+
#include "utilities_conf.h"
178+
179+
@@ -745,3 +746,4 @@ static void HW_IPCC_TRACES_EvtHandler( void )
180+
}
181+
182+
__weak void HW_IPCC_TRACES_EvtNot( void ){};
183+
+#endif /* STM32WBxx */
184+
diff --git a/src/utility/STM32_WPAN/shci.c b/src/utility/STM32_WPAN/shci.c
185+
index 5c32555..40110f4 100644
186+
--- a/src/utility/STM32_WPAN/shci.c
187+
+++ b/src/utility/STM32_WPAN/shci.c
188+
@@ -17,6 +17,7 @@
189+
*/
190+
191+
192+
+#if defined(STM32WBxx)
193+
/* Includes ------------------------------------------------------------------*/
194+
#include "stm32_wpan_common.h"
195+
196+
@@ -759,3 +760,4 @@ SHCI_CmdStatus_t SHCI_GetWirelessFwInfo( WirelessFwInfo_t* pWirelessInfo )
197+
198+
return (SHCI_Success);
199+
}
200+
+#endif /* STM32WBxx */
201+
diff --git a/src/utility/STM32_WPAN/shci_tl.c b/src/utility/STM32_WPAN/shci_tl.c
202+
index 0f60430..daa988c 100644
203+
--- a/src/utility/STM32_WPAN/shci_tl.c
204+
+++ b/src/utility/STM32_WPAN/shci_tl.c
205+
@@ -17,11 +17,13 @@
206+
*/
207+
208+
209+
+#if defined(STM32WBxx)
210+
/* Includes ------------------------------------------------------------------*/
211+
#include "stm32_wpan_common.h"
212+
213+
#include "stm_list.h"
214+
#include "shci_tl.h"
215+
+#include "stm32_def.h"
216+
217+
/* Private typedef -----------------------------------------------------------*/
218+
typedef enum
219+
@@ -168,6 +170,20 @@ void shci_send( uint16_t cmd_code, uint8_t len_cmd_payload, uint8_t * p_cmd_payl
220+
return;
221+
}
222+
223+
+void shci_notify_asynch_evt(void *pdata)
224+
+{
225+
+ UNUSED(pdata);
226+
+ /* Need to parse data in future version */
227+
+ shci_user_evt_proc();
228+
+}
229+
+
230+
+void shci_register_io_bus(tSHciIO *fops)
231+
+{
232+
+ /* Register IO bus services */
233+
+ fops->Init = TL_SYS_Init;
234+
+ fops->Send = TL_SYS_SendCmd;
235+
+}
236+
+
237+
/* Private functions ---------------------------------------------------------*/
238+
static void TlInit( TL_CmdPacket_t * p_cmdbuffer )
239+
{
240+
@@ -250,3 +266,4 @@ __WEAK void shci_cmd_resp_release(uint32_t flag)
241+
242+
return;
243+
}
244+
+#endif /* STM32WBxx */
245+
diff --git a/src/utility/STM32_WPAN/stm_list.c b/src/utility/STM32_WPAN/stm_list.c
246+
index 4c92864..df6c215 100644
247+
--- a/src/utility/STM32_WPAN/stm_list.c
248+
+++ b/src/utility/STM32_WPAN/stm_list.c
249+
@@ -17,10 +17,13 @@
250+
*/
251+
252+
253+
+#if defined(STM32WBxx)
254+
/******************************************************************************
255+
* Include Files
256+
******************************************************************************/
257+
-#include "utilities_common.h"
258+
+#include "stdint.h"
259+
+#include "cmsis_gcc.h"
260+
+#include "stm32_wpan_common.h"
261+
262+
#include "stm_list.h"
263+
264+
@@ -204,3 +207,4 @@ void LST_get_prev_node (tListNode * ref_node, tListNode ** node)
265+
266+
__set_PRIMASK(primask_bit); /**< Restore PRIMASK bit*/
267+
}
268+
+#endif /* STM32WBxx */
269+
diff --git a/src/utility/STM32_WPAN/tl_mbox.c b/src/utility/STM32_WPAN/tl_mbox.c
270+
index df07a19..9a2a297 100644
271+
--- a/src/utility/STM32_WPAN/tl_mbox.c
272+
+++ b/src/utility/STM32_WPAN/tl_mbox.c
273+
@@ -16,6 +16,7 @@
274+
******************************************************************************
275+
*/
276+
277+
+#if defined(STM32WBxx)
278+
/* Includes ------------------------------------------------------------------*/
279+
#include "stm32_wpan_common.h"
280+
#include "hw.h"
281+
@@ -51,8 +52,10 @@ PLACE_IN_SECTION("MB_MEM1") ALIGN(4) static MB_BleLldTable_t TL_BleLldTable;
282+
PLACE_IN_SECTION("MB_MEM1") ALIGN(4) static MB_SysTable_t TL_SysTable;
283+
PLACE_IN_SECTION("MB_MEM1") ALIGN(4) static MB_MemManagerTable_t TL_MemManagerTable;
284+
PLACE_IN_SECTION("MB_MEM1") ALIGN(4) static MB_TracesTable_t TL_TracesTable;
285+
+#if 0
286+
PLACE_IN_SECTION("MB_MEM1") ALIGN(4) static MB_Mac_802_15_4_t TL_Mac_802_15_4_Table;
287+
PLACE_IN_SECTION("MB_MEM1") ALIGN(4) static MB_ZigbeeTable_t TL_Zigbee_Table;
288+
+#endif
289+
290+
/**< tables */
291+
PLACE_IN_SECTION("MB_MEM1") ALIGN(4) static tListNode FreeBufQueue;
292+
@@ -97,8 +100,10 @@ void TL_Init( void )
293+
TL_RefTable.p_sys_table = &TL_SysTable;
294+
TL_RefTable.p_mem_manager_table = &TL_MemManagerTable;
295+
TL_RefTable.p_traces_table = &TL_TracesTable;
296+
+#if 0
297+
TL_RefTable.p_mac_802_15_4_table = &TL_Mac_802_15_4_Table;
298+
TL_RefTable.p_zigbee_table = &TL_Zigbee_Table;
299+
+#endif
300+
HW_IPCC_Init();
301+
302+
return;
303+
@@ -847,3 +852,4 @@ static void OutputDbgTrace(TL_MB_PacketType_t packet_type, uint8_t* buffer)
304+
305+
return;
306+
}
307+
+#endif /* STM32WBxx */
308+
--
309+
2.34.1
310+
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
From a33328182e334e1ddedd368a047d75cf1662e330 Mon Sep 17 00:00:00 2001
2+
From: Frederic Pillon <frederic.pillon@st.com>
3+
Date: Thu, 13 Jul 2023 17:16:40 +0200
4+
Subject: [PATCH 2/4] fix: include a timeout when waiting for the cmd_resp
5+
6+
Signed-off-by: Frederic Pillon <frederic.pillon@st.com>
7+
---
8+
src/utility/STM32_WPAN/shci_tl.c | 10 ++++++----
9+
1 file changed, 6 insertions(+), 4 deletions(-)
10+
11+
diff --git a/src/utility/STM32_WPAN/shci_tl.c b/src/utility/STM32_WPAN/shci_tl.c
12+
index daa988c..25e1a21 100644
13+
--- a/src/utility/STM32_WPAN/shci_tl.c
14+
+++ b/src/utility/STM32_WPAN/shci_tl.c
15+
@@ -24,6 +24,7 @@
16+
#include "stm_list.h"
17+
#include "shci_tl.h"
18+
#include "stm32_def.h"
19+
+#include "wiring_time.h"
20+
21+
/* Private typedef -----------------------------------------------------------*/
22+
typedef enum
23+
@@ -251,10 +252,11 @@ static void TlUserEvtReceived(TL_EvtPacket_t *shcievt)
24+
/* Weak implementation ----------------------------------------------------------------*/
25+
__WEAK void shci_cmd_resp_wait(uint32_t timeout)
26+
{
27+
- (void)timeout;
28+
-
29+
- while(CmdRspStatusFlag != SHCI_TL_CMD_RESP_RELEASE);
30+
-
31+
+ for (unsigned long start = millis(); (millis() - start) < timeout;) {
32+
+ if (CmdRspStatusFlag == SHCI_TL_CMD_RESP_RELEASE) {
33+
+ break;
34+
+ }
35+
+ }
36+
return;
37+
}
38+
39+
--
40+
2.34.1
41+

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy