[comp.os.minix] problems with scsi

wedeck@iravcl.ira.uka.de (05/04/90)

I have recently bought a ST296N and a ST01 Hostadapter for my AT-Clone.
Additionally I work with a 20 MB Miniscribe HD (where Minix is
installed) with a KP 2000 Controller of Morse. 
My BIOS is coming from Award and has version 3.03GS, the
version of the ST01-BIOS is 3.0.0.

Since I have installed the SCSI Hostadapter it is completely impossible
to use Minix. When booting from floppy not even the boot-message of
Minix appears. Instead the BIOS prints out: PRESS A KEY TO REBOOT 
This effect happens with Minix 1.3 as well as with Minix 1.5.0.

Does anybody have an idea, how to solve this problem (without unplugging
the hostadapter) ?

Please answer by posting messages in this group or by email to:

wedeck@iravcl.ira.uka.de

  or

wedeck@fzi.uka.de

root@johnbob.uucp (05/05/90)

In article <90.124.00:35:40@ira.uka.de> wedeck@iravcl.ira.uka.de writes:
>...
>Since I have installed the SCSI Hostadapter it is completely impossible
>to use Minix. When booting from floppy not even the boot-message of
>Minix appears. Instead the BIOS prints out: PRESS A KEY TO REBOOT 
>This effect happens with Minix 1.3 as well as with Minix 1.5.0.

I couldn't use a scsi adapter in my machine.  I noticed that the card
uses its own BIOS (copyright message appears when rebooting).  I figured
it was using some nonstandard way to talk to the hardware.  If anybody
knows that this is the case or knows a way around it, I'd like to hear
from you.

-john

John Harvey	Austin, Texas
AT HOME  ...!sequoia!johnbob!jph  OR
..!uunet!cs.utexas.edu!execu!sequoia!johnbob!jph
AT WORK  johnbob@ausvmq  OR  john@johnbob  OR
         @cs.utexas.edu:ibmchs!auschs!johnbob.austin.ibm.com!john  OR
..!uunet!cs.utexas.edu!ibmaus!auschs!johnbob.austin.ibm.com!john
I don't speak for anybody.  Not even myself.

jca@pnet01.cts.com (John C. Archambeau) (05/07/90)

root@johnbob.uucp writes:
>In article <90.124.00:35:40@ira.uka.de> wedeck@iravcl.ira.uka.de writes:
>>...
>>Since I have installed the SCSI Hostadapter it is completely impossible
>>to use Minix. When booting from floppy not even the boot-message of
>>Minix appears. Instead the BIOS prints out: PRESS A KEY TO REBOOT 
>>This effect happens with Minix 1.3 as well as with Minix 1.5.0.
>
>I couldn't use a scsi adapter in my machine.  I noticed that the card
>uses its own BIOS (copyright message appears when rebooting).  I figured
>it was using some nonstandard way to talk to the hardware.  If anybody
>knows that this is the case or knows a way around it, I'd like to hear
>from you.

The problem with SCSI in the IBM compatable domain is that everybody does it
differently.  Adaptec, Future Domain, Seagate, Western Digital, et. al. each
have a SCSI host adaptor, but the problem is that not a single one is
compatable with another.  There's no support for SCSI in any BIOS chip which
is why they have their own on-board BIOS.  The one that is supported the most
that I've noticed the the Adaptec.  It's the only one supported by SCO Xenix
at the present time.  WD provides a driver for their WD7000 under SCO Xenix,
but the documention from what I hear to install it is so poor that a lot of
users get frustrated and replace it with the Adaptec.

There's no standard spec for SCSI host adaptors in the IBM compatable domain. 
Unlike ST412/506, either the manufacturer of the host adaptor or software
maker provides you with a driver for the host adaptor, or you're up a creek.

Two problems I have with SCSI are this.  One, ESDI is faster by 50
percent and has a 16-bit bandwidth.  SCSI only has an 8-bit bandwidth and a 10
10 Mbit per second data transfer rate.

If you want performance, ESDI is the way to go.

Try and implement SCSI on Minix.  You're going to have one driver for every
manufacturer out there because EVERYBODY does it differently.  I can see it
now; adaptec.c, wd7000.c, futdomain.c, seagate.c.  Enough of this proprietary
bull.  That and getting the specs on the card on how to do it will be a pain. 
 
     // JCA

 /*
 **--------------------------------------------------------------------------*
 ** Flames  : /dev/null                     | Xenix is the ONLY thing
 ** ARPANET : crash!pnet01!jca@nosc.mil     | Microsoft did right.
 ** INTERNET: jca@pnet01.cts.com
 ** UUCP    : {nosc ucsd hplabs!hd-sdd}!crash!pnet01!jca
 **--------------------------------------------------------------------------*
 */

