PCI.EXE: A powerful sniffing utility

By OS2Warp.be

PCI.EXE, also know as Merlin's PCI Hardware Sniffer, is a utility that basically produces a report of the AGP and PCI devices that are present in a PC, including the system chipsets, and besides that a whole range of other valuable information is reported such as system resource usage (IRQs, Memory ranges, etc), capabilities (busmastering, caching), and much much more. A text-file PCIDEVS.TXT lists thousands of known vendors, devices and subsystems, which PCI.EXE will refer to and display the info from. PCI.EXE covers all PCI device derivitives, including PCI 64-bit and 66MHz options, AGP (all speeds), CompactPCI, CardBus and PCI-X. The reason os2warp.be is so fond of the PCI.EXE utility for the purpose of Support Services is because it gives us a clear look at how your computer is configured (IRQs, configuration, devices, chipsets etc.). Most of the time, PCI.EXE allows us to find out which chipsets are embedded on devices in your computer, making use of only two numerical hexadecimal values: vendor and device ID. The former is a four-digit number that specifies the manufacturer of the device. The latter specifies the chipset itself. Based on all this overwhelming amount of information pci.exe offers, we can have a clear view of the state your computer is currently in.

You can download pci.exe from os2warp.be at this url: http://www.os2warp.be/os2/hardware/pci048vk.zip.

You can launch pci.exe with several switches. For a complete list of all switches available, launch pci.exe with the switch /?. In what follows, we will talk about the two pci.exe commands that are of importance for os2warp.be Technical Support:

1. PCI.EXE /S
The screenshots below illustrate what this command displays on the screen. The /S switch is short for Summary Mode. When posting support requests at http://www.os2warp.be/support/, you must include the output of this command in the field provided for it. For each record in the output, you will be able to distinguish one or more lines containing vital information about your computer:


 * 1) The first line displays the hexadecimal Vendor ID, followed by the name of the Manufacturer;
 * 2) The second line displays the hexadecimal Device ID, followed by the official name of the device, if the device is included in the PCIDEVS.TXT file. If a particular device is not included, pci.exe will only display the Device ID and/or guess the name of a device. If a guess is made, pci.exe will report this clearly;
 * 3) Third and fourth line display additional ID information, which is only of interest for Technical Support, and not for the regular OS/2 user;
 * 4) And finally, the fifth line displays the system (OS/2) IRQ, followed by the hardware IRQ.











And completely at the end of the PCI.EXE report, you can see the IRQ usage. This is very interesting to resolve any possible IRQ conflicts to to sharing them. The pci.exe IRQ reporting is far superior over the classic OS/2 command rmview /irq, since, the latter sometimes fails to report multiple devices using the same IRQ. For each device, pci.exe shows both software and hardware IRQs. However, in the list at the end of the pci.exe output, only the software IRQs are displayed.

2. PCI.EXE
And this is the pci.exe output in full mode (produced by command pci.exe from an OS/2 Command Prompt):

Craig Hart's PCI+AGP bus sniffer, version 0.48vk, freeware made in 1996-2003.

PCI BIOS Version 2.10 found! Number of PCI Busses : 3 PCI Characteristics : Config Mechanism 1 Special Cycle Mechanism 1

Searching for PCI Devices using the OEMHLP$ driver

Vendor 8086h Intel Corporation Device 1A30h 82845MP Brookdale Host-Hub Interface Bridge (B0-step) Command 0006h (Memory Access, BusMaster) Status 2090h (Has Capabilities List, Supports Back-To-Back Trans., Received Master Abort, Fast Timing) Revision 04h, Header Type 00h, Bus Latency 00h Self test 00h (Self test not supported) PCI Class Bridge, type PCI to HOST Subsystem ID 1A308086h Unknown (Generic ID) Subsystem Vendor 8086h Intel Corporation Address 0 is a Memory Address (anywhere in 0-4Gb, Prefetchable) : E8000000h New Capabilities List Present: Vendor-Dependant Capability AGP Capability, Version 2.0 (AGP 4x and below support) AGP Speed(s) Supported : 1x 2x 4x FW Transfers Supported : Yes >4Gb Address Space Supported : No   Sideband Addressing Supported : Yes Maximum Command Queue Length : 32 bytes AGP Speed Selected : 4x FW Transfers Enabled : Yes >4Gb Address Space Enabled : No   AGP Enabled : Yes Sideband Addressing Enabled : No   Current Command Queue Length : 1 byte

