xref: /illumos-gate/usr/src/common/pci/pci_strings.c (revision d7574e9a)
109f67678Sanish /*
209f67678Sanish  * CDDL HEADER START
309f67678Sanish  *
409f67678Sanish  * The contents of this file are subject to the terms of the
5337fc9e2Sanish  * Common Development and Distribution License (the "License").
6337fc9e2Sanish  * You may not use this file except in compliance with the License.
709f67678Sanish  *
809f67678Sanish  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
909f67678Sanish  * or http://www.opensolaris.org/os/licensing.
1009f67678Sanish  * See the License for the specific language governing permissions
1109f67678Sanish  * and limitations under the License.
1209f67678Sanish  *
1309f67678Sanish  * When distributing Covered Code, include this CDDL HEADER in each
1409f67678Sanish  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
1509f67678Sanish  * If applicable, add the following below this CDDL HEADER, with the
1609f67678Sanish  * fields enclosed by brackets "[]" replaced with your own identifying
1709f67678Sanish  * information: Portions Copyright [yyyy] [name of copyright owner]
1809f67678Sanish  *
1909f67678Sanish  * CDDL HEADER END
2009f67678Sanish  */
2109f67678Sanish 
2209f67678Sanish /*
23337fc9e2Sanish  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
2409f67678Sanish  * Use is subject to license terms.
2509f67678Sanish  */
2613c8743eSMarcel Telka /*
2713c8743eSMarcel Telka  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
2813c8743eSMarcel Telka  */
2909f67678Sanish 
3009f67678Sanish #include <sys/types.h>
3109f67678Sanish #include <sys/stat.h>
3209f67678Sanish #include "pci_strings.h"
3309f67678Sanish 
3409f67678Sanish const pci_class_strings_t class_pci[] = {
359675e051SRichard Lowe 	{ 0, 0, 0,	"Unspecified class",			"unknown" },
369675e051SRichard Lowe 	{ 0, 1, 0,	"VGA compatible controller",		"unknown" },
379675e051SRichard Lowe 
389675e051SRichard Lowe 	{ 1, 0, 0,	"SCSI bus controller",			"scsi" },
39c9645facSRobert Mustacchi 	{ 1, 0, 0x11,	"SCSI storage device (SOP, PQI)",	"scsi" },
40c9645facSRobert Mustacchi 	{ 1, 0, 0x12,	"SCSI bus controller (SOP, PQI)",	"scsi" },
41c9645facSRobert Mustacchi 	{ 1, 0, 0x13,	"SCSI bus controller and device (SOP, PQI)", "scsi" },
42c9645facSRobert Mustacchi 	{ 1, 0, 0x21,	"SCSI bus controller and device (SOP, NVMe)", "scsi" },
439675e051SRichard Lowe 	{ 1, 1, 0x80,	"IDE controller", /* Special case */	"ide" },
449675e051SRichard Lowe 	{ 1, 2, 0,	"Floppy controller",			"flpydis" },
459675e051SRichard Lowe 	{ 1, 3, 0,	"IPI bus controller",			"ipi" },
469675e051SRichard Lowe 	{ 1, 4, 0,	"RAID controller",			"raid" },
479675e051SRichard Lowe 	{ 1, 5, 0x20,	"ATA controller with single DMA",	"ata" },
489675e051SRichard Lowe 	{ 1, 5, 0x30,	"ATA controller with chained DMA",	"ata" },
499675e051SRichard Lowe 	{ 1, 6, 0,	"Serial ATA Direct Port Access (DPA)",	"sata" },
509675e051SRichard Lowe 	{ 1, 6, 1,	"SATA AHCI Interface",			"sata" },
519675e051SRichard Lowe 	{ 1, 6, 2,	"Serial Storage Bus Interface",		"sata" },
529675e051SRichard Lowe 	{ 1, 7, 0,	"Serial Attached SCSI Controller",	"sas" },
539675e051SRichard Lowe 	{ 1, 7, 1,	"Serial Storage Bus Interface",		"sas" },
549675e051SRichard Lowe 	{ 1, 8, 0,	"Non-Volatile memory controller",	"unknown" },
559675e051SRichard Lowe 	{ 1, 8, 1,	"NVMHCI",				"unknown" },
569675e051SRichard Lowe 	{ 1, 8, 2,	"NVM Express",				"nvme" },
57c9645facSRobert Mustacchi 	{ 1, 8, 2,	"NVM Express administrative controller", "unknown" },
589675e051SRichard Lowe 	{ 1, 9, 0,	"UFS controller",			"unknown" },
599675e051SRichard Lowe 	{ 1, 9, 1,	"UFS Host Controller Interface",	"unknown" },
609675e051SRichard Lowe 	{ 1, 0x80, 0,	"Mass storage controller",		"unknown" },
619675e051SRichard Lowe 
629675e051SRichard Lowe 	{ 2, 0, 0,	"Ethernet controller",			"etherne" },
63*d7574e9aSRobert Mustacchi 	{ 2, 0, 1,	"Ethernet controller IDPF compliant",	"idpf" },
649675e051SRichard Lowe 	{ 2, 1, 0,	"Token ring controller",		"tokenrg" },
659675e051SRichard Lowe 	{ 2, 2, 0,	"FDDI controller",			"fddi" },
669675e051SRichard Lowe 	{ 2, 3, 0,	"ATM controller",			"atm" },
679675e051SRichard Lowe 	{ 2, 4, 0,	"ISDN controller",			"isdn" },
689675e051SRichard Lowe 	{ 2, 5, 0,	"WorldFip controller",			"unknown" },
699675e051SRichard Lowe 	{ 2, 6, 0,	"PICMG 2.14 Multi computing controller", "mcd" },
709675e051SRichard Lowe 	{ 2, 7, 0,	"InfiniBand controller",		"ib", },
71c9645facSRobert Mustacchi 	{ 2, 8, 0,	"Host fabric controller",		"unknown", },
729675e051SRichard Lowe 	{ 2, 0x80, 0,	"Network controller",			"unknown" },
739675e051SRichard Lowe 
749675e051SRichard Lowe 	{ 3, 0, 0,	"VGA compatible controller",		"vga" },
759675e051SRichard Lowe 	{ 3, 0, 1,	"8514-compatible display controller",	"vgs8514" },
769675e051SRichard Lowe 	{ 3, 1, 0,	"XGA video controller",			"xga" },
779675e051SRichard Lowe 	{ 3, 2, 0,	"3D controller",			"3d" },
789675e051SRichard Lowe 	{ 3, 0x80, 0,	"Video controller",			"unknown" },
799675e051SRichard Lowe 
809675e051SRichard Lowe 	{ 4, 0, 0,	"Video device",				"video" },
819675e051SRichard Lowe 	{ 4, 1, 0,	"Audio device",				"audio" },
829675e051SRichard Lowe 	{ 4, 2, 0,	"Computer Telephony device",		"teleph" },
83c9645facSRobert Mustacchi 	{ 4, 3, 0,	"High Definition Audio 1.0",		"audio" },
84c9645facSRobert Mustacchi 	{ 4, 3, 0x80,	"High Definition Audio 1.0",		"audio" },
859675e051SRichard Lowe 	{ 4, 0x80, 0,	"Multimedia device",			"unknown" },
869675e051SRichard Lowe 
879675e051SRichard Lowe 	{ 5, 0, 0,	"Ram",					"ram" },
889675e051SRichard Lowe 	{ 5, 1, 0,	"Flash memory",				"flash" },
89c9645facSRobert Mustacchi 	{ 5, 2, 0,	"CXL Memory Device",			"cxl" },
90c9645facSRobert Mustacchi 	{ 5, 2, 0x10,	"CXL 2.0 Memory Device",		"cxl" },
919675e051SRichard Lowe 	{ 5, 0x80, 0,	"Memory controller",			"unknown" },
929675e051SRichard Lowe 
939675e051SRichard Lowe 	{ 6, 0, 0,	"Host bridge",				"hostpci" },
949675e051SRichard Lowe 	{ 6, 1, 0,	"ISA bridge",				"pci-isa" },
959675e051SRichard Lowe 	{ 6, 2, 0,	"EISA bridge",				"pcieisa" },
969675e051SRichard Lowe 	{ 6, 3, 0,	"MCA bridge",				"pci-mca" },
979675e051SRichard Lowe 	{ 6, 4, 0,	"PCI-PCI bridge",			"pci-pci" },
989675e051SRichard Lowe 	{ 6, 4, 1,	"Subtractive Decode PCI-PCI bridge",	"unknown" },
999675e051SRichard Lowe 	{ 6, 5, 0,	"PCMCIA bridge",			"pcipcmc" },
1009675e051SRichard Lowe 	{ 6, 6, 0,	"NuBus bridge",				"pcinubu" },
1019675e051SRichard Lowe 	{ 6, 7, 0,	"CardBus bridge",			"pcicard" },
1029675e051SRichard Lowe 	{ 6, 8, 0,	"RACE-way bridge transport mode",	"pcirace" },
1039675e051SRichard Lowe 	{ 6, 8, 1,	"RACE-way bridge endpoint mode",	"pcirace" },
1049675e051SRichard Lowe 	{ 6, 9, 0x40,	"Semi-transparent PCI-PCI primary bridge",   "stpci" },
1059675e051SRichard Lowe 	{ 6, 9, 0x80,	"Semi-transparent PCI-PCI secondary bridge", "stpci" },
1069675e051SRichard Lowe 	{ 6, 0xA, 0,	"Infiniband-PCI bridge",		"ib-pci" },
1079675e051SRichard Lowe 	{ 6, 0xB, 0,	"AS Custom Interface bridge",		"as-pci" },
1089675e051SRichard Lowe 	{ 6, 0xB, 1,	"ASI-SIG Defined Portal Interface",	"as-pci" },
1099675e051SRichard Lowe 	{ 6, 0x80, 0,	"Bridge device",			"unknown" },
1109675e051SRichard Lowe 
1119675e051SRichard Lowe 	{ 7, 0, 0,	"Serial controller",			"serial" },
1129675e051SRichard Lowe 	{ 7, 0, 1,	"16450-compatible serial controller",	"paralle" },
1139675e051SRichard Lowe 	{ 7, 0, 2,	"16550-compatible serial controller",	"paralle" },
1149675e051SRichard Lowe 	{ 7, 0, 3,	"16650-compatible serial controller",	"paralle" },
1159675e051SRichard Lowe 	{ 7, 0, 4,	"16750-compatible serial controller",	"paralle" },
1169675e051SRichard Lowe 	{ 7, 0, 5,	"16850-compatible serial controller",	"paralle" },
1179675e051SRichard Lowe 	{ 7, 0, 6,	"16950-compatible serial controller",	"paralle" },
1189675e051SRichard Lowe 	{ 7, 1, 0,	"Parallel port",			"paralle" },
1199675e051SRichard Lowe 	{ 7, 1, 1,	"Bidirectional parallel port",		"paralle" },
1209675e051SRichard Lowe 	{ 7, 1, 2,	"ECP 1.X parallel port",		"paralle" },
1219675e051SRichard Lowe 	{ 7, 1, 3,	"IEEE 1284 parallel port",		"paralle" },
1229675e051SRichard Lowe 	{ 7, 1, 0xFE,	"IEEE 1284 target device",		"1284tar" },
1239675e051SRichard Lowe 	{ 7, 2, 0,	"Multiport serial controller",		"multise" },
1249675e051SRichard Lowe 	{ 7, 3, 0,	"Modem controller",			"mdmctrl" },
1259675e051SRichard Lowe 	{ 7, 3, 1,	"Hayes 16450-compatible modem",		"modem" },
1269675e051SRichard Lowe 	{ 7, 3, 2,	"Hayes 16550-compatible modem",		"modem" },
1279675e051SRichard Lowe 	{ 7, 3, 3,	"Hayes 16650-compatible modem",		"modem" },
1289675e051SRichard Lowe 	{ 7, 3, 4,	"Hayes 16750-compatible modem",		"modem" },
1299675e051SRichard Lowe 	{ 7, 4, 0,	"GPIB controller",			"gpibctl" },
1309675e051SRichard Lowe 	{ 7, 5, 0,	"Smartcard controller",			"smctrlr" },
1319675e051SRichard Lowe 	{ 7, 0x80, 0,	"Communication device",			"commdev" },
1329675e051SRichard Lowe 
1339675e051SRichard Lowe 	{ 8, 0, 0,	"8259 PIC",				"pic" },
1349675e051SRichard Lowe 	{ 8, 0, 1,	"ISA PIC",				"pic" },
1359675e051SRichard Lowe 	{ 8, 0, 2,	"EISA PIC",				"pic" },
1369675e051SRichard Lowe 	{ 8, 0, 0x10,	"I/O APIC",				"pic" },
1379675e051SRichard Lowe 	{ 8, 0, 0x20,	"I/O(x) APIC",				"iopic" },
1389675e051SRichard Lowe 	{ 8, 1, 0,	"8237 DMA controller",			"dma" },
1399675e051SRichard Lowe 	{ 8, 1, 1,	"ISA DMA controller",			"dma" },
1409675e051SRichard Lowe 	{ 8, 1, 2,	"EISA DMA controller",			"dma" },
1419675e051SRichard Lowe 	{ 8, 2, 0,	"8254 system timer",			"timer" },
1429675e051SRichard Lowe 	{ 8, 2, 1,	"ISA system timer",			"timer" },
1439675e051SRichard Lowe 	{ 8, 2, 2,	"EISA system timers",			"timer" },
1449675e051SRichard Lowe 	{ 8, 2, 3,	"High Performance Event timer",		"timer" },
1459675e051SRichard Lowe 	{ 8, 3, 0,	"Real time clock",			"rtc" },
1469675e051SRichard Lowe 	{ 8, 3, 1,	"ISA real time clock",			"rtc" },
1479675e051SRichard Lowe 	{ 8, 4, 0,	"PCI Hot-Plug controller",		"pcihp" },
1489675e051SRichard Lowe 	{ 8, 5, 0,	"SD Host controller",			"sd-hc" },
1499675e051SRichard Lowe 	{ 8, 5, 1,	"SD Host controller with DMA",		"sd-hc" },
1509675e051SRichard Lowe 	{ 8, 5, 2,	"Vendor Unique SD Host controller",	"sd-hc" },
1519675e051SRichard Lowe 	{ 8, 6, 0,	"IOMMU controller",			"iommu" },
1529675e051SRichard Lowe 	{ 8, 7, 0,	"Root Complex Event Collector",		"unknown" },
153ccb3ca45SRobert Mustacchi 	{ 8, 8, 0,	"Time Card",				"unknown" },
154ccb3ca45SRobert Mustacchi 	{ 8, 8, 1,	"Time Card - OCP TAP",			"unknown" },
1559675e051SRichard Lowe 	{ 8, 0x80, 0,	"System peripheral",			"unknown" },
1569675e051SRichard Lowe 
1579675e051SRichard Lowe 	{ 9, 0, 0,	"Keyboard controller",			"keyboar" },
1589675e051SRichard Lowe 	{ 9, 1, 0,	"Digitizer (pen)",			"tablet" },
1599675e051SRichard Lowe 	{ 9, 2, 0,	"Mouse controller",			"mouse" },
1609675e051SRichard Lowe 	{ 9, 3, 0,	"Scanner controller",			"scanner" },
1619675e051SRichard Lowe 	{ 9, 4, 0,	"Gameport controller",			"gamepor" },
1629675e051SRichard Lowe 	{ 9, 4, 0x10,	"Gameport Legacy controller",		"gamepor" },
1639675e051SRichard Lowe 	{ 9, 0x80, 0,	"Input controller",			"unknown" },
1649675e051SRichard Lowe 
1659675e051SRichard Lowe 	{ 10, 0, 0,	"Generic Docking station",		"docking" },
1669675e051SRichard Lowe 	{ 10, 0x80, 0,	"Docking station",			"unknown" },
1679675e051SRichard Lowe 
1689675e051SRichard Lowe 	{ 11, 0, 0,	"386",					"386" },
1699675e051SRichard Lowe 	{ 11, 1, 0,	"486",					"486" },
1709675e051SRichard Lowe 	{ 11, 2, 0,	"Pentium",				"pentium" },
1719675e051SRichard Lowe 	{ 11, 0x10, 0,	"Alpha",				"alpha" },
1729675e051SRichard Lowe 	{ 11, 0x20, 0,	"Power-PC",				"powerpc" },
1739675e051SRichard Lowe 	{ 11, 0x30, 0,	"MIPS",					"mips" },
1749675e051SRichard Lowe 	{ 11, 0x40, 0,	"Co-processor",				"coproc" },
1759675e051SRichard Lowe 	{ 11, 0x80, 0,	"Processor",				"unknown" },
1769675e051SRichard Lowe 
1779675e051SRichard Lowe 	{ 12, 0, 0,	"FireWire (IEEE 1394)",			"1394" },
1789675e051SRichard Lowe 	{ 12, 0, 0x10,	"FireWire (IEEE 1394) OpenHCI compliant", "1394" },
1799675e051SRichard Lowe 	{ 12, 1, 0,	"ACCESS.bus",				"access" },
1809675e051SRichard Lowe 	{ 12, 2, 0,	"SSA",					"ssa" },
1819675e051SRichard Lowe 	{ 12, 3, 0,	"Universal Serial Bus UHCI compliant",	"usb" },
1829675e051SRichard Lowe 	{ 12, 3, 0x10,	"Universal Serial Bus OHCI compliant",	"usb" },
1839675e051SRichard Lowe 	{ 12, 3, 0x20,	"Universal Serial Bus EHCI compliant",	"usb" },
1849675e051SRichard Lowe 	{ 12, 3, 0x30,	"Universal Serial Bus XHCI compliant",	"usb" },
185c9645facSRobert Mustacchi 	{ 12, 3, 0x40,	"USB4 Host Interface",			"usb" },
1869675e051SRichard Lowe 	{ 12, 3, 0x80,	"Universal Serial Bus generic HCD",	"usb" },
1879675e051SRichard Lowe 	{ 12, 3, 0xFE,	"Universal Serial Bus device",		"usb" },
1889675e051SRichard Lowe 	{ 12, 4, 0,	"Fibre Channel",			"fibre" },
1899675e051SRichard Lowe 	{ 12, 5, 0,	"SMBus (System Management Bus)",	"smbus" },
1909675e051SRichard Lowe 	{ 12, 6, 0,	"InfiniBand",				"ib" },
1919675e051SRichard Lowe 	{ 12, 7, 0,	"IPMI SMIC Interface",			"ipmi" },
1929675e051SRichard Lowe 	{ 12, 7, 1,	"IPMI Keyboard Controller Style Interface", "ipmi" },
1939675e051SRichard Lowe 	{ 12, 7, 2,	"IPMI Block Transfer Interface",	"ipmi" },
1949675e051SRichard Lowe 	{ 12, 8, 0,	"SERCOS Interface Standard",		"sercos" },
1959675e051SRichard Lowe 	{ 12, 9, 0,	"CANbus",				"canbus" },
1969675e051SRichard Lowe 	{ 12, 10, 0,	"MIPI I3C Host Controller Interface",	"unknown" },
197ccb3ca45SRobert Mustacchi 	{ 12, 11, 0,	"CXL Fabric Managment Host Interface",	"unknown" },
1989675e051SRichard Lowe 	{ 12, 0x80, 0,	"Serial Bus Controller",		"unknown" },
1999675e051SRichard Lowe 
2009675e051SRichard Lowe 	{ 13, 0, 0,	"IRDA Wireless controller",		"irda" },
2019675e051SRichard Lowe 	{ 13, 1, 0,	"Consumer IR Wireless controller",	"ir" },
2029675e051SRichard Lowe 	{ 13, 1, 0x10,	"UWB Radio  controller",		"ir-uwb" },
2039675e051SRichard Lowe 	{ 13, 0x10, 0,	"RF Wireless controller",		"rf" },
2049675e051SRichard Lowe 	{ 13, 0x11, 0,	"Bluetooth Wireless controller",	"btooth" },
2059675e051SRichard Lowe 	{ 13, 0x12, 0,	"Broadband Wireless controller",	"brdband" },
2069675e051SRichard Lowe 	{ 13, 0x20, 0,	"802.11a Wireless controller",		"802.11a" },
2079675e051SRichard Lowe 	{ 13, 0x21, 0,	"802.11b Wireless controller",		"802.11b" },
2089675e051SRichard Lowe 	{ 13, 0x40, 0,	"Cellular controller/modem",		"unknown" },
2099675e051SRichard Lowe 	{ 13, 0x41, 0,	"Cellular controller/modem w/ ethernet", "unknown" },
2109675e051SRichard Lowe 	{ 13, 0x80, 0,	"Wireless controller",			"unknown" },
2119675e051SRichard Lowe 
2129675e051SRichard Lowe 	{ 14, 0, 0,	"I2O controller",			"i2o" },
2139675e051SRichard Lowe 	{ 14, 0, 1,	"I2O Arch Specification 1.0",		"i2o" },
2149675e051SRichard Lowe 
2159675e051SRichard Lowe 	{ 15, 1, 0,	"TV Satellite controller",		"tv" },
2169675e051SRichard Lowe 	{ 15, 2, 0,	"Audio Satellite controller",		"audio" },
2179675e051SRichard Lowe 	{ 15, 3, 0,	"Voice Satellite controller",		"voice" },
2189675e051SRichard Lowe 	{ 15, 4, 0,	"Data Satellite controller",		"data" },
2199675e051SRichard Lowe 	{ 15, 0x80, 0,	"Satellite Comm controller",		"unknown" },
2209675e051SRichard Lowe 
2219675e051SRichard Lowe 	{ 16, 0, 0,	"Network and computing en/decryption",	"netcryp" },
222c9645facSRobert Mustacchi 	{ 16, 0x10, 0,	"Entertainment en/decryption",		"entcryp" },
223ccb3ca45SRobert Mustacchi 	{ 16, 0x20, 0,	"Trusted Platform Module",		"tpm" },
2249675e051SRichard Lowe 	{ 16, 0x80, 0,	"En/decryption controller",		"unknown" },
2259675e051SRichard Lowe 
2269675e051SRichard Lowe 	{ 17, 0, 0,	"DPIO modules",				"dpio" },
2279675e051SRichard Lowe 	{ 17, 1, 0,	"Performance counters",			"perfcnt" },
2289675e051SRichard Lowe 	{ 17, 0x10, 0,	"Comm Synch time and freq test/measurement", "cstftm" },
2299675e051SRichard Lowe 	{ 17, 0x20, 0,	"Management card",			"mgmtcrd" },
2309675e051SRichard Lowe 	{ 17, 0x80, 0,	"DSP/DAP controllers",			"unknown" },
2319675e051SRichard Lowe 
2329675e051SRichard Lowe 	{ 18, 0, 0,	"Processing Accelerator",		"unknown" },
233c9645facSRobert Mustacchi 	{ 18, 1, 0,	"SNIA Smart Data Acceleration Interface controller",
234c9645facSRobert Mustacchi 		"sdxi" },
2359675e051SRichard Lowe 
2369675e051SRichard Lowe 	{ 19, 0, 0,	"Non-essential Instrumentation",	"unknown" },
23709f67678Sanish };
23809f67678Sanish 
239bd97c7ceSRobert Mustacchi size_t class_pci_items = sizeof (class_pci) / sizeof (class_pci[0]);
240