[comp.unix.ultrix] DECstation 3100 & SCSI info

rsp@ok.DEC.COM (Ricky Palmer) (03/07/89)

Reply-to: rsp@ok.DEC.COM (Ricky Palmer)


	There have been several inquiries about SCSI and the
DECstation 3100 (PMAX).  The usual caveat applies, i.e., only DEC
supplied SCSI devices are ever supported or recommended by DEC;
however, the SCSI bus on the 3100 is ANSI standard. The Ultrix SCSI
driver currently supports only disk and tape (random access and
sequential access) SCSI device types, but it will eventually be quite
easy to add other kinds of SCSI devices. The devices must adhere to
the electrical specifications defined in the ANSI specification and
should also support the "common command set" as defined in that
document. As Jim Gettys has pointed out you are always on your own and
some non-DEC disks/tapes may very well have microcode or design
differences that preclude their use on the DECstation 3100. Our own
experiences in testing new devices uncovered microcode bugs in several
devices we qualified.

	The bus is single-ended and cannot exceed 6 meters in length.
And 6 meters means exactly 6 meters. This includes any cable inside
the box plus however much cable is used outside the box. The bus is
very sensitive to this length and many problems that wouldn't exist
otherwise may crop up if this rule is not followed closely.  The 3100
supports both synchronous and asynchronous devices. The bus data rate
for synchronous transfers is 4 MB/sec. The SCSI host adapter is a
custom DEC gate array and as such is proprietary. You should consult
the appropriate person for information on what configurations of
disks/tapes are available and recommended by DEC. One recommended
SCSI ID ordering is given below but may differ depending on your
particular configuration:

	7	- reserved
	6	- host DECstation 3100 CPU (the boot ROM sets it to 6)
	5	- TK50Z TAPE	asynch. device only (external sidecar)
	4	- RRD40 CDROM	asynch. device only (external sidecar)
	3	- RZ23	DISK	asynch. device only (internal mount only)
	2	- RZ23	DISK	asynch. device only (internal mount only)
	1	- RZ55	DISK	synch.	device (can run asynch. too)(external)
	0	- RZ55	DISK	synch.	device (can run asynch. too)(external)

	This list is only valid for this particular combination of
devices.  Obviously if you decide to put together a 3100 with only
external RZ55's you could conceivably have a synchronous RZ55 at ID
slots 0, 1, 2, and 3 and no RZ23's. The above example has the
recommended ID values for the particular devices used but is by no
means all inclusive. The logic above is simply that the slower devices
(tape and CDROM) should be closest to the CPU and the fastest devices
farthest away from the CPU. There is no requirement as to how many
synchronous versus asynchronous devices you can have.  If you wish to
have all synchronous it will work or all asynchronous will work.  The
most important criteria for performance of a given SCSI target is how
well the target is built. Some of the latest SCSI devices I have seen
are quite nice.

	For those who would like to connect their own devices to the
bus the Ultrix driver allows the addition and definition of new
devices in the "scsi_data.c" file supplied with every binary or
source license, in other words, you don't need anything but your
friendly editor and some information on your particular device to add
it to the data file, recompile the data file, and reload your kernel.

	An example disk entry might look like the following (this assumes
an entry for the partition table for your device not shown here):

#define DEV_MYDISK "MYD100"

struct scsi_devtab scsi_devtab[] = {

{"MYDISK 100", 10, DEV_MYDISK, SZ_DISK, sz_myd100_sizes, SCSI_TRYSYNC | \
 SCSI_STARTUNIT | SCSI_REQSNS | SCSI_TESTUNITREADY | SCSI_READCAPACITY, 0 },

{ 0 },

};
	where the first field is the vendor returned string
identifying the drive, the second field is the length of the string,
the third field is the Ultrix name for the device, the fourth field is
the class of SCSI device, in this case disk, the fifth is the
partition table entry, and the last field is a mask of bits that
defines what action(s) the driver probe routines should take upon
system boot. All the currently defined fields are:

	SCSI_TRYSYNC	- set the device up as synchronous
	SCSI_REQSNS	- send a REQUEST SENSE SCSI command
	SCSI_STARTUNIT	- send a START/STOP UNIT SCSI command
	SCSI_TESTUNITREADY - send a TEST UNIT READY SCSI command
	SCSI_READCAPACITY - send a READ CAPACITY SCSI command
	SCSI_NODIAG	- don't issue SEND DIAGNOSTIC command

	A sample tape entry along with the disk might be:

#define DEV_MYTAPE "MYT100"

struct scsi_devtab scsi_devtab[] = {

{"MYDISK 100", 10, DEV_MYDISK, SZ_DISK, sz_myd100_sizes, SCSI_TRYSYNC | \
 SCSI_STARTUNIT | SCSI_REQSNS | SCSI_TESTUNITREADY | SCSI_READCAPACITY, 0 },

{"MYTAPE 100", 10, DEV_MYTAPE, SZ_TAPE, sz_null, SCSI_NODIAG, 0},

{ 0 },

};

	The data file that comes with Ultrix has a default case for
any disk you happen to try. If it works for a particular disk you
have only a 'c' partition initially, but the partition table can be
changed once your up and running off your system disk.	This is more
of a "last resort" attempt to size any random disk that you might try.
I hope this answers some of the questions out there. This interface is
not laid in stone and could change in future releases as new revisions
and changes to the driver occur, but for the initial cut at it with
what devices we did support it took us a long way toward supporting
disks and tapes easily and effectively. And boy does this little box
push the data around fast"!!!

---   Ricky Palmer	 Ultrix Advanced Development
---   Digital Equipment Corporation
---   Nashua, New Hampshire
---   ... One of the fathers of PMAX ...

pavlov@hscfvax.UUCP (G.Pavlov) (03/22/89)

Reply-to: pavlov@hscfvax.UUCP (G.Pavlov)


In article <85751@felix.UUCP>, rsp@ok.DEC.COM (Ricky Palmer) writes:
  [ very good information re SCSI in the DECStation 3100; thanks. ]
>  And boy does this little box push the data around fast"!!!
> 
> ---   Ricky Palmer	 Ultrix Advanced Development
> ---   Digital Equipment Corporation
> ---   Nashua, New Hampshire
> ---   ... One of the fathers of PMAX ...

  One thing that I noticed in playing with the DECStation is that it pushes
  data to/from disk much slower than our MIPS M/120-5 (the "mother" of the
  PMAX ???).  I have been told/read that DEC did not implement DMA.  Is this
  true, would this be the reason ?  More to the point, did DEC do anything re
  speeding up disk i/o in the new DECSystems ?

  thanks, greg pavlov, fstrf, amherst, ny

rsp@decvax.dec.com (Ricky Palmer - (603)881-0370 - ZK3-3/T74) (04/12/89)

-------
Actually, I suspect you don't have the SDC version of everything or else
were an early field test site. The current delivered DS3100 with SDC
software is blazing fast. I have an RZ55 on mine on which I get around
800-900 KB/sec through the filesystem. The RZ55 only has 36 sectors per
track so I consider this to be quite good. If I "dd" from this disk
to /dev/null at bs=64k I get about 1.1 MB/sec. which is just about
36 sectors/track * 60 revs/second * 512 bytes/sector * 1 track/rev *
.000001 MB/byte. 

					Ricky Palmer
---   Ricky Palmer	 Ultrix Advanced Development
---   Digital Equipment Corporation
---   Nashua, New Hampshire
---   ... One of the fathers of PMAX ...