From: davidk@csis.dit.csiro.au (David Keightley)
Subject: SCSA SCSI driver development
Summary: non-tape non-disk SCSA SCSI device driver development questions
Keywords: SCSA SCSI SPARC driver device
Organization: CSIRO Division of Information Technology
Date: Thu, 10 Sep 1992 01:52:34 GMT

Hello,

I'm developing a SCSI driver for a Sun SPARCstation, and I've run into
a couple of problems.  I'm not totally ignorant of the driver development
process, I've developed two drivers for Suns (loadable, 1-block, 1-character)
and one for a PC running Unix, but I've never written a SCSI driver before.
I intend to use Sun's SCSA, but I may not make the first SCSI driver mod-
loadable.  Firstly I want to get things talking via ioctl()s, then I'll add
block transfers with a startegy() call.

Here is a start:

The device I'm connecting is not a tape or disk, but is an interactive visuali-
sation system we are developing in conjunction with two universities.  The 
device has a SCSI I/O controller board connected to a FutureBus plus chassis
containing a DSP array and display driver.  

The device driver is pretty ignorant, and is used only to move data across
the H/W boundary, no device address space is mapped into Host space.

1.) I want to add my device to the CONFIG file (mine is called CSIS.PIPADS)
but I'm not certain how to classify the device.  The config file
contains the following SCSI entries (just a couple here):

scsibus0 at esp                         # declare first scsi bus
disk sd0 at scsibus0 target 3 lun 0     # first hard SCSI disk
disk sd1 at scsibus0 target 1 lun 0     # second hard SCSI disk
disk sd2 at scsibus0 target 2 lun 0     # third hard SCSI disk
disk sd3 at scsibus0 target 0 lun 0     # fourth hard SCSI disk
tape st0 at scsibus0 target 4 lun 0     # first SCSI tape
tape st1 at scsibus0 target 5 lun 0     # second SCSI tape

This goes on.

I can add my device, but does it matter what I call it?  It isn't a tape 
or disk, so "disk sd.." and "tape st.." seem incorrect.  If I dump the
file called driver in the same directory I get the following:

scsi/targets/sd_conf.c          optional sd scsibus
scsi/targets/sd.c               optional sd scsibus
scsi/targets/sf.c               optional sf scsibus not-supported
scsi/targets/sg.c               optional sg scsibus not-supported
scsi/targets/sr.c               optional sr scsibus
scsi/targets/st_conf.c          optional st scsibus
scsi/targets/st.c               optional st scsibus

Is my device an sf, sg, or sr? 


2.) Are SCSA SCSI drivers modloadable?  I didn't have any trouble with
the last driver I wrote for a Sun, but it doesn't look clear to me how 
to make the SCSI driver loadable.  If anyone out there has had experience
with this I'd love to set up a dialogue.

3.) I will post my results and as much of the driver as I legally can.  There
are some Intellectual Property constraints on me, but not too strict.  Certainly
I can help others a bit with the process once I've been through it.

Thanks very much

David Keightley
+-------------------------------------------------------+
| Name     : David E. Keightley                         |
| Title    : Project Manager, Visualisation Group       |
| Internet : davidk@csis.dit.csiro.au                   |
| Voice    : +61-6-2750908                              |
| Fax      : +61-6-2571052                              |
| Postal   : CSIRO Division of Information Technology,  |
|            GPO Box 664, Canberra ACT 2601             |
|            AUSTRALIA                                  |
+-------------------------------------------------------+

-- 

+-------------------------------------------------------+
| Name     : David E. Keightley                         |
| Title    : Project Manager, Visualisation Group       |