WS63 SDK 文档 7021f4f@fbb_ws63
ws63 和 ws63e 解决方案的 SDK 文档
载入中...
搜索中...
未找到
flash_config_info.h
浏览该文件的文档.
1
9#ifndef FLASH_INFORMATION_H
10#define FLASH_INFORMATION_H
11
17#include "flash_mxic_config.h"
18#include "flash_others_config.h"
22
23static const flash_cmd_exe_t g_w25q64_lock_image_region_cmd[] = {
24 { FLASH_CMD_TYPE_CMD, HAL_SPI_FRAME_FORMAT_QUAD, 1, { FLASH_WREN_CMD } }, /* Write enable. */
25 { FLASH_CMD_TYPE_CMD, HAL_SPI_FRAME_FORMAT_QUAD, 2, { 0x01, 0x1C } }, /* Write status reg1. */
26 { FLASH_CMD_TYPE_PROCESSING, HAL_SPI_FRAME_FORMAT_QUAD, 3, { FLASH_RDSR1_CMD, 0, 0 } }, /* Wait config done. */
28};
29
30static const flash_cmd_exe_t g_w25q64_unlock_image_region_cmd[] = {
31 { FLASH_CMD_TYPE_CMD, HAL_SPI_FRAME_FORMAT_QUAD, 1, { FLASH_WREN_CMD } }, /* Write enable. */
32 { FLASH_CMD_TYPE_CMD, HAL_SPI_FRAME_FORMAT_QUAD, 2, { 0x01, 0x00 } }, /* Write status reg1. */
33 { FLASH_CMD_TYPE_PROCESSING, HAL_SPI_FRAME_FORMAT_QUAD, 3, { FLASH_RDSR1_CMD, 0, 0 } }, /* Wait config done. */
35};
36
68
69static const flash_device_parameter_t g_flash_device_parameter[FLASH_MANUFACTURER_MAX] = {
70 { FLASH_MANUFACTURER_MXIC_MX25R32, FLASH_SIZE_4MB, 0xA5, 0xAA, WAIT_CYCLES_4, 0x2B, 0xB0, 0x30,
71 g_mxic_mx25rxx_enter_qspi_mode_cmd, NULL, &g_mxic_mx25rxx_config },
72 { FLASH_MANUFACTURER_MXIC_MX25R64, FLASH_SIZE_8MB, 0xA5, 0xAA, WAIT_CYCLES_4, 0x2B, 0xB0, 0x30,
73 g_mxic_mx25rxx_enter_qspi_mode_cmd, NULL, &g_mxic_mx25rxx_config },
74 { FLASH_MANUFACTURER_MXIC_MX25U64, FLASH_SIZE_8MB, 0xA5, 0xAA, WAIT_CYCLES_4, 0x2B, 0xB0, 0x30,
75 g_mxic_mx25uxx_enter_qspi_mode_cmd, NULL, &g_mxic_mx25uxx_config },
76 { FLASH_MANUFACTURER_MXIC_MX25U128, FLASH_SIZE_16MB, 0xA5, 0xAA, WAIT_CYCLES_4, 0x2B, 0xB0, 0x30,
77 g_mxic_mx25uxx_enter_qspi_mode_cmd, NULL, &g_mxic_mx25uxx_config },
78 { FLASH_MANUFACTURER_WINBOND_W25Q32, FLASH_SIZE_4MB, 0x20, 0xFF, WAIT_CYCLES_4, 0x05, 0x75, 0x7A,
79 g_winbond_w25qxx_enter_qspi_mode_cmd, NULL, &g_winbond_w25qxx_config },
80 { FLASH_MANUFACTURER_WINBOND_W25Q64, FLASH_SIZE_8MB, 0x20, 0xFF, WAIT_CYCLES_4, 0x35, 0x75, 0x7A,
81 g_winbond_w25qxx_enter_qspi_mode_cmd, NULL, &g_winbond_w25qxx_config },
83 g_winbond_w25qxx_enter_qspi_mode_cmd, NULL, &g_winbond_w25qxx_config },
85 g_winbond_w25qxx_enter_qspi_mode_cmd, NULL, &g_winbond_w25qxx_config },
87 g_winbond_w25q256_enter_qspi_mode_cmd, NULL, &g_winbond_w25q256_config },
89 g_micro_mt25qu128_enter_qspi_mode_cmd, g_micro_mt25qu128_enter_xip_mode_cmd, &g_micro_mt25qu128_config },
91 g_micro_mt25qu256_enter_qspi_mode_cmd, g_micro_mt25qu256_enter_xip_mode_cmd, &g_micro_mt25qu256_config },
93 g_gigadevice_gd25wq64_enter_qspi_mode_cmd, NULL, &g_gigadevice_gd25wq64_config },
95 g_gigadevice_gd25wq64_enter_qspi_mode_cmd, NULL, &g_gigadevice_gd25le64_config },
97 g_gigadevice_gd25lq128_enter_qspi_mode_cmd, NULL, &g_gigadevice_gd25lx_config },
99 g_gigadevice_gd25lq256_enter_qspi_mode_cmd, NULL, &g_gigadevice_gd25lq256_config },
100 { FLASH_MANUFACTURER_DOSILICON_FM25M64, FLASH_SIZE_8MB, 0xA0, 0x00, WAIT_CYCLES_2, 0x35, 0x75, 0x7A,
101 g_dosilicon_fm25m64_enter_qspi_mode_cmd, NULL, &g_dosilicon_fm25m64_config },
103 g_gigadevice_gd25lq32d_enter_qspi_mode_cmd, NULL, &g_gigadevice_gd25lx_config },
105 g_dosilicon_fm25m64_enter_qspi_mode_cmd, NULL, &g_dosilicon_fm25m4aa_config },
106 { FLASH_MANUFACTURER_PUYA_P25Q32LX, FLASH_SIZE_32MB, 0x20, 0xFF, WAIT_CYCLES_4, 0x05, 0x75, 0x7A,
107 g_puya_p25q32lc_enter_qspi_mode_cmd, NULL, &g_puya_p25q32lc_config },
109 g_adesto_at25sl128a_enter_qspi_mode_cmd, NULL, &g_adesto_at25sl128a_config },
110 { FLASH_MANUFACTURER_MXIC_MX25U32, FLASH_SIZE_4MB, 0xA5, 0xAA, WAIT_CYCLES_4, 0x2B, 0xB0, 0x30,
111 g_mxic_mx25u32_enter_qspi_mode_cmd, NULL, &g_mxic_mx25u32_config },
112 { FLASH_MANUFACTURER_MXIC_MX25U12843, FLASH_SIZE_16MB, 0xA5, 0xAA, WAIT_CYCLES_4, 0x2B, 0xB0, 0x30,
113 g_mxic_mx25uxx_enter_qspi_mode_cmd, NULL, &g_mxic_mx25uxx_config },
115 g_mxic_en25sxxa_enter_qspi_mode_cmd, NULL, &g_mxic_en25sxxa_config },
117 g_dosilicon_ds25m4ab_enter_qspi_mode_cmd, NULL, &g_dosilicon_ds25m4ab_config },
118 { FLASH_MANUFACTURER_ELITE_EN25S32A, FLASH_SIZE_4MB, 0x20, 0x0, WAIT_CYCLES_4, 0x05, 0x75, 0x7A,
119 g_mxic_en25sxxa_enter_qspi_mode_cmd, NULL, &g_mxic_en25sxxa_config },
120 { FLASH_MANUFACTURER_XTX_XT25Q64D, FLASH_SIZE_8MB, 0x20, 0x0, WAIT_CYCLES_6, 0x35, 0x75, 0x7A,
121 g_xtx_xt25qxxd_enter_qspi_mode_cmd, NULL, &g_xtx_xt25qxxd_config },
122 { FLASH_MANUFACTURER_XTX_XT25Q128D, FLASH_SIZE_16MB, 0x20, 0x0, WAIT_CYCLES_6, 0x35, 0x75, 0x7A,
123 g_xtx_xt25qxxd_enter_qspi_mode_cmd, NULL, &g_xtx_xt25qxxd_config },
124 { FLASH_MANUFACTURER_PUYA_P25Q64SL, FLASH_SIZE_8MB, 0x20, 0xFF, WAIT_CYCLES_4, 0x05, 0x75, 0x7A,
125 g_puya_p25q32lc_enter_qspi_mode_cmd, NULL, &g_puya_p25q32lc_config },
126 { FLASH_MANUFACTURER_MXIC_MX25U256, FLASH_SIZE_32MB, 0xA5, 0xAA, WAIT_CYCLES_4, 0x2B, 0xB0, 0x30,
127 g_mxic_mx25uxx_enter_qspi_mode_cmd, NULL, &g_mxic_mx25uxx_config },
128 { FLASH_MANUFACTURER_MXIC_MX25R80, FLASH_SIZE_8MB, 0xA5, 0xAA, WAIT_CYCLES_4, 0x2B, 0xB0, 0x30,
129 g_mxic_mx25rxx_enter_qspi_mode_cmd, NULL, &g_mxic_mx25rxx_config },
130};
131
132static const uint32_t g_xip_use_cmd_mode[] = {
146};
147
148static flash_cmd_exe_t g_winbond_w25qxx_set_qe_cmd[] = {
149 /* Check QE bit. */
151 /* Write enable. */
153 /* Write status register-2 to 0x2, set QE bit. */
155 /* Wait until the configuration is complete. */
157 /* Check QE bit. */
159 /* The END command, will not be executed and need return. */
161};
162
163static flash_cmd_exe_t g_dosilicon_fm25m64_set_qe_cmd[] = {
164 /* Check QE bit. */
166 /* Write enable. */
168 /* Write status register-2 to 0x2, set QE bit. */
169 { FLASH_CMD_TYPE_CMD, HAL_SPI_FRAME_FORMAT_STANDARD, 3, { 0x01, 0x00, 0x02 } },
170 /* Wait until the configuration is complete. */
172 /* Check QE bit. */
174 /* The END command, will not be executed and need return. */
176};
177
178static flash_cmd_exe_t g_winbond_en25sx128a_set_qe_cmd[] = {
179 /* Check QE bit. */
181 /* Write enable. */
183 /* Write status register-2 to 0x2, set QE bit. */
185 /* Wait until the configuration is complete. */
187 /* Check QE bit. */
189 /* The END command, will not be executed and need return. */
191};
192
193static flash_cmd_exe_t g_xtx_xt25q128d_set_qe_cmd[] = {
194 /* Check QE bit. */
196 /* Write enable. */
198 /* Write status register-2 to 0x2, set QE bit. */
200 /* Wait until the configuration is complete. */
202 /* Check QE bit. */
204 /* The END command, will not be executed and need return. */
206};
207
208static const flash_qe_config_t g_flash_need_set_qe[] = {
209 {FLASH_MANUFACTURER_WINBOND_W25Q32, g_winbond_w25qxx_set_qe_cmd},
210 {FLASH_MANUFACTURER_WINBOND_W25Q64, g_winbond_w25qxx_set_qe_cmd},
211 {FLASH_MANUFACTURER_WINBOND_W25Q128, g_winbond_w25qxx_set_qe_cmd},
212 {FLASH_MANUFACTURER_WINBOND_W25Q128JW, g_winbond_w25qxx_set_qe_cmd},
213 {FLASH_MANUFACTURER_DOSILICON_FM25M64, g_dosilicon_fm25m64_set_qe_cmd},
214 {FLASH_MANUFACTURER_DOSILICON_FM25M4AA, g_dosilicon_fm25m64_set_qe_cmd},
215 {FLASH_MANUFACTURER_DOSILICON_DS25M4AB, g_winbond_w25qxx_set_qe_cmd},
216 {FLASH_MANUFACTURER_ELITE_EN25SX128A, g_winbond_en25sx128a_set_qe_cmd},
217 {FLASH_MANUFACTURER_XTX_XT25Q128D, g_xtx_xt25q128d_set_qe_cmd},
218};
219
220#define FLASH_WIP (bit(0))
221#define FLASH_WEL (bit(1))
222#define FLASH_MXIC_SUSPEND (bit(2) | bit(3))
223#define FLASH_MICRON_SUSPEND (bit(7))
224#define FLASH_WINBOND_SUSPEND (bit(7))
225#define FLASH_GIGADEVICE_SUSPEND (bit(0))
226#define FLASH_DOSILICON_SUSPEND (bit(7))
227
231#endif
#define NULL
Definition common_def.h:21
@ FLASH_CMD_TYPE_PROCESSING
Definition flash_config_info.h:40
@ FLASH_CMD_TYPE_END
Definition flash_config_info.h:42
@ FLASH_CMD_TYPE_CMD
Definition flash_config_info.h:38
#define FLASH_MANUFACTURER_MAX
Definition flash_config_info.c:31
#define FLASH_MANUFACTURER_MICRON_MT25QU128
Definition flash_common_config.h:90
#define FLASH_MANUFACTURER_ELITE_EN25S32A
Definition flash_common_config.h:115
#define FLASH_MANUFACTURER_MXIC_MX25R80
Definition flash_common_config.h:76
#define FLASH_MANUFACTURER_WINBOND_W25Q32
Definition flash_common_config.h:83
#define FLASH_MANUFACTURER_WINBOND_W25Q256
Definition flash_common_config.h:89
#define FLASH_MANUFACTURER_MXIC_MX25U32
Definition flash_common_config.h:110
#define FLASH_MANUFACTURER_MXIC_MX25R64
Definition flash_common_config.h:78
#define FLASH_MANUFACTURER_WINBOND_W25Q128JW
Definition flash_common_config.h:88
#define FLASH_MANUFACTURER_PUYA_P25Q32LX
Definition flash_common_config.h:105
#define FLASH_MANUFACTURER_DOSILICON_FM25M64
Definition flash_common_config.h:99
#define FLASH_MANUFACTURER_GIGADEVICE_GD25LQ32D
Definition flash_common_config.h:101
#define FLASH_RDSR1_CMD
Definition flash_common_config.h:36
#define FLASH_SIZE_32MB
Definition flash_common_config.h:127
#define FLASH_MANUFACTURER_ELITE_EN25SX128A
Definition flash_common_config.h:112
#define WAIT_CYCLES_4
Definition flash_common_config.h:24
#define FLASH_MANUFACTURER_MXIC_MX25U256
Definition flash_common_config.h:111
#define FLASH_SIZE_8MB
Definition flash_common_config.h:125
#define FLASH_WREN_CMD
Definition flash_common_config.h:33
#define FLASH_MANUFACTURER_DOSILICON_FM25M4AA
Definition flash_common_config.h:103
#define FLASH_MANUFACTURER_GIGADEVICE_GD25LE64EX
Definition flash_common_config.h:95
#define FLASH_MANUFACTURER_DOSILICON_DS25M4AB
Definition flash_common_config.h:114
#define FLASH_MANUFACTURER_ADESTO_AT25SL128A
Definition flash_common_config.h:108
#define FLASH_MANUFACTURER_MXIC_MX25R32
Definition flash_common_config.h:77
#define FLASH_MANUFACTURER_MXIC_MX25U64
Definition flash_common_config.h:79
#define FLASH_SIZE_16MB
Definition flash_common_config.h:126
#define FLASH_MANUFACTURER_WINBOND_W25Q128
Definition flash_common_config.h:87
#define FLASH_MANUFACTURER_PUYA_P25Q64SL
Definition flash_common_config.h:106
#define FLASH_MANUFACTURER_XTX_XT25Q64D
Definition flash_common_config.h:116
#define FLASH_RDSR2_CMD
Definition flash_common_config.h:38
#define WAIT_CYCLES_6
Definition flash_common_config.h:26
#define FLASH_MANUFACTURER_MXIC_MX25U12843
Definition flash_common_config.h:81
#define FLASH_MANUFACTURER_GIGADEVICE_GD25WQ64
Definition flash_common_config.h:93
#define FLASH_MANUFACTURER_XTX_XT25Q128D
Definition flash_common_config.h:117
#define FLASH_MANUFACTURER_GIGADEVICE_GD25LX128
Definition flash_common_config.h:97
#define FLASH_SIZE_4MB
Definition flash_common_config.h:124
#define FLASH_MANUFACTURER_WINBOND_W25Q64
Definition flash_common_config.h:85
#define FLASH_MANUFACTURER_MICRON_MT25QU256
Definition flash_common_config.h:91
#define WAIT_CYCLES_2
Definition flash_common_config.h:22
#define FLASH_MANUFACTURER_GIGADEVICE_GD25LQ256
Definition flash_common_config.h:98
#define FLASH_MANUFACTURER_MXIC_MX25U128
Definition flash_common_config.h:80
@ FLASH_CMD_TYPE_CHECK
Definition flash_common_config.h:194
struct flash_device_parameter flash_device_parameter_t
flash 适配表。
@ HAL_SPI_FRAME_FORMAT_STANDARD
Definition hal_spi.h:214
@ HAL_SPI_FRAME_FORMAT_QUAD
Definition hal_spi.h:220
@ HAL_SPI_FRAME_FORMAT_MAX_NUM
Definition hal_spi.h:229
Flash 命令。
Definition flash_common_config.h:205
flash 适配表。
Definition flash_config_info.h:44
uint8_t exit_xip
Definition flash_config_info.h:51
flash_cmd_exe_t * enter_xip_mode_cmd
Definition flash_config_info.h:63
flash_qspi_xip_config_t * enter_xip_mode_config
Definition flash_config_info.h:65
uint8_t enter_xip
Definition flash_config_info.h:49
uint8_t security_reg_cmd
Definition flash_config_info.h:55
uint32_t manufacturer_id
Definition flash_config_info.h:45
uint8_t suspend_cmd
Definition flash_config_info.h:57
flash_cmd_exe_t * enter_qspi_mode_cmd
Definition flash_config_info.h:61
uint32_t flash_size
Definition flash_config_info.h:47
uint8_t resume_cmd
Definition flash_config_info.h:59
uint8_t read_dummy_clk
Definition flash_config_info.h:53
Flash qspi使能配置。
Definition flash_common_config.h:253
Flash进出xip配置。
Definition flash_common_config.h:223