📄 flashtool_api.h
字号:
/*******************************************************************************
* 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 + -