From be407614c4ab21df5c8409b65edf262bf1dc662c Mon Sep 17 00:00:00 2001 From: gibbs Date: Fri, 14 May 1999 05:07:25 +0000 Subject: Better workaround for aic7890 chip bug. Use the HS_MAILBOX register to tell the sequencer to pause itself for a target msg variable update. This avoids the pause race entirely as HS_MAILBOX can be accessed without pausing the chip. 3.2 Merge candidate. --- sys/dev/aic7xxx/aic7xxx.reg | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) (limited to 'sys/dev/aic7xxx/aic7xxx.reg') diff --git a/sys/dev/aic7xxx/aic7xxx.reg b/sys/dev/aic7xxx/aic7xxx.reg index 885d3d1..4fbff1a 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.12 1999/01/14 06:14:15 gibbs Exp $ + * $Id: aic7xxx.reg,v 1.14 1999/03/08 22:43:23 gibbs Exp $ */ /* @@ -669,6 +669,16 @@ register DSPCISTATUS { mask DFTHRSH_100 0xc0 } +/* aic7890/91/96/97 only */ +register HS_MAILBOX { + address 0x086 + mask HOST_MAILBOX 0xF0 + mask SEQ_MAILBOX 0x0F +} + +const HOST_MAILBOX_SHIFT 4 +const SEQ_MAILBOX_SHIFT 0 + /* * Host Control (p. 3-47) R/W * Overall host control of the device. @@ -727,6 +737,7 @@ register INTSTAT { mask NO_IDENT 0x20|SEQINT /* no IDENTIFY after reconnect*/ mask NO_MATCH 0x30|SEQINT /* no cmd match for reconnect */ mask ABORT_REQUESTED 0x50|SEQINT /* Reconect of aborted SCB */ + mask UPDATE_TMSG_REQ 0x60|SEQINT /* Update TMSG_REQ values */ mask BAD_STATUS 0x70|SEQINT /* Bad status from target */ mask RESIDUAL 0x80|SEQINT /* Residual byte count != 0 */ mask TRACE_POINT 0x90|SEQINT -- cgit v1.1