WS63 SDK 文档 7021f4f@fbb_ws63
ws63 和 ws63e 解决方案的 SDK 文档
载入中...
搜索中...
未找到
plat_firmware.h
浏览该文件的文档.
1/*
2 * Copyright (c) HiSilicon (Shanghai) Technologies Co., Ltd. 2015-2023. All rights reserved.
3 * Description: plat_firmware.c头文件
4 * Create: 2015/04/08
5 */
6
7#ifndef __PLAT_FIRMWARE_H__
8#define __PLAT_FIRMWARE_H__
9
10/*****************************************************************************
11 1 头文件包含
12*****************************************************************************/
13#include "oal_plat_type.h"
14#include "oal_net.h"
15#if defined(_PRE_OS_VERSION) && defined(_PRE_OS_VERSION_LINUX) && (_PRE_OS_VERSION_LINUX == _PRE_OS_VERSION)
16#include "plat_exception_rst.h"
17#endif
18
19#ifdef __cplusplus
20#if __cplusplus
21extern "C" {
22#endif
23#endif
24
25/*****************************************************************************
26 2 宏定义
27*****************************************************************************/
28#define READ_MEG_TIMEOUT (2000) /* 200ms */
29#define READ_MEG_JUMP_TIMEOUT (15000) /* 15s */
30
31#define FILE_CMD_WAIT_TIME_MIN (5000) /* 5000us */
32#define FILE_CMD_WAIT_TIME_MAX (5100) /* 5100us */
33
34#define SEND_BUF_LEN (520)
35#define RECV_BUF_LEN (512)
36#define VERSION_LEN (64)
37
38#define READ_CFG_BUF_LEN (2048)
39
40#define DOWNLOAD_CMD_LEN (32)
41#define DOWNLOAD_CMD_PARA_LEN (800)
42
43#define HOST_DEV_TIMEOUT (3)
44#define INT32_STR_LEN (32)
45
46#define SHUTDOWN_TX_CMD_LEN (64)
47
48#define CMD_JUMP_EXEC_RESULT_SUCC (0)
49#define CMD_JUMP_EXEC_RESULT_FAIL (1)
50
51#define WIFI_MODE_DISABLE (0)
52#define WIFI_MODE_2G (1)
53#define WIFI_MODE_5G (2)
54#define WIFI_MODE_2G_5G (3)
55
56#define SOFT_WCPU_EN_ADDR "0x50000c00"
57#define SOFT_BCPU_EN_ADDR "0x50000c04"
58#define BCPU_DE_RESET_ADDR "0x50000094"
59
60/* 以下是发往device命令的关键字 */
61#define VER_CMD_KEYWORD "VERSION"
62#define JUMP_CMD_KEYWORD "JUMP"
63#define FILES_CMD_KEYWORD "FILES"
64#define SETPM_CMD_KEYWORD "SETPM"
65#define SETBUCK_CMD_KEYWORD "SETBUCK"
66#define SETSYSLDO_CMD_KEYWORD "SETSYSLDO"
67#define SETNFCRETLDO_CMD_KEYWORD "SETNFCRETLDO"
68#define SETPD_CMD_KEYWORD "SETPD"
69#define SETNFCCRG_CMD_KEYWORD "SETNFCCRG"
70#define SETABB_CMD_KEYWORD "SETABB"
71#define SETTCXODIV_CMD_KEYWORD "SETTCXODIV"
72#define RMEM_CMD_KEYWORD "READM"
73#define WMEM_CMD_KEYWORD "WRITEM"
74#define QUIT_CMD_KEYWORD "QUIT"
75
76/* 以下命令字不会发往device,用于控制加载流程,但是会体现在cfg文件中 */
77#define SLEEP_CMD_KEYWORD "SLEEP"
78#define CALI_COUNT_CMD_KEYWORD "CALI_COUNT"
79#define CALI_BFGX_DATA_CMD_KEYWORD "CALI_BFGX_DATA"
80#define SHUTDOWN_WIFI_CMD_KEYWORD "SHUTDOWN_WIFI"
81#define SHUTDOWN_BFGX_CMD_KEYWORD "SHUTDOWN_BFGX"
82
83/* 以下是device对命令执行成功返回的关键字,host收到一下关键字则命令执行成功 */
84#define MSG_FROM_DEV_WRITEM_OK "WRITEM OK"
85#define MSG_FROM_DEV_READM_OK ""
86#define MSG_FROM_DEV_FILES_OK "FILES OK"
87#define MSG_FROM_DEV_READY_OK "READY"
88#define MSG_FROM_DEV_JUMP_OK "JUMP OK"
89#define MSG_FROM_DEV_SET_OK "SET OK"
90#define MSG_FROM_DEV_QUIT_OK ""
91
92/* 以下是cfg文件配置命令的参数头,一条合法的cfg命令格式为:参数头+命令关键字(QUIT命令除外) */
93#define FILE_TYPE_CMD_KEY "ADDR_FILE_"
94#define NUM_TYPE_CMD_KEY "PARA_"
95
96#define COMPART_KEYWORD ' '
97#define CMD_LINE_SIGN ';'
98
99#define CFG_INFO_RESERVE_LEN (8)
100
101#define FILE_COUNT_PER_SEND (1)
102#define MIN_FIRMWARE_FILE_TX_BUF_LEN (4096)
103#define MAX_FIRMWARE_FILE_TX_BUF_LEN (512 * 1024)
104#define MAX_FIRMWARE_FILE_RX_BUF_LEN (128 * 1024) // 512
105#define MAX_PACKAGE_SIZE_INI 8
106
107/*****************************************************************************
108 3 枚举定义
109*****************************************************************************/
110#ifndef SUCC
111#define SUCC 0
112#endif
113
114#ifndef EFAIL
115#define EFAIL 1
116#endif
117
119 ERROR_TYPE_CMD = 0, /* 错误的命令 */
120 FILE_TYPE_CMD, /* 下载文件的命令 */
121 NUM_TYPE_CMD, /* 下载配置参数的命令 */
122 QUIT_TYPE_CMD, /* 退出命令 */
123 SHUTDOWN_WIFI_TYPE_CMD, /* SHUTDOWN WCPU命令 */
124 SHUTDOWN_BFGX_TYPE_CMD /* SHUTDOWN BCPU命令 */
126
127/*
128* 1.首次开机时,使用BT_AND_WIFI_CFG,完成首次开机校准,host保存校准数据,完成后device下电
129* 2.deivce下电状态,开wifi,使用BT_AND_WIFI_CFG
130* 3.deivce下电状态,开bt,使用BT_CFG
131* 4.bt开启,再开wifi,使用WIFI_CFG
132* 5.wifi开启,再开bt,通过sdio解复位BCPU
133*/
135 BT_AND_WIFI_CFG = 0, /* 加载BFGIN和wifi fimware的命令数组index,执行独立校准 */
136 WIFI_CFG, /* 只加载wifi firmware的命令数组索引,执行独立校准 */
137 BT_CFG, /* 只加载bfgx firmware的命令数组索引,不执行独立校准 */
138 RAM_REG_TEST_CFG, /* 产线测试mem reg遍历使用 */
139
142
148/*****************************************************************************
149 4 全局变量定义
150*****************************************************************************/
151
152
153/*****************************************************************************
154 5 消息头定义
155*****************************************************************************/
156
157
158/*****************************************************************************
159 6 消息定义
160*****************************************************************************/
161
162
163/*****************************************************************************
164 7 STRUCT定义
165*****************************************************************************/
171
172typedef struct _firmware_globals_st {
173 osal_s32 al_count[CFG_FILE_TOTAL]; /* 存储每个cfg文件解析后有效的命令个数 */
174 cmd_type_struct *apst_cmd[CFG_FILE_TOTAL]; /* 存储每个cfg文件的有效命令 */
175 osal_u8 cfg_version[VERSION_LEN]; /* 存储cfg文件中配置的版本号信息 */
176 osal_u8 device_version[VERSION_LEN]; /* 存储加载时device侧上报的版本号信息 */
178
179struct wifi_dump_mem_info {
180 unsigned long mem_addr;
183};
184/*****************************************************************************
185 8 UNION定义
186*****************************************************************************/
187
188/*****************************************************************************
189 9 OTHERS定义
190*****************************************************************************/
191typedef struct file os_kernel_file_stru;
192
193/*****************************************************************************
194 10 函数声明
195*****************************************************************************/
200extern osal_s32 wifi_device_mem_dump(struct wifi_dump_mem_info *mem_dump_info, osal_u32 count);
205
206#ifdef __cplusplus
207#if __cplusplus
208}
209#endif
210#endif
211
212#endif /* end of plat_firmware.h */
@ QUIT_TYPE_CMD
Definition plat_firmware.h:88
@ FILE_TYPE_CMD
Definition plat_firmware.h:86
@ NUM_TYPE_CMD
Definition plat_firmware.h:87
@ ERROR_TYPE_CMD
Definition plat_firmware.h:85
osal_s32 read_device_reg16(osal_u32 address, osal_s16 *value)
osal_s32 firmware_download_etc(void)
osal_s32 write_device_reg16(osal_u32 address, osal_s16 value)
osal_s32 wifi_device_mem_dump(struct wifi_dump_mem_info *mem_dump_info, osal_u32 count)
struct file os_kernel_file_stru
Definition plat_firmware.h:104
FIRMWARE_CFG_FILE_ENUM
Definition plat_firmware.h:134
@ BT_CFG
Definition plat_firmware.h:137
@ BT_AND_WIFI_CFG
Definition plat_firmware.h:135
@ WIFI_CFG
Definition plat_firmware.h:136
@ CFG_FILE_TOTAL
Definition plat_firmware.h:140
@ RAM_REG_TEST_CFG
Definition plat_firmware.h:138
struct cmd_type_st cmd_type_struct
#define VERSION_LEN
Definition plat_firmware.h:36
FIRMWARE_SUBSYS_ENUM
Definition plat_firmware.h:143
@ DEV_WCPU
Definition plat_firmware.h:144
@ DEV_BCPU
Definition plat_firmware.h:145
@ DEV_CPU_BUTT
Definition plat_firmware.h:146
osal_s32 firmware_get_cfg_etc(osal_u8 *CfgPatch, osal_u32 index)
#define DOWNLOAD_CMD_LEN
Definition plat_firmware.h:40
osal_s32 firmware_cfg_init_etc(void)
struct _firmware_globals_st firmware_globals_st
#define DOWNLOAD_CMD_PARA_LEN
Definition plat_firmware.h:41
osal_s32 firmware_cfg_clear_etc(void)
osal_s32 get_device_test_mem(void)
osal_s32 is_device_mem_test_succ(void)
FIRMWARE_CFG_CMD_ENUM
Definition plat_firmware.h:118
@ SHUTDOWN_WIFI_TYPE_CMD
Definition plat_firmware.h:123
@ SHUTDOWN_BFGX_TYPE_CMD
Definition plat_firmware.h:124
int osal_s32
Definition osal_types.h:19
unsigned char osal_u8
Definition osal_types.h:11
short osal_s16
Definition osal_types.h:18
unsigned int osal_u32
Definition osal_types.h:13
Definition plat_firmware.h:172
osal_u8 cfg_version[(64)]
Definition plat_firmware.h:175
cmd_type_struct * apst_cmd[CFG_FILE_TOTAL]
Definition plat_firmware.h:174
osal_s32 al_count[CFG_FILE_TOTAL]
Definition plat_firmware.h:173
osal_u8 device_version[(64)]
Definition plat_firmware.h:176
Definition plat_firmware.h:166
osal_u8 cmd_para[(800)]
Definition plat_firmware.h:169
osal_s32 cmd_type
Definition plat_firmware.h:167
osal_u8 cmd_name[(32)]
Definition plat_firmware.h:168
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