knop@duteca (P. Knoppers) (05/08/90)

In article <2564@crash.cts.com> jca@pnet01.cts.com (John C. Archambeau) writes:
>root@johnbob.uucp writes:
>>In article <90.124.00:35:40@ira.uka.de> wedeck@iravcl.ira.uka.de writes:
>>>...
>>>Since I have installed the SCSI Hostadapter it is completely impossible
>>>to use Minix. 
... some lines deleted ...
>The problem with SCSI in the IBM compatable domain is that everybody does it
>differently.  Adaptec, Future Domain, Seagate, Western Digital, et. al. each
>have a SCSI host adaptor, but the problem is that not a single one is
>compatable with another.  There's no support for SCSI in any BIOS chip which
>is why they have their own on-board BIOS.  The one that is supported the most
>that I've noticed the the Adaptec.  It's the only one supported by SCO Xenix
>at the present time.  WD provides a driver for their WD7000 under SCO Xenix,
>but the documention from what I hear to install it is so poor that a lot of
>users get frustrated and replace it with the Adaptec.
>
>There's no standard spec for SCSI host adaptors in the IBM compatable domain.
>Unlike ST412/506, either the manufacturer of the host adaptor or software
>maker provides you with a driver for the host adaptor, or you're up a creek.

In the whole world there are actually only two SCSI interface chips in use.
Both are from NCR and they are very similar from the SW standpoint.
I suggest that you
- Locate the big NCR chip on your SCSI adapter
- Write down its name
- Get the documentation for this chip from NCR
With this documentation, the documentation of your SCSI board and a program
such as DEBUG you should be able to figure out the I/O addresses of all the
registers in the NCR chip. (I /think/ that there are 8 addresses used for
this chip and they are likely to be mapped in sequence somewhere in the I/O
space of your PC.) The documentation of your SCSI board should tell you which
I/O addresses it uses (this is probable selectable with jumpers or some DIP-
switches).
Now, if you want to write a full-fledged SCSI bus driver for minix, that is
not a trivial task. Full documentation on the protocol is freely available,
but it is in horrible wordstar/mailmerge format and that might take some time
to decode..... You can get more information about this by mailing to
	archive@mgse
with the word
	help
in the body of your message. This should get you started.
>
>Two problems I have with SCSI are this.  One, ESDI is faster by 50
>percent and has a 16-bit bandwidth.  SCSI only has an 8-bit bandwidth and a 10
>10 Mbit per second data transfer rate.
>
>If you want performance, ESDI is the way to go.

Nonsense. The PC bus or AT bus has a bandwidth that is very limited in I/O
performance under control of the DMA controller. You won't get more than
about 1 Mbyte per second (AT maybe 2 Mbyte). Also, more important, regardless
of whether you use SCSI or ESDI, you will have to wait until the disk drive
has read or written the block that you want (at least under MINIX). This
takes 20 ms (milli-second) on very fast disk drives. The 100 us (micro_second)
it takes to transfer the data is negligible.
>
>Try and implement SCSI on Minix.  You're going to have one driver for every
>manufacturer out there because EVERYBODY does it differently.  I can see it
>now; adaptec.c, wd7000.c, futdomain.c, seagate.c.  Enough of this proprietary
>bull.  That and getting the specs on the card on how to do it will be a pain.

Wrong! Read the SCSI standard and you will see that the protocol supports
commands to determine the types and capacities of the devices connected to
the bus. The SCSI bus has everything you need to create an autoconfiguring
system. Unless you want to format your SCSI hard disk (which is different
for all manufacturers), you can get all the information MINIX needs from
the SCSI disk. After all, MINIX only needs a read-block function and a
write-block function. These commands are mandatory in SCSI and they always
work the same way. Only the range for the block number is dependent on the
drive. In SCSI the blocks are counted from 0 (or is it 1) to many. The disk
controller converts these numbers to cylinders, surfaces and sectors. Bad
block forwarding is done by the disk controller. In general, you should not
try to outsmart the controller on the disk drive with your own interleave
factor.

The difficult part of SCSI is that devices may "disconnect" if the requested
operation takes much time to complete. When the task is done, these devices
reconnect to transfer data and status information. This can complicate your
driver considerably...
-- 
  _____       __  __  __  __   ____   _____   _____   ______  _____    _____ 
 |  _  \     |  |/  ||  \|  | /    \ |  _  \ |  _  \ |   ___||  _  \  /  ___|
 |   __/ _   |     < |      ||  ||  ||   __/ |   __/ |   >__ |     <  \__  \
 |__|   |_|  |__|\__||__|\__| \____/ |__|    |__|    |______||__|\__||_____/
P. Knoppers, Delft Univ. of Technology, The Netherlands, knop@duteca.tudelft.nl