xref: /minix/minix/drivers/bus/pci/pci_table.c (revision 7f5f010b)
1 /*
2 pci_table.c
3 
4 Tables with PCI vendor and device identifiers
5 
6 Created:	Jan 2000 by Philip Homburg <philip@cs.vu.nl>
7 
8 See the Linux PCI ID Repository <http://pciids.sourceforge.net/>.
9 */
10 
11 /* Changes from original Minix 2.0.4 version (2003-09-05):
12  * 2003-11-30 (kjb) Minix 2.0.4 FIX.TAZ add D-Link RTL8139 (0x1186, 0x1300)
13  * 2004-08-08 (asw) add Intel 82371AB (0x8086, 0x7100)
14  */
15 
16 #include <minix/drivers.h>
17 #include "pci.h"
18 #if __minix_vmd
19 #include "config.h"
20 #endif
21 
22 struct pci_vendor pci_vendor_table[]=
23 {
24 	{ 0x1000, "NCR" },
25 	{ 0x1002, "ATI Technologies" },
26 	{ 0x100B, "National Semiconductor Corporation" },
27 	{ 0x1013, "Cirrus Logic" },
28 	{ 0x1022, "Advanced Micro Devices" },
29 	{ 0x102B, "Matrox Graphics, Inc." },
30 	{ 0x1039, "Silicon Integrated Systems (SiS)" },
31 	{ 0x104C, "Texas Instruments" },
32 	{ 0x105A, "Promise Technology" },
33 	{ 0x10B7, "3Com Corporation" },
34 	{ 0x10B9, "AcerLabs (ALI)" },
35 	{ 0x10C8, "Neomagic Corporation" },
36 	{ 0x10DE, "nVidia Corporation" },
37 	{ 0x10EC, "Realtek" },
38 	{ 0x1106, "VIA" },
39 	{ 0x110A, "Siemens Nixdorf AG" },
40 	{ 0x1186, "D-Link" },
41 	{ 0x125D, "ESS Technology" },
42 	{ 0x1259, "Allied Telesyn International" },
43 	{ 0x1274, "Ensoniq" },
44 	{ 0x1385, "Netgear" },
45 	{ 0x16ec, "US Robotics" },
46 	{ 0x1737, "Linksys" },
47 	{ 0x1969, "Atheros Communications" },
48 	{ 0x1af4, "Red Hat" },
49 	{ 0x5333, "S3" },
50 	{ 0x8086, "Intel" },
51 	{ 0x80ee, "Oracle" },
52 	{ 0x9004, "Adaptec" },
53 	{ 0x9005, "Adaptec" },
54 	{ 0x0000, NULL }
55 };
56 
57 struct pci_device pci_device_table[]=
58 {
59 	{ 0x1000, 0x0001, "NCR 53C810" },
60 	{ 0x1000, 0x000F, "NCR 53C875" },
61 	{ 0x1002, 0x4752, "ATI Rage XL PCI" },
62 	{ 0x100B, 0xD001, "Nat. Semi. 87410" },
63 	{ 0x1013, 0x00B8, "Cirrus Logic GD 5446" },
64 	{ 0x1013, 0x6003, "Cirrus Logic CS4614/22/24 CrystalClear" },
65 	{ 0x1022, 0x1100, "K8 HyperTransport Tech. Conf." },
66 	{ 0x1022, 0x1101, "K8 [Athlon64/Opteron] Address Map" },
67 	{ 0x1022, 0x1102, "K8 [Athlon64/Opteron] DRAM Controller" },
68 	{ 0x1022, 0x1103, "K8 [Athlon64/Opteron] Misc. Control" },
69 	{ 0x1022, 0x2000, "AMD Lance/PCI" },
70 	{ 0x1022, 0x700C, "AMD-762 CPU to PCI Bridge (SMP chipset)" },
71 	{ 0x1022, 0x700D, "AMD-762 CPU to PCI Bridge (AGP 4x)" },
72 	{ 0x1022, 0x7410, "AMD-766 PCI to ISA/LPC Bridge" },
73 	{ 0x1022, 0x7411, "AMD-766 EIDE Controller" },
74 	{ 0x102B, 0x051B, "Matrox MGA 2164W [Millennium II]" },
75 	{ 0x102B, 0x0525, "Matrox MGA G400 AGP" },
76 	{ 0x1039, 0x0008, "SiS 85C503/5513" },
77 	{ 0x1039, 0x0200, "SiS 5597/5598 VGA" },
78 	{ 0x1039, 0x0406, "SiS 85C501/2" },
79 	{ 0x1039, 0x5597, "SiS 5582" },
80 	{ 0x104C, 0xAC1C, "TI PCI1225" },
81 	{ 0x105A, 0x0D30, "Promise Technology 20265" },
82 	{ 0x10B7, 0x9058, "3Com 3c905B-Combo" },
83 	{ 0x10B7, 0x9805, "3Com 3c980-TX Python-T" },
84 	{ 0x10B9, 0x1533, "ALI M1533 ISA-bridge [Aladdin IV]" },
85 	{ 0x10B9, 0x1541, "ALI M1541" },
86 	{ 0x10B9, 0x5229, "ALI M5229 (IDE)" },
87 	{ 0x10B9, 0x5243, "ALI M5243" },
88 	{ 0x10B9, 0x7101, "ALI M7101 PMU" },
89 	{ 0x10C8, 0x0005, "Neomagic NM2200 Magic Graph 256AV" },
90 	{ 0x10C8, 0x8005, "Neomagic NM2200 Magic Graph 256AV Audio" },
91 	{ 0x10DE, 0x0020, "nVidia Riva TnT [NV04]" },
92 	{ 0x10DE, 0x0110, "nVidia GeForce2 MX [NV11]" },
93 	{ 0x10EC, 0x8029, "Realtek RTL8029" },
94 	{ 0x10EC, 0x8129, "Realtek RTL8129" },
95 	{ 0x10EC, 0x8136, "Realtek RTL8101E Family" },
96 	{ 0x10EC, 0x8139, "Realtek RTL8139" },
97 	{ 0x10EC, 0x8167, "Realtek RTL8169/8110 Family Gigabit NIC" },
98 	{ 0x10EC, 0x8169, "Realtek RTL8169" },
99 	{ 0x1106, 0x0305, "VIA VT8363/8365 [KT133/KM133]" },
100 	{ 0x1106, 0x0571, "VIA IDE controller" },
101 	{ 0x1106, 0x0686, "VIA VT82C686 (Apollo South Bridge)" },
102 	{ 0x1106, 0x1204, "K8M800 Host Bridge" },
103 	{ 0x1106, 0x2204, "K8M800 Host Bridge" },
104 	{ 0x1106, 0x3038, "VT83C572 PCI USB Controller" },
105 	{ 0x1106, 0x3057, "VT82C686A ACPI Power Management Controller" },
106 	{ 0x1106, 0x3058, "VIA AC97 Audio Controller" },
107 	{ 0x1106, 0x3059, "VIA AC97 Audio Controller" },
108 	{ 0x1106, 0x3065, "VT6102 [Rhine-II]" },
109 	{ 0x1106, 0x3074, "VIA VT8233" },
110 	{ 0x1106, 0x3099, "VIA VT8367 [KT266]" },
111 	{ 0x1106, 0x3104, "VIA USB 2.0" },
112 	{ 0x1106, 0x3108, "VIA S3 Unichrome Pro VGA Adapter" },
113 	{ 0x1106, 0x3149, "VIA VT6420 SATA RAID Controller" },
114 	{ 0x1106, 0x3204, "K8M800 Host Bridge" },
115 	{ 0x1106, 0x3227, "VT8237 ISA bridge" },
116 	{ 0x1106, 0x4204, "K8M800 Host Bridge" },
117 	{ 0x1106, 0x8305, "VIA VT8365 [KM133 AGP]" },
118 	{ 0x1106, 0xB099, "VIA VT8367 [KT266 AGP]" },
119 	{ 0x1106, 0xB188, "VT8237 PCI bridge" },
120 	{ 0x110A, 0x0005, "Siemens Nixdorf Tulip Cntlr., Power Management" },
121 	{ 0x1186, 0x1300, "D-Link RTL8139" },
122 	{ 0x1186, 0x4300, "D-Link Gigabit adapter" },
123 	{ 0x1259, 0xc107, "Allied Telesyn International Gigabit Ethernet Adapter" },
124 	{ 0x125D, 0x1969, "ESS ES1969 Solo-1 Audiodrive" },
125 	{ 0x1274, 0x1371, "Ensoniq ES1371 [AudioPCI-97]" },
126 	{ 0x1274, 0x5000, "Ensoniq ES1370" },
127 	{ 0x1274, 0x5880, "Ensoniq CT5880 [AudioPCI]" },
128 	{ 0x1385, 0x8169, "Netgear Gigabit Ethernet Adapter" },
129 	{ 0x16ec, 0x0116, "US Robotics Realtek 8169S chip" },
130 	{ 0x1737, 0x1032, "Linksys Instant Gigabit Desktop Network Interface" },
131 	{ 0x1969, 0x2048, "Atheros L2 Fast Ethernet Controller" },
132 	{ 0x1af4, 0x1000, "Virtio network device" },
133 	{ 0x1af4, 0x1001, "Virtio block device" },
134 	{ 0x1af4, 0x1002, "Virtio memory balloon" },
135 	{ 0x1af4, 0x1003, "Virtio console" },
136 	{ 0x5333, 0x8811, "S3 86c764/765 [Trio32/64/64V+]" },
137 	{ 0x5333, 0x883d, "S3 Virge/VX" },
138 	{ 0x5333, 0x88d0, "S3 Vision 964 vers 0" },
139 	{ 0x5333, 0x8a01, "S3 Virge/DX or /GX" },
140 	{ 0x8086, 0x1004, "Intel 82543GC Gigabit Ethernet Controller" },
141 	{ 0x8086, 0x100E, "Intel PRO/1000 MT Desktop Adapter" },
142 	{ 0x8086, 0x100F, "Intel PRO/1000 MT 82545EM" },
143  	{ 0x8086, 0x1029, "Intel EtherExpressPro100 ID1029" },
144  	{ 0x8086, 0x1030, "Intel Corporation 82559 InBusiness 10/100" },
145 	{ 0x8086, 0x1031, "Intel Corporation 82801CAM PRO/100 VE" },
146 	{ 0x8086, 0x1032, "Intel Corporation 82801CAM PRO/100 VE" },
147  	{ 0x8086, 0x103d, "Intel Corporation 82801DB PRO/100 VE (MOB)" },
148  	{ 0x8086, 0x1064, "Intel Corporation 82562 PRO/100 VE" },
149 	{ 0x8086, 0x107C, "Intel PRO/1000 GT Desktop Adapter" },
150 	{ 0x8086, 0x10CD, "Intel PRO/1000 Gigabit Network Connection" },
151 	{ 0x8086, 0x10D3, "Intel 82574L Gigabit Network Connection" },
152 	{ 0x8086, 0x105E, "Intel 82571EB Gigabit Ethernet Controller" },
153  	{ 0x8086, 0x1209, "Intel EtherExpressPro100 82559ER" },
154  	{ 0x8086, 0x1229, "Intel EtherExpressPro100 82557/8/9" },
155 	{ 0x8086, 0x122D, "Intel 82437FX" },
156 	{ 0x8086, 0x122E, "Intel 82371FB (PIIX)" },
157 	{ 0x8086, 0x1230, "Intel 82371FB (IDE)" },
158 	{ 0x8086, 0x1237, "Intel 82441FX (440FX)" },
159 	{ 0x8086, 0x1250, "Intel 82439HX" },
160 	{ 0x8086, 0x1A30, "Intel 82845B/A MCH" },
161 	{ 0x8086, 0x1A31, "Intel 82845B/A PCI Bridge to AGP port" },
162 	{ 0x8086, 0x2440, "Intel 82801B PCI to ISA bridge" },
163  	{ 0x8086, 0x2449, "Intel EtherExpressPro100 82562EM" },
164  	{ 0x8086, 0x244e, "Intel 82801 PCI Bridge" },
165  	{ 0x8086, 0x2560, "Intel 82845G/GL[Brookdale-G]/GE/PE" },
166  	{ 0x8086, 0x2561, "Intel 82845G/GL/GE/PE Host-to-AGP Bridge" },
167 	{ 0x8086, 0x7000, "Intel 82371SB" },
168 	{ 0x8086, 0x7010, "Intel 82371SB (IDE)" },
169 	{ 0x8086, 0x7020, "Intel 82371SB (USB)" },
170  	{ 0x8086, 0x7030, "Intel 82437VX" },	/* asw 2005-03-02 */
171  	{ 0x8086, 0x7100, "Intel 82371AB" },  	/* asw 2004-07-31 */
172 	{ 0x8086, 0x7100, "Intel 82371AB" },
173 	{ 0x8086, 0x7110, "Intel 82371AB (PIIX4)" },
174 	{ 0x8086, 0x7111, "Intel 82371AB (IDE)" },
175 	{ 0x8086, 0x7112, "Intel 82371AB (USB)" },
176 	{ 0x8086, 0x7113, "Intel 82371AB (Power)" },
177  	{ 0x8086, 0x7124, "Intel 82801AA" },	/* asw 2004-11-09 */
178 	{ 0x8086, 0x7190, "Intel 82443BX" },
179 	{ 0x8086, 0x7191, "Intel 82443BX (AGP bridge)" },
180 	{ 0x8086, 0x7192, "Intel 82443BX (Host-to-PCI bridge)" },
181 	{ 0x80ee, 0xcafe, "Oracle VirtualBox backdoor device" },
182 	{ 0x9004, 0x8178, "Adaptec AHA-2940U/2940UW Ultra/Ultra-Wide SCSI Ctrlr" },
183 	{ 0x9005, 0x0080, "Adaptec AIC-7892A Ultra160/m PCI SCSI Controller" },
184 	{ 0x0000, 0x0000, NULL }
185 };
186 
187 struct pci_baseclass pci_baseclass_table[]=
188 {
189 	{ 0x00, "No device class" },
190 	{ 0x01, "Mass storage controller" },
191 	{ 0x02, "Network controller" },
192 	{ 0x03, "Display controller" },
193 	{ 0x04, "Multimedia device" },
194 	{ 0x05, "Memory controller" },
195 	{ 0x06, "Bridge device" },
196 	{ 0x07, "Simple comm. controller" },
197 	{ 0x08, "Base system peripheral" },
198 	{ 0x09, "Input device" },
199 	{ 0x0A, "Docking station" },
200 	{ 0x0B, "Processor" },
201 	{ 0x0C, "Serial bus controller" },
202 	{ 0x0d, "Wireless controller" },
203 	{ 0x0e, "Intelligent I/O controller" },
204 	{ 0x0f, "Satellite comm. controller" },
205 	{ 0x10, "Encryption/decryption controller" },
206 	{ 0x11, "Data acquisition controller" },
207 	{ 0xff, "Misc. device" },
208 
209 	{ 0x00, NULL }
210 };
211 
212 /* -1 in the infclass field is a wildcard for infclass */
213 struct pci_subclass pci_subclass_table[]=
214 {
215 	{ 0x00, 0x01, 0x00, "VGA-compatible device" },
216 
217 	{ 0x01, 0x00, 0x00, "SCSI bus controller" },
218 	{ 0x01, 0x01, -1,   "IDE controller" },
219 	{ 0x01, 0x02, 0x00, "Floppy disk controller" },
220 	{ 0x01, 0x03, 0x00, "IPI controller" },
221 	{ 0x01, 0x04, 0x00, "RAID controller" },
222 	{ 0x01, 0x06, 0x01, "AHCI controller" },
223 	{ 0x01, 0x80, 0x00, "Other mass storage controller" },
224 
225 	{ 0x02, 0x00, 0x00, "Ethernet controller" },
226 	{ 0x02, 0x01, 0x00, "Token Ring controller" },
227 	{ 0x02, 0x02, 0x00, "FDDI controller" },
228 	{ 0x02, 0x03, 0x00, "ATM controller" },
229 	{ 0x02, 0x04, 0x00, "ISDN controller" },
230 	{ 0x02, 0x80, 0x00, "Other network controller" },
231 
232 	{ 0x03, 0x00, 0x00, "VGA-compatible controller" },
233 	{ 0x03, 0x00, 0x01, "8514-compatible controller" },
234 	{ 0x03, 0x01, 0x00, "XGA controller" },
235 	{ 0x03, 0x02, 0x00, "3D controller" },
236 	{ 0x03, 0x80, 0x00, "Other display controller" },
237 
238 	{ 0x04, 0x00, 0x00, "Video device" },
239 	{ 0x04, 0x01, 0x00, "Audio device" },
240 	{ 0x04, 0x02, 0x00, "Computer telephony device" },
241 	{ 0x04, 0x80, 0x00, "Other multimedia device" },
242 
243 	{ 0x06, 0x00, 0x00, "Host bridge" },
244 	{ 0x06, 0x01, 0x00, "ISA bridge" },
245 	{ 0x06, 0x02, 0x00, "EISA bridge" },
246 	{ 0x06, 0x03, 0x00, "MCA bridge" },
247 	{ 0x06, 0x04, 0x00, "PCI-to-PCI bridge" },
248 	{ 0x06, 0x04, 0x01, "Subtractive decode PCI-to-PCI bridge" },
249 	{ 0x06, 0x05, 0x00, "PCMCIA bridge" },
250 	{ 0x06, 0x06, 0x00, "NuBus bridge" },
251 	{ 0x06, 0x07, 0x00, "CardBus bridge" },
252 	{ 0x06, 0x08, -1,   "RACEway bridge" },
253 	{ 0x06, 0x09, -1,   "Semi-transparent PCI-to-PCI bridge" },
254 	{ 0x06, 0x80, 0x00, "Other bridge device" },
255 
256 	{ 0x0C, 0x00, 0x00, "IEEE 1394 (FireWire)" },
257 	{ 0x0C, 0x00, 0x10, "IEEE 1394 (OpenHCI)" },
258 	{ 0x0C, 0x01, 0x00, "ACCESS bus" },
259 	{ 0x0C, 0x02, 0x00, "SSA" },
260 	{ 0x0C, 0x03, 0x00, "USB (with UHC)" },
261 	{ 0x0C, 0x03, 0x10, "USB (with OHC)" },
262 	{ 0x0C, 0x03, 0x80, "USB (other host inf.)" },
263 	{ 0x0C, 0x03, 0xFE, "USB device" },
264 	{ 0x0C, 0x04, 0x00, "Fibre Channel" },
265 	{ 0x0C, 0x05, 0x00, "SMBus" },
266 
267 	{ 0x00, 0x00, 0x00, NULL }
268 };
269 
270 #if 0
271 struct pci_intel_ctrl pci_intel_ctrl[]=
272 {
273 	{ 0x1022, 0x700C, },	/* AMD-762 */
274 	{ 0x1039, 0x0406, },	/* SiS 85C501/2 */
275 	{ 0x1039, 0x5597, },	/* SiS 5582 */
276 	{ 0x10B9, 0x1541, },	/* ALI M1541 */
277 	{ 0x1106, 0x0305, },	/* VIA VT8363/8365 */
278 	{ 0x1106, 0x3099, },	/* VIA VT8367 [KT266] */
279 	{ 0x1106, 0x3188, },	/* VIA */
280 	{ 0x1106, 0x0282, },	/* VIA */
281 	{ 0x1106, 0x0204, },	/* VIA VT8367 [KT266] */
282 	{ 0x8086, 0x122D, },	/* Intel 82437FX */
283 	{ 0x8086, 0x1237, }, 	/* Intel 82441FX */
284 	{ 0x8086, 0x1250, },	/* Intel 82439HX */
285 	{ 0x8086, 0x1A30, },	/* Intel 82845 MCH */
286 	{ 0x8086, 0x2560, },	/* Intel 82845G/GL[Brookdale-G]/GE/PE */
287  	{ 0x8086, 0x7030, },	/* Intel 82437VX (asw 2005-03-02) */
288  	{ 0x8086, 0x7100, },	/* Intel 82371AB (asw 2004-07-31) */
289  	{ 0x8086, 0x7124, },	/* Intel 82801AA (asw 2004-11-09) */
290 	{ 0x8086, 0x7190, },	/* Intel 82443BX - AGP enabled */
291 	{ 0x8086, 0x7192, },	/* Intel 82443BX - AGP disabled */
292 	{ 0x0000, 0x0000, },
293 };
294 #endif
295 
296 struct pci_isabridge pci_isabridge[]=
297 {
298 	{ 0x1022, 0x7410, 1, PCI_IB_AMD,	},	/* AMD-766 */
299 	{ 0x1039, 0x0008, 1, PCI_IB_SIS,	},	/* SiS 85C503/5513 */
300 	{ 0x10B9, 0x1533, 1, PCI_IB_PIIX,	},	/* ALI M1533 */
301 	{ 0x1106, 0x0686, 1, PCI_IB_VIA,	},	/* VIA VT82C686 */
302 	{ 0x1106, 0x3074, 1, PCI_IB_VIA,	},	/* VIA VT8233 */
303 	{ 0x1106, 0x3227, 1, PCI_IB_VIA,	},	/* VIA */
304 	{ 0x8086, 0x122E, 1, PCI_IB_PIIX,	},	/* Intel 82371FB */
305 	{ 0x8086, 0x2440, 1, PCI_IB_PIIX,	},	/* Intel 82801B */
306 	{ 0x8086, 0x7000, 1, PCI_IB_PIIX,	},	/* Intel 82371SB */
307  	{ 0x8086, 0x7030, 1, PCI_IB_PIIX,	},	/* Intel 82437VX (asw 2005-03-02) */
308  	{ 0x8086, 0x7100, 1, PCI_IB_PIIX,	},	/* Intel 82371AB (asw 2004-07-31) */
309  	{ 0x8086, 0x7110, 1, PCI_IB_PIIX,	},	/* Intel PIIX4 */
310  	{ 0x8086, 0x7124, 1, PCI_IB_PIIX,	},	/* Intel 82801AA (asw 2004-11-09) */
311 	{ 0x0000, 0x0000, 0, 0, 		},
312 };
313 
314 struct pci_pcibridge pci_pcibridge[]=
315 {
316 #if 0
317 	{ 0x8086, 0x1A31, PCI_PCIB_INTEL, },	/* Intel 82845B/A AGP Bridge */
318 	{ 0x8086, 0x2448, PCI_PCIB_INTEL, },	/* Intel 82801 Mobile */
319 	{ 0x8086, 0x244e, PCI_PCIB_INTEL, },	/* Intel 82801 PCI Bridge */
320 	{ 0x8086, 0x2561, PCI_PCIB_INTEL, },	/* Intel 82845 AGP Bridge */
321 	{ 0x8086, 0x7191, PCI_PCIB_INTEL, },	/* Intel 82443BX (AGP bridge) */
322 	{ 0x1022, 0x700D, PCI_PCIB_INTEL, },	/* AMD-762 (AGP 4x) */
323 	{ 0x10B9, 0x5243, PCI_PCIB_INTEL, },	/* ALI M5243 */
324 	{ 0x1106, 0x8305, PCI_AGPB_VIA, },	/* VIA VT8365 [KM133 AGP] */
325 	{ 0x1106, 0xB188, PCI_AGPB_VIA, },	/* VT8237 PCI bridge */
326 #endif
327 	{ 0x0000, 0x0000, 0, },
328 };
329 
330 /*
331  * $PchId: pci_table.c,v 1.7 2003/09/05 10:53:22 philip Exp $
332  */
333