Date: Mon, 26 Feb 2001 21:12:49 -0800 (PST) From: <gibbs@FreeBSD.org> To: nickc@CORP.FirstIndustrial.com, gibbs@FreeBSD.org, freebsd-bugs@FreeBSD.org, gibbs@FreeBSD.org Subject: Re: kern/25261: ahc0 no active SCB errors when booting off of IFT-3102 Message-ID: <200102270512.f1R5Cnq11659@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
Synopsis: ahc0 no active SCB errors when booting off of IFT-3102 State-Changed-From-To: open->feedback State-Changed-By: gibbs State-Changed-When: Mon Feb 26 21:09:51 PST 2001 State-Changed-Why: There was a sequencer bug, introduced not so long ago, that triggered during the small window where one lun was using tagged commands and the other was not. This would happen once after each bus reset in your configuration. Please try the following patch which should correct the problem. Index: aic7xxx.seq =================================================================== RCS file: /usr/cvs/src/sys/dev/aic7xxx/aic7xxx.seq,v retrieving revision 1.94.2.10 diff -c -r1.94.2.10 aic7xxx.seq *** aic7xxx.seq 2001/02/21 20:51:25 1.94.2.10 --- aic7xxx.seq 2001/02/27 05:01:54 *************** *** 1653,1659 **** if ((ahc->flags & AHC_SCB_BTT) != 0) { jmp setup_SCB_id_lun_okay; } else { ! jmp setup_SCB_id_okay; } /* --- 1653,1665 ---- if ((ahc->flags & AHC_SCB_BTT) != 0) { jmp setup_SCB_id_lun_okay; } else { ! /* ! * We only allow one untagged command per-target ! * at a time. So, if the lun doesn't match, look ! * for a tag message. ! */ ! mov A, SCB_LUN; ! cmp SAVED_LUN, A je setup_SCB_id_lun_okay; } /* *************** *** 1710,1719 **** test SCB_CONTROL,DISCONNECTED jz not_found_cleanup_scb; and SCB_CONTROL,~DISCONNECTED; test SCB_CONTROL, TAG_ENB jnz setup_SCB_tagged; ! mov A, SCBPTR; mvi ARG_1, SCB_LIST_NULL; mov SAVED_SCSIID call set_busy_target; ! mov SCBPTR, A; setup_SCB_tagged: mvi SEQ_FLAGS,IDENTIFY_SEEN; /* make note of IDENTIFY */ call set_transfer_settings; --- 1716,1729 ---- test SCB_CONTROL,DISCONNECTED jz not_found_cleanup_scb; and SCB_CONTROL,~DISCONNECTED; test SCB_CONTROL, TAG_ENB jnz setup_SCB_tagged; ! if ((ahc->flags & AHC_SCB_BTT) != 0) { ! mov A, SCBPTR; ! } mvi ARG_1, SCB_LIST_NULL; mov SAVED_SCSIID call set_busy_target; ! if ((ahc->flags & AHC_SCB_BTT) != 0) { ! mov SCBPTR, A; ! } setup_SCB_tagged: mvi SEQ_FLAGS,IDENTIFY_SEEN; /* make note of IDENTIFY */ call set_transfer_settings; Responsible-Changed-From-To: freebsd-bugs->gibbs Responsible-Changed-By: gibbs Responsible-Changed-When: Mon Feb 26 21:09:51 PST 2001 Responsible-Changed-Why: my driver. http://www.freebsd.org/cgi/query-pr.cgi?pr=25261 To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-bugs" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200102270512.f1R5Cnq11659>