Vendor 8086h Intel Corporation Device 1A31h 82845 Brookdale Host-AGP Bridge (B0-step) Command 0107h (I/O Access, Memory Access, BusMaster, System Errors) Status 00A0h (Supports 66MHz, Supports Back-To-Back Trans., Fast Timing) Revision 04h, Header Type 01h, Bus Latency 40h Self test 00h (Self test not supported) PCI Class Bridge, type PCI to PCI PCI Bridge Information: Primary Bus Number 0, Secondary Bus Number 1, Subordinate bus number 1 Secondary Bus Command 000Eh (ISA mapping, VGA mapping) Secondary Bus Status 22A0h (Supports 66MHz, Supports Back-To-Back Trans., Received Master Abort, Medium Timing) Secondary Bus Latency 20h I/O Port Range Passed to Secondary Bus : None Memory Range Passed to Secondary Bus : EC000000h to EDFFFFFFh Prefectchable Memory Range Passed to Secondary Bus : E0000000h to E7FFFFFFh

Vendor 8086h Intel Corporation Device 244Eh 82801BA Hub Interface to PCI Bridge (ICH2 B5 step) Command 0107h (I/O Access, Memory Access, BusMaster, System Errors) Status 0080h (Supports Back-To-Back Trans., Fast Timing) Revision 05h, Header Type 01h, Bus Latency 00h Self test 00h (Self test not supported) PCI Class Bridge, type PCI to PCI PCI Bridge Information: Primary Bus Number 0, Secondary Bus Number 2, Subordinate bus number 2 Secondary Bus Command 0006h (ISA mapping) Secondary Bus Status 2280h (Supports Back-To-Back Trans., Received Master Abort, Medium Timing) Secondary Bus Latency 20h I/O Port Range Passed to Secondary Bus : 9000h to AFFFh (16-bit) Memory Range Passed to Secondary Bus : EE000000h to EFFFFFFFh

Vendor 8086h Intel Corporation Device 2440h 82801BA LPC Interface (ICH2 B5 step) Command 000Fh (I/O Access, Memory Access, BusMaster, Special Cycles) Status 0280h (Supports Back-To-Back Trans., Medium Timing) Revision 05h, Header Type 80h, Bus Latency 00h Self test 00h (Self test not supported) PCI Class Bridge, type PCI to ISA

Vendor 8086h Intel Corporation Device 244Bh 82801BA UltraATA/100 IDE Controller (ICH2 B5 step) Command 0005h (I/O Access, BusMaster) Status 0280h (Supports Back-To-Back Trans., Medium Timing) Revision 05h, Header Type 00h, Bus Latency 00h Self test 00h (Self test not supported) PCI Class Storage, type IDE PCI EIDE Controller Features : BusMaster EIDE is supported Primary Channel is at I/O Port 01F0h and IRQ 14 Secondary Channel is at I/O Port 0170h and IRQ 15 Subsystem ID 24428086h 82801BA (ICH2) UltraDMA/100 IDE Controller (Guess Only!) Subsystem Vendor 8086h Intel Corporation Address 4 is an I/O Port : 0000F000h

Vendor 8086h Intel Corporation Device 2442h 82801BA/BAM USB Controller #1 (ICH2/ICH2-M B5 step) Command 0005h (I/O Access, BusMaster) Status 0280h (Supports Back-To-Back Trans., Medium Timing) Revision 05h, Header Type 00h, Bus Latency 00h Self test 00h (Self test not supported) PCI Class Serial, type USB (UHCI) Subsystem ID 24428086h 82801BA/BAM (ICH2) USB Universal Host Controller (Guess Only!) (Generic ID) Subsystem Vendor 8086h Intel Corporation Address 4 is an I/O Port : 0000B000h System IRQ 9, INT# D

Vendor 8086h Intel Corporation Device 2443h 82801BA/BAM SMBus Controller (ICH2/ICH2-M B5 step) Command 0001h (I/O Access) Status 0280h (Supports Back-To-Back Trans., Medium Timing) Revision 05h, Header Type 00h, Bus Latency 00h Self test 00h (Self test not supported) PCI Class Serial, type SMBus Controller Subsystem ID 24428086h Unknown Subsystem Vendor 8086h Intel Corporation Address 4 is an I/O Port : 00000500h System IRQ 10, INT# B

