| Class | Description |
|---|---|
| 0x00 | Devices built before class codes (i.e. pre PCI 2.0) |
| 0x01 | Mass storage controller |
| 0x02 | Network controller |
| 0x03 | Display controller |
| 0x04 | Multimedia device |
| 0x05 | Memory Controller |
| 0x06 | Bridge Device |
| 0x07 | Simple communications controllers |
| 0x08 | Base system peripherals |
| 0x09 | Inupt devices |
| 0x0A | Docking Stations |
| 0x0B | Processorts |
| 0x0C | Serial bus controllers |
| 0x0D-0xFE | Reserved |
| 0xFF | Misc |
| Sub-Class | Prog. I/F | Description |
|---|---|---|
| 0x00 | 0x00 | All devices other than VGA |
| 0x01 | 0x01 | VGA device |
| Sub-Class | Prog. I/F | Description | ||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0x00 | 0x00 | SCSI Controller | ||||||||||||||
| 0x01 | 0xXX |
IDE controller. The Prog I/F is defined as follows:
|
||||||||||||||
| 0x02 | 0x00 | Floppy disk controller | ||||||||||||||
| 0x03 | 0x00 | IPI controller | ||||||||||||||
| 0x04 | 0x00 | RAID controller | ||||||||||||||
| 0x80 | 0x00 | Other mass storage controller |
| Sub-Class | Prog. I/F | Description |
|---|---|---|
| 0x00 | 0x00 | Ethernet controller |
| 0x01 | 0x00 | Token ring |
| 0x02 | 0x00 | FDDI controller |
| 0x03 | 0x00 | ATM controller |
| 0x80 | 0x00 | Other network conteroller |
| Sub-Class | Prog. I/F | Description |
|---|---|---|
| 0x00 | 0x00 | VGA compatable controller. Has mapping for 0xA0000..0xBFFFF and io addresses 0x3B0..0x3BB. |
| 0x01 | 8514 compatable | |
| 0x01 | 0x00 | XGA controller |
| 0x80 | 0x80 | Other display controller |
| Sub-Class | Prog. I/F | Description |
|---|---|---|
| 0x00 | 0x00 | Video device |
| 0x01 | 0x00 | Audio device |
| 0x80 | 0x00 | Other multimedia device |
| Sub-Class | Prog. I/F | Description |
|---|---|---|
| 0x00 | 0x00 | RAM controller |
| 0x01 | 0x00 | Flash memory controller |
| 0x80 | 0x00 | Other memory controller |
| Sub-Class | Prog. I/F | Description |
|---|---|---|
| 0x00 | 0x00 | Host/PCI bridge |
| 0x01 | 0x00 | PCI/ISA bridge |
| 0x02 | 0x00 | PCI/EISA bridge |
| 0x03 | 0x00 | PCI/Micro Channel bridge |
| 0x04 | 0x00 | PCI/PCI bridge |
| 0x05 | 0x00 | PCI/PCMCIA bridge |
| 0x06 | 0x00 | PCI/NuBus bridge |
| 0x07 | 0x00 | PCI/CardBus bridge |
| 0x80 | 0x00 | Other bridge type |
| Sub-Class | Prog. I/F | Description |
|---|---|---|
| 0x00 | 0x00 | Generic XT compatable serial controller |
| 0x01 | 16450 compatable serial controller | |
| 0x02 | 16550 compatable serial controller | |
| 0x01 | 0x00 | Parallel port |
| 0x01 | Bi-directional parallel port | |
| 0x02 | ECP 1.X parallel port | |
| 0x80 | 0x00 | Other commonications device |
| Sub-Class | Prog. I/F | Description |
|---|---|---|
| 0x00 | 0x00 | Generic 8259 programmable interrupt controller (PIC) |
| 0x01 | ISA PIC | |
| 0x02 | EISA PIC | |
| 0x01 | 0x00 | Generic 8237 DMA controller |
| 0x01 | ISA DMA controller | |
| 0x02 | EISA DMA controller | |
| 0x02 | 0x00 | Generic 8254 timer |
| 0x01 | ISA system timer | |
| 0x02 | EISA system timer | |
| 0x03 | 0x00 | Generic RTC controller |
| 0x01 | ISA RTC controller | |
| 0x80 | 0x00 | Other system peripheral |
| Sub-Class | Prog. I/F | Description |
|---|---|---|
| 0x00 | 0x00 | Keyboard controller |
| 0x01 | 0x00 | Digitizer (pen) |
| 0x02 | 0x00 | Mouse controller |
| 0x80 | 0x00 | Other input controller |
| Sub-Class | Prog. I/F | Description |
|---|---|---|
| 0x00 | 0x00 | Generic docking station |
| 0x80 | 0x00 | Other type of docking station |
| Sub-Class | Prog. I/F | Description |
|---|---|---|
| 0x00 | 0x00 | 386 |
| 0x01 | 0x00 | 486 |
| 0x02 | 0x00 | Pentium |
| 0x10 | 0x00 | Alpha |
| 0x20 | 0x00 | PowerPC |
| 0x40 | 0x00 | Co-Processor |
| Sub-Class | Prog. I/F | Description |
|---|---|---|
| 0x00 | 0x00 | Firewire (IEEE 1394) |
| 0x01 | 0x00 | ACCESS bus |
| 0x02 | 0x00 | SSA (Serial Storage Architecture) |
| 0x03 | 0x00 | USB (Universal Serial Bus) |