summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKenneth R Westerback <krw@cvs.openbsd.org>2004-12-27 21:34:43 +0000
committerKenneth R Westerback <krw@cvs.openbsd.org>2004-12-27 21:34:43 +0000
commitc11e624119eaf661c820ea19b69a437e8ec0b83f (patch)
tree8005ba6f0b509278ad136c8f7d2cd916f9a644f7
parent46c30d4a399f499a342a15f45269d8fe17496f2a (diff)
Fix tag handling for non-U320/packetized devices. Allow tags for these
devices. Tidy up man page, remove lies and cruft. ok marco@.
-rw-r--r--share/man/man4/ahd.443
-rw-r--r--sys/dev/ic/aic79xx_openbsd.c12
2 files changed, 12 insertions, 43 deletions
diff --git a/share/man/man4/ahd.4 b/share/man/man4/ahd.4
index 3a6d3919987..32776cbd192 100644
--- a/share/man/man4/ahd.4
+++ b/share/man/man4/ahd.4
@@ -1,4 +1,4 @@
-.\" $OpenBSD: ahd.4,v 1.9 2004/10/15 13:51:51 robert Exp $
+.\" $OpenBSD: ahd.4,v 1.10 2004/12/27 21:34:41 krw Exp $
.\"
.\" Copyright (c) 1995, 1996, 1997, 1998, 2000
.\" Justin T. Gibbs. All rights reserved.
@@ -39,15 +39,20 @@
.Cd "ahd* at pci?"
.Cd "scsibus* at ahd?"
.Sh DESCRIPTION
-This driver provides access to the
+.Nm
+provides access to the
.Tn SCSI
bus(es) connected to Adaptec
.Tn AIC79xx
host adapter chips.
.Pp
-Driver features include support for narrow and wide buses,
-fast, ultra, ultra2, ultra160, and ultra320 synchronous transfers,
-packetized transfers, tagged queuing, 512 SCBs, and target mode.
+.Nm
+supports narrow and wide buses; synchronous and
+asynchronous operation; fast, ultra, ultra2, ultra160, and ultra320
+(packetized) transfers; tagged queuing and 512 SCBs.
+.Pp
+.Nm
+does not support target mode operation.
.Pp
The
.Nm
@@ -84,12 +89,6 @@ To compile in debugging code:
.Bd -ragged -offset indent
.Cd option AHD_DEBUG
.Cd option AHD_DEBUG_OPTS=<bitmask of options>
-.Cd option AHD_REG_PRETTY_PRINT
-.Ed
-.Pp
-To configure one or more controllers to assume the target role:
-.Bd -ragged -offset indent
-.Cd option AHD_TMODE_ENABLE=<bitmask of units>
.Ed
.Pp
The
@@ -117,22 +116,6 @@ Logically OR the following bits together:
0x2000 Enable extra diagnostic code in the firmware
.El
.Pp
-The
-.Dv AHD_REG_PRETTY_PRINT
-option compiles in support for human-readable bit definitions for each register
-that is printed by the debugging code.
-However, it also bloats the compiled
-size of the driver by approximately 215KB.
-.Pp
-Individual controllers may be configured to operate in the target role
-through the
-.Dv AHD_TMODE_ENABLE
-configuration option.
-The value assigned to this option should be a bitmap
-of all units where target mode is desired.
-For example, a value of 0x25 would enable target mode on units 0, 2, and 5.
-Note that target mode is only supported for ultra160 speeds and below.
-.Pp
Per target configuration performed in the
.Tn SCSI-Select
menu, accessible at boot,
@@ -171,9 +154,3 @@ and the firmware running on the aic79xx chips was written by
.An Justin T. Gibbs .
.Pp
OpenBSD port by Milos Urbanek, Kenneth R. Westerback & Marco Peereboom.
-.Sh BUGS
-The current generation of 79xx chips do not support target mode in Ultra320
-mode.
-In this driver all target mode code has been commented out.
-.Pp
-Currently there are issues with drives that run slower than U320 speeds.
diff --git a/sys/dev/ic/aic79xx_openbsd.c b/sys/dev/ic/aic79xx_openbsd.c
index b011aa0dd16..2f969240b5a 100644
--- a/sys/dev/ic/aic79xx_openbsd.c
+++ b/sys/dev/ic/aic79xx_openbsd.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: aic79xx_openbsd.c,v 1.17 2004/12/24 22:17:56 krw Exp $ */
+/* $OpenBSD: aic79xx_openbsd.c,v 1.18 2004/12/27 21:34:42 krw Exp $ */
/*
* Copyright (c) 2004 Milos Urbanek, Kenneth R. Westerback & Marco Peereboom
@@ -361,7 +361,7 @@ ahd_action(struct scsi_xfer *xs)
quirks = xs->sc_link->quirks;
- if ((quirks & SDEV_NOTAGS) == 0 ||
+ if ((quirks & SDEV_NOTAGS) != 0 ||
(tinfo->curr.ppr_options & MSG_EXT_PPR_PROT_IUS) != 0)
col_idx = AHD_NEVER_COL_IDX;
else
@@ -471,14 +471,6 @@ ahd_execute_scb(void *arg, bus_dma_segment_t *dm_segs, int nsegments)
if ((tstate->tagenable & mask) != 0)
scb->hscb->control |= TAG_ENB;
- /* disable tags and disconection to work around overlapped commands
- * for non U320 devices
- */
- if ((tinfo->curr.ppr_options & MSG_EXT_PPR_PROT_IUS) == 0) {
- scb->hscb->control &= ~TAG_ENB;
- scb->hscb->control &= ~DISCENB;
- }
-
if ((tinfo->curr.ppr_options & MSG_EXT_PPR_PROT_IUS) != 0) {
scb->flags |= SCB_PACKETIZED;
if (scb->hscb->task_management != 0)