[comp.periphs.scsi] Trouble in SCSI-Land: On PC-computers, it isn't really standard!

pete@Octopus.COM (Pete Holzmann) (03/15/90)

Based on experiences during the past 6 months, I've come to the sorry 
conclusion that SCSI is not defined well enough as an interface standard,
at least in the PC world. [If SCSI is the base I/O scheme for peripherals,
as in the Mac, etc, then I'm sure things ought to be much better...]

I'd love to be proven wrong; I'd love for someone to tell me 'there will be
a good solution in N months'. Does anyone have any insight?

First: no complaints about the interface between SCSI controllers and SCSI
devices. That works, and works well. 

Unfortunately, that isn't enough! There are 2 major problems:

1) There is no standard way for software to talk to a SCSI controller
2) There is no standard way for a DMA-based SCSI controller to deal with
    the '386 or '486 CPU's, which make a habit of changing memory maps
    on the fly.

Some pretty awful problems result:

From problem 1: Buy 4 SCSI peripherals. Likely as not, they will come with
    some custom interface software (drivers, etc.), and 4 different SCSI
    interface boards. All (or mostly) mutually incompatible. This is MUCH
    worse than normal custom interface cards. The SCSI cards all think they
    are 'standard', and end up interfering with other SCSI cards in the 
    system! Specific example: SCSI hard drive, SCSI 9 track tape, SCSI
    magneto-optical drive, SCSI Worm drive. Can't make them play together!!!
    Sick.

From problem 2: I know of no SCSI controller on the market that functions
    completely correctly with multitaskers, RAM organizers, Disk Cachers,
    and the like. I suppose a completely dumb one (polled I/O) might, but
    then you lose the performance gain of DMA. Isn't there anybody out
    there who's done a DMA-interface SCSI disk device driver that works
    in these kinds of situations?

Feeling somewhat disgruntled by the whole mess...

Pete
-- 
Peter Holzmann, Octopus Enterprises   |(if you're a techie Christian & are
19611 La Mar Ct., Cupertino, CA 95014 |interested in helping w/ the Great
UUCP: {hpda,pyramid}!octopus!pete     |Commission, email dsa-contact@octopus)
DSA office ans mach=408/996-7746;Work (SLP) voice=408/985-7400,FAX=408/985-0859

jlohmeye@entec.Wichita.NCR.COM (John Lohmeyer) (03/17/90)

In article <1990Mar15.042028.16024@Octopus.COM> pete@octopus.COM (Pete Holzmann) writes:
>Based on experiences during the past 6 months, I've come to the sorry 
>conclusion that SCSI is not defined well enough as an interface standard,
>at least in the PC world. [If SCSI is the base I/O scheme for peripherals,
>as in the Mac, etc, then I'm sure things ought to be much better...]
>
>I'd love to be proven wrong; I'd love for someone to tell me 'there will be
>a good solution in N months'. Does anyone have any insight?

I wish I had an exact value for N, but I don't.  There is an industry group
working on the problem called the CAM Committee (Common Access Method).
Dal Allan chairs this group and he can be reached at 408-867-6630.  This
group has a draft document and is making progress.

IBM and Microsoft are also rumored to to working on their own solution. No
one knows whether it is compatible with CAM or not.  (That is, no one I know
knows or they are not telling :-).

As for the first-party DMA (bus master) problems with memory management 
software, I believe there are software solutions available for these 
problems.  You might want to check with your host adapter vendor or with
your software vendor.

>Feeling somewhat disgruntled by the whole mess...

I hope this helps.  The PC market really needs the CAM standard or a
decent IBM/Microsoft de facto standard.  By "decent", I mean one that is
generic enough to permit a wide range of solutions.  Whatever IBM announces
(and whenever), let's hope there is a decent software interface with it so
people do not feel compeled to write code that speaks directly to the
hardware.  If this happens, then it will be difficult to offer higher or
lower performance versions of the SCSI hardware.


-- 
John Lohmeyer         J.Lohmeyer@Wichita.NCR.COM
NCR Corp.             uunet!ncrlnk!ncrwic!entec!jlohmeye
3718 N. Rock Rd.      Voice: 316-636-8703
Wichita, KS 67226     SCSI BBS 316-636-8700 300/1200/2400 24 hours

jesup@cbmvax.commodore.com (Randell Jesup) (03/18/90)

In article <1990Mar15.042028.16024@Octopus.COM> pete@octopus.COM (Pete Holzmann) writes:
>Based on experiences during the past 6 months, I've come to the sorry 
>conclusion that SCSI is not defined well enough as an interface standard,
>at least in the PC world. [If SCSI is the base I/O scheme for peripherals,
>as in the Mac, etc, then I'm sure things ought to be much better...]

	Well, on the Amiga it's rapidly becoming the standard I/O interface.
In addition, Commodore and it's 3rd-parties have agreed on two standards: one
for storing partitioning information on a drive (including executables for
custom filesystems used by partitions on that drive).  The other standard
is a common I/O device interface to allow software to send direct SCSI
commands (this is an extension of the base-level disk driver interface
standard, and is even supported by some non-scsi drives).  The low-level
drivers are either in ROM on the controller, or loaded off your boot disk
automatically.

	This allows some nice things: we can take a drive from one system,
attach it to another (on a different manufacturers controller), and it comes
up with all partitions (you can even boot off it).  We can use anyone's
partitioning program to partition a drive, regardless of controller/driver.

	Since we can use direct SCSI commands, partitioning programs can
use MODE_SENSE, INQUIRY, READ_CAPACITY, etc to get all the info needed to
set up the drive.

>2) There is no standard way for a DMA-based SCSI controller to deal with
>    the '386 or '486 CPU's, which make a habit of changing memory maps
>    on the fly.

	This requires some OS support I suspect - for example, a
VirtualToPhysical(addr,&length) that returns the physical address for
DMA, and modifies length (if needed) to avoid any discontinuities.

	Almost all controllers on the Amiga are DMA.

-- 
Randell Jesup, Keeper of AmigaDos, Commodore Engineering.
{uunet|rutgers}!cbmvax!jesup, jesup@cbmvax.cbm.commodore.com  BIX: rjesup  
Common phrase heard at Amiga Devcon '89: "It's in there!"

howardm@Neon.Stanford.EDU (Howard A. Miller) (03/19/90)

SCSI is late in coming to the IBM PC world.  If the on controller BIOS
is properly written, then there should be no problems using SCSI decives
under DOS.  For SCO Unix, the drivers must be properly written.  From my
"real" job it appears as if Adaptec is leading the way in making the
standards fot the IBM PC environment.  Also, Everex systems seems to have
a few devices/controllers/BIOS which seems to work.