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: 平台异常处理
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
87 /* bfgx */
88 BFGX_BEATHEART_TIMEOUT = 0, /* 心跳超时 */
89 BFGX_LASTWORD_PANIC = 1, /* CPU挂死,临终遗言 */
90 BFGX_TIMER_TIMEOUT = 2, /* 定时器超时 */
91 BFGX_ARP_TIMEOUT = 3, /* arp verifier超时,有发无收 */
94
95 /* wifi */
96 WIFI_WATCHDOG_TIMEOUT = 6, /* 看门狗超时 */
99 WIFI_DEVICE_PANIC = 9, /* wcpu arm exception */
100 WIFI_TRANS_FAIL = 10, /* sdio read or write failed */
102
104};
105
113
122
129
133};
134
135struct uart_dump_wifi_info {
140};
141
142struct exception_mem_info {
147};
148
149struct wifi_dump_mem_info {
150 unsigned long mem_addr;
153};
154
155struct wifi_dfr_callback {
156 void (*wifi_recovery_complete)(void);
157 void (*notify_wifi_to_recovery)(void);
158};
159
160struct bfgx_reset_cmd {
163};
164
165struct excp_type_info_s {
169 ktime_t stime;
170 unsigned long long maxtime;
171};
172
173struct exception_info {
177
178 atomic_t bfgx_beat_flag;
179 atomic_t is_reseting_device;
180
181 struct workqueue_struct *plat_exception_rst_workqueue;
182 struct work_struct plat_exception_rst_work;
183 struct work_struct uart_store_wifi_mem_to_file_work;
184 struct timer_list bfgx_beat_timer;
185
186 struct completion wait_read_bfgx_stack;
187 struct completion wait_sdio_d2h_dump_ack;
188
189 struct bt_plat_s *ps_plat_d;
191
192 spinlock_t exception_spin_lock;
193
195
196 /* 下边的变量调试使用 */
199
200 /* wifi打开BCPU for sdio mem dump,该功能仅在调试时使用,默认关闭 */
202
203 struct completion wait_uart_read_wifi_mem;
204 struct completion wait_uart_halt_wcpu;
205
206 /* wifi异常触发 */
207 struct work_struct wifi_excp_worker;
208 struct work_struct wifi_excp_recovery_worker;
209 struct workqueue_struct *wifi_exception_workqueue;
211};
212
213struct sdio_dump_bcpu_buff {
217};
218
219typedef struct excp_info_str_s {
220 osal_u32 id;
221 char* name;
223/*****************************************************************************
224 4 EXTERN VARIABLE
225*****************************************************************************/
226
227#endif
228
WIFI_THREAD_ENUM
Definition plat_exception_rst.h:80
EXCEPTION_TYPE_ENUM
Definition plat_exception_rst.h:96
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
DUMP_CMD_TYPE
Definition plat_exception_rst.h:124
struct excp_info_str_s excp_info_str_t
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
@ THREAD_WIFI
Definition plat_exception_rst.h:81
@ WIFI_THREAD_BOTTOM
Definition plat_exception_rst.h:83
@ 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
unsigned char osal_u8
Definition osal_types.h:11
unsigned int osal_u32
Definition osal_types.h:13
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 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