Re-enable reselections as the first thing after we see a bus free. We seem
to miss reselections from some devices and since the reselection response timeout is only 200ns, enabling reselections too late may be the cause of our problem.
This commit is contained in:
parent
673f8923d0
commit
3d9ab968cd
@ -39,7 +39,7 @@
|
||||
*
|
||||
*-M************************************************************************/
|
||||
|
||||
VERSION AIC7XXX_SEQ_VER "$Id: aic7xxx.seq,v 1.50 1996/11/21 06:18:33 gibbs Exp $"
|
||||
VERSION AIC7XXX_SEQ_VER "$Id: aic7xxx.seq,v 1.51 1996/11/22 08:25:20 gibbs Exp $"
|
||||
|
||||
#if defined(__NetBSD__)
|
||||
#include "../../../../dev/ic/aic7xxxreg.h"
|
||||
@ -84,16 +84,14 @@ reset:
|
||||
clr SCSISIGO /* De-assert BSY */
|
||||
|
||||
p_busfree:
|
||||
mvi LASTPHASE, P_BUSFREE
|
||||
|
||||
start:
|
||||
and FLAGS,0x07 /* clear target specific flags */
|
||||
mvi SCSISEQ,ENRSELI /* Always allow reselection */
|
||||
clr SCSIRATE /*
|
||||
* We don't know the target we will
|
||||
* connect to, so default to narrow
|
||||
* transfers to avoid parity problems.
|
||||
*/
|
||||
mvi LASTPHASE, P_BUSFREE
|
||||
and FLAGS,0x07 /* clear target specific flags */
|
||||
poll_for_work:
|
||||
/*
|
||||
* Are we a twin channel device?
|
||||
@ -550,13 +548,13 @@ p_mesgout_loop:
|
||||
* If the next bus phase after ATN drops is a message out, it means
|
||||
* that the target is requesting that the last message(s) be resent.
|
||||
*/
|
||||
p_mesgout_dropatn:
|
||||
cmp DINDEX,1 jne p_mesgout_testretry /* last byte? */
|
||||
mvi CLRSINT1,CLRATNO /* drop ATN */
|
||||
p_mesgout_testretry:
|
||||
test DINDEX,0xff jnz p_mesgout_outb
|
||||
test DINDEX,0xff jnz p_mesgout_dropatn
|
||||
or SCSISIGO,ATNO /* turn on ATN for the retry */
|
||||
jmp p_mesgout_start
|
||||
p_mesgout_dropatn:
|
||||
cmp DINDEX,1 jne p_mesgout_outb /* last byte? */
|
||||
mvi CLRSINT1,CLRATNO /* drop ATN */
|
||||
p_mesgout_outb:
|
||||
dec DINDEX
|
||||
mvi CLRSINT0, CLRSPIORDY
|
||||
@ -777,7 +775,7 @@ mesgin_identify:
|
||||
*/
|
||||
mvi ARG_1,SCB_LIST_NULL /* Default to no-tag */
|
||||
snoop_tag_loop:
|
||||
test SSTAT0,SPIORDY jz snoop_tag_loop
|
||||
test SSTAT1,REQINIT jz snoop_tag_loop
|
||||
test SSTAT1,PHASEMIS jnz use_findSCB
|
||||
mvi A call inb_first
|
||||
cmp A,MSG_SIMPLE_Q_TAG jne use_findSCB
|
||||
|
Loading…
x
Reference in New Issue
Block a user