Subject: Re: install problems with pci
To: Jason Thorpe <thorpej@nas.nasa.gov>
From: Chris G Demetriou <Chris_G_Demetriou@ux2.sp.cs.cmu.edu>
List: port-i386
Date: 07/08/1996 16:16:43
>  > During the device scan some of the PCI-related messages are:
>  > 
>  > pci0 (root): configuration mode 1
>  > pci0 bus 0 device 0: unknown vendor/product: 0x8086/0x1250
>  >   (class: bridge, subclass: host, revision 0x01) not configured
>  > pci0 bus 0 device 16: unknown vendor/product: 0x5333/0x8811
>  >   (class: display, subclass: VGA, revision 0x43) not configured
>  > pci0 bus 0 device 18: unknown vendor/product: 0x104b/0x1040
>  >   (class: mass storage, subclass: SCSI, revision 0x08) not configured
> 
> Ok ...
> 
> The first one is the PCI->CPU bridge, a.k.a. your "PCI Chipset".  The 
> reason it's "not configured" is because NetBSD doesn't have a 
> machine-independent driver for it.  But, that's ok, because the i386 port 
> doesn't need one; the BIOS deals with all of that stuff.  The Alpha port 
> would correctly recognize it, and attach a driver to it, since the Alpha 
> port has to frob with the PCI "manually".

This explanation is wrong on most of the important points.

(1) The notion of having a PCI Host Bus Bridge be machine-independent
    is stupid; they're inherently built to do the right thing for a
    given CPU (or family of CPUs with a common set of bus interface
    signals).

(2) The BIOS does _not_ necessarily deal with "all of that stuff,"
    e.g. there have been several intel PCI Host Bus Bridge which
    have included ... brokenness not fixed by the bios...  e.g. here
    in one of my mailboxes I have some source written by Matt Thomas
    (dated August 7, 1995), which includes the comments:

    /*
     * This driver is a kludge for resolving the problems of DMA underflows
     * and overruns in PCI machines which use the Saturn chipset.  In the
     * Saturn DCD chip (82424) or in PCMC chip (82434) there is a CPU-PCI
     * posting enable bit.  When set (default by most BIOSes for better ISA
     * bus benchmarks) it affects PCI busmasters and causes long latencies
     * which can make PCI devices drop/corrupt data.
     */

    Unless i'm mistaken, both of those a PCI Host Bus Bridges.

(3) The Alpha port would be ... rather seriously confused if it saw
    an PCI Host Bus Bridge for an x86 chip, and certainly wouldn't
    recognize it...  Such a hardware combination wouldn't work in any 
    meaningful way.

    There are PCI Host Bus Bridge chipsets for the Alpha, e.g.
    the 2107[12] chipset and the 21171 chipset.  However, they don't
    show up in PCI device space.    


> The second one is your PCI VGA card ... don't worry about it, either.  
> The BIOS configures it to act like a "regular ISA VGA card".

Right, but it's stupid and wrong for the operating system to ignore
the extra information that the PCI card can provide.  For instance,
the PCI card can tell you where and how much non-I/O-hole memory space
the card provides, etc., so that mmap() can be properly implemented.


The end conclusion, that the messages are not really indicative of
problems is mostly true, at least for people who don't have broken PCI
Host Bus Bridges and for people who don't care what memory the X
server has access to...


cgd