mcu_hi3321_watch/include/driver/flash/flash_others_config.h
2025-05-26 20:15:20 +08:00

254 lines
10 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/**
* Copyright (c) @CompanyNameMagicTag 2022-2022. All rights reserved. \n
*
* Description: Provides flash OTHERS Configuration information. \n
* Author: @CompanyNameTag \n
* History: \n
* 2022-11-15 Create file. \n
*/
#ifndef FLASH_OTHERS_CONFIG_H
#define FLASH_OTHERS_CONFIG_H
/**
* @defgroup drivers_driver_flash_other_config Flash Other Config
* @ingroup drivers_driver_flash
* @{
*/
#include "flash_common_config.h"
/* OTHERS enter qspi mode cmd config. */
/* Micro config. */
/* MT25QU128 Micro flash config. */
static flash_cmd_exe_t g_micro_mt25qu128_enter_qspi_mode_cmd[] = {
/* Write enable. */
{ FLASH_CMD_TYPE_CMD, HAL_SPI_FRAME_FORMAT_STANDARD, 1, { FLASH_WREN_CMD } },
/* Write volatile configuration register,config dummy clock 4, XIP disable. */
{ FLASH_CMD_TYPE_CMD, HAL_SPI_FRAME_FORMAT_STANDARD, 2, { 0x81, 0x4B } },
/* Waite config done. */
{ FLASH_CMD_TYPE_PROCESSING, HAL_SPI_FRAME_FORMAT_STANDARD, 3, { FLASH_RDSR1_CMD, 0, 0 } },
/* Write disable. */
{ FLASH_CMD_TYPE_CMD, HAL_SPI_FRAME_FORMAT_STANDARD, 1, { FLASH_WRDI_CMD } },
/* Waite write enable flag clear. */
{ FLASH_CMD_TYPE_PROCESSING, HAL_SPI_FRAME_FORMAT_STANDARD, 3, { FLASH_RDSR1_CMD, 1, 0 } },
/* Enable QPI. */
{ FLASH_CMD_TYPE_CMD, HAL_SPI_FRAME_FORMAT_STANDARD, 1, { 0x35 } },
/* End cmd, will not execute and need return. */
{ FLASH_CMD_TYPE_END, HAL_SPI_FRAME_FORMAT_MAX_NUM, 0, { 0 } }
};
static flash_cmd_exe_t g_micro_mt25qu128_enter_xip_mode_cmd[] = {
/* Write enable. */
{ FLASH_CMD_TYPE_CMD, HAL_SPI_FRAME_FORMAT_QUAD, 1, { FLASH_WREN_CMD } },
/* Write volatile configuration register,config dummy clock 4, wrap 32byte,XIP enable. */
{ FLASH_CMD_TYPE_CMD, HAL_SPI_FRAME_FORMAT_QUAD, 2, { 0x81, 0x41 } },
/* Waite config done. */
{ FLASH_CMD_TYPE_PROCESSING, HAL_SPI_FRAME_FORMAT_QUAD, 3, { FLASH_RDSR1_CMD, 0, 0 } },
/* End cmd, will not execute and need return. */
{ FLASH_CMD_TYPE_END, HAL_SPI_FRAME_FORMAT_MAX_NUM, 0, { 0 } }
};
/* MT25QU256 Micro flash config. */
static flash_cmd_exe_t g_micro_mt25qu256_enter_qspi_mode_cmd[] = {
/* Write enable. */
{ FLASH_CMD_TYPE_CMD, HAL_SPI_FRAME_FORMAT_STANDARD, 1, { FLASH_WREN_CMD } },
/* Write volatile configuration register,config dummy clock 4, XIP disable. */
{ FLASH_CMD_TYPE_CMD, HAL_SPI_FRAME_FORMAT_STANDARD, 2, { 0x81, 0x4B } },
/* Write enable. */
{ FLASH_CMD_TYPE_CMD, HAL_SPI_FRAME_FORMAT_STANDARD, 1, { FLASH_WREN_CMD } },
/* ENTER 4-BYTE ADDRESS MODE. */
{ FLASH_CMD_TYPE_CMD, HAL_SPI_FRAME_FORMAT_STANDARD, 1, { 0xB7 } },
/* Waite config done. */
{ FLASH_CMD_TYPE_PROCESSING, HAL_SPI_FRAME_FORMAT_STANDARD, 3, { FLASH_RDSR1_CMD, 0, 0 } },
/* Write disable. */
{ FLASH_CMD_TYPE_CMD, HAL_SPI_FRAME_FORMAT_STANDARD, 1, { FLASH_WRDI_CMD } },
/* Waite write enable flag clear. */
{ FLASH_CMD_TYPE_PROCESSING, HAL_SPI_FRAME_FORMAT_STANDARD, 3, { FLASH_RDSR1_CMD, 1, 0 } },
/* Enable QPI. */
{ FLASH_CMD_TYPE_CMD, HAL_SPI_FRAME_FORMAT_STANDARD, 1, { 0x35 } },
/* End cmd, will not execute and need return. */
{ FLASH_CMD_TYPE_END, HAL_SPI_FRAME_FORMAT_MAX_NUM, 0, { 0 } }
};
static flash_cmd_exe_t g_micro_mt25qu256_enter_xip_mode_cmd[] = {
/* Write enable. */
{ FLASH_CMD_TYPE_CMD, HAL_SPI_FRAME_FORMAT_QUAD, 1, { FLASH_WREN_CMD } },
/* Write volatile configuration register,config dummy clock 4, wrap 32byte,XIP enable. */
{ FLASH_CMD_TYPE_CMD, HAL_SPI_FRAME_FORMAT_QUAD, 2, { 0x81, 0x41 } },
/* Waite config done. */
{ FLASH_CMD_TYPE_PROCESSING, HAL_SPI_FRAME_FORMAT_QUAD, 3, { FLASH_RDSR1_CMD, 0, 0 } },
/* Write disable. */
{ FLASH_CMD_TYPE_CMD, HAL_SPI_FRAME_FORMAT_QUAD, 1, { FLASH_WRDI_CMD } },
/* End cmd, will not execute and need return. */
{ FLASH_CMD_TYPE_END, HAL_SPI_FRAME_FORMAT_MAX_NUM, 0, { 0 } }
};
/* PUYA config. */
/* P25Q32LX PUYA flash config. */
static flash_cmd_exe_t g_puya_p25q32lc_enter_qspi_mode_cmd[] = {
/* Write enable for Volatils status register. */
{ FLASH_CMD_TYPE_CMD, HAL_SPI_FRAME_FORMAT_STANDARD, 1, { 0x50 } },
/* Write status register-2 to 0x2, enable QPI write bit. */
{ FLASH_CMD_TYPE_CMD, HAL_SPI_FRAME_FORMAT_STANDARD, 2, { 0x31, 0x02 } },
/* Waite config done. */
{ FLASH_CMD_TYPE_PROCESSING, HAL_SPI_FRAME_FORMAT_STANDARD, 3, { FLASH_RDSR1_CMD, 0, 0 } },
/* Enable QPI. */
{ FLASH_CMD_TYPE_CMD, HAL_SPI_FRAME_FORMAT_STANDARD, 1, { 0x38 } },
/* Set dummy 6, maxinum read freq 70MHZ. */
{ FLASH_CMD_TYPE_CMD, HAL_SPI_FRAME_FORMAT_QUAD, 2, { 0xC0, 0x20} },
/* End cmd, will not execute and need return. */
{ FLASH_CMD_TYPE_END, HAL_SPI_FRAME_FORMAT_MAX_NUM, 0, { 0 } }
};
/* ADESTO config. */
/* AT25SL128A PUYA flash config. */
static flash_cmd_exe_t g_adesto_at25sl128a_enter_qspi_mode_cmd[] = {
/* Write enable for Volatils status register. */
{ FLASH_CMD_TYPE_CMD, HAL_SPI_FRAME_FORMAT_STANDARD, 1, { 0x50 } },
/* Write volatile configuration register,config XIP disable. */
{ FLASH_CMD_TYPE_CMD, HAL_SPI_FRAME_FORMAT_STANDARD, 3, { 0x01, 0x00, 0x02 } },
/* Waite config done. */
{ FLASH_CMD_TYPE_PROCESSING, HAL_SPI_FRAME_FORMAT_STANDARD, 3, { FLASH_RDSR1_CMD, 0, 0 } },
/* Enable QPI. dummy clocks 4, max 90MHZ. */
{ FLASH_CMD_TYPE_CMD, HAL_SPI_FRAME_FORMAT_STANDARD, 1, { 0x38 } },
/* End cmd, will not execute and need return. */
{ FLASH_CMD_TYPE_END, HAL_SPI_FRAME_FORMAT_MAX_NUM, 0, { 0 } }
};
/* ELITE config. */
/* EN25SX128A PUYA flash config. */
static flash_cmd_exe_t g_mxic_en25sxxa_enter_qspi_mode_cmd[] = {
/* Write enable for Volatils status register. */
{ FLASH_CMD_TYPE_CMD, HAL_SPI_FRAME_FORMAT_STANDARD, 1, { 0x50 } },
/* Write volatile configuration register,config XIP disable. */
{ FLASH_CMD_TYPE_CMD, HAL_SPI_FRAME_FORMAT_STANDARD, 3, { 0x01, 0x00, 0x02 } },
/* Enable QPI. */
{ FLASH_CMD_TYPE_CMD, HAL_SPI_FRAME_FORMAT_STANDARD, 1, { 0x38 } },
/* End cmd, will not execute and need return. */
{ FLASH_CMD_TYPE_END, HAL_SPI_FRAME_FORMAT_MAX_NUM, 0, { 0 } }
};
/* XTX config. */
/* XT25Q128D flash config. */
static flash_cmd_exe_t g_xtx_xt25qxxd_enter_qspi_mode_cmd[] = {
/* Write enable for Volatils status register. */
{ FLASH_CMD_TYPE_CMD, HAL_SPI_FRAME_FORMAT_STANDARD, 1, { 0x50 } },
/* Write status register-2 to 0x2, enable QPI write bit. */
{ FLASH_CMD_TYPE_CMD, HAL_SPI_FRAME_FORMAT_STANDARD, 2, { 0x31, 0x02 } },
/* Waite config done. */
{ FLASH_CMD_TYPE_PROCESSING, HAL_SPI_FRAME_FORMAT_STANDARD, 3, { FLASH_RDSR1_CMD, 0, 0 } },
/* Enable QPI. */
{ FLASH_CMD_TYPE_CMD, HAL_SPI_FRAME_FORMAT_STANDARD, 1, { 0x38 } },
/* End cmd, will not execute and need return. */
{ FLASH_CMD_TYPE_END, HAL_SPI_FRAME_FORMAT_MAX_NUM, 0, { 0 } }
};
/* OTHERS enter xip mode config. */
/* Micro config. */
/* MT25QU128 Micro flash config. */
static flash_qspi_xip_config_t g_micro_mt25qu128_config = {
/* Enter XIP mode before config. */
WAIT_CYCLES_2,
HAL_SPI_INST_LEN_8,
HAL_SPI_ADDR_LEN_32,
HAL_SPI_TRANS_TYPE_INST_Q_ADDR_Q,
/* Enter XIP mode after config. */
WAIT_CYCLES_2,
HAL_SPI_INST_LEN_0,
HAL_SPI_ADDR_LEN_32,
HAL_SPI_TRANS_TYPE_INST_Q_ADDR_Q,
/* XIP 32bit addr & wrap config. */
false,
true,
};
/* MT25QU256 Micro flash config. */
static flash_qspi_xip_config_t g_micro_mt25qu256_config = {
/* Enter XIP mode before config. */
WAIT_CYCLES_2,
HAL_SPI_INST_LEN_0,
HAL_SPI_ADDR_LEN_32,
HAL_SPI_TRANS_TYPE_INST_Q_ADDR_Q,
/* Enter XIP mode after config. */
WAIT_CYCLES_2,
HAL_SPI_INST_LEN_8,
HAL_SPI_ADDR_LEN_32,
HAL_SPI_TRANS_TYPE_INST_Q_ADDR_Q,
/* XIP 32bit addr & wrap config. */
true,
true,
};
/* PUYA config. */
/* P25Q32LX PUYA flash config. */
static flash_qspi_xip_config_t g_puya_p25q32lc_config = {
/* The config that before enter XIP mode. */
WAIT_CYCLES_6,
HAL_SPI_INST_LEN_8,
HAL_SPI_ADDR_LEN_24,
HAL_SPI_TRANS_TYPE_INST_Q_ADDR_Q,
/* The config that after enter XIP mode. */
WAIT_CYCLES_6,
HAL_SPI_INST_LEN_8,
HAL_SPI_ADDR_LEN_24,
HAL_SPI_TRANS_TYPE_INST_Q_ADDR_Q,
/* XIP 32bit addr & wrap config. */
false,
false,
};
/* ADESTO config. */
/* AT25SL128A PUYA flash config. */
static flash_qspi_xip_config_t g_adesto_at25sl128a_config = {
/* The config that before enter XIP mode. */
WAIT_CYCLES_4,
HAL_SPI_INST_LEN_8,
HAL_SPI_ADDR_LEN_24,
HAL_SPI_TRANS_TYPE_INST_Q_ADDR_Q,
/* The config that after enter XIP mode. */
WAIT_CYCLES_4,
HAL_SPI_INST_LEN_8,
HAL_SPI_ADDR_LEN_24,
HAL_SPI_TRANS_TYPE_INST_Q_ADDR_Q,
/* XIP 32bit addr & wrap config. */
false,
false,
};
/* ELITE config. */
/* EN25SX128A PUYA flash config. */
static flash_qspi_xip_config_t g_mxic_en25sxxa_config = {
/* The config that before enter XIP mode. */
WAIT_CYCLES_6,
HAL_SPI_INST_LEN_8,
HAL_SPI_ADDR_LEN_24,
HAL_SPI_TRANS_TYPE_INST_Q_ADDR_Q,
/* The config that after enter XIP mode. */
WAIT_CYCLES_6,
HAL_SPI_INST_LEN_8,
HAL_SPI_ADDR_LEN_24,
HAL_SPI_TRANS_TYPE_INST_Q_ADDR_Q,
/* XIP 32bit addr & wrap config. */
false,
false,
};
/* XTX config. */
/* XT25QXXD flash config. */
static flash_qspi_xip_config_t g_xtx_xt25qxxd_config = {
/* The config that before enter XIP mode. */
WAIT_CYCLES_6,
HAL_SPI_INST_LEN_8,
HAL_SPI_ADDR_LEN_32,
HAL_SPI_TRANS_TYPE_INST_Q_ADDR_Q,
/* The config that after enter XIP mode. */
WAIT_CYCLES_6,
HAL_SPI_INST_LEN_0,
HAL_SPI_ADDR_LEN_32,
HAL_SPI_TRANS_TYPE_INST_Q_ADDR_Q,
/* XIP 32bit addr & wrap config. */
false,
false,
};
/**
* @}
*/
#endif