⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 download.h

📁 MTK 最新的flashtool工具的源代码
💻 H
📖 第 1 页 / 共 2 页
字号:
 *  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 + -