Subject: CVS commit: syssrc/sys/dev
To: None <source-changes@netbsd.org>
From: Matthew Jacob <mjacob@netbsd.org>
List: source-changes
Date: 02/22/2002 00:32:44
Module Name:	syssrc
Committed By:	mjacob
Date:		Thu Feb 21 22:32:44 UTC 2002

Modified Files:
	syssrc/sys/dev/ic: isp.c isp_inline.h isp_ioctl.h isp_netbsd.c
	    isp_netbsd.h isp_target.c isp_target.h ispmbox.h ispreg.h ispvar.h
	syssrc/sys/dev/pci: isp_pci.c
	syssrc/sys/dev/sbus: isp_sbus.c

Log Message:
Implement F/W crashdumps for 2200 && 2300 cards (kernel compile option).

Distinguish between 2312 and 2300 cards (they *are* different). Enable
RIO (Reduced Interrupt Operation) for the LVD cards (hey- I've seen
batched completions of the 30 commands at a time with this,....)...

If we get a Port Logout on local loop topologies, we have to force the
f/w to log back in. The easiest way (for us) to do this is to force
a LIP. This also will wake up the disk that probably just had a f/w crash.

Implement mailbox 'continuations'- this allows interrupts to re-drive
a mailbox command if it's one that just essentially repeats the previous
mailbox command (e.g., f/w download). This saves a boatload of sleep/wakeup
twitches.

If we're not a 2300 and we're about to return with a 'bogus interrupt'- check
the semaphore register to be non-zero at all and outgoing mailbox 0- this
seems to be where some of the lost ISP1080 commands came from.


To generate a diff of this commit:
cvs rdiff -r1.87 -r1.88 syssrc/sys/dev/ic/isp.c
cvs rdiff -r1.16 -r1.17 syssrc/sys/dev/ic/isp_inline.h \
    syssrc/sys/dev/ic/isp_target.h
cvs rdiff -r1.2 -r1.3 syssrc/sys/dev/ic/isp_ioctl.h
cvs rdiff -r1.51 -r1.52 syssrc/sys/dev/ic/isp_netbsd.c
cvs rdiff -r1.47 -r1.48 syssrc/sys/dev/ic/isp_netbsd.h
cvs rdiff -r1.17 -r1.18 syssrc/sys/dev/ic/isp_target.c
cvs rdiff -r1.37 -r1.38 syssrc/sys/dev/ic/ispmbox.h
cvs rdiff -r1.26 -r1.27 syssrc/sys/dev/ic/ispreg.h
cvs rdiff -r1.52 -r1.53 syssrc/sys/dev/ic/ispvar.h
cvs rdiff -r1.75 -r1.76 syssrc/sys/dev/pci/isp_pci.c
cvs rdiff -r1.48 -r1.49 syssrc/sys/dev/sbus/isp_sbus.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.