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

📄 flashtool_api.h

📁 MTK 最新的flashtool工具的源代码
💻 H
📖 第 1 页 / 共 2 页
字号:
/*******************************************************************************
 *  Copyright Statement:
 *  --------------------
 *  This software is protected by Copyright and the information contained
 *  herein is confidential. The software may not be copied and the information
 *  contained herein may not be used or disclosed except with the written
 *  permission of MediaTek Inc. (C) 2006
 *
 ******************************************************************************/

/*******************************************************************************
 * Filename:
 * ---------
 *  flashtool_api.h
 *
 * Project:
 * --------
 *  Flash Download/Readback/Format Library.
 *
 * Description:
 * ------------
 *  Exported C interface APIs for FlashTool Library.
 *
 * Author:
 * -------
 *  Amos Hsu (mtk00539)
 *
 *==============================================================================
 *           HISTORY
 * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
 *------------------------------------------------------------------------------
 * $Revision$
 * $Modtime$
 * $Log$
 *
 * Mar 12 2007 mtk01413
 * [STP100001329] FlashTool v3.1.04 release
 * 
 *
 * Jan 2 2007 mtk01413
 * [STP100001195] FlashTool v3.1.02 release
 * New features:
 *  1. [BROM_DLL/DA] Support FOTA(Firmware update Over The Air) download.
 *  2. [BROM_DLL/DA] Support MT6223  download.
 *  3. [BROM_DLL/DA] Support MT6268T download.
 *  4. [DA] Supports new NOR Flash device
 * 		[SPANSION] S29GL128NH
 * 		[SPANSION] S29GL128NL
 * 		[SPANSION] S29GL256NH
 * 		[SPANSION] S29GL256NL
 * 		[SPANSION] S29GL512NH
 * 		[SPANSION] S29GL512NL
 * 
 * Enhancements:
 *  1. [DA] Support BBC(Blank Block Check) for NOR Flash Format.
 *  2. [BROM_DLL/DA] Support Retransmit mechanism for NAND Readback operation.
 *  3. [BROM_DLL] Enhance E-NFB Check.
 * 
 *
 * Aug 17 2006 mtk00539
 * [STP100001057] FlashTool v3.1.00 release
 * Apply new auto read back FAT mechanism.
 *
 * Aug 16 2006 mtk00539
 * [STP100001057] FlashTool v3.1.00 release
 * Apply new auto format FAT mechanism.
 *
 * Aug 14 2006 mtk01413
 * [STP100001057] FlashTool v3.1.00 release
 * 
 *
 * Aug 13 2006 mtk01413
 * [STP100001057] FlashTool v3.1.00 release
 * New features:
 *  1. [FlashTool/BROM_DLL/DA] Provide a method to retrieve Exception Log
 * 
 *
 *------------------------------------------------------------------------------
 * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
 *==============================================================================
 *******************************************************************************/
#ifndef _FLASHTOOL_API_H_
#define _FLASHTOOL_API_H_

#include "mtk_status.h"
#include "brom.h"
#include "DOWNLOAD.H"
#include "flashtool_handle.h"

