本文主要是介绍PCI Device Class Codes,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录
Class Code 0: Pre 2.0
Class Code 1: Mass Storage Controllers
Class Code 2: Network Controllers
Class Code 3: Display Controllers
Class Code 4: Multimedia Devices
Class Code 5: Memory Controllers
Class Code 6: Bridge Devices
Class Code 7: Simple Communications Controllers
Class Code 8: Base System Peripherals
Class Code 9: Input Devices
Class Code A: Docking Stations
Class Code B: Processors
Class Code C: Serial Bus Controllers
PCI Config-Space_Rx09[] : 开始的3个字节
| 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: |
| 0x02 | 0x00 | Floppy disk controller |
| 0x03 | 0x00 | IPI controller |
| 0x04 | 0x00 | RAID controller |
| 0x80 | 0x00 | Other mass storage controller |
| 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 |
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) |
这篇关于PCI Device Class Codes的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!