Annotation of XNU/iokit/Drivers/scsi/drvSymbios8xx/Sym8xxRegs.h, revision 1.1.1.1

1.1       root        1: /*
                      2:  * Copyright (c) 1999 Apple Computer, Inc. All rights reserved.
                      3:  *
                      4:  * @APPLE_LICENSE_HEADER_START@
                      5:  * 
                      6:  * The contents of this file constitute Original Code as defined in and
                      7:  * are subject to the Apple Public Source License Version 1.1 (the
                      8:  * "License").  You may not use this file except in compliance with the
                      9:  * License.  Please obtain a copy of the License at
                     10:  * http://www.apple.com/publicsource and read it before using this file.
                     11:  * 
                     12:  * This Original Code and all software distributed under the License are
                     13:  * distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER
                     14:  * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
                     15:  * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
                     16:  * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT.  Please see the
                     17:  * License for the specific language governing rights and limitations
                     18:  * under the License.
                     19:  * 
                     20:  * @APPLE_LICENSE_HEADER_END@
                     21:  */
                     22: 
                     23: /*
                     24:  * Copyright (c) 1998 Apple Computer Inc.
                     25:  *
                     26:  * Symbios8xx Controller.
                     27:  *
                     28:  */
                     29: 
                     30: /* SymBios 8xx register addressing definitions */
                     31: 
                     32: #define SCNTL0_SIZE   0x01
                     33: #define SCNTL0        0x00000000
                     34: #define SCNTL0_INIT   0xCA      /* Scsi control 0 */ 
                     35:    /* ARB1  1                  */
                     36:    /* ARB0  1 : Full arbitration            */
                     37:    /* START 0 : Start sequence            */
                     38:    /* WATN  0 : Select with ATN            */
                     39:    /* EPC   1 : enable SCSI bus parity checking      */
                     40:    /* RES      */
                     41:    /* AAP   1 : Assert ATN on SCSI parity error      */
                     42:    /* TRG   0 : Target mode. 720 is Initiator      */
                     43: 
                     44: #define SCNTL1_SIZE   0x01
                     45: #define SCNTL1        0x00000001
                     46: #define SCNTL1_INIT   0x00      /* Scsi control 1 */ 
                     47:    /* EXC   0 : Extra clock cycle data setup (Sdtr)      */
                     48:    /* ADB   0 : Assert SCSI data bus         */
                     49:    /* DHP   0 : Target only Disable halt parity error   */
                     50:    /* CON   0 : 820 connected to SCSI bus         */
                     51:    /* RST   0 : Assert SCSI RST signal         */
                     52:    /* AESP  0 : Force bad parity            */
                     53:    /* IARB  0 : Immediate arbitration         */
                     54:    /* SST   0 : Start SCSI transfer            */
                     55: 
                     56: #define SCNTL1_SCSI_RST                0x08     /* force scsi reset in scntl1 reg */
                     57: 
                     58: #define SCNTL2_SIZE   0x01
                     59: #define SCNTL2        0x00000002
                     60: #define SCNTL2_INIT   0x00      /* Scsi control 2 */ 
                     61:    #define    SDU                0x80  /* SDU   0 : SCSI Disconnect Unexpected         */
                     62:    #define    CHM                0x40   /* CHM   0 : Chained mode                       */
                     63:    #define    SLPMD              0x40   /* SLPMD 0 : SLPAR Mode Bit                     */
                     64:    #define    SLPHBEN            0x40   /* SLPHBEN : SLPAR High Byte Enable             */
                     65:    #define    WSS                0x08  /* WSS   0 : Wide Scsi Send                     */
                     66:    #define    VUE0               0x40   /* VUE0    : Vendor Uniq Enhancements Bit 0     */
                     67:    #define    VUE1               0x40   /* VUE1    : Vendor Uniq Enhancements Bit 1     */
                     68:    #define    WSR                0x01   /* WSR   0 : Wide Scsi Receive                  */
                     69: 
                     70: #define SCNTL3_SIZE   0x01
                     71: #define SCNTL3        0x00000003
                     72: #define SCNTL3_INIT            0x03   /* Scsi control 3 for 40Mhz sys clock */
                     73: #define SCNTL3_INIT_875        0x05   /* Scsi control 3 for 80Mhz sys clock */
                     74: #define SCNTL3_INIT_875_ULTRA   0x95   /* Scsi control 3 for 80Mhz sys clock */
                     75: #define SCNTL3_INIT_875_FAST   0x35   /* Scsi control 3 for 80Mhz sys clock */
                     76: #define SCNTL3_INIT_875_SLOW   0x55   /* Scsi control 3 for 80Mhz sys clock */
                     77:                                        /* RES                     */
                     78:    #define    SCF                0x70   /* SCF    0 : Sync clock conversion factor 0-2 */
                     79:    #define    EWS                0x08   /* EWS    0 : Enable Wide SCSI (wdtr)          */
                     80:    #define    CCF                0x07   /* CCF    0 : Async clock conversion factor 0-2        */
                     81: 
                     82: #define SCID_SIZE     0x01
                     83: #define SCID          0x00000004
                     84: #define SCID_INIT     0x40   /* Scsi chip Id */ 
                     85:    /* RES                     */
                     86:    /* RRE   1 : Enable response to reselection      */
                     87:    /* SRE   0 : Disable response to selection       */
                     88:    /* RES                     */
                     89:    /* ID3   0                                               */
                     90:    /* ID2   0                                               */
                     91:    /* ID1   0                                               */
                     92:    /* ID0   0 : Encoded 53825 chip SCSI Id         */
                     93: 
                     94: #define SXFER_SIZE    0x01
                     95: #define SXFER         0x00000005
                     96: #define SXFER_INIT    0x00   /* Scsi Transfer */ 
                     97:    /* TP2   0                  */
                     98:    /* TP1   0                  */
                     99:    /* TP0   0 : Scsi sync Transfer Period (4)(Sdtr)      */
                    100:    /* RES                     */
                    101:    /* MO3   0                  */
                    102:    /* MO2   0                  */
                    103:    /* MO1   0                  */
                    104:    /* MO0   0 : Max Scsi Sync ReqAck offset (async) (Sdtr)   */
                    105: 
                    106: #define SDID_SIZE     0x01
                    107: #define SDID          0x00000006
                    108: #define SDID_INIT     0x00   /* Scsi destination Id */ 
                    109:    /* RES                                                  */
                    110:    /* RES                                                  */
                    111:    /* RES                                                  */
                    112:    /* RES                                                  */
                    113:    /* ID3   0                  */
                    114:    /* ID2   0                  */
                    115:    /* ID1   0                  */
                    116:    /* ID0   0 : Encoded destination Scsi Id         */
                    117: 
                    118: #define GPREG_SIZE    0x01
                    119: #define GPREG         0x00000007
                    120: #define GPREG_INIT    0x00       /* Read/write general purpose */
                    121: #define GPIO3         0x08       /* GPIO bit 3 */
                    122:    /* RES                                                  */
                    123:    /* RES                                                  */
                    124:    /* RES                                                  */
                    125:    /* GPO    0 : General purpose output         */
                    126:    /* GPI3   0                  */
                    127:    /* GPI2   0                  */
                    128:    /* GPI1   0                  */
                    129:    /* GPI0   0 : General purpose inputs         */
                    130: 
                    131: #define SFBR_SIZE     0x01
                    132: #define SFBR          0x00000008
                    133: #define SFBR_INIT     0x00       
                    134:    /* SCSI First Byte Received */
                    135: 
                    136: #define SOCL_SIZE     0x01
                    137: #define SOCL          0x00000009
                    138: #define SOCL_INIT     0x00 
                    139:    #define    SREQ               0x80  /* REQ   0 : Assert SCSI REQ signal     */
                    140:    #define    SACK               0x40   /* ACK   0 :            ACK            */
                    141:    #define    SBSY               0x20   /* BSY   0 :            BSY            */
                    142:    #define    SSEL               0x10   /* SEL   0 :            SEL            */
                    143:    #define    SATN               0x08   /* ATN   0 :            ATN            */
                    144:    #define    SMSG               0x04   /* MSG   0 :            MSG            */
                    145:    #define    SC_D               0x02   /* C/D   0 :            C/D            */
                    146:    #define    SI_O               0x01   /* I/O   0 :            I/O            */
                    147: 
                    148: #define SSID_SIZE     0x01
                    149: #define SSID          0x0000000A /* Read Only */
                    150:    /* VAL       Scsi Valid Bit            */
                    151:    /* RES                                                  */
                    152:    /* RES                                                  */
                    153:    /* RES                                                  */
                    154:    /* ID3                     */
                    155:    /* ID2                     */
                    156:    /* ID1                     */
                    157:    /* ID0      Encoded Destination Scsi Id         */
                    158: 
                    159: #define SBCL_SIZE     0x01
                    160: #define SBCL          0x0000000B /* Scsi Bus Control Lines Read only */
                    161:    /* REQ                                                  */
                    162:    /* ACK                                                  */
                    163:    /* BSY                                                  */
                    164:    /* SEL                                                  */
                    165:    /* ATN                                                  */
                    166:    /* MSG                                                  */
                    167:    /* C/D                     */
                    168:    /* I/O                     */
                    169: 
                    170: #define DSTAT_SIZE    0x01
                    171: #define DSTAT         0x0000000C /* DMA status Read only */
                    172:    #define    DFE                0x80    /* DSTAT DMA FIFO Empty           */
                    173:    #define    MDPE               0x40    /* Master Data Parity Error       */
                    174:    #define    BF                 0x20    /* Bus Fault                      */
                    175:    #define    DABRT              0x10    /* Abort occurred                 */
                    176:    #define    SSI                0x08    /* Script Step Interrupt          */
                    177:    #define    SIR                0x04    /* Script Interrupt Inst Received */
                    178: #ifdef notdef
                    179:    #define    WTD                0x02    /* was watchdog timer, now reserved */
                    180: #endif /* notdef */
                    181:    #define    IID                0x01    /* Illegal Instruction Detected   */
                    182: 
                    183: #define SSTAT0_SIZE   0x01
                    184: #define SSTAT0        0x0000000D /* SCSI status zero Read only */
                    185:     #define    ILF             0x80     /* ILF   SIDL least significant byte full      */
                    186:     #define    ORF             0x40     /* ORF   SODR least significant byte full      */
                    187:     #define    OLF             0x20     /* OLF   SODL least significant byte full      */
                    188:     #define    AIP             0x10     /* AIP   Arbitration in progress               */
                    189:     #define    LOA             0x08     /* LOA   Lost arbitration                      */
                    190:     #define    WOA             0x04     /* WOA   Won arbitration                       */
                    191:     #define    RSTB            0x02     /* RST   Scsi reset signal                     */
                    192:     #define    SDP0            0x01     /* SDP0  Scsi SDP0 parity signal               */
                    193: 
                    194: #define SSTAT1_SIZE   0x01
                    195: #define SSTAT1        0x0000000E /* SCSI status one Read only */
                    196:    /* FF3-0 Bytes or word in the Scsi FIFO         */
                    197:    /* SDP   Latched Scsi parity            */
                    198:    /* MSG   Scsi phase status            */
                    199:    /* C/D                     */
                    200:    /* I/O                     */
                    201: 
                    202: #define SSTAT2_SIZE   0x01
                    203: #define SSTAT2        0x0000000F /* Scsi status two Read only */
                    204:     #define    ILF1            0x80    /* ILF1   SIDL most significant byte full       */
                    205:     #define    ORF1            0x40    /* ORF1   SODR   "   "   "   "                  */
                    206:     #define    OLF1            0x20    /* OLF1   SODL   "   "   "   "                  */
                    207:                                         /* RES                                         */
                    208:     #define    SPL1            0x08    /* SPL1   Latched Scsi parity for SIDL15-8      */
                    209:     #define    FF4             0x04    /* FIFO Flags Bit 4                             */
                    210:     #define    LDSC            0x02    /* LDSC   Last disconnect                       */
                    211:     #define    SDP1            0x01    /* SDP1   Scsi SDP1 Signal                      */
                    212: 
                    213: #define DSA_SIZE      0x04
                    214: #define DSA           0x00000010
                    215: #define DSA_INIT      0x00000000 /* Data structure address */
                    216: 
                    217: #define ISTAT_SIZE    0x01
                    218: #define ISTAT         0x00000014
                    219: #define ISTAT_INIT    0x00       /* Interrupt Status   */
                    220:    #define    ABRT         0x80    /* Abort Operation      */
                    221:    #define    RST          0x40    /* Software reset      */
                    222:    #define    SIGP         0x20    /* Signal process      */
                    223:    #define    SEM          0x10    /* Semaphore         */
                    224:    #define    ISTAT_CON           0X08    /* Connected to target. */
                    225:    #define    INTF         0x04    /* Interrupt on the fly   */
                    226:    #define    SIP          0x02    /* SCSI Interrupt Pending   */
                    227:    #define    DIP          0x01    /* DMA Interrupt Pending    */
                    228: 
                    229: #define CTEST0_SIZE   0x01
                    230: #define CTEST0        0x00000018
                    231: #define CTEST0_INIT   0x00       /* Chip test zero (now general purpose, rph) */
                    232: 
                    233: #define CTEST1_SIZE   0x01
                    234: #define CTEST1        0x00000019 /* Chip test one Read only */
                    235:    /* FMT3-0 0 : Byte empty in DMA FIFO         */
                    236:    /* FFL3-0 0 : Byte full in DMA FIFO         */
                    237: 
                    238: #define CTEST2_SIZE   0x01
                    239: #define CTEST2        0x0000001A /* Chip test two Read only */
                    240:    /* DDIR   Data transfer direction (1 : Scsi bus -> host)   */
                    241:    /* SIGP   Signal process (Clear SIGP ISTAT when read)   */
                    242:    /* CIO (read-only, indicates chip configured as I/O space) */
                    243:    /* CM  (read-only, indicates configured as memory space) */
                    244:    /* RES               */
                    245:    /* TEOP   Scsi true end of process         */
                    246:    /* DREQ   Data request status            */
                    247:    /* DACK   Data acknowledge status            */
                    248: 
                    249: #define CTEST3_SIZE   0x01
                    250: #define CTEST3        0x0000001B
                    251: #define CTEST3_INIT   0x04       /* Chip test  three */
                    252: #define CTEST3_INIT_A 0x05       /* Chip test  three for 'A' part */
                    253: 
                    254:    #define    VERS         0xf0   /* V3-0  0 : Chip revision level       */
                    255:    #define    FLF          0x08   /* FLF   0 : Flush DMA Fifo            */
                    256:    #define    CLF          0x04   /* CLF   1 : Clear DMA FIFO           */
                    257:    #define    FM           0x02   /* FM    0 : Fetch pin mode            */
                    258:    #define    WRIE         0x01   /* WRIE  1 : Write and Invalidate Enable, for 825A only!!! */
                    259: 
                    260: #define TEMP_SIZE     0x04
                    261: #define TEMP          0x0000001C
                    262: #define TEMP_INIT     0x00000000 /* Tempory stack */
                    263: 
                    264: #define DFIFO_SIZE    0x01
                    265: #define DFIFO         0x00000020
                    266: #define DFIFO_INIT    0x00       /* DMA FIFO */
                    267:    /* upper bit used for 825 'A' part when using large fifo */
                    268:    /* BO6-0 0: Byte offset counter            */
                    269: 
                    270: #define CTEST4_SIZE   0x01
                    271: #define CTEST4        0x00000021 /* Chip test four */
                    272: //  #define CTEST4_INIT   0x80 /* Chip test four DISABLE BURST!! */
                    273: #define CTEST4_INIT   0x00 /* Chip test four */
                    274:    /* BDIS  0 : set for Burst Disable, reset allows burst on data moves */
                    275:    /* ZMOD   High impedance mode            */
                    276:    /* ZSD    Scsi high impedance mode         */
                    277:    /* SRTM   Shadow register test mode         */
                    278: /* NOT for bandit!!!! yes for NEW rev of Dumbarton LATER on, not initial!!! */
                    279:    /* MPEE  0 : Master Parity Error Enable   Do we want this set????   rph  */
                    280:    /* FBL2-0 Fifo byte control            */
                    281: 
                    282: #define CTEST5_SIZE   0x01
                    283: #define CTEST5        0x00000022
                    284: #define CTEST5_INIT   0x00       /* Chip test five */
                    285: #define CTEST5_INIT_A 0x00       /* Chip test five 'A' part, upper burst OFF */
                    286: #define CTEST5_INIT_A_revB 0x24  /* Chip test five 'A' part, upper burst OFF
                    287:                                  * also Enable 536 byte fifo */
                    288:     #define    ADCK                    0x80    /* ADCK   0 : Clock address incrementor                 */
                    289:     #define    BBCK                    0x40    /* BBCK   0 : Clock byte counter                        */
                    290:     #define    DFS             0x20    /* DFS    0 : fifo size - 0=88 1=536 bytes              */
                    291:     #define    MASR                    0x10    /* MASR   0 : Master control for set reset pulses       */
                    292:     #define    DDIR                    0x08    /* DDIR   0 : DMA direction                             */
                    293:     #define    BL2             0x04    /* BL2    0 : see DMODE bits 6,7                        */
                    294:     #define    BO89                    0x03    /* BO89   0 : upper bits of DFIFO count                 */
                    295: 
                    296: #define CTEST6_SIZE   0x01
                    297: #define CTEST6        0x00000023
                    298: #define CTEST6_INIT   0x00       /* chip test six */
                    299:    /* 7-0   0 : DMA Fifo               */
                    300: 
                    301: #define DBC_SIZE      0x04
                    302: #define DBC           0x00000024
                    303: #define DBC_INIT      0x000000   /* DMA Byte Counter */
                    304: 
                    305: #define DCMD_SIZE     0x01
                    306: #define DCMD          0x00000027
                    307: #define DCMD_INIT     0x00       /* DMA command */
                    308: 
                    309: #define DNAD_SIZE     0x04
                    310: #define DNAD          0x00000028
                    311: #define DNAD_INIT     0x00000000 /* DMA Next Data Address */
                    312: 
                    313: #define DSP_SIZE      0x04
                    314: #define DSP           0x0000002C
                    315: #define DSP_INIT      0x00000000 /* DMA script pointer */
                    316: 
                    317: #define DSPS_SIZE     0x04
                    318: #define DSPS          0x00000030
                    319: #define DSPS_INIT     0x00000000 /* DMA SCRIPTS Pointer Save */
                    320: 
                    321: #define SCRATCHA_SIZE 0x04
                    322: #define SCRATCHA      0x00000034  
                    323: #define SCRATCHA0     0x00000034
                    324: #define SCRATCHA1     0x00000035
                    325: #define SCRATCHA2     0x00000036
                    326: #define SCRATCHA3     0x00000037
                    327: #define SCRATCHA_INIT 0x04030201 /* general purpose register */
                    328: 
                    329: #define DMODE_SIZE    0x01
                    330: #define DMODE         0x00000038
                    331: /* 825 bug!!!!! 8 is max!!!!!!!                rph 8-23-94
                    332:  */
                    333: #define DMODE_INIT        0x82  /* DMA mode 8 burst xfers + instruc fetch */
                    334: #define DMODE_INIT_A       0x0A  /* DMA mode 32 burst xfers + instruc fetch */
                    335:    /* BL1     1 : Burst length, burst size is '8' transfers (4 bytes per) */
                    336:    /* BL0     0 : Burst length  */
                    337:    /* SIOM    0 : Source I/O-Memory Enable (Memory space is default) */
                    338:    /* DIOM    0 : Destination I/O-Memory Enable (Memory space is default) */
                    339:    /* ER      1 : Enable Read Line Command,  set for 825'A' part    */
                    340:    /* ERM     0 :              */
                    341:    /* BOF     1 : Burst Op Code Fetch Enable, only for 825!!! rph */
                    342:    /* MAN     0 : Manual start mode (leave 0 for auto-start with DSP write  */
                    343: 
                    344: #define DIEN_SIZE     0x01
                    345: #define DIEN          0x00000039
                    346: #define DIEN_INIT     0x7D       /* No mask on DMA interrupt */
                    347:    /* RES                     */
                    348:    /* MDPE  1 : Master Data Parity Error   */
                    349:    /* BF    1 : Bus fault               */
                    350:    /* ABRT  1 : Aborted               */
                    351:    /* SSI   1 : Script step interrupt         */
                    352:    /* SIR   1 : Script interrupt instruction received   */
                    353:    /* RES          */
                    354:    /* IID   1 : Illegal instruction detected      */
                    355: 
                    356: #define DWT_SIZE      0x01
                    357: #define DWT           0x0000003A
                    358: #define DWT_INIT      0xD0       /* DMA watchdog timer to 0xD0*32*BCLK ns*/
                    359: 
                    360: #define DCNTL_SIZE    0x01
                    361: #define DCNTL         0x0000003B
                    362: #define DCNTL_INIT    0x01     /* DMA Control register */
                    363: #define DCNTL_INIT_A  0xA1     /* DMA Control register, 'A' part */
                    364:    /* CLE  7: Cache Line Size Enable for 'A' part */
                    365:    /* PFF  6: pre-fetch flush bit for 'A' part */
                    366:    /* PFEN 5: pre-fetch Enable bit for 'A' part */
                    367:    /* RES  */ 
                    368:    /* RES  */
                    369: #define  SSM  0x10      /* 0 : Single step mode       */
                    370:    /* IRQM   0 : HW driver type for IRQ pin, default is open drain, ask HW rph*/
                    371: #define  STD  0x04      /* 0 : start DMA operation       */
                    372:    /* IRQ 1: IRQ disable for 'A' part */
                    373:    /* COM   1 : No Compatibility 700            */
                    374: 
                    375: #define ADDER_SIZE    0x04
                    376: #define ADDER         0x0000003C /* Adder sum output Read only */
                    377: 
                    378: #define SIEN_SIZE     0x02
                    379: #define SIEN          0x00000040
                    380: #define SIEN_INIT_RST_OFF  0x048D  /* SCSI Interrupt enable SIEN0-1  rph */
                    381: #define SIEN_INIT          0x048F  /* SCSI Interrupt enable SIEN0-1  rph */
                    382: /* SIEN0 */
                    383:    /* M/A   1 : Scsi phase mismatch    */
                    384:    /* CMP   0 : Function complete      */
                    385:    /* SEL   0 : Selected               */
                    386:    /* RSL   0 : Reselected             */
                    387:    /* SGE   1 : Scsi Gross error       */
                    388:    /* UDC   1 : Unexpected disconnect  */
                    389:    /* RST   1 : Scsi Reset condition   */
                    390:    /* PAR   1 : Scsi Parity error      */
                    391: 
                    392:    /* RES                              */
                    393:    /* RES                              */
                    394:    /* RES                              */
                    395:    /* RES                              */
                    396:    /* RES                              */
                    397:    /* STO   1 : (Re)Selection timeout  */
                    398:    /* GEM   0 : General purpose timeout*/
                    399:    /* HTH   0 : Handshake timeout      */
                    400: 
                    401: #define SIST_SIZE     0x02
                    402: #define SIST          0x00000042 /* Scsi interrupt status Read only */
                    403:    /* idem SIEN reg               */
                    404:    #define    STO              0x0400
                    405:    #define    GEN              0x0200
                    406:    #define    HTH              0x0100
                    407:      
                    408:    #define    MA               0x0080
                    409:    #define    CMP              0x0040
                    410:    #define    SEL              0x0020
                    411:    #define    RSL              0x0010
                    412:    #define    SGE              0x0008
                    413:    #define    UDC              0x0004
                    414:    #define    RSTI              0x0002
                    415:    #define    PAR               0x0001 
                    416: 
                    417: #define SLPAR_SIZE    0x01
                    418: #define SLPAR         0x00000044
                    419: #define SLPAR_INIT    0x00       /* SCSI longitudinal parity */
                    420: 
                    421: #define SWIDE_SIZE    0x01
                    422: #define SWIDE         0x00000045 /*  Scsi wide residue data Read only */
                    423: 
                    424: #define MACNTL_SIZE   0x01
                    425: #define MACNTL        0x00000046
                    426: #define MACNTL_INIT   0x00       /* memory access control */
                    427:    /* TYP3-0   : Chip Type (read-only)         */
                    428:    /* DataWr 0 : Data write Far memory         */
                    429:    /* DataRd 0 : Data read far memory         */
                    430:    /* Pointer to script fetch 0 : far memory      */
                    431:    /* Script fetch 0 : far memory            */
                    432: 
                    433: #define GPCNTL_SIZE   0x01
                    434: #define GPCNTL        0x00000047
                    435: #define GPCNTL_INIT   0x0F       /* General purpose control Cf appendum  ?? */
                    436: // #define GPCNTL_INIT   0xCF       /* General purpose control Cf appendum  ?? */
                    437:    /* ME        : 0 Master Enable                          */
                    438:    /* FE        : 0 Fetch  Enable                          */
                    439:    /* RES                                                  */
                    440:    /* GPI/O_en4 : 0 GPREG input or output         */
                    441:    /* GPI/O_en3 : 1               */
                    442:    /* GPI/O_en2 : 1                                        */
                    443:    /* GPI/O_en1 : 1                                        */
                    444:    /* GPI/O_en0 : 1                                        */
                    445: 
                    446: #define STIME0_SIZE   0x01
                    447: #define STIME0        0x00000048
                    448: #define STIME0_INIT   0x0C       /* Scsi timer register 0 */
                    449:    /* HTH3                     */
                    450:    /* HTH2                     */
                    451:    /* HTH1   0                   */
                    452:    /* HTH0   0 : Handshake timer period (disabled)      */
                    453:    /* SEL3   1                   */
                    454:    /* SEL2   1                  */
                    455:    /* SEL1   0                  */
                    456:    /* SEL0   0 : Selection timeout period (204.8ms)      */
                    457: 
                    458: #define STIME1_SIZE   0x01
                    459: #define STIME1        0x00000049
                    460: #define STIME1_INIT   0x00       /* Scsi timer register one */
                    461:    /* RES                                                  */
                    462:    /* RES                                                  */
                    463:    /* RES                                                  */
                    464:    /* RES                                                  */
                    465:    /* GEN3 0                   */
                    466:    /* GEN2 0                  */
                    467:    /* GEN1 0                  */
                    468:    /* GEN0 0 : General purpose timer period (disabled)   */
                    469: 
                    470: #define RESPID0_SIZE  0x01
                    471: #define RESPID0       0x0000004A
                    472: #define RESPID0_INIT  0x00       /* Response Id zero */
                    473:    /* ID7 - ID0                  */
                    474: 
                    475: #define RESPID1_SIZE  0x01
                    476: #define RESPID1       0x0000004B
                    477: #define RESPID1_INIT  0x00       /* Response ID one       */
                    478:    /* ID15  - ID8                  */
                    479: 
                    480: #define STEST0_SIZE   0x01
                    481: #define STEST0        0x0000004C /*  Scsi test register zero Read only */
                    482:    /* RES                                                  */
                    483:    /* RES                                                  */
                    484:    /* RES                                                  */
                    485:    /* RES                                                  */
                    486:    /* SLT Selection response Logic test         */
                    487:    /* ART Arbitration priority encoder test      */
                    488:    /* SOZ Scsi synchronous offset zero         */
                    489:    /* SOM Scsi synchronous offset maximum         */
                    490: 
                    491: #define STEST1_SIZE   0x01
                    492: #define STEST1        0x0000004D       /* Scsi test register one Read/Write */
                    493: #define STEST1_INIT   0x00
                    494:    #define    SCLK             0x80    /* SCLK    0 : 1 = Use PCI Clock 0 = Use SCLK input     */
                    495:    #define    SISIO            0x40    /* SISIO   0 : SCSI Isolation Mode                      */
                    496:                                        /*         0 :                                          */
                    497:                                        /*         0 :                                          */
                    498:    #define    DBLEN            0x08    /* DBLEN   0 : SCLK Doubler Enable                      */
                    499:    #define    DBLSEL           0x04    /* DBLSEL  0 : SCLK Doubler Select                      */
                    500:                                        /*         0 :                                          */
                    501:                                        /*         0 :                                          */
                    502: 
                    503: #define STEST2_SIZE   0x01
                    504: #define STEST2        0x0000004E
                    505: #define STEST2_INIT        0x00       /* Scsi Test register two */
                    506: #define STEST2_DIFF_INIT   0x20       /* Scsi Test register two */
                    507:    #define    SCE              0x80    /* SCE   0 : Scsi control enable                                        */
                    508:    #define    ROF              0x40    /* ROF   0 : Reset Scsi offset                                          */
                    509:    #define    DIF              0x20    /* DIF   0/1 : SCSI differential mode, set if we detect differential card */
                    510:    #define    SLB              0x10    /* SLB   0 : Scsi loopback mode                                         */
                    511:    #define    SZM              0x08    /* SZM   0 : SCSI high impedance mode                                   */
                    512:    #define    AWS              0x04    /* AWS   0 : Always wide SCSI                                           */
                    513:    #define    EXT              0x02    /* EXT   0 : Extend REQ/ACK filtering    NEVER want SET for 'fast'!!!   */
                    514:    #define    LOW              0x01    /* LOW   0 : Scsi low level mode                                        */
                    515: 
                    516: #define STEST3_SIZE   0x01
                    517: #define STEST3        0x0000004F
                    518: #define STEST3_INIT   0x92   /* Scsi test register 3   */
                    519:    #define    EAN              0x80    /* EAN   1 : Enable active negation                     */
                    520:    #define    STR              0x40    /* STR   0 : Scsi FIFO test read                        */
                    521:    #define    HSC              0x20    /* HSC   0 : Halt Scsi Clock                            */
                    522:    #define    DSI              0x10    /* DSI   1 : Disable single initiator response          */
                    523:                                        /* RES                                                  */
                    524:    #define    TTM              0x04    /* TTM   0 : Timer test mode                            */
                    525:    #define    CSF              0x02    /* CSF   1 : Clear SCSI FIFO                            */
                    526:    #define    STW              0x01    /* STW   0 : SCSI FIFO test write                       */
                    527: 
                    528: #define SSIDL_SIZE    0x02
                    529: #define SSIDL         0x00000050 /* SCSI input data latch Read only */
                    530: 
                    531: #define SODL_SIZE     0x02
                    532: #define SODL          0x00000054
                    533: #define SODL_INIT     0x0000     /* SCSI Output Data Latch */
                    534: 
                    535: #define SBDL_SIZE     0x02
                    536: #define SBDL          0x00000058 /* SCSI bus data line Read only */
                    537: 
                    538: #define SCRATCHB_SIZE 0x04
                    539: #define SCRATCHB      0x0000005C
                    540: #define SCRATCHB0     0x0000005C
                    541: #define SCRATCHB1     0x0000005D
                    542: #define SCRATCHB2     0x0000005E
                    543: #define SCRATCHB3     0x0000005F
                    544: #define SCRATCHB_INIT 0x00000000 /* general purpose register */
                    545: 
                    546: /* ************************* */
                    547: 
                    548: /* Miscellaneous defines */
                    549: #define CLK_40MHz                      40
                    550: #define CLK_80MHz                      80
                    551: #define kResetRecoveryTimeMS           5000
                    552: 
                    553: #define kChipIdSym875                  0x000f
                    554: #define kChipIdSym895                  0x000c
                    555: #define kChipIdSym896                  0x000b

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.