From owner-freebsd-scsi Thu May 27 11:48:57 1999 Delivered-To: freebsd-scsi@freebsd.org Received: from quark.ChrisBowman.com (crbowman.erols.com [209.122.47.155]) by hub.freebsd.org (Postfix) with ESMTP id B8A13159B8; Thu, 27 May 1999 11:48:46 -0700 (PDT) (envelope-from crb@ChrisBowman.com) Received: from fermion (fermion.ChrisBowman.com [10.0.1.2]) by quark.ChrisBowman.com (8.9.2/8.8.8) with SMTP id OAA07996; Thu, 27 May 1999 14:47:46 -0400 (EDT) (envelope-from crb@ChrisBowman.com) Message-Id: <199905271847.OAA07996@quark.ChrisBowman.com> X-Sender: crb@quark X-Mailer: QUALCOMM Windows Eudora Pro Version 4.0.1 Date: Thu, 27 May 1999 14:46:06 -0400 To: "Justin T. Gibbs" From: "Christopher R. Bowman" Subject: Re: Support for Symbios vs. Adaptect SCSI Cc: freebsd-scsi@freebsd.org, hardware@freebsd.org In-Reply-To: <199905271517.JAA04842@narnia.plutotech.com> References: <199905270156.SAA11635@ryouko.nas.nasa.gov> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Sender: owner-freebsd-scsi@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.org 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