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