From owner-freebsd-current Thu Mar 7 08:46:10 1996 Return-Path: owner-current Received: (from root@localhost) by freefall.freebsd.org (8.7.3/8.7.3) id IAA20605 for current-outgoing; Thu, 7 Mar 1996 08:46:10 -0800 (PST) Received: from phaeton.artisoft.com (phaeton.Artisoft.COM [198.17.250.211]) by freefall.freebsd.org (8.7.3/8.7.3) with SMTP id IAA20600 Thu, 7 Mar 1996 08:46:07 -0800 (PST) Received: (from terry@localhost) by phaeton.artisoft.com (8.6.11/8.6.9) id JAA14037; Thu, 7 Mar 1996 09:41:17 -0700 From: Terry Lambert Message-Id: <199603071641.JAA14037@phaeton.artisoft.com> Subject: Re: 2842 and the disappearing file-system :-( To: gibbs@freefall.freebsd.org (Justin T. Gibbs) Date: Thu, 7 Mar 1996 09:41:16 -0700 (MST) Cc: terry@lambert.org, imb@scgt.oz.au, stable@FreeBSD.ORG, current@FreeBSD.ORG In-Reply-To: <199603062342.PAA10384@freefall.freebsd.org> from "Justin T. Gibbs" at Mar 6, 96 03:42:39 pm X-Mailer: ELM [version 2.4 PL24] MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Sender: owner-current@FreeBSD.ORG Precedence: bulk > >> How are they kludged? I haven't seen a single report of eisaconf > >> without detected devices causing problems in a system. Furthermore, > >> if you don't have a 2842 or and eisa machine, you can disable the > >> eisa0 device in your config file. If you do have a 2842, you'd > >> have to read the same bytes of the I/O address space, so it buys > >> you nothing to have a separate probe for it. > > > >Maybe I'm missing something. > > I would guess you didn't even look. Have you looked at eisaconf.c? > or aic7770.c? You have guessed wrong (don't worry, this is the usual guess, and it's usually wrong). > >Why do you have to have a seperate probe? > > RTSL The *WORST* you would *POSSIBLY* need is an EISA nad an ISA stub routine. I *STILL* do not think EISA ID's should be looked for if the system doesn't claim to be an EISA bus. We have *one* example if an EISA/VLB driver where this, through the savings in code necessary to abstract the differences between the EISA and ISA configurations (which should be the same interface anyway). And that example is causing problems for people. > >Why can't you use the same probe routine address in two "driver instances"? > > Eisaconf doesn't work that way at all. You are (intentionally?) missing the point. > >And wouldn't this fix the interrrupt attach problem introduced by the > >eisaconf code in the VLB Adaptec case? > > Because the bug wasn't even in eisaconf. It was in i386/isa/isa.c. 8-P. > >You keep saying you need to duplicate cade -- I don't see it. I see > >that there is a need to duplicate ~32 bytes of data structure to get > >an EISA and non-EISA device instance. Tell me why Im wrong... > > Right now the code for dealing with the 2842 and the 2742 is one > and the same. To do what you propose would mean adding an isa probe > and doing the same looping through the slots that the eisaconf code does > already, although the 2842 probe would have to do it once for each > card probe instead of just creating the device nodes once like the > eisaconf code does. There is simply no reason to break the probe up. > It only adds complexity and code. 1) The ISA code, unless it's PnP, can't distinguish slots, so it would have a damn hard time requiring looping through them. 2) This is a VLB card, not an ISA card. I would not suggest calling the probe from ISA any more than I would suggest calling it from EISA. It is *NOT* an EISA device. 3) The ISA code needs to "create device nodes" in a similar fashion to EISA for PnP. This is a case of confusing ISA devices that can be mapped by a configuration manager with those that can't. Read the Microsoft PnP document. What I suggest is calling the probe in multiple locations with two stub routines: one EISA for eisaconf and one VLB (ISA, barring a fixed handling of VLB). If you want to call this "adding an ISA probe", fine. It's nowhere near the same order of effort as doing that, IMO. I can't fault you on the complexity argument: it will add a bit of logical complexity in the process of providing a logical abstraction. On the other hand, the abstraction can be made orthoganal so that it is easier to document and program to for other devices that can then seperate PnP mapping from driver attachment (substituting ISA PnP for probing in the same way eisaconf substitutes slot iteration for probing), so it seems like an acceptable tradeoff to me. Regards, Terry Lambert terry@lambert.org --- Any opinions in this posting are my own and not those of my present or previous employers.