1
0
mirror of https://git.FreeBSD.org/src.git synced 2024-12-19 10:53:58 +00:00
freebsd/sys
Justin T. Gibbs 957790c3e6 ahc_pci.c:
Disable "cache line streaming" for aic7890/91 Rev A chips.  I
	have never seen these chips fail using this feature, but
	some of Adaptec's regression tests have.

	Explicitly set "cache line streaming" to on for aic7896/97
	chips.  This was happening before, but this documents the
	fact that these chips will not function correctly without
	CACHETHEEN set.

aic7xxx.h:
	Add new bug types.

	Fix a typo in a comment.

aic7xxx.reg:
	Add a definition for the SHVALID bit in SSTAT3 for Ultra2/3
	chips.  This bit inicates whether the bottom most (current)
	element in the S/G fifo has exhausted its data count.

aic7xxx.seq:
	Be more careful in how we turn off the secondary DMA channel.
	Being less careful may hang the PCI bus arbitor that negotiates
	between the two DMA engines.

	Remove an unecessary and incorrect flag set operation in
	the overrun case.

	On Ultra2/3 controllers, clear the dma FIFO before starting
	to handle an overrun.  We don't want any residual bytes from
	the beginning of the overrun to cause the code that shuts
	down the DMA engine from hanging because the FIFO is not
	(and never will be) empty.

	If the data fifo is empty by the time we notice that a
	read transaction has completed, there is no need to
	hit the flush bit on aic7890/91 hardware that will not
	perform an auto-flush.  Skip some cycles by short circuiting
	the manual flush code in this case.

	When transitioning out of data phase, make sure that we
	have the next S/G element loaded for the following
	reconnect if there is more work to do.  The code
	would do this in most cases before, but there was
	a small window where the current S/G element could
	be exhausted before our fetch of the next S/G element
	completed.  Since the S/G fetch is already initiated
	at this point, it makes sense to just wait for the
	segment to arrive instead of incuring even more latency
	by canceling the fetch and initiating it later.

	Fast path the end of data phase handling for the last
	S/G segment.   In the general case, we might have
	worked ahead a bit by stuffing the S/G FIFO with
	additional segments.  If we stop before using them
	all, we need to fixup our location in the S/G stream.
	Since we can't work past the last S/G segment, no
	fixups are ever required if we stop somewhere in
	that final segment.

	Fix a little buglet in the target mode dma bug handler.
	We were employing the workaround in all cases instead
	of only for the chips that require it.

	Fix the cause of SCB timeouts and possible "lost data"
	during read operations on the aic7890.  When sending
	a data on any Ultra2/3 controller, the final segment
	must be marked as such so the FIFO will be flushed and
	cleaned up correctly when the transfer is ended.  We
	failed to do this for the CDB transfer and so, if
	the target immediately transfered from command to data
	phase without an intervening disconnection, the first
	segment transferred would be any residual bytes from
	the cdb transfer.  The Ultra160 controllers for some
	reason were not affected by this problem.

Many Thanks to Tor Egge for bringing the aic7890 problem
to my attention, providing analysis, as well as a mechanism
to reproduce the problem.
2000-07-27 23:17:52 +00:00
..
alpha Remove the only use of SCARG and perform dead code elimination. 2000-07-27 01:22:24 +00:00
amd64 s%LINT%NOTES%g 2000-07-25 08:25:48 +00:00
boot Remove an unnecessary .PATH entry. 2000-07-21 22:36:42 +00:00
cam scsi_all.c: 2000-07-18 19:48:58 +00:00
coda Remove 42 unneeded #include <sys/ioccom.h>. 2000-05-03 07:31:38 +00:00
compat Remove the only use of SCARG and perform dead code elimination. 2000-07-27 01:22:24 +00:00
compile
conf -mkdir the ${DESTDIR}/modules directory upon modules-install in case it 2000-07-27 03:50:25 +00:00
contrib/dev Remove these here, these were repocopied to src/sys/ufs/ffs. 2000-06-23 00:11:32 +00:00
crypto sync with kame tree as of july00. tons of bug fixes/improvements. 2000-07-04 16:35:15 +00:00
ddb Previous commit changing SYSCTL_HANDLER_ARGS violated KNF. 2000-07-04 11:25:35 +00:00
dev ahc_pci.c: 2000-07-27 23:17:52 +00:00
fs This patch corrects the first round of panics and hangs reported 2000-07-24 05:28:33 +00:00
geom Move the truncation code out of vn_open and into the open system call 2000-07-04 03:34:11 +00:00
gnu This patch corrects the first round of panics and hangs reported 2000-07-24 05:28:33 +00:00
i4b Borrow phk's axe and apply the next stage of config(8)'s evolution. 2000-06-13 22:28:50 +00:00
i386 Remove the only use of SCARG and perform dead code elimination. 2000-07-27 01:22:24 +00:00
isa This is yet another attempt to fix "psmintr out of sync.." problems. 2000-07-22 04:08:12 +00:00
isofs/cd9660 This patch corrects the first round of panics and hangs reported 2000-07-24 05:28:33 +00:00
kern Have kevent() automatically restart if interrupted by a signal. If this 2000-07-27 23:06:14 +00:00
libkern Comment out unavailable call. This needs to be revisited when the entropy 2000-06-25 10:15:58 +00:00
miscfs Remove stale, unused and bogus root device hunting code. 2000-07-27 18:18:47 +00:00
modules When manual pages are moved or removed, MANX should be changed 2000-07-24 13:52:07 +00:00
msdosfs Certain error contitions cause msdosfs_rename() to decrement the 2000-07-14 11:52:56 +00:00
net Change to support vmware... SIOCSIFADDR on the character device 2000-07-25 23:50:30 +00:00
netatalk Just need to pass the address family to if_simloop(), not the whole sockaddr. 2000-05-24 21:16:56 +00:00
netatm Just need to pass the address family to if_simloop(), not the whole sockaddr. 2000-05-24 21:16:56 +00:00
netgraph Followup to previous commit.. 2000-07-25 18:57:20 +00:00
netinet Add address translation support for RTSP/RTP used by RealPlayer and 2000-07-26 23:15:46 +00:00
netinet6 s/IPSEC_IPV6FWD/IPSEC/. this avoids unexpected behavior on ipv6 fowarding. 2000-07-16 07:56:54 +00:00
netipx Add $FreeBSD$ 2000-05-01 20:32:07 +00:00
netkey Add missing #include to unbreak IPSEC_DEBUG builds 2000-07-07 08:36:00 +00:00
netnatm Back out the previous change to the queue(3) interface. 2000-05-26 02:09:24 +00:00
netncp Previous commit changing SYSCTL_HANDLER_ARGS violated KNF. 2000-07-04 11:25:35 +00:00
netns
nfs This patch corrects the first round of panics and hangs reported 2000-07-24 05:28:33 +00:00
nfsclient This patch corrects the first round of panics and hangs reported 2000-07-24 05:28:33 +00:00
nfsserver This patch corrects the first round of panics and hangs reported 2000-07-24 05:28:33 +00:00
ntfs Back out the previous change to the queue(3) interface. 2000-05-26 02:09:24 +00:00
nwfs Previous commit changing SYSCTL_HANDLER_ARGS violated KNF. 2000-07-04 11:25:35 +00:00
pc98 Make all Ethernet drivers attach using ether_ifattach() and detach using 2000-07-13 22:54:34 +00:00
pccard Fix a bug so that we have correct number of pccard instances in pcic_attach(). 2000-07-24 21:44:00 +00:00
pci Document the 0x12258086 PCI id. 2000-07-27 09:54:50 +00:00
posix4 Add $FreeBSD$ 2000-05-01 20:32:07 +00:00
powerpc Support bounce buffers for ISA DMA on the alpha. This is required for the 2000-06-19 18:41:27 +00:00
rpc
svr4 Add snapshots to the fast filesystem. Most of the changes support 2000-07-11 22:07:57 +00:00
sys Disable LK_CANRECURSE on buffer locks. The recusion is needed only for 2000-07-26 23:10:02 +00:00
tools remove crufty exec stuff, perl is in the base system 2000-06-27 19:09:55 +00:00
ufs Clean up the snapshot code so that it no longer depends on the use of 2000-07-26 23:07:01 +00:00
vm Clean up the snapshot code so that it no longer depends on the use of 2000-07-26 23:07:01 +00:00
Makefile If "MODULES_WITH_WORLD" is defined, sys/modules will be built with the 2000-06-17 10:51:56 +00:00