** The following file was uploaded by Eric Horwitz from Alpha Microsystems **
** ERIC/AM **


   After hanging my butt (too far) out the window with my previous
   posting regarding SCSI, I decided my biggest mistake was trying to
   not get too technical as to why not all SCSI implementations are
   created equal.  The following is extracted from an internal
   memorandum to me from Rod Hewitt, the engineer who is currently
   responsible on our SCSI software and hardware.  I hope it all
   makes sense!


   SCSI SUPPORT ISSUES:

   Various comments have been exchanged recently regarding the SCSI
   bus on the Alpha Micro and why certain drives do and do not work.
   This message is designed to clear up many of the myths of SCSI
   when used on an Alpha Micro.

   HARDWARE ISSUES:

   The Alpha Micro implementation is a true implementation of the
   SCSI-1 protocol.  However, like many standards, the organization
   setting the standard allows vendors many options in configuring
   their implementation of the standard.  In this respect, the Alpha
   Micro does not support the following aspects of SCSI-1:

   Disconnect and re-connect:  As the A/M is a simple host
       adaptor it does not have an ID assigned on the bus.  Therefore
       SCSI peripherals must complete their transaction prior to
       returning the bus to a bus-free phase.  When a target is
       selected by the A/M, only one ID bit is placed on the data
       bus, informing the target that the system does not support
       this part of the SCSI specification.

   Multiple host:  Fully implemented SCSI-1 allows multiple host
       adaptors to be present on the SCSI bus.  The A/M does not
       allow this as the host adaptor has no bus ID and therefore
       cannot arbitrate for the bus.  The lack of multiple host
       support circumvents usage of the SCSI COPY command (which is
       really only useful when performing image backups; something
       AMOS hasn't done in years).

   Parity:  Some devices require that parity be present on the
       SCSI bus in order for them to communicate correctly with the
       host.  A/M's implementation does not connect anything to pin
       18 (DBP* signal).

   Synchronous communications:  the transfer protocol used
       between the A/M and the target SCSI device is asynchronous in
       so much as the REQ signal must be presented to the host prior
       to host latching them data in form the data bus.

   While it may look depressing that the above features are not
   supported, in reality this doesn't matter so much as the design of
   the SCSI bus on the A/M is very fast and the cache system used by
   AMOS compensates for the lack of disconnect/re-connect.  Testing
   has shown that using tape peripherals on the A/M SCSI bus driven
   by a 25MHz 68020 CPU, speeds of around 15 Mbytes per minute can be
   achieved.

   As far as AM-1000 systems go, there is an Engineering Notice ("EN")
   to bring the SCSI implementation to the same standard as other A/M
   computers.  This EN (also available for the AM-405 controller)
   fixes a REQ/ACK handshake problem that occurs when anything faster
   than a Xebec 1410A controller is attached to the system.

   SOFTWARE ISSUES:

   Just as with hardware, the SCSI standard allows flexibility in
   software commands.  Drive vendors are allowed to implement vendor
   unique commands to control certain aspects of their drives.  This
   is very apparent with the mode select command.  The 625DVR.DVR
   parameters on Tandberg streaming tape drives.  If you attempted to
   use an Archive Viper in place of the Tandberg, DEVTBL will fail
   with a device initialization error as the mode select command is
   different between the two drives.

   As far as the FMTSCZ program goes, it may have problems
   communicating with unsupported disk drives for a whole variety of
   reasons.  Firstly, FMTSCZ issues an inquiry command to the drive
   to see if the drive manufacturer and model number are known to
   A/M - if not, the drive is listed as unknown and unsupported.
   Unknown and unsupported simply means we have either evaluated the
   drive (and we evaluate a LOT of disk drives) and decided not to
   use it (speed, reliability, cost, compatibility, MTBF, etc. are
   factors why we don't support certain drives) or that we've never
   seen this particular drive before.

   After the inquiry command, FMTSCZ sends mode sense and read
   capacity commands to the drive to calculate both its real size
   and its usable size from the operating system's point of view.
   For example, 50mb drives will get formatted down to 40mb as that
   is a size that A/M supports from a marketing point of view, and
   allows A/M to sell 40mb drives from various vendors despite the
   fact that each drive may have a slightly different size.  The head
   count, cylinder size, number of cylinders, etc. are read from the
   drive in order to calculate the size of the diagnostic cylinder
   and to configure the hidden sector (used by BITMAP to
   automatically calculate the bitmap size).

   In addition to the above SCSI commands, the drive must perform a
   multitude of other SCSI commands correctly, or it won't format
   correctly with FMTSCZ.  A case in point is the Quantum drives A/M
   sells.  When they spin up, if you send continuous "test unit
   ready" commands to the drive, it will lock up as only one CPU is
   used for both the SCSI bus and drive control.  We had to modify
   the system boot PROMs and FMTSCZ to insert delays between test
   unit ready commands in order for these drives to work with A/M
   computers.  This problem is unique to Quantum and we were able to
   fix it, but a "Drives-R-Us" drive may have some other quirk that
   you'll run into if you don't use drives supported by A/M.

   As far as the SCZDVR is concerned, no special modifications are
   required.  If a drive passes through FMTSCZ correctly, chances are
   it'll work with SCZDVR, but unless you use a supported drive with
   _exactly_ the same firmware version that we ship, there are not
   guarantees.  An example of "exactly the same firmware" is the
   Maxtor LXT-200 drive currently being sold by A/M.  The drive we
   supply has a special version of firmware that stops the drive from
   crashing when powered up on an A/M at the same time as the CPU.
   When A/M computers power up they will pulse the SCSI reset signal
   to ensure all drives are at a known state (there is no SCSI
   definition on what to do with reset upon system power up).  The
   firmware used on A/M supplied drives ignores the SCSI reset signal
   during power up and will therefore boot; the same drive out of
   distribution will not have this special firmware and hence will
   not work unless the drive is powered up after the CPU is turned on
   (which is a pain to do).

   You don't have to have the drive defined with a DEVTBL command in
   order to format it.  FMTSCZ "searches" through the SCSI bus to
   find SCSI disk drives.