blob: a690db47878ecb4a9a29155d8cec08d35fff3cc1 [file] [log] [blame]
/******************************************************************************
*(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