summaryrefslogtreecommitdiffstats
path: root/tools/firmware-utils/src/apmib.h
blob: 19b971748e27d6504bdf9c1936213bd7e6e822fc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
#ifndef __APMIB_H
#define __APMIB_H

#ifndef WIN32
#define __PACK__        __attribute__ ((packed))
#else
#define __PACK__
#endif

#define BOOT_HEADER         ((char *)"boot")

#if defined(CONFIG_RTL_8196B)
#define ROOT_HEADER         ((char *)"r6br")
#elif defined(CONFIG_RTL_8196C) || defined(CONFIG_RTL_8198) || defined(CONFIG_RTL_819XD) || defined(CONFIG_RTL_8196E)
#define ROOT_HEADER         ((char *)"r6cr")
#else
#define ROOT_HEADER         ((char *)"root")
#endif //#if defined(CONFIG_RTL_8196B)

#if defined(CONFIG_RTL_8196B)
#if (defined(HOME_GATEWAY) && defined(VPN_SUPPORT))
#define WEB_HEADER          ((char *)"w6bv")
#elif (defined(HOME_GATEWAY))
#define WEB_HEADER          ((char *)"w6bg")
#else
#define WEB_HEADER          ((char *)"w6ba")
#endif
#elif defined(CONFIG_RTL_8196C) || defined(CONFIG_RTL_8198) || defined(CONFIG_RTL_819XD) || defined(CONFIG_RTL_8196E)
#if (defined(HOME_GATEWAY) && defined(VPN_SUPPORT))
#define WEB_HEADER          ((char *)"w6cv")
#elif (defined(HOME_GATEWAY))
#define WEB_HEADER          ((char *)"w6cg")
#else
#define WEB_HEADER          ((char *)"w6ca")
#endif
#else
#if (defined(HOME_GATEWAY) && defined(VPN_SUPPORT))
#define WEB_HEADER          ((char *)"webv")
#elif (defined(HOME_GATEWAY))
#define WEB_HEADER          ((char *)"webg")
#else
#define WEB_HEADER          ((char *)"weba")
#endif
#endif //#if defined(CONFIG_RTL_8196B)

#if defined(CONFIG_RTL_8196B)
#define FW_HEADER_WITH_ROOT ((char *)"cr6b")
#define FW_HEADER           ((char *)"cs6b")
#elif defined(CONFIG_RTL_8196C) || defined(CONFIG_RTL_8198) || defined(CONFIG_RTL_819XD) || defined(CONFIG_RTL_8196E)
#define FW_HEADER_WITH_ROOT ((char *)"cr6c")
#define FW_HEADER           ((char *)"cs6c")
#else
#define FW_HEADER_WITH_ROOT ((char *)"csro")
#define FW_HEADER           ((char *)"csys")
#endif //#if defined(CONFIG_RTL_8196B)

#define ALL_HEADER          ((char *)"allp")

#define HW_SETTING_OFFSET			0x6000
#define DEFAULT_SETTING_OFFSET		0x8000
#define CURRENT_SETTING_OFFSET		0xc000

#define DWORD_SWAP(v) ( (((v&0xff)<<24)&0xff000000) | ((((v>>8)&0xff)<<16)&0xff0000) | \
				                ((((v>>16)&0xff)<<8)&0xff00) | (((v>>24)&0xff)&0xff) )

#define WORD_SWAP(v) ((unsigned short)(((v>>8)&0xff) | ((v<<8)&0xff00)))

#define SIGNATURE_LEN           4

typedef struct img_header {
    unsigned char signature[SIGNATURE_LEN];
    unsigned int startAddr;
    unsigned int burnAddr;
    unsigned int len;
}__PACK__ IMG_HEADER_T, *IMG_HEADER_Tp;

#endif