GUI: Fix Tomato RAF theme for all builds. Compilation typo.
[tomato.git] / release / src-rt-6.x.4708 / cfe / cfe / arch / mips / board / bcm963xx / include / bcmTag.h
blob9240e2b4271e5c92e9a0f2eef8d928bbb7be13f8
1 /*
2 <:copyright-gpl
3 Copyright 2002 Broadcom Corp. All Rights Reserved.
5 This program is free software; you can distribute it and/or modify it
6 under the terms of the GNU General Public License (Version 2) as
7 published by the Free Software Foundation.
9 This program is distributed in the hope it will be useful, but WITHOUT
10 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
12 for more details.
14 You should have received a copy of the GNU General Public License along
15 with this program; if not, write to the Free Software Foundation, Inc.,
16 59 Temple Place - Suite 330, Boston MA 02111-1307, USA.
19 //**************************************************************************************
20 // File Name : bcmTag.h
22 // Description: add tag with validation system to the firmware image file to be uploaded
23 // via http
25 // Created : 02/28/2002 seanl
26 //**************************************************************************************
28 #ifndef _BCMTAG_H_
29 #define _BCMTAG_H_
31 #define ERROR -1
33 #define BCM_SIG_1 "Broadcom Corporation"
34 #define BCM_SIG_2 "Firmware version 1.0"
35 #define BCM_TAG_VER "5"
37 // file tag (head) structure all is in clear text except validationTokens (crc, md5, sha1, etc). Total: 128 unsigned chars
38 #define TAG_LEN 256
39 #define TAG_VER_LEN 4
40 #define SIG_LEN 20
41 #define IMAGE_LEN 10
42 #define ADDRESS_LEN 12
43 #define FLAG_LEN 2
44 #define TOKEN_LEN 20
45 #define BOARD_ID_LEN 16
46 #define RESERVED_LEN (TAG_LEN-TAG_VER_LEN-BOARD_ID_LEN-(2*SIG_LEN)- \
47 (4*IMAGE_LEN)-(3*ADDRESS_LEN)-(3*FLAG_LEN)-(2*TOKEN_LEN))
50 // TAG for downloadable image (kernel plus file system)
51 typedef struct _FILE_TAG
53 unsigned char tagVersion[TAG_VER_LEN]; // tag version. Will be 2 here.
54 unsigned char signiture_1[SIG_LEN]; // text line for company info
55 unsigned char signiture_2[SIG_LEN]; // additional info (can be version number)
56 unsigned char boardId[BOARD_ID_LEN]; // board id
57 unsigned char bigEndian[FLAG_LEN]; // if = 1 - big, = 0 - little endia of the host
58 unsigned char totalImageLen[IMAGE_LEN]; // the sum of all the following length
59 unsigned char cfeAddress[ADDRESS_LEN]; // if non zero, cfe starting address
60 unsigned char cfeLen[IMAGE_LEN]; // if non zero, cfe size in clear ASCII text.
61 unsigned char rootfsAddress[ADDRESS_LEN]; // if non zero, filesystem starting address
62 unsigned char rootfsLen[IMAGE_LEN]; // if non zero, filesystem size in clear ASCII text.
63 unsigned char kernelAddress[ADDRESS_LEN]; // if non zero, kernel starting address
64 unsigned char kernelLen[IMAGE_LEN]; // if non zero, kernel size in clear ASCII text.
65 unsigned char dualImage[FLAG_LEN]; // if 1, dual image
66 unsigned char inactiveLen[FLAG_LEN]; // if 1, the image is INACTIVE; if 0, active
67 unsigned char reserved[RESERVED_LEN]; // reserved for later use
68 unsigned char imageValidationToken[TOKEN_LEN];// image validation token - can be crc, md5, sha; for
69 // now will be 4 unsigned char crc
70 unsigned char tagValidationToken[TOKEN_LEN]; // validation token for tag(from signiture_1 to end of // mageValidationToken)
71 } FILE_TAG, *PFILE_TAG;
73 #define CRC32_INIT_VALUE 0xffffffff /* Initial CRC32 checksum value */
74 #define CRC_LEN 4
76 // only included if for bcmTag.exe program
77 #ifdef BCMTAG_EXE_USE
79 static unsigned long Crc32_table[256] = {
80 0x00000000, 0x77073096, 0xEE0E612C, 0x990951BA,
81 0x076DC419, 0x706AF48F, 0xE963A535, 0x9E6495A3,
82 0x0EDB8832, 0x79DCB8A4, 0xE0D5E91E, 0x97D2D988,
83 0x09B64C2B, 0x7EB17CBD, 0xE7B82D07, 0x90BF1D91,
84 0x1DB71064, 0x6AB020F2, 0xF3B97148, 0x84BE41DE,
85 0x1ADAD47D, 0x6DDDE4EB, 0xF4D4B551, 0x83D385C7,
86 0x136C9856, 0x646BA8C0, 0xFD62F97A, 0x8A65C9EC,
87 0x14015C4F, 0x63066CD9, 0xFA0F3D63, 0x8D080DF5,
88 0x3B6E20C8, 0x4C69105E, 0xD56041E4, 0xA2677172,
89 0x3C03E4D1, 0x4B04D447, 0xD20D85FD, 0xA50AB56B,
90 0x35B5A8FA, 0x42B2986C, 0xDBBBC9D6, 0xACBCF940,
91 0x32D86CE3, 0x45DF5C75, 0xDCD60DCF, 0xABD13D59,
92 0x26D930AC, 0x51DE003A, 0xC8D75180, 0xBFD06116,
93 0x21B4F4B5, 0x56B3C423, 0xCFBA9599, 0xB8BDA50F,
94 0x2802B89E, 0x5F058808, 0xC60CD9B2, 0xB10BE924,
95 0x2F6F7C87, 0x58684C11, 0xC1611DAB, 0xB6662D3D,
96 0x76DC4190, 0x01DB7106, 0x98D220BC, 0xEFD5102A,
97 0x71B18589, 0x06B6B51F, 0x9FBFE4A5, 0xE8B8D433,
98 0x7807C9A2, 0x0F00F934, 0x9609A88E, 0xE10E9818,
99 0x7F6A0DBB, 0x086D3D2D, 0x91646C97, 0xE6635C01,
100 0x6B6B51F4, 0x1C6C6162, 0x856530D8, 0xF262004E,
101 0x6C0695ED, 0x1B01A57B, 0x8208F4C1, 0xF50FC457,
102 0x65B0D9C6, 0x12B7E950, 0x8BBEB8EA, 0xFCB9887C,
103 0x62DD1DDF, 0x15DA2D49, 0x8CD37CF3, 0xFBD44C65,
104 0x4DB26158, 0x3AB551CE, 0xA3BC0074, 0xD4BB30E2,
105 0x4ADFA541, 0x3DD895D7, 0xA4D1C46D, 0xD3D6F4FB,
106 0x4369E96A, 0x346ED9FC, 0xAD678846, 0xDA60B8D0,
107 0x44042D73, 0x33031DE5, 0xAA0A4C5F, 0xDD0D7CC9,
108 0x5005713C, 0x270241AA, 0xBE0B1010, 0xC90C2086,
109 0x5768B525, 0x206F85B3, 0xB966D409, 0xCE61E49F,
110 0x5EDEF90E, 0x29D9C998, 0xB0D09822, 0xC7D7A8B4,
111 0x59B33D17, 0x2EB40D81, 0xB7BD5C3B, 0xC0BA6CAD,
112 0xEDB88320, 0x9ABFB3B6, 0x03B6E20C, 0x74B1D29A,
113 0xEAD54739, 0x9DD277AF, 0x04DB2615, 0x73DC1683,
114 0xE3630B12, 0x94643B84, 0x0D6D6A3E, 0x7A6A5AA8,
115 0xE40ECF0B, 0x9309FF9D, 0x0A00AE27, 0x7D079EB1,
116 0xF00F9344, 0x8708A3D2, 0x1E01F268, 0x6906C2FE,
117 0xF762575D, 0x806567CB, 0x196C3671, 0x6E6B06E7,
118 0xFED41B76, 0x89D32BE0, 0x10DA7A5A, 0x67DD4ACC,
119 0xF9B9DF6F, 0x8EBEEFF9, 0x17B7BE43, 0x60B08ED5,
120 0xD6D6A3E8, 0xA1D1937E, 0x38D8C2C4, 0x4FDFF252,
121 0xD1BB67F1, 0xA6BC5767, 0x3FB506DD, 0x48B2364B,
122 0xD80D2BDA, 0xAF0A1B4C, 0x36034AF6, 0x41047A60,
123 0xDF60EFC3, 0xA867DF55, 0x316E8EEF, 0x4669BE79,
124 0xCB61B38C, 0xBC66831A, 0x256FD2A0, 0x5268E236,
125 0xCC0C7795, 0xBB0B4703, 0x220216B9, 0x5505262F,
126 0xC5BA3BBE, 0xB2BD0B28, 0x2BB45A92, 0x5CB36A04,
127 0xC2D7FFA7, 0xB5D0CF31, 0x2CD99E8B, 0x5BDEAE1D,
128 0x9B64C2B0, 0xEC63F226, 0x756AA39C, 0x026D930A,
129 0x9C0906A9, 0xEB0E363F, 0x72076785, 0x05005713,
130 0x95BF4A82, 0xE2B87A14, 0x7BB12BAE, 0x0CB61B38,
131 0x92D28E9B, 0xE5D5BE0D, 0x7CDCEFB7, 0x0BDBDF21,
132 0x86D3D2D4, 0xF1D4E242, 0x68DDB3F8, 0x1FDA836E,
133 0x81BE16CD, 0xF6B9265B, 0x6FB077E1, 0x18B74777,
134 0x88085AE6, 0xFF0F6A70, 0x66063BCA, 0x11010B5C,
135 0x8F659EFF, 0xF862AE69, 0x616BFFD3, 0x166CCF45,
136 0xA00AE278, 0xD70DD2EE, 0x4E048354, 0x3903B3C2,
137 0xA7672661, 0xD06016F7, 0x4969474D, 0x3E6E77DB,
138 0xAED16A4A, 0xD9D65ADC, 0x40DF0B66, 0x37D83BF0,
139 0xA9BCAE53, 0xDEBB9EC5, 0x47B2CF7F, 0x30B5FFE9,
140 0xBDBDF21C, 0xCABAC28A, 0x53B39330, 0x24B4A3A6,
141 0xBAD03605, 0xCDD70693, 0x54DE5729, 0x23D967BF,
142 0xB3667A2E, 0xC4614AB8, 0x5D681B02, 0x2A6F2B94,
143 0xB40BBE37, 0xC30C8EA1, 0x5A05DF1B, 0x2D02EF8D
145 #endif // BCMTAG_USE
148 #endif // _BCMTAG_H_