Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 27 May 1999 14:46:06 -0400
From:      "Christopher R. Bowman" <crb@ChrisBowman.com>
To:        "Justin T. Gibbs" <gibbs@narnia.plutotech.com>
Cc:        freebsd-scsi@freebsd.org, hardware@freebsd.org
Subject:   Re: Support for Symbios vs. Adaptect SCSI
Message-ID:  <199905271847.OAA07996@quark.ChrisBowman.com>
In-Reply-To: <199905271517.JAA04842@narnia.plutotech.com>
References:  <199905270156.SAA11635@ryouko.nas.nasa.gov>

next in thread | previous in thread | raw e-mail | index | archive | help
At 09:17 AM 5/27/99 -0600, Justin T. Gibbs wrote:
>In article <199905270156.SAA11635@ryouko.nas.nasa.gov> you wrote:
>>> >Do you mean:
>>> >
>>> >    1) Has fewer bugs?
>>> >    2) Makes better use of the hardware capabilities?
>>> >    3) Has a maintainer who is willing/able to devote
>>> >           more time to the task?
>> 
>> I can believe 1 & 3, but could you (Justin?) elaborate on 2?  I've
>> always been under the impression that everything after the old ISA
>> Adaptec 1542CF has been basically riding on Adaptec's brand name to
>> justify their cards costing 2-3x as much as the equivilent Symbios
>> (NCR) based card.  [You can pick up UW-SCSI 875 based Symbios cards
>> for $75 bucks these days]
>
>In general, the PCI interface on the Adaptec chips is unsurpassed
>in the industry.  They have larger FIFOs and lower latency than their
>competitors, and pretty much work if you follow the supplied schematics.
>These were the reasons Pluto chose Adaptec over Symbios for our
>motherboard applications where PCI bandwidth is a critical concern.
>On the SCSI side of things, the built in RISC core has several features
>that reduce DMA overhead and allow DMA prefetch to take advantage of
>spare PCI bandwidth. You can setup background DMAs on the secondard DMA
>channel to prefetch the next command to be serviced, the next block of
>S/G list entries for the current command or other data well before you
>need it so that even on a highly utilized PCI bus, you rarely keep SCSI
>devices waiting.  They really do know how to design hardware.

I find this type of information most helpful in understanding why things are
the way they are. Thank you.

>Now for typical workstation and server workloads where you don't
>have a fully populated PCI bus (Pluto boards can have up to 10
>devices per PCI bus), the Symbios parts should be able to provide
>performance comensurate with those provided by Adaptec.  The only
>factor preventing that, in my opinion, is the structure of the NCR
>driver's firmware.  The format of the firmware, which is the
>concatenation of several 'C' structures of different types, makes
>it extremely difficult to modify unless you understand all of the
>strange alignment restrictions and vagaries of this method.  There
>are known scalability problems in the data structures used to
>represent SCSI transactions in this driver and I have not found
>the time to completely understand how the firmware format to address
>them.  My plan is to write an assembler for the Symbios scripts
>engine so that the firmware is easier to read, modify, and understand.
>At that point, I would expect the Symbios parts to be as well
>supported under FreeBSD as the Adaptec parts.  I don't expect to
>get around to this until late this summer.

There already exists the SCRIPTS assembler that produces C code structures
containing the data as preinitialized arrays. I thought I even saw the source
to it floating around somewhere.  Are you looking to write a better assembler
or just oblivious of the existing one?

I have, in the past, written an assembler for a custom CPU for which I did the
mask layout and design, and I have been looking for a way to contribute to the
project (I am a hardware guy with a lot of software under my belt, but I just
can't seem to wrap my head around the kernel).  Perhaps you could describe what
exactly you are looking for in an assembler and I could work on it for you.

When it comes to SCSI I am a neophyte but I have been reading the Symbios
manuals and looking at the NCR driver lately because there is so much
documentation readily available.

When you do begin to work on the NCR driver, I would be very interested to hear
your broad outline for how you intend to redesign the driver. 
--------
Christopher R. Bowman
crb@ChrisBowman.com
http://www.ChrisBowman.com/


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-scsi" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199905271847.OAA07996>