xref: /illumos-gate/usr/src/common/pci/pci_strings.c (revision d7574e9aa8a3a5b2d6e2411b5c915becca76ce5a)
1 /*
2  * CDDL HEADER START
3  *
4  * The contents of this file are subject to the terms of the
5  * Common Development and Distribution License (the "License").
6  * You may not use this file except in compliance with the License.
7  *
8  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9  * or http://www.opensolaris.org/os/licensing.
10  * See the License for the specific language governing permissions
11  * and limitations under the License.
12  *
13  * When distributing Covered Code, include this CDDL HEADER in each
14  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15  * If applicable, add the following below this CDDL HEADER, with the
16  * fields enclosed by brackets "[]" replaced with your own identifying
17  * information: Portions Copyright [yyyy] [name of copyright owner]
18  *
19  * CDDL HEADER END
20  */
21 
22 /*
23  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
24  * Use is subject to license terms.
25  */
26 /*
27  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
28  */
29 
30 #include <sys/types.h>
31 #include <sys/stat.h>
32 #include "pci_strings.h"
33 
34 const pci_class_strings_t class_pci[] = {
35 	{ 0, 0, 0,	"Unspecified class",			"unknown" },
36 	{ 0, 1, 0,	"VGA compatible controller",		"unknown" },
37 
38 	{ 1, 0, 0,	"SCSI bus controller",			"scsi" },
39 	{ 1, 0, 0x11,	"SCSI storage device (SOP, PQI)",	"scsi" },
40 	{ 1, 0, 0x12,	"SCSI bus controller (SOP, PQI)",	"scsi" },
41 	{ 1, 0, 0x13,	"SCSI bus controller and device (SOP, PQI)", "scsi" },
42 	{ 1, 0, 0x21,	"SCSI bus controller and device (SOP, NVMe)", "scsi" },
43 	{ 1, 1, 0x80,	"IDE controller", /* Special case */	"ide" },
44 	{ 1, 2, 0,	"Floppy controller",			"flpydis" },
45 	{ 1, 3, 0,	"IPI bus controller",			"ipi" },
46 	{ 1, 4, 0,	"RAID controller",			"raid" },
47 	{ 1, 5, 0x20,	"ATA controller with single DMA",	"ata" },
48 	{ 1, 5, 0x30,	"ATA controller with chained DMA",	"ata" },
49 	{ 1, 6, 0,	"Serial ATA Direct Port Access (DPA)",	"sata" },
50 	{ 1, 6, 1,	"SATA AHCI Interface",			"sata" },
51 	{ 1, 6, 2,	"Serial Storage Bus Interface",		"sata" },
52 	{ 1, 7, 0,	"Serial Attached SCSI Controller",	"sas" },
53 	{ 1, 7, 1,	"Serial Storage Bus Interface",		"sas" },
54 	{ 1, 8, 0,	"Non-Volatile memory controller",	"unknown" },
55 	{ 1, 8, 1,	"NVMHCI",				"unknown" },
56 	{ 1, 8, 2,	"NVM Express",				"nvme" },
57 	{ 1, 8, 2,	"NVM Express administrative controller", "unknown" },
58 	{ 1, 9, 0,	"UFS controller",			"unknown" },
59 	{ 1, 9, 1,	"UFS Host Controller Interface",	"unknown" },
60 	{ 1, 0x80, 0,	"Mass storage controller",		"unknown" },
61 
62 	{ 2, 0, 0,	"Ethernet controller",			"etherne" },
63 	{ 2, 0, 1,	"Ethernet controller IDPF compliant",	"idpf" },
64 	{ 2, 1, 0,	"Token ring controller",		"tokenrg" },
65 	{ 2, 2, 0,	"FDDI controller",			"fddi" },
66 	{ 2, 3, 0,	"ATM controller",			"atm" },
67 	{ 2, 4, 0,	"ISDN controller",			"isdn" },
68 	{ 2, 5, 0,	"WorldFip controller",			"unknown" },
69 	{ 2, 6, 0,	"PICMG 2.14 Multi computing controller", "mcd" },
70 	{ 2, 7, 0,	"InfiniBand controller",		"ib", },
71 	{ 2, 8, 0,	"Host fabric controller",		"unknown", },
72 	{ 2, 0x80, 0,	"Network controller",			"unknown" },
73 
74 	{ 3, 0, 0,	"VGA compatible controller",		"vga" },
75 	{ 3, 0, 1,	"8514-compatible display controller",	"vgs8514" },
76 	{ 3, 1, 0,	"XGA video controller",			"xga" },
77 	{ 3, 2, 0,	"3D controller",			"3d" },
78 	{ 3, 0x80, 0,	"Video controller",			"unknown" },
79 
80 	{ 4, 0, 0,	"Video device",				"video" },
81 	{ 4, 1, 0,	"Audio device",				"audio" },
82 	{ 4, 2, 0,	"Computer Telephony device",		"teleph" },
83 	{ 4, 3, 0,	"High Definition Audio 1.0",		"audio" },
84 	{ 4, 3, 0x80,	"High Definition Audio 1.0",		"audio" },
85 	{ 4, 0x80, 0,	"Multimedia device",			"unknown" },
86 
87 	{ 5, 0, 0,	"Ram",					"ram" },
88 	{ 5, 1, 0,	"Flash memory",				"flash" },
89 	{ 5, 2, 0,	"CXL Memory Device",			"cxl" },
90 	{ 5, 2, 0x10,	"CXL 2.0 Memory Device",		"cxl" },
91 	{ 5, 0x80, 0,	"Memory controller",			"unknown" },
92 
93 	{ 6, 0, 0,	"Host bridge",				"hostpci" },
94 	{ 6, 1, 0,	"ISA bridge",				"pci-isa" },
95 	{ 6, 2, 0,	"EISA bridge",				"pcieisa" },
96 	{ 6, 3, 0,	"MCA bridge",				"pci-mca" },
97 	{ 6, 4, 0,	"PCI-PCI bridge",			"pci-pci" },
98 	{ 6, 4, 1,	"Subtractive Decode PCI-PCI bridge",	"unknown" },
99 	{ 6, 5, 0,	"PCMCIA bridge",			"pcipcmc" },
100 	{ 6, 6, 0,	"NuBus bridge",				"pcinubu" },
101 	{ 6, 7, 0,	"CardBus bridge",			"pcicard" },
102 	{ 6, 8, 0,	"RACE-way bridge transport mode",	"pcirace" },
103 	{ 6, 8, 1,	"RACE-way bridge endpoint mode",	"pcirace" },
104 	{ 6, 9, 0x40,	"Semi-transparent PCI-PCI primary bridge",   "stpci" },
105 	{ 6, 9, 0x80,	"Semi-transparent PCI-PCI secondary bridge", "stpci" },
106 	{ 6, 0xA, 0,	"Infiniband-PCI bridge",		"ib-pci" },
107 	{ 6, 0xB, 0,	"AS Custom Interface bridge",		"as-pci" },
108 	{ 6, 0xB, 1,	"ASI-SIG Defined Portal Interface",	"as-pci" },
109 	{ 6, 0x80, 0,	"Bridge device",			"unknown" },
110 
111 	{ 7, 0, 0,	"Serial controller",			"serial" },
112 	{ 7, 0, 1,	"16450-compatible serial controller",	"paralle" },
113 	{ 7, 0, 2,	"16550-compatible serial controller",	"paralle" },
114 	{ 7, 0, 3,	"16650-compatible serial controller",	"paralle" },
115 	{ 7, 0, 4,	"16750-compatible serial controller",	"paralle" },
116 	{ 7, 0, 5,	"16850-compatible serial controller",	"paralle" },
117 	{ 7, 0, 6,	"16950-compatible serial controller",	"paralle" },
118 	{ 7, 1, 0,	"Parallel port",			"paralle" },
119 	{ 7, 1, 1,	"Bidirectional parallel port",		"paralle" },
120 	{ 7, 1, 2,	"ECP 1.X parallel port",		"paralle" },
121 	{ 7, 1, 3,	"IEEE 1284 parallel port",		"paralle" },
122 	{ 7, 1, 0xFE,	"IEEE 1284 target device",		"1284tar" },
123 	{ 7, 2, 0,	"Multiport serial controller",		"multise" },
124 	{ 7, 3, 0,	"Modem controller",			"mdmctrl" },
125 	{ 7, 3, 1,	"Hayes 16450-compatible modem",		"modem" },
126 	{ 7, 3, 2,	"Hayes 16550-compatible modem",		"modem" },
127 	{ 7, 3, 3,	"Hayes 16650-compatible modem",		"modem" },
128 	{ 7, 3, 4,	"Hayes 16750-compatible modem",		"modem" },
129 	{ 7, 4, 0,	"GPIB controller",			"gpibctl" },
130 	{ 7, 5, 0,	"Smartcard controller",			"smctrlr" },
131 	{ 7, 0x80, 0,	"Communication device",			"commdev" },
132 
133 	{ 8, 0, 0,	"8259 PIC",				"pic" },
134 	{ 8, 0, 1,	"ISA PIC",				"pic" },
135 	{ 8, 0, 2,	"EISA PIC",				"pic" },
136 	{ 8, 0, 0x10,	"I/O APIC",				"pic" },
137 	{ 8, 0, 0x20,	"I/O(x) APIC",				"iopic" },
138 	{ 8, 1, 0,	"8237 DMA controller",			"dma" },
139 	{ 8, 1, 1,	"ISA DMA controller",			"dma" },
140 	{ 8, 1, 2,	"EISA DMA controller",			"dma" },
141 	{ 8, 2, 0,	"8254 system timer",			"timer" },
142 	{ 8, 2, 1,	"ISA system timer",			"timer" },
143 	{ 8, 2, 2,	"EISA system timers",			"timer" },
144 	{ 8, 2, 3,	"High Performance Event timer",		"timer" },
145 	{ 8, 3, 0,	"Real time clock",			"rtc" },
146 	{ 8, 3, 1,	"ISA real time clock",			"rtc" },
147 	{ 8, 4, 0,	"PCI Hot-Plug controller",		"pcihp" },
148 	{ 8, 5, 0,	"SD Host controller",			"sd-hc" },
149 	{ 8, 5, 1,	"SD Host controller with DMA",		"sd-hc" },
150 	{ 8, 5, 2,	"Vendor Unique SD Host controller",	"sd-hc" },
151 	{ 8, 6, 0,	"IOMMU controller",			"iommu" },
152 	{ 8, 7, 0,	"Root Complex Event Collector",		"unknown" },
153 	{ 8, 8, 0,	"Time Card",				"unknown" },
154 	{ 8, 8, 1,	"Time Card - OCP TAP",			"unknown" },
155 	{ 8, 0x80, 0,	"System peripheral",			"unknown" },
156 
157 	{ 9, 0, 0,	"Keyboard controller",			"keyboar" },
158 	{ 9, 1, 0,	"Digitizer (pen)",			"tablet" },
159 	{ 9, 2, 0,	"Mouse controller",			"mouse" },
160 	{ 9, 3, 0,	"Scanner controller",			"scanner" },
161 	{ 9, 4, 0,	"Gameport controller",			"gamepor" },
162 	{ 9, 4, 0x10,	"Gameport Legacy controller",		"gamepor" },
163 	{ 9, 0x80, 0,	"Input controller",			"unknown" },
164 
165 	{ 10, 0, 0,	"Generic Docking station",		"docking" },
166 	{ 10, 0x80, 0,	"Docking station",			"unknown" },
167 
168 	{ 11, 0, 0,	"386",					"386" },
169 	{ 11, 1, 0,	"486",					"486" },
170 	{ 11, 2, 0,	"Pentium",				"pentium" },
171 	{ 11, 0x10, 0,	"Alpha",				"alpha" },
172 	{ 11, 0x20, 0,	"Power-PC",				"powerpc" },
173 	{ 11, 0x30, 0,	"MIPS",					"mips" },
174 	{ 11, 0x40, 0,	"Co-processor",				"coproc" },
175 	{ 11, 0x80, 0,	"Processor",				"unknown" },
176 
177 	{ 12, 0, 0,	"FireWire (IEEE 1394)",			"1394" },
178 	{ 12, 0, 0x10,	"FireWire (IEEE 1394) OpenHCI compliant", "1394" },
179 	{ 12, 1, 0,	"ACCESS.bus",				"access" },
180 	{ 12, 2, 0,	"SSA",					"ssa" },
181 	{ 12, 3, 0,	"Universal Serial Bus UHCI compliant",	"usb" },
182 	{ 12, 3, 0x10,	"Universal Serial Bus OHCI compliant",	"usb" },
183 	{ 12, 3, 0x20,	"Universal Serial Bus EHCI compliant",	"usb" },
184 	{ 12, 3, 0x30,	"Universal Serial Bus XHCI compliant",	"usb" },
185 	{ 12, 3, 0x40,	"USB4 Host Interface",			"usb" },
186 	{ 12, 3, 0x80,	"Universal Serial Bus generic HCD",	"usb" },
187 	{ 12, 3, 0xFE,	"Universal Serial Bus device",		"usb" },
188 	{ 12, 4, 0,	"Fibre Channel",			"fibre" },
189 	{ 12, 5, 0,	"SMBus (System Management Bus)",	"smbus" },
190 	{ 12, 6, 0,	"InfiniBand",				"ib" },
191 	{ 12, 7, 0,	"IPMI SMIC Interface",			"ipmi" },
192 	{ 12, 7, 1,	"IPMI Keyboard Controller Style Interface", "ipmi" },
193 	{ 12, 7, 2,	"IPMI Block Transfer Interface",	"ipmi" },
194 	{ 12, 8, 0,	"SERCOS Interface Standard",		"sercos" },
195 	{ 12, 9, 0,	"CANbus",				"canbus" },
196 	{ 12, 10, 0,	"MIPI I3C Host Controller Interface",	"unknown" },
197 	{ 12, 11, 0,	"CXL Fabric Managment Host Interface",	"unknown" },
198 	{ 12, 0x80, 0,	"Serial Bus Controller",		"unknown" },
199 
200 	{ 13, 0, 0,	"IRDA Wireless controller",		"irda" },
201 	{ 13, 1, 0,	"Consumer IR Wireless controller",	"ir" },
202 	{ 13, 1, 0x10,	"UWB Radio  controller",		"ir-uwb" },
203 	{ 13, 0x10, 0,	"RF Wireless controller",		"rf" },
204 	{ 13, 0x11, 0,	"Bluetooth Wireless controller",	"btooth" },
205 	{ 13, 0x12, 0,	"Broadband Wireless controller",	"brdband" },
206 	{ 13, 0x20, 0,	"802.11a Wireless controller",		"802.11a" },
207 	{ 13, 0x21, 0,	"802.11b Wireless controller",		"802.11b" },
208 	{ 13, 0x40, 0,	"Cellular controller/modem",		"unknown" },
209 	{ 13, 0x41, 0,	"Cellular controller/modem w/ ethernet", "unknown" },
210 	{ 13, 0x80, 0,	"Wireless controller",			"unknown" },
211 
212 	{ 14, 0, 0,	"I2O controller",			"i2o" },
213 	{ 14, 0, 1,	"I2O Arch Specification 1.0",		"i2o" },
214 
215 	{ 15, 1, 0,	"TV Satellite controller",		"tv" },
216 	{ 15, 2, 0,	"Audio Satellite controller",		"audio" },
217 	{ 15, 3, 0,	"Voice Satellite controller",		"voice" },
218 	{ 15, 4, 0,	"Data Satellite controller",		"data" },
219 	{ 15, 0x80, 0,	"Satellite Comm controller",		"unknown" },
220 
221 	{ 16, 0, 0,	"Network and computing en/decryption",	"netcryp" },
222 	{ 16, 0x10, 0,	"Entertainment en/decryption",		"entcryp" },
223 	{ 16, 0x20, 0,	"Trusted Platform Module",		"tpm" },
224 	{ 16, 0x80, 0,	"En/decryption controller",		"unknown" },
225 
226 	{ 17, 0, 0,	"DPIO modules",				"dpio" },
227 	{ 17, 1, 0,	"Performance counters",			"perfcnt" },
228 	{ 17, 0x10, 0,	"Comm Synch time and freq test/measurement", "cstftm" },
229 	{ 17, 0x20, 0,	"Management card",			"mgmtcrd" },
230 	{ 17, 0x80, 0,	"DSP/DAP controllers",			"unknown" },
231 
232 	{ 18, 0, 0,	"Processing Accelerator",		"unknown" },
233 	{ 18, 1, 0,	"SNIA Smart Data Acceleration Interface controller",
234 		"sdxi" },
235 
236 	{ 19, 0, 0,	"Non-essential Instrumentation",	"unknown" },
237 };
238 
239 size_t class_pci_items = sizeof (class_pci) / sizeof (class_pci[0]);
240