diff options
author | Kenneth R Westerback <krw@cvs.openbsd.org> | 2004-12-27 21:34:43 +0000 |
---|---|---|
committer | Kenneth R Westerback <krw@cvs.openbsd.org> | 2004-12-27 21:34:43 +0000 |
commit | c11e624119eaf661c820ea19b69a437e8ec0b83f (patch) | |
tree | 8005ba6f0b509278ad136c8f7d2cd916f9a644f7 | |
parent | 46c30d4a399f499a342a15f45269d8fe17496f2a (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.4 | 43 | ||||
-rw-r--r-- | sys/dev/ic/aic79xx_openbsd.c | 12 |
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) |