| //-------------------------------------------------------- |
| // |
| // |
| // Melfas MCS8000 Series Download base v1.0 2010.04.05 |
| // |
| // |
| //-------------------------------------------------------- |
| |
| #ifndef __MELFAS_FIRMWARE_DOWNLOAD_H__ |
| #define __MELFAS_FIRMWARE_DOWNLOAD_H__ |
| |
| //===================================================================== |
| // |
| // MELFAS Firmware download pharameters |
| // |
| //===================================================================== |
| |
| #define MELFAS_TRANSFER_LENGTH (32/8) // Fixed value |
| #define MELFAS_FIRMWARE_MAX_SIZE (32*1024) |
| #define MELFAS_2CHIP_DOWNLOAD_ENABLE 0 // 0 : 1Chip Download, 1: 2Chip Download |
| // For delay function test. ( Disable after Porting is finished ) |
| #define MELFAS_ENABLE_DELAY_TEST 0 |
| // ISC download mode |
| #define MELFAS_CORE_FIRWMARE_UPDATE_ENABLE 1 // 0 : disable, 1: enable |
| #define MELFAS_PRIVATE_CONFIGURATION_UPDATE_ENABLE 1 // 0 : disable, 1: enable |
| #define MELFAS_PUBLIC_CONFIGURATION_UPDATE_ENABLE 1 // 0 : disable, 1: enable |
| |
| //---------------------------------------------------- |
| // ISC Mode |
| //---------------------------------------------------- |
| #define MELFAS_CRC_CHECK_ENABLE 1 |
| |
| #define ISC_MODE_SLAVE_ADDRESS 0x48 |
| |
| #define ISC_READ_DOWNLOAD_POSITION 0 //0 : USE ISC_PRIVATE_CONFIG_FLASH_START 1: READ FROM RMI MAP(0x61,0x62) |
| #define ISC_PRIVATE_CONFIG_FLASH_START 25 |
| #define ISC_PUBLIC_CONFIG_FLASH_START 28 |
| |
| //address for ISC MODE |
| #define ISC_DOWNLOAD_MODE_ENTER 0x5F |
| #define ISC_DOWNLOAD_MODE 0x60 |
| #define ISC_PRIVATE_CONFIGURATION_START_ADDR 0x61 |
| #define ISC_PUBLIC_CONFIGURATION_START_ADDR 0x62 |
| |
| #define ISC_READ_SLAVE_CRC_OK 0x63 // return value from slave |
| #define ISC_CORE_FIRMWARE_VERSION_ADDR 0x64 |
| |
| //mode |
| #define ISC_CORE_FIRMWARE_DL_MODE 0x01 |
| #define ISC_PRIVATE_CONFIGURATION_DL_MODE 0x02 |
| #define ISC_PUBLIC_CONFIGURATION_DL_MODE 0x03 |
| #define ISC_SLAVE_DOWNLOAD_START 0x04 |
| //---------------------------------------------------- |
| // ISP Mode |
| //---------------------------------------------------- |
| #define ISP_MODE_ERASE_FLASH 0x01 |
| #define ISP_MODE_SERIAL_WRITE 0x02 |
| #define ISP_MODE_SERIAL_READ 0x03 |
| #define ISP_MODE_NEXT_CHIP_BYPASS 0x04 |
| |
| //---------------------------------------------------- |
| // Return values of download function |
| //---------------------------------------------------- |
| #define MCSDL_RET_SUCCESS 0x00 |
| #define MCSDL_RET_ERASE_FLASH_VERIFY_FAILED 0x01 |
| #define MCSDL_RET_PROGRAM_VERIFY_FAILED 0x02 |
| #define MCSDL_FIRMWARE_UPDATE_MODE_ENTER_FAILED 0x03 |
| #define MCSDL_FIRMWARE_UPDATE_FAILED 0x04 |
| #define MCSDL_LEAVE_FIRMWARE_UPDATE_MODE_FAILED 0x05 |
| #define MCSTS_FIRMWARE_VER_REG_MASTER 0x31 //F/W Version MASTER |
| #define MCSTS_FIRMWARE_VER_REG_SLAVE 0x32 //F/W Version SLAVE |
| |
| #define MCSDL_RET_PROGRAM_SIZE_IS_WRONG 0x10 |
| #define MCSDL_RET_VERIFY_SIZE_IS_WRONG 0x11 |
| #define MCSDL_RET_WRONG_BINARY 0x12 |
| |
| #define MCSDL_RET_READING_HEXFILE_FAILED 0x21 |
| #define MCSDL_RET_FILE_ACCESS_FAILED 0x22 |
| #define MCSDL_RET_MELLOC_FAILED 0x23 |
| |
| #define MCSDL_RET_WRONG_MODULE_REVISION 0x30 |
| |
| //---------------------------------------------------- |
| // When you can't control VDD nor CE. |
| // Set this value 1 |
| // Then Melfas Chip can prepare chip reset. |
| //---------------------------------------------------- |
| #define MELFAS_USE_PROTOCOL_COMMAND_FOR_DOWNLOAD 0 // If 'enable download command' is needed ( Pinmap dependent option ). |
| |
| //============================================================ |
| // |
| // Delay parameter setting |
| // |
| // These are used on 'mcsdl_delay()' |
| // |
| //============================================================ |
| #if 1 //0905 SEC |
| void mcsdl_vdd_on(void); |
| void mcsdl_vdd_off(void); |
| #endif |
| |
| #define MCSDL_DELAY_1US 1 |
| #define MCSDL_DELAY_2US 2 |
| #define MCSDL_DELAY_3US 3 |
| #define MCSDL_DELAY_5US 5 |
| #define MCSDL_DELAY_7US 7 |
| #define MCSDL_DELAY_10US 10 |
| #define MCSDL_DELAY_15US 15 |
| #define MCSDL_DELAY_20US 20 |
| #define MCSDL_DELAY_40US 40 |
| |
| #define MCSDL_DELAY_100US 100 |
| #define MCSDL_DELAY_150US 150 |
| #define MCSDL_DELAY_300US 300 |
| #define MCSDL_DELAY_500US 500 |
| #define MCSDL_DELAY_800US 800 |
| |
| #define MCSDL_DELAY_1MS 1000 |
| #define MCSDL_DELAY_5MS 5000 |
| #define MCSDL_DELAY_10MS 10000 |
| #define MCSDL_DELAY_25MS 25000 |
| #define MCSDL_DELAY_30MS 30000 |
| #define MCSDL_DELAY_40MS 40000 |
| #define MCSDL_DELAY_45MS 45000 |
| #define MCSDL_DELAY_60MS 60000 |
| |
| //============================================================ |
| // |
| // Porting factors for Baseband |
| // |
| //============================================================ |
| #include "mcs8000_download_porting.h" |
| |
| //---------------------------------------------------- |
| // Functions |
| //---------------------------------------------------- |
| int mcsdl_download_binary_data(INT32 hw_ver); // with binary type .c file. |
| int mcsdl_download_binary_file(void); // with binary type .bin file. |
| #if MELFAS_ENABLE_DELAY_TEST |
| void mcsdl_delay_test(INT32 nCount); |
| #endif |
| int mms100_ISC_download_binary_data(int hw_ver); |
| |
| //--------------------------------- |
| // Delay functions |
| //--------------------------------- |
| void mcsdl_delay(UINT32 nCount); |
| |
| #endif //#ifndef __MELFAS_FIRMWARE_DOWNLOAD_H__ |