Mistake on this page?
Report an issue in GitHub or email us
shci.h
Go to the documentation of this file.
1 /**
2  ******************************************************************************
3  * @file shci.h
4  * @author MCD Application Team
5  * @brief HCI command for the system channel
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 __SHCI_H
23 #define __SHCI_H
24 
25 #ifdef __cplusplus
26 extern "C" {
27 #endif
28 
29  /* Includes ------------------------------------------------------------------*/
30 #include "mbox_def.h" /* Requested to expose the MB_WirelessFwInfoTable_t structure */
31 
32  /* Exported types ------------------------------------------------------------*/
33 
34  /* SYSTEM EVENT */
35  typedef enum
36  {
37  WIRELESS_FW_RUNNING = 0x00,
38  RSS_FW_RUNNING = 0x01,
39  } SHCI_SysEvt_Ready_Rsp_t;
40 
41  /* ERROR CODES
42  *
43  * These error codes are detected on M0 side and are send back to the M4 via a system
44  * notification message. It is up to the application running on M4 to manage these errors
45  *
46  * These errors can be generated by all layers (low level driver, stack, framework infrastructure, etc..)
47  */
48  typedef enum
49  {
50  ERR_BLE_INIT = 0,
51  ERR_THREAD_LLD_FATAL_ERROR = 125, /* The LLD driver used on 802_15_4 detected a fatal error */
52  ERR_THREAD_UNKNOWN_CMD = 126, /* The command send by the M4 to control the Thread stack is unknown */
53  ERR_ZIGBEE_UNKNOWN_CMD = 200, /* The command send by the M4 to control the Zigbee stack is unknown */
54  } SCHI_SystemErrCode_t;
55 
56 #define SHCI_EVTCODE ( 0xFF )
57 #define SHCI_SUB_EVT_CODE_BASE ( 0x9200 )
58 
59  /**
60  * THE ORDER SHALL NOT BE CHANGED TO GUARANTEE COMPATIBILITY WITH THE CPU1 DEFINITION
61  */
62  typedef enum
63  {
64  SHCI_SUB_EVT_CODE_READY = SHCI_SUB_EVT_CODE_BASE,
65  SHCI_SUB_EVT_ERROR_NOTIF,
66  SHCI_SUB_EVT_BLE_NVM_RAM_UPDATE,
67  SHCI_SUB_EVT_OT_NVM_RAM_UPDATE,
68  SHCI_SUB_EVT_NVM_START_WRITE,
69  SHCI_SUB_EVT_NVM_END_WRITE,
70  SHCI_SUB_EVT_NVM_START_ERASE,
71  SHCI_SUB_EVT_NVM_END_ERASE,
73 
74  /**
75  * SHCI_SUB_EVT_CODE_READY
76  * This notifies the CPU1 that the CPU2 is now ready to receive commands
77  * It reports as well which firmware is running on CPU2 : The wireless stack of the FUS (previously named RSS)
78  */
79  typedef PACKED_STRUCT{
80  SHCI_SysEvt_Ready_Rsp_t sysevt_ready_rsp;
81  } SHCI_C2_Ready_Evt_t;
82 
83  /**
84  * SHCI_SUB_EVT_ERROR_NOTIF
85  * This reports to the CPU1 some error form the CPU2
86  */
87  typedef PACKED_STRUCT{
88  SCHI_SystemErrCode_t errorCode;
89  } SHCI_C2_ErrorNotif_Evt_t;
90 
91  /**
92  * SHCI_SUB_EVT_BLE_NVM_RAM_UPDATE
93  * This notifies the CPU1 which part of the BLE NVM RAM has been updated so that only the modified
94  * section could be written in Flash/NVM
95  * StartAddress : Start address of the section that has been modified
96  * Size : Size (in bytes) of the section that has been modified
97  */
98  typedef PACKED_STRUCT{
99  uint32_t StartAddress;
100  uint32_t Size;
101  } SHCI_C2_BleNvmRamUpdate_Evt_t;
102 
103  /**
104  * SHCI_SUB_EVT_OT_NVM_RAM_UPDATE
105  * This notifies the CPU1 which part of the OT NVM RAM has been updated so that only the modified
106  * section could be written in Flash/NVM
107  * StartAddress : Start address of the section that has been modified
108  * Size : Size (in bytes) of the section that has been modified
109  */
110  typedef PACKED_STRUCT{
111  uint32_t StartAddress;
112  uint32_t Size;
113  } SHCI_C2_OtNvmRamUpdate_Evt_t;
114 
115  /**
116  * SHCI_SUB_EVT_NVM_START_WRITE
117  * This notifies the CPU1 that the CPU2 has started a write procedure in Flash
118  * NumberOfWords : The number of 64bits data the CPU2 needs to write in Flash.
119  * For each 64bits data, the algorithm as described in AN5289 is executed.
120  * When this number is reported to 0, it means the Number of 64bits to be written
121  * was unknown when the procedure has started.
122  * When all data are written, the SHCI_SUB_EVT_NVM_END_WRITE event is reported
123  */
124  typedef PACKED_STRUCT{
125  uint32_t NumberOfWords;
126  } SHCI_C2_NvmStartWrite_Evt_t;
127 
128  /**
129  * SHCI_SUB_EVT_NVM_END_WRITE
130  * This notifies the CPU1 that the CPU2 has written all expected data in Flash
131  */
132 
133  /**
134  * SHCI_SUB_EVT_NVM_START_ERASE
135  * This notifies the CPU1 that the CPU2 has started a erase procedure in Flash
136  * NumberOfSectors : The number of sectors the CPU2 needs to erase in Flash.
137  * For each sector, the algorithm as described in AN5289 is executed.
138  * When this number is reported to 0, it means the Number of sectors to be erased
139  * was unknown when the procedure has started.
140  * When all sectors are erased, the SHCI_SUB_EVT_NVM_END_ERASE event is reported
141  */
142  typedef PACKED_STRUCT{
143  uint32_t NumberOfSectors;
144  } SHCI_C2_NvmStartErase_Evt_t;
145 
146  /**
147  * SHCI_SUB_EVT_NVM_END_ERASE
148  * This notifies the CPU1 that the CPU2 has erased all expected flash sectors
149  */
150 
151  /* SYSTEM COMMAND */
152  typedef PACKED_STRUCT
153  {
154  uint32_t MetaData[3];
155  } SHCI_Header_t;
156 
157  typedef enum
158  {
159  SHCI_Success = 0x00,
160  SHCI_UNKNOWN_CMD = 0x01,
161  SHCI_ERR_UNSUPPORTED_FEATURE = 0x11,
162  SHCI_ERR_INVALID_HCI_CMD_PARAMS = 0x12,
163  SHCI_FUS_CMD_NOT_SUPPORTED = 0xFF,
164  } SHCI_CmdStatus_t;
165 
166  typedef enum
167  {
168  SHCI_8BITS = 0x01,
169  SHCI_16BITS = 0x02,
170  SHCI_32BITS = 0x04,
171  } SHCI_Busw_t;
172 
173 #define SHCI_OGF ( 0x3F )
174 #define SHCI_OCF_BASE ( 0x50 )
175 
176  /**
177  * THE ORDER SHALL NOT BE CHANGED TO GUARANTEE COMPATIBILITY WITH THE CPU2 DEFINITION
178  */
179  typedef enum
180  {
181  SHCI_OCF_C2_RESERVED1 = SHCI_OCF_BASE,
182  SHCI_OCF_C2_RESERVED2,
183  SHCI_OCF_C2_FUS_GET_STATE,
184  SHCI_OCF_C2_FUS_RESERVED1,
185  SHCI_OCF_C2_FUS_FW_UPGRADE,
186  SHCI_OCF_C2_FUS_FW_DELETE,
187  SHCI_OCF_C2_FUS_UPDATE_AUTH_KEY,
188  SHCI_OCF_C2_FUS_LOCK_AUTH_KEY,
189  SHCI_OCF_C2_FUS_STORE_USR_KEY,
190  SHCI_OCF_C2_FUS_LOAD_USR_KEY,
191  SHCI_OCF_C2_FUS_START_WS,
192  SHCI_OCF_C2_FUS_RESERVED2,
193  SHCI_OCF_C2_FUS_RESERVED3,
194  SHCI_OCF_C2_FUS_LOCK_USR_KEY,
195  SHCI_OCF_C2_FUS_RESERVED5,
196  SHCI_OCF_C2_FUS_RESERVED6,
197  SHCI_OCF_C2_FUS_RESERVED7,
198  SHCI_OCF_C2_FUS_RESERVED8,
199  SHCI_OCF_C2_FUS_RESERVED9,
200  SHCI_OCF_C2_FUS_RESERVED10,
201  SHCI_OCF_C2_FUS_RESERVED11,
202  SHCI_OCF_C2_FUS_RESERVED12,
203  SHCI_OCF_C2_BLE_INIT,
204  SHCI_OCF_C2_THREAD_INIT,
205  SHCI_OCF_C2_DEBUG_INIT,
206  SHCI_OCF_C2_FLASH_ERASE_ACTIVITY,
207  SHCI_OCF_C2_CONCURRENT_SET_MODE,
208  SHCI_OCF_C2_FLASH_STORE_DATA,
209  SHCI_OCF_C2_FLASH_ERASE_DATA,
210  SHCI_OCF_C2_RADIO_ALLOW_LOW_POWER,
211  SHCI_OCF_C2_MAC_802_15_4_INIT,
212  SHCI_OCF_C2_REINIT,
213  SHCI_OCF_C2_ZIGBEE_INIT,
214  SHCI_OCF_C2_LLD_TESTS_INIT,
215  SHCI_OCF_C2_EXTPA_CONFIG,
216  SHCI_OCF_C2_SET_FLASH_ACTIVITY_CONTROL,
217  SHCI_OCF_C2_LLD_BLE_INIT,
218  SHCI_OCF_C2_CONFIG,
219  } SHCI_OCF_t;
220 
221 #define SHCI_OPCODE_C2_FUS_GET_STATE (( SHCI_OGF << 10) + SHCI_OCF_C2_FUS_GET_STATE)
222 /** No command parameters */
223 /** Response parameters*/
224  typedef enum
225  {
226  FUS_STATE_NO_ERROR = 0x00,
227  FUS_STATE_IMG_NOT_FOUND = 0x01,
228  FUS_STATE_IMG_CORRUPT = 0x02,
229  FUS_STATE_IMG_NOT_AUTHENTIC = 0x03,
230  FUS_STATE_IMG_NOT_ENOUGH_SPACE = 0x04,
231  FUS_STATE_ERR_UNKNOWN = 0xFF,
233 
234 #define SHCI_OPCODE_C2_FUS_RESERVED1 (( SHCI_OGF << 10) + SHCI_OCF_C2_FUS_RESERVED1)
235 /** No command parameters */
236 /** No response parameters*/
237 
238 #define SHCI_OPCODE_C2_FUS_FW_UPGRADE (( SHCI_OGF << 10) + SHCI_OCF_C2_FUS_FW_UPGRADE)
239  /** No structure for command parameters */
240  /** No response parameters*/
241 
242 #define SHCI_OPCODE_C2_FUS_FW_DELETE (( SHCI_OGF << 10) + SHCI_OCF_C2_FUS_FW_DELETE)
243 /** No command parameters */
244 /** No response parameters*/
245 
246 #define SHCI_OPCODE_C2_FUS_UPDATE_AUTH_KEY (( SHCI_OGF << 10) + SHCI_OCF_C2_FUS_UPDATE_AUTH_KEY)
247  typedef PACKED_STRUCT{
248  uint8_t KeySize;
249  uint8_t KeyData[64];
250  } SHCI_C2_FUS_UpdateAuthKey_Cmd_Param_t;
251 
252  /** No response parameters*/
253 
254 #define SHCI_OPCODE_C2_FUS_LOCK_AUTH_KEY (( SHCI_OGF << 10) + SHCI_OCF_C2_FUS_LOCK_AUTH_KEY)
255 /** No command parameters */
256 /** No response parameters*/
257 
258 #define SHCI_OPCODE_C2_FUS_STORE_USR_KEY (( SHCI_OGF << 10) + SHCI_OCF_C2_FUS_STORE_USR_KEY)
259  /** Command parameters */
260  /* List of supported key type */
261  enum
262  {
263  KEYTYPE_NONE = 0x00,
264  KEYTYPE_SIMPLE = 0x01,
265  KEYTYPE_MASTER = 0x02,
266  KEYTYPE_ENCRYPTED = 0x03,
267  };
268 
269  /* List of supported key size */
270  enum
271  {
272  KEYSIZE_16 = 16,
273  KEYSIZE_32 = 32,
274  };
275 
276  typedef PACKED_STRUCT{
277  uint8_t KeyType;
278  uint8_t KeySize;
279  uint8_t KeyData[32 + 12];
280  } SHCI_C2_FUS_StoreUsrKey_Cmd_Param_t;
281 
282  /** Response parameters*/
283  /** It responds a 1 byte value holding the index given for the stored key */
284 
285 #define SHCI_OPCODE_C2_FUS_LOAD_USR_KEY (( SHCI_OGF << 10) + SHCI_OCF_C2_FUS_LOAD_USR_KEY)
286  /** Command parameters */
287  /** 1 byte holding the key index value */
288 
289  /** No response parameters*/
290 
291 #define SHCI_OPCODE_C2_FUS_START_WS (( SHCI_OGF << 10) + SHCI_OCF_C2_FUS_START_WS)
292 /** No command parameters */
293 /** No response parameters*/
294 
295 #define SHCI_OPCODE_C2_FUS_RESERVED2 (( SHCI_OGF << 10) + SHCI_OCF_C2_FUS_RESERVED2)
296 /** No command parameters */
297 /** No response parameters*/
298 
299 #define SHCI_OPCODE_C2_FUS_RESERVED3 (( SHCI_OGF << 10) + SHCI_OCF_C2_FUS_RESERVED3)
300 /** No command parameters */
301 /** No response parameters*/
302 
303 #define SHCI_OPCODE_C2_FUS_LOCK_USR_KEY (( SHCI_OGF << 10) + SHCI_OCF_C2_FUS_LOCK_USR_KEY)
304  /** Command parameters */
305  /** 1 byte holding the key index value */
306 
307  /** No response parameters*/
308 
309 #define SHCI_OPCODE_C2_FUS_RESERVED5 (( SHCI_OGF << 10) + SHCI_OCF_C2_FUS_RESERVED5)
310 /** No command parameters */
311 /** No response parameters*/
312 
313 #define SHCI_OPCODE_C2_FUS_RESERVED6 (( SHCI_OGF << 10) + SHCI_OCF_C2_FUS_RESERVED6)
314 /** No command parameters */
315 /** No response parameters*/
316 
317 #define SHCI_OPCODE_C2_FUS_RESERVED7 (( SHCI_OGF << 10) + SHCI_OCF_C2_FUS_RESERVED7)
318 /** No command parameters */
319 /** No response parameters*/
320 
321 #define SHCI_OPCODE_C2_FUS_RESERVED8 (( SHCI_OGF << 10) + SHCI_OCF_C2_FUS_RESERVED8)
322 /** No command parameters */
323 /** No response parameters*/
324 
325 #define SHCI_OPCODE_C2_FUS_RESERVED9 (( SHCI_OGF << 10) + SHCI_OCF_C2_FUS_RESERVED9)
326 /** No command parameters */
327 /** No response parameters*/
328 
329 #define SHCI_OPCODE_C2_FUS_RESERVED10 (( SHCI_OGF << 10) + SHCI_OCF_C2_FUS_RESERVED10)
330 /** No command parameters */
331 /** No response parameters*/
332 
333 #define SHCI_OPCODE_C2_FUS_RESERVED11 (( SHCI_OGF << 10) + SHCI_OCF_C2_FUS_RESERVED11)
334 /** No command parameters */
335 /** No response parameters*/
336 
337 #define SHCI_OPCODE_C2_FUS_RESERVED12 (( SHCI_OGF << 10) + SHCI_OCF_C2_FUS_RESERVED12)
338 /** No command parameters */
339 /** No response parameters*/
340 
341 #define SHCI_OPCODE_C2_BLE_INIT (( SHCI_OGF << 10) + SHCI_OCF_C2_BLE_INIT)
342  /** THE ORDER SHALL NOT BE CHANGED */
343  typedef PACKED_STRUCT{
344  uint8_t* pBleBufferAddress; /**< NOT USED CURRENTLY */
345  uint32_t BleBufferSize; /**< Size of the Buffer allocated in pBleBufferAddress */
346  uint16_t NumAttrRecord;
347  uint16_t NumAttrServ;
348  uint16_t AttrValueArrSize;
349  uint8_t NumOfLinks;
350  uint8_t ExtendedPacketLengthEnable;
351  uint8_t PrWriteListSize;
352  uint8_t MblockCount;
353  uint16_t AttMtu;
354  uint16_t SlaveSca;
355  uint8_t MasterSca;
356  uint8_t LsSource;
357  uint32_t MaxConnEventLength;
358  uint16_t HsStartupTime;
359  uint8_t ViterbiEnable;
360  uint8_t LlOnly;
361  uint8_t HwVersion;
362  } SHCI_C2_Ble_Init_Cmd_Param_t;
363 
364  typedef PACKED_STRUCT{
365  SHCI_Header_t Header; /** Does not need to be initialized by the user */
366  SHCI_C2_Ble_Init_Cmd_Param_t Param;
367  } SHCI_C2_Ble_Init_Cmd_Packet_t;
368 
369  /** No response parameters*/
370 
371 #define SHCI_OPCODE_C2_THREAD_INIT (( SHCI_OGF << 10) + SHCI_OCF_C2_THREAD_INIT)
372 /** No command parameters */
373 /** No response parameters*/
374 
375 #define SHCI_OPCODE_C2_DEBUG_INIT (( SHCI_OGF << 10) + SHCI_OCF_C2_DEBUG_INIT)
376  /** Command parameters */
377  typedef PACKED_STRUCT
378  {
379  uint8_t thread_config;
380  uint8_t ble_config;
381  uint8_t mac_802_15_4_config;
382  uint8_t zigbee_config;
383  } SHCI_C2_DEBUG_TracesConfig_t;
384 
385  typedef PACKED_STRUCT
386  {
387  uint8_t ble_dtb_cfg;
388  uint8_t reserved[3];
389  } SHCI_C2_DEBUG_GeneralConfig_t;
390 
391  typedef PACKED_STRUCT{
392  uint8_t *pGpioConfig;
393  uint8_t *pTracesConfig;
394  uint8_t *pGeneralConfig;
395  uint8_t GpioConfigSize;
396  uint8_t TracesConfigSize;
397  uint8_t GeneralConfigSize;
398  } SHCI_C2_DEBUG_init_Cmd_Param_t;
399 
400  typedef PACKED_STRUCT{
401  SHCI_Header_t Header; /** Does not need to be initialized by the user */
402  SHCI_C2_DEBUG_init_Cmd_Param_t Param;
403  } SHCI_C2_DEBUG_Init_Cmd_Packet_t;
404  /** No response parameters*/
405 
406 #define SHCI_OPCODE_C2_FLASH_ERASE_ACTIVITY (( SHCI_OGF << 10) + SHCI_OCF_C2_FLASH_ERASE_ACTIVITY)
407  /** Command parameters */
408  typedef enum
409  {
410  ERASE_ACTIVITY_OFF = 0x00,
411  ERASE_ACTIVITY_ON = 0x01,
413 
414  /** No response parameters*/
415 
416 #define SHCI_OPCODE_C2_CONCURRENT_SET_MODE (( SHCI_OGF << 10) + SHCI_OCF_C2_CONCURRENT_SET_MODE)
417 /** command parameters */
418  typedef enum
419  {
420  BLE_ENABLE,
421  THREAD_ENABLE,
422  ZIGBEE_ENABLE,
424  /** No response parameters*/
425 
426 #define SHCI_OPCODE_C2_FLASH_STORE_DATA (( SHCI_OGF << 10) + SHCI_OCF_C2_FLASH_STORE_DATA)
427 #define SHCI_OPCODE_C2_FLASH_ERASE_DATA (( SHCI_OGF << 10) + SHCI_OCF_C2_FLASH_ERASE_DATA)
428 /** command parameters */
429  typedef enum
430  {
431  BLE_IP,
432  THREAD_IP,
433  ZIGBEE_IP,
435  /** No response parameters*/
436 
437 #define SHCI_OPCODE_C2_RADIO_ALLOW_LOW_POWER (( SHCI_OGF << 10) + SHCI_OCF_C2_RADIO_ALLOW_LOW_POWER)
438 
439 #define SHCI_OPCODE_C2_MAC_802_15_4_INIT (( SHCI_OGF << 10) + SHCI_OCF_C2_MAC_802_15_4_INIT)
440 
441 #define SHCI_OPCODE_C2_REINIT (( SHCI_OGF << 10) + SHCI_OCF_C2_REINIT)
442 
443 #define SHCI_OPCODE_C2_ZIGBEE_INIT (( SHCI_OGF << 10) + SHCI_OCF_C2_ZIGBEE_INIT)
444 
445 #define SHCI_OPCODE_C2_LLD_TESTS_INIT (( SHCI_OGF << 10) + SHCI_OCF_C2_LLD_TESTS_INIT)
446 
447 #define SHCI_OPCODE_C2_LLD_BLE_INIT (( SHCI_OGF << 10) + SHCI_OCF_C2_LLD_BLE_INIT)
448 
449 #define SHCI_OPCODE_C2_EXTPA_CONFIG (( SHCI_OGF << 10) + SHCI_OCF_C2_EXTPA_CONFIG)
450  /** Command parameters */
451  enum
452  {
453  EXT_PA_ENABLED_LOW,
454  EXT_PA_ENABLED_HIGH,
455  }/* gpio_polarity */;
456 
457  enum
458  {
459  EXT_PA_DISABLED,
460  EXT_PA_ENABLED,
461  }/* gpio_status */;
462 
463  typedef PACKED_STRUCT{
464  uint32_t gpio_port;
465  uint16_t gpio_pin_number;
466  uint8_t gpio_polarity;
467  uint8_t gpio_status;
468  } SHCI_C2_EXTPA_CONFIG_Cmd_Param_t;
469 
470  /** No response parameters*/
471 
472 #define SHCI_OPCODE_C2_SET_FLASH_ACTIVITY_CONTROL (( SHCI_OGF << 10) + SHCI_OCF_C2_SET_FLASH_ACTIVITY_CONTROL)
473  /** Command parameters */
474  typedef enum
475  {
476  FLASH_ACTIVITY_CONTROL_PES,
477  FLASH_ACTIVITY_CONTROL_SEM7,
479 
480  /** No response parameters*/
481 
482 #define SHCI_OPCODE_C2_CONFIG (( SHCI_OGF << 10) + SHCI_OCF_C2_CONFIG)
483  /** Command parameters */
484  typedef PACKED_STRUCT{
485  uint8_t PayloadCmdSize;
486  uint8_t Config1;
487  uint8_t EvtMask1;
488  uint8_t Spare1;
489  uint32_t BleNvmRamAddress;
490  uint32_t ThreadNvmRamAddress;
491  } SHCI_C2_CONFIG_Cmd_Param_t;
492 
493 /**
494  * PayloadCmdSize
495  * Value that shall be used
496  */
497 #define SHCI_C2_CONFIG_PAYLOAD_CMD_SIZE (sizeof(SHCI_C2_CONFIG_Cmd_Param_t) - 1)
498 
499 /**
500  * Config1
501  * Each definition below may be added together to build the Config1 value
502  * WARNING : Only one definition per bit shall be added to build the Config1 value
503  */
504 #define SHCI_C2_CONFIG_CONFIG1_BIT0_BLE_NVM_DATA_TO_INTERNAL_FLASH (0<<0)
505 #define SHCI_C2_CONFIG_CONFIG1_BIT0_BLE_NVM_DATA_TO_SRAM (1<<0)
506 #define SHCI_C2_CONFIG_CONFIG1_BIT1_THREAD_NVM_DATA_TO_INTERNAL_FLASH (0<<1)
507 #define SHCI_C2_CONFIG_CONFIG1_BIT1_THREAD_NVM_DATA_TO_SRAM (1<<1)
508 
509 /**
510  * EvtMask1
511  * Each definition below may be added together to build the EvtMask1 value
512  */
513 #define SHCI_C2_CONFIG_EVTMASK1_BIT0_ERROR_NOTIF_ENABLE (1<<0)
514 #define SHCI_C2_CONFIG_EVTMASK1_BIT1_BLE_NVM_RAM_UPDATE_ENABLE (1<<1)
515 #define SHCI_C2_CONFIG_EVTMASK1_BIT2_OT_NVM_RAM_UPDATE_ENABLE (1<<2)
516 #define SHCI_C2_CONFIG_EVTMASK1_BIT3_NVM_START_WRITE_ENABLE (1<<3)
517 #define SHCI_C2_CONFIG_EVTMASK1_BIT4_NVM_END_WRITE_ENABLE (1<<4)
518 #define SHCI_C2_CONFIG_EVTMASK1_BIT5_NVM_START_ERASE_ENABLE (1<<5)
519 #define SHCI_C2_CONFIG_EVTMASK1_BIT6_NVM_END_ERASE_ENABLE (1<<6)
520 
521 /**
522  * BleNvmRamAddress
523  * The buffer shall have a size of BLE_NVM_SRAM_SIZE number of 32bits
524  * The buffer shall be allocated in SRAM2
525  */
526 #define BLE_NVM_SRAM_SIZE (507)
527 
528 /**
529  * ThreadNvmRamAddress
530  * The buffer shall have a size of THREAD_NVM_SRAM_SIZE number of 32bits
531  * The buffer shall be allocated in SRAM2
532  */
533 #define THREAD_NVM_SRAM_SIZE (1016)
534 
535 
536  /** No response parameters*/
537 
538  /* Exported type --------------------------------------------------------*/
539 
540 typedef MB_WirelessFwInfoTable_t SHCI_WirelessFwInfoTable_t;
541 
542 /*
543  * At startup, the informations relative to the wireless binary are stored in RAM trough a structure defined by
544  * SHCI_WirelessFwInfoTable_t.This structure contains 4 fields (Version,MemorySize, Stack_info and a reserved part)
545  * each of those coded on 32 bits as shown on the table below:
546  *
547  *
548  * |7 |6 |5 |4 |3 |2 |1 |0 |7 |6 |5 |4 |3 |2 |1 |0 |7 |6 |5 |4 |3 |2 |1 |0 |7 |6 |5 |4 |3 |2 |1 |0 |
549  * -------------------------------------------------------------------------------------------------
550  * Version | Major version | Minor version | Sub version | Branch |Releas Type|
551  * -------------------------------------------------------------------------------------------------
552  * MemorySize | SRAM2B (kB) | SRAM2A (kB) | SRAM1 (kB) | FLASH (4kb) |
553  * -------------------------------------------------------------------------------------------------
554  * Info stack | Reserved | Reserved | Reserved | Type (MAC,Thread,BLE) |
555  * -------------------------------------------------------------------------------------------------
556  * Reserved | Reserved | Reserved | Reserved | Reserved |
557  * -------------------------------------------------------------------------------------------------
558  *
559  */
560 
561 /* Field Version */
562 #define INFO_VERSION_MAJOR_OFFSET 24
563 #define INFO_VERSION_MAJOR_MASK 0xff000000
564 #define INFO_VERSION_MINOR_OFFSET 16
565 #define INFO_VERSION_MINOR_MASK 0x00ff0000
566 #define INFO_VERSION_SUB_OFFSET 8
567 #define INFO_VERSION_SUB_MASK 0x0000ff00
568 #define INFO_VERSION_BRANCH_OFFSET 4
569 #define INFO_VERSION_BRANCH_MASK 0x0000000f0
570 #define INFO_VERSION_TYPE_OFFSET 0
571 #define INFO_VERSION_TYPE_MASK 0x00000000f
572 
573 #define INFO_VERSION_TYPE_RELEASE 1
574 
575 /* Field Memory */
576 #define INFO_SIZE_SRAM2B_OFFSET 24
577 #define INFO_SIZE_SRAM2B_MASK 0xff000000
578 #define INFO_SIZE_SRAM2A_OFFSET 16
579 #define INFO_SIZE_SRAM2A_MASK 0x00ff0000
580 #define INFO_SIZE_SRAM1_OFFSET 8
581 #define INFO_SIZE_SRAM1_MASK 0x0000ff00
582 #define INFO_SIZE_FLASH_OFFSET 0
583 #define INFO_SIZE_FLASH_MASK 0x000000ff
584 
585 /* Field stack information */
586 #define INFO_STACK_TYPE_OFFSET 0
587 #define INFO_STACK_TYPE_MASK 0x000000ff
588 #define INFO_STACK_TYPE_NONE 0
589 
590 #define INFO_STACK_TYPE_BLE_STANDARD 0x01
591 #define INFO_STACK_TYPE_BLE_HCI 0x02
592 #define INFO_STACK_TYPE_BLE_LIGHT 0x03
593 #define INFO_STACK_TYPE_THREAD_FTD 0x10
594 #define INFO_STACK_TYPE_THREAD_MTD 0x11
595 #define INFO_STACK_TYPE_ZIGBEE_FFD 0x30
596 #define INFO_STACK_TYPE_ZIGBEE_RFD 0x31
597 #define INFO_STACK_TYPE_MAC 0x40
598 #define INFO_STACK_TYPE_BLE_THREAD_FTD_STATIC 0x50
599 #define INFO_STACK_TYPE_BLE_THREAD_FTD_DYAMIC 0x51
600 #define INFO_STACK_TYPE_802154_LLD_TESTS 0x60
601 #define INFO_STACK_TYPE_802154_PHY_VALID 0x61
602 #define INFO_STACK_TYPE_BLE_PHY_VALID 0x62
603 #define INFO_STACK_TYPE_BLE_LLD_TESTS 0x63
604 #define INFO_STACK_TYPE_BLE_RLV 0x64
605 #define INFO_STACK_TYPE_802154_RLV 0x65
606 #define INFO_STACK_TYPE_BLE_ZIGBEE_FFD_STATIC 0x70
607 #define INFO_STACK_TYPE_BLE_ZIGBEE_FFD_DYNAMIC 0x78
608 #define INFO_STACK_TYPE_RLV 0x80
609 
610 typedef struct {
611 /**
612  * Wireless Info
613  */
614  uint8_t VersionMajor;
615  uint8_t VersionMinor;
616  uint8_t VersionSub;
617  uint8_t VersionBranch;
618  uint8_t VersionReleaseType;
619  uint8_t MemorySizeSram2B; /*< Multiple of 1K */
620  uint8_t MemorySizeSram2A; /*< Multiple of 1K */
621  uint8_t MemorySizeSram1; /*< Multiple of 1K */
622  uint8_t MemorySizeFlash; /*< Multiple of 4K */
623  uint8_t StackType;
624 /**
625  * Fus Info
626  */
628  uint8_t FusVersionMinor;
629  uint8_t FusVersionSub;
630  uint8_t FusMemorySizeSram2B; /*< Multiple of 1K */
631  uint8_t FusMemorySizeSram2A; /*< Multiple of 1K */
632  uint8_t FusMemorySizeFlash; /*< Multiple of 4K */
634 
635 
636 /* Exported functions ------------------------------------------------------- */
637 
638 /**
639  * For all SHCI_C2_FUS_xxx() command:
640  * When the wireless FW is running on the CPU2, the command returns SHCI_FUS_CMD_NOT_SUPPORTED
641  * When any FUS command is sent after the SHCI_FUS_CMD_NOT_SUPPORTED has been received,
642  * the CPU2 switches on the RSS ( This reboots automatically the device )
643  */
644  /**
645  * SHCI_C2_FUS_GetState
646  * @brief Read the FUS State
647  * If the user is not interested by the Error code response, a null value may
648  * be passed as parameter
649  *
650  * @param p_rsp : return the error code when the FUS State Value = 0xFF
651  * @retval FUS State Values
652  */
654 
655  /**
656  * SHCI_C2_FUS_FwUpgrade
657  * @brief Request the FUS to install the CPU2 firmware update
658  *
659  * @param fw_src_add: Address of the firmware image location
660  * @param fw_dest_add: Address of the firmware destination
661  * @retval Status
662  */
663  SHCI_CmdStatus_t SHCI_C2_FUS_FwUpgrade( uint32_t fw_src_add, uint32_t fw_dest_add );
664 
665  /**
666  * SHCI_C2_FUS_FwDelete
667  * @brief Delete the wireless stack on CPU2
668  *
669  * @param None
670  * @retval Status
671  */
672  SHCI_CmdStatus_t SHCI_C2_FUS_FwDelete( void );
673 
674  /**
675  * SHCI_C2_FUS_UpdateAuthKey
676  * @brief Request the FUS to update the authentication key
677  *
678  * @param pCmdPacket
679  * @retval Status
680  */
681  SHCI_CmdStatus_t SHCI_C2_FUS_UpdateAuthKey( SHCI_C2_FUS_UpdateAuthKey_Cmd_Param_t *pParam );
682 
683  /**
684  * SHCI_C2_FUS_LockAuthKey
685  * @brief Request the FUS to prevent any future update of the authentication key
686  *
687  * @param None
688  * @retval Status
689  */
690  SHCI_CmdStatus_t SHCI_C2_FUS_LockAuthKey( void );
691 
692  /**
693  * SHCI_C2_FUS_StoreUsrKey
694  * @brief Request the FUS to store the user key
695  *
696  * @param pParam : command parameter
697  * @param p_key_index : Index allocated by the FUS to the stored key
698  *
699  * @retval Status
700  */
701  SHCI_CmdStatus_t SHCI_C2_FUS_StoreUsrKey( SHCI_C2_FUS_StoreUsrKey_Cmd_Param_t *pParam, uint8_t *p_key_index );
702 
703  /**
704  * SHCI_C2_FUS_LoadUsrKey
705  * @brief Request the FUS to load the user key into the AES
706  *
707  * @param key_index : index of the user key to load in AES1
708  * @retval Status
709  */
710  SHCI_CmdStatus_t SHCI_C2_FUS_LoadUsrKey( uint8_t key_index );
711 
712  /**
713  * SHCI_C2_FUS_StartWs
714  * @brief Request the FUS to reboot on the wireless stack
715  *
716  * @param None
717  * @retval Status
718  */
719  SHCI_CmdStatus_t SHCI_C2_FUS_StartWs( void );
720 
721  /**
722  * SHCI_C2_FUS_LockUsrKey
723  * @brief Request the FUS to lock the user key so that it cannot be updated later on
724  *
725  * @param key_index : index of the user key to lock
726  * @retval Status
727  */
728  SHCI_CmdStatus_t SHCI_C2_FUS_LockUsrKey( uint8_t key_index );
729 
730  /**
731  * SHCI_C2_BLE_Init
732  * @brief Provides parameters and starts the BLE Stack
733  *
734  * @param pCmdPacket : Parameters to be provided to the BLE Stack
735  * @retval Status
736  */
737  SHCI_CmdStatus_t SHCI_C2_BLE_Init( SHCI_C2_Ble_Init_Cmd_Packet_t *pCmdPacket );
738 
739  /**
740  * SHCI_C2_THREAD_Init
741  * @brief Starts the THREAD Stack
742  *
743  * @param None
744  * @retval Status
745  */
746  SHCI_CmdStatus_t SHCI_C2_THREAD_Init( void );
747 
748  /**
749  * SHCI_C2_LLDTESTS_Init
750  * @brief Starts the LLD tests CLI
751  *
752  * @param param_size : Nb of bytes
753  * @param p_param : pointeur with data to give from M4 to M0
754  * @retval Status
755  */
756  SHCI_CmdStatus_t SHCI_C2_LLDTESTS_Init( uint8_t param_size, uint8_t * p_param );
757 
758  /**
759  * SHCI_C2_LLD_BLE_Init
760  * @brief Starts the LLD tests CLI
761  *
762  * @param param_size : Nb of bytes
763  * @param p_param : pointeur with data to give from M4 to M0
764  * @retval Status
765  */
766  SHCI_CmdStatus_t SHCI_C2_LLD_BLE_Init( uint8_t param_size, uint8_t * p_param );
767 
768  /**
769  * SHCI_C2_ZIGBEE_Init
770  * @brief Starts the Zigbee Stack
771  *
772  * @param None
773  * @retval Status
774  */
775  SHCI_CmdStatus_t SHCI_C2_ZIGBEE_Init( void );
776 
777  /**
778  * SHCI_C2_DEBUG_Init
779  * @brief Starts the Traces
780  *
781  * @param None
782  * @retval Status
783  */
784  SHCI_CmdStatus_t SHCI_C2_DEBUG_Init( SHCI_C2_DEBUG_Init_Cmd_Packet_t *pCmdPacket );
785 
786  /**
787  * SHCI_C2_FLASH_EraseActivity
788  * @brief Provides the information of the start and the end of a flash erase window on the CPU1
789  *
790  * @param erase_activity: Start/End of erase activity
791  * @retval Status
792  */
793  SHCI_CmdStatus_t SHCI_C2_FLASH_EraseActivity( SHCI_EraseActivity_t erase_activity );
794 
795  /**
796  * SHCI_C2_CONCURRENT_SetMode
797  * @brief Enable/Disable Thread on CPU2 (M0+)
798  *
799  * @param Mode: BLE or Thread enable flag
800  * @retval Status
801  */
802  SHCI_CmdStatus_t SHCI_C2_CONCURRENT_SetMode( SHCI_C2_CONCURRENT_Mode_Param_t Mode );
803 
804  /**
805  * SHCI_C2_FLASH_StoreData
806  * @brief Store Data in Flash
807  *
808  * @param Ip: BLE or THREAD
809  * @retval Status
810  */
811  SHCI_CmdStatus_t SHCI_C2_FLASH_StoreData( SHCI_C2_FLASH_Ip_t Ip );
812 
813  /**
814  * SHCI_C2_FLASH_EraseData
815  * @brief Erase Data in Flash
816  *
817  * @param Ip: BLE or THREAD
818  * @retval Status
819  */
820  SHCI_CmdStatus_t SHCI_C2_FLASH_EraseData( SHCI_C2_FLASH_Ip_t Ip );
821 
822  /**
823  * SHCI_C2_RADIO_AllowLowPower
824  * @brief Allow or forbid IP_radio (802_15_4 or BLE) to enter in low power mode.
825  *
826  * @param Ip: BLE or 802_15_5
827  * @param FlagRadioLowPowerOn: True or false
828  * @retval Status
829  */
830  SHCI_CmdStatus_t SHCI_C2_RADIO_AllowLowPower( SHCI_C2_FLASH_Ip_t Ip,uint8_t FlagRadioLowPowerOn);
831 
832 
833  /**
834  * SHCI_C2_MAC_802_15_4_Init
835  * @brief Starts the MAC 802.15.4 on M0
836  *
837  * @param None
838  * @retval Status
839  */
840  SHCI_CmdStatus_t SHCI_C2_MAC_802_15_4_Init( void );
841 
842  /**
843  * SHCI_GetWirelessFwInfo
844  * @brief This function read back the informations relative to the wireless binary loaded.
845  * Refer yourself to SHCI_WirelessFwInfoTable_t structure to get the significance
846  * of the different parameters returned.
847  * @param pWirelessInfo : Pointer to WirelessFwInfo_t.
848  *
849  * @retval SHCI_Success
850  */
851  SHCI_CmdStatus_t SHCI_GetWirelessFwInfo( WirelessFwInfo_t* pWirelessInfo );
852 
853  /**
854  * SHCI_C2_Reinit
855  * @brief This is required to allow the CPU1 to fake a set C2BOOT when it has already been set.
856  * In order to fake a C2BOOT, the CPU1 shall :
857  * - Send SHCI_C2_Reinit()
858  * - call SEV instruction
859  * WARNING:
860  * This function is intended to be used by the SBSFU
861  *
862  * @param None
863  * @retval Status
864  */
865  SHCI_CmdStatus_t SHCI_C2_Reinit( void );
866 
867  /**
868  * SHCI_C2_ExtpaConfig
869  * @brief Send the Ext PA configuration
870  * When the CPU2 receives the command, it controls the Ext PA as requested by the configuration
871  * This configures only which IO is used to enable/disable the ExtPA and the associated polarity
872  * This command has no effect on the other IO that is used to control the mode of the Ext PA (Rx/Tx)
873  *
874  * @param gpio_port: GPIOx where x can be (A..F) to select the GPIO peripheral for STM32WBxx family
875  * @param gpio_pin_number: This parameter can be one of GPIO_PIN_x (= LL_GPIO_PIN_x) where x can be (0..15).
876  * @param gpio_polarity: This parameter can be either
877  * - EXT_PA_ENABLED_LOW: ExtPA is enabled when GPIO is low
878  * - EXT_PA_ENABLED_HIGH: ExtPA is enabled when GPIO is high
879  * @param gpio_status: This parameter can be either
880  * - EXT_PA_DISABLED: Stop driving the ExtPA
881  * - EXT_PA_ENABLED: Drive the ExtPA according to radio activity
882  * (ON before the Event and OFF at the end of the event)
883  * @retval Status
884  */
885  SHCI_CmdStatus_t SHCI_C2_ExtpaConfig(uint32_t gpio_port, uint16_t gpio_pin_number, uint8_t gpio_polarity, uint8_t gpio_status);
886 
887  /**
888  * SHCI_C2_SetFlashActivityControl
889  * @brief Set the mechanism to be used on CPU2 to prevent the CPU1 to either write or erase in flash
890  *
891  * @param Source: It can be one of the following list
892  * - FLASH_ACTIVITY_CONTROL_PES : The CPU2 set the PES bit to prevent the CPU1 to either read or write in flash
893  * - FLASH_ACTIVITY_CONTROL_SEM7 : The CPU2 gets the semaphore 7 to prevent the CPU1 to either read or write in flash.
894  * This requires the CPU1 to first get semaphore 7 before erasing or writing the flash.
895  *
896  * @retval Status
897  */
898  SHCI_CmdStatus_t SHCI_C2_SetFlashActivityControl(SHCI_C2_SET_FLASH_ACTIVITY_CONTROL_Source_t Source);
899 
900  /**
901  * SHCI_C2_Config
902  * @brief Send the system configuration to the CPU2
903  *
904  * @param pCmdPacket: address of the buffer holding following parameters
905  * uint8_t PayloadCmdSize : Size of the payload - shall be SHCI_C2_CONFIG_PAYLOAD_CMD_SIZE
906  * uint8_t Config1 :
907  * - bit0 : 0 - BLE NVM Data data are flushed in internal secure flash
908  * 1 - BLE NVM Data are written in SRAM cache pointed by BleNvmRamAddress
909  * - bit1 : 0 - THREAD NVM Data data are flushed in internal secure flash
910  * 1 - THREAD NVM Data are written in SRAM cache pointed by ThreadNvmRamAddress
911  * - bit2 to bit7 : Unused, shall be set to 0
912  * uint8_t EvtMask1 :
913  * When a bit is set to 0, the event is not reported
914  * bit0 : Asynchronous Event with Sub Evt Code 0x9201 (= SHCI_SUB_EVT_ERROR_NOTIF)
915  * ...
916  * bit31 : Asynchronous Event with Sub Evt Code 0x9220
917  * uint8_t Spare1 : Unused, shall be set to 0
918  * uint32_t BleNvmRamAddress :
919  * Only considered when Config1.bit0 = 1
920  * When set to 0, data are kept in internal SRAM on CPU2
921  * Otherwise, data are copied in the cache pointed by BleNvmRamAddress
922  * The size of the buffer shall be BLE_NVM_SRAM_SIZE (number of 32bits)
923  * The buffer shall be allocated in SRAM2
924  * uint32_t ThreadNvmRamAddress :
925  * Only considered when Config1.bit1 = 1
926  * When set to 0, data are kept in internal SRAM on CPU2
927  * Otherwise, data are copied in the cache pointed by ThreadNvmRamAddress
928  * The size of the buffer shall be THREAD_NVM_SRAM_SIZE (number of 32bits)
929  * The buffer shall be allocated in SRAM2
930  *
931  * Please check macro definition to be used for this function
932  * They are defined in this file next to the definition of SHCI_OPCODE_C2_CONFIG
933  *
934  * @retval Status
935  */
936  SHCI_CmdStatus_t SHCI_C2_Config(SHCI_C2_CONFIG_Cmd_Param_t *pCmdPacket);
937 
938  #ifdef __cplusplus
939 }
940 #endif
941 
942 #endif /*__SHCI_H */
943 
944 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
uint8_t VersionMajor
Wireless Info.
Definition: shci.h:614
SHCI_C2_Ble_Init_Cmd_Param_t Param
Does not need to be initialized by the user.
Definition: shci.h:366
SHCI_CmdStatus_t SHCI_C2_RADIO_AllowLowPower(SHCI_C2_FLASH_Ip_t Ip, uint8_t FlagRadioLowPowerOn)
SHCI_C2_RADIO_AllowLowPower.
SHCI_CmdStatus_t SHCI_C2_DEBUG_Init(SHCI_C2_DEBUG_Init_Cmd_Packet_t *pCmdPacket)
SHCI_C2_DEBUG_Init.
SHCI_CmdStatus_t SHCI_C2_BLE_Init(SHCI_C2_Ble_Init_Cmd_Packet_t *pCmdPacket)
SHCI_C2_BLE_Init.
SHCI_OCF_t
THE ORDER SHALL NOT BE CHANGED TO GUARANTEE COMPATIBILITY WITH THE CPU2 DEFINITION.
Definition: shci.h:179
SHCI_CmdStatus_t SHCI_C2_FUS_LoadUsrKey(uint8_t key_index)
SHCI_C2_FUS_LoadUsrKey.
uint32_t BleBufferSize
Size of the Buffer allocated in pBleBufferAddress.
Definition: shci.h:345
SHCI_CmdStatus_t SHCI_C2_SetFlashActivityControl(SHCI_C2_SET_FLASH_ACTIVITY_CONTROL_Source_t Source)
SHCI_C2_SetFlashActivityControl.
SHCI_CmdStatus_t SHCI_C2_Config(SHCI_C2_CONFIG_Cmd_Param_t *pCmdPacket)
SHCI_C2_Config.
uint8_t SHCI_C2_FUS_GetState(SHCI_FUS_GetState_ErrorCode_t *p_rsp)
For all SHCI_C2_FUS_xxx() command: When the wireless FW is running on the CPU2, the command returns S...
SHCI_CmdStatus_t SHCI_C2_LLDTESTS_Init(uint8_t param_size, uint8_t *p_param)
SHCI_C2_LLDTESTS_Init.
SHCI_CmdStatus_t SHCI_C2_ExtpaConfig(uint32_t gpio_port, uint16_t gpio_pin_number, uint8_t gpio_polarity, uint8_t gpio_status)
SHCI_C2_ExtpaConfig.
SHCI_CmdStatus_t SHCI_C2_THREAD_Init(void)
SHCI_C2_THREAD_Init.
SHCI_CmdStatus_t SHCI_C2_FLASH_StoreData(SHCI_C2_FLASH_Ip_t Ip)
SHCI_C2_FLASH_StoreData.
SHCI_C2_CONCURRENT_Mode_Param_t
command parameters
Definition: shci.h:418
SHCI_CmdStatus_t SHCI_C2_FUS_StoreUsrKey(SHCI_C2_FUS_StoreUsrKey_Cmd_Param_t *pParam, uint8_t *p_key_index)
SHCI_C2_FUS_StoreUsrKey.
SHCI_CmdStatus_t SHCI_C2_MAC_802_15_4_Init(void)
SHCI_C2_MAC_802_15_4_Init.
SHCI_CmdStatus_t SHCI_C2_FUS_FwDelete(void)
SHCI_C2_FUS_FwDelete.
SHCI_C2_SET_FLASH_ACTIVITY_CONTROL_Source_t
Command parameters.
Definition: shci.h:474
SHCI_CmdStatus_t SHCI_C2_FUS_StartWs(void)
SHCI_C2_FUS_StartWs.
uint8_t FusVersionMajor
Fus Info.
Definition: shci.h:627
SHCI_C2_FLASH_Ip_t
command parameters
Definition: shci.h:429
MB_WirelessFwInfoTable_t SHCI_WirelessFwInfoTable_t
No response parameters.
Definition: shci.h:540
SHCI_CmdStatus_t SHCI_C2_FLASH_EraseData(SHCI_C2_FLASH_Ip_t Ip)
SHCI_C2_FLASH_EraseData.
Mailbox definition.
SHCI_CmdStatus_t SHCI_GetWirelessFwInfo(WirelessFwInfo_t *pWirelessInfo)
SHCI_GetWirelessFwInfo.
SHCI_CmdStatus_t SHCI_C2_FUS_FwUpgrade(uint32_t fw_src_add, uint32_t fw_dest_add)
SHCI_C2_FUS_FwUpgrade.
SHCI_CmdStatus_t SHCI_C2_CONCURRENT_SetMode(SHCI_C2_CONCURRENT_Mode_Param_t Mode)
SHCI_C2_CONCURRENT_SetMode.
typedef PACKED_STRUCT
SHCI_SUB_EVT_CODE_READY This notifies the CPU1 that the CPU2 is now ready to receive commands It repo...
Definition: shci.h:79
SHCI_CmdStatus_t SHCI_C2_LLD_BLE_Init(uint8_t param_size, uint8_t *p_param)
SHCI_C2_LLD_BLE_Init.
SHCI_EraseActivity_t
Command parameters.
Definition: shci.h:408
SHCI_FUS_GetState_ErrorCode_t
No command parameters.
Definition: shci.h:224
SHCI_CmdStatus_t SHCI_C2_Reinit(void)
SHCI_C2_Reinit.
SHCI_CmdStatus_t SHCI_C2_FUS_LockAuthKey(void)
SHCI_C2_FUS_LockAuthKey.
SHCI_CmdStatus_t SHCI_C2_FUS_UpdateAuthKey(SHCI_C2_FUS_UpdateAuthKey_Cmd_Param_t *pParam)
SHCI_C2_FUS_UpdateAuthKey.
SHCI_CmdStatus_t SHCI_C2_ZIGBEE_Init(void)
SHCI_C2_ZIGBEE_Init.
SHCI_CmdStatus_t SHCI_C2_FUS_LockUsrKey(uint8_t key_index)
SHCI_C2_FUS_LockUsrKey.
SHCI_SUB_EVT_CODE_t
THE ORDER SHALL NOT BE CHANGED TO GUARANTEE COMPATIBILITY WITH THE CPU1 DEFINITION.
Definition: shci.h:62
SHCI_CmdStatus_t SHCI_C2_FLASH_EraseActivity(SHCI_EraseActivity_t erase_activity)
SHCI_C2_FLASH_EraseActivity.
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.