//------------------------------------------------------------------------------- // mergeImage.h //------------------------------------------------------------------------------- #ifndef _MERGEIMAGE_H_ #define _MERGEIMAGE_H_ //------------------------------------------------------------------------------- #include #include #include #include #include "types.h" #ifdef _windows_ #include "../sisspi_flashalloc.h" #else #include #include #include #endif //------------------------------------------------------------------------------- // Option //------------------------------------------------------------------------------- #define DBG_SHOW_DBG_MSG 0 #define DBG_SHOW_PARSE_RESULT 0 #define DBG_SHOW_CONFIG_LINE 0 #define DBG_SKIP_NOT_EXIST 0 #define MI_ENCRYPT_FLASH_BIN 1 #define MI_COPY_MERGE_SOURCE 1 #define MI_DFT_GENERATE_ORI_BIN 1 #define MI_DFT_GENERATE_PACKET 1 #define MI_DFT_DELETE_TEMP_FILE 1 #define MI_DFT_JUDGE_DBG_VERSION 0 /* Now only for BootROM */ #define MI_PROTECT_INVALID_MODULE 1 /* Customer request */ //------------------------------------------------------------------------------- // Buffer & file size //------------------------------------------------------------------------------- #define TMP_BUFFER_SIZE 512 #define SAVEINFO_SIZE 4096 #define FILENAME_SIZE 4096 //------------------------------------------------------------------------------- // Source name //------------------------------------------------------------------------------- #if 0 #define FILENAME_SHELLROM "ShellROM.bin" #define FILENAME_8051ROM "8051ROM.bin" #define FILENAME_BOOTROM "BootROM.bin" #define FILENAME_USBROM "USBROM.bin" #define FILENAME_EDID "EDID.bin" #define FILENAME_HDCPKEY "HDCPKey.bin" #define FILENAME_MAC "MAC.bin" #define FILENAME_CIKEY "CIKey.bin" #define FILENAME_VOLUMETABLE "VolumeTable.bin" #define FILENAME_MEMORYMAP "MemMap.bin" #define FILENAME_OPTION "Option.bin" #define FILENAME_PANELSET "PanelSet.bin" #define FILENAME_VIPTABLE "VIPTable.bin" #define FILENAME_GAMMATABLE "GammaTable.bin" #define FILENAME_COLORLUTTABLE "ColorLUTTable.bin" #define FILENAME_LOGO "Logo.bin" #define FILENAME_AUDIOROM "AudioROM.bin" #define FILENAME_KERNEL "vmlinux.dsc" #endif #define MERGEFEATURE "mergeImage.cfg" #define PATHNAME_BOOTROM "BootROM" #define PATHNAME_AUDIOROM "AudioROM" #define PATHNAME_OUTPUT "." #define FILENAME_CODEBIN "code.bin" #define FILENAME_DATABIN "data.bin" #define FILENAME_SAVEINFO "customer.save" #define FILENAME_BINWITHINFO "info.bin" #define FILENAME_PACKETIMAGE "update.packet" #define FILENAME_PACKETSAVE "update.save" #define FILENAME_MENUDFTTMP "MenuSettingDefault.bin" #define FILENAME_PQDFTTMP "PQSettingDefault.bin" #define FILENAME_AQDFTTMP "AQSettingDefault.bin" #define FILENAME_ColorTempDFTTMP "ColorTempSettingDefault.bin" #define FILENAME_MULTITABLETMP "Multitable.bin" #define FILENAME_MULTIFLAGTMP "Flag.bin" #define FILENAME_LOGOTMP "logo.tmp.bin" #define FILENAME_LOGOGZTMP "logo.tmp.bin.lzma" #define FILENAME_CAPLOGOTMP_SIZETAG "CAP_LOGO.tmp.bin.sizetag" #define FILENAME_CODETMP "code.tmp.bin" #define FILENAME_DATATMP "data.tmp.bin" #define FILENAME_ENCRYPTTMP "encrypt.tmp.bin" #define FILENAME_CODEVALID "code.valid.bin" #define FILENAME_DATAVALID "data.valid.bin" #define FILENAME_MICONFIG "mergeImage.cfg" #define FILENAME_TIMESTAMP "timestamp_info" #define FILENAME_CUSTABLEGZTMP "custable.table.lzma" #if 0 #define MODULENAME_SHELLROM "ShellROM" #define MODULENAME_8051ROM "8051ROM" #define MODULENAME_USBROM "USBROM" #define MODULENAME_EDID "EDID" #define MODULENAME_HDCPKEY "HDCPKey" #define MODULENAME_MAC "MAC" #define MODULENAME_CIKEY "CIKey" #define MODULENAME_VOLUMETABLE "VolumeTable" #define MODULENAME_MEMORYMAP "MemoryMap" #define MODULENAME_OPTION "Option" #define MODULENAME_PANELSET "PanelSet" #define MODULENAME_EXTRAPANELSET1 "ExtraPanelSet1" #define MODULENAME_EXTRAPANELSET2 "ExtraPanelSet2" #define MODULENAME_EXTRAPANELSET3 "ExtraPanelSet3" #define MODULENAME_VIPTABLE "VIPTable" #define MODULENAME_GAMMATABLE "GammaTable" #define MODULENAME_COLORLUTTABLE "ColorLUTTable" #define MODULENAME_LOGO "Logo" #define MODULENAME_JPEGROM "JpegROM" #define MODULENAME_KERNEL "Kernel" #define MODULENAME_MULTITABLE "MultiTable" #define MODULENAME_MT_FLAG "MT_Flag" #define MODULENAME_MT_AUDIODRV "MT_AudioDrv" #define MODULENAME_RRTTABLE "RRTTable" #else #define MODULENAME_BOOTROM "BootROM" #define MODULENAME_AUDIOROM "AudioROM" #endif //------------------------------------------------------------------------------- // debug / error / normal message //------------------------------------------------------------------------------- #if DBG_SHOW_DBG_MSG #define dbgMsg( args... ) printf( args ) #else #define dbgMsg( args... ) #endif #define errMsg( args... ) do{\ printf( "\n[Error] " );\ printf( args );\ }while(0) #define showMsg( args... ) printf( args ) //------------------------------------------------------------------------------- // mergeImage global variables //------------------------------------------------------------------------------- extern char miPacketName[FILENAME_SIZE]; extern char miConfigFile[FILENAME_SIZE]; extern char miCodeBinName[FILENAME_SIZE]; extern char miDataBinName[FILENAME_SIZE]; extern char miBinWithInfo[FILENAME_SIZE]; extern char miSaveInfoName[FILENAME_SIZE]; extern char miBaseImageName[FILENAME_SIZE]; extern char miOutputPathName[FILENAME_SIZE]; extern bool miGeneratePacketFlag; extern bool miDeleteTempFileFlag; extern bool miGenerateOriginalBinFlag; extern bool miJudgeDebugVersionFlag; //------------------------------------------------------------------------------- // Generate option by #define //------------------------------------------------------------------------------- #include #include int GetOptionData(void ); extern CUSTIMIZATION_TABLE OptionData; //------------------------------------------------------------------------------- #define ALIGNMENT( addr, size ) ( addr & ~(size-1) ) #define ROUND_UP( dividend, divisor ) ( ( (dividend) + (divisor-1) ) / (divisor) ) #define ROUND_KB( dividend ) ( ROUND_UP( dividend, 1024 ) ) #define ROUND_16B_ALIGNMENT( dividend ) ( ROUND_UP( dividend, 16 )*16 ) #if (SPI_ERASE_SIZE == (4*1024)) #define ROUND_SFS_ALIGNMENT( dividend ) ( ROUND_UP( dividend, 4*1024 )*4*1024 ) #else #define ROUND_SFS_ALIGNMENT( dividend ) ( ROUND_UP( dividend, 64*1024 )*64*1024 ) #endif #define ToString(x) #x #define MIN( a, b ) ( (a < b ) ? a : b ) #define MAX( a, b ) ( (a > b ) ? a : b ) //------------------------------------------------------------------------------- int sisspi_encrypt( const char *inFile, const char *outFile, int encryptMode ); #endif