Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 6 Nov 2000 12:05:38 -0800 (PST)
From:      "Justin T. Gibbs" <gibbs@FreeBSD.org>
To:        cvs-committers@FreeBSD.org, cvs-all@FreeBSD.org
Subject:   cvs commit: src/sys/dev/aic7xxx aic7xxx.c aic7xxx.reg aic7xxx.seq aic7xxx_freebsd.c aic7xxx_inline.h
Message-ID:  <200011062005.MAA51667@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help
gibbs       2000/11/06 12:05:38 PST

  Modified files:
    sys/dev/aic7xxx      aic7xxx.c aic7xxx.reg aic7xxx.seq 
                         aic7xxx_freebsd.c aic7xxx_inline.h 
  Log:
  aic7xxx.c:
  	When restarting the sequencer, ensure that the SCBCNT register
  	is 0.  A non-zero count will prevent the setting of the CCSCBDIR
  	bit in any future dma operations.  The only time CCSCBCNT would
  	be non-zero is if we happened to halt the dma during a reset,
  	but even that should never happen.  Better safe than sorry.
  
  	When a command completes before the target responds to an
  	ATN for a recovery command, we now notify the kernel so that
  	any recovery operation requeued in the qinfifo can be removed
  	safely.  In the past, we did this in ahc_done(), but ahc_done()
  	may be called without the card paused.  This also avoids a
  	recursive call to ahc_search_qinifo() which could have occurred if
  	ahc_search_qinififo() happened to be the routine to complete
  	a recovery action.
  
  	Fix 8bit math used for adjusting the qinfifo.  The index must
  	be wrapped properly within the 256 entry array.  We rely on the
  	fact that qinfifonext is a uint8_t in most cases to handle
  	this wrap, but we missed a few spots where the resultant
  	calculation was promoted to an int.
  
  	Change the way that we deal with aborting the first or second
  	entry from the qinfifo.  We now swap the first entry in the
  	qinfifo with the "next queued scb" to force the sequencer
  	to see an abort collision if we ever touch the qinififo while
  	the sequencer is mid SCB dma.
  
  aic7xxx.reg:
  	Add new MKMSG_FAILED sequencer interrupt.  This displaced
  	the BOGUS_TAG interrupt used in some previous sequencer code
  	debugging.
  
  aic7xxx.seq:
  	Increment our position in the qinfifo only once the dma
  	is complete and we have verified that the queue has not
  	been changed during our DMA.  This simplifies code in the
  	kernel.
  
  	Protect against "instruction creep" when issuing a pausing
  	sequencer interrupt.  On at least the 7890/91/96/97, the
  	sequencer will coast after issuing the interrupt for up
  	to two instructions.  In the past we delt with this by
  	using carefully placed nops.  Now we call a routine to
  	issue the interrupt followed by a nop and a ret.
  
  	Tell the kernel should an SCB complete with the MK_MESSAGE
  	flag still set.  This means the target ignored our ATN request.
  
  	Clear the channel twice as we exit the data phase.  On the
  	aic7890/91, the S/G preload logic may require the second
  	clearing to get the last S/G out of the FIFO.
  
  aic7xxx_freebsd.c:
  	Don't bother searching the qinfifo for a doubly queued
  	recovery scb in ahc_done.  This case is handled by the
  	core driver now.
  
  	Free the path used to issue async callbacks after the callback
  	is complete.
  
  aic7xxx_inline.h:
  	Split the SCB queue routine into a routine that swaps
  	the SCB with the "next queued SCB" and a routine that
  	calls the swapping routine and notifies the card of
  	the new SCB.  The swapping routine is now also used by
  	ahc_search_qinfifo.
  
  Revision  Changes    Path
  1.58      +46 -35    src/sys/dev/aic7xxx/aic7xxx.c
  1.30      +5 -4      src/sys/dev/aic7xxx/aic7xxx.reg
  1.104     +35 -26    src/sys/dev/aic7xxx/aic7xxx.seq
  1.14      +2 -10     src/sys/dev/aic7xxx/aic7xxx_freebsd.c
  1.6       +14 -10    src/sys/dev/aic7xxx/aic7xxx_inline.h



To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe cvs-all" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200011062005.MAA51667>