#ifdef	__cplusplus
extern "C" {
#endif

struct FLASHTOOL_API_HANDLE;
typedef struct FLASHTOOL_API_HANDLE *	FLASHTOOL_API_HANDLE_T;

//------------------------------------------------------------------------------
// accuracy enum                                                                
//------------------------------------------------------------------------------
typedef enum {                            
	ACCURACY_AUTO		= 0,		// auto detect by baudrate
	ACCURACY_1_3		= 3,		//   33% 
	ACCURACY_1_4		= 4,		//   25% 
	ACCURACY_1_10		= 10,		//   10% 
	ACCURACY_1_100		= 100,		//    1% 
	ACCURACY_1_1000		= 1000,		//  0.1% 
	ACCURACY_1_10000	= 10000		// 0.01% 
}ACCURACY;                                
                                          
//------------------------------------------------------------------------------
// com port setting                                                             
//------------------------------------------------------------------------------

#ifndef COM_DEFAULT_TIMEOUT
#define	COM_DEFAULT_TIMEOUT		0xFFFFFFF
#endif
#define	COM_NO_TIMEOUT			0

//------------------------------------------------------------------------------
// DA report structure                                                          
//------------------------------------------------------------------------------
typedef struct {
	// DA version 
	unsigned char		m_expected_da_major_ver;
	unsigned char		m_expected_da_minor_ver;
	unsigned char		m_da_major_ver;
	unsigned char		m_da_minor_ver;
	// bbchip 
	BBCHIP_TYPE			m_bbchip_type;
	char				m_bbchip_name[32];
	unsigned short		m_bbchip_hw_ver;
	unsigned short		m_bbchip_sw_ver;
	unsigned short		m_bbchip_hw_code;
	EXT_CLOCK			m_ext_clock;
	unsigned char		m_bbchip_secure_ver;
	// NOR flash report 
	STATUS_E			m_nor_ret;
	HW_ChipSelect_E		m_nor_chip_select[2];
	unsigned short		m_nor_flash_id;
	unsigned int		m_nor_flash_size;
	unsigned short		m_nor_flash_dev_code_1;
	unsigned short		m_nor_flash_dev_code_2;
	unsigned short		m_nor_flash_dev_code_3;
	unsigned short		m_nor_flash_dev_code_4;
	STATUS_E			m_nor_flash_otp_status;
	unsigned int		m_nor_flash_otp_size;
	// NAND flash report 
	STATUS_E			m_nand_ret;
	HW_ChipSelect_E		m_nand_chip_select;
	unsigned short		m_nand_flash_id;
	unsigned int		m_nand_flash_size;
	unsigned short		m_nand_flash_dev_code_1;
	unsigned short		m_nand_flash_dev_code_2;
	unsigned short		m_nand_flash_dev_code_3;
	unsigned short		m_nand_flash_dev_code_4;
	unsigned short		m_nand_pagesize;
	unsigned short		m_nand_sparesize;
	unsigned short		m_nand_pages_per_block;
	unsigned char		m_nand_io_interface;
	unsigned char		m_nand_addr_cycle;
	// internal sram report 
	STATUS_E			m_int_sram_ret;
	unsigned int		m_int_sram_size;
	// external ram report 
	STATUS_E			m_ext_ram_ret;
	HW_RAMType_E		m_ext_ram_type;
	HW_ChipSelect_E		m_ext_ram_chip_select;
	unsigned int		m_ext_ram_size;

	// MTK Security Platform error code 
	unsigned char		m_msp_err_code;

	// CODE area and SEC_RO area download status 
	STATUS_E			m_download_status;

	// target boot-up style 
	STATUS_E			m_boot_style;

	// current selected DL_HANDLE 
	DL_HANDLE_T			m_dl_handle;

} DA_REPORT_T;

//------------------------------------------------------------------------------
// prototype of callback function                                               
//------------------------------------------------------------------------------
typedef int (__stdcall *CALLBACK_DA_REPORT)(const DA_REPORT_T  *p_da_report, void *usr_arg);
typedef int (__stdcall *CALLBACK_SET_HIGHSPEED_BAUDRATE)(HANDLE hCOM, unsigned char BaudrateId, void *usr_arg);
typedef int (__stdcall *CALLBACK_DOWNLOAD_PROGRESS_INIT)(void *usr_arg);
typedef int (__stdcall *CALLBACK_DOWNLOAD_PROGRESS)(unsigned char finished_percentage, unsigned int finished_bytes, unsigned int total_bytes, void *usr_arg);
typedef int (__stdcall *CALLBACK_BOOTLOADER_DOWNLOAD_PROGRESS_INIT)(void *usr_arg);
typedef int (__stdcall *CALLBACK_BOOTLOADER_DOWNLOAD_PROGRESS)(unsigned char finished_percentage, unsigned int finished_bytes, unsigned int total_bytes, void *usr_arg);
typedef int (__stdcall *CALLBACK_READBACK_PROGRESS_INIT)(HW_StorageType_E  storage_type, unsigned int rb_addr, unsigned int rb_length, const char *rb_filepath, void *usr_arg);
typedef int (__stdcall *CALLBACK_READBACK_PROGRESS)(unsigned char finished_percentage, unsigned int finished_bytes, unsigned int total_bytes, void *usr_arg);
typedef int (__stdcall *CALLBACK_FORMAT_PROGRESS_INIT)(HW_StorageType_E  storage_type, unsigned int begin_addr, unsigned int length, void *usr_arg);
typedef int (__stdcall *CALLBACK_FORMAT_PROGRESS)(unsigned char finished_percentage, void *usr_arg);
typedef struct {
	unsigned int	m_fmt_begin_addr;
	unsigned int	m_fmt_length;
	unsigned int	m_total_blocks;
	unsigned int	m_bad_blocks;
	unsigned int	m_err_blocks;
} FormatStatisticsReport_T;
typedef int (__stdcall *CALLBACK_FORMAT_STATISTICS)(const FormatStatisticsReport_T  *p_report, void *usr_arg);
typedef int (__stdcall *CALLBACK_POST_PROCESS_INIT)(void *usr_arg);
typedef int (__stdcall *CALLBACK_POST_PROCESS)(unsigned char finished_percentage, void *usr_arg);
typedef int (__stdcall *CALLBACK_SECURITY_PRE_PROCESS_NOTIFY)(void *usr_arg);
typedef int (__stdcall *CALLBACK_SECURITY_POST_PROCESS_NOTIFY)(void *usr_arg);

typedef int (__stdcall *CALLBACK_PROGRESS_INIT)(void *usr_arg);
typedef int (__stdcall *CALLBACK_PROGRESS)(unsigned char finished_percentage, unsigned int finished_bytes, unsigned int total_bytes, void *usr_arg);

//------------------------------------------------------------------------------
// Connect/Disconnect                                                           
//------------------------------------------------------------------------------
typedef	struct {

	// com port timeout setting 
	unsigned int			m_com_ms_read_timeout;
	unsigned int			m_com_ms_write_timeout;

	// BootFlashTool arg 
	BOOT_FLASHTOOL_ARG		m_boot_arg;

	// security pre-process notify callback 
	CALLBACK_SECURITY_PRE_PROCESS_NOTIFY	m_cb_security_pre_process_notify;
	void *									m_cb_security_pre_process_notify_arg;

	HW_ChipSelect_E		m_nor_chip_select[2];

	HW_ChipSelect_E		m_nand_chip_select;
	unsigned int		m_nand_acccon;

} FlashTool_Connect_Arg;

typedef	struct {
	
	// DA report 
	DA_REPORT_T			m_da_report;

} FlashTool_Connect_Result;

extern int __stdcall FlashTool_Connect(
						unsigned char  com_port,
						const FlashTool_Connect_Arg  *p_arg,
						FlashTool_Connect_Result  *p_result,
						int *p_stopflag,
						FLASHTOOL_API_HANDLE_T  *p_ft_handle);

extern int __stdcall FlashTool_Connect_ByhCOM(
						HANDLE  hCOM,
						const FlashTool_Connect_Arg  *p_arg,
						FlashTool_Connect_Result  *p_result,
						int *p_stopflag,
						FLASHTOOL_API_HANDLE_T  *p_ft_handle);

extern int __stdcall FlashTool_Disconnect(FLASHTOOL_API_HANDLE_T  *p_ft_handle);

//------------------------------------------------------------------------------
// Post-Process                                                                 
//------------------------------------------------------------------------------
typedef	struct {

	// post-process callback 
	CALLBACK_POST_PROCESS_INIT			m_cb_post_process_init;
	void *								m_cb_post_process_init_arg;
	CALLBACK_POST_PROCESS				m_cb_post_process;
	void *								m_cb_post_process_arg;

} FlashTool_PostProcess_Arg;

extern int __stdcall FlashTool_PostProcess(FLASHTOOL_API_HANDLE_T  ft_handle, const FlashTool_PostProcess_Arg *p_arg);

//------------------------------------------------------------------------------
// Change Baudrate                                                              
//------------------------------------------------------------------------------
typedef	struct {

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -