hc
2023-07-06 0d92c6001e626cf3cfa86b826ccc10a16115901e
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
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
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
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
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
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
/*
 * DO NOT EDIT - This file is automatically generated
 *         from the following source files:
 *
 * $Id: //depot/aic7xxx/aic7xxx/aic7xxx.seq#58 $
 * $Id: //depot/aic7xxx/aic7xxx/aic7xxx.reg#40 $
 */
typedef int (ahc_reg_print_t)(u_int, u_int *, u_int);
typedef struct ahc_reg_parse_entry {
   char    *name;
   uint8_t     value;
   uint8_t     mask;
} ahc_reg_parse_entry_t;
 
#if AIC_DEBUG_REGISTERS
ahc_reg_print_t ahc_scsiseq_print;
#else
#define ahc_scsiseq_print(regvalue, cur_col, wrap) \
    ahc_print_register(NULL, 0, "SCSISEQ", 0x00, regvalue, cur_col, wrap)
#endif
 
#if AIC_DEBUG_REGISTERS
ahc_reg_print_t ahc_sxfrctl0_print;
#else
#define ahc_sxfrctl0_print(regvalue, cur_col, wrap) \
    ahc_print_register(NULL, 0, "SXFRCTL0", 0x01, regvalue, cur_col, wrap)
#endif
 
#if AIC_DEBUG_REGISTERS
ahc_reg_print_t ahc_scsisigi_print;
#else
#define ahc_scsisigi_print(regvalue, cur_col, wrap) \
    ahc_print_register(NULL, 0, "SCSISIGI", 0x03, regvalue, cur_col, wrap)
#endif
 
#if AIC_DEBUG_REGISTERS
ahc_reg_print_t ahc_scsirate_print;
#else
#define ahc_scsirate_print(regvalue, cur_col, wrap) \
    ahc_print_register(NULL, 0, "SCSIRATE", 0x04, regvalue, cur_col, wrap)
#endif
 
#if AIC_DEBUG_REGISTERS
ahc_reg_print_t ahc_sstat0_print;
#else
#define ahc_sstat0_print(regvalue, cur_col, wrap) \
    ahc_print_register(NULL, 0, "SSTAT0", 0x0b, regvalue, cur_col, wrap)
#endif
 
#if AIC_DEBUG_REGISTERS
ahc_reg_print_t ahc_sstat1_print;
#else
#define ahc_sstat1_print(regvalue, cur_col, wrap) \
    ahc_print_register(NULL, 0, "SSTAT1", 0x0c, regvalue, cur_col, wrap)
#endif
 
#if AIC_DEBUG_REGISTERS
ahc_reg_print_t ahc_sstat2_print;
#else
#define ahc_sstat2_print(regvalue, cur_col, wrap) \
    ahc_print_register(NULL, 0, "SSTAT2", 0x0d, regvalue, cur_col, wrap)
#endif
 
#if AIC_DEBUG_REGISTERS
ahc_reg_print_t ahc_sstat3_print;
#else
#define ahc_sstat3_print(regvalue, cur_col, wrap) \
    ahc_print_register(NULL, 0, "SSTAT3", 0x0e, regvalue, cur_col, wrap)
#endif
 
#if AIC_DEBUG_REGISTERS
ahc_reg_print_t ahc_simode0_print;
#else
#define ahc_simode0_print(regvalue, cur_col, wrap) \
    ahc_print_register(NULL, 0, "SIMODE0", 0x10, regvalue, cur_col, wrap)
#endif
 
#if AIC_DEBUG_REGISTERS
ahc_reg_print_t ahc_simode1_print;
#else
#define ahc_simode1_print(regvalue, cur_col, wrap) \
    ahc_print_register(NULL, 0, "SIMODE1", 0x11, regvalue, cur_col, wrap)
#endif
 
#if AIC_DEBUG_REGISTERS
ahc_reg_print_t ahc_scsibusl_print;
#else
#define ahc_scsibusl_print(regvalue, cur_col, wrap) \
    ahc_print_register(NULL, 0, "SCSIBUSL", 0x12, regvalue, cur_col, wrap)
#endif
 
#if AIC_DEBUG_REGISTERS
ahc_reg_print_t ahc_sblkctl_print;
#else
#define ahc_sblkctl_print(regvalue, cur_col, wrap) \
    ahc_print_register(NULL, 0, "SBLKCTL", 0x1f, regvalue, cur_col, wrap)
#endif
 
#if AIC_DEBUG_REGISTERS
ahc_reg_print_t ahc_seq_flags_print;
#else
#define ahc_seq_flags_print(regvalue, cur_col, wrap) \
    ahc_print_register(NULL, 0, "SEQ_FLAGS", 0x3c, regvalue, cur_col, wrap)
#endif
 
#if AIC_DEBUG_REGISTERS
ahc_reg_print_t ahc_lastphase_print;
#else
#define ahc_lastphase_print(regvalue, cur_col, wrap) \
    ahc_print_register(NULL, 0, "LASTPHASE", 0x3f, regvalue, cur_col, wrap)
#endif
 
#if AIC_DEBUG_REGISTERS
ahc_reg_print_t ahc_seqctl_print;
#else
#define ahc_seqctl_print(regvalue, cur_col, wrap) \
    ahc_print_register(NULL, 0, "SEQCTL", 0x60, regvalue, cur_col, wrap)
#endif
 
#if AIC_DEBUG_REGISTERS
ahc_reg_print_t ahc_sram_base_print;
#else
#define ahc_sram_base_print(regvalue, cur_col, wrap) \
    ahc_print_register(NULL, 0, "SRAM_BASE", 0x70, regvalue, cur_col, wrap)
#endif
 
#if AIC_DEBUG_REGISTERS
ahc_reg_print_t ahc_error_print;
#else
#define ahc_error_print(regvalue, cur_col, wrap) \
    ahc_print_register(NULL, 0, "ERROR", 0x92, regvalue, cur_col, wrap)
#endif
 
#if AIC_DEBUG_REGISTERS
ahc_reg_print_t ahc_dfcntrl_print;
#else
#define ahc_dfcntrl_print(regvalue, cur_col, wrap) \
    ahc_print_register(NULL, 0, "DFCNTRL", 0x93, regvalue, cur_col, wrap)
#endif
 
#if AIC_DEBUG_REGISTERS
ahc_reg_print_t ahc_dfstatus_print;
#else
#define ahc_dfstatus_print(regvalue, cur_col, wrap) \
    ahc_print_register(NULL, 0, "DFSTATUS", 0x94, regvalue, cur_col, wrap)
#endif
 
#if AIC_DEBUG_REGISTERS
ahc_reg_print_t ahc_scsiphase_print;
#else
#define ahc_scsiphase_print(regvalue, cur_col, wrap) \
    ahc_print_register(NULL, 0, "SCSIPHASE", 0x9e, regvalue, cur_col, wrap)
#endif
 
#if AIC_DEBUG_REGISTERS
ahc_reg_print_t ahc_scb_base_print;
#else
#define ahc_scb_base_print(regvalue, cur_col, wrap) \
    ahc_print_register(NULL, 0, "SCB_BASE", 0xa0, regvalue, cur_col, wrap)
#endif
 
#if AIC_DEBUG_REGISTERS
ahc_reg_print_t ahc_scb_control_print;
#else
#define ahc_scb_control_print(regvalue, cur_col, wrap) \
    ahc_print_register(NULL, 0, "SCB_CONTROL", 0xb8, regvalue, cur_col, wrap)
#endif
 
#if AIC_DEBUG_REGISTERS
ahc_reg_print_t ahc_scb_scsiid_print;
#else
#define ahc_scb_scsiid_print(regvalue, cur_col, wrap) \
    ahc_print_register(NULL, 0, "SCB_SCSIID", 0xb9, regvalue, cur_col, wrap)
#endif
 
#if AIC_DEBUG_REGISTERS
ahc_reg_print_t ahc_scb_lun_print;
#else
#define ahc_scb_lun_print(regvalue, cur_col, wrap) \
    ahc_print_register(NULL, 0, "SCB_LUN", 0xba, regvalue, cur_col, wrap)
#endif
 
#if AIC_DEBUG_REGISTERS
ahc_reg_print_t ahc_scb_tag_print;
#else
#define ahc_scb_tag_print(regvalue, cur_col, wrap) \
    ahc_print_register(NULL, 0, "SCB_TAG", 0xbb, regvalue, cur_col, wrap)
#endif
 
 
#define    SCSISEQ                 0x00
#define        TEMODE              0x80
#define        SCSIRSTO            0x01
 
#define    SXFRCTL0                0x01
#define        DFON                0x80
#define        DFPEXP              0x40
#define        FAST20              0x20
#define        CLRSTCNT            0x10
#define        SPIOEN              0x08
#define        SCAMEN              0x04
#define        CLRCHN              0x02
 
#define    SXFRCTL1                0x02
#define        STIMESEL            0x18
#define        BITBUCKET           0x80
#define        SWRAPEN             0x40
#define        ENSTIMER            0x04
#define        ACTNEGEN            0x02
#define        STPWEN              0x01
 
#define    SCSISIGO                0x03
#define        CDO                 0x80
#define        IOO                 0x40
#define        MSGO                0x20
#define        ATNO                0x10
#define        SELO                0x08
#define        BSYO                0x04
#define        REQO                0x02
#define        ACKO                0x01
 
#define    SCSISIGI                0x03
#define        P_DATAIN_DT         0x60
#define        P_DATAOUT_DT        0x20
#define        ATNI                0x10
#define        SELI                0x08
#define        BSYI                0x04
#define        REQI                0x02
#define        ACKI                0x01
 
#define    SCSIRATE                0x04
#define        SXFR                0x70
#define        SOFS                0x0f
#define        SXFR_ULTRA2         0x0f
#define        WIDEXFER            0x80
#define        ENABLE_CRC          0x40
#define        SINGLE_EDGE         0x10
 
#define    SCSIID                  0x05
#define    SCSIOFFSET              0x05
#define        SOFS_ULTRA2         0x7f
 
#define    SCSIDATL                0x06
 
#define    SCSIDATH                0x07
 
#define    OPTIONMODE              0x08
#define        OPTIONMODE_DEFAULTS    0x03
#define        AUTORATEEN          0x80
#define        AUTOACKEN           0x40
#define        ATNMGMNTEN          0x20
#define        BUSFREEREV          0x10
#define        EXPPHASEDIS         0x08
#define        SCSIDATL_IMGEN      0x04
#define        AUTO_MSGOUT_DE      0x02
#define        DIS_MSGIN_DUALEDGE    0x01
 
#define    STCNT                   0x08
 
#define    TARGCRCCNT              0x0a
 
#define    CLRSINT0                0x0b
#define        CLRSELDO            0x40
#define        CLRSELDI            0x20
#define        CLRSELINGO          0x10
#define        CLRIOERR            0x08
#define        CLRSWRAP            0x08
#define        CLRSPIORDY          0x02
 
#define    SSTAT0                  0x0b
#define        TARGET              0x80
#define        SELDO               0x40
#define        SELDI               0x20
#define        SELINGO             0x10
#define        SWRAP               0x08
#define        IOERR               0x08
#define        SDONE               0x04
#define        SPIORDY             0x02
#define        DMADONE             0x01
 
#define    CLRSINT1                0x0c
#define        CLRSELTIMEO         0x80
#define        CLRATNO             0x40
#define        CLRSCSIRSTI         0x20
#define        CLRBUSFREE          0x08
#define        CLRSCSIPERR         0x04
#define        CLRPHASECHG         0x02
#define        CLRREQINIT          0x01
 
#define    SSTAT1                  0x0c
#define        SELTO               0x80
#define        ATNTARG             0x40
#define        SCSIRSTI            0x20
#define        PHASEMIS            0x10
#define        BUSFREE             0x08
#define        SCSIPERR            0x04
#define        PHASECHG            0x02
#define        REQINIT             0x01
 
#define    SSTAT2                  0x0d
#define        SFCNT               0x1f
#define        OVERRUN             0x80
#define        SHVALID             0x40
#define        EXP_ACTIVE          0x10
#define        CRCVALERR           0x08
#define        CRCENDERR           0x04
#define        CRCREQERR           0x02
#define        DUAL_EDGE_ERR       0x01
 
#define    SSTAT3                  0x0e
#define        SCSICNT             0xf0
#define        U2OFFCNT            0x7f
#define        OFFCNT              0x0f
 
#define    SCSIID_ULTRA2           0x0f
 
#define    SIMODE0                 0x10
#define        ENSELDO             0x40
#define        ENSELDI             0x20
#define        ENSELINGO           0x10
#define        ENIOERR             0x08
#define        ENSWRAP             0x08
#define        ENSDONE             0x04
#define        ENSPIORDY           0x02
#define        ENDMADONE           0x01
 
#define    SIMODE1                 0x11
#define        ENSELTIMO           0x80
#define        ENATNTARG           0x40
#define        ENSCSIRST           0x20
#define        ENPHASEMIS          0x10
#define        ENBUSFREE           0x08
#define        ENSCSIPERR          0x04
#define        ENPHASECHG          0x02
#define        ENREQINIT           0x01
 
#define    SCSIBUSL                0x12
 
#define    SCSIBUSH                0x13
 
#define    SXFRCTL2                0x13
#define        ASYNC_SETUP         0x07
#define        AUTORSTDIS          0x10
#define        CMDDMAEN            0x08
 
#define    SHADDR                  0x14
 
#define    SELTIMER                0x18
#define    TARGIDIN                0x18
#define        STAGE6              0x20
#define        STAGE5              0x10
#define        STAGE4              0x08
#define        STAGE3              0x04
#define        STAGE2              0x02
#define        STAGE1              0x01
 
#define    SELID                   0x19
#define        SELID_MASK          0xf0
#define        ONEBIT              0x08
 
#define    SCAMCTL                 0x1a
#define        SCAMLVL             0x03
#define        ENSCAMSELO          0x80
#define        CLRSCAMSELID        0x40
#define        ALTSTIM             0x20
#define        DFLTTID             0x10
 
#define    SPIOCAP                 0x1b
#define        SOFT1               0x80
#define        SOFT0               0x40
#define        SOFTCMDEN           0x20
#define        EXT_BRDCTL          0x10
#define        SEEPROM             0x08
#define        EEPROM              0x04
#define        ROM                 0x02
#define        SSPIOCPS            0x01
 
#define    TARGID                  0x1b
 
#define    BRDCTL                  0x1d
#define        BRDDAT7             0x80
#define        BRDDAT6             0x40
#define        BRDDAT5             0x20
#define        BRDSTB              0x10
#define        BRDDAT4             0x10
#define        BRDDAT3             0x08
#define        BRDCS               0x08
#define        BRDDAT2             0x04
#define        BRDRW               0x04
#define        BRDRW_ULTRA2        0x02
#define        BRDCTL1             0x02
#define        BRDCTL0             0x01
#define        BRDSTB_ULTRA2       0x01
 
#define    SEECTL                  0x1e
#define        EXTARBACK           0x80
#define        EXTARBREQ           0x40
#define        SEEMS               0x20
#define        SEERDY              0x10
#define        SEECS               0x08
#define        SEECK               0x04
#define        SEEDO               0x02
#define        SEEDI               0x01
 
#define    SBLKCTL                 0x1f
#define        DIAGLEDEN           0x80
#define        DIAGLEDON           0x40
#define        AUTOFLUSHDIS        0x20
#define        SELBUSB             0x08
#define        ENAB40              0x08
#define        ENAB20              0x04
#define        SELWIDE             0x02
#define        XCVR                0x01
 
#define    BUSY_TARGETS            0x20
#define    TARG_SCSIRATE           0x20
 
#define    ULTRA_ENB               0x30
#define    CMDSIZE_TABLE           0x30
 
#define    DISC_DSB                0x32
 
#define    CMDSIZE_TABLE_TAIL        0x34
 
#define    MWI_RESIDUAL            0x38
 
#define    NEXT_QUEUED_SCB         0x39
 
#define    MSG_OUT                 0x3a
 
#define    DMAPARAMS               0x3b
#define        PRELOADEN           0x80
#define        WIDEODD             0x40
#define        SCSIEN              0x20
#define        SDMAEN              0x10
#define        SDMAENACK           0x10
#define        HDMAEN              0x08
#define        HDMAENACK           0x08
#define        DIRECTION           0x04
#define        FIFOFLUSH           0x02
#define        FIFORESET           0x01
 
#define    SEQ_FLAGS               0x3c
#define        NOT_IDENTIFIED      0x80
#define        NO_CDB_SENT         0x40
#define        TARGET_CMD_IS_TAGGED    0x40
#define        DPHASE              0x20
#define        TARG_CMD_PENDING    0x10
#define        CMDPHASE_PENDING    0x08
#define        DPHASE_PENDING      0x04
#define        SPHASE_PENDING      0x02
#define        NO_DISCONNECT       0x01
 
#define    SAVED_SCSIID            0x3d
 
#define    SAVED_LUN               0x3e
 
#define    LASTPHASE               0x3f
#define        P_MESGIN            0xe0
#define        PHASE_MASK          0xe0
#define        P_STATUS            0xc0
#define        P_MESGOUT           0xa0
#define        P_COMMAND           0x80
#define        P_DATAIN            0x40
#define        P_BUSFREE           0x01
#define        P_DATAOUT           0x00
#define        CDI                 0x80
#define        IOI                 0x40
#define        MSGI                0x20
 
#define    WAITING_SCBH            0x40
 
#define    DISCONNECTED_SCBH        0x41
 
#define    FREE_SCBH               0x42
 
#define    COMPLETE_SCBH           0x43
 
#define    HSCB_ADDR               0x44
 
#define    SHARED_DATA_ADDR        0x48
 
#define    KERNEL_QINPOS           0x4c
 
#define    QINPOS                  0x4d
 
#define    QOUTPOS                 0x4e
 
#define    KERNEL_TQINPOS          0x4f
 
#define    TQINPOS                 0x50
 
#define    ARG_1                   0x51
#define    RETURN_1                0x51
#define        SEND_MSG            0x80
#define        SEND_SENSE          0x40
#define        SEND_REJ            0x20
#define        MSGOUT_PHASEMIS     0x10
#define        EXIT_MSG_LOOP       0x08
#define        CONT_MSG_LOOP       0x04
#define        CONT_TARG_SESSION    0x02
 
#define    ARG_2                   0x52
#define    RETURN_2                0x52
 
#define    LAST_MSG                0x53
#define    TARG_IMMEDIATE_SCB        0x53
 
#define    SCSISEQ_TEMPLATE        0x54
#define        ENSELO              0x40
#define        ENSELI              0x20
#define        ENRSELI             0x10
#define        ENAUTOATNO          0x08
#define        ENAUTOATNI          0x04
#define        ENAUTOATNP          0x02
 
#define    HA_274_BIOSGLOBAL        0x56
#define    INITIATOR_TAG           0x56
#define        HA_274_EXTENDED_TRANS    0x01
 
#define    SEQ_FLAGS2              0x57
#define        TARGET_MSG_PENDING    0x02
#define        SCB_DMA             0x01
 
#define    SCSICONF                0x5a
#define        HWSCSIID            0x0f
#define        HSCSIID             0x07
#define        TERM_ENB            0x80
#define        RESET_SCSI          0x40
#define        ENSPCHK             0x20
 
#define    INTDEF                  0x5c
#define        VECTOR              0x0f
#define        EDGE_TRIG           0x80
 
#define    HOSTCONF                0x5d
 
#define    HA_274_BIOSCTRL         0x5f
#define        BIOSDISABLED        0x30
#define        BIOSMODE            0x30
#define        CHANNEL_B_PRIMARY    0x08
 
#define    SEQCTL                  0x60
#define        PERRORDIS           0x80
#define        PAUSEDIS            0x40
#define        FAILDIS             0x20
#define        FASTMODE            0x10
#define        BRKADRINTEN         0x08
#define        STEP                0x04
#define        SEQRESET            0x02
#define        LOADRAM             0x01
 
#define    SEQRAM                  0x61
 
#define    SEQADDR0                0x62
 
#define    SEQADDR1                0x63
#define        SEQADDR1_MASK       0x01
 
#define    ACCUM                   0x64
 
#define    SINDEX                  0x65
 
#define    DINDEX                  0x66
 
#define    ALLONES                 0x69
 
#define    ALLZEROS                0x6a
 
#define    NONE                    0x6a
 
#define    FLAGS                   0x6b
#define        ZERO                0x02
#define        CARRY               0x01
 
#define    SINDIR                  0x6c
 
#define    DINDIR                  0x6d
 
#define    FUNCTION1               0x6e
 
#define    STACK                   0x6f
 
#define    TARG_OFFSET             0x70
 
#define    SRAM_BASE               0x70
 
#define    BCTL                    0x84
#define        ACE                 0x08
#define        ENABLE              0x01
 
#define    DSCOMMAND0              0x84
#define        CACHETHEN           0x80
#define        DPARCKEN            0x40
#define        MPARCKEN            0x20
#define        EXTREQLCK           0x10
#define        INTSCBRAMSEL        0x08
#define        RAMPS               0x04
#define        USCBSIZE32          0x02
#define        CIOPARCKEN          0x01
 
#define    BUSTIME                 0x85
#define        BOFF                0xf0
#define        BON                 0x0f
 
#define    DSCOMMAND1              0x85
#define        DSLATT              0xfc
#define        HADDLDSEL1          0x02
#define        HADDLDSEL0          0x01
 
#define    BUSSPD                  0x86
#define        DFTHRSH             0xc0
#define        DFTHRSH_75          0x80
#define        STBOFF              0x38
#define        STBON               0x07
 
#define    HS_MAILBOX              0x86
#define        HOST_MAILBOX        0xf0
#define        HOST_TQINPOS        0x80
#define        SEQ_MAILBOX         0x0f
 
#define    DSPCISTATUS             0x86
#define        DFTHRSH_100         0xc0
 
#define    HCNTRL                  0x87
#define        POWRDN              0x40
#define        SWINT               0x10
#define        IRQMS               0x08
#define        PAUSE               0x04
#define        INTEN               0x02
#define        CHIPRST             0x01
#define        CHIPRSTACK          0x01
 
#define    HADDR                   0x88
 
#define    HCNT                    0x8c
 
#define    SCBPTR                  0x90
 
#define    INTSTAT                 0x91
#define        SEQINT_MASK         0xf1
#define        OUT_OF_RANGE        0xe1
#define        NO_FREE_SCB         0xd1
#define        SCB_MISMATCH        0xc1
#define        MISSED_BUSFREE      0xb1
#define        MKMSG_FAILED        0xa1
#define        DATA_OVERRUN        0x91
#define        PERR_DETECTED       0x81
#define        BAD_STATUS          0x71
#define        HOST_MSG_LOOP       0x61
#define        PDATA_REINIT        0x51
#define        IGN_WIDE_RES        0x41
#define        NO_MATCH            0x31
#define        PROTO_VIOLATION     0x21
#define        SEND_REJECT         0x11
#define        INT_PEND            0x0f
#define        BAD_PHASE           0x01
#define        BRKADRINT           0x08
#define        SCSIINT             0x04
#define        CMDCMPLT            0x02
#define        SEQINT              0x01
 
#define    CLRINT                  0x92
#define        CLRPARERR           0x10
#define        CLRBRKADRINT        0x08
#define        CLRSCSIINT          0x04
#define        CLRCMDINT           0x02
#define        CLRSEQINT           0x01
 
#define    ERROR                   0x92
#define        CIOPARERR           0x80
#define        PCIERRSTAT          0x40
#define        MPARERR             0x20
#define        DPARERR             0x10
#define        SQPARERR            0x08
#define        ILLOPCODE           0x04
#define        ILLSADDR            0x02
#define        ILLHADDR            0x01
 
#define    DFCNTRL                 0x93
 
