Annotation of src/sys/arch/amiga/dev/scivar.h, Revision 1.12.10.2
1.12.10.2! bouyer 1: /* $NetBSD$ */
1.4 cgd 2:
1.1 chopps 3: /*
4: * Copyright (c) 1990 The Regents of the University of California.
5: * All rights reserved.
6: *
7: * This code is derived from software contributed to Berkeley by
8: * Van Jacobson of Lawrence Berkeley Laboratory.
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. All advertising materials mentioning features or use of this software
19: * must display the following acknowledgement:
20: * This product includes software developed by the University of
21: * California, Berkeley and its contributors.
22: * 4. Neither the name of the University nor the names of its contributors
23: * may be used to endorse or promote products derived from this software
24: * without specific prior written permission.
25: *
26: * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
27: * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
28: * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
29: * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
30: * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
31: * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
32: * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
33: * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
34: * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
35: * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
36: * SUCH DAMAGE.
37: *
38: * @(#)scivar.h 7.1 (Berkeley) 5/8/90
39: */
1.3 chopps 40: #ifndef _SCIVAR_H_
41: #define _SCIVAR_H_
42:
1.9 veego 43: struct sci_softc;
1.1 chopps 44:
45: struct sci_softc {
1.3 chopps 46: struct device sc_dev;
1.6 chopps 47: struct isr sc_isr;
1.12 thorpej 48: struct scsipi_adapter sc_adapter;
1.12.10.1 bouyer 49: struct scsipi_channel sc_channel;
1.11 bouyer 50: struct scsipi_xfer *sc_xs; /* transfer from high level code */
1.1 chopps 51:
1.2 chopps 52: volatile u_char *sci_data; /* r: Current data */
53: volatile u_char *sci_odata; /* w: Out data */
54: volatile u_char *sci_icmd; /* rw: Initiator command */
55: volatile u_char *sci_mode; /* rw: Mode */
56: volatile u_char *sci_tcmd; /* rw: Target command */
57: volatile u_char *sci_bus_csr; /* r: Bus Status */
58: volatile u_char *sci_sel_enb; /* w: Select enable */
59: volatile u_char *sci_csr; /* r: Status */
60: volatile u_char *sci_dma_send; /* w: Start dma send data */
61: volatile u_char *sci_idata; /* r: Input data */
62: volatile u_char *sci_trecv; /* w: Start dma receive, target */
63: volatile u_char *sci_iack; /* r: Interrupt Acknowledge */
64: volatile u_char *sci_irecv; /* w: Start dma receive, initiator */
1.1 chopps 65:
1.9 veego 66: /* psuedo DMA transfer */
1.10 mhitch 67: int (*dma_xfer_in) __P((struct sci_softc *, int, u_char *, int));
1.9 veego 68: /* psuedo DMA transfer */
1.10 mhitch 69: int (*dma_xfer_out) __P((struct sci_softc *, int, u_char *, int));
1.1 chopps 70: u_char sc_flags;
71: u_char sc_lun;
72: /* one for each target */
73: struct syncpar {
74: u_char state;
75: u_char period, offset;
76: } sc_sync[8];
77: u_char sc_slave;
78: u_char sc_scsi_addr;
79: u_char sc_stat[2];
80: u_char sc_msg[8];
81: };
82:
83: /* sc_flags */
84: #define SCI_IO 0x80 /* DMA I/O in progress */
85: #define SCI_ALIVE 0x01 /* controller initialized */
86: #define SCI_SELECTED 0x04 /* bus is in selected state. Needed for
87: correct abort procedure. */
88:
89: /* sync states */
90: #define SYNC_START 0 /* no sync handshake started */
91: #define SYNC_SENT 1 /* we sent sync request, no answer yet */
92: #define SYNC_DONE 2 /* target accepted our (or inferior) settings,
1.9 veego 93: or it rejected the request and we stay async */
1.3 chopps 94:
95: #define PHASE 0x07 /* mask for psns/pctl phase */
96: #define DATA_OUT_PHASE 0x00
97: #define DATA_IN_PHASE 0x01
98: #define CMD_PHASE 0x02
99: #define STATUS_PHASE 0x03
100: #define BUS_FREE_PHASE 0x04
101: #define ARB_SEL_PHASE 0x05 /* Fuji chip combines arbitration with sel. */
102: #define MESG_OUT_PHASE 0x06
103: #define MESG_IN_PHASE 0x07
104:
105: #define MSG_CMD_COMPLETE 0x00
106: #define MSG_EXT_MESSAGE 0x01
107: #define MSG_SAVE_DATA_PTR 0x02
108: #define MSG_RESTORE_PTR 0x03
109: #define MSG_DISCONNECT 0x04
110: #define MSG_INIT_DETECT_ERROR 0x05
111: #define MSG_ABORT 0x06
112: #define MSG_REJECT 0x07
113: #define MSG_NOOP 0x08
114: #define MSG_PARITY_ERROR 0x09
115: #define MSG_BUS_DEVICE_RESET 0x0C
116: #define MSG_IDENTIFY 0x80
117: #define MSG_IDENTIFY_DR 0xc0 /* (disconnect/reconnect allowed) */
118: #define MSG_SYNC_REQ 0x01
119:
120:
121: #define STS_CHECKCOND 0x02 /* Check Condition (ie., read sense) */
122: #define STS_CONDMET 0x04 /* Condition Met (ie., search worked) */
123: #define STS_BUSY 0x08
124: #define STS_INTERMED 0x10 /* Intermediate status sent */
125: #define STS_EXT 0x80 /* Extended status valid */
126:
127: /*
1.8 mycroft 128: * XXXX
1.3 chopps 129: */
130: struct scsi_fmt_cdb {
131: int len; /* cdb length (in bytes) */
132: u_char cdb[28]; /* cdb to use on next read/write */
133: };
134:
135: struct buf;
1.11 bouyer 136: struct scsipi_xfer;
1.3 chopps 137:
1.9 veego 138: void sci_minphys __P((struct buf *));
1.12.10.1 bouyer 139: void sci_scsipi_request __P((struct scsipi_channel *, scsipi_adapter_req_t, void *));
1.9 veego 140: void scireset __P((struct sci_softc *));
1.3 chopps 141:
142: #endif /* _SCIVAR_H_ */
CVSweb <webmaster@jp.NetBSD.org>