Vendor 8086h Intel Corporation Device 2444h 82801BA/BAM USB Controller #2 (ICH2/ICH2-M B5 step) Command 0005h (I/O Access, BusMaster) Status 0280h (Supports Back-To-Back Trans., Medium Timing) Revision 05h, Header Type 00h, Bus Latency 00h Self test 00h (Self test not supported) PCI Class Serial, type USB (UHCI) Subsystem ID 24428086h 82801BA/BAM (ICH2) USB Universal Host Controller (Guess Only!) Subsystem Vendor 8086h Intel Corporation Address 4 is an I/O Port : 0000B800h System IRQ 3, INT# C

Vendor 10DEh Nvidia Corp Device 0110h GeForce2 MX/MX 400 [NV11] Command 0007h (I/O Access, Memory Access, BusMaster) Status 02B0h (Has Capabilities List, Supports 66MHz, Supports Back-To-Back Trans., Medium Timing) Revision B2h, Header Type 00h, Bus Latency 20h Self test 00h (Self test not supported) PCI Class Display, type VGA Address 0 is a Memory Address (anywhere in 0-4Gb) : EC000000h Address 1 is a Memory Address (anywhere in 0-4Gb, Prefetchable) : E0000000h System IRQ 5, INT# A   Expansion ROM of 64Kb decoded by this card New Capabilities List Present: Power Management Capability Supports power state D1   Current Power State : D0 (Device operational, no power saving) AGP Capability, Version 2.0 (AGP 4x and below support) AGP Speed(s) Supported : 1x 2x 4x FW Transfers Supported : Yes >4Gb Address Space Supported : No   Sideband Addressing Supported : No    Maximum Command Queue Length : 32 bytes AGP Speed Selected : 4x FW Transfers Enabled : Yes >4Gb Address Space Enabled : No   AGP Enabled : Yes Sideband Addressing Enabled : No   Current Command Queue Length : 1 byte

Vendor 9004h Adaptec Inc Device 6178h AIC-7861 AHA-2940AU PCI SCSI Controller Command 0007h (I/O Access, Memory Access, BusMaster) Status 0290h (Has Capabilities List, Supports Back-To-Back Trans., Medium Timing) Revision 03h, Header Type 00h, Bus Latency 20h Self test 00h (Self test not supported) Cache line size 32 Bytes (8 DWords) PCI Class Storage, type SCSI Subsystem ID 78619004h AHA-2940AU Single Subsystem Vendor 9004h Adaptec Inc Address 0 is an I/O Port : 00009000h Address 1 is a Memory Address (anywhere in 0-4Gb) : EF000000h System IRQ 10, INT# A   Expansion ROM of 64Kb decoded by this card New Capabilities List Present: Power Management Capability Current Power State : D0 (Device operational, no power saving)

Vendor 10ECh Realtek Semiconductor Device 8139h RT8139 (A/B/C/8130) Fast Ethernet Adapter Command 0007h (I/O Access, Memory Access, BusMaster) Status 0290h (Has Capabilities List, Supports Back-To-Back Trans., Medium Timing) Revision 10h, Header Type 00h, Bus Latency 20h Self test 00h (Self test not supported) PCI Class Network, type Ethernet Subsystem ID 813910ECh RT8139 (A/B/C/8130) Fast Ethernet Adapter (Generic ID) Subsystem Vendor 10ECh Realtek Semiconductor Address 0 is an I/O Port : 00009400h Address 1 is a Memory Address (anywhere in 0-4Gb) : EF001000h System IRQ 5, INT# A   New Capabilities List Present: Power Management Capability Supports power state D1   Current Power State : D0 (Device operational, no power saving)

Vendor 1102h Creative Labs Device 0002h EMU10K1 Audio Chipset (SB Live!) Command 0005h (I/O Access, BusMaster) Status 0290h (Has Capabilities List, Supports Back-To-Back Trans., Medium Timing) Revision 07h, Header Type 80h, Bus Latency 20h Self test 00h (Self test not supported) PCI Class Multimedia, type Audio Subsystem ID 80641102h SB0102 SBLive! 5.1   Subsystem Vendor 1102h Creative Labs Address 0 is an I/O Port : 00009800h System IRQ 11, INT# A   New Capabilities List Present: Power Management Capability Current Power State : D0 (Device operational, no power saving)

