Date: Thu, 27 Aug 1998 17:06:20 -0700 From: Jason Thorpe <thorpej@nas.nasa.gov> To: Mike Smith <mike@smith.net.au> Cc: Terry Lambert <tlambert@primenet.com>, tony@dell.com, wpaul@skynet.ctr.columbia.edu, chuckr@glue.umd.edu, hackers@FreeBSD.ORG Subject: Re: PCI devices Message-ID: <199808280006.RAA02540@lestat.nas.nasa.gov>
next in thread | raw e-mail | index | archive | help
On Thu, 27 Aug 1998 14:57:26 +0000 Mike Smith <mike@smith.net.au> wrote: > > Then the OS sucks. > > Or perhaps it's just designed only to run on PnP systems. ...you guys really need to make a distinction between "PnP" (e.g. ISA PnP) and direct configuration (e.g. what EISA, PCI, PCMCIA, and CardBus has). > > A nominally "PnP OS" that can't talk to "PnP cards", isn't very "PnP". > > It may not support ISA PnP. Please don't call them "PnP cards"; PCI > cards are PnP cards, PCCARD cards are PnP cards. Not really.. the bus they live on uses direct configuration, as opposed to indirect configuration (e.g. ISA, VME). That is to say, the devices are self-describing in a well-known way, and it is possible to determine where the device is mapped. Indirect configuration requires hints to look for devices. PnP is a hack to try and make ISA have direct configuration. It's pure evil, but I'm sure everyone here realizes that already. The new "PnP OS" BIOS option is a total crock. Basically, what it does is, if set, doesn't do ANY configuration of ISA PnP or PCI, which, at least in the context of PCI, is TOTALLY BROKEN. The PCI spec is clear that it is the system firmware's job to configure the PCI bus (i.e. map all of the devices and route their interrupts). It is unfortunate that BIOS vendors are overloading the term "PnP" to apply to PCI as well. To restate that: PCI SHOULD ALWAYS BE CONFIGURED BY THE BIOS (firmware) REGARDLESS OF THE SETTING OF "PnP OS". Sorry to shout, but this is a major issue, and something I'm quite miffed at vendors about for botching royally. NetBSD's PnP code doesn't require the presence of a PnP BIOS. It performs the PnP configuation process on its own. I.e. it is a "PnP OS". However, because of the BIOS's broken notion of "PnP", NetBSD still requires that that option be set to FALSE so that the firmware will do its job and configure the PCI bus, like it's supposed to. Of course, when our PnP code goes and resets all of the PnP devices, you will lose if you already have attached them as normal ISA devices. So, we work around this by issuing a PnP reset before doing any ISA device probes, if PnP support is configured into the kernel. In a perfect world, all busses would be direct config, and none of this would be an issue, because you could simply reserve the space used by an device with no driver, or, such as in PCI, simply choose to not map the device. But, hey, this is PC hardware we're talking about. It's not likely that it'll be reasonably sane any time soon. Jason R. Thorpe thorpej@nas.nasa.gov NASA Ames Research Center Home: +1 408 866 1912 NAS: M/S 258-5 Work: +1 650 604 0935 Moffett Field, CA 94035 Pager: +1 650 940 5942 To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-hackers" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199808280006.RAA02540>