Import 2.0.13
[davej-history.git] / include / linux / pci.h
blob9effe926c300557abfb7bee07065cf23359e3483
1 /*
2 * PCI defines and function prototypes
3 * Copyright 1994, Drew Eckhardt
5 * For more information, please consult
6 *
7 * PCI BIOS Specification Revision
8 * PCI Local Bus Specification
9 * PCI System Design Guide
11 * PCI Special Interest Group
12 * M/S HF3-15A
13 * 5200 N.E. Elam Young Parkway
14 * Hillsboro, Oregon 97124-6497
15 * +1 (503) 696-2000
16 * +1 (800) 433-5177
18 * Manuals are $25 each or $50 for all three, plus $7 shipping
19 * within the United States, $35 abroad.
24 /* PROCEDURE TO REPORT NEW PCI DEVICES
25 * We are trying to collect information on new PCI devices, using
26 * the standard PCI identification procedure. If some warning is
27 * displayed at boot time, please report
28 * - /proc/pci
29 * - your exact hardware description. Try to find out
30 * which device is unknown. It may be you mainboard chipset.
31 * PCI-CPU bridge or PCI-ISA bridge.
32 * - If you can't find the actual information in your hardware
33 * booklet, try to read the references of the chip on the board.
34 * - Send all that to linux-pcisupport@cao-vlsi.ibp.fr,
35 * and I'll add your device to the list as soon as possible
37 * BEFORE you send a mail, please check the latest linux releases
38 * to be sure it has not been recently added.
40 * Thanks
41 * Frederic Potter.
46 #ifndef PCI_H
47 #define PCI_H
50 * Under PCI, each device has 256 bytes of configuration address space,
51 * of which the first 64 bytes are standardized as follows:
53 #define PCI_VENDOR_ID 0x00/* 16 bits */
54 #define PCI_DEVICE_ID 0x02/* 16 bits */
55 #define PCI_COMMAND 0x04/* 16 bits */
56 #define PCI_COMMAND_IO 0x1/* Enable response in I/O space */
57 #define PCI_COMMAND_MEMORY 0x2/* Enable response in Memory space */
58 #define PCI_COMMAND_MASTER 0x4/* Enable bus mastering */
59 #define PCI_COMMAND_SPECIAL 0x8/* Enable response to special cycles */
60 #define PCI_COMMAND_INVALIDATE 0x10/* Use memory write and invalidate */
61 #define PCI_COMMAND_VGA_PALETTE 0x20/* Enable palette snooping */
62 #define PCI_COMMAND_PARITY 0x40/* Enable parity checking */
63 #define PCI_COMMAND_WAIT 0x80/* Enable address/data stepping */
64 #define PCI_COMMAND_SERR 0x100/* Enable SERR */
65 #define PCI_COMMAND_FAST_BACK 0x200/* Enable back-to-back writes */
67 #define PCI_STATUS 0x06/* 16 bits */
68 #define PCI_STATUS_66MHZ 0x20/* Support 66 Mhz PCI 2.1 bus */
69 #define PCI_STATUS_UDF 0x40/* Support User Definable Features */
71 #define PCI_STATUS_FAST_BACK 0x80/* Accept fast-back to back */
72 #define PCI_STATUS_PARITY 0x100/* Detected parity error */
73 #define PCI_STATUS_DEVSEL_MASK 0x600/* DEVSEL timing */
74 #define PCI_STATUS_DEVSEL_FAST 0x000
75 #define PCI_STATUS_DEVSEL_MEDIUM 0x200
76 #define PCI_STATUS_DEVSEL_SLOW 0x400
77 #define PCI_STATUS_SIG_TARGET_ABORT 0x800/* Set on target abort */
78 #define PCI_STATUS_REC_TARGET_ABORT 0x1000/* Master ack of " */
79 #define PCI_STATUS_REC_MASTER_ABORT 0x2000/* Set on master abort */
80 #define PCI_STATUS_SIG_SYSTEM_ERROR 0x4000/* Set when we drive SERR */
81 #define PCI_STATUS_DETECTED_PARITY 0x8000/* Set on parity error */
83 #define PCI_CLASS_REVISION 0x08/* High 24 bits are class, low 8
84 revision */
85 #define PCI_REVISION_ID 0x08/* Revision ID */
86 #define PCI_CLASS_PROG 0x09/* Reg. Level Programming Interface */
87 #define PCI_CLASS_DEVICE 0x0a/* Device class */
89 #define PCI_CACHE_LINE_SIZE 0x0c/* 8 bits */
90 #define PCI_LATENCY_TIMER 0x0d/* 8 bits */
91 #define PCI_HEADER_TYPE 0x0e/* 8 bits */
92 #define PCI_BIST 0x0f/* 8 bits */
93 #define PCI_BIST_CODE_MASK 0x0f/* Return result */
94 #define PCI_BIST_START 0x40/* 1 to start BIST, 2 secs or less */
95 #define PCI_BIST_CAPABLE 0x80/* 1 if BIST capable */
98 * Base addresses specify locations in memory or I/O space.
99 * Decoded size can be determined by writing a value of
100 * 0xffffffff to the register, and reading it back. Only
101 * 1 bits are decoded.
103 #define PCI_BASE_ADDRESS_0 0x10/* 32 bits */
104 #define PCI_BASE_ADDRESS_1 0x14/* 32 bits */
105 #define PCI_BASE_ADDRESS_2 0x18/* 32 bits */
106 #define PCI_BASE_ADDRESS_3 0x1c/* 32 bits */
107 #define PCI_BASE_ADDRESS_4 0x20/* 32 bits */
108 #define PCI_BASE_ADDRESS_5 0x24/* 32 bits */
109 #define PCI_BASE_ADDRESS_SPACE 0x01/* 0 = memory, 1 = I/O */
110 #define PCI_BASE_ADDRESS_SPACE_IO 0x01
111 #define PCI_BASE_ADDRESS_SPACE_MEMORY 0x00
112 #define PCI_BASE_ADDRESS_MEM_TYPE_MASK 0x06
113 #define PCI_BASE_ADDRESS_MEM_TYPE_32 0x00/* 32 bit address */
114 #define PCI_BASE_ADDRESS_MEM_TYPE_1M 0x02/* Below 1M */
115 #define PCI_BASE_ADDRESS_MEM_TYPE_64 0x04/* 64 bit address */
116 #define PCI_BASE_ADDRESS_MEM_PREFETCH 0x08/* prefetchable? */
117 #define PCI_BASE_ADDRESS_MEM_MASK (~0x0f)
118 #define PCI_BASE_ADDRESS_IO_MASK (~0x03)
119 /* bit 1 is reserved if address_space = 1 */
121 #define PCI_CARDBUS_CIS 0x28
122 #define PCI_SUBSYSTEM_ID 0x2c
123 #define PCI_SUBSYSTEM_VENDOR_ID 0x2e
124 #define PCI_ROM_ADDRESS 0x30/* 32 bits */
125 #define PCI_ROM_ADDRESS_ENABLE 0x01/* Write 1 to enable ROM,
126 bits 31..11 are address,
127 10..2 are reserved */
128 /* 0x34-0x3b are reserved */
129 #define PCI_INTERRUPT_LINE 0x3c/* 8 bits */
130 #define PCI_INTERRUPT_PIN 0x3d/* 8 bits */
131 #define PCI_MIN_GNT 0x3e/* 8 bits */
132 #define PCI_MAX_LAT 0x3f/* 8 bits */
134 #define PCI_CLASS_NOT_DEFINED 0x0000
135 #define PCI_CLASS_NOT_DEFINED_VGA 0x0001
137 #define PCI_BASE_CLASS_STORAGE 0x01
138 #define PCI_CLASS_STORAGE_SCSI 0x0100
139 #define PCI_CLASS_STORAGE_IDE 0x0101
140 #define PCI_CLASS_STORAGE_FLOPPY 0x0102
141 #define PCI_CLASS_STORAGE_IPI 0x0103
142 #define PCI_CLASS_STORAGE_RAID 0x0104
143 #define PCI_CLASS_STORAGE_OTHER 0x0180
145 #define PCI_BASE_CLASS_NETWORK 0x02
146 #define PCI_CLASS_NETWORK_ETHERNET 0x0200
147 #define PCI_CLASS_NETWORK_TOKEN_RING 0x0201
148 #define PCI_CLASS_NETWORK_FDDI 0x0202
149 #define PCI_CLASS_NETWORK_ATM 0x0203
150 #define PCI_CLASS_NETWORK_OTHER 0x0280
152 #define PCI_BASE_CLASS_DISPLAY 0x03
153 #define PCI_CLASS_DISPLAY_VGA 0x0300
154 #define PCI_CLASS_DISPLAY_XGA 0x0301
155 #define PCI_CLASS_DISPLAY_OTHER 0x0380
157 #define PCI_BASE_CLASS_MULTIMEDIA 0x04
158 #define PCI_CLASS_MULTIMEDIA_VIDEO 0x0400
159 #define PCI_CLASS_MULTIMEDIA_AUDIO 0x0401
160 #define PCI_CLASS_MULTIMEDIA_OTHER 0x0480
162 #define PCI_BASE_CLASS_MEMORY 0x05
163 #define PCI_CLASS_MEMORY_RAM 0x0500
164 #define PCI_CLASS_MEMORY_FLASH 0x0501
165 #define PCI_CLASS_MEMORY_OTHER 0x0580
167 #define PCI_BASE_CLASS_BRIDGE 0x06
168 #define PCI_CLASS_BRIDGE_HOST 0x0600
169 #define PCI_CLASS_BRIDGE_ISA 0x0601
170 #define PCI_CLASS_BRIDGE_EISA 0x0602
171 #define PCI_CLASS_BRIDGE_MC 0x0603
172 #define PCI_CLASS_BRIDGE_PCI 0x0604
173 #define PCI_CLASS_BRIDGE_PCMCIA 0x0605
174 #define PCI_CLASS_BRIDGE_NUBUS 0x0606
175 #define PCI_CLASS_BRIDGE_CARDBUS 0x0607
176 #define PCI_CLASS_BRIDGE_OTHER 0x0680
179 #define PCI_BASE_CLASS_COMMUNICATION 0x07
180 #define PCI_CLASS_COMMUNICATION_SERIAL 0x0700
181 #define PCI_CLASS_COMMUNICATION_PARALLEL 0x0701
182 #define PCI_CLASS_COMMUNICATION_OTHER 0x0780
184 #define PCI_BASE_CLASS_SYSTEM 0x08
185 #define PCI_CLASS_SYSTEM_PIC 0x0800
186 #define PCI_CLASS_SYSTEM_DMA 0x0801
187 #define PCI_CLASS_SYSTEM_TIMER 0x0802
188 #define PCI_CLASS_SYSTEM_RTC 0x0803
189 #define PCI_CLASS_SYSTEM_OTHER 0x0880
191 #define PCI_BASE_CLASS_INPUT 0x09
192 #define PCI_CLASS_INPUT_KEYBOARD 0x0900
193 #define PCI_CLASS_INPUT_PEN 0x0901
194 #define PCI_CLASS_INPUT_MOUSE 0x0902
195 #define PCI_CLASS_INPUT_OTHER 0x0980
197 #define PCI_BASE_CLASS_DOCKING 0x0a
198 #define PCI_CLASS_DOCKING_GENERIC 0x0a00
199 #define PCI_CLASS_DOCKING_OTHER 0x0a01
201 #define PCI_BASE_CLASS_PROCESSOR 0x0b
202 #define PCI_CLASS_PROCESSOR_386 0x0b00
203 #define PCI_CLASS_PROCESSOR_486 0x0b01
204 #define PCI_CLASS_PROCESSOR_PENTIUM 0x0b02
205 #define PCI_CLASS_PROCESSOR_ALPHA 0x0b10
206 #define PCI_CLASS_PROCESSOR_POWERPC 0x0b20
207 #define PCI_CLASS_PROCESSOR_CO 0x0b40
209 #define PCI_BASE_CLASS_SERIAL 0x0c
210 #define PCI_CLASS_SERIAL_FIREWIRE 0x0c00
211 #define PCI_CLASS_SERIAL_ACCESS 0x0c01
212 #define PCI_CLASS_SERIAL_SSA 0x0c02
213 #define PCI_CLASS_SERIAL_USB 0x0c03
214 #define PCI_CLASS_SERIAL_FIBER 0x0c04
216 #define PCI_CLASS_OTHERS 0xff
219 * Vendor and card ID's: sort these numerically according to vendor
220 * (and according to card ID within vendor)
222 #define PCI_VENDOR_ID_COMPAQ 0x0e11
223 #define PCI_DEVICE_ID_COMPAQ_1280 0x3033
224 #define PCI_DEVICE_ID_COMPAQ_THUNDER 0xf130
226 #define PCI_VENDOR_ID_NCR 0x1000
227 #define PCI_DEVICE_ID_NCR_53C810 0x0001
228 #define PCI_DEVICE_ID_NCR_53C820 0x0002
229 #define PCI_DEVICE_ID_NCR_53C825 0x0003
230 #define PCI_DEVICE_ID_NCR_53C815 0x0004
232 #define PCI_VENDOR_ID_ATI 0x1002
233 #define PCI_DEVICE_ID_ATI_68800 0x4158
234 #define PCI_DEVICE_ID_ATI_215CT222 0x4354
235 #define PCI_DEVICE_ID_ATI_210888CX 0x4358
236 #define PCI_DEVICE_ID_ATI_210888GX 0x4758
238 #define PCI_VENDOR_ID_VLSI 0x1004
239 #define PCI_DEVICE_ID_VLSI_82C592 0x0005
240 #define PCI_DEVICE_ID_VLSI_82C593 0x0006
241 #define PCI_DEVICE_ID_VLSI_82C594 0x0007
242 #define PCI_DEVICE_ID_VLSI_82C597 0x0009
244 #define PCI_VENDOR_ID_ADL 0x1005
245 #define PCI_DEVICE_ID_ADL_2301 0x2301
247 #define PCI_VENDOR_ID_NS 0x100b
248 #define PCI_DEVICE_ID_NS_87410 0xd001
250 #define PCI_VENDOR_ID_TSENG 0x100c
251 #define PCI_DEVICE_ID_TSENG_W32P_2 0x3202
252 #define PCI_DEVICE_ID_TSENG_W32P_b 0x3205
253 #define PCI_DEVICE_ID_TSENG_W32P_c 0x3206
254 #define PCI_DEVICE_ID_TSENG_W32P_d 0x3207
256 #define PCI_VENDOR_ID_WEITEK 0x100e
257 #define PCI_DEVICE_ID_WEITEK_P9000 0x9001
258 #define PCI_DEVICE_ID_WEITEK_P9100 0x9100
260 #define PCI_VENDOR_ID_DEC 0x1011
261 #define PCI_DEVICE_ID_DEC_BRD 0x0001
262 #define PCI_DEVICE_ID_DEC_TULIP 0x0002
263 #define PCI_DEVICE_ID_DEC_TGA 0x0004
264 #define PCI_DEVICE_ID_DEC_TULIP_FAST 0x0009
265 #define PCI_DEVICE_ID_DEC_FDDI 0x000F
266 #define PCI_DEVICE_ID_DEC_TULIP_PLUS 0x0014
268 #define PCI_VENDOR_ID_CIRRUS 0x1013
269 #define PCI_DEVICE_ID_CIRRUS_5430 0x00a0
270 #define PCI_DEVICE_ID_CIRRUS_5434_4 0x00a4
271 #define PCI_DEVICE_ID_CIRRUS_5434_8 0x00a8
272 #define PCI_DEVICE_ID_CIRRUS_5436 0x00ac
273 #define PCI_DEVICE_ID_CIRRUS_6729 0x1100
274 #define PCI_DEVICE_ID_CIRRUS_7542 0x1200
275 #define PCI_DEVICE_ID_CIRRUS_7543 0x1202
277 #define PCI_VENDOR_ID_IBM 0x1014
278 #define PCI_DEVICE_ID_IBM_82G2675 0x001d
280 #define PCI_VENDOR_ID_WD 0x101c
281 #define PCI_DEVICE_ID_WD_7197 0x3296
283 #define PCI_VENDOR_ID_AMD 0x1022
284 #define PCI_DEVICE_ID_AMD_LANCE 0x2000
285 #define PCI_DEVICE_ID_AMD_SCSI 0x2020
287 #define PCI_VENDOR_ID_TRIDENT 0x1023
288 #define PCI_DEVICE_ID_TRIDENT_9420 0x9420
289 #define PCI_DEVICE_ID_TRIDENT_9440 0x9440
290 #define PCI_DEVICE_ID_TRIDENT_9660 0x9660
292 #define PCI_VENDOR_ID_AI 0x1025
293 #define PCI_DEVICE_ID_AI_M1435 0x1435
295 #define PCI_VENDOR_ID_MATROX 0x102B
296 #define PCI_DEVICE_ID_MATROX_MGA_2 0x0518
297 #define PCI_DEVICE_ID_MATROX_MIL 0x0519
298 #define PCI_DEVICE_ID_MATROX_MGA_IMP 0x0d10
300 #define PCI_VENDOR_ID_CT 0x102c
301 #define PCI_DEVICE_ID_CT_65545 0x00d8
302 #define PCI_DEVICE_ID_CT_65548 0x00dc
304 #define PCI_VENDOR_ID_MIRO 0x1031
305 #define PCI_DEVICE_ID_MIRO_36050 0x5601
307 #define PCI_VENDOR_ID_FD 0x1036
308 #define PCI_DEVICE_ID_FD_36C70 0x0000
310 #define PCI_VENDOR_ID_SI 0x1039
311 #define PCI_DEVICE_ID_SI_6201 0x0001
312 #define PCI_DEVICE_ID_SI_6202 0x0002
313 #define PCI_DEVICE_ID_SI_6205 0x0205
314 #define PCI_DEVICE_ID_SI_503 0x0008
315 #define PCI_DEVICE_ID_SI_501 0x0406
316 #define PCI_DEVICE_ID_SI_496 0x0496
317 #define PCI_DEVICE_ID_SI_601 0x0601
318 #define PCI_DEVICE_ID_SI_5511 0x5511
319 #define PCI_DEVICE_ID_SI_5513 0x5513
321 #define PCI_VENDOR_ID_HP 0x103c
322 #define PCI_DEVICE_ID_HP_J2585A 0x1030
324 #define PCI_VENDOR_ID_PCTECH 0x1042
325 #define PCI_DEVICE_ID_PCTECH_RZ1000 0x1000
326 #define PCI_DEVICE_ID_PCTECH_RZ1001 0x1001
328 #define PCI_VENDOR_ID_DPT 0x1044
329 #define PCI_DEVICE_ID_DPT 0xa400
331 #define PCI_VENDOR_ID_OPTI 0x1045
332 #define PCI_DEVICE_ID_OPTI_92C178 0xc178
333 #define PCI_DEVICE_ID_OPTI_82C557 0xc557
334 #define PCI_DEVICE_ID_OPTI_82C558 0xc558
335 #define PCI_DEVICE_ID_OPTI_82C621 0xc621
336 #define PCI_DEVICE_ID_OPTI_82C822 0xc822
338 #define PCI_VENDOR_ID_SGS 0x104a
339 #define PCI_DEVICE_ID_SGS_2000 0x0008
340 #define PCI_DEVICE_ID_SGS_1764 0x0009
342 #define PCI_VENDOR_ID_BUSLOGIC 0x104B
343 #define PCI_DEVICE_ID_BUSLOGIC_MULTIMASTER_NC 0x0140
344 #define PCI_DEVICE_ID_BUSLOGIC_MULTIMASTER 0x1040
345 #define PCI_DEVICE_ID_BUSLOGIC_FLASHPOINT 0x8130
347 #define PCI_VENDOR_ID_OAK 0x104e
348 #define PCI_DEVICE_ID_OAK_OTI107 0x0107
350 #define PCI_VENDOR_ID_PROMISE 0x105a
351 #define PCI_DEVICE_ID_PROMISE_5300 0x5300
353 #define PCI_VENDOR_ID_N9 0x105d
354 #define PCI_DEVICE_ID_N9_I128 0x2309
355 #define PCI_DEVICE_ID_N9_I128_2 0x2339
357 #define PCI_VENDOR_ID_UMC 0x1060
358 #define PCI_DEVICE_ID_UMC_UM8673F 0x0101
359 #define PCI_DEVICE_ID_UMC_UM8891A 0x0891
360 #define PCI_DEVICE_ID_UMC_UM8886BF 0x673a
361 #define PCI_DEVICE_ID_UMC_UM8886A 0x886a
362 #define PCI_DEVICE_ID_UMC_UM8881F 0x8881
363 #define PCI_DEVICE_ID_UMC_UM8886F 0x8886
364 #define PCI_DEVICE_ID_UMC_UM9017F 0x9017
365 #define PCI_DEVICE_ID_UMC_UM8886N 0xe886
366 #define PCI_DEVICE_ID_UMC_UM8891N 0xe891
368 #define PCI_VENDOR_ID_X 0x1061
369 #define PCI_DEVICE_ID_X_AGX016 0x0001
371 #define PCI_VENDOR_ID_NEXGEN 0x1074
372 #define PCI_DEVICE_ID_NEXGEN_82C501 0x4e78
374 #define PCI_VENDOR_ID_QLOGIC 0x1077
375 #define PCI_DEVICE_ID_QLOGIC_ISP1020 0x1020
376 #define PCI_DEVICE_ID_QLOGIC_ISP1022 0x1022
378 #define PCI_VENDOR_ID_LEADTEK 0x107d
379 #define PCI_DEVICE_ID_LEADTEK_805 0x0000
381 #define PCI_VENDOR_ID_CONTAQ 0x1080
382 #define PCI_DEVICE_ID_CONTAQ_82C599 0x0600
384 #define PCI_VENDOR_ID_FOREX 0x1083
386 #define PCI_VENDOR_ID_OLICOM 0x108d
388 #define PCI_VENDOR_ID_CMD 0x1095
389 #define PCI_DEVICE_ID_CMD_640 0x0640
390 #define PCI_DEVICE_ID_CMD_646 0x0646
392 #define PCI_VENDOR_ID_VISION 0x1098
393 #define PCI_DEVICE_ID_VISION_QD8500 0x0001
394 #define PCI_DEVICE_ID_VISION_QD8580 0x0002
396 #define PCI_VENDOR_ID_SIERRA 0x10a8
397 #define PCI_DEVICE_ID_SIERRA_STB 0x0000
399 #define PCI_VENDOR_ID_ACC 0x10aa
400 #define PCI_DEVICE_ID_ACC_2056 0x0000
402 #define PCI_VENDOR_ID_WINBOND 0x10ad
403 #define PCI_DEVICE_ID_WINBOND_83769 0x0001
404 #define PCI_DEVICE_ID_WINBOND_82C105 0x0105
406 #define PCI_VENDOR_ID_3COM 0x10b7
407 #define PCI_DEVICE_ID_3COM_3C590 0x5900
408 #define PCI_DEVICE_ID_3COM_3C595TX 0x5950
409 #define PCI_DEVICE_ID_3COM_3C595T4 0x5951
410 #define PCI_DEVICE_ID_3COM_3C595MII 0x5952
412 #define PCI_VENDOR_ID_AL 0x10b9
413 #define PCI_DEVICE_ID_AL_M1445 0x1445
414 #define PCI_DEVICE_ID_AL_M1449 0x1449
415 #define PCI_DEVICE_ID_AL_M1451 0x1451
416 #define PCI_DEVICE_ID_AL_M1461 0x1461
417 #define PCI_DEVICE_ID_AL_M1489 0x1489
418 #define PCI_DEVICE_ID_AL_M1511 0x1511
419 #define PCI_DEVICE_ID_AL_M1513 0x1513
420 #define PCI_DEVICE_ID_AL_M4803 0x5215
422 #define PCI_VENDOR_ID_ASP 0x10cd
423 #define PCI_DEVICE_ID_ASP_ABP940 0x1200
425 #define PCI_VENDOR_ID_CERN 0x10dc
426 #define PCI_DEVICE_ID_CERN_SPSB_PMC 0x0001
427 #define PCI_DEVICE_ID_CERN_SPSB_PCI 0x0002
429 #define PCI_VENDOR_ID_IMS 0x10e0
430 #define PCI_DEVICE_ID_IMS_8849 0x8849
432 #define PCI_VENDOR_ID_TEKRAM2 0x10e1
433 #define PCI_DEVICE_ID_TEKRAM2_690c 0x690c
435 #define PCI_VENDOR_ID_AMCC 0x10e8
436 #define PCI_DEVICE_ID_AMCC_MYRINET 0x8043
438 #define PCI_VENDOR_ID_INTERG 0x10ea
439 #define PCI_DEVICE_ID_INTERG_1680 0x1680
441 #define PCI_VENDOR_ID_REALTEK 0x10ec
442 #define PCI_DEVICE_ID_REALTEK_8029 0x8029
444 #define PCI_VENDOR_ID_INIT 0x1101
445 #define PCI_DEVICE_ID_INIT_320P 0x9100
447 #define PCI_VENDOR_ID_VIA 0x1106
448 #define PCI_DEVICE_ID_VIA_82C505 0x0505
449 #define PCI_DEVICE_ID_VIA_82C561 0x0561
450 #define PCI_DEVICE_ID_VIA_82C576 0x0576
451 #define PCI_DEVICE_ID_VIA_82C416 0x1571
453 #define PCI_VENDOR_ID_VORTEX 0x1119
454 #define PCI_DEVICE_ID_VORTEX_GDT60x0 0x0000
455 #define PCI_DEVICE_ID_VORTEX_GDT6000B 0x0001
456 #define PCI_DEVICE_ID_VORTEX_GDT6x10 0x0002
457 #define PCI_DEVICE_ID_VORTEX_GDT6x20 0x0003
458 #define PCI_DEVICE_ID_VORTEX_GDT6530 0x0004
459 #define PCI_DEVICE_ID_VORTEX_GDT6550 0x0005
460 #define PCI_DEVICE_ID_VORTEX_GDT6x17 0x0006
461 #define PCI_DEVICE_ID_VORTEX_GDT6x27 0x0007
462 #define PCI_DEVICE_ID_VORTEX_GDT6537 0x0008
463 #define PCI_DEVICE_ID_VORTEX_GDT6557 0x0009
464 #define PCI_DEVICE_ID_VORTEX_GDT6x15 0x000a
465 #define PCI_DEVICE_ID_VORTEX_GDT6x25 0x000b
466 #define PCI_DEVICE_ID_VORTEX_GDT6535 0x000c
467 #define PCI_DEVICE_ID_VORTEX_GDT6555 0x000d
469 #define PCI_VENDOR_ID_EF 0x111a
470 #define PCI_DEVICE_ID_EF_ATM_FPGA 0x0000
471 #define PCI_DEVICE_ID_EF_ATM_ASIC 0x0002
473 #define PCI_VENDOR_ID_FORE 0x1127
474 #define PCI_DEVICE_ID_FORE_PCA200PC 0x0210
475 #define PCI_DEVICE_ID_FORE_PCA200E 0x0300
477 #define PCI_VENDOR_ID_IMAGINGTECH 0x112f
478 #define PCI_DEVICE_ID_IMAGINGTECH_ICPCI 0x0000
480 #define PCI_VENDOR_ID_PLX 0x113c
481 #define PCI_DEVICE_ID_PLX_9060 0x0001
483 #define PCI_VENDOR_ID_ALLIANCE 0x1142
484 #define PCI_DEVICE_ID_ALLIANCE_PROMOTIO 0x3210
485 #define PCI_DEVICE_ID_ALLIANCE_PROVIDEO 0x6422
487 #define PCI_VENDOR_ID_VMIC 0x114a
488 #define PCI_DEVICE_ID_VMIC_VME 0x7587
490 #define PCI_VENDOR_ID_DIGI 0x114f
491 #define PCI_DEVICE_ID_DIGI_RIGHTSWITCH 0x0003
493 #define PCI_VENDOR_ID_MUTECH 0x1159
494 #define PCI_DEVICE_ID_MUTECH_MV1000 0x0001
496 #define PCI_VENDOR_ID_TOSHIBA 0x1179
498 #define PCI_VENDOR_ID_ZEITNET 0x1193
499 #define PCI_DEVICE_ID_ZEITNET_1221 0x0001
500 #define PCI_DEVICE_ID_ZEITNET_1225 0x0002
502 #define PCI_VENDOR_ID_SPECIALIX 0x11cb
503 #define PCI_DEVICE_ID_SPECIALIX_XIO 0x4000
504 #define PCI_DEVICE_ID_SPECIALIX_RIO 0x8000
506 #define PCI_VENDOR_ID_RP 0x11fe
507 #define PCI_DEVICE_ID_RP8OCTA 0x0001
508 #define PCI_DEVICE_ID_RP8INTF 0x0002
509 #define PCI_DEVICE_ID_RP16INTF 0x0003
510 #define PCI_DEVICE_ID_RP32INTF 0x0004
512 #define PCI_VENDOR_ID_CYCLADES 0x120e
513 #define PCI_DEVICE_ID_CYCLOM_Y_Lo 0x0100
514 #define PCI_DEVICE_ID_CYCLOM_Y_Hi 0x0101
515 #define PCI_DEVICE_ID_CYCLOM_Z_Lo 0x0200
516 #define PCI_DEVICE_ID_CYCLOM_Z_Hi 0x0201
518 #define PCI_VENDOR_ID_SYMPHONY 0x1c1c
519 #define PCI_DEVICE_ID_SYMPHONY_101 0x0001
521 #define PCI_VENDOR_ID_TEKRAM 0x1de1
522 #define PCI_DEVICE_ID_TEKRAM_DC290 0xdc29
524 #define PCI_VENDOR_ID_AVANCE 0x4005
525 #define PCI_DEVICE_ID_AVANCE_2302 0x2302
527 #define PCI_VENDOR_ID_S3 0x5333
528 #define PCI_DEVICE_ID_S3_811 0x8811
529 #define PCI_DEVICE_ID_S3_868 0x8880
530 #define PCI_DEVICE_ID_S3_928 0x88b0
531 #define PCI_DEVICE_ID_S3_864_1 0x88c0
532 #define PCI_DEVICE_ID_S3_864_2 0x88c1
533 #define PCI_DEVICE_ID_S3_964_1 0x88d0
534 #define PCI_DEVICE_ID_S3_964_2 0x88d1
535 #define PCI_DEVICE_ID_S3_968 0x88f0
537 #define PCI_VENDOR_ID_INTEL 0x8086
538 #define PCI_DEVICE_ID_INTEL_82375 0x0482
539 #define PCI_DEVICE_ID_INTEL_82424 0x0483
540 #define PCI_DEVICE_ID_INTEL_82378 0x0484
541 #define PCI_DEVICE_ID_INTEL_82430 0x0486
542 #define PCI_DEVICE_ID_INTEL_82434 0x04a3
543 #define PCI_DEVICE_ID_INTEL_7116 0x1223
544 #define PCI_DEVICE_ID_INTEL_82596 0x1226
545 #define PCI_DEVICE_ID_INTEL_82865 0x1227
546 #define PCI_DEVICE_ID_INTEL_82557 0x1229
547 #define PCI_DEVICE_ID_INTEL_82437 0x122d
548 #define PCI_DEVICE_ID_INTEL_82371_0 0x122e
549 #define PCI_DEVICE_ID_INTEL_82371_1 0x1230
550 #define PCI_DEVICE_ID_INTEL_82441 0x1237
551 #define PCI_DEVICE_ID_INTEL_82439 0x1250
552 #define PCI_DEVICE_ID_INTEL_82371SB_0 0x7000
553 #define PCI_DEVICE_ID_INTEL_82371SB_1 0x7010
554 #define PCI_DEVICE_ID_INTEL_P6 0x84c4
556 #define PCI_VENDOR_ID_ADAPTEC 0x9004
557 #define PCI_DEVICE_ID_ADAPTEC_7850 0x5078
558 #define PCI_DEVICE_ID_ADAPTEC_7855 0x5578
559 #define PCI_DEVICE_ID_ADAPTEC_7860 0x6078
560 #define PCI_DEVICE_ID_ADAPTEC_7870 0x7078
561 #define PCI_DEVICE_ID_ADAPTEC_7871 0x7178
562 #define PCI_DEVICE_ID_ADAPTEC_7872 0x7278
563 #define PCI_DEVICE_ID_ADAPTEC_7873 0x7378
564 #define PCI_DEVICE_ID_ADAPTEC_7874 0x7478
565 #define PCI_DEVICE_ID_ADAPTEC_7880 0x8078
566 #define PCI_DEVICE_ID_ADAPTEC_7881 0x8178
567 #define PCI_DEVICE_ID_ADAPTEC_7882 0x8278
568 #define PCI_DEVICE_ID_ADAPTEC_7883 0x8378
569 #define PCI_DEVICE_ID_ADAPTEC_7884 0x8478
571 #define PCI_VENDOR_ID_ATRONICS 0x907f
572 #define PCI_DEVICE_ID_ATRONICS_2015 0x2015
574 #define PCI_VENDOR_ID_HER 0xedd8
575 #define PCI_DEVICE_ID_HER_STING 0xa091
576 #define PCI_DEVICE_ID_HER_STINGARK 0xa099
579 * The PCI interface treats multi-function devices as independent
580 * devices. The slot/function address of each device is encoded
581 * in a single byte as follows:
583 * 7:3 = slot
584 * 2:0 = function
586 #define PCI_DEVFN(slot,func) ((((slot) & 0x1f) << 3) | ((func) & 0x07))
587 #define PCI_SLOT(devfn) (((devfn) >> 3) & 0x1f)
588 #define PCI_FUNC(devfn) ((devfn) & 0x07)
591 * There is one pci_dev structure for each slot-number/function-number
592 * combination:
594 struct pci_dev {
595 struct pci_bus *bus;/* bus this device is on */
596 struct pci_dev *sibling;/* next device on this bus */
597 struct pci_dev *next;/* chain of all devices */
599 void*sysdata;/* hook for sys-specific extension */
601 unsigned int devfn;/* encoded device & function index */
602 unsigned short vendor;
603 unsigned short device;
604 unsigned intclass;/* 3 bytes: (base,sub,prog-if) */
605 unsigned int master :1;/* set if device is master capable */
607 * In theory, the irq level can be read from configuration
608 * space and all would be fine. However, old PCI chips don't
609 * support these registers and return 0 instead. For example,
610 * the Vision864-P rev 0 chip can uses INTA, but returns 0 in
611 * the interrupt line and pin registers. pci_init()
612 * initializes this field with the value at PCI_INTERRUPT_LINE
613 * and it is the job of pcibios_fixup() to change it if
614 * necessary. The field must not be 0 unless the device
615 * cannot generate interrupts at all.
617 unsigned char irq;/* irq generated by this device */
620 struct pci_bus {
621 struct pci_bus *parent;/* parent bus this bridge is on */
622 struct pci_bus *children;/* chain of P2P bridges on this bus */
623 struct pci_bus *next;/* chain of all PCI buses */
625 struct pci_dev *self;/* bridge device as seen by parent */
626 struct pci_dev *devices;/* devices behind this bridge */
628 void*sysdata;/* hook for sys-specific extension */
630 unsigned char number;/* bus number */
631 unsigned char primary;/* number of primary bridge */
632 unsigned char secondary;/* number of secondary bridge */
633 unsigned char subordinate;/* max number of subordinate buses */
637 * This is used to map a vendor-id/device-id pair into device-specific
638 * information.
640 struct pci_dev_info {
641 unsigned short vendor;/* vendor id */
642 unsigned short device;/* device id */
644 const char*name;/* device name */
645 unsigned char bridge_type;/* bridge type or 0xff */
648 externstruct pci_bus pci_root;/* root bus */
649 externstruct pci_dev *pci_devices;/* list of all devices */
652 externunsigned longpci_init(unsigned long mem_start,unsigned long mem_end);
654 externstruct pci_dev_info *pci_lookup_dev(unsigned int vendor,
655 unsigned int dev);
656 externconst char*pci_strclass(unsigned intclass);
657 externconst char*pci_strvendor(unsigned int vendor);
658 externconst char*pci_strdev(unsigned int vendor,unsigned int device);
660 externintget_pci_list(char*buf);
662 #endif/* PCI_H */
close