#define    DFSTATUS                0x94
#define        PRELOAD_AVAIL       0x80
#define        DFCACHETH           0x40
#define        FIFOQWDEMP          0x20
#define        MREQPEND            0x10
#define        HDONE               0x08
#define        DFTHRESH            0x04
#define        FIFOFULL            0x02
#define        FIFOEMP             0x01
 
#define    DFWADDR                 0x95
 
#define    DFRADDR                 0x97
 
#define    DFDAT                   0x99
 
#define    SCBCNT                  0x9a
#define        SCBCNT_MASK         0x1f
#define        SCBAUTO             0x80
 
#define    QINFIFO                 0x9b
 
#define    QINCNT                  0x9c
 
#define    QOUTFIFO                0x9d
 
#define    CRCCONTROL1             0x9d
#define        CRCONSEEN           0x80
#define        CRCVALCHKEN         0x40
#define        CRCENDCHKEN         0x20
#define        CRCREQCHKEN         0x10
#define        TARGCRCENDEN        0x08
#define        TARGCRCCNTEN        0x04
 
#define    QOUTCNT                 0x9e
 
#define    SCSIPHASE               0x9e
#define        DATA_PHASE_MASK     0x03
#define        STATUS_PHASE        0x20
#define        COMMAND_PHASE       0x10
#define        MSG_IN_PHASE        0x08
#define        MSG_OUT_PHASE       0x04
#define        DATA_IN_PHASE       0x02
#define        DATA_OUT_PHASE      0x01
 
#define    SFUNCT                  0x9f
#define        ALT_MODE            0x80
 
#define    SCB_BASE                0xa0
 
#define    SCB_CDB_PTR             0xa0
#define    SCB_CDB_STORE           0xa0
#define    SCB_RESIDUAL_DATACNT        0xa0
 
#define    SCB_RESIDUAL_SGPTR        0xa4
 
#define    SCB_SCSI_STATUS         0xa8
 
#define    SCB_TARGET_PHASES        0xa9
 
#define    SCB_TARGET_DATA_DIR        0xaa
 
#define    SCB_TARGET_ITAG         0xab
 
#define    SCB_DATAPTR             0xac
 
#define    SCB_DATACNT             0xb0
#define        SG_HIGH_ADDR_BITS    0x7f
#define        SG_LAST_SEG         0x80
 
#define    SCB_SGPTR               0xb4
#define        SG_RESID_VALID      0x04
#define        SG_FULL_RESID       0x02
#define        SG_LIST_NULL        0x01
 
#define    SCB_CONTROL             0xb8
#define        SCB_TAG_TYPE        0x03
#define        TARGET_SCB          0x80
#define        STATUS_RCVD         0x80
#define        DISCENB             0x40
#define        TAG_ENB             0x20
#define        MK_MESSAGE          0x10
#define        ULTRAENB            0x08
#define        DISCONNECTED        0x04
 
#define    SCB_SCSIID              0xb9
#define        TID                 0xf0
#define        TWIN_TID            0x70
#define        OID                 0x0f
#define        TWIN_CHNLB          0x80
 
#define    SCB_LUN                 0xba
#define        LID                 0x3f
#define        SCB_XFERLEN_ODD     0x80
 
#define    SCB_TAG                 0xbb
 
#define    SCB_CDB_LEN             0xbc
 
#define    SCB_SCSIRATE            0xbd
 
#define    SCB_SCSIOFFSET          0xbe
 
#define    SCB_NEXT                0xbf
 
#define    SCB_64_SPARE            0xc0
 
#define    SEECTL_2840             0xc0
#define        CS_2840             0x04
#define        CK_2840             0x02
#define        DO_2840             0x01
 
#define    STATUS_2840             0xc1
#define        BIOS_SEL            0x60
#define        ADSEL               0x1e
#define        EEPROM_TF           0x80
#define        DI_2840             0x01
 
#define    SCB_64_BTT              0xd0
 
#define    CCHADDR                 0xe0
 
#define    CCHCNT                  0xe8
 
#define    CCSGRAM                 0xe9
 
#define    CCSGADDR                0xea
 
