9fans - fans of the OS Plan 9 from Bell Labs
 help / color / mirror / Atom feed
* Adaptec 2940 (buy NCR/Symbios) [long]
@ 1997-05-30  7:45 Nigel
  0 siblings, 0 replies; 2+ messages in thread
From: Nigel @ 1997-05-30  7:45 UTC (permalink / raw)


Before I talk about the Adaptec AIC7xxx series, I would like to back up
forsyth's kind comments about the Symbios/NCR driver. If you don't have
an explicit need for an Adaptec controller, then the Symbios/NCR route
is cheaper, and higher performance. The Symbios 8751 Ultra Wide
controller now costs 110 quid here, whilst Adaptec is pushing 200 quid
for equivalents. I can't make comparisons under Plan 9, but under NT
commerical projects here have found 30% throughput, and better
reliability by switching to Symbios cards.

So why would I want to do an Adaptec driver? It's all Uncle Bill's
fault. Under Win95, the only well documented generic SCSI layer is the
ASPI layer which was invented by Adaptec (though they claim the A stands
for Advanced). It is possible to use the miniport layer (and hence drive
any controller) but few applications do (Seagate Backup for WIn95 is an
example) and the documentation seems to be designed to convince you that
it only works under NT so it's difficult to believe any part of it. As a
result, anyone writing software for SCSI will support one proprietary
controller directly, and then ASPI. This is the case with TWAIN drivers
for scanners. Since scanners tend to have manufacturer specific
extensions, each model has it's own TWAIN driver to do the twiddly bits.
These drivers talk to either the crappy card shipped with the scanner,
or ASPI.

In my case, the card the scanner's shipped with is so bad there's no
motivation to write a driver for it. So I need an ASPI driver for
NCR/Symbios. Ha! This is what Symbios say:

Q:      I need an ASPI driver to function devices outside of the hard
drive?

A:      We do not provide the ASPI driver under Windows 95.  If the
driver
        does not come with the device then your only solution is to go
with
        another Host Adapter thats provides an ASPI driver under Windows
95.

This is clearly a ridiculous statement because ASPI is a driver for a
controller, not a peripheral. Anyhow, at least I know where I stand.

So, if I want to drive the scanner under Plan 9 and Win 95, I could
either

1) write an ASPI driver for Symbios under Win 95
2) write an Adaptec AIC7xxx driver under Plan 9
3) use the Adaptec 1542 which is in my fileserver

Which would be less painful? Well 3, but 1 is out of the question. So,
on to Adaptec....

I've been in touch with the Linux/FreeBSD guys who were great. I have a
full reading list for Adaptec. You think you only need one manual. It
looked like about 10.

The AIC chip runs microcode much like the NCR, except that there is an
on-board copy which can be replaced by download. Apparently, Adaptec
will not document the microcode except under NDA, so Linux/FreeBSD has
it's own. The microcode sequencer is better than NCRs (it avoids several
big mistakes). The microcode reproduces the control block concept that
is used by the unreplaceable (should that be irreplaceable) 8085 machine
code on the 1540 ISA cards. This suggests to me that we could borrow the
FreeBSD sequencer, and 'adapt' (ha ha ha) the existing Plan9 aha154x
driver.

There's the usual load of crud to identify the card, download code, read
and write a microwire EEPROM, patch up for the fact that some wide
controllers actually are two AIC controllers bolted together, etc etc

Nigel Roles, Symbionics





^ permalink raw reply	[flat|nested] 2+ messages in thread

* Adaptec 2940 (buy NCR/Symbios) [long]
@ 1997-05-31  1:57 David
  0 siblings, 0 replies; 2+ messages in thread
From: David @ 1997-05-31  1:57 UTC (permalink / raw)


> Before I talk about the Adaptec AIC7xxx series, I would like to back up
> forsyth's kind comments about the Symbios/NCR driver. If you don't have
> an explicit need for an Adaptec controller, then the Symbios/NCR route
> is cheaper, and higher performance. The Symbios 8751 Ultra Wide
> controller now costs 110 quid here, whilst Adaptec is pushing 200 quid
> for equivalents. I can't make comparisons under Plan 9, but under NT
> commerical projects here have found 30% throughput, and better
> reliability by switching to Symbios cards.

Well, it looks like I should have done some research before I
forked out the cash :-)

> So why would I want to do an Adaptec driver? It's all Uncle Bill's
> fault. Under Win95, the only well documented generic SCSI layer is the
> ASPI layer which was invented by Adaptec (though they claim the A stands
> for Advanced). It is possible to use the miniport layer (and hence drive
> any controller) but few applications do (Seagate Backup for WIn95 is an
> example) and the documentation seems to be designed to convince you that
> it only works under NT so it's difficult to believe any part of it. As a
> result, anyone writing software for SCSI will support one proprietary
> controller directly, and then ASPI. This is the case with TWAIN drivers
> for scanners. Since scanners tend to have manufacturer specific
> extensions, each model has it's own TWAIN driver to do the twiddly bits.
> These drivers talk to either the crappy card shipped with the scanner,
> or ASPI.

Easy solution -- don't use Win95!  :-)


> I've been in touch with the Linux/FreeBSD guys who were great. I have a
> full reading list for Adaptec. You think you only need one manual. It
> looked like about 10.

I've only ordered 2...  Of course, I'm only interested in the 7880 chip,
perhaps you need more if you're supporting all the other variants as well.

> The AIC chip runs microcode much like the NCR, except that there is an
> on-board copy which can be replaced by download. Apparently, Adaptec
> will not document the microcode except under NDA, so Linux/FreeBSD has
> it's own. The microcode sequencer is better than NCRs (it avoids several
> big mistakes). The microcode reproduces the control block concept that
> is used by the unreplaceable (should that be irreplaceable) 8085 machine
> code on the 1540 ISA cards. This suggests to me that we could borrow the
> FreeBSD sequencer, and 'adapt' (ha ha ha) the existing Plan9 aha154x
> driver.

Yep, that's one way of doing it.  This would get us up and running
the fastest.  I wonder though whether further performance gains
might not be achieveable through the use of microcode which is
tailored toward use with Plan 9.  There are probably some "dirty
tricks" with the buffer management which would work here.  I need
those docs :-)

Another question I've been thinking about is whether it is better to
compile the microcode at kernel compile time (like the FreeBSD
driver does) or at device initialization time.  In the later case,
the microcode could be tuned for the specific type of card (ie
leave out support for features it doesn't have, etc).  The driver
could also wire static addresses of command queues into the microcode,
etc.

> There's the usual load of crud to identify the card, download code, read
> and write a microwire EEPROM, patch up for the fact that some wide
> controllers actually are two AIC controllers bolted together, etc etc

I have some code for identifying my card :-)  I'm rewriting the PCI
support, I will try to make it available when I've finished.

Bolting two controllers together sounds like a complete nightmare!
How do they maintain synchronization?  Won't the data need to be
split/interleaved (depending whether you are writing or reading)?
Yuck yuck yuck...




^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~1997-05-31  1:57 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
1997-05-30  7:45 Adaptec 2940 (buy NCR/Symbios) [long] Nigel
1997-05-31  1:57 David

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).