[BACK]Return to vsreg.h CVS log [TXT][DIR] Up to [local] / sys / arch / mvme88k / dev

Annotation of sys/arch/mvme88k/dev/vsreg.h, Revision 1.1.1.1

1.1       nbrk        1: /*     $OpenBSD: vsreg.h,v 1.14 2006/12/21 02:28:47 krw Exp $  */
                      2: /*
                      3:  * Copyright (c) 2004, Miodrag Vallat.
                      4:  * Copyright (c) 1999 Steve Murphree, Jr.
                      5:  * Copyright (c) 1990 The Regents of the University of California.
                      6:  * All rights reserved.
                      7:  *
                      8:  * This code is derived from source contributed by Mark Bellon.
                      9:  *
                     10:  * Redistribution and use in source and binary forms, with or without
                     11:  * modification, are permitted provided that the following conditions
                     12:  * are met:
                     13:  * 1. Redistributions of source code must retain the above copyright
                     14:  *    notice, this list of conditions and the following disclaimer.
                     15:  * 2. Redistributions in binary form must reproduce the above copyright
                     16:  *    notice, this list of conditions and the following disclaimer in the
                     17:  *    documentation and/or other materials provided with the distribution.
                     18:  * 3. Neither the name of the University nor the names of its contributors
                     19:  *    may be used to endorse or promote products derived from this software
                     20:  *    without specific prior written permission.
                     21:  *
                     22:  * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
                     23:  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
                     24:  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
                     25:  * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
                     26:  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
                     27:  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
                     28:  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
                     29:  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
                     30:  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
                     31:  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
                     32:  * SUCH DAMAGE.
                     33:  */
                     34:
                     35: #ifndef        _MVME328_REG_H_
                     36: #define        _MVME328_REG_H_
                     37:
                     38: /*
                     39:  * JAGUAR specific device limits
                     40:  */
                     41:
                     42: #define        JAGUAR_MIN_Q_SIZ                2
                     43: #define        JAGUAR_MAX_CTLR_CMDS            80      /* Interphase says so */
                     44: #define        JAGUAR_MAX_Q_SIZ                (JAGUAR_MAX_CTLR_CMDS / NUM_WQ)
                     45:
                     46: /*
                     47:  * COUGAR specific device limits
                     48:  */
                     49:
                     50: #define        COUGAR_MIN_Q_SIZ                2
                     51: #define        COUGAR_CMDS_PER_256K            42      /* Interphase says so */
                     52:
                     53: /*
                     54:  * Structures
                     55:  */
                     56:
                     57: #define        NUM_CQE                 10
                     58: #define        NUM_IOPB                NUM_CQE
                     59: #define        NUM_WQ                  15
                     60:
                     61: /*
                     62:  * Master Control Status Block (MCSB)
                     63:  */
                     64:
                     65: #define        MCSB_MSR                0x000000        /* master status register */
                     66: #define        M_MSR_QFC       0x0004          /* queue flush complete */
                     67: #define        M_MSR_BOK       0x0002          /* board OK */
                     68: #define        M_MSR_CNA       0x0001          /* controller not available */
                     69: #define        MCSB_MCR                0x000002        /* master control register */
                     70: #define        M_MCR_SFEN      0x2000          /* sysfail enable */
                     71: #define        M_MCR_RES       0x1000          /* reset controller */
                     72: #define        M_MCR_FLQ       0x0800          /* flush queue */
                     73: #define        M_MCR_FLQR      0x0004          /* flush queue and report */
                     74: #define        M_MCR_SQM       0x0001          /* start queue mode */
                     75: #define        MCSB_IQAR               0x000004        /* interrupt on queue avail */
                     76: #define        M_IQAR_IQEA     0x8000          /* interrupt on queue entry avail */
                     77: #define        M_IQAR_IQEH     0x4000          /* interrupt on queue half empty */
                     78: #define        M_IQAR_ILVL     0x0700          /* interrupt lvl on queue available */
                     79: #define        M_IQAR_IVCT     0x00ff          /* interrupt vector on queue avail */
                     80: #define        MCSB_QHDP               0x000006        /* queue head pointer */
                     81: #define        MCSB_THAW               0x000008        /* thaw work queue */
                     82: #define        M_THAW_TWQN     0xff00          /* thaw work queue number */
                     83: #define        M_THAW_TWQE     0x0001          /* thaw work queue enable */
                     84: #define        MCSB_SIZE               0x000010
                     85:
                     86: /*
                     87:  * Host Semaphore Block (HSB)
                     88:  */
                     89:
                     90: #define        HSB_INITQ               0x000000        /* init MCE flag */
                     91: #define        HSB_WORKQ               0x000002        /* work queue number */
                     92: #define        HSB_MAGIC               0x000004        /* magic word */
                     93: #define        HSB_SIZE                0x000008
                     94:
                     95: /*
                     96:  * Controller Initialization Block (CIB)
                     97:  */
                     98:
                     99: #define        CIB_NCQE                0x000000        /* number of CQE */
                    100: #define        CIB_BURST               0x000002        /* DMA burst count */
                    101: #define        CIB_NVECT               0x000004        /* normal completion vector */
                    102: #define        CIB_EVECT               0x000006        /* error completion vector */
                    103: #define        M_VECT_ILVL     0x0700          /* Interrupt Level mask */
                    104: #define        M_VECT_IVCT     0x00ff          /* Interrupt Vector mask */
                    105: #define        CIB_PID                 0x000008        /* primary scsi bus id */
                    106: #define        CIB_SID                 0x00000a        /* secondary scsi bus id */
                    107: #define        M_PSID_DFT      0x0008          /* default ID enable */
                    108: #define        M_PSID_ID       0x0007          /* primary/secondary SCSI ID */
                    109: #define        CIB_CRBO                0x00000c        /* CRB offset */
                    110: #define        CIB_SELECT              0x00000e        /* selection timeout in ms */
                    111: #define        CIB_WQTIMO              0x000012        /* work queue timeout in 256ms */
                    112: #define        CIB_VMETIMO             0x000016        /* VME timeout in 32ms */
                    113: #define        CIB_OBMT                0x00001e        /* offboard CRB mtype/xfer type/ad mod */
                    114: #define        CIB_OBADDR              0x000020        /* host mem address for offboard CRB */
                    115: #define        CIB_ERR_FLGS            0x000024        /* error recovery flags */
                    116: #define        M_ERRFLGS_FOSR  0x0001          /* Freeze on SCSI bus reset */
                    117: #define        M_ERRFLGS_RIN   0x0002          /* SCSI bus reset interrupt */
                    118: #define        M_ERRFLGS_RSE   0x0004          /* Report COUGAR SCSI errors */
                    119: #define        CIB_SBRIV               0x00002a        /* scsi bus reset interrupt vector */
                    120: #define        CIB_SOF0                0x00002c        /* synchronous offset (bus 0) */
                    121: #define        CIB_SRATE0              0x00002d        /* sync negotiation rate (bus 0) */
                    122: #define        CIB_SOF1                0x00002e        /* synchronous offset (bus 0) */
                    123: #define        CIB_SRATE1              0x00002f        /* sync negotiation rate (bus 0) */
                    124: #define        CIB_SIZE                0x000030
                    125:
                    126: /*
                    127:  * Command Queue Entry (CQE)
                    128:  */
                    129:
                    130: #define        CQE_QECR                0x000000        /* queue entry control reg */
                    131: #define        M_QECR_IOPB     0x0f00          /* IOPB type (must be zero) */
                    132: #define        M_QECR_HPC      0x0004          /* High Priority command */
                    133: #define        M_QECR_AA       0x0002          /* abort acknowledge */
                    134: #define        M_QECR_GO       0x0001          /* Go/Busy */
                    135: #define        CQE_IOPB_ADDR           0x000002        /* IOPB address */
                    136: #define        CQE_CTAG                0x000004        /* command tag */
                    137: #define        CQE_IOPB_LENGTH         0x000008        /* IOPB length */
                    138: #define        CQE_WORK_QUEUE          0x000009        /* work queue number */
                    139: #define        CQE_SIZE                0x00000c
                    140:
                    141: /*
                    142:  * Command Response Block (CRB)
                    143:  */
                    144:
                    145: #define        CRB_CRSW                0x000000        /* status word */
                    146: #define        M_CRSW_SE       0x0800          /* SCSI error (COUGAR) */
                    147: #define        M_CRSW_RST      0x0400          /* SCSI Bus reset (COUGAR) */
                    148: #define        M_CRSW_SC       0x0080          /* status change */
                    149: #define        M_CRSW_CQA      0x0040          /* Command queue entry available */
                    150: #define        M_CRSW_QMS      0x0020          /* queue mode started */
                    151: #define        M_CRSW_AQ       0x0010          /* abort queue */
                    152: #define        M_CRSW_EX       0x0008          /* exception */
                    153: #define        M_CRSW_ER       0x0004          /* error */
                    154: #define        M_CRSW_CC       0x0002          /* command complete */
                    155: #define        M_CRSW_CRBV     0x0001          /* cmd response block valid/clear */
                    156: #define        CRB_CTAG                0x000004        /* command tag */
                    157: #define        CRB_IOPB_LENGTH         0x000008        /* IOPB length */
                    158: #define        CRB_WORK_QUEUE          0x000009        /* work queue number */
                    159: #define        CRB_SIZE                0x00000c
                    160:
                    161: /*
                    162:  * Controller Error Vector Status Block (CEVSB)
                    163:  * This is a variation of the CRB, _but larger_.
                    164:  */
                    165:
                    166: #define        CONTROLLER_ERROR        0x0085
                    167: #define        NR_SCSI_ERROR           0x0885
                    168:
                    169: #define        CEVSB_CRSW              0x000000        /* status word */
                    170: #define        CEVSB_TYPE              0x000002        /* IOPB type */
                    171: #define        CEVSB_CTAG              0x000004        /* command tag */
                    172: #define        CEVSB_IOPB_LENGTH       0x000008        /* IOPB length */
                    173: #define        CEVSB_WORK_QUEUE        0x000009        /* work queue number */
                    174: #define        CEVSB_ERROR             0x00000d        /* error code */
                    175: #define        CEVSB_ERR_TYPE  0xc0                    /* IOPB type error */
                    176: #define        CEVSB_ERR_TO    0xc1                    /* IOPB timeout error */
                    177: #define        CEVSB_ERR_TR    0x82                    /* Target Reconnect, no IOPB */
                    178: #define        CEVSB_ERR_OF    0x83                    /* Overflow */
                    179: #define        CEVSB_ERR_BD    0x84                    /* Bad direction */
                    180: #define        CEVSB_ERR_NR    0x86                    /* Non-Recoverabl Error */
                    181: #define        CEVSB_ERR_PANIC 0xff                    /* Board Painc!!! */
                    182: #define        CEVSB_AUXERR            0x00000e        /* cougar error code */
                    183: #define        CEVSB_SIZE              0x000010
                    184:
                    185: /*
                    186:  * Configuration Status Block (CSB)
                    187:  */
                    188:
                    189: #define        CSB_TYPE                0x000000        /* jaguar/cougar */
                    190: #define        COUGAR          0x4220
                    191: #define        JAGUAR          0x0000
                    192: #define        CSB_PCODE               0x000003        /* product code */
                    193: #define        CSB_PVAR                0x000009        /* product variation */
                    194: #define        CSB_FREV                0x00000d        /* firmware revision level */
                    195: #define        CSB_FDATE               0x000012        /* firmware release date */
                    196: #define        CSB_SSIZE               0x00001a        /* system memory size in KB */
                    197: #define        CSB_BSIZE               0x00001c        /* buffer memory size in KB */
                    198: #define        CSB_PFECID              0x000020        /* primary bus FEC id */
                    199: #define        CSB_SFECID              0x000021        /* secondary bus FEC id */
                    200: #define        CSB_PID                 0x000022        /* primary bus id */
                    201: #define        CSB_SID                 0x000023        /* secondary bus id */
                    202: #define        CSB_LPDS                0x000024        /* last primary device selected */
                    203: #define        CSB_LSDS                0x000025        /* last secondary device selected */
                    204: #define        CSB_PPS                 0x000026        /* primary phase sense */
                    205: #define        CSB_SPS                 0x000027        /* secondary phase sense */
                    206: #define        CSB_DBID                0x000029        /* daughter board id */
                    207: #define        DBID_SCSI2      0x02                    /* modern SCSI ??? */
                    208: #define        DBID_PRINTER    0x04                    /* printer daughter board */
                    209: #define        DBID_SCSI       0x06                    /* SCSI daugter board */
                    210: #define        DBID_NONE       0x07                    /* no daughter board */
                    211: #define        CSB_SDS                 0x00002b        /* software DIP switch */
                    212: #define        CSB_FWQR                0x00002e        /* frozen work queues register */
                    213: #define        CSB_SIZE                0x000078
                    214:
                    215: /*
                    216:  * IOPB Format (IOPB)
                    217:  */
                    218:
                    219: #define        IOPB_CMD                0x000000        /* command code */
                    220: #define        IOPB_OPTION             0x000002        /* option word */
                    221: #define        M_OPT_HEAD_TAG          0x3000  /* head of queue command queue tag */
                    222: #define        M_OPT_ORDERED_TAG       0x2000  /* order command queue tag */
                    223: #define        M_OPT_SIMPLE_TAG        0x1000  /* simple command queue tag */
                    224: #define        M_OPT_GO_WIDE           0x0800  /* use WIDE transfers */
                    225: #define        M_OPT_DIR               0x0100  /* VME direction bit */
                    226: #define        M_OPT_SG_BLOCK          0x0008  /* scatter/gather in 512 byte blocks */
                    227: #define        M_OPT_SS                0x0004  /* Suppress synchronous transfer */
                    228: #define        M_OPT_SG                0x0002  /* scatter/gather bit */
                    229: #define        M_OPT_IE                0x0001  /* Interrupt enable */
                    230: #define        IOPB_STATUS             0x000004        /* return status word */
                    231: #define        IOPB_NVCT               0x000008        /* normal completion vector */
                    232: #define        IOPB_EVCT               0x000009        /* error completion vector */
                    233: #define        IOPB_LEVEL              0x00000a        /* interrupt level */
                    234: #define        IOPB_ADDR               0x00000e        /* address type and modifier */
                    235: #define        M_ADR_TRANS     0x0c00          /* transfer type */
                    236: #define        M_ADR_MEMT      0x0300          /* memory type */
                    237: #define        M_ADR_MOD       0x00ff          /* VME address modifier */
                    238: #define        M_ADR_SG_LINK   0x8000          /* Scatter/Gather Link bit */
                    239: #define        IOPB_BUFF               0x000010        /* buffer address */
                    240: #define        IOPB_LENGTH             0x000014        /* max transfer length */
                    241: #define        IOPB_SGTTL              0x000018        /* S/G total transfer length */
                    242: #define        IOPB_UNIT               0x00001e        /* unit address on scsi bus */
                    243: #define        M_UNIT_EXT_LUN  0xff00          /* Extended Address */
                    244: #define        M_UNIT_EXT      0x0080          /* Extended Address Enable */
                    245: #define        M_UNIT_BUS      0x0040          /* SCSI Bus Selection */
                    246: #define        M_UNIT_LUN      0x0038          /* Logical Unit Number */
                    247: #define        M_UNIT_ID       0x0007          /* SCSI Device ID */
                    248: #define        IOPB_SCSI_DATA          0x000020        /* SCSI words for passthrough */
                    249: #define        IOPB_SHORT_SIZE         0x000020
                    250: #define        IOPB_LONG_SIZE          0x000040
                    251:
                    252: /*
                    253:  * Initialize Work Queue Command Format (WQCF)
                    254:  * This is a specific case of IOPB.
                    255:  */
                    256:
                    257: #define        WQCF_CMD                0x000000        /* command code */
                    258: #define        M_WOPT_IWQ      0x8000          /* initialize work queue */
                    259: #define        M_WOPT_PE       0x0008          /* parity check enable */
                    260: #define        M_WOPT_FE       0x0004          /* freeze on error enable */
                    261: #define        M_WOPT_TM       0x0002          /* target mode enable */
                    262: #define        M_WOPT_AE       0x0001          /* abort enable */
                    263: #define        WQCF_OPTION             0x000002        /* option word */
                    264: #define        WQCF_STATUS             0x000004        /* return status word */
                    265: #define        WQCF_NVCT               0x000008        /* normal completion vector */
                    266: #define        WQCF_EVCT               0x000009        /* error completion vector */
                    267: #define        WQCF_ILVL               0x00000a        /* interrupt level */
                    268: #define        WQCF_WORKQ              0x00001c        /* work queue number */
                    269: #define        WQCF_WOPT               0x00001e        /* work queue options */
                    270: #define        WQCF_SLOTS              0x000020        /* # of slots in work queues */
                    271: #define        WQCF_CMDTO              0x000024        /* command timeout */
                    272:
                    273: /*
                    274:  * SCSI Reset Command Format (SRCF)
                    275:  * This is a specific case of IOPB.
                    276:  */
                    277:
                    278: #define        SRCF_CMD                0x000000        /* command code */
                    279: #define        SRCF_OPTION             0x000002        /* option word */
                    280: #define        SRCF_STATUS             0x000004        /* return status word */
                    281: #define        SRCF_NVCT               0x000008        /* normal completion vector */
                    282: #define        SRCF_EVCT               0x000009        /* error completion vector */
                    283: #define        SRCF_ILVL               0x00000a        /* interrupt level */
                    284: #define        SRCF_BUSID              0x00001c        /* scsi bus id to reset */
                    285:
                    286: /*
                    287:  * Device Reinitialize Command Format (DRCF)
                    288:  * This is a specific case of IOPB.
                    289:  */
                    290:
                    291: #define        DRCF_CMD                0x000000        /* command code */
                    292: #define        DRCF_OPTION             0x000002        /* option word */
                    293: #define        DRCF_STATUS             0x000004        /* return status word */
                    294: #define        DRCF_NVCT               0x000008        /* normal completion vector */
                    295: #define        DRCF_EVCT               0x000009        /* error completion vector */
                    296: #define        DRCF_ILVL               0x00000a        /* interrupt level */
                    297: #define        DRCF_UNIT               0x00001e        /* unit address */
                    298:
                    299: /*
                    300:  * Short I/O memory layout
                    301:  */
                    302:
                    303: #define        S_SHORTIO               0x000800
                    304:
                    305: #define        sh_MCSB         (0)
                    306: #define        sh_MCE          (sh_MCSB + MCSB_SIZE)
                    307: #define        sh_CQE(x)       (sh_MCE + CQE_SIZE + CQE_SIZE * (x))
                    308: #define        sh_IOPB(x)      (sh_CQE(NUM_CQE) + IOPB_LONG_SIZE * (x))
                    309: #define        sh_MCE_IOPB     (sh_IOPB(NUM_IOPB))
                    310: #define        sh_CIB          (sh_MCE_IOPB + IOPB_LONG_SIZE)
                    311:
                    312: #define        sh_CSS          (S_SHORTIO - CSB_SIZE)
                    313: #define        sh_RET_IOPB     (sh_CSS - IOPB_LONG_SIZE)
                    314: #define        sh_CRB          (sh_RET_IOPB - CRB_SIZE)
                    315: #define        sh_CEVSB        sh_CRB
                    316: #define        sh_HSB          (sh_CRB - HSB_SIZE)
                    317:
                    318: #if (sh_CIB + CIB_SIZE > sh_HSB)
                    319: #error invalid memory layout
                    320: #endif
                    321:
                    322: #define        SELECTION_TIMEOUT               250     /* milliseconds */
                    323: #define        VME_BUS_TIMEOUT                 15      /* units of 30ms */
                    324: #define        M328_INFINITE_TIMEOUT           0       /* wait forever */
                    325:
                    326: /*
                    327:  * IOPB command codes
                    328:  */
                    329:
                    330: #define        IOPB_PASSTHROUGH                0x20 /* SCSI passthrough commands */
                    331: #define        IOPB_PASSTHROUGH_EXT            0x21 /* SCSI passthrough extended */
                    332: #define        IOPB_RESET                      0x22 /* reset bus */
                    333:
                    334: #define        CNTR_DIAG                       0x40 /* perform diagnostics */
                    335: #define        CNTR_INIT                       0x41 /* initialize controller */
                    336: #define        CNTR_INIT_WORKQ                 0x42 /* initialize work queue */
                    337: #define        CNTR_DUMP_INIT                  0x43 /* dump initialization parameters */
                    338: #define        CNTR_DUMP_WORDQ                 0x44 /* dump work queue parameters */
                    339: #define        CNTR_CANCEL_IOPB                0x48 /* cancel command tag */
                    340: #define        CNTR_FLUSH_WORKQ                0x49 /* flush work queue */
                    341: #define        CNTR_DEV_REINIT                 0x4c /* reinitialize device */
                    342: #define        CNTR_ISSUE_ABORT                0x4e /* abort has been issued */
                    343: #define        CNTR_DOWNLOAD_FIRMWARE          0x4f /* download firmware (COUGAR) */
                    344:
                    345: #define        IOPB_UNIT_VALUE(bus, target, lun) \
                    346:        (((bus) << 6) | ((lun) << 3) | (target & 7))
                    347:
                    348: /*
                    349:  * Memory types
                    350:  */
                    351:
                    352: #define        MEMT_16BIT      1       /* 16 bit memory type */
                    353: #define        MEMT_32BIT      2       /* 32 bit memory type */
                    354: #define        MEMT_SHIO       3       /* short I/O memory type */
                    355: #define        MEMTYPE         MEMT_32BIT
                    356:
                    357: /*
                    358:  * Transfer types
                    359:  */
                    360:
                    361: #define        TT_NORMAL               0       /* normal mode transfers */
                    362: #define        TT_BLOCK                1       /* block mode transfers */
                    363: #define        TT_DISABLE_INC_ADDR     2       /* disable incrementing addresses */
                    364: #define        TT_D64                  3       /* D64 mode transfers */
                    365:
                    366: /*
                    367:  * Error codes
                    368:  */
                    369:
                    370: #define        MACSI_GOOD_STATUS       0x00
                    371: #define        MACSI_QUEUE_FULL        0x01
                    372: #define        MACSI_CMD_CODE_ERR      0x04
                    373: #define        MACSI_QUEUE_NUMBER_ERR  0x05
                    374:
                    375: #define        RESET_BUS_STATUS        0x11    /* SCSI bus reset IOPB forced this */
                    376: #define        NO_SECONDARY_PORT       0x12    /* second SCSI bus not available */
                    377: #define        SCSI_DEVICE_IS_RESET    0x14
                    378: #define        CMD_ABORT_BY_RESET      0x15
                    379:
                    380: #define        VME_BUS_ERROR           0x20
                    381: #define        VME_BUS_ACC_TIMEOUT     0x21
                    382: #define        VME_BUS_BAD_ADDR        0x23
                    383: #define        VME_BUS_BAD_MEM_TYPE    0x24
                    384: #define        VME_BUS_BAD_COUNT       0x25
                    385: #define        VME_BUS_FETCH_ERROR     0x26
                    386: #define        VME_BUS_FETCH_TIMEOUT   0x27
                    387: #define        VME_BUS_POST_ERROR      0x28
                    388: #define        VME_BUS_POST_TIMEOUT    0x29
                    389: #define        VME_BUS_BAD_FETCH_ADDR  0x2a
                    390: #define        VME_BUS_BAD_POST_ADDR   0x2b
                    391: #define        VME_BUS_SG_FETCH        0x2c
                    392: #define        VME_BUS_SG_TIMEOUT      0x2d
                    393: #define        VME_BUS_SG_COUNT        0x2e
                    394:
                    395: #define        SCSI_SELECTION_TO       0x30
                    396: #define        SCSI_DISCONNECT_TIMEOUT 0x31
                    397: #define        SCSI_ABNORMAL_SEQ       0x32
                    398: #define        SCSI_DISCONNECT_ERR     0x33
                    399: #define        SCSI_XFER_EXCEPTION     0x34
                    400: #define        SCSI_PARITY_ERROR       0x35
                    401:
                    402: #define        DEVICE_NO_IOPB          0x82
                    403: #define        IOPB_CTLR_EXH           0x83
                    404: #define        IOPB_DIR_ERROR          0x84
                    405: #define        COUGAR_ERROR            0x86
                    406: #define        MACSI_INCORRECT_HW      0x90
                    407: #define        MACSI_ILGL_IOPB_VAL     0x92
                    408: #define        MACSI_ILLEGAL_IMAGE     0x9c
                    409: #define        IOPB_TYPE_ERR           0xc0    /* IOPB type not 0 */
                    410: #define        IOPB_TIMEOUT            0xc1
                    411:
                    412: #define        COUGAR_PANIC            0xff
                    413:
                    414: #define        MACSI_INVALID_TIMEOUT   0x843
                    415:
                    416: /*
                    417:  * VME addressing modes
                    418:  */
                    419:
                    420: #define        ADRM_STD_S_P            0x3e    /* standard supervisory program */
                    421: #define        ADRM_STD_S_D            0x3d    /* standard supervisory data */
                    422: #define        ADRM_STD_N_P            0x3a    /* standard normal program */
                    423: #define        ADRM_STD_N_D            0x39    /* standard normal data */
                    424: #define        ADRM_SHT_S_IO           0x2d    /* short supervisory I/O */
                    425: #define        ADRM_SHT_N_IO           0x29    /* short normal I/O */
                    426: #define        ADRM_EXT_S_P            0x0e    /* extended supervisory program */
                    427: #define        ADRM_EXT_S_D            0x0d    /* extended supervisory data */
                    428: #define        ADRM_EXT_N_P            0x0a    /* extended normal program */
                    429: #define        ADRM_EXT_N_D            0x09    /* extended normal data */
                    430: #define        ADRM_EXT_S_BM           0x0f    /* extended supervisory block mode */
                    431: #define        ADRM_EXT_S_D64          0x0c    /* extended supervisory D64 mode */
                    432:
                    433: #define        ADDR_MOD        ((TT_NORMAL << 10) | (MEMTYPE << 8) | ADRM_EXT_S_D)
                    434: #define        BLOCK_MOD       ((TT_BLOCK << 10) | (MEMTYPE << 8) | ADRM_EXT_S_BM)
                    435: #define        D64_MOD         ((TT_D64 << 10) | (MEMTYPE << 8) | ADRM_EXT_S_D64)
                    436: #define        SHIO_MOD        ((TT_NORMAL << 10) | (MEMT_SHIO << 8) | ADRM_SHT_N_IO)
                    437:
                    438: #endif /* _MVME328_REG_H_ */

CVSweb