#define    CCSGCTL                 0xeb
#define        CCSGDONE            0x80
#define        CCSGEN              0x08
#define        SG_FETCH_NEEDED     0x02
#define        CCSGRESET           0x01
 
#define    CCSCBRAM                0xec
 
#define    CCSCBADDR               0xed
 
#define    CCSCBCTL                0xee
#define        CCSCBDONE           0x80
#define        ARRDONE             0x40
#define        CCARREN             0x10
#define        CCSCBEN             0x08
#define        CCSCBDIR            0x04
#define        CCSCBRESET          0x01
 
#define    CCSCBCNT                0xef
 
#define    SCBBADDR                0xf0
 
#define    CCSCBPTR                0xf1
 
#define    HNSCB_QOFF              0xf4
 
#define    SNSCB_QOFF              0xf6
 
#define    SDSCB_QOFF              0xf8
 
#define    QOFF_CTLSTA             0xfa
#define        SCB_QSIZE           0x07
#define        SCB_QSIZE_256       0x06
#define        SCB_AVAIL           0x40
#define        SNSCB_ROLLOVER      0x20
#define        SDSCB_ROLLOVER      0x10
 
#define    DFF_THRSH               0xfb
#define        WR_DFTHRSH          0x70
#define        WR_DFTHRSH_MAX      0x70
#define        WR_DFTHRSH_90       0x60
#define        WR_DFTHRSH_85       0x50
#define        WR_DFTHRSH_75       0x40
#define        WR_DFTHRSH_63       0x30
#define        WR_DFTHRSH_50       0x20
#define        WR_DFTHRSH_25       0x10
#define        RD_DFTHRSH          0x07
#define        RD_DFTHRSH_MAX      0x07
#define        RD_DFTHRSH_90       0x06
#define        RD_DFTHRSH_85       0x05
#define        RD_DFTHRSH_75       0x04
#define        RD_DFTHRSH_63       0x03
#define        RD_DFTHRSH_50       0x02
#define        RD_DFTHRSH_25       0x01
#define        RD_DFTHRSH_MIN      0x00
#define        WR_DFTHRSH_MIN      0x00
 
#define    SG_CACHE_SHADOW         0xfc
#define        SG_ADDR_MASK        0xf8
#define        LAST_SEG            0x02
#define        LAST_SEG_DONE       0x01
 
#define    SG_CACHE_PRE            0xfc
 
 
#define    TARGET_CMD_CMPLT    0xfe
#define    MAX_OFFSET_ULTRA2    0x7f
#define    MAX_OFFSET_16BIT    0x08
#define    BUS_8_BIT    0x00
#define    TID_SHIFT    0x04
#define    STATUS_QUEUE_FULL    0x28
#define    STATUS_BUSY    0x08
#define    SCB_DOWNLOAD_SIZE_64    0x30
#define    MAX_OFFSET_8BIT    0x0f
#define    HOST_MAILBOX_SHIFT    0x04
#define    CCSGADDR_MAX    0x80
#define    BUS_32_BIT    0x02
#define    SG_SIZEOF    0x08
#define    SEQ_MAILBOX_SHIFT    0x00
#define    SCB_LIST_NULL    0xff
#define    SCB_DOWNLOAD_SIZE    0x20
#define    CMD_GROUP_CODE_SHIFT    0x05
#define    CCSGRAM_MAXSEGS    0x10
#define    TARGET_DATA_IN    0x01
#define    STACK_SIZE    0x04
#define    SCB_UPLOAD_SIZE    0x20
#define    MAX_OFFSET    0x7f
#define    HOST_MSG    0xff
#define    BUS_16_BIT    0x01
 
 
/* Downloaded Constant Definitions */
#define    INVERTED_CACHESIZE_MASK    0x03
#define    SG_PREFETCH_ALIGN_MASK    0x05
#define    SG_PREFETCH_ADDR_MASK    0x06
#define    QOUTFIFO_OFFSET    0x00
#define    SG_PREFETCH_CNT    0x04
#define    QINFIFO_OFFSET    0x01
#define    CACHESIZE_MASK    0x02
#define    DOWNLOAD_CONST_COUNT    0x07
 
 
/* Exported Labels */