Subject: Re: Compaq Deskpro 5/90XL with NetBSD 1.1?
To: None <perry@piermont.com>
From: Daniel Carosone <dan@anarres.mame.mu.oz.au>
List: current-users
Date: 12/02/1995 12:53:01
> > If anyone wants to fill in some of the "unknown vendor/product" bits,
> > there is a (nearly) complete list of PCI vendor/product codes at
> > <URL:http://www.halcyon.com/htbin/pcicode>.
> 
> That would be double plus cool for someone to do!

Hmm. On the surface, yes. I sure don't like the current messages as
they stand, especially the use of the word "unknown" which causes many
people to think that the kernel won't support their devices. However:

  . How large is this list?
  . Do we want it linked into the kernel, hanging around the whole
    time, just to print a pretty message at boot?

I admit the messages could even be rather useful, when first
installing on a machine, to identify things. For this purpose, perhaps
the strings can be optionally linked into an install kernel, or
better, a postprocessor for dmesg/msgbuf output could be written.

It's a real pity the devices can't store the strings themselves, to be
printed, as well as the device/type codes for automatic recognition.

The real problem, for a lot of the devices, is that the current PCI
code pretends that the "common" devices like video cards, and so on,
are just like the ISA ones. (This is encouraged by the fact that the
cards do too).

As for the messages, which of the following two formats, which contain
the same information, is likely to cause the most worry amongst a
first-time user?

pci0 bus 0 device 0: unknown vendor/product: 0x1039/0x0406 (class: bridge, subclass: host, revision: 0x00) not configured
pci0 bus 0 device 1: unknown vendor/product: 0x1039/0x0008 (class: bridge, subclass: ISA, revision: 0x00) not configured
pci0 bus 0 device 12: unknown vendor/product: 0x1095/0x0640 (class: mass storage, subclass: IDE, revision: 0x02) not configured
pci0 bus 0 device 13: unknown vendor/product: 0x5333/0x8811 (class: display, subclass: VGA, revision: 0x00) not configured

or

pci0 bus 0 device 0: host bridge, vendor/product 0x1039/0x0406 (unknown), revision 0x00: no special driver
pci0 bus 0 device 1: ISA bridge, vendor/product 0x1039/0x0008 (unknown), revision 0x00: no special driver
pci0 bus 0 device 12: IDE mass storage, vendor/product 0x1095/0x0640 (unknown), revision 0x02: no special driver
pci0 bus 0 device 13: VGA display, vendor/product 0x5333/0x8811 (unknown), revision 0x00: no special driver

This looks a lot less like an error message. We tell the user that we
recognise what the device is, but don't recognise the vendor/product,
and don't have a special driver for it. This lets us reserve the "not
configured" message for devices we really don't know how to handle. 

Basically, until the PCI architecture is revamped to let (eg) wdc0 be
found on pci0 rather than isa0, we keep a list of {class,subclass}
pairs that we know will fall through to the ISA drivers, and change
the "not configured" to "no special driver" (or some other cheesy
not-so-nasty looking message). The ISA probes will already have found
them, and print their messages to reassure the user that they have
been found.

For pci devices that *are* recognised, the vendor/product might be
filled in, and the end of the message is either blank or prints the
name of the driver (ncr0, etc). 

--
Dan.