[comp.sys.ibm.pc.rt] Use of SCSI adapter for other than IBM SCSI disks

dyer@arktouros.MIT.EDU (Steve Dyer) (12/26/88)

Can the RT SCSI adapter be used for disks other than the
200mb and 400mb humongous "Athens" drives?  This is for
AOS 4.3, by the way.  Looking at the driver, I suspect
it just needs proper partition tables added, but I'd like
to get confirmation on this before I get the adapter and
a few CDC WREN drives.

buck@siswat.UUCP (A. Lester Buck) (12/28/88)

In article <2295@spdcc.SPDCC.COM>, dyer@arktouros.MIT.EDU (Steve Dyer) writes:
> Can the RT SCSI adapter be used for disks other than the
> 200mb and 400mb humongous "Athens" drives?  This is for
> AOS 4.3, by the way.  Looking at the driver, I suspect
> it just needs proper partition tables added, but I'd like
> to get confirmation on this before I get the adapter and
> a few CDC WREN drives.

I have just started work on a contract to write some SCSI drivers
for the RT under AIX for round tape, square tape, and a WORM drive.
Will probably try out a disk driver also.  (I have previously done
quite a bit of Unix SCSI driver work on another system.)  
I haven't gotten far enough into it yet to know about substituting
drives using the IBM drivers, but all those operations that
read/write the "server area" on the IBM SCSI drives make me very
suspicious about foreign SCSI drives working.  The server area
is a part of the drive where IBM stores the disk controller
microcode, allowing it to be updated in place.

Has anyone had much experience with low level operations on the
SCSI adapter?  On reading the hardware interface specifications and
the VRM driver docs, a couple of things are really bugging me.

1)  The SCSI adapter has 16 slots (tags) for commands active
    at once.  It can have one "executing" command, one "next"
    command, and the rest "ready" to run.  BUT, when the adapter
    is done with one command, it ALWAYS scans the list from
    the beginning (tag 0), so the documentation admits you
    shouldn't have more than THREE commands to one device
    out a once, as the fourth command might wait forever
    if the system is busy enough (say the main disk, accessed
    by multiple processes).  This seems completely 
    brain-damaged to me.  Am I missing something?
    What is wrong with a simple fair-share round-robin
    policy, except that one can't drop a high priority
    SCSI command on the bus.  At least have this be
    a setup mode of the card.

2)  For some reason, the adapter is too dumb to transfer
    data directly between the SCSI bus and system memory,
    using the 128K on the adapter as a FIFO buffer.  Instead,
    it requires intense hacking with allocation of individual
    512 byte buffers on the card and "interrupt granularity"
    calls to break up large transfers and keep emptying
    the buffers on the card (the card memory is dual-ported,
    at least).  Why can't the card just keep it simple and
    use the entire adapter memory as a simple buffer?

3)  Why, why, why does the IBM supplied VRM driver for the
    SCSI adapter have a pass-through mode to do raw SCSI
    operations, but then emasculate it by limiting the
    total DMA transfer to 6K in pass-through??  Must use
    the separate read and write op-codes to do unlimited
    transfers.  Very inconvenient...
    And using read/write op-codes causes an automatic
    request sense after each command - which is a performance
    loss and may toss some of the sense data for devices
    which return a lot of sense data.

4)  Why are linked commands not supported?

5)  Why, if we want to abort a single thread to a single
    LUN, does the adapter insist on possibly reseting the entire
    SCSI bus???  Yeow!

This is not an elegant SCSI host adapter.  I am looking at
substituting the Western Digital 7000-asc or Adaptec AHA-1540
AT host adapters on the RT - much cheaper and better implementations.


-- 
A. Lester Buck		...!uhnix1!moray!siswat!buck