From owner-freebsd-hackers Thu Jan 11 08:29:10 1996 Return-Path: owner-hackers Received: (from root@localhost) by freefall.freebsd.org (8.7.3/8.7.3) id IAA01998 for hackers-outgoing; Thu, 11 Jan 1996 08:29:10 -0800 (PST) Received: from localhost.cdrom.com (localhost.cdrom.com [127.0.0.1]) by freefall.freebsd.org (8.7.3/8.7.3) with SMTP id IAA01989 Thu, 11 Jan 1996 08:29:01 -0800 (PST) Message-Id: <199601111629.IAA01989@freefall.freebsd.org> X-Authentication-Warning: freefall.freebsd.org: Host localhost.cdrom.com [127.0.0.1] didn't use HELO protocol To: Bruce Evans cc: smpatel@wam.umd.edu, freebsd-hackers@FreeBSD.org, hasty@rah.star-gate.com, neil@synthcom.com, terry@lambert.org Subject: Re: PnP problem... In-reply-to: Your message of "Fri, 12 Jan 1996 00:13:41 +1100." <199601111313.AAA13705@godzilla.zeta.org.au> Date: Thu, 11 Jan 1996 08:29:01 -0800 From: "Justin T. Gibbs" Sender: owner-hackers@FreeBSD.org Precedence: bulk >The current order is: > >Probe and init PCMCIA >Probe and init EISA >Probe and init PCI >Probe and init ISA > >and the order in 2.1 was: > >Probe and init EISA This was a no-op in 2.1 since no drivers were supported by the old eisaconf code. >Probe and init ISA >Probe and init PCI > >>The only reason its in that order now is so that PCI/EISA devices that >>have an ISA compatibility mode are found by the PCI/EISA probes first. >>Neil's approach is more along the lines of how it should be, and the EISA >>code at least was written thinking that the attach of devices wouldn't >>necessarily follow the probe. > >Hmm. How do the ISA probes avoid rediscovering PCI/EISA devices? What >happens if there is a "bt0 at isa?" (as specified in the config) on the >ISA bus and another one on the PCI/EISA bus? I think this doesn't work >now. The only driver I know of that had this problem (the bt driver) handles it by keeping a static array of ioaddrs/found information and will not reprobe any conflicts. This should be moved to the configuration manager (as the XXX comments in bt.c say) as there are other adapters like the 3c509 that fall into this category. >If Neil's approach is used then the corresponding problems are: >How does the config manager know that some ISA devices are physically >the same as a PCI/EISA device? How does the config manager assign >minor numbers in the above complicated case involving bt0 and even in >simple cases? Simple. The PCI/EISA probe can tell you exactly where the PCI/EISA cards are in the system. These ioaddrs are removed from the address map the ISA portion of the bt driver presents to the configuration manager as the possible locations it could find a card before it does its probing. In the case of a card that has PnP ISA compatibility, the PnP code would either have to leave the card where it was, or change the PCI/EISA view of where the card is. I wouldn't expect this to ever be the case. >>3) Probe all ISA devices. A probe returns whatever information can >>be obtained non-invasively. ... > >That's almost no information. :-( Depends on the card. >>If a driver can't determine the I/O port, >>for example, it returns a map of all possible ports. > >0-0x3ff :-). I think ISA probes will have to be just as invasive as >now except they will be able to be more careful about clobbering >previously probed devices thanks to the more complete resource maps. Most cards I've used have at most 5 different port addresses a user can set. Some probes are non-invasive (only do reads), and these probes can return valuable information that reduces the number of possible conflicts during attach time. The point is that if you have good communication of all the information you know for sure about the system (from PCI/EISA and non-invasive ISA probes), then the likelyhood of something like the GENERIC kernel working for Joe user increases dramatically. >Bruce -- Justin T. Gibbs =========================================== FreeBSD: Turning PCs into workstations ===========================================