Vendor 1102h Creative Labs Device 7002h PCI Gameport Command 0005h (I/O Access, BusMaster) Status 0290h (Has Capabilities List, Supports Back-To-Back Trans., Medium Timing) Revision 07h, Header Type 80h, Bus Latency 20h Self test 00h (Self test not supported) PCI Class Input, type Other Subsystem ID 00201102h PCI Gameport Subsystem Vendor 1102h Creative Labs Address 0 is an I/O Port : 00009C00h New Capabilities List Present: Power Management Capability Current Power State : D0 (Device operational, no power saving)

Vendor 1106h VIA Technologies Inc Device 3038h VT6202 USB Controller Command 0007h (I/O Access, Memory Access, BusMaster) Status 0210h (Has Capabilities List, Medium Timing) Revision 50h, Header Type 80h, Bus Latency 20h Self test 00h (Self test not supported) Cache line size 32 Bytes (8 DWords) PCI Class Serial, type USB (UHCI) Subsystem ID 12340925h VIA USB Controller Subsystem Vendor 0925h Known Bad Subsystem ID - no Vendor ID Available Address 4 is an I/O Port : 0000A000h System IRQ 4, INT# A   New Capabilities List Present: Power Management Capability Supports power state D1   Current Power State : D0 (Device operational, no power saving)

Vendor 1106h VIA Technologies Inc Device 3038h VT6202 USB Controller Command 0007h (I/O Access, Memory Access, BusMaster) Status 0210h (Has Capabilities List, Medium Timing) Revision 50h, Header Type 80h, Bus Latency 20h Self test 00h (Self test not supported) Cache line size 32 Bytes (8 DWords) PCI Class Serial, type USB (UHCI) Subsystem ID 12340925h VIA USB Controller Subsystem Vendor 0925h Known Bad Subsystem ID - no Vendor ID Available Address 4 is an I/O Port : 0000A400h System IRQ 3, INT# B   New Capabilities List Present: Power Management Capability Supports power state D1   Current Power State : D0 (Device operational, no power saving)

Vendor 1106h VIA Technologies Inc Device 3104h VT6202 USB 2.0 Enhanced Host Controller Command 0007h (I/O Access, Memory Access, BusMaster) Status 0210h (Has Capabilities List, Medium Timing) Revision 51h, Header Type 80h, Bus Latency 20h Self test 00h (Self test not supported) Cache line size 32 Bytes (8 DWords) PCI Class Serial, type USB (EHCI) Subsystem ID 12340925h VT6202 USB 2.0 Enhanced Host Controller Subsystem Vendor 0925h Known Bad Subsystem ID - no Vendor ID Available Address 0 is a Memory Address (anywhere in 0-4Gb) : EF002000h System IRQ 11, INT# C   New Capabilities List Present: Power Management Capability Supports power state D1   Current Power State : D0 (Device operational, no power saving)

Vendor 10B7h 3COM Corp, Networking Division Device 9200h 3C905C-TX Fast Etherlink for PC Management NIC Command 0007h (I/O Access, Memory Access, BusMaster) Status 0210h (Has Capabilities List, Medium Timing) Revision 74h, Header Type 00h, Bus Latency 20h Self test 00h (Self test not supported) Cache line size 32 Bytes (8 DWords) PCI Class Network, type Ethernet Subsystem ID 100010B7h 3C905C-TX Fast Etherlink for PC Management NIC Subsystem Vendor 10B7h 3COM Corp, Networking Division Address 0 is an I/O Port : 0000A800h Address 1 is a Memory Address (anywhere in 0-4Gb) : EF003000h System IRQ 3, INT# A   Expansion ROM of 128Kb decoded by this card New Capabilities List Present: Power Management Capability Supports power state D1   Current Power State : D0 (Device operational, no power saving)

ROM PCI IRQ routing table Windows 9x Compatibility Tests.... ROM IRQ routing table found at F000h:DEA0h Table Version 1.0 - OK   Table size 224 bytes - OK    Table Checksum 9Ah - OK    IRQ's dedicated to PCI : 3,4,5,9,10,11 The ROM PCI IRQ routing table appears to be OK.

IRQ Summary: IRQs 3,4,5,9,10,11,14,15 are used by PCI devices Shared IRQs: IRQ 3 is shared by 3 PCI Devices IRQ 5 is shared by 2 PCI Devices IRQ 10 is shared by 2 PCI Devices IRQ 11 is shared by 2 PCI Devices

As you can see, even more technical information is displayed. Since this article only serves to inform about the basic pci.exe routines in the prospect of os2warp.be Technical Support, we shan't discuss these additional lines.