Return to BSD News archive
Newsgroups: comp.os.386bsd.misc Path: sserve!newshost.anu.edu.au!harbinger.cc.monash.edu.au!msuinfo!agate!tfs.com!julian From: julian@tfs.com (Julian Elischer) Subject: Re: AH2840 VL Message-ID: <CuHqwL.1wH@tfs.com> Organization: TRW Financial Systems, Oakland, CA References: <32a3od$1ab@urmel.informatik.rwth-aachen.de> <michaelv.776576696@ponderous.cc.iastate.edu> <32cenr$3bk@u.cc.utah.edu> <CuH2x3.IJ7@world.std.com> Date: Sat, 13 Aug 1994 20:43:33 GMT Lines: 299 In article <CuH2x3.IJ7@world.std.com>, HD Associates <hd@world.std.com> wrote: >In article <32cenr$3bk@u.cc.utah.edu>, >Terry Lambert <terry@cs.weber.edu> wrote: >>In article <michaelv.776576696@ponderous.cc.iastate.edu> michaelv@iastate.edu (Michael L. VanLoon) writes: > >(the ordinary Adaptec question) > >>How about 2 glimmers? >> >>1) There's an Alpha AHA2740 (also an AIC7770) driver for Linux >> in the Alpha directory on sunsite.unc.edu. The difference is >> the AHA2840 is a VLB card (not that much difference -- the >> dirver "should work for the 2840" according to the authors. yes and there are some people from freeBSD who are keeping in contact with them I believe. >> >>2) You don't need to sign non-disclosure to use the default >> microcode in these things (once again, people, ask yourselves, >> if it doesn't have any microcode until you put it there, how >> the hell can DOS boot from it?). You just need to get docs >> for the default stuff (available). No, but it's next to useles for us .... consider: The default ucode is only run by the default BIOS code (From the EPROM). the two need to be in sync with each other, but Adaptec have taken great pains to point out that THEY RESERVE THE RIGHT to CHANGE the ucode interface specification at any time. (Obviously they would chyange the BIOS code at the same code, but WE would get screwed, because we wouldn't have had the change..... This is why they want you to sign non-disclosure for the specs to the "HIM" layer of software, which will NOT change, but is loaded onto the PC as part of the driver. The top interface of the HIM layer will remain constant but the bottom, that interfacces to the ucode will change as required to match the ucode (which it will probably download to the board to ensure that it matches).. > >I thought about option 2 the first time I saw you propose it and >consider it high risk. I agree for reasons given above. the best aproach is to right our own HIM and ucode pair, that we can download and thus ensure a matching pair.. of course, different scsi cards from adaptec will probably require differnt ucode......... (Adaptec will say "WE TOLD YOU SO.. RUN SCO" > >>From Adaptec's point of view, all the base microcode needs to do is >boot DOS. Given their history of declining to fix buggy microcode if >they don't see a large enough market, I wouldn't want to be off working >in that little corner of their software (I can hear tech support now: >"You mean you are using the bootstrap microcode??!!?!?!", or even more >likely the mantra "You need to download the microcode... You need to >download the microcode..."). I agree, and even if you DID load the new ucode, they've probably changed the interface top it... the HIM/ucode is a pair, and the non-disclosure is for the pair of them..(mainly the HIM) (Hardware Interface Module) > >Possible problems include no sync negotiation, boggled >disconnect/reconnect, and almost anything else that isn't involved with >slowly reading the boot image off disk. I concur, it's a MESS and they should be ashamed. > >Peter >-- julian Here is an article I posted bofore on the topic.. terry, have a read through this.. I hope it makes the issue a little clearer.. ============================================Start inclusion=============== Many people have asked me when (or if) I would write a driver for the adaptec 2740 family of boards. In response to this I have been trying for 4 weeks to get information from the folks at adaptec. today, I got some.. This basically sums up why you will probably not see a driver for this board for any of the free Operating systems.. (unless someone does something pretty fancy) After the excerpt, I discuss a few points ============cut here for excerpts from adaptec information========== Programming directly to AIC-7770 based adaptec products. What developers need to know. Introduction This year Adaptec introduced the AIC-7770 chip. It is a RISC-based EISA-to-Fast-SCSI host adapter on a chip, used on the AHA-2740 series host adapters as wellas the AHA-28xVL host adapters. [.....] The AIC-7770 chip on the AHA-2740 series and AHA-284xVL products uses a new firmware architecture. Rather than the firmware residing directly on the board, it has now moved to the "Hardware Interface Module" or "HIM", a new software layer. See Figure 1 for an illustration of the new firmware architecture. Figure 2 illustrates how the old architectural components map to the new ones. Figure 1: [ ] [ ] [ ] [ device driver ] [ device driver ] [ device driver ] [ ] [ ] [ ] =============================================================== ASPI layer [ O/S Specific Module ] [ (OSM) ] ------------------------------------------------------- [ Hardware Interface Module ] [ (HIM) ] =============================================================== Sequencer I/F [ ] [ AIC-7770 ] [ ] =============================================================== SCSI BUS Figure 2: AHA 154x/AHA174x Model AIC-7770 Model [ ] [ ] [ ][ ][ ] [driver ] [driver ] [driver ][driver][driver] [ ] [ ] [ ][ ][ ] ASPI ======================= ASPI ======================== [OS Specific driver] [ OSM ] Board i/f====================== ------------------------ [ Firmware ] [ HIM ] [ ] ======================== [ ] [AIC-7770] SCSI ======================== SCSI ========================= So rather than developing software drivers directly to the board where an understanding of the hardware technical reference manual was required, developers may now program the driver software to the HIM. Thus, you now need a HIM specification to program your software driver or "OSM", and you also need the HIM source code, for compiling purposes only. The sources code is needed becasue the HIM is a library module, rather than a run-time interface. Therefore, you must compile it with your OSM source code to create the final driver object code. The HIM code is written in ANSI C to make porting as easy as possible. "How do I know if I need the HIM source code?" If you can program to the ASPI specificatrion instead - to isolate you from all hardware issues - we strongly recomend that you do so. Also, if the operatinf system you are programming for has an "ASPI-LIKE" interface or protocol, we strongly recommend you use it. Only of you fall into the following categories do you need to proceed with developing to the HIM. [] You are developing a driver for AIC-7770 based host adapters for an Operating system. [] You are developing an application which needs access to a SCSI feature for enhanced functionallity or performance not available through ASPI or a similar interface. "I need HIM information, What next..?" 1/ Complete the HIM request form as completely as possiboe and fax it to (408)957-7181 Attn HIM relations. 2/ We will provide HIM documentation and Software in a BREAK-THE SEAL envelope with the licence agreement printed on the outside which has the following terms: [] Grants you the right to use the HIM source code for compiling purposes only (no modifications) and restricts you from distributing the sources code. [] grants you the right to distribute the HIM in Object code form only and only in combination with your software [] States that title to the HIM software remains with Adaptec. [] Clarifies that Adaptec won't provide support for the software you write or the combined software which you create in combination with the HIM source code. [] Treats the HIM source code and all related documentation as Adaptec confidentual [] States that the HIM software is provided "AS IS" [] Specifies an initial term of one year with automatic one-year renewal periods. Someone in your company who can bind your company to the terms of the agreement must be the one to open the envelope. While Adaptec cannot obligate itself legally to providing updates to or support on the HIM, returning the request form as complete as possible will help us ensure you get the information and assistance you need to do your development. We realise that it is i adaptec's best interest for you to be successful in you development efforts. 3. We will also send you the following items: [] 2740 series tech reference manual [] 2840 tech reference manual [] Adaptec Compatibility Advantage program brochure and application [] Notice of completion [] AIC-7770 programming considerations. [ Marketting rubbish deleted to save my fingures] "What about future Adaptec products? Will my HIM development now save me time down the road?" The HIM specification and source code are specific to a given host adapter chip. Think of it as analogous to the firmware on the board under the previous hardware design. Hence, just as you needed to program directly to the firmware on the board, so also you are programming directly to the HIM for a given chip. The good news is that if we use a given chip on more than one board, your HIM development for that chip is leveraged across the other boards. So, with the AIC-7770 based HIM, your development efforts can be used to create software for both the AHA-2740 series and the AHA28XVL boards. Future Adaptec integrated I/O products will use this HIM model, although new chips may necessitate new HIMs. [trash deleted] "Is there an upcoming change to the AIC-7770 that I need to consider?" Yes, we are introducing a new version of the AIC-770 shortly called rev.E which results in a new version of the HIM source code and some changes to the HIM specification. In conjunction with support for rev. E, we have also enhanced the HIM to offer better performance in heavily loaded system environments. Performance improvements... (bla bla) {bla bla continued)... Note: any software you develop to the HIM specification we can deliver to you immediatly will be compatible with the AIC-770 rev E chip when it is available. Programming to the new HIM specification is not a necessity. ================end of extract=============== The way I read this.. I cannot publish the drivers in any meaningful way that makes sense in a "source code distribution" OS like 386bsd or linux. It's also doubtful that adaptec would let me, as an individual let me have this information anyhow. So I can't see a driver for this board appearing real soon. Some people may be able to get specs for the chip and board directly, but it seems unlikely to me from my discussions today, as they suggested that this information was all hush hush too. If they do, then maybe a PD driver can be written to bypass the HIM rubish. Unfortunatly, they will probably feel free to change the hardware interface without warning, as they feel they have protected themselves from this if they can hide this in their HIM code.. So If I bypass the HIM code , we cannot be sure our code will always work. Even using the HIM.. If we change boards in a machine, if we cannot guearantee that the driver we have on the machine was linked with the exact version of the HIM that was meant for that revision of the board, we cannot be sure that our driver will work at all, even if we DO use their HIM. (in the present system, the firmware cannot become separated from the hardware) (easily) In general, I repeat my previous comments about adaptec needing their head read. They say it's because they have patentable ideas.. and That sounds like total BS.. What on EARTH could they have that's so brilliant, that they have to keep it so secret.. It's only a scsi controller dammit. If their AIC7770 is so marvelous (I think it's just a sequencer) that it needs to be kept a secret, then why do they sell it? end of rave +----------------------------------+ ______ _ __ | __--_|\ Julian Elischer | \ U \/ / On assignment | / \ julian@tfs.com +------>x USA \ in a very strange | ( OZ ) 300 lakeside Dr. oakland CA. \___ ___ | country ! +- X_.---._/ USA+(510) 645-3137(wk) \_/ \\ v