diff options
author | gibbs <gibbs@FreeBSD.org> | 1999-03-05 23:35:48 +0000 |
---|---|---|
committer | gibbs <gibbs@FreeBSD.org> | 1999-03-05 23:35:48 +0000 |
commit | 399fca227c07db6ebbd4f852a6c928eb69d23ad1 (patch) | |
tree | 1a3a4e94551a7f6422c127d2ea97bed2b7ad4ba6 /sys/dev/aic7xxx/aic7xxx.reg | |
parent | 090e44812f2681bb34bd1ee498e9e05f8ee7610c (diff) | |
download | FreeBSD-src-399fca227c07db6ebbd4f852a6c928eb69d23ad1.zip FreeBSD-src-399fca227c07db6ebbd4f852a6c928eb69d23ad1.tar.gz |
Keep track of negotiated transfer parameters for each initiator<->target
connection.
Clean up support for devices featuring the multiple target SCSI ID feature.
On aic7890/91/96/97 chips, we can now assume the target role on multiple
target ids simultaneously. Although these chips also have sufficient
instruction space to hold to support the initiator and target role at the
same time, the initiator role is currently disabled as it will conflict
(chip design restriction) with the multi-tid feature. I'll probably add
a nob to enable the initiator (there-by disabling multi-tid) some time
in the future.
Return queue full or busy, depending on the tagged nature of the incoming
request, if our command input queue fills up in host memeory.
Deal with accept target I/O resource shortages.
If we get an underrun on a transaction that wasn't supposed to transmit
any data, don't attempt to print out the S/G list. The code would
run until hitting a non-present page. (oops)
Diffstat (limited to 'sys/dev/aic7xxx/aic7xxx.reg')
-rw-r--r-- | sys/dev/aic7xxx/aic7xxx.reg | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/sys/dev/aic7xxx/aic7xxx.reg b/sys/dev/aic7xxx/aic7xxx.reg index 775c0e3..8a9c656 100644 --- a/sys/dev/aic7xxx/aic7xxx.reg +++ b/sys/dev/aic7xxx/aic7xxx.reg @@ -32,7 +32,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $Id: aic7xxx.reg,v 1.11 1998/12/17 00:06:52 gibbs Exp $ + * $Id: aic7xxx.reg,v 1.12 1999/01/14 06:14:15 gibbs Exp $ */ /* @@ -882,7 +882,6 @@ scb { } SCB_CMDPTR { alias SCB_TARGET_PHASES - alias SCB_TARGET_ID /* Byte 2 */ bit TARGET_DATA_IN 0x1 /* In the second byte */ size 4 } @@ -1267,7 +1266,7 @@ scratch_ram { /* * Kernel and sequencer offsets into the queue of * incoming target mode command descriptors. The - * queue is full when the ((KERNEL_TQINPOS - TQINPOS) == 1) + * queue is full when the KERNEL_TQINPOS == TQINPOS. */ KERNEL_TQINPOS { size 1 @@ -1408,6 +1407,12 @@ const CMD_GROUP3_BYTE_DELTA -15 const CMD_GROUP4_BYTE_DELTA 4 const CMD_GROUP5_BYTE_DELTA 11 +const TCL_TARGET_SHIFT 4 +/* The update interval must be a power of 2 */ +const TQINFIFO_UPDATE_CNT 32 + +const STATUS_BUSY 0x08 +const STATUS_QUEUE_FULL 0x28 /* * Downloaded (kernel inserted) constants |