1 /****************************************************************************/
2 /* PARAMS.H - Target dependent parameters. */
3 /****************************************************************************/
5 #if TMS340
6 typedef unsigned int T_ADDR; /* TYPE FOR TARGET ADDRESS */
7 typedef unsigned short T_DATA; /* TYPE FOR TARGET DATA WORD */
8 typedef unsigned short T_SIZE; /* TYPE FOR CINIT SIZE FIELD */
9 typedef unsigned int T_IADDR; /* TYPE FOR CINIT ADDRESS FIELD */
10 typedef unsigned short T_INSTRUCT; /* TYPE FOR INSTRUCTION OPCODE */
12 #define MAGIC MAGIC_340
13 /* #define NEW_SYM_NDX 1 USE 32-bit SYMBOL INDEX, NO DISP */
14 #define BYTETOLOC(x) ((T_ADDR)(x)<<3) /* CONVERT ADDRESSES TO BYTES */
15 #define LOCTOBYTE(x) ((x)>>3) /* CONVERT BYTES TO ADDRESSES */
16 #define BIT_OFFSET(a) ((a)&7) /* BIT OFFSET OF ADDR WITHIN BYTE */
18 #ifdef OTIS
19 #define LOADBUFSIZE (TRG_MAX_MBLK/8) /* USE OTIS BUFFER SIZE */
20 #else
21 #define LOADBUFSIZE 0x1000 /* 16K BUFFER FOR LOADING DATA */
22 #endif
24 #define LOADWORDSIZE 2 /* MINIMUM DIVISOR OF LOAD SIZE */
25 #define CINIT ".cinit" /* NAME OF CINIT SECTION */
26 #define INIT_ALIGN 1 /* ALIGNMENT OF CINIT RECORDS */
27 #define INIT_WSIZE 2 /* SIZE IN BYTES OF INIT DATA ITEMS */
28 #endif
30 #if TMS32030 || TMS32040
31 typedef unsigned int T_ADDR; /* TYPE FOR TARGET ADDRESS */
32 typedef unsigned int T_DATA; /* TYPE FOR TARGET DATA WORD */
33 typedef unsigned int T_SIZE; /* TYPE FOR CINIT SIZE FIELD */
34 typedef unsigned int T_IADDR; /* TYPE FOR CINIT ADDRESS FIELD */
35 typedef unsigned int T_INSTRUCT; /* TYPE FOR INSTRUCTION OPCODE */
37 #define MAGIC MAGIC_C30 /* Magic number for C30 */
39 #define LOCTOBYTE(x) ((x)<<2) /* C30 word addrs to byte addrs */
40 #define BYTETOLOC(x) ((x)>>2) /* byte addrs to word addrs */
41 #define BIT_OFFSET(a) (0) /* BIT OFFSET OF ADDR WITHIN BYTE */
43 #ifdef OTIS
44 #define LOADBUFSIZE (TRG_MAX_MBLK/8) /* USE OTIS BUFFER SIZE */
45 #else
46 #define LOADBUFSIZE 0x0FF8 /* 4K-8 BUFFER FOR LOADING DATA */
47 #endif
49 #define LOADWORDSIZE 2 /* MINIMUM DIVISOR OF LOAD SIZE */
50 #define CINIT ".cinit" /* NAME OF CINIT SECTION */
51 #define INIT_ALIGN 1 /* ALIGNMENT OF CINIT RECORDS */
52 #define INIT_WSIZE 4 /* SIZE IN BYTES OF INIT DATA ITEMS */
53 #endif
55 #if TMS32025 || TMS32050
56 typedef unsigned short T_ADDR; /* TYPE FOR TARGET ADDRESS */
57 typedef unsigned short T_DATA; /* TYPE FOR TARGET DATA WORD */
58 typedef unsigned short T_SIZE; /* TYPE FOR CINIT SIZE FIELD */
59 typedef unsigned short T_IADDR; /* TYPE FOR CINIT ADDRESS FIELD */
60 typedef unsigned short T_INSTRUCT; /* TYPE FOR INSTRUCTION OPCODE */
62 #define MAGIC MAGIC_DSP /* Magic number for C25 */
64 #define LOCTOBYTE(x) ((x)<<1) /* 16-bit word addrs to byte addrs */
65 #define BYTETOLOC(x) ((x)>>1) /* byte addrs to word addrs */
66 #define BIT_OFFSET(a) (0) /* BIT OFFSET OF ADDR WITHIN BYTE */
68 #ifdef OTIS
69 #define LOADBUFSIZE (TRG_MAX_MBLK/8) /* USE OTIS BUFFER SIZE */
70 #else
71 #define LOADBUFSIZE 0x4000 /* 16K BUFFER FOR LOADING DATA */
72 #endif /* ifdef OTIS */
74 #define LOADWORDSIZE 2 /* MINIMUM DIVISOR OF LOAD SIZE */
75 #define CINIT ".cinit" /* NAME OF CINIT SECTION */
76 #define INIT_ALIGN 1 /* ALIGNMENT OF CINIT RECORDS */
77 #define INIT_WSIZE 2 /* SIZE IN BYTES OF INIT DATA ITEMS */
79 #endif /* TMS32025 || TMS32050 */
81 #if TMS380
82 typedef unsigned short T_ADDR; /* TYPE FOR TARGET ADDRESS */
83 typedef unsigned short T_DATA; /* TYPE FOR TARGET DATA WORD */
84 typedef unsigned short T_SIZE; /* TYPE FOR CINIT SIZE FIELD */
85 typedef unsigned short T_IADDR; /* TYPE FOR CINIT ADDRESS FIELD */
86 typedef unsigned short T_INSTRUCT; /* TYPE FOR INSTRUCTION OPCODE */
88 #define MAGIC MAGIC_380 /* Magic number for TMS380 */
90 #define LOCTOBYTE(x) x /* 16-bit byte addrs to byte addrs */
91 #define BYTETOLOC(x) x /* byte addrs to byte addrs */
92 #define BIT_OFFSET(a) (0) /* BIT OFFSET OF ADDR WITHIN BYTE */
94 #ifdef OTIS
95 #define LOADBUFSIZE (TRG_MAX_MBLK/8) /* USE OTIS BUFFER SIZE */
96 #else
97 #define LOADBUFSIZE 0x4000 /* 16K BUFFER FOR LOADING DATA */
98 #endif
100 #define LOADWORDSIZE 2 /* MINIMUM DIVISOR OF LOAD SIZE */
101 #define CINIT ".cinit" /* NAME OF CINIT SECTION */
102 #define INIT_ALIGN 2 /* ALIGNMENT OF CINIT RECORDS */
103 #define INIT_WSIZE 1 /* SIZE IN BYTES OF INIT DATA ITEMS */
104 #endif
106 #if TMS370 || TMS370C8
107 typedef unsigned short T_ADDR; /* TYPE FOR TARGET ADDRESS */
108 typedef unsigned char T_DATA; /* TYPE FOR TARGET DATA WORD */
109 typedef unsigned short T_SIZE; /* TYPE FOR CINIT SIZE FIELD */
110 typedef unsigned short T_IADDR; /* TYPE FOR CINIT ADDRESS FIELD */
111 typedef unsigned char T_INSTRUCT; /* TYPE FOR INSTRUCTION OPCODE */
113 #define MAGIC MAGIC_370 /* 370 Magic Number */
115 #define LOCTOBYTE(x) x /* 370 addresses are same as bytes */
116 #define BYTETOLOC(x) x
117 #define BIT_OFFSET(a) (0) /* BIT OFFSET OF ADDR WITHIN BYTE */
119 #ifdef OTIS
120 #define LOADBUFSIZE (TRG_MAX_MBLK/8) /* USE OTIS BUFFER SIZE */
121 #else
122 #define LOADBUFSIZE 0x4000 /* 16K BUFFER FOR LOADING DATA */
123 #endif
125 #define LOADWORDSIZE 2 /* MINIMUM DIVISOR OF LOAD SIZE */
126 #define CINIT ".cinit" /* NAME OF CINIT SECTION */
127 #define INIT_ALIGN 1 /* ALIGNMENT OF CINIT RECORDS */
128 #define INIT_WSIZE 1 /* SIZE IN BYTES OF INIT DATA ITEMS */
129 #endif
131 #if MVP_PP
132 typedef unsigned int T_ADDR; /* TYPE FOR TARGET ADDRESS */
133 typedef unsigned int T_DATA; /* TYPE FOR TARGET DATA WORD */
134 typedef unsigned int T_SIZE; /* TYPE FOR CINIT SIZE FIELD */
135 typedef unsigned int T_IADDR; /* TYPE FOR CINIT ADDRESS FIELD */
137 typedef struct {unsigned int ins_h; unsigned int ins_l; } T_INSTRUCT;
138 /* TYPE FOR INSTRUCTION OPCODE */
140 #define MAGIC MAGIC_MVP /* PP Magic Number */
142 #define LOCTOBYTE(x) (x) /* PP addresses are same as bytes */
143 #define BYTETOLOC(x) (x)
144 #define BIT_OFFSET(a) (0) /* BIT OFFSET OF ADDR WITHIN BYTE */
146 #ifdef OTIS
147 #define LOADBUFSIZE (TRG_MAX_MBLK/8) /* USE OTIS BUFFER SIZE */
148 #else
149 #define LOADBUFSIZE 0x4000 /* 16K BUFFER FOR LOADING DATA */
150 #endif
152 #define LOADWORDSIZE 8 /* MINIMUM DIVISOR OF LOAD SIZE */
153 #define CINIT ".cinit" /* NAME OF CINIT SECTION */
154 #define INIT_ALIGN 8 /* ALIGNMENT OF CINIT RECORDS */
155 #define INIT_WSIZE 4 /* SIZE IN BYTES OF INIT DATA ITEMS */
156 #endif
158 #if MVP_MP
159 typedef unsigned int T_ADDR; /* TYPE FOR TARGET ADDRESS */
160 typedef unsigned int T_DATA; /* TYPE FOR TARGET DATA WORD */
161 typedef unsigned int T_SIZE; /* TYPE FOR CINIT SIZE FIELD */
162 typedef unsigned int T_IADDR; /* TYPE FOR CINIT ADDRESS FIELD */
163 typedef unsigned int T_INSTRUCT; /* TYPE FOR INSTRUCTION OPCODE */
165 #define FT_IEEE_FLT 1
166 #define FT_IEEE_DBL 2
167 #define FLT_PRECISION 4
169 typedef struct trg_fval {
170 unsigned int fval1;
171 unsigned int fval2;
172 } TRG_FVAL;
174 #define MAGIC MAGIC_MVP /* MP Magic Number */
176 #define LOCTOBYTE(x) (x) /* MP addresses are same as bytes */
177 #define BYTETOLOC(x) (x)
178 #define BIT_OFFSET(a) (0) /* BIT OFFSET OF ADDR WITHIN BYTE */
180 #ifdef OTIS
181 #define LOADBUFSIZE (TRG_MAX_MBLK/8) /* USE OTIS BUFFER SIZE */
182 #else
183 #define LOADBUFSIZE 0x4000 /* 16K BUFFER FOR LOADING DATA */
184 #endif
186 #define LOADWORDSIZE 8 /* MINIMUM DIVISOR OF LOAD SIZE */
187 #define CINIT ".cinit" /* NAME OF CINIT SECTION */
188 #define INIT_ALIGN 8 /* ALIGNMENT OF CINIT RECORDS */
189 #define INIT_WSIZE 4 /* SIZE IN BYTES OF INIT DATA ITEMS */
190 #endif
192 #if LEAD
193 typedef unsigned short T_ADDR; /* TYPE FOR TARGET ADDRESS */
194 typedef unsigned short T_DATA; /* TYPE FOR TARGET DATA WORD */
195 typedef unsigned short T_SIZE; /* TYPE FOR CINIT SIZE FIELD */
196 typedef unsigned short T_IADDR; /* TYPE FOR CINIT ADDRESS FIELD */
197 typedef unsigned short T_INSTRUCT; /* TYPE FOR INSTRUCTION OPCODE */
199 #define MAGIC MAGIC_LEAD /* Magic number for C25 */
201 #define LOCTOBYTE(x) ((x)<<1) /* 16-bit word addrs to byte addrs */
202 #define BYTETOLOC(x) ((x)>>1) /* byte addrs to word addrs */
203 #define BIT_OFFSET(a) (0) /* BIT OFFSET OF ADDR WITHIN BYTE */
205 #ifdef OTIS
206 #define LOADBUFSIZE (TRG_MAX_MBLK/8) /* USE OTIS BUFFER SIZE */
207 #else
208 #define LOADBUFSIZE 0x4000 /* 16K BUFFER FOR LOADING DATA */
209 #endif /* ifdef OTIS */
211 #define LOADWORDSIZE 2 /* MINIMUM DIVISOR OF LOAD SIZE */
212 #define CINIT ".cinit" /* NAME OF CINIT SECTION */
213 #define INIT_ALIGN 1 /* ALIGNMENT OF CINIT RECORDS */
214 #define INIT_WSIZE 2 /* SIZE IN BYTES OF INIT DATA ITEMS */
216 #endif /* LEAD */
218 #if LEAD3
219 typedef unsigned int T_ADDR; /* TYPE FOR TARGET ADDRESS */
220 typedef unsigned short T_DATA; /* TYPE FOR TARGET DATA WORD */
221 typedef unsigned short T_SIZE; /* TYPE FOR CINIT SIZE FIELD */
222 typedef unsigned int T_IADDR; /* TYPE FOR CINIT ADDRESS FIELD */
223 typedef unsigned int T_INSTRUCT; /* TYPE FOR INSTRUCTION OPCODE */
225 #define MAGIC MAGIC_LEAD3 /* Magic number for C55 */
227 #define LOCTOBYTE(x) (x) /* LEAD3 is byte addressable */
228 #define BYTETOLOC(x) (x) /* LEAD3 is byte addressable */
229 #define BIT_OFFSET(a) (0) /* BIT OFFSET OF ADDR WITHIN BYTE */
231 #ifdef OTIS
232 #define LOADBUFSIZE (TRG_MAX_MBLK/8) /* USE OTIS BUFFER SIZE */
233 #else
234 #define LOADBUFSIZE 0x4000 /* 16K BUFFER FOR LOADING DATA */
235 #endif /* ifdef OTIS */
237 #define LOADWORDSIZE 2 /* MINIMUM DIVISOR OF LOAD SIZE */
238 #define CINIT ".cinit" /* NAME OF CINIT SECTION */
239 #define INIT_ALIGN 1 /* ALIGNMENT OF CINIT RECORDS */
240 #define INIT_WSIZE 2 /* SIZE IN BYTES OF INIT DATA ITEMS */
242 #endif /* LEAD3 */
244 #if ARM
245 typedef unsigned int T_ADDR; /* TYPE FOR TARGET ADDRESS */
246 typedef unsigned int T_DATA; /* TYPE FOR TARGET DATA WORD */
247 typedef unsigned int T_SIZE; /* TYPE FOR CINIT SIZE FIELD */
248 typedef unsigned int T_IADDR; /* TYPE FOR CINIT ADDRESS FIELD */
249 typedef unsigned int T_INSTRUCT; /* TYPE FOR INSTRUCTION OPCODE */
251 #define MAGIC MAGIC_ARM /* Magic number for ARM */
253 #define LOCTOBYTE(x) (x) /* ARM addresses are same as bytes */
254 #define BYTETOLOC(x) (x)
255 #define BIT_OFFSET(a) (0) /* BIT OFFSET OF ADDR WITHIN BYTE */
257 #ifdef OTIS
258 #define LOADBUFSIZE (TRG_MAX_MBLK/8) /* USE OTIS BUFFER SIZE */
259 #else
260 #define LOADBUFSIZE 0x4000 /* 16K BUFFER FOR LOADING DATA */
261 #endif
263 #define LOADWORDSIZE 4 /* MINIMUM DIVISOR OF LOAD SIZE */
264 #define CINIT ".cinit" /* NAME OF CINIT SECTION */
265 #define INIT_ALIGN 4 /* ALIGNMENT OF CINIT RECORDS */
266 #define INIT_WSIZE 4 /* SIZE IN BYTES OF INIT DATA ITEMS */
268 #endif /* ARM */
270 #if TMS32060
271 typedef unsigned int T_ADDR; /* TYPE FOR TARGET ADDRESS */
272 typedef unsigned int T_DATA; /* TYPE FOR TARGET DATA WORD */
273 typedef unsigned int T_SIZE; /* TYPE FOR CINIT SIZE FIELD */
274 typedef unsigned int T_IADDR; /* TYPE FOR CINIT ADDRESS FIELD */
275 typedef unsigned int T_INSTRUCT; /* TYPE FOR INSTRUCTION OPCODE */
277 #define FT_IEEE_FLT 1
278 #define FT_IEEE_DBL 2
279 #define FLT_PRECISION 4
281 typedef struct trg_fval {
282 unsigned int fval1;
283 unsigned int fval2;
284 } TRG_FVAL;
286 #define MAGIC MAGIC_C60 /* C60 Magic Number */
288 #define LOCTOBYTE(x) (x) /* C60 addresses are same as bytes */
289 #define BYTETOLOC(x) (x)
290 #define BIT_OFFSET(a) (0) /* BIT OFFSET OF ADDR WITHIN BYTE */
292 #ifdef OTIS
293 #define LOADBUFSIZE (TRG_MAX_MBLK/8) /* USE OTIS BUFFER SIZE */
294 #else
295 #define LOADBUFSIZE 0x4000 /* 16K BUFFER FOR LOADING DATA */
296 //#define UNBUFFERED 1
297 #endif
299 #define LOADWORDSIZE 8 /* MINIMUM DIVISOR OF LOAD SIZE */
300 #define CINIT ".cinit" /* NAME OF CINIT SECTION */
301 #define INIT_ALIGN 8 /* ALIGNMENT OF CINIT RECORDS */
302 #define INIT_WSIZE 4 /* SIZE IN BYTES OF INIT DATA ITEMS */
303 #endif
305 #if VIVID
306 typedef unsigned int T_ADDR; /* TYPE FOR TARGET ADDRESS */
307 typedef unsigned int T_DATA; /* TYPE FOR TARGET DATA WORD */
308 typedef unsigned int T_SIZE; /* TYPE FOR CINIT SIZE FIELD */
309 typedef unsigned int T_IADDR; /* TYPE FOR CINIT ADDRESS FIELD */
310 typedef unsigned int T_INSTRUCT; /* TYPE FOR INSTRUCTION OPCODE */
312 #define FT_IEEE_FLT 1
313 #define FT_IEEE_DBL 2
314 #define FLT_PRECISION 4
316 typedef struct trg_fval {
317 unsigned int fval1;
318 unsigned int fval2;
319 } TRG_FVAL;
321 #define MAGIC MAGIC_VIVID /* Vivid Magic Number */
323 #define LOCTOBYTE(x) (x) /* Vivid addresses are same as bytes*/
324 #define BYTETOLOC(x) (x)
325 #define BIT_OFFSET(a) (0) /* BIT OFFSET OF ADDR WITHIN BYTE */
327 #ifdef OTIS
328 #define LOADBUFSIZE (TRG_MAX_MBLK/8) /* USE OTIS BUFFER SIZE */
329 #else
330 #define LOADBUFSIZE 0x4000 /* 16K BUFFER FOR LOADING DATA */
331 #endif
333 #define LOADWORDSIZE 8 /* MINIMUM DIVISOR OF LOAD SIZE */
334 #define CINIT ".cinit" /* NAME OF CINIT SECTION */
335 #define INIT_ALIGN 8 /* ALIGNMENT OF CINIT RECORDS */
336 #define INIT_WSIZE 4 /* SIZE IN BYTES OF INIT DATA ITEMS */
337 #endif