📄 download.h
字号:
*
* Rev 1.0 Apr 03 2002 22:38:50 mtk00288
* Initial revision.
*
*******************************************************************************/
#ifndef _DOWNLOAD_H_
#define _DOWNLOAD_H_
/* DA Version */
#define DA_MAJOR_VER 0x02
#define DA_MINOR_VER 0x07
/* Max Number of Load Sections */
#define MAX_LOAD_SECTIONS 10
// Max Die Number of MCP
#define MAX_DIE_IN_MCP 2
/* RETURN VALUE */
#define SOC_OK 0xC1
#define SOC_FAIL 0xCF
#define SYNC_CHAR 0xc0
#define CONT_CHAR 0x69
#define STOP_CHAR 0x96
#define ACK 0x5a
#define NACK 0xa5
#define UNKNOWN_CMD 0xbb
/* FLASH OPERATION STATUS */
typedef enum {
S_DONE = 0
,S_PGM_FAILED
,S_ERASE_FAILED
,S_TIMEOUT
,S_IN_PROGRESS
,S_CMD_ERR
,S_BLOCK_LOCKED_ERR
,S_BLOCK_UNSTABLE
,S_VPP_RANGE_ERR
,S_INVALID_BEGIN_ADDR
,S_INVALID_RANGE
,S_PGM_AT_ODD_ADDR
,S_PGM_WITH_ODD_LENGTH
,S_BUFPGM_NO_SUPPORT
,S_UNKNOWN_ERR
,S_BAD_BLOCK
,S_ECC_1BIT_CORRECT
,S_ECC_2BITS_ERR
,S_SPARE_CHKSUM_ERR
,S_HW_COPYBACK_ERR
,S_INVALID_PAGE_INDEX
,S_NFI_NOT_SUPPORT
,S_NFI_CS1_NOT_SUPPORT
,S_NFI_16BITS_IO_NOT_SUPPORT
,S_NO_GOOD_BLOCK_FOUND
,S_SETUP_PLL_ERR
,S_MOBILE_RAM_NOT_SUPPORT
,S_RAM_FLOARTING
,S_RAM_UNACCESSABLE
,S_RAM_ERROR
,S_DEVICE_NOT_FOUND
,S_REACH_END_ADDR
,S_BLOADER_IS_TOO_LARGE
,S_SIBLEY_REWRITE_OBJ_MODE_REGION
,S_SIBLEY_WRITE_B_HALF_IN_CTRL_MODE_REGION
,S_SIBLEY_ILLEGAL_CMD
,S_SIBLEY_PGM_AT_THE_SAME_REGIONS
,STATUS_END
} STATUS_E;
/* COMMANDS */
#define DA_SPEED_CMD 0xD2
#define DA_MEM_CMD 0xD3
#define DA_FORMAT_CMD 0xD4
#define DA_WRITE_CMD 0xD5
#define DA_READ_CMD 0xD6
#define DA_WRITE_REG16_CMD 0xD7
#define DA_READ_REG16_CMD 0xD8
#define DA_FINISH_CMD 0xD9
#define DA_GET_DSP_VER_CMD 0xDA
#define DA_ENABLE_WATCHDOG_CMD 0xDB
#define DA_NFB_WRITE_BLOADER_CMD 0xDC
#define DA_NAND_IMAGE_LIST_CMD 0xDD
#define DA_NFB_WRITE_IMAGE_CMD 0xDE
#define DA_NAND_READPAGE_CMD 0xDF
/* SPEED_PARA */
typedef enum {
UART_BAUD_921600 = 0x01,
UART_BAUD_460800 = 0x02,
UART_BAUD_230400 = 0x03,
UART_BAUD_115200 = 0x04,
UART_BAUD_57600 = 0x05,
UART_BAUD_38400 = 0x06,
UART_BAUD_19200 = 0x07,
UART_BAUD_9600 = 0x08,
UART_BAUD_4800 = 0x09,
UART_BAUD_2400 = 0x0a,
UART_BAUD_1200 = 0x0b,
UART_BAUD_300 = 0x0c,
UART_BAUD_110 = 0x0d
}UART_BAUDRATE;
typedef enum
{
TIMEOUT_DATA = 0,
CKSUM_ERROR,
RX_BUFFER_FULL,
TIMEOUT_CKSUM_LSB,
TIMEOUT_CKSUM_MSB,
ERASE_TIMEOUT,
PROGRAM_TIMEOUT,
RECOVERY_BUFFER_FULL,
SB_AREA_ERROR,
UNKNOWN_ERROR
}eRX_error;
typedef enum {
CS0 = 0
,CS1
,CS2
,CS3
,CS4
,CS5
,CS6
,CS7
,CS_WITH_DECODER
,MAX_CS = CS_WITH_DECODER
,HW_CHIP_SELECT_END
} HW_ChipSelect_E;
typedef enum {
HW_STORAGE_NOR = 0
,HW_STORAGE_NAND
,HW_STORAGE_TYPE_END
} HW_StorageType_E;
typedef enum {
HW_RAM_UNKNOWN = 0
,HW_RAM_SRAM
,HW_RAM_DRAM
,HW_RAM_TYPE_END
} HW_RAMType_E;
typedef enum {
NUTL_READ_PAGE_SPARE = 0
,NUTL_READ_PAGE_ONLY
,NUTL_READ_SPARE_ONLY
,NUTL_READ_PAGE_WITH_ECC
,NUTL_VERIFY_AFTER_PROGRAM
,NUTL_READ_FLAG_END
} NUTL_ReadFlag_E;
typedef enum {
NUTL_ERASE = 0
,NUTL_FORCE_ERASE
,NUTL_MARK_BAD_BLOCK
,NUTL_ERASE_FLAG_END
} NUTL_EraseFlag_E;
// NOR flash device id
typedef enum {
NOR_AM29DL323D = 0
,NOR_AM29DL640D
,NOR_ST_M29DW640D
,NOR_AM29DL322GT
,NOR_MB84VD23280FA
,NOR_AM29PDL128G
,NOR_MB84VD22280FE
,NOR_MB84VP24491HK
,NOR_AM50DL128CG
,NOR_AM49DL3208GB
,NOR_ST_M74DW66500B
,NOR_INTEL_28F128L30_B
,NOR_K5A3280YT
,NOR_TH50VPF6782AASB
,NOR_TH50VPF6783AASB
,NOR_TV00578002AABD
,NOR_TV00578003AABD
,NOR_MB84VP24581HK
,NOR_INTEL_28F640W30_B
,NOR_AM49PDL127BH
,NOR_AM49PDL129BH
,NOR_M6MGD13BW66CDG
,NOR_W19B322TM
,NOR_W19B323TM
,NOR_KAD060300B
,NOR_K5J6316CTM
,NOR_TH50VPF5682CDSB
,NOR_TH50VPF5683CDSB
,NOR_IS75V16F128GS32
,NOR_M6MGT64BM34CDG
,NOR_ST_M30L0T7000T0
,NOR_ST_M30L0T7000B0
,NOR_SHARP_LRS1862
,NOR_SHARP_LRS1806A
,NOR_AM49DL3208GT
,NOR_S29PL032J
,NOR_SHARP_LRS1828C
,NOR_M6MGB64BM34CDG
,NOR_SHARP_LRS18B0
,NOR_SHARP_LRS1863
,NOR_S71AL016D_T
,NOR_S71AL016D_B
,NOR_SHARP_LRS18C8A
,NOR_INTEL_28F640L18_T
,NOR_INTEL_28F128L18_T
,NOR_INTEL_28F256L18_T
,NOR_INTEL_28F640L18_B
,NOR_INTEL_28F128L18_B
,NOR_INTEL_28F256L18_B
,NOR_INTEL_28F640L30_T
,NOR_INTEL_28F128L30_T
,NOR_INTEL_28F256L30_T
,NOR_INTEL_28F640L30_B
,NOR_INTEL_28F256L30_B
,NOR_INTEL_28F320W30_T
,NOR_INTEL_28F320W30_B
,NOR_INTEL_28F640W30_T
,NOR_INTEL_28F128W30_T
,NOR_INTEL_28F128W30_B
,NOR_INTEL_28F320W18_T
,NOR_INTEL_28F320W18_B
,NOR_INTEL_28F640W18_T
,NOR_INTEL_28F640W18_B
,NOR_INTEL_28F128W18_T
,NOR_INTEL_28F128W18_B
,NOR_M6MGD15BM34CDG
,NOR_S71PL254J
,NOR_TV0057A002AABD
,NOR_TV0057A003AABD
,NOR_W19B320ATB
,NOR_W19B320ATT
,NOR_S7_SV7E160XT
,NOR_S7_SV7E160XB
,NOR_S7_SV7E320XT
,NOR_S7_SV7E320XB
,NOR_S71GL032R3_T
,NOR_S71GL032R4_B
,NOR_S71GL032R1R2
,NOR_TV00569002BABD
,NOR_TV00569003BABD
,NOR_TV00569002AABD
,NOR_TV00569003AABD
,NOR_INTEL_38F1010C0ZBL0
,NOR_INTEL_28F1602C3BD70
,NOR_TY0068B012APGG
,NOR_TY0068B013APGG
,NOR_S71PL127N
,NOR_S7_SV6D2832UTA
,NOR_S7_SV6D2832UBA
,NOR_S7_SV6C2832UTA
,NOR_S7_SV6C2832UBA
,NOR_SHARP_LH28F16
,NOR_TV00578002DABD
,NOR_TV00578003DABD
,NOR_S71PL256N
,NOR_S71PL129N
,NOR_INTEL_PF48F50xxM0x0xx
,NOR_INTEL_PF48F50xxM0x1xx
,NOR_INTEL_PF48F40xxM0x0xx
,NOR_INTEL_PF48F40xxM0x1xx
,NOR_LAST
,NOR_UNKNOWN = 0xFFFF // Unknown Device
} NOR_DeviceID_E;
// NAND flash device id
typedef enum {
NAND_K9F5608Q0C = 0
,NAND_K9F5608X0C
,NAND_K9F5616Q0C
,NAND_K9F5616X0C
,NAND_K9K1208X0C
,NAND_K9K1G08X0A
,NAND_K9F1G08Q0M
,NAND_K9F1G08X0M
,NAND_K9F1G16Q0M
,NAND_K9F1G16X0M
,NAND_K9F2G08X0M
,NAND_K9F2G16X0M
,NAND_K9K4G08Q0M
,NAND_K9K4G08U0M
,NAND_K9K4G16Q0M
,NAND_K9K4G16U0M
,NAND_TC58DVM82A1FT
,NAND_TC58DVM92A1FT
,NAND_TC58DVG02A1FT
,NAND_TC58NVG0S3AFT
,NAND_TH58NVG1S3AFT
,NAND_HY27XS08561M
,NAND_HY27XS08121M
,NAND_HY27XA081G1M
,NAND_HY27XA161G1M
,NAND_ST128W3A
,NAND_ST128W4A
,NAND_ST256W3A
,NAND_ST256W4A
,NAND_ST512W3A
,NAND_ST512W4A
,NAND_ST01GW3A
,NAND_ST01GW4A
,NAND_ST512R3B
,NAND_ST512W3B
,NAND_ST512R4B
,NAND_ST512W4B
,NAND_ST01GR3B
,NAND_ST01GW3B
,NAND_ST01GR4B
,NAND_ST01GW4B
,NAND_ST02GR3B
,NAND_ST02GW3B
,NAND_ST02GR4B
,NAND_ST02GW4B
,NAND_ST04GR3B
,NAND_ST04GW3B
,NAND_ST04GR4B
,NAND_ST04GW4B
,NAND_ST08GR3B
,NAND_ST08GW3B
,NAND_ST08GR4B
,NAND_ST08GW4B
,NAND_K9F2808U0C
,NAND_K9K8G08U0M
,NAND_TH58NVG2D4BFT
,NAND_HY27UF081G2M
,NAND_TH58NVG1S8BFT
,NAND_MT29F2G08AAC
,NAND_MT29F4G08BAB
,NAND_SUPERAND51208
,NAND_SUPERAND51216
,NAND_HYF33DS51280
,NAND_HYF33DS1G80
,NAND_HYF33DS1G16
,NAND_LAST
,NAND_UNKNOWN = 0xFFFF // Unknown Device
} NAND_DeviceID_E;
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -