Subject: New "si" SCSI driver...
To: None <port-sun3@NetBSD.ORG>
From: Gordon W. Ross <gwr@mc.com>
List: port-sun3
Date: 10/25/1995 17:42:04
I've done a bunch of work on the new "si" SCSI driver from
David Jones.  The driver is getting to the point where it
would help to have people willing to test it, so I've put a
snapshot of the code on the FTP server here:

	ftp ftp.mc.com
	cd /pub/gwr
	binary
	get sun3_si.tar.Z

There are instructions on how to use it, etc. in the README
file.  (I've attached a copy of the README file below also).

Note that this driver is still EXPERIMENTAL!  I do NOT suggest
using this on a machine attached to any periperals that have
data you'd rather not lose!  (OK, you've been duly warned.)
(Actually, though, the driver is starting to "shape up" 8^)

Gordon Ross

[ ------------------------ README ------------------------]

** What is this?

This is a snapshot of the new "si" SCSI driver we are developing for
NetBSD/sun3.  This driver will correct several major deficiencies
of the old "si" driver, the most important being that this driver
can use DMA transfers with DMA completion interrupts.

** What can I expect from it?

This driver appears to be working for me now, though it needs
a LOT more testing before I'd trust it with any valuable data.
I have not yet tested:  disconnect/reselect, OBIO interrupts.
This IS a lot faster than the old one, at least...

** How can I use it?

This README should be part of a tar file that contains:
	dev.new/README
	dev.new/SCSI_TEST
	dev.new/am9516.h
	dev.new/files_sun3.patch
	dev.new/ncr5380_si.c
	dev.new/ncr5380_si.h
	dev.new/ncr5380gen.c
	dev.new/ncr5380reg.h
	dev.new/ncr5380var.h

The "dev.new" directory and all its contents should be moved to:
	/src/sys/arch/sun3/dev.new
Then, copy the files:
	SCSI_TEST
	files_sun3.patch
over into:
	/src/sys/arch/sun3/conf
Finally, go there, and do:
	patch < files_sun3.patch
	/usr/sbin/config SCSI_TEST
	cd ../compile/SCSI_TEST
	make depend ; make

** Whose work is this?

Contributions from many people have been incorporated into this
version, but most of the recent work was done by David Jones.
David came up with a very nice set of data structures and
code organization for separating the machine-independent code
(for the NCR5380) from the machine-dependend DMA code.  He
obviously spent a lot of time and effort pulling useful code
from the various NCR5380 drivers that exist now, as well as
writing lots of replacements for things not done very well.

I then took David's code, added the "SCSI message handling"
protocol engine from the aic6360 driver, added the DMA routines
for the OBIO version of the "si", and fixed the code that deals
with the (!@#$) FIFO logic used on the "si" board.  Several
other changes (and comments) correct some confusion about
exactly what is going on with the 5380 when doing things like
selection, reselection, etc.

Gordon Ross