| /****************************************************************************** |
| *(C) Copyright 2008 Marvell International Ltd. |
| * All Rights Reserved |
| ******************************************************************************/ |
| #if !defined (UBOOT_MRD_H) |
| #include <common.h> |
| |
| #define UBOOT_MRD_H |
| |
| #define VALID_BUFFER_STAMP 0xCAFECAFE |
| #define CP_VALID_BUFFER_STAMP 0xCAFECAFE |
| #define END_BUF_STMP 0xDADADADA |
| |
| #define RD_OLD_FORMAT_VER 0x00001017 |
| #define RD_FORMAT_VER 0x00001020 |
| #define MRD_MAX_FILENAME 0x74 |
| |
| |
| #define IMEI_DATA_SIZE 32 |
| #define MRD_MAX_DATA_LEN 0x14000 //80*1024 |
| #define MRD_MAX_FILE_LEN 0x20000//(128*1024) |
| #define IMEI_VERSION 1 |
| #define SN_VERSION 1 |
| #define NVM_VERSION 1 |
| |
| #ifndef CONFIG_ASR_QSPI_NOR |
| #define MRD_IMAGE_TOTAL_SIZE (128*1024) |
| #define MRD_PARTITION_SIZE (256*1024) |
| #else |
| #define MRD_IMAGE_TOTAL_SIZE (32*1024) |
| #define MRD_PARTITION_SIZE (64*1024) |
| #endif |
| |
| #define MRD_PARTITION_PATTERN_MTD "/dev/block/mtdblock%d" |
| #define MRD_PARTITION_PATTERN_MMC "/dev/block/mmcblk0p%d" |
| |
| #define IMEI_NUM_FILE_NAME "IMEI.bin" |
| #define IMEI2_NUM_FILE_NAME "IMEI2.bin" |
| #define MEP1_FILE_NAME "MEP.bin" |
| #define MEP2_FILE_NAME "MEP2.bin" |
| #define MEP_ZTE_FILE_NAME "TTPCom_NRAM2_MEP_ZTE_FIX.gki" |
| #define NEW_ENCRYPT_MEP_FILE_NAME "MEP_FIX_ALIGN.bin" |
| #define NEW_ENCRYPT_MEP_RSA_FILE_NAME "MEP_RSA.bin" |
| |
| //Type of Reliable Data Components |
| typedef enum |
| { |
| MRD_IMEI_TYPE = 0xCAFE0010, |
| MRD_MEP_TYPE = 0xCAFE0015, |
| MRD_CDF_TYPE = 0xCAFE0020, |
| MRD_SN_TYPE = 0xCAFE0025, |
| MRD_GEN_DATA_TYPE = 0xCAFE0030, |
| MRD_ADF_TYPE = 0xAAAA0035, |
| MRD_VSIM_TYPE = 0xCAFE0185, |
| MRD_MEP_RSA_TYPE = 0xCAFE0190, |
| } MRD_FILE_TYPES; |
| |
| typedef struct { |
| u32 validBufferStamp; |
| u32 bufCheckSum; |
| } MRD_id_t; |
| |
| typedef struct { |
| MRD_id_t MRD_id; |
| u32 version; |
| u32 image_size; |
| u32 update_counter; |
| } MRD_header_t, *PMRD_header_t; |
| |
| typedef struct MRD_entry_header_t { |
| u32 entry_type; |
| u32 entry_size; |
| char fileName[MRD_MAX_FILENAME]; |
| u32 version; |
| u32 timestamp; // in C time |
| u32 header_checksum; |
| } MRD_entry_header_t, *PMRD_entry_header_t; |
| |
| u32 MRDFileHeaderOffsetGet( unsigned char *MRD_file_buffer, |
| char *MRD_filename, |
| u32 mrd_file_type, |
| u32 *file_size); |
| |
| u32 MRDFileOffsetGet(unsigned char *MRD_file_buffer, |
| char *MRD_filename, |
| u32 mrd_file_type, |
| u32 *file_size); |
| #endif |