From owner-freebsd-hackers Mon Dec 4 11:54:34 1995 Return-Path: owner-hackers Received: (from root@localhost) by freefall.freebsd.org (8.6.12/8.6.6) id LAA26308 for hackers-outgoing; Mon, 4 Dec 1995 11:54:34 -0800 Received: from Sysiphos (Sysiphos.MI.Uni-Koeln.DE [134.95.212.10]) by freefall.freebsd.org (8.6.12/8.6.6) with SMTP id LAA26224 for ; Mon, 4 Dec 1995 11:51:35 -0800 Received: by Sysiphos id AA00437 (5.67b/IDA-1.5 for hackers@freebsd.org); Mon, 4 Dec 1995 20:49:32 +0100 Message-Id: <199512041949.AA00437@Sysiphos> From: se@zpr.uni-koeln.de (Stefan Esser) Date: Mon, 4 Dec 1995 20:49:32 +0100 In-Reply-To: Jerry.Kendall@vmicls.com (Jerry Kendall) "Re: PCI probe problems." (Dec 4, 11:15) X-Mailer: Mail User's Shell (7.2.6 alpha(2) 7/9/95) To: Jerry.Kendall@vmicls.com (Jerry Kendall) Subject: Re: PCI probe problems. Cc: hackers@freebsd.org Sender: owner-hackers@freebsd.org Precedence: bulk On Dec 4, 11:15, Jerry Kendall wrote: } Subject: Re: PCI probe problems. } > There are too many systems with non-compliant chipsets (Compaq being } > the worst, IMHO), and the PCI bus probe code contains many special } I have been using FreeBSD 2.0.5R with a Pentium 75 board based on the } Triton Chipset, Will this PCI problem prevent me from upgrading to } 2.1.0R ???? No. The code in both 2.1R and -current runs on just about every hardware. There are a few very exotic chip sets, that violate may ever smaller expectations on compliance to the PCI-2.0 configuration register access rules. Your Triton will work! The problem is, that the PCI specs define a behaviour, that makes it easy to test for the presence of a PCI chip set without risk of damage done to a non-PCI system. But there are so many violations to these part of the specs, that it is in fact not possible to distinguish between PCI and EISA chip sets, which possibly have registers at the same port addresses. The code in 2.1R contains several additional tests to make sure an EISA system doesn't get taken for a PCI system (which would most likely make it crash when the kernel attempts to scan the assumed PCI bus), but since the PCI rules are not always followed by the chip sets, it is possible that a PCI system is not recognized as such without special coding. } BTW: What does IMHO(mentioned above) meaan ???? Compaq has a long tradition of needing special case code in the kernel. When I asked about the lack of compliance to the PCI rules in the PCI-SIG mailing list, some Compaq employee replied, that they in fact didn't bother to implement the hardware according to the spec on which my probe code relied. They didn't consider this a problem, since DOS/Windows use the information supplied by the BIOS, and the BIOS knows all the details about their hardware configuration. This is not a general solution, though. It's not easily possible to detect a Compaq as such (at least not before the PCI bus has been successfully probed), and there are many old PCI BIOS versions, which crash when 32bit accesses are tried. Since this would pose the risk of even MORE hardware not being supported by FreeBSD, I did not yet try to solve the problem by BIOS accesses. These will fail on many old systems, and it is easier to compensate for broken chip sets, than for broken BIOS code ... I have been considering to just scan for a PCI BIOS signature, but to not do any actual PCI BIOS calls. The existance of a PCI BIOS ought to guarantee that there actually IS a PCI bus in that system, and the probe code need not be worried to corrupt some unrelated chip set registers when do the PCI bus scan. But for now, I really want to get a verbose boot message log for all systems that make the PCI bus detection code fail under 2.1R or -current, and I'll put in further special cases to work around the hardware deficiencies ... PCI is a very good idea, but what did you expect to be the result if it gets into contact with PC compatible systems ? :( Regards, STefan -- Stefan Esser, Zentrum fuer Paralleles Rechnen Tel: +49 221 4706021 Universitaet zu Koeln, Weyertal 80, 50931 Koeln FAX: +49 221 4705160 ============================================================================== http://www.zpr.uni-koeln.de/~se