之前有找到过一下class code分类,收集起来以备用。
可能在写PCI scan的程序时候,能排的上用场吧。
另外提供一个PCI Device Scan程序的头文件pci_c_head.h,以供参考.
Class Code Table
Class Codes
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 |
Class Code 0: Pre 2.0
Sub-Class |
Prog. I/F |
Description |
0x00 |
0x00 |
All devices other than VGA |
0x01 |
0x01 |
VGA device |
Class Code 1: Mass Storage Controllers
Sub-Class |
Prog. I/F |
Description |
0x00 |
0x00 |
SCSI Controller |
0x01 |
0xXX |
IDE controller. The Prog I/F is defined as follows:
bits |
Desc |
0 |
Operating mode (primary) |
1 |
Programmable indicator (primary) |
2 |
Operating mode (secondary) |
3 |
Programmable indicator (secondary) |
6..4 |
Reserved (zero) |
7 |
Master IDE device |
|
0x02 |
0x00 |
Floppy disk controller |
0x03 |
0x00 |
IPI controller |
0x04 |
0x00 |
RAID controller |
0x80 |
0x00 |
Other mass storage controller |
Class Code 2: Network Controllers
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 |
Class Code 3: Display Controllers
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 |
Class Code 4: Multimedia Devices
Sub-Class |
Prog. I/F |
Description |
0x00 |
0x00 |
Video device |
0x01 |
0x00 |
Audio device |
0x80 |
0x00 |
Other multimedia device |
Class Code 5: Memory Controllers
Sub-Class |
Prog. I/F |
Description |
0x00 |
0x00 |
RAM controller |
0x01 |
0x00 |
Flash memory controller |
0x80 |
0x00 |
Other memory controller |
Class Code 6: Bridge Devices
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 |
Class Code 7: Simple Communications Controllers
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 |
Class Code 8: Base System Peripherals
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 |
Class Code 9: Input Devices
Sub-Class |
Prog. I/F |
Description |
0x00 |
0x00 |
Keyboard controller |
0x01 |
0x00 |
Digitizer (pen) |
0x02 |
0x00 |
Mouse controller |
0x80 |
0x00 |
Other input controller |
Class Code A: Docking Stations
Sub-Class |
Prog. I/F |
Description |
0x00 |
0x00 |
Generic docking station |
0x80 |
0x00 |
Other type of docking station |
Class Code B: Processors
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 |
Class Code C: Serial Bus Controllers
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) |