📄 download.h
字号:
* 8. [DA][BUG FIXED] Fix DA FlashTool MEM_CMD end_addr bug, FlashTool should use (begin_addr+length-1) as end_addr.
* 9. [DA][BUG FIXED] Fix DA AM29DL640D, MB84VD23280FA and TC58FVB64 flash table error.
* Resolution for 12: [BootRom v2.2.1001][New Version] Split flashtool function into brom.dll
*
* Rev 1.3 Jun 11 2003 21:32:46 mtk00539
* 1. Modify BootRom library to support MT6218
* 2. Modify DA to support AM29PDL128G flash
* Resolution for 9: [FlashTool v2.2.1005][Add Feature] Support MT6218 and new flash AM29PDL128G
*
* Rev 1.2 Jun 09 2003 11:47:56 mtk00539
* Reason:
* 1. If we use DA_SET_REG_CMD to release power key, there is no chance to wait for ACK from DA, because target is shutdown already.
*
* Solution:
* 1. Add DA_FINISH_CMD back, DA will release power key after recieve DA_FINISH_CMD
*
* Resolution for 8: [FlashTool v2.2.1004][BUG FIX] Add DA_FINISH_CMD back
*
* Rev 1.1 Jun 03 2003 22:32:02 mtk00539
* 1. extend timeout to 10 sec for large image download in boot_2.cpp
* 2. disable unnecesssary debug hot-key.
* 3. add shift+ctrl+A for Jensen's DA debug tool kit.
* 4. enable build number, and start from 1003.
* 5. save baseband chip type, mcu frequency and auto-memory wait state setup flag to ini file.
* 6. add DA_SET_REG_CMD command and remove FINISH_CMD, so that release power key could be issued from FlashTool, not hardcoded in DA.
* 7. add DA_MCU_FREQ_CMD command, so that we don't have to select different DA while switching frequency.
* 8. add new flash MB84VD23280FA-70 for Chicago project.
* 9. remove DEVICE_CMD, DA will check flash automatically and report the flash type to PC.
* 10. add DA_FORMAT_CMD command to support range format.
* 11. display flash type on FlashTool.
* 12. merge the DOWNLOAD.H header file, both FlashTool and DA will use the same header file.
* 13. modify SPEED_CMD handshake by adding a sync mechanism to detect whether if the speed change is done by both sides.
* Resolution for 7: [FlashTool v2.2.1003][AddFeature] Enhanced for KLM and Chicago project.
*
* Rev 1.0 May 20 2003 16:38:38 admin
* Initial revision.
*
* Rev 1.1 16 May 2002 09:18:16 mtk00361
* 0515 updated
*
* Rev 1.0 Apr 03 2002 22:38:50 mtk00288
* Initial revision.
*
*******************************************************************************/
#ifndef _DOWNLOAD_H_
#define _DOWNLOAD_H_
#include "mtk_status.h"
/* DA Version */
#define DA_MAJOR_VER 0x03
#define DA_MINOR_VER 0x01
/* 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
/* COMMANDS */
#define DA_POST_PROCESS 0xD1
#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
#define DA_CHK_PC_SEC_INFO_CMD 0xE0
#define DA_UPDATE_FLASHTOOL_CFG_CMD 0xE1
#define DA_CUST_PARA_GET_INFO_CMD 0xE2
#define DA_CUST_PARA_READ_CMD 0xE3
#define DA_CUST_PARA_WRITE_CMD 0xE4
#define DA_SEC_RO_GET_INFO_CMD 0xE5
#define DA_SEC_RO_READ_CMD 0xE6
#define DA_SEC_RO_WRITE_CMD 0xE7
#define DA_ENABLE_DRAM 0xE8
#define DA_OTP_CHECKDEVICE_CMD 0xE9
#define DA_OTP_GETSIZE_CMD 0xEA
#define DA_OTP_READ_CMD 0xEB
#define DA_OTP_PROGRAM_CMD 0xEC
#define DA_OTP_LOCK_CMD 0xED
#define DA_OTP_LOCK_CHECKSTATUS_CMD 0xEE
#define DA_GET_PROJECT_ID_CMD 0xEF
#define DA_GET_FAT_INFO_CMD 0xF0
#define DA_FDM_MOUNTDEVICE_CMD 0xF1
#define DA_FDM_SHUTDOWN_CMD 0xF2
#define DA_FDM_READSECTORS_CMD 0xF3
#define DA_FDM_WRITESECTORS_CMD 0xF4
#define DA_FDM_MEDIACHANGED_CMD 0xF5
#define DA_FDM_DISCARDSECTORS_CMD 0xF6
#define DA_FDM_GETDISKGEOMETRY_CMD 0xF7
#define DA_FDM_LOWLEVELFORMAT_CMD 0xF8
#define DA_FDM_NONBLOCKWRITESECTORS_CMD 0xF9
#define DA_FDM_RECOVERABLEWRITESECTORS_CMD 0xFA
#define DA_FDM_RESUMESECTORSTATES 0xFB
#define DA_NAND_EXTRACT_NFB_CMD 0xFC
#define DA_NAND_INJECT_NFB_CMD 0xFD
/* 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 {
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;
typedef enum {
NUTL_PROGRAM_PAGE_SPARE = 0
,NUTL_PROGRAM_PAGE_ONLY
,NUTL_PROGRAM_SPARE_ONLY
,NUTL_PROGRAM_FLAG_END
} NUTL_ProgramFlag_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_SST34HF16x1 // 1=Bottom
,NOR_SST34HF32x4 // 4=Top
,NOR_SHARP_LRS18BK
,NOR_INTEL_28F3204C3TD70
,NOR_S29WS128N
,NOR_ST_M58PPR256J
,NOR_ST_M58PPR512J
,NOR_SST32HF3241C
,NOR_S29WS512P
,NOR_S29NS064N
,NOR_S29NS128N
,NOR_S29NS256N
,NOR_S29WS256N
,NOR_S29GL128N_T
,NOR_S29GL128N_B
,NOR_S29GL256N_T
,NOR_S29GL256N_B
,NOR_S29GL512N_T
,NOR_S29GL512N_B
,NOR_K5L2731CAM
,NOR_K5L2931CAM
,NOR_S71PL127J
,NOR_TY00689002APGN
,NOR_S29GL064A_T
,NOR_S29GL064A_B
,NOR_S29WS128P
,NOR_S29WS256P
,NOR_TV00560002DDGB
,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_TC58NWM9S3B
,NAND_LAST
,NAND_UNKNOWN = 0xFFFF // Unknown Device
} NAND_DeviceID_E;
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -