From owner-freebsd-current Thu Mar 7 12:42:45 1996 Return-Path: owner-current Received: (from root@localhost) by freefall.freebsd.org (8.7.3/8.7.3) id MAA06759 for current-outgoing; Thu, 7 Mar 1996 12:42:45 -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 MAA06754 Thu, 7 Mar 1996 12:42:38 -0800 (PST) Received: (from terry@localhost) by phaeton.artisoft.com (8.6.11/8.6.9) id NAA14706; Thu, 7 Mar 1996 13:36:16 -0700 From: Terry Lambert Message-Id: <199603072036.NAA14706@phaeton.artisoft.com> Subject: Re: 2842 and the disappearing file-system :-( To: gibbs@freefall.freebsd.org (Justin T. Gibbs) Date: Thu, 7 Mar 1996 13:36:15 -0700 (MST) Cc: terry@lambert.org, imb@scgt.oz.au, stable@FreeBSD.ORG, current@FreeBSD.ORG In-Reply-To: <199603071805.KAA26152@freefall.freebsd.org> from "Justin T. Gibbs" at Mar 7, 96 10:05:55 am 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 > >> 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). > > Perhaps you read it last night, but you certainly acted as if you > thought eisaconf worked just like isa_configure() in all of your mail > yesturday. I don't thin so, Quickstraw. > >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. > > An eisa and isa stub routine to what? The routine that collects > the IDs? The routine that matches drivers to ids? The routinesx > for irq/ioport, etc registration? It sounds like you want me to > duplicate the probe in aic7770.c, but prepend everything with isa_ > instead of eisa_. All for one card that acts just like an eisa > card? What a waste of code and effort. No; I want a dup of the EISA process in the ISA PnP space so that it's just a case of making a reference to the routines (and *remove* the "eisa_" designations entirely). > Most isa cards don't care about the eisa ids, so why create yet > another interface to them for the few isa cards that do. No matter > your aversion to looking for eisa ids in a non eisa machine, it > will have to happen regardless if you have a 2842 in your machine. > If you don't like it, or don't need it, disable eisa0. That's just the 2842, and it's an ISA driver configuration architecture problem with the ISA code. At the very least, we should admit that looking for EISA stuff on a non-EISA machine is a kludge. [ ... ] > I know of one person who has a conceptual problem with this approach(you). Well, it doesn't seem that many people are thinking in terms of a unified configuration manager ala Windows95 and WindowsNT. I expect the number of people doing so to increase over time as people desire better autoconfiguration out of FreeBSD. > Show me one person experiencing actual failures after appling the > patch I posted yesturday. The number of people running VLB is ver small... you have given me a very restricted search space with your demand. > >You are (intentionally?) missing the point. > > You claim it doesn't add more code by saying I can call the same functions. > I'm saying I can't. How am I missing the point. The point is you *should* be *able* to call the same functions for ISA, and for PnP, which uses non-invasive probing (unless you have an old IBM manufactured parallel port card), you *can*. > >1) The ISA code, unless it's PnP, can't distinguish slots, so it > > would have a damn hard time requiring looping through them. > > You know as well as I do that the eisa slot locations are fixed > at 0xz000 for z 0-16. How do you think the eisaconf code finds the eisa ids? > I don't see how this is relevent (again). This is a *card* problem, not a generic problem resolved for anthing other than the Adaptec card by calling the EISA code. > >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. > > What features does VLB have that make it of any use to differentiate > between VLB and ISA probes? A) Default settings for driver configurable bus-on times, since VLB steals DRAM refresh cycles. VLB on time needs to be agregated and adjusted *down* where necessary. B) Use of bounce buffers on bus mastering VLB cards other than the *one* detected by the EISA probe by virtue of it's "EISA" nature. As you pointed out previously, *yes*, there are broken EISA and VLB DMA for > 16M. If you have a bus master controller already detected, it is possible to determine if DMA needs to be bounced. My approach would be to bounce *all* I/O until it is determined it is safe to not bounce. This is easier than it appears, since you could use an unused field in the disklabel, the root FS header, or some other location that defaults to "0" that says "check for ability to bounce" and gets written to "1" (always bounce, DMA is limited to 16M) or a "2" (don't bounce, DMA is OK above 16M) -- and only triggers if there is more than 16M detected in the machine. This would make the NiCE HiNT chipset EISA's (the only EISA machines where this is a problem) and the VLB machines you noted in a pervious posting *work* instead of *failing* by default. So the DMA argument doesn't support the EISA/VLB probe argument. > >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. > > It does need to create nodes, but does that mean that the ISA code > bperforms a PNP probe and then scans the eisa slot space just to satisfy the > 2842? No. I think it is incorrect to use the EISA slot space mechanism to probe the controller. The probe includes IRQ, DMA, and other info, that unless it's a real EISA card, isn't going to be in the EISA configuration space for VLB... even if such a space exists, the user didn't run the DOS EISA configuration utility for the card to set it. It is at least 75% of the way to an EISA-independent probe. > >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. > > What probe routine? Eisa_match? As I said before, you will have to break it out and provide EISA specific stubs. For ISA, you have to search the allowable space (and that is a data issue, as long as the probe is non-invasive). > >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. > > > > I disagree. With me agreeing with you on the complexity argument? -- I was agreeing with you, reluctantly.. Or with my statement about orthogonality in a configuration management interface? -- If Microsoft can do it in Windows95, anyone can do it. Microsoft programmers are *not* gods. Regards, Terry Lambert terry@lambert.org --- Any opinions in this posting are my own and not those of my present or previous employers.