WS63 SDK 文档 7021f4f@fbb_ws63
ws63 和 ws63e 解决方案的 SDK 文档
载入中...
搜索中...
未找到
plat_exception_rst.h
浏览该文件的文档.
1/*
2 * Copyright (c) HiSilicon (Shanghai) Technologies Co., Ltd. 2015-2023. All rights reserved.
3 * Description: plat_exception_rst.h
4 * Create: 2015/04/08
5 */
6
7#ifndef __PLAT_EXCEPTION_RST_H__
8#define __PLAT_EXCEPTION_RST_H__
9/*****************************************************************************
10 1 Include other Head file
11*****************************************************************************/
12#include "oal_plat_type.h"
13#include "oal_net.h"
14/*****************************************************************************
15 2 Define macro
16*****************************************************************************/
17#define WAIT_BFGX_READ_STACK_TIME (10000) /* 等待bfgx读栈操作完成的时间,5000毫秒 */
18#define BFGX_BEAT_TIME (3) /* bfgx心跳超时时间为3秒钟 */
19#define WIFI_DUMP_BCPU_TIMEOUT (1000) /* wifi dump bcpu数据等待时间 */
20
21#define PLAT_EXCEPTION_RESET_IDLE (0) /* plat 没有在处理异常 */
22#define PLAT_EXCEPTION_RESET_BUSY (1) /* plat 正在处理异常 */
23
24#define BFGX_NOT_RECV_BEAT_INFO (0) /* host没有收到心跳消息 */
25#define BFGX_RECV_BEAT_INFO (1) /* host收到心跳消息 */
26
27#define RF_TEMERATURE_NORMAL (0) /* rf温度正常 */
28#define RF_TEMERATURE_OVERHEAT (1) /* rf温度过热 */
29
30#define EXCEPTION_SUCCESS (0)
31#define EXCEPTION_FAIL (1)
32
33#define BEAT_TIMER_DELETE (0)
34#define BEAT_TIMER_RESET (1)
35
36#define DFR_TEST_ENABLE (0)
37#define DFR_TEST_DISABLE (1)
38
39#define BFGX_MEM_DUMP_BLOCK_COUNT (2) /* BFGX 上报的内存块个数 */
40#define UART_READ_WIFI_MEM_TIMEOUT (10000)
41#define UART_HALT_WCPU_TIMEOUT (500)
42
43#define BFGX_MAX_RESET_CMD_LEN (9)
44#define BT_RESET_CMD_LEN (4)
45#define FM_RESET_CMD_LEN (1)
46#define GNSS_RESET_CMD_LEN (9)
47#define IR_RESET_CMD_LEN (4)
48#define NFC_RESET_CMD_LEN (4)
49
50#define SDIO_STORE_BFGX_REGMEM "readm_bfgx_sdio"
51#define UART_STORE_BFGX_STACK "readm_bfgx_uart"
52#define UART_STORE_WIFI_MEM "readm_wifi_uart"
53#define SDIO_STORE_WIFI_MEM "readm_wifi_sdio"
54
55/* nfc buffer参数 */
56#define OML_STATUS_ADD_LENGTH 13
57#define NFCLOGLEN (4 * sizeof(osal_u32) + OML_STATUS_ADD_LENGTH)
58#define NFCLOGNUM (100)
59#define OMLNFCDATABUFFLEN (NFCLOGNUM * NFCLOGLEN)
60#define NFC_SEND_LEN_LIMIT (NFCLOGNUM*NFCLOGLEN)
61
62#define MEMDUMP_ROTATE_QUEUE_MAX_LEN (10)
63#define ARP_TIMEOUT_MAX_TIMES (10)
64/*****************************************************************************
65 3 STRUCT DEFINE
66*****************************************************************************/
72
79
85
95
97 /* bfgx */
98 BFGX_BEATHEART_TIMEOUT = 0, /* 心跳超时 */
99 BFGX_LASTWORD_PANIC = 1, /* CPU挂死,临终遗言 */
100 BFGX_TIMER_TIMEOUT = 2, /* 定时器超时 */
101 BFGX_ARP_TIMEOUT = 3, /* arp verifier超时,有发无收 */
104
105 /* wifi */
106 WIFI_WATCHDOG_TIMEOUT = 6, /* 看门狗超时 */
109 WIFI_DEVICE_PANIC = 9, /* wcpu arm exception */
110 WIFI_TRANS_FAIL = 10, /* sdio read or write failed */
112
114};
115
123
138
143
150
157
163
168
180
185
188
189 struct workqueue_struct *plat_exception_rst_workqueue;
190 struct work_struct plat_exception_rst_work;
192 struct timer_list bfgx_beat_timer;
193
194 struct completion wait_read_bfgx_stack;
195 struct completion wait_sdio_d2h_dump_ack;
196
197 struct bt_plat_s *ps_plat_d;
199
201
203
204 /* 下边的变量调试使用 */
207
208 /* wifi打开BCPU for sdio mem dump,该功能仅在调试时使用,默认关闭 */
210
211 struct completion wait_uart_read_wifi_mem;
212 struct completion wait_uart_halt_wcpu;
213
214 /* wifi异常触发 */
215 struct work_struct wifi_excp_worker;
216 struct work_struct wifi_excp_recovery_worker;
217 struct workqueue_struct *wifi_exception_workqueue;
219};
229/*****************************************************************************
230 4 EXTERN VARIABLE
231*****************************************************************************/
232
233/*****************************************************************************
234 5 全局变量定义
235*****************************************************************************/
236
237/*****************************************************************************
238 6 EXTERN FUNCTION
239*****************************************************************************/
246 osal_s32 excep_type);
263#endif
264
osal_s32 wifi_exception_mem_dump_etc(struct wifi_dump_mem_info *mem_dump_info, osal_u32 count, osal_s32 excep_type)
WIFI_THREAD_ENUM
Definition plat_exception_rst.h:80
@ THREAD_WIFI
Definition plat_exception_rst.h:81
@ WIFI_THREAD_BOTTOM
Definition plat_exception_rst.h:83
osal_s32 bfgx_subsystem_reset_etc(void)
EXCEPTION_TYPE_ENUM
Definition plat_exception_rst.h:96
osal_s32 wifi_open_bcpu_set_etc(osal_u8 enable)
osal_s32 plat_exception_reset_exit_etc(void)
osal_s32 exception_bcpu_dump_recv_etc(osal_u8 *str, oal_netbuf_stru *netbuf)
BFGX_THREAD_ENUM
Definition plat_exception_rst.h:86
@ THREAD_IR
Definition plat_exception_rst.h:90
@ THREAD_GNSS
Definition plat_exception_rst.h:89
@ BFGX_THREAD_BOTTOM
Definition plat_exception_rst.h:93
@ THREAD_BT
Definition plat_exception_rst.h:87
@ THREAD_NFC
Definition plat_exception_rst.h:91
@ THREAD_FM
Definition plat_exception_rst.h:88
osal_s32 prepare_to_recv_bfgx_stack_etc(osal_u32 len)
osal_s32 plat_bt_exception_rst_register(struct bt_plat_s *data)
osal_s32 plat_wifi_exception_rst_register_etc(void *data)
osal_s32 plat_exception_reset_init_etc(void)
osal_s32 bfgx_system_reset_etc(void)
SUBSYSTEM_ENUM
Definition plat_exception_rst.h:73
@ SUBSYS_WIFI
Definition plat_exception_rst.h:74
@ SUBSYS_BFGX
Definition plat_exception_rst.h:75
@ SUBSYS_BOTTOM
Definition plat_exception_rst.h:77
osal_s32 wifi_exception_work_submit_etc(osal_u32 wifi_excp_type)
osal_s32 debug_sdio_read_bfgx_reg_and_mem_etc(osal_u32 which_mem)
void store_wifi_mem_to_file_etc(void)
DUMP_CMD_TYPE
Definition plat_exception_rst.h:124
osal_s32 get_exception_info_reference_etc(struct exception_info **exception_data)
osal_s32 uart_read_wifi_mem_etc(osal_u32 which_mem)
osal_s32 bfgx_recv_dev_mem_etc(osal_u8 *buf_ptr, osal_u16 count)
osal_s32 uart_recv_wifi_mem_etc(osal_u8 *buf_ptr, osal_u16 count)
struct excp_info_str_s excp_info_str_t
osal_s32 mod_beat_timer_etc(osal_u8 on)
osal_s32 plat_power_fail_exception_info_set_etc(osal_u32 subsys_type, osal_u32 exception_type)
osal_s32 is_bfgx_exception_etc(void)
excp_test_cfg_em
Definition plat_exception_rst.h:132
DFR_RST_SYSTEM_TYPE_E
Definition plat_exception_rst.h:67
@ DFR_SINGLE_SYS_RST
Definition plat_exception_rst.h:68
@ DFR_SYSTEM_RST_TYPE_BOTT
Definition plat_exception_rst.h:70
@ DFR_ALL_SYS_RST
Definition plat_exception_rst.h:69
UART_WIFI_MEM_DUMP
Definition plat_exception_rst.h:116
void plat_power_fail_process_done_etc(void)
osal_s32 uart_halt_wcpu_etc(void)
@ SDIO_DUMPBCPU_FAIL
Definition plat_exception_rst.h:101
@ WIFI_TRANS_FAIL
Definition plat_exception_rst.h:100
@ WIFI_WATCHDOG_TIMEOUT
Definition plat_exception_rst.h:96
@ BFGX_ARP_TIMEOUT
Definition plat_exception_rst.h:91
@ WIFI_WAKEUP_FAIL
Definition plat_exception_rst.h:98
@ EXCEPTION_TYPE_BOTTOM
Definition plat_exception_rst.h:103
@ BFGX_TIMER_TIMEOUT
Definition plat_exception_rst.h:90
@ BFGX_BEATHEART_TIMEOUT
Definition plat_exception_rst.h:88
@ BFGX_WAKEUP_FAIL
Definition plat_exception_rst.h:93
@ BFGX_POWERON_FAIL
Definition plat_exception_rst.h:92
@ WIFI_DEVICE_PANIC
Definition plat_exception_rst.h:99
@ WIFI_POWERON_FAIL
Definition plat_exception_rst.h:97
@ BFGX_LASTWORD_PANIC
Definition plat_exception_rst.h:89
#define BFGX_MAX_RESET_CMD_LEN
Definition plat_exception_rst.h:43
@ CMD_READM_BFGX_UART
Definition plat_exception_rst.h:117
@ CMD_READM_BFGX_SDIO
Definition plat_exception_rst.h:118
@ CMD_READM_WIFI_UART
Definition plat_exception_rst.h:116
@ CMD_DUMP_BUFF
Definition plat_exception_rst.h:120
@ CMD_READM_WIFI_SDIO
Definition plat_exception_rst.h:115
@ BFGX_POWEOFF_FAULT
Definition plat_exception_rst.h:125
@ WIFI_WKUP_FAULT
Definition plat_exception_rst.h:126
@ EXCP_TEST_CFG_BOTT
Definition plat_exception_rst.h:127
@ BFGX_POWEON_FAULT
Definition plat_exception_rst.h:124
@ DFR_SYSTEM_RST_TYPE_BOTT
Definition plat_exception_rst.h:70
@ WIFI_PRIV_REG
Definition plat_exception_rst.h:108
@ UART_WIFI_MEM_DUMP_BOTTOM
Definition plat_exception_rst.h:111
@ WIFI_MEM
Definition plat_exception_rst.h:109
@ WIFI_PUB_REG
Definition plat_exception_rst.h:107
int osal_s32
Definition osal_types.h:19
unsigned char osal_u8
Definition osal_types.h:11
unsigned int osal_u32
Definition osal_types.h:13
unsigned short osal_u16
Definition osal_types.h:12
Definition plat_exception_rst.h:169
osal_u32 len
Definition plat_exception_rst.h:170
osal_u8 cmd[(9)]
Definition plat_exception_rst.h:171
Definition plat_exception_rst.h:181
struct completion wait_uart_halt_wcpu
Definition plat_exception_rst.h:212
struct timer_list bfgx_beat_timer
Definition plat_exception_rst.h:192
osal_u32 subsys_type
Definition plat_exception_rst.h:183
struct wifi_dfr_callback * wifi_callback
Definition plat_exception_rst.h:198
struct work_struct plat_exception_rst_work
Definition plat_exception_rst.h:190
atomic_t is_reseting_device
Definition plat_exception_rst.h:187
struct completion wait_uart_read_wifi_mem
Definition plat_exception_rst.h:211
struct bt_plat_s * ps_plat_d
Definition plat_exception_rst.h:197
struct workqueue_struct * wifi_exception_workqueue
Definition plat_exception_rst.h:217
osal_u32 exception_reset_enable
Definition plat_exception_rst.h:182
struct completion wait_read_bfgx_stack
Definition plat_exception_rst.h:194
struct work_struct wifi_excp_worker
Definition plat_exception_rst.h:215
osal_u32 subsystem_rst_en
Definition plat_exception_rst.h:206
struct work_struct uart_store_wifi_mem_to_file_work
Definition plat_exception_rst.h:191
struct work_struct wifi_excp_recovery_worker
Definition plat_exception_rst.h:216
osal_u32 excetion_type
Definition plat_exception_rst.h:184
osal_u32 wifi_open_bcpu_enable
Definition plat_exception_rst.h:209
struct completion wait_sdio_d2h_dump_ack
Definition plat_exception_rst.h:195
osal_u32 debug_beat_flag
Definition plat_exception_rst.h:205
osal_u32 wifi_excp_type
Definition plat_exception_rst.h:218
spinlock_t exception_spin_lock
Definition plat_exception_rst.h:200
atomic_t bfgx_beat_flag
Definition plat_exception_rst.h:186
struct excp_type_info_s etype_info[EXCEPTION_TYPE_BOTTOM]
Definition plat_exception_rst.h:202
struct workqueue_struct * plat_exception_rst_workqueue
Definition plat_exception_rst.h:189
Definition plat_exception_rst.h:151
osal_u8 * file_name
Definition plat_exception_rst.h:155
osal_u8 * exception_mem_addr
Definition plat_exception_rst.h:152
osal_u32 recved_size
Definition plat_exception_rst.h:154
osal_u32 total_size
Definition plat_exception_rst.h:153
Definition plat_exception_rst.h:225
osal_u32 id
Definition plat_exception_rst.h:226
char * name
Definition plat_exception_rst.h:227
Definition plat_exception_rst.h:173
ktime_t stime
Definition plat_exception_rst.h:177
osal_u32 fail_cnt
Definition plat_exception_rst.h:175
osal_u32 rst_type_cnt[DFR_SYSTEM_RST_TYPE_BOTT]
Definition plat_exception_rst.h:176
osal_u32 excp_cnt
Definition plat_exception_rst.h:174
unsigned long long maxtime
Definition plat_exception_rst.h:178
Definition plat_exception_rst.h:220
osal_u8 * mem_addr
Definition plat_exception_rst.h:221
osal_u32 data_limit
Definition plat_exception_rst.h:222
osal_u32 data_len
Definition plat_exception_rst.h:223
Definition oal_skbuff.h:82
Definition plat_exception_rst.h:144
osal_u32 cmd
Definition plat_exception_rst.h:145
osal_u32 block_count
Definition plat_exception_rst.h:147
struct uart_dump_wifi_mem_info * block_info
Definition plat_exception_rst.h:148
osal_u32 total_size
Definition plat_exception_rst.h:146
Definition plat_exception_rst.h:139
osal_u8 * file_name
Definition plat_exception_rst.h:140
osal_u32 size
Definition plat_exception_rst.h:141
Definition plat_exception_rst.h:164
void(* notify_wifi_to_recovery)(void)
Definition plat_exception_rst.h:166
void(* wifi_recovery_complete)(void)
Definition plat_exception_rst.h:165
Definition plat_exception_rst.h:158
unsigned long mem_addr
Definition plat_exception_rst.h:159
osal_u32 size
Definition plat_exception_rst.h:160
osal_u8 * file_name
Definition plat_exception_rst.h:161
Definition hal_uart_v151_regs_def.h:38