.gitignore: update to ignore all make created files
[keystone-rtos/ibl.git] / src / interp / coff / params.h
1 /*
2  *
3  * Copyright (C) 2010 Texas Instruments Incorporated - http://www.ti.com/ 
4  * 
5  * 
6  *  Redistribution and use in source and binary forms, with or without 
7  *  modification, are permitted provided that the following conditions 
8  *  are met:
9  *
10  *    Redistributions of source code must retain the above copyright 
11  *    notice, this list of conditions and the following disclaimer.
12  *
13  *    Redistributions in binary form must reproduce the above copyright
14  *    notice, this list of conditions and the following disclaimer in the 
15  *    documentation and/or other materials provided with the   
16  *    distribution.
17  *
18  *    Neither the name of Texas Instruments Incorporated nor the names of
19  *    its contributors may be used to endorse or promote products derived
20  *    from this software without specific prior written permission.
21  *
22  *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 
23  *  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 
24  *  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
25  *  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 
26  *  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 
27  *  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 
28  *  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
29  *  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
30  *  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
31  *  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
32  *  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
33  *
34 */
38 /****************************************************************************/
39 /*  PARAMS.H  - Target dependent parameters.                                */
40 /****************************************************************************/
42 #if TMS340
43 typedef unsigned int  T_ADDR;          /* TYPE FOR TARGET ADDRESS          */
44 typedef unsigned short T_DATA;          /* TYPE FOR TARGET DATA WORD        */
45 typedef unsigned short T_SIZE;          /* TYPE FOR CINIT SIZE FIELD        */
46 typedef unsigned int  T_IADDR;         /* TYPE FOR CINIT ADDRESS FIELD     */
47 typedef unsigned short T_INSTRUCT;      /* TYPE FOR INSTRUCTION OPCODE      */
49 #define MAGIC         MAGIC_340
50 /* #define NEW_SYM_NDX   1 USE 32-bit SYMBOL INDEX, NO DISP */
51 #define BYTETOLOC(x)  ((T_ADDR)(x)<<3)  /* CONVERT ADDRESSES TO BYTES       */
52 #define LOCTOBYTE(x)  ((x)>>3)          /* CONVERT BYTES TO ADDRESSES       */
53 #define BIT_OFFSET(a) ((a)&7)           /* BIT OFFSET OF ADDR WITHIN BYTE   */
55 #ifdef OTIS
56 #define LOADBUFSIZE   (TRG_MAX_MBLK/8)  /* USE OTIS BUFFER SIZE             */
57 #else
58 #define LOADBUFSIZE   0x1000            /* 16K BUFFER FOR LOADING DATA      */
59 #endif
61 #define LOADWORDSIZE  2                 /* MINIMUM DIVISOR OF LOAD SIZE     */
62 #define CINIT         ".cinit"          /* NAME OF CINIT SECTION            */
63 #define INIT_ALIGN    1                 /* ALIGNMENT OF CINIT RECORDS       */
64 #define INIT_WSIZE    2                 /* SIZE IN BYTES OF INIT DATA ITEMS */
65 #endif
67 #if TMS32030 || TMS32040
68 typedef unsigned int  T_ADDR;          /* TYPE FOR TARGET ADDRESS          */
69 typedef unsigned int  T_DATA;          /* TYPE FOR TARGET DATA WORD        */
70 typedef unsigned int  T_SIZE;          /* TYPE FOR CINIT SIZE FIELD        */
71 typedef unsigned int  T_IADDR;         /* TYPE FOR CINIT ADDRESS FIELD     */
72 typedef unsigned int  T_INSTRUCT;      /* TYPE FOR INSTRUCTION OPCODE      */
74 #define MAGIC MAGIC_C30                 /* Magic number for C30             */
76 #define LOCTOBYTE(x)   ((x)<<2)         /* C30 word addrs to byte addrs     */
77 #define BYTETOLOC(x)   ((x)>>2)         /* byte addrs to word addrs         */
78 #define BIT_OFFSET(a)  (0)              /* BIT OFFSET OF ADDR WITHIN BYTE   */
80 #ifdef OTIS
81 #define LOADBUFSIZE   (TRG_MAX_MBLK/8)  /* USE OTIS BUFFER SIZE             */
82 #else
83 #define LOADBUFSIZE   0x0FF8            /* 4K-8 BUFFER FOR LOADING DATA     */
84 #endif
86 #define LOADWORDSIZE  2                 /* MINIMUM DIVISOR OF LOAD SIZE     */
87 #define CINIT         ".cinit"          /* NAME OF CINIT SECTION            */
88 #define INIT_ALIGN    1                 /* ALIGNMENT OF CINIT RECORDS       */
89 #define INIT_WSIZE    4                 /* SIZE IN BYTES OF INIT DATA ITEMS */
90 #endif
92 #if TMS32025 || TMS32050
93 typedef unsigned short T_ADDR;          /* TYPE FOR TARGET ADDRESS          */
94 typedef unsigned short T_DATA;          /* TYPE FOR TARGET DATA WORD        */
95 typedef unsigned short T_SIZE;          /* TYPE FOR CINIT SIZE FIELD        */
96 typedef unsigned short T_IADDR;         /* TYPE FOR CINIT ADDRESS FIELD     */
97 typedef unsigned short T_INSTRUCT;      /* TYPE FOR INSTRUCTION OPCODE      */
99 #define MAGIC MAGIC_DSP                 /* Magic number for C25            */
101 #define LOCTOBYTE(x)   ((x)<<1)         /* 16-bit word addrs to byte addrs */
102 #define BYTETOLOC(x)   ((x)>>1)         /* byte addrs to word addrs        */
103 #define BIT_OFFSET(a)  (0)              /* BIT OFFSET OF ADDR WITHIN BYTE   */
105 #ifdef OTIS
106 #define LOADBUFSIZE   (TRG_MAX_MBLK/8)  /* USE OTIS BUFFER SIZE             */
107 #else
108 #define LOADBUFSIZE   0x4000            /* 16K BUFFER FOR LOADING DATA      */
109 #endif /* ifdef OTIS */
111 #define LOADWORDSIZE  2                 /* MINIMUM DIVISOR OF LOAD SIZE     */
112 #define CINIT         ".cinit"          /* NAME OF CINIT SECTION            */
113 #define INIT_ALIGN    1                 /* ALIGNMENT OF CINIT RECORDS       */
114 #define INIT_WSIZE    2                 /* SIZE IN BYTES OF INIT DATA ITEMS */
116 #endif /* TMS32025 || TMS32050 */
118 #if TMS380
119 typedef unsigned short T_ADDR;          /* TYPE FOR TARGET ADDRESS          */
120 typedef unsigned short T_DATA;          /* TYPE FOR TARGET DATA WORD        */
121 typedef unsigned short T_SIZE;          /* TYPE FOR CINIT SIZE FIELD        */
122 typedef unsigned short T_IADDR;         /* TYPE FOR CINIT ADDRESS FIELD     */
123 typedef unsigned short T_INSTRUCT;      /* TYPE FOR INSTRUCTION OPCODE      */
125 #define MAGIC MAGIC_380                 /* Magic number for TMS380         */
127 #define LOCTOBYTE(x)   x                /* 16-bit byte addrs to byte addrs */
128 #define BYTETOLOC(x)   x                /* byte addrs to byte addrs        */
129 #define BIT_OFFSET(a)  (0)              /* BIT OFFSET OF ADDR WITHIN BYTE   */
131 #ifdef OTIS
132 #define LOADBUFSIZE   (TRG_MAX_MBLK/8)  /* USE OTIS BUFFER SIZE             */
133 #else
134 #define LOADBUFSIZE   0x4000            /* 16K BUFFER FOR LOADING DATA      */
135 #endif
137 #define LOADWORDSIZE  2                 /* MINIMUM DIVISOR OF LOAD SIZE     */
138 #define CINIT         ".cinit"          /* NAME OF CINIT SECTION            */
139 #define INIT_ALIGN    2                 /* ALIGNMENT OF CINIT RECORDS       */
140 #define INIT_WSIZE    1                 /* SIZE IN BYTES OF INIT DATA ITEMS */
141 #endif
143 #if TMS370 || TMS370C8
144 typedef unsigned short T_ADDR;          /* TYPE FOR TARGET ADDRESS          */
145 typedef unsigned char  T_DATA;          /* TYPE FOR TARGET DATA WORD        */
146 typedef unsigned short T_SIZE;          /* TYPE FOR CINIT SIZE FIELD        */
147 typedef unsigned short T_IADDR;         /* TYPE FOR CINIT ADDRESS FIELD     */
148 typedef unsigned char  T_INSTRUCT;      /* TYPE FOR INSTRUCTION OPCODE      */
150 #define MAGIC MAGIC_370                 /* 370 Magic Number                 */
152 #define LOCTOBYTE(x)   x                /* 370 addresses are same as bytes  */
153 #define BYTETOLOC(x)   x
154 #define BIT_OFFSET(a)  (0)              /* BIT OFFSET OF ADDR WITHIN BYTE   */
156 #ifdef OTIS
157 #define LOADBUFSIZE   (TRG_MAX_MBLK/8)  /* USE OTIS BUFFER SIZE             */
158 #else
159 #define LOADBUFSIZE   0x4000            /* 16K BUFFER FOR LOADING DATA      */
160 #endif
162 #define LOADWORDSIZE  2                 /* MINIMUM DIVISOR OF LOAD SIZE     */
163 #define CINIT         ".cinit"          /* NAME OF CINIT SECTION            */
164 #define INIT_ALIGN    1                 /* ALIGNMENT OF CINIT RECORDS       */
165 #define INIT_WSIZE    1                 /* SIZE IN BYTES OF INIT DATA ITEMS */
166 #endif
168 #if MVP_PP
169 typedef unsigned int  T_ADDR;          /* TYPE FOR TARGET ADDRESS          */
170 typedef unsigned int  T_DATA;          /* TYPE FOR TARGET DATA WORD        */
171 typedef unsigned int  T_SIZE;          /* TYPE FOR CINIT SIZE FIELD        */
172 typedef unsigned int  T_IADDR;         /* TYPE FOR CINIT ADDRESS FIELD     */
174 typedef struct {unsigned int ins_h; unsigned int ins_l; } T_INSTRUCT;      
175                                         /* TYPE FOR INSTRUCTION OPCODE      */
177 #define MAGIC MAGIC_MVP                 /* PP  Magic Number                 */
179 #define LOCTOBYTE(x)   (x)              /* PP  addresses are same as bytes  */
180 #define BYTETOLOC(x)   (x)
181 #define BIT_OFFSET(a)  (0)              /* BIT OFFSET OF ADDR WITHIN BYTE   */
183 #ifdef OTIS
184 #define LOADBUFSIZE   (TRG_MAX_MBLK/8)  /* USE OTIS BUFFER SIZE             */
185 #else
186 #define LOADBUFSIZE   0x4000            /* 16K BUFFER FOR LOADING DATA      */
187 #endif
189 #define LOADWORDSIZE  8                 /* MINIMUM DIVISOR OF LOAD SIZE     */
190 #define CINIT         ".cinit"          /* NAME OF CINIT SECTION            */
191 #define INIT_ALIGN    8                 /* ALIGNMENT OF CINIT RECORDS       */
192 #define INIT_WSIZE    4                 /* SIZE IN BYTES OF INIT DATA ITEMS */
193 #endif
195 #if MVP_MP
196 typedef unsigned int  T_ADDR;          /* TYPE FOR TARGET ADDRESS          */
197 typedef unsigned int  T_DATA;          /* TYPE FOR TARGET DATA WORD        */
198 typedef unsigned int  T_SIZE;          /* TYPE FOR CINIT SIZE FIELD        */
199 typedef unsigned int  T_IADDR;         /* TYPE FOR CINIT ADDRESS FIELD     */
200 typedef unsigned int  T_INSTRUCT;      /* TYPE FOR INSTRUCTION OPCODE      */
202 #define FT_IEEE_FLT             1
203 #define FT_IEEE_DBL             2
204 #define FLT_PRECISION           4
206 typedef struct trg_fval {
207         unsigned int    fval1;
208         unsigned int    fval2;
209 } TRG_FVAL;
211 #define MAGIC MAGIC_MVP                 /* MP  Magic Number                 */
213 #define LOCTOBYTE(x)   (x)              /* MP  addresses are same as bytes  */
214 #define BYTETOLOC(x)   (x)
215 #define BIT_OFFSET(a)  (0)              /* BIT OFFSET OF ADDR WITHIN BYTE   */
217 #ifdef OTIS
218 #define LOADBUFSIZE   (TRG_MAX_MBLK/8)  /* USE OTIS BUFFER SIZE             */
219 #else
220 #define LOADBUFSIZE   0x4000            /* 16K BUFFER FOR LOADING DATA      */
221 #endif
223 #define LOADWORDSIZE  8                 /* MINIMUM DIVISOR OF LOAD SIZE     */
224 #define CINIT         ".cinit"          /* NAME OF CINIT SECTION            */
225 #define INIT_ALIGN    8                 /* ALIGNMENT OF CINIT RECORDS       */
226 #define INIT_WSIZE    4                 /* SIZE IN BYTES OF INIT DATA ITEMS */
227 #endif
229 #if LEAD
230 typedef unsigned short T_ADDR;          /* TYPE FOR TARGET ADDRESS          */
231 typedef unsigned short T_DATA;          /* TYPE FOR TARGET DATA WORD        */
232 typedef unsigned short T_SIZE;          /* TYPE FOR CINIT SIZE FIELD        */
233 typedef unsigned short T_IADDR;         /* TYPE FOR CINIT ADDRESS FIELD     */
234 typedef unsigned short T_INSTRUCT;      /* TYPE FOR INSTRUCTION OPCODE      */
236 #define MAGIC MAGIC_LEAD                /* Magic number for C25            */
238 #define LOCTOBYTE(x)   ((x)<<1)         /* 16-bit word addrs to byte addrs */
239 #define BYTETOLOC(x)   ((x)>>1)         /* byte addrs to word addrs        */
240 #define BIT_OFFSET(a)  (0)              /* BIT OFFSET OF ADDR WITHIN BYTE   */
242 #ifdef OTIS
243 #define LOADBUFSIZE   (TRG_MAX_MBLK/8)  /* USE OTIS BUFFER SIZE             */
244 #else
245 #define LOADBUFSIZE   0x4000            /* 16K BUFFER FOR LOADING DATA      */
246 #endif /* ifdef OTIS */
248 #define LOADWORDSIZE  2                 /* MINIMUM DIVISOR OF LOAD SIZE     */
249 #define CINIT         ".cinit"          /* NAME OF CINIT SECTION            */
250 #define INIT_ALIGN    1                 /* ALIGNMENT OF CINIT RECORDS       */
251 #define INIT_WSIZE    2                 /* SIZE IN BYTES OF INIT DATA ITEMS */
253 #endif /* LEAD */
255 #if LEAD3
256 typedef unsigned int  T_ADDR;          /* TYPE FOR TARGET ADDRESS          */
257 typedef unsigned short T_DATA;          /* TYPE FOR TARGET DATA WORD        */
258 typedef unsigned short T_SIZE;          /* TYPE FOR CINIT SIZE FIELD        */
259 typedef unsigned int  T_IADDR;         /* TYPE FOR CINIT ADDRESS FIELD     */
260 typedef unsigned int  T_INSTRUCT;      /* TYPE FOR INSTRUCTION OPCODE      */
262 #define MAGIC MAGIC_LEAD3               /* Magic number for C55             */
264 #define LOCTOBYTE(x)   (x)              /* LEAD3 is byte addressable        */
265 #define BYTETOLOC(x)   (x)              /* LEAD3 is byte addressable        */
266 #define BIT_OFFSET(a)  (0)              /* BIT OFFSET OF ADDR WITHIN BYTE   */
268 #ifdef OTIS
269 #define LOADBUFSIZE   (TRG_MAX_MBLK/8)  /* USE OTIS BUFFER SIZE             */
270 #else
271 #define LOADBUFSIZE   0x4000            /* 16K BUFFER FOR LOADING DATA      */
272 #endif /* ifdef OTIS */
274 #define LOADWORDSIZE  2                 /* MINIMUM DIVISOR OF LOAD SIZE     */
275 #define CINIT         ".cinit"          /* NAME OF CINIT SECTION            */
276 #define INIT_ALIGN    1                 /* ALIGNMENT OF CINIT RECORDS       */
277 #define INIT_WSIZE    2                 /* SIZE IN BYTES OF INIT DATA ITEMS */
279 #endif /* LEAD3 */
281 #if ARM
282 typedef unsigned int T_ADDR;           /* TYPE FOR TARGET ADDRESS          */
283 typedef unsigned int T_DATA;           /* TYPE FOR TARGET DATA WORD        */
284 typedef unsigned int T_SIZE;           /* TYPE FOR CINIT SIZE FIELD        */
285 typedef unsigned int T_IADDR;          /* TYPE FOR CINIT ADDRESS FIELD     */
286 typedef unsigned int T_INSTRUCT;       /* TYPE FOR INSTRUCTION OPCODE      */
288 #define MAGIC MAGIC_ARM                 /* Magic number for ARM             */
290 #define LOCTOBYTE(x)   (x)              /* ARM addresses are same as bytes  */
291 #define BYTETOLOC(x)   (x)
292 #define BIT_OFFSET(a)  (0)              /* BIT OFFSET OF ADDR WITHIN BYTE   */
294 #ifdef OTIS
295 #define LOADBUFSIZE   (TRG_MAX_MBLK/8)  /* USE OTIS BUFFER SIZE             */
296 #else
297 #define LOADBUFSIZE   0x4000            /* 16K BUFFER FOR LOADING DATA      */
298 #endif
300 #define LOADWORDSIZE  4                 /* MINIMUM DIVISOR OF LOAD SIZE     */
301 #define CINIT         ".cinit"          /* NAME OF CINIT SECTION            */
302 #define INIT_ALIGN    4                 /* ALIGNMENT OF CINIT RECORDS       */
303 #define INIT_WSIZE    4                 /* SIZE IN BYTES OF INIT DATA ITEMS */
305 #endif /* ARM */
307 #if TMS32060
308 typedef unsigned int  T_ADDR;          /* TYPE FOR TARGET ADDRESS          */
309 typedef unsigned int  T_DATA;          /* TYPE FOR TARGET DATA WORD        */
310 typedef unsigned int  T_SIZE;          /* TYPE FOR CINIT SIZE FIELD        */
311 typedef unsigned int  T_IADDR;         /* TYPE FOR CINIT ADDRESS FIELD     */
312 typedef unsigned int  T_INSTRUCT;      /* TYPE FOR INSTRUCTION OPCODE      */
314 #define FT_IEEE_FLT             1
315 #define FT_IEEE_DBL             2
316 #define FLT_PRECISION           4
318 typedef struct trg_fval {
319         unsigned int    fval1;
320         unsigned int    fval2;
321 } TRG_FVAL;
323 #define MAGIC MAGIC_C60                 /* C60 Magic Number                 */
325 #define LOCTOBYTE(x)   (x)              /* C60 addresses are same as bytes  */
326 #define BYTETOLOC(x)   (x)
327 #define BIT_OFFSET(a)  (0)              /* BIT OFFSET OF ADDR WITHIN BYTE   */
329 #ifdef OTIS
330 #define LOADBUFSIZE   (TRG_MAX_MBLK/8)  /* USE OTIS BUFFER SIZE             */
331 #else
332 #define LOADBUFSIZE   0x4000            /* 16K BUFFER FOR LOADING DATA      */
333 //#define UNBUFFERED            1
334 #endif
336 #define LOADWORDSIZE  8                 /* MINIMUM DIVISOR OF LOAD SIZE     */
337 #define CINIT         ".cinit"          /* NAME OF CINIT SECTION            */
338 #define INIT_ALIGN    8                 /* ALIGNMENT OF CINIT RECORDS       */
339 #define INIT_WSIZE    4                 /* SIZE IN BYTES OF INIT DATA ITEMS */
340 #endif
342 #if VIVID
343 typedef unsigned int  T_ADDR;          /* TYPE FOR TARGET ADDRESS          */
344 typedef unsigned int  T_DATA;          /* TYPE FOR TARGET DATA WORD        */
345 typedef unsigned int  T_SIZE;          /* TYPE FOR CINIT SIZE FIELD        */
346 typedef unsigned int  T_IADDR;         /* TYPE FOR CINIT ADDRESS FIELD     */
347 typedef unsigned int  T_INSTRUCT;      /* TYPE FOR INSTRUCTION OPCODE      */
349 #define FT_IEEE_FLT             1
350 #define FT_IEEE_DBL             2
351 #define FLT_PRECISION           4
353 typedef struct trg_fval {
354         unsigned int    fval1;
355         unsigned int    fval2;
356 } TRG_FVAL;
358 #define MAGIC MAGIC_VIVID               /* Vivid Magic Number               */
360 #define LOCTOBYTE(x)   (x)              /* Vivid addresses are same as bytes*/
361 #define BYTETOLOC(x)   (x)
362 #define BIT_OFFSET(a)  (0)              /* BIT OFFSET OF ADDR WITHIN BYTE   */
364 #ifdef OTIS
365 #define LOADBUFSIZE   (TRG_MAX_MBLK/8)  /* USE OTIS BUFFER SIZE             */
366 #else
367 #define LOADBUFSIZE   0x4000            /* 16K BUFFER FOR LOADING DATA      */
368 #endif
370 #define LOADWORDSIZE  8                 /* MINIMUM DIVISOR OF LOAD SIZE     */
371 #define CINIT         ".cinit"          /* NAME OF CINIT SECTION            */
372 #define INIT_ALIGN    8                 /* ALIGNMENT OF CINIT RECORDS       */
373 #define INIT_WSIZE    4                 /* SIZE IN BYTES OF INIT DATA ITEMS */
374 #endif