1
2
3
4
5
6
7
8
9
10#ifndef _SYM53C8XX_DEFS_H
11#define _SYM53C8XX_DEFS_H
12
13
14#define SCNTL0 0x00
15
16#define SCNTL1 0x01
17 #define ISCON 0x10
18 #define CRST 0x08
19 #define IARB 0x02
20
21#define SCNTL2 0x02
22 #define SDU 0x80
23 #define CHM 0x40
24 #define WSS 0x08
25 #define WSR 0x01
26
27#define SCNTL3 0x03
28 #define EWS 0x08
29 #define ULTRA 0x80
30
31
32#define SCID 0x04
33 #define RRE 0x40
34 #define SRE 0x20
35
36#define SXFER 0x05
37
38
39#define SDID 0x06
40
41#define GPREG 0x07
42
43#define SFBR 0x08
44
45#define SOCL 0x09
46 #define CREQ 0x80
47 #define CACK 0x40
48 #define CBSY 0x20
49 #define CSEL 0x10
50 #define CATN 0x08
51 #define CMSG 0x04
52 #define CC_D 0x02
53 #define CI_O 0x01
54
55#define SSID 0x0a
56
57#define SBCL 0x0b
58
59#define DSTAT 0x0c
60 #define DFE 0x80
61 #define MDPE 0x40
62 #define BF 0x20
63 #define ABRT 0x10
64 #define SSI 0x08
65 #define SIR 0x04
66 #define IID 0x01
67
68#define SSTAT0 0x0d
69 #define ILF 0x80
70 #define ORF 0x40
71 #define OLF 0x20
72 #define AIP 0x10
73 #define LOA 0x08
74 #define WOA 0x04
75 #define IRST 0x02
76 #define SDP 0x01
77
78#define SSTAT1 0x0e
79 #define FF3210 0xf0
80
81#define SSTAT2 0x0f
82 #define ILF1 0x80
83 #define ORF1 0x40
84 #define OLF1 0x20
85 #define DM 0x04
86 #define LDSC 0x02
87
88#define DSA 0x10
89#define DSA1 0x11
90#define DSA2 0x12
91#define DSA3 0x13
92
93#define ISTAT 0x14
94 #define CABRT 0x80
95 #define SRST 0x40
96 #define SIGP 0x20
97 #define SEM 0x10
98 #define CON 0x08
99 #define INTF 0x04
100 #define SIP 0x02
101 #define DIP 0x01
102
103
104#define CTEST0 0x18
105#define CTEST1 0x19
106#define CTEST2 0x1a
107 #define CSIGP 0x40
108
109
110#define CTEST3 0x1b
111 #define FLF 0x08
112 #define CLF 0x04
113 #define FM 0x02
114 #define WRIE 0x01
115
116
117#define DFIFO 0x20
118#define CTEST4 0x21
119 #define BDIS 0x80
120 #define MPEE 0x08
121
122#define CTEST5 0x22
123 #define DFS 0x20
124
125#define CTEST6 0x23
126
127#define DBC 0x24
128#define DNAD 0x28
129#define DSP 0x2c
130#define DSPS 0x30
131
132#define SCRATCHA 0x34
133#define SCRATCHA1 0x35
134#define SCRATCHA2 0x36
135#define SCRATCHA3 0x37
136
137#define DMODE 0x38
138 #define BL_2 0x80
139 #define BL_1 0x40
140 #define ERL 0x08
141 #define ERMP 0x04
142 #define BOF 0x02
143 #define MAN 0x01
144
145#define DIEN 0x39
146#define SBR 0x3a
147
148#define DCNTL 0x3b
149 #define CLSE 0x80
150 #define PFF 0x40
151 #define PFEN 0x20
152 #define SSM 0x10
153 #define IRQM 0x08
154 #define STD 0x04
155 #define IRQD 0x02
156 #define NOCOM 0x01
157
158
159#define ADDER 0x3c
160
161#define SIEN 0x40
162#define SIST 0x42
163 #define SBMC 0x1000
164 #define STO 0x0400
165 #define GEN 0x0200
166 #define HTH 0x0100
167 #define MA 0x80
168 #define CMP 0x40
169 #define SEL 0x20
170 #define RSL 0x10
171 #define SGE 0x08
172 #define UDC 0x04
173 #define RST 0x02
174 #define PAR 0x01
175
176#define SLPAR 0x44
177#define SWIDE 0x45
178#define MACNTL 0x46
179#define GPCNTL 0x47
180#define STIME0 0x48
181#define STIME1 0x49
182#define RESPID 0x4a
183
184#define STEST0 0x4c
185
186#define STEST1 0x4d
187 #define SCLK 0x80
188 #define DBLEN 0x08
189 #define DBLSEL 0x04
190
191
192#define STEST2 0x4e
193 #define ROF 0x40
194 #define EXT 0x02
195
196#define STEST3 0x4f
197 #define TE 0x80
198 #define HSC 0x20
199 #define CSF 0x02
200
201#define SIDL 0x50
202#define STEST4 0x52
203 #define SMODE 0xc0
204 #define SMODE_HVD 0x40
205 #define SMODE_SE 0x80
206 #define SMODE_LVD 0xc0
207 #define LCKFRQ 0x20
208
209
210#define SODL 0x54
211
212#define SBDL 0x58
213
214
215
216
217
218
219
220
221
222#define REG(r) (r)
223
224
225
226
227
228
229
230
231
232
233#define SCR_DATA_OUT 0x00000000
234#define SCR_DATA_IN 0x01000000
235#define SCR_COMMAND 0x02000000
236#define SCR_STATUS 0x03000000
237#define SCR_DT_DATA_OUT 0x04000000
238#define SCR_DT_DATA_IN 0x05000000
239#define SCR_MSG_OUT 0x06000000
240#define SCR_MSG_IN 0x07000000
241
242#define SCR_ILG_OUT 0x04000000
243#define SCR_ILG_IN 0x05000000
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263#define OPC_MOVE 0x08000000
264
265#define SCR_MOVE_ABS(l) ((0x00000000 | OPC_MOVE) | (l))
266#define SCR_MOVE_IND(l) ((0x20000000 | OPC_MOVE) | (l))
267#define SCR_MOVE_TBL (0x10000000 | OPC_MOVE)
268
269#define SCR_CHMOV_ABS(l) ((0x00000000) | (l))
270#define SCR_CHMOV_IND(l) ((0x20000000) | (l))
271#define SCR_CHMOV_TBL (0x10000000)
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289#define SCR_SEL_ABS 0x40000000
290#define SCR_SEL_ABS_ATN 0x41000000
291#define SCR_SEL_TBL 0x42000000
292#define SCR_SEL_TBL_ATN 0x43000000
293
294
295#define SCR_JMP_REL 0x04000000
296#define SCR_ID(id) (((unsigned long)(id)) << 16)
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313#define SCR_WAIT_DISC 0x48000000
314#define SCR_WAIT_RESEL 0x50000000
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329#define SCR_SET(f) (0x58000000 | (f))
330#define SCR_CLR(f) (0x60000000 | (f))
331
332#define SCR_CARRY 0x00000400
333#define SCR_TRG 0x00000200
334#define SCR_ACK 0x00000040
335#define SCR_ATN 0x00000008
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356#define SCR_NO_FLUSH 0x01000000
357
358#define SCR_COPY(n) (0xc0000000 | SCR_NO_FLUSH | (n))
359#define SCR_COPY_F(n) (0xc0000000 | (n))
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385#define SCR_REG_OFS(ofs) ((((ofs) & 0x7f) << 16ul))
386
387#define SCR_SFBR_REG(reg,op,data) \
388 (0x68000000 | (SCR_REG_OFS(REG(reg))) | (op) | (((data)&0xff)<<8ul))
389
390#define SCR_REG_SFBR(reg,op,data) \
391 (0x70000000 | (SCR_REG_OFS(REG(reg))) | (op) | (((data)&0xff)<<8ul))
392
393#define SCR_REG_REG(reg,op,data) \
394 (0x78000000 | (SCR_REG_OFS(REG(reg))) | (op) | (((data)&0xff)<<8ul))
395
396
397#define SCR_LOAD 0x00000000
398#define SCR_SHL 0x01000000
399#define SCR_OR 0x02000000
400#define SCR_XOR 0x03000000
401#define SCR_AND 0x04000000
402#define SCR_SHR 0x05000000
403#define SCR_ADD 0x06000000
404#define SCR_ADDC 0x07000000
405
406#define SCR_SFBR_DATA (0x00800000>>8ul)
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425#define SCR_FROM_REG(reg) \
426 SCR_REG_SFBR(reg,SCR_OR,0)
427
428#define SCR_TO_REG(reg) \
429 SCR_SFBR_REG(reg,SCR_OR,0)
430
431#define SCR_LOAD_REG(reg,data) \
432 SCR_REG_REG(reg,SCR_LOAD,data)
433
434#define SCR_LOAD_SFBR(data) \
435 (SCR_REG_SFBR (gpreg, SCR_LOAD, data))
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455#define SCR_REG_OFS2(ofs) (((ofs) & 0xff) << 16ul)
456#define SCR_NO_FLUSH2 0x02000000
457#define SCR_DSA_REL2 0x10000000
458
459#define SCR_LOAD_R(reg, how, n) \
460 (0xe1000000 | how | (SCR_REG_OFS2(REG(reg))) | (n))
461
462#define SCR_STORE_R(reg, how, n) \
463 (0xe0000000 | how | (SCR_REG_OFS2(REG(reg))) | (n))
464
465#define SCR_LOAD_ABS(reg, n) SCR_LOAD_R(reg, SCR_NO_FLUSH2, n)
466#define SCR_LOAD_REL(reg, n) SCR_LOAD_R(reg, SCR_NO_FLUSH2|SCR_DSA_REL2, n)
467#define SCR_LOAD_ABS_F(reg, n) SCR_LOAD_R(reg, 0, n)
468#define SCR_LOAD_REL_F(reg, n) SCR_LOAD_R(reg, SCR_DSA_REL2, n)
469
470#define SCR_STORE_ABS(reg, n) SCR_STORE_R(reg, SCR_NO_FLUSH2, n)
471#define SCR_STORE_REL(reg, n) SCR_STORE_R(reg, SCR_NO_FLUSH2|SCR_DSA_REL2,n)
472#define SCR_STORE_ABS_F(reg, n) SCR_STORE_R(reg, 0, n)
473#define SCR_STORE_REL_F(reg, n) SCR_STORE_R(reg, SCR_DSA_REL2, n)
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512#define SCR_NO_OP 0x80000000
513#define SCR_JUMP 0x80080000
514#define SCR_JUMP64 0x80480000
515#define SCR_JUMPR 0x80880000
516#define SCR_CALL 0x88080000
517#define SCR_CALLR 0x88880000
518#define SCR_RETURN 0x90080000
519#define SCR_INT 0x98080000
520#define SCR_INT_FLY 0x98180000
521
522#define IFFALSE(arg) (0x00080000 | (arg))
523#define IFTRUE(arg) (0x00000000 | (arg))
524
525#define WHEN(phase) (0x00030000 | (phase))
526#define IF(phase) (0x00020000 | (phase))
527
528#define DATA(D) (0x00040000 | ((D) & 0xff))
529#define MASK(D,M) (0x00040000 | (((M ^ 0xff) & 0xff) << 8ul)|((D) & 0xff))
530
531#define CARRYSET (0x00200000)
532
533
534#define SIR_COMPLETE 0x10000000
535
536#define SIR_SEL_ATN_NO_MSG_OUT 0x00000001
537#define SIR_CMD_OUT_ILL_PH 0x00000002
538#define SIR_STATUS_ILL_PH 0x00000003
539#define SIR_MSG_RECEIVED 0x00000004
540#define SIR_DATA_IN_ERR 0x00000005
541#define SIR_DATA_OUT_ERR 0x00000006
542#define SIR_SCRIPT_ERROR 0x00000007
543#define SIR_MSG_OUT_NO_CMD 0x00000008
544#define SIR_MSG_OVER7 0x00000009
545
546#define INT_ON_FY 0x00000080
547
548
549
550#define SCSI_IDENTIFY 0xC0
551
552#endif
553