Date: Wed, 22 Jan 1997 10:07:17 -0800 (PST) From: "Justin T. Gibbs" <gibbs> To: CVS-committers, cvs-all, cvs-sys Subject: cvs commit: src/sys/dev/aic7xxx aic7xxx.seq aic7xxx_reg.h src/sys/i386/scsi aic7xxx.c src/sys/pci aic7870.c Message-ID: <199701221807.KAA17373@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
gibbs 97/01/22 10:07:17 Modified: sys/dev/aic7xxx aic7xxx.seq aic7xxx_reg.h Log: Clear the SCSI channel after we go to busfree instead of after re/selection. Only enable reselections once the channel and SCSIRATE have been cleared. Add a pause block around the test busy code in the non-tagged case to simplify error recovery in the corner case of aborting an SCB that just got started. Simplify reselection processing by removing the call to initialize_scsiid. Clear the scsiseq re/select control bits and setup for catching bogus busfrees earlier in the re/select process. Improve the automatic PIO code. It turns out that SPIORDY is not a reliable hardware condition bit, so use REQINIT intstead. Don't rely on PHASEMIS either since it can take too long to come true. Use a brute force comparison instead. Remove some unnecessary overhead in the command complete processing. It should be nearly impossible to overflow the QOUTFIFO (worst case 9 command have to complete with at least 6 of them requiring paging on an aic7850), so don't take the additional PIO hit to guard against this condition. If we don't see our interrupt in time, the system has bigger problems elsewhere. If this ever does happen, the timeout handler will notice and retry the command. Revision Changes Path 1.54 +51 -45 src/sys/dev/aic7xxx/aic7xxx.seq 1.20 +2 -1 src/sys/dev/aic7xxx/aic7xxx_reg.h Modified: sys/i386/scsi aic7xxx.c Log: Remove some unnecessary overhead in the command complete processing. It should be nearly impossible to overflow the QOUTFIFO (worst case 9 command have to complete with at least 6 of them requiring paging on an aic7850), so don't take the additional PIO hit to guard against this condition. If we don't see our interrupt in time, the system has bigger problems elsewhere. If this ever does happen, the timeout handler will notice and retry the command. Remove the ABORT_TAG sequencer interrupt handler. This condition can't happen with the new SCB paging scheme. Fix a few bugs noticed by Dan Eischen <deischen@iworks.InterWorks.org> that could prevent ULTRA from being negotiated to drives above ID 7 and also could allow an SCB to be passed to ahc_done twice during error recovery. Fix a bug notice by Rory Bolt <rory@atBackup.com>. It turns out that a sequencer reset will actually start the sequencer running regardless of the state of the pause bit. This could lead to strange problems with loading the sequencer. Revision Changes Path 1.90 +29 -48 src/sys/i386/scsi/aic7xxx.c Modified: sys/pci aic7870.c Log: Be smarter about enabling memory mapped I/O. The AHC_ALLOW_MEMIO option should not be required anymore. Turn on ULTRA for cards that don't have a BIOS or SEEPROM. Revision Changes Path 1.46 +8 -6 src/sys/pci/aic7870.c
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199701221807.KAA17373>