Skip site navigation (1)Skip section navigation (2)
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>