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