xref: /OK3568_Linux_fs/external/rktoolkit/update_recv/DefineHeader.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun #ifndef DEFINE_HEADER
2*4882a593Smuzhiyun #define DEFINE_HEADER
3*4882a593Smuzhiyun 
4*4882a593Smuzhiyun typedef unsigned int u_int32;
5*4882a593Smuzhiyun typedef unsigned char u_int8;
6*4882a593Smuzhiyun typedef unsigned char BYTE;
7*4882a593Smuzhiyun typedef signed char CHAR;
8*4882a593Smuzhiyun typedef BYTE *PBYTE;
9*4882a593Smuzhiyun typedef unsigned char UCHAR;
10*4882a593Smuzhiyun typedef unsigned short WCHAR;
11*4882a593Smuzhiyun typedef unsigned short USHORT;
12*4882a593Smuzhiyun typedef unsigned int	UINT;
13*4882a593Smuzhiyun typedef unsigned int	DWORD;
14*4882a593Smuzhiyun 
15*4882a593Smuzhiyun typedef char tchar;
16*4882a593Smuzhiyun 
17*4882a593Smuzhiyun #define LBA_TRANSFER_SIZE		16*1024
18*4882a593Smuzhiyun #define LBA_LOOP_SIZE			1024*1024
19*4882a593Smuzhiyun 
20*4882a593Smuzhiyun #define MAX_PACKAGE_FILES		16
21*4882a593Smuzhiyun #define RKIMAGE_TAG				0x46414B52
22*4882a593Smuzhiyun #define PARTNAME_BOOTLOADER		"bootloader"
23*4882a593Smuzhiyun #define PARTNAME_PARAMETER		"parameter"
24*4882a593Smuzhiyun #define PARTNAME_KERNEL			"kernel"
25*4882a593Smuzhiyun #define PARTNAME_BOOT			"boot"
26*4882a593Smuzhiyun #define PARTNAME_RECOVERY		"recovery"
27*4882a593Smuzhiyun #define PARTNAME_SYSTEM			"system"
28*4882a593Smuzhiyun #define PARTNAME_MISC			"misc"
29*4882a593Smuzhiyun #define PARTNAME_BACKUP			"backup"
30*4882a593Smuzhiyun #define PARTNAME_USERDATA		"userdata"
31*4882a593Smuzhiyun #define PARTNAME_USER			"user"
32*4882a593Smuzhiyun 
33*4882a593Smuzhiyun #define MAX_MANUFACTURER		60
34*4882a593Smuzhiyun #define MAX_MACHINE_INFO		30
35*4882a593Smuzhiyun #define MAX_MACHINE_MODEL		34
36*4882a593Smuzhiyun #define RELATIVE_PATH			60
37*4882a593Smuzhiyun #define PART_NAME				32
38*4882a593Smuzhiyun #define  IMAGE_RESERVED_SIZE	61
39*4882a593Smuzhiyun 
40*4882a593Smuzhiyun typedef enum
41*4882a593Smuzhiyun {
42*4882a593Smuzhiyun 	RKNONE_DEVICE=0,
43*4882a593Smuzhiyun 	RK27_DEVICE=0x10,
44*4882a593Smuzhiyun 	RKCAYMAN_DEVICE,
45*4882a593Smuzhiyun 	RK28_DEVICE=0x20,
46*4882a593Smuzhiyun 	RK281X_DEVICE,
47*4882a593Smuzhiyun 	RKPANDA_DEVICE,
48*4882a593Smuzhiyun 	RKNANO_DEVICE=0x30,
49*4882a593Smuzhiyun 	RKSMART_DEVICE,
50*4882a593Smuzhiyun 	RKCROWN_DEVICE=0x40,
51*4882a593Smuzhiyun 	RK29_DEVICE=0x50,
52*4882a593Smuzhiyun 	RK292X_DEVICE,
53*4882a593Smuzhiyun 	RK30_DEVICE=0x60,
54*4882a593Smuzhiyun 	RK30B_DEVICE,
55*4882a593Smuzhiyun 	RK31_DEVICE=0x70,
56*4882a593Smuzhiyun 	RK32_DEVICE=0x80
57*4882a593Smuzhiyun }ENUM_RKDEVICE_TYPE;
58*4882a593Smuzhiyun 
59*4882a593Smuzhiyun typedef enum
60*4882a593Smuzhiyun {
61*4882a593Smuzhiyun 	RK_OS=0,
62*4882a593Smuzhiyun 	ANDROID_OS=0x1
63*4882a593Smuzhiyun }ENUM_OS_TYPE;
64*4882a593Smuzhiyun 
65*4882a593Smuzhiyun #pragma pack(1)
66*4882a593Smuzhiyun typedef struct
67*4882a593Smuzhiyun {
68*4882a593Smuzhiyun 	char name[PART_NAME];// ��������
69*4882a593Smuzhiyun 	char file[RELATIVE_PATH];// ���·��������ȡ�ļ�ʱ�õ�
70*4882a593Smuzhiyun 	unsigned int part_size;//����ռ��������
71*4882a593Smuzhiyun 	unsigned int offset;// �ļ���Image�е�ƫ��
72*4882a593Smuzhiyun 	unsigned int flash_offset;// ��д��Flash�е�λ��(��sectorΪ��λ)
73*4882a593Smuzhiyun 	unsigned int usespace;// �ļ�ռ�ÿռ䣨��PAGE����)
74*4882a593Smuzhiyun 	unsigned int size;// �ֽ�����ʵ���ļ���С
75*4882a593Smuzhiyun }STRUCT_RKIMAGE_ITEM,*PSTRUCT_RKIMAGE_ITEM;
76*4882a593Smuzhiyun 
77*4882a593Smuzhiyun typedef struct
78*4882a593Smuzhiyun {
79*4882a593Smuzhiyun 	USHORT	usYear;
80*4882a593Smuzhiyun 	BYTE	ucMonth;
81*4882a593Smuzhiyun 	BYTE  	ucDay;
82*4882a593Smuzhiyun 	BYTE  	ucHour;
83*4882a593Smuzhiyun 	BYTE  	ucMinute;
84*4882a593Smuzhiyun 	BYTE  	ucSecond;
85*4882a593Smuzhiyun }STRUCT_RKTIME,*PSTRUCT_RKTIME;
86*4882a593Smuzhiyun 
87*4882a593Smuzhiyun typedef struct
88*4882a593Smuzhiyun {
89*4882a593Smuzhiyun 	char szItemName[20];
90*4882a593Smuzhiyun 	UINT uiItemOffset;
91*4882a593Smuzhiyun 	UINT uiItemSize;
92*4882a593Smuzhiyun }STRUCT_PARAM_ITEM,*PSTRUCT_PARAM_ITEM;
93*4882a593Smuzhiyun 
94*4882a593Smuzhiyun typedef struct
95*4882a593Smuzhiyun {
96*4882a593Smuzhiyun 	char szItemName[20];
97*4882a593Smuzhiyun 	char szItemValue[256];
98*4882a593Smuzhiyun }STRUCT_CONFIG_ITEM,*PSTRUCT_CONFIG_ITEM;
99*4882a593Smuzhiyun 
100*4882a593Smuzhiyun typedef struct
101*4882a593Smuzhiyun {
102*4882a593Smuzhiyun 	UINT uiTag;
103*4882a593Smuzhiyun 	USHORT usSize;
104*4882a593Smuzhiyun 	DWORD  dwVersion;
105*4882a593Smuzhiyun 	DWORD  dwMergeVersion;
106*4882a593Smuzhiyun 	STRUCT_RKTIME stReleaseTime;
107*4882a593Smuzhiyun 	ENUM_RKDEVICE_TYPE emSupportChip;
108*4882a593Smuzhiyun 	DWORD  dwBootOffset;
109*4882a593Smuzhiyun 	DWORD  dwBootSize;
110*4882a593Smuzhiyun 	DWORD  dwFWOffset;
111*4882a593Smuzhiyun 	DWORD  dwFWSize;
112*4882a593Smuzhiyun 	BYTE   reserved[IMAGE_RESERVED_SIZE];
113*4882a593Smuzhiyun }STRUCT_RKIMAGE_HEAD,*PSTRUCT_RKIMAGE_HEAD;
114*4882a593Smuzhiyun 
115*4882a593Smuzhiyun typedef struct tagRKIMAGE_HDR
116*4882a593Smuzhiyun {
117*4882a593Smuzhiyun 	unsigned int tag;
118*4882a593Smuzhiyun 	unsigned int size;// �ļ���С������ĩβ��CRCУ����
119*4882a593Smuzhiyun 	char machine_model[MAX_MACHINE_MODEL];
120*4882a593Smuzhiyun 	char machine_info[MAX_MACHINE_INFO];
121*4882a593Smuzhiyun 	char manufacturer[MAX_MANUFACTURER];
122*4882a593Smuzhiyun 	unsigned int dwFWVer;
123*4882a593Smuzhiyun 	int item_count;
124*4882a593Smuzhiyun 	STRUCT_RKIMAGE_ITEM item[MAX_PACKAGE_FILES];
125*4882a593Smuzhiyun }STRUCT_RKIMAGE_HDR,*PSTRUCT_RKIMAGE_HDR;
126*4882a593Smuzhiyun 
127*4882a593Smuzhiyun #pragma pack()
128*4882a593Smuzhiyun 
129*4882a593Smuzhiyun #endif
130