Identifying unknown PCI devices

If I ever want to identify unknown device installed in a system….

First I’ll attempt to obtain a PCI device ID:

Under Linux, I’ll use lspci.
Under Windows, I’ll use Unknown Devices (And ignore any other piece of software that claims to be called “Unknown Device Identifier”, and that was stolen from Mike Moniz
Under MacOS X, I’ll use system_profiler
Under Solaris, I’ll use /usr/X11/bin/scanpci -v

Then I’ll reference the PCI device ID with the Canonical list of PCI device IDs from Craig’s site.

At that point I can grep the pcidevs.txt, and learn exciting things.
For example, suppose I wonder what an unknown device in a PowerMac G5 is.

From system profiler I know this:

pci8086,1012:

  Type:	Ethernet Controller
  Bus:	PCI
  Slot:	SLOT-3
  Vendor ID:	0x8086
  Device ID:	0x1010
  Subsystem Vendor ID:	0x8086
  Subsystem ID:	0x1012
  Revision ID:	0x0001

So I do a bit of grepping:

stany@gilva:~/Desktop[01:54 PM]$ grep V.*8086 pcidevs.txt 
V       8086    Intel Corporation
stany@gilva:~/Desktop[01:54 PM]$ grep ^S.*1012 pcidevs.txt 
S       1012    SiS650 GUI 2D/3D Accelerator
S       1012    DFE-580TX 4-Port Server Adapter
S       1012    PRO/1000 MT Dual Port Server Adapter
S       1012    PRO/1000 MF Dual Port Server Adapter
S       1012    PRO/100 S Server Adapter (D)
S       1012    PRO/100 S Server Adapter (D)
S       1012    Realtek AC'97 Audio
S       1012    Intel USB 2.0 Enhanced Host Controller
S       1012    PRO/Wireless 3945ABG Network Connection
stany@gilva:~/Desktop[01:54 PM]$ grep ^D.*1010 pcidevs.txt 
D       0020    LSI53C1010-33 PCI to Dual Channel Ultra160 SCSI Multifunction Controller
D       0021    LSI53C1000/1000R/1010R/1010-66 PCI to Ultra160 SCSI Controller
D       1010    SST-128P Adapter
D       1010    Duet 1S(16550)+1P
D       1010    C101/PCI Super Sync Board
D       1010    82546EB Dual Port Gigabit Ethernet Controller (Copper)
D       0003    SG1010 6 Port Serial Switch & PCI to PCI Bridge
stany@gilva:~/Desktop[01:54 PM]$ 

(V stands for Vendor, S for subsystem and D for device ID)

So logic would imply that this is an Intel Corporation PRO/1000 MT Dual Port Server Adapter, specifically 82546EB Dual Port Gigabit Ethernet Controller (Copper).

An excercise for the reader is to identify the following device:
pci bus 0x0006 cardnum 0x04 function 0x00: vendor 0x1106 device 0x3044

VIA Technologies Inc VT6306 VIA Fire II IEEE-1394 OHCI Link Layer Controller