之前有找到过一下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) |