[BACK]Return to scsi_5380.h CVS log [TXT][DIR] Up to [local] / sys / arch / mac68k / include

Annotation of sys/arch/mac68k/include/scsi_5380.h, Revision 1.1.1.1

1.1       nbrk        1: /*     $OpenBSD: scsi_5380.h,v 1.3 1997/11/30 06:10:34 gene Exp $      */
                      2: /*     $NetBSD: scsi_5380.h,v 1.3 1994/10/26 08:46:46 cgd Exp $        */
                      3:
                      4: /*
                      5:  * Mach Operating System
                      6:  * Copyright (c) 1991,1990,1989 Carnegie Mellon University
                      7:  * All Rights Reserved.
                      8:  *
                      9:  * Permission to use, copy, modify and distribute this software and its
                     10:  * documentation is hereby granted, provided that both the copyright
                     11:  * notice and this permission notice appear in all copies of the
                     12:  * software, derivative works or modified versions, and any portions
                     13:  * thereof, and that both notices appear in supporting documentation.
                     14:  *
                     15:  * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS
                     16:  * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
                     17:  * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
                     18:  *
                     19:  * Carnegie Mellon requests users of this software to return to
                     20:  *
                     21:  *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
                     22:  *  School of Computer Science
                     23:  *  Carnegie Mellon University
                     24:  *  Pittsburgh PA 15213-3890
                     25:  *
                     26:  * any improvements or extensions that they make and grant Carnegie the
                     27:  * rights to redistribute these changes.
                     28:  */
                     29: /*
                     30:  *     File: scsi_5380.h
                     31:  *     Author: Alessandro Forin, Carnegie Mellon University
                     32:  *     Date:   5/91
                     33:  *
                     34:  *     Defines for the NCR 5380 (SCSI chip), aka Am5380
                     35:  */
                     36:
                     37: #ifndef _MAC68K_SCSI5380_H_
                     38: #define _MAC68K_SCSI5380_H_
                     39:
                     40: /*
                     41:  * Register map
                     42:  */
                     43:
                     44: typedef struct {
                     45:        volatile unsigned char sci_data;        /* r:  Current data */
                     46: #define        sci_odata sci_data                      /* w:  Out data */
                     47:        PAD(pad0);
                     48:
                     49:        volatile unsigned char sci_icmd;        /* rw: Initiator command */
                     50:        PAD(pad1);
                     51:
                     52:        volatile unsigned char sci_mode;        /* rw: Mode */
                     53:        PAD(pad2);
                     54:
                     55:        volatile unsigned char sci_tcmd;        /* rw: Target command */
                     56:        PAD(pad3);
                     57:
                     58:        volatile unsigned char sci_bus_csr;     /* r:  Bus Status */
                     59: #define        sci_sel_enb sci_bus_csr                 /* w:  Select enable */
                     60:        PAD(pad4);
                     61:
                     62:        volatile unsigned char sci_csr;         /* r:  Status */
                     63: #define        sci_dma_send sci_csr                    /* w:  Start dma send data */
                     64:        PAD(pad5);
                     65:
                     66:        volatile unsigned char sci_idata;       /* r:  Input data */
                     67: #define        sci_trecv sci_idata                     /* w:  Start dma receive, target */
                     68:        PAD(pad6);
                     69:
                     70:        volatile unsigned char sci_iack;        /* r:  Interrupt Acknowledge  */
                     71: #define        sci_irecv sci_iack                      /* w:  Start dma receive, initiator */
                     72: } sci_regmap_t;
                     73:
                     74:
                     75: /*
                     76:  * Initiator command register
                     77:  */
                     78:
                     79: #define SCI_ICMD_DATA          0x01            /* rw: Assert data bus   */
                     80: #define SCI_ICMD_ATN           0x02            /* rw: Assert ATN signal */
                     81: #define SCI_ICMD_SEL           0x04            /* rw: Assert SEL signal */
                     82: #define SCI_ICMD_BSY           0x08            /* rw: Assert BSY signal */
                     83: #define SCI_ICMD_ACK           0x10            /* rw: Assert ACK signal */
                     84: #define SCI_ICMD_LST           0x20            /* r:  Lost arbitration */
                     85: #define SCI_ICMD_DIFF  SCI_ICMD_LST            /* w:  Differential cable */
                     86: #define SCI_ICMD_AIP           0x40            /* r:  Arbitration in progress */
                     87: #define SCI_ICMD_TEST  SCI_ICMD_AIP            /* w:  Test mode */
                     88: #define SCI_ICMD_RST           0x80            /* rw: Assert RST signal */
                     89:
                     90:
                     91: /*
                     92:  * Mode register
                     93:  */
                     94:
                     95: #define SCI_MODE_ARB           0x01            /* rw: Start arbitration */
                     96: #define SCI_MODE_DMA           0x02            /* rw: Enable DMA xfers */
                     97: #define SCI_MODE_MONBSY                0x04            /* rw: Monitor BSY signal */
                     98: #define SCI_MODE_DMA_IE                0x08            /* rw: Enable DMA complete interrupt */
                     99: #define SCI_MODE_PERR_IE       0x10            /* rw: Interrupt on parity errors */
                    100: #define SCI_MODE_PAR_CHK       0x20            /* rw: Check parity */
                    101: #define SCI_MODE_TARGET                0x40            /* rw: Target mode (Initiator if 0) */
                    102: #define SCI_MODE_BLOCKDMA      0x80            /* rw: Block-mode DMA handshake (MBZ) */
                    103:
                    104:
                    105: /*
                    106:  * Target command register
                    107:  */
                    108:
                    109: #define SCI_TCMD_IO            0x01            /* rw: Assert I/O signal */
                    110: #define SCI_TCMD_CD            0x02            /* rw: Assert C/D signal */
                    111: #define SCI_TCMD_MSG           0x04            /* rw: Assert MSG signal */
                    112: #define SCI_TCMD_PHASE_MASK    0x07            /* r:  Mask for current bus phase */
                    113: #define SCI_TCMD_REQ           0x08            /* rw: Assert REQ signal */
                    114: #define        SCI_TCMD_LAST_SENT      0x80            /* ro: Last byte was xferred
                    115:                                                 *     (not on 5380/1) */
                    116:
                    117: #define        SCI_PHASE(x)            SCSI_PHASE(x)
                    118:
                    119: /*
                    120:  * Current (SCSI) Bus status
                    121:  */
                    122:
                    123: #define SCI_BUS_DBP            0x01            /* r:  Data Bus parity */
                    124: #define SCI_BUS_SEL            0x02            /* r:  SEL signal */
                    125: #define SCI_BUS_IO             0x04            /* r:  I/O signal */
                    126: #define SCI_BUS_CD             0x08            /* r:  C/D signal */
                    127: #define SCI_BUS_MSG            0x10            /* r:  MSG signal */
                    128: #define SCI_BUS_REQ            0x20            /* r:  REQ signal */
                    129: #define SCI_BUS_BSY            0x40            /* r:  BSY signal */
                    130: #define SCI_BUS_RST            0x80            /* r:  RST signal */
                    131:
                    132: #define        SCI_CUR_PHASE(x)        SCSI_PHASE((x)>>2)
                    133:
                    134: /*
                    135:  * Bus and Status register
                    136:  */
                    137:
                    138: #define SCI_CSR_ACK            0x01            /* r:  ACK signal */
                    139: #define SCI_CSR_ATN            0x02            /* r:  ATN signal */
                    140: #define SCI_CSR_DISC           0x04            /* r:  Disconnected (BSY==0) */
                    141: #define SCI_CSR_PHASE_MATCH    0x08            /* r:  Bus and SCI_TCMD match */
                    142: #define SCI_CSR_INT            0x10            /* r:  Interrupt request */
                    143: #define SCI_CSR_PERR           0x20            /* r:  Parity error */
                    144: #define SCI_CSR_DREQ           0x40            /* r:  DMA request */
                    145: #define SCI_CSR_DONE           0x80            /* r:  DMA count is zero */
                    146:
                    147: #endif /* _MAC68K_SCSI5380_H_ */

CVSweb