Mistake on this page?
Report an issue in GitHub or email us
mbox_def.h
Go to the documentation of this file.
1 /**
2  ******************************************************************************
3  * @file mbox_def.h
4  * @author MCD Application Team
5  * @brief Mailbox definition
6  ******************************************************************************
7  * @attention
8  *
9  * <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.
10  * All rights reserved.</center></h2>
11  *
12  * This software component is licensed by ST under BSD 3-Clause license,
13  * the "License"; You may not use this file except in compliance with the
14  * License. You may obtain a copy of the License at:
15  * opensource.org/licenses/BSD-3-Clause
16  *
17  ******************************************************************************
18  */
19 
20 
21 /* Define to prevent recursive inclusion -------------------------------------*/
22 #ifndef __MBOX_H
23 #define __MBOX_H
24 
25 #ifdef __cplusplus
26 extern "C" {
27 #endif
28 
29 #include "stm32_wpan_common.h"
30 
31  /**
32  * This file shall be identical between the CPU1 and the CPU2
33  */
34 
35  /**
36  *********************************************************************************
37  * TABLES
38  *********************************************************************************
39  */
40 
41  /**
42  * Version
43  * [0:3] = Build - 0: Untracked - 15:Released - x: Tracked version
44  * [4:7] = branch - 0: Mass Market - x: ...
45  * [8:15] = Subversion
46  * [16:23] = Version minor
47  * [24:31] = Version major
48  *
49  * Memory Size
50  * [0:7] = Flash ( Number of 4k sector)
51  * [8:15] = Reserved ( Shall be set to 0 - may be used as flash extension )
52  * [16:23] = SRAM2b ( Number of 1k sector)
53  * [24:31] = SRAM2a ( Number of 1k sector)
54  */
55  typedef PACKED_STRUCT
56  {
57  uint32_t Version;
58  } MB_SafeBootInfoTable_t;
59 
60  typedef PACKED_STRUCT
61  {
62  uint32_t Version;
63  uint32_t MemorySize;
64  uint32_t FusInfo;
65  } MB_FusInfoTable_t;
66 
67  typedef PACKED_STRUCT
68  {
69  uint32_t Version;
70  uint32_t MemorySize;
71  uint32_t InfoStack;
72  uint32_t Reserved;
73  } MB_WirelessFwInfoTable_t;
74 
75  typedef struct
76  {
77  MB_SafeBootInfoTable_t SafeBootInfoTable;
78  MB_FusInfoTable_t FusInfoTable;
79  MB_WirelessFwInfoTable_t WirelessFwInfoTable;
81 
82  typedef struct
83  {
84  uint8_t *pcmd_buffer;
85  uint8_t *pcs_buffer;
86  uint8_t *pevt_queue;
87  uint8_t *phci_acl_data_buffer;
88  } MB_BleTable_t;
89 
90  typedef struct
91  {
92  uint8_t *notack_buffer;
93  uint8_t *clicmdrsp_buffer;
94  uint8_t *otcmdrsp_buffer;
96 
97  typedef struct
98  {
99  uint8_t *clicmdrsp_buffer;
100  uint8_t *m0cmd_buffer;
102 
103  typedef struct
104  {
105  uint8_t *cmdrsp_buffer;
106  uint8_t *m0cmd_buffer;
108 
109  typedef struct
110  {
111  uint8_t *notifM0toM4_buffer;
112  uint8_t *appliCmdM4toM0_buffer;
113  uint8_t *requestM0toM4_buffer;
115  /**
116  * msg
117  * [0:7] = cmd/evt
118  * [8:31] = Reserved
119  */
120  typedef struct
121  {
122  uint8_t *pcmd_buffer;
123  uint8_t *sys_queue;
124  } MB_SysTable_t;
125 
126  typedef struct
127  {
128  uint8_t *spare_ble_buffer;
129  uint8_t *spare_sys_buffer;
130  uint8_t *blepool;
131  uint32_t blepoolsize;
132  uint8_t *pevt_free_buffer_queue;
133  uint8_t *traces_evt_pool;
134  uint32_t tracespoolsize;
136 
137  typedef struct
138  {
139  uint8_t *traces_queue;
141 
142  typedef struct
143  {
144  uint8_t *p_cmdrsp_buffer;
145  uint8_t *p_notack_buffer;
146  uint8_t *evt_queue;
148 
149  typedef struct
150  {
151  MB_DeviceInfoTable_t *p_device_info_table;
152  MB_BleTable_t *p_ble_table;
153  MB_ThreadTable_t *p_thread_table;
154  MB_SysTable_t *p_sys_table;
155  MB_MemManagerTable_t *p_mem_manager_table;
156  MB_TracesTable_t *p_traces_table;
157  MB_Mac_802_15_4_t *p_mac_802_15_4_table;
158  MB_ZigbeeTable_t *p_zigbee_table;
159  MB_LldTestsTable_t *p_lld_tests_table;
160  MB_LldBleTable_t *p_lld_ble_table;
161 } MB_RefTable_t;
162 
163 #ifdef __cplusplus
164 }
165 #endif
166 
167 /**
168  *********************************************************************************
169  * IPCC CHANNELS
170  *********************************************************************************
171  */
172 
173 /* CPU1 CPU2
174  * | (SYSTEM) |
175  * |----HW_IPCC_SYSTEM_CMD_RSP_CHANNEL-------------->|
176  * | |
177  * |<---HW_IPCC_SYSTEM_EVENT_CHANNEL-----------------|
178  * | |
179  * | (ZIGBEE) |
180  * |----HW_IPCC_ZIGBEE_CMD_APPLI_CHANNEL------------>|
181  * | |
182  * |----HW_IPCC_ZIGBEE_CMD_CLI_CHANNEL-------------->|
183  * | |
184  * |<---HW_IPCC_ZIGBEE_APPLI_NOTIF_ACK_CHANNEL-------|
185  * | |
186  * |<---HW_IPCC_ZIGBEE_CLI_NOTIF_ACK_CHANNEL---------|
187  * | |
188  * | (THREAD) |
189  * |----HW_IPCC_THREAD_OT_CMD_RSP_CHANNEL----------->|
190  * | |
191  * |----HW_IPCC_THREAD_CLI_CMD_CHANNEL-------------->|
192  * | |
193  * |<---HW_IPCC_THREAD_NOTIFICATION_ACK_CHANNEL------|
194  * | |
195  * |<---HW_IPCC_THREAD_CLI_NOTIFICATION_ACK_CHANNEL--|
196  * | |
197  * | (BLE) |
198  * |----HW_IPCC_BLE_CMD_CHANNEL--------------------->|
199  * | |
200  * |----HW_IPCC_HCI_ACL_DATA_CHANNEL---------------->|
201  * | |
202  * |<---HW_IPCC_BLE_EVENT_CHANNEL--------------------|
203  * | |
204  * | (LLD BLE) |
205  * |----HW_IPCC_LLD_BLE_CMD_CHANNEL----------------->|
206  * | |
207  * |<---HW_IPCC_LLD_BLE_RSP_CHANNEL------------------|
208  * | |
209  * |<---HW_IPCC_LLD_BLE_M0_CMD_CHANNEL---------------|
210  * | |
211  * | (MAC) |
212  * |----HW_IPCC_MAC_802_15_4_CMD_RSP_CHANNEL-------->|
213  * | |
214  * |<---HW_IPCC_MAC_802_15_4_NOTIFICATION_ACK_CHANNEL|
215  * | |
216  * | (BUFFER) |
217  * |----HW_IPCC_MM_RELEASE_BUFFER_CHANNE------------>|
218  * | |
219  * | (TRACE) |
220  * |<----HW_IPCC_TRACES_CHANNEL----------------------|
221  * | |
222  *
223  *
224  *
225  */
226 
227 
228 
229 /** CPU1 */
230 #define HW_IPCC_BLE_CMD_CHANNEL LL_IPCC_CHANNEL_1
231 #define HW_IPCC_SYSTEM_CMD_RSP_CHANNEL LL_IPCC_CHANNEL_2
232 #define HW_IPCC_THREAD_OT_CMD_RSP_CHANNEL LL_IPCC_CHANNEL_3
233 #define HW_IPCC_ZIGBEE_CMD_APPLI_CHANNEL LL_IPCC_CHANNEL_3
234 #define HW_IPCC_MAC_802_15_4_CMD_RSP_CHANNEL LL_IPCC_CHANNEL_3
235 #define HW_IPCC_MM_RELEASE_BUFFER_CHANNEL LL_IPCC_CHANNEL_4
236 #define HW_IPCC_THREAD_CLI_CMD_CHANNEL LL_IPCC_CHANNEL_5
237 #define HW_IPCC_LLDTESTS_CLI_CMD_CHANNEL LL_IPCC_CHANNEL_5
238 #define HW_IPCC_LLD_BLE_CLI_CMD_CHANNEL LL_IPCC_CHANNEL_5
239 #define HW_IPCC_LLD_BLE_CMD_CHANNEL LL_IPCC_CHANNEL_5
240 #define HW_IPCC_HCI_ACL_DATA_CHANNEL LL_IPCC_CHANNEL_6
241 
242 /** CPU2 */
243 #define HW_IPCC_BLE_EVENT_CHANNEL LL_IPCC_CHANNEL_1
244 #define HW_IPCC_SYSTEM_EVENT_CHANNEL LL_IPCC_CHANNEL_2
245 #define HW_IPCC_THREAD_NOTIFICATION_ACK_CHANNEL LL_IPCC_CHANNEL_3
246 #define HW_IPCC_ZIGBEE_APPLI_NOTIF_ACK_CHANNEL LL_IPCC_CHANNEL_3
247 #define HW_IPCC_MAC_802_15_4_NOTIFICATION_ACK_CHANNEL LL_IPCC_CHANNEL_3
248 #define HW_IPCC_LLDTESTS_M0_CMD_CHANNEL LL_IPCC_CHANNEL_3
249 #define HW_IPCC_LLD_BLE_M0_CMD_CHANNEL LL_IPCC_CHANNEL_3
250 #define HW_IPCC_TRACES_CHANNEL LL_IPCC_CHANNEL_4
251 #define HW_IPCC_THREAD_CLI_NOTIFICATION_ACK_CHANNEL LL_IPCC_CHANNEL_5
252 #define HW_IPCC_LLDTESTS_CLI_RSP_CHANNEL LL_IPCC_CHANNEL_5
253 #define HW_IPCC_LLD_BLE_CLI_RSP_CHANNEL LL_IPCC_CHANNEL_5
254 #define HW_IPCC_LLD_BLE_RSP_CHANNEL LL_IPCC_CHANNEL_5
255 #define HW_IPCC_ZIGBEE_M0_REQUEST_CHANNEL LL_IPCC_CHANNEL_5
256 #endif /*__MBOX_H */
257 
258 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
Common file to utilities.
typedef PACKED_STRUCT
This file shall be identical between the CPU1 and the CPU2.
Definition: mbox_def.h:56
msg [0:7] = cmd/evt [8:31] = Reserved
Definition: mbox_def.h:120
Important Information for this Arm website

This site uses cookies to store information on your computer. By continuing to use our site, you consent to our cookies. If you are not happy with the use of these cookies, please review our Cookie Policy to learn how they can be disabled. By disabling cookies, some features of the site will not work.