xref: /illumos-gate/usr/src/common/pci/pci_strings.c (revision 66582b606a8194f7f3ba5b3a3a6dca5b0d346361)
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, 1, 0x80,	"IDE controller", /* Special case */	"ide",
40 	1, 2, 0,	"Floppy controller",			"flpydis",
41 	1, 3, 0,	"IPI bus controller",			"ipi",
42 	1, 4, 0,	"RAID controller",			"raid",
43 	1, 5, 0x20,	"ATA controller with single DMA",	"ata",
44 	1, 5, 0x30,	"ATA controller with chained DMA",	"ata",
45 	1, 6, 0,	"Serial ATA Direct Port Access (DPA)",	"sata",
46 	1, 6, 1,	"SATA AHCI Interface",			"sata",
47 	1, 6, 2,	"Serial Storage Bus Interface",		"sata",
48 	1, 7, 0,	"Serial Attached SCSI Controller",	"sas",
49 	1, 7, 1,	"Serial Storage Bus Interface",		"sas",
50 	1, 8, 0,	"Non-Volatile memory controller",	"unknown",
51 	1, 8, 1,	"NVMHCI",				"unknown",
52 	1, 8, 2,	"NVM Express",				"nvme",
53 	1, 0x80, 0,	"Mass storage controller",		"unknown",
54 
55 	2, 0, 0,	"Ethernet controller",			"etherne",
56 	2, 1, 0,	"Token ring controller",		"tokenrg",
57 	2, 2, 0,	"FDDI controller",			"fddi",
58 	2, 3, 0,	"ATM controller",			"atm",
59 	2, 4, 0,	"ISDN controller",			"isdn",
60 	2, 5, 0,	"WorldFip controller",			"unknown",
61 	2, 6, 0,	"PICMG 2.14 Multi computing controller", "mcd",
62 	2, 0x80, 0,	"Network controller",			"unknown",
63 
64 	3, 0, 0,	"VGA compatible controller",		"vga",
65 	3, 0, 1,	"8514-compatible display controller",	"vgs8514",
66 	3, 1, 0,	"XGA video controller",			"xga",
67 	3, 2, 0,	"3D controller",			"3d",
68 	3, 0x80, 0,	"Video controller",			"unknown",
69 
70 	4, 0, 0,	"Video device",				"video",
71 	4, 1, 0,	"Audio device",				"audio",
72 	4, 2, 0,	"Computer Telephony device",		"teleph",
73 	4, 3, 0,	"Mixed Mode device",			"mixed",
74 	4, 0x80, 0,	"Multimedia device",			"unknown",
75 
76 	5, 0, 0,	"Ram",					"ram",
77 	5, 1, 0,	"Flash memory",				"flash",
78 	5, 0x80, 0,	"Memory controller",			"unknown",
79 
80 	6, 0, 0,	"Host bridge",				"hostpci",
81 	6, 1, 0,	"ISA bridge",				"pci-isa",
82 	6, 2, 0,	"EISA bridge",				"pcieisa",
83 	6, 3, 0,	"MCA bridge",				"pci-mca",
84 	6, 4, 0,	"PCI-PCI bridge",			"pci-pci",
85 	6, 4, 1,	"Subtractive Decode PCI-PCI bridge",	"unknown",
86 	6, 5, 0,	"PCMCIA bridge",			"pcipcmc",
87 	6, 6, 0,	"NuBus bridge",				"pcinubu",
88 	6, 7, 0,	"CardBus bridge",			"pcicard",
89 	6, 8, 0,	"RACE-way bridge transport mode",	"pcirace",
90 	6, 8, 1,	"RACE-way bridge endpoint mode",	"pcirace",
91 	6, 9, 0x40,	"Semi-transparent PCI-PCI primary bridge",   "stpci",
92 	6, 9, 0x80,	"Semi-transparent PCI-PCI secondary bridge", "stpci",
93 	6, 0xA, 0,	"Infiniband-PCI bridge",		"ib-pci",
94 	6, 0xB, 0,	"AS Custom Interface bridge",		"as-pci",
95 	6, 0xB, 1,	"ASI-SIG Defined Portal Interface",	"as-pci",
96 	6, 0x80, 0,	"Bridge device",			"unknown",
97 
98 	7, 0, 0,	"Serial controller",			"serial",
99 	7, 0, 1,	"16450-compatible serial controller",	"paralle",
100 	7, 0, 2,	"16550-compatible serial controller",	"paralle",
101 	7, 0, 3,	"16650-compatible serial controller",	"paralle",
102 	7, 0, 4,	"16750-compatible serial controller",	"paralle",
103 	7, 0, 5,	"16850-compatible serial controller",	"paralle",
104 	7, 0, 6,	"16950-compatible serial controller",	"paralle",
105 	7, 1, 0,	"Parallel port",			"paralle",
106 	7, 1, 1,	"Bidirectional parallel port",		"paralle",
107 	7, 1, 2,	"ECP 1.X parallel port",		"paralle",
108 	7, 1, 3,	"IEEE 1284 parallel port",		"paralle",
109 	7, 1, 0xFE,	"IEEE 1284 target device",		"1284tar",
110 	7, 2, 0,	"Multiport serial controller",		"multise",
111 	7, 3, 0,	"Modem controller",			"mdmctrl",
112 	7, 3, 1,	"Hayes 16450-compatible modem",		"modem",
113 	7, 3, 2,	"Hayes 16550-compatible modem",		"modem",
114 	7, 3, 3,	"Hayes 16650-compatible modem",		"modem",
115 	7, 3, 4,	"Hayes 16750-compatible modem",		"modem",
116 	7, 4, 0,	"GPIB controller",			"gpibctl",
117 	7, 5, 0,	"Smartcard controller",			"smctrlr",
118 	7, 0x80, 0,	"Communication device",			"commdev",
119 
120 	8, 0, 0,	"8259 PIC",				"pic",
121 	8, 0, 1,	"ISA PIC",				"pic",
122 	8, 0, 2,	"EISA PIC",				"pic",
123 	8, 0, 0x10,	"I/O APIC",				"pic",
124 	8, 0, 0x20,	"I/O(x) APIC",				"iopic",
125 	8, 1, 0,	"8237 DMA controller",			"dma",
126 	8, 1, 1,	"ISA DMA controller",			"dma",
127 	8, 1, 2,	"EISA DMA controller",			"dma",
128 	8, 2, 0,	"8254 system timer",			"timer",
129 	8, 2, 1,	"ISA system timer",			"timer",
130 	8, 2, 2,	"EISA system timers",			"timer",
131 	8, 2, 3,	"High Performance Event timer",		"timer",
132 	8, 3, 0,	"Real time clock",			"rtc",
133 	8, 3, 1,	"ISA real time clock",			"rtc",
134 	8, 4, 0,	"PCI Hot-Plug controller",		"pcihp",
135 	8, 5, 0,	"SD Host controller",			"sd-hc",
136 	8, 6, 0,	"IOMMU controller",			"iommu",
137 	8, 0x80, 0,	"System peripheral",			"unknown",
138 
139 	9, 0, 0,	"Keyboard controller",			"keyboar",
140 	9, 1, 0,	"Digitizer (pen)",			"tablet",
141 	9, 2, 0,	"Mouse controller",			"mouse",
142 	9, 3, 0,	"Scanner controller",			"scanner",
143 	9, 4, 0,	"Gameport controller",			"gamepor",
144 	9, 4, 0x10,	"Gameport Legacy controller",		"gamepor",
145 	9, 0x80, 0,	"Input controller",			"unknown",
146 
147 	10, 0, 0,	"Generic Docking station",		"docking",
148 	10, 0x80, 0,	"Docking station",			"unknown",
149 
150 	11, 0, 0,	"386",					"386",
151 	11, 1, 0,	"486",					"486",
152 	11, 2, 0,	"Pentium",				"pentium",
153 	11, 0x10, 0,	"Alpha",				"alpha",
154 	11, 0x20, 0,	"Power-PC",				"powerpc",
155 	11, 0x30, 0,	"MIPS",					"mips",
156 	11, 0x40, 0,	"Co-processor",				"coproc",
157 	11, 0x80, 0,	"Processor",				"unknown",
158 
159 	12, 0, 0,	"FireWire (IEEE 1394)",			"1394",
160 	12, 0, 0x10,	"FireWire (IEEE 1394) OpenHCI compliant", "1394",
161 	12, 1, 0,	"ACCESS.bus",				"access",
162 	12, 2, 0,	"SSA",					"ssa",
163 	12, 3, 0,	"Universal Serial Bus UHCI compliant",	"usb",
164 	12, 3, 0x10,	"Universal Serial Bus OHCI compliant",	"usb",
165 	12, 3, 0x20,	"Universal Serial Bus EHCI compliant",	"usb",
166 	12, 3, 0x30,	"Universal Serial Bus XHCI compliant",	"usb",
167 	12, 3, 0x80,	"Universal Serial Bus generic HCD",	"usb",
168 	12, 3, 0xFE,	"Universal Serial Bus device",		"usb",
169 	12, 4, 0,	"Fibre Channel",			"fibre",
170 	12, 5, 0,	"SMBus (System Management Bus)",	"smbus",
171 	12, 6, 0,	"InfiniBand",				"ib",
172 	12, 7, 0,	"IPMI SMIC Interface",			"ipmi",
173 	12, 7, 1,	"IPMI Keyboard Controller Style Interface", "ipmi",
174 	12, 7, 2,	"IPMI Block Transfer Interface",	"ipmi",
175 	12, 8, 0,	"SERCOS Interface Standard",		"sercos",
176 	12, 9, 0,	"CANbus",				"canbus",
177 	12, 0x80, 0,	"Serial Bus Controller",		"unknown",
178 
179 	13, 0, 0,	"IRDA Wireless controller",		"irda",
180 	13, 1, 0,	"Consumer IR Wireless controller",	"ir",
181 	13, 1, 0x10,	"UWB Radio  controller",		"ir-uwb",
182 	13, 0x10, 0,	"RF Wireless controller",		"rf",
183 	13, 0x11, 0,	"Bluetooth Wireless controller",	"btooth",
184 	13, 0x12, 0,	"Broadband Wireless controller",	"brdband",
185 	13, 0x20, 0,	"802.11a Wireless controller",		"802.11a",
186 	13, 0x21, 0,	"802.11b Wireless controller",		"802.11b",
187 	13, 0x80, 0,	"Wireless controller",			"unknown",
188 
189 	14, 0, 0,	"I20 controller",			"i2o",
190 	14, 0, 1,	"I20 Arch Specification 1.0",		"i2o",
191 
192 	15, 1, 0,	"TV Satellite controller",		"tv",
193 	15, 2, 0,	"Audio Satellite controller",		"audio",
194 	15, 3, 0,	"Voice Satellite controller",		"voice",
195 	15, 4, 0,	"Data Satellite controller",		"data",
196 	15, 0x80, 0,	"Satellite Comm controller",		"unknown",
197 
198 	16, 0, 0,	"Network and computing en/decryption",	"netcryp",
199 	16, 1, 0,	"Entertainment en/decryption",		"entcryp",
200 	16, 0x80, 0,	"En/decryption controller",		"unknown",
201 
202 	17, 0, 0,	"DPIO modules",				"dpio",
203 	17, 1, 0,	"Performance counters",			"perfcnt",
204 	17, 0x10, 0,	"Comm Synch time and freq test/measurement", "cstftm",
205 	17, 0x20, 0,	"Management card",			"mgmtcrd",
206 	17, 0x80, 0,	"DSP/DAP controllers",			"unknown"
207 };
208 
209 int class_pci_items = sizeof (class_pci) / sizeof (class_pci[0]);
210