root/include/linux/pci.h

/* [previous][next][first][last][top][bottom][index][help] */

INCLUDED FROM


   1 /*
   2  * PCI defines and function prototypes
   3  * Copyright 1994, Drew Eckhardt
   4  *
   5  * For more information, please consult 
   6  * 
   7  * PCI BIOS Specification Revision
   8  * PCI Local Bus Specification
   9  * PCI System Design Guide
  10  *
  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
  17  * 
  18  * Manuals are $25 each or $50 for all three, plus $7 shipping 
  19  * within the United States, $35 abroad.
  20  */
  21 
  22 
  23 
  24 /*      PROCEDURE TO REPORT NEW PCI DEVICES
  25  * We are trying to collect informations on new PCI devices, using
  26  * the standart 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
  36  *
  37  * BEFORE you send a mail, please check the latest linux releases
  38  * to be sure it has not been recently added.
  39  *
  40  *        Thanks
  41  *              Frederic Potter.
  42  */
  43 
  44 
  45 
  46 #ifndef PCI_H
  47 #define PCI_H
  48 
  49 /*
  50  * Under PCI, each device has 256 bytes of configuration address space,
  51  * of which the first 64 bytes are standardized as follows:
  52  */
  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 */
  66 
  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 */
  70 
  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 */
  82 
  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 */
  88 
  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 */
  96 
  97 /*
  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.
 102  */
 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 */
 120 
 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 */
 133 
 134 #define PCI_CLASS_NOT_DEFINED           0x0000
 135 #define PCI_CLASS_NOT_DEFINED_VGA       0x0001
 136 
 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
 144 
 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
 151 
 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
 156 
 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
 161 
 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
 166 
 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
 177 
 178 
 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
 183 
 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
 190 
 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
 196 
 197 #define PCI_BASE_CLASS_DOCKING          0x0a
 198 #define PCI_CLASS_DOCKING_GENERIC       0x0a00
 199 #define PCI_CLASS_DOCKING_OTHER         0x0a01
 200 
 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
 208 
 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
 215 
 216 #define PCI_CLASS_OTHERS                0xff
 217 
 218 /*
 219  * Vendor and card ID's: sort these numerically according to vendor
 220  * (and according to card ID within vendor)
 221  */
 222 #define PCI_VENDOR_ID_COMPAQ            0x0e11
 223 #define PCI_DEVICE_ID_COMPAQ_1280       0x3033
 224 #define PCI_DEVICE_ID_COMPAQ_THUNDER    0xf130
 225 
 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
 231 
 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
 237 
 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
 243 
 244 #define PCI_VENDOR_ID_ADL               0x1005
 245 #define PCI_DEVICE_ID_ADL_2301          0x2301
 246 
 247 #define PCI_VENDOR_ID_NS                0x100b
 248 #define PCI_DEVICE_ID_NS_87410          0xd001
 249 
 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
 255 
 256 #define PCI_VENDOR_ID_WEITEK            0x100e
 257 #define PCI_DEVICE_ID_WEITEK_P9000      0x9001
 258 #define PCI_DEVICE_ID_WEITEK_P9100      0x9100
 259 
 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
 267 
 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
 276 
 277 #define PCI_VENDOR_ID_IBM               0x1014
 278 #define PCI_DEVICE_ID_IBM_82G2675       0x001d
 279 
 280 #define PCI_VENDOR_ID_WD                0x101c
 281 #define PCI_DEVICE_ID_WD_7197           0x3296
 282 
 283 #define PCI_VENDOR_ID_AMD               0x1022
 284 #define PCI_DEVICE_ID_AMD_LANCE         0x2000
 285 #define PCI_DEVICE_ID_AMD_SCSI          0x2020
 286 
 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
 291 
 292 #define PCI_VENDOR_ID_AI                0x1025
 293 #define PCI_DEVICE_ID_AI_M1435          0x1435
 294 
 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
 299 
 300 #define PCI_VENDOR_ID_CT                0x102c
 301 #define PCI_DEVICE_ID_CT_65545          0x00d8
 302 #define PCI_DEVICE_ID_CT_65548          0x00dc
 303 
 304 #define PCI_VENDOR_ID_MIRO              0x1031
 305 #define PCI_DEVICE_ID_MIRO_36050        0x5601
 306 
 307 #define PCI_VENDOR_ID_FD                0x1036
 308 #define PCI_DEVICE_ID_FD_36C70          0x0000
 309 
 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
 320 
 321 #define PCI_VENDOR_ID_HP                0x103c
 322 #define PCI_DEVICE_ID_HP_J2585A         0x1030
 323 
 324 #define PCI_VENDOR_ID_PCTECH            0x1042
 325 #define PCI_DEVICE_ID_PCTECH_RZ1000     0x1000
 326 #define PCI_DEVICE_ID_PCTECH_RZ1001     0x1001
 327 
 328 #define PCI_VENDOR_ID_DPT               0x1044   
 329 #define PCI_DEVICE_ID_DPT               0xa400  
 330 
 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
 337 
 338 #define PCI_VENDOR_ID_SGS               0x104a
 339 #define PCI_DEVICE_ID_SGS_2000          0x0008
 340 #define PCI_DEVICE_ID_SGS_1764          0x0009
 341 
 342 #define PCI_VENDOR_ID_BUSLOGIC          0x104B
 343 #define PCI_DEVICE_ID_BUSLOGIC_946C_2   0x0140
 344 #define PCI_DEVICE_ID_BUSLOGIC_946C     0x1040
 345 #define PCI_DEVICE_ID_BUSLOGIC_930      0x8130
 346 
 347 #define PCI_VENDOR_ID_OAK               0x104e
 348 #define PCI_DEVICE_ID_OAK_OTI107        0x0107
 349 
 350 #define PCI_VENDOR_ID_PROMISE           0x105a
 351 #define PCI_DEVICE_ID_PROMISE_5300      0x5300
 352 
 353 #define PCI_VENDOR_ID_N9                0x105d
 354 #define PCI_DEVICE_ID_N9_I128           0x2309
 355 #define PCI_DEVICE_ID_N9_I128_2         0x2339
 356 
 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
 367 
 368 #define PCI_VENDOR_ID_X                 0x1061
 369 #define PCI_DEVICE_ID_X_AGX016          0x0001
 370 
 371 #define PCI_VENDOR_ID_NEXGEN            0x1074
 372 #define PCI_DEVICE_ID_NEXGEN_82C501     0x4e78
 373 
 374 #define PCI_VENDOR_ID_QLOGIC            0x1077
 375 #define PCI_DEVICE_ID_QLOGIC_ISP1020    0x1020
 376 #define PCI_DEVICE_ID_QLOGIC_ISP1022    0x1022
 377 
 378 #define PCI_VENDOR_ID_LEADTEK           0x107d
 379 #define PCI_DEVICE_ID_LEADTEK_805       0x0000
 380 
 381 #define PCI_VENDOR_ID_CONTAQ            0x1080
 382 #define PCI_DEVICE_ID_CONTAQ_82C599     0x0600
 383 
 384 #define PCI_VENDOR_ID_FOREX             0x1083
 385 
 386 #define PCI_VENDOR_ID_OLICOM            0x108d
 387 
 388 #define PCI_VENDOR_ID_CMD               0x1095
 389 #define PCI_DEVICE_ID_CMD_640           0x0640
 390 #define PCI_DEVICE_ID_CMD_646           0x0646
 391 
 392 #define PCI_VENDOR_ID_VISION            0x1098
 393 #define PCI_DEVICE_ID_VISION_QD8500     0x0001
 394 #define PCI_DEVICE_ID_VISION_QD8580     0x0002
 395 
 396 #define PCI_VENDOR_ID_SIERRA            0x10a8
 397 #define PCI_DEVICE_ID_SIERRA_STB        0x0000
 398 
 399 #define PCI_VENDOR_ID_ACC               0x10aa
 400 #define PCI_DEVICE_ID_ACC_2056          0x0000
 401 
 402 #define PCI_VENDOR_ID_WINBOND           0x10ad
 403 #define PCI_DEVICE_ID_WINBOND_83769     0x0001
 404 #define PCI_DEVICE_ID_WINBOND_82C105    0x0105
 405 
 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
 411 
 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
 421 
 422 #define PCI_VENDOR_ID_ASP               0x10cd
 423 #define PCI_DEVICE_ID_ASP_ABP940        0x1200
 424 
 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
 428 
 429 #define PCI_VENDOR_ID_IMS               0x10e0
 430 #define PCI_DEVICE_ID_IMS_8849          0x8849
 431 
 432 #define PCI_VENDOR_ID_TEKRAM2           0x10e1
 433 #define PCI_DEVICE_ID_TEKRAM2_690c      0x690c
 434 
 435 #define PCI_VENDOR_ID_AMCC              0x10e8
 436 #define PCI_DEVICE_ID_AMCC_MYRINET      0x8043
 437 
 438 #define PCI_VENDOR_ID_INTERG            0x10ea
 439 #define PCI_DEVICE_ID_INTERG_1680       0x1680
 440 
 441 #define PCI_VENDOR_ID_REALTEK           0x10ec
 442 #define PCI_DEVICE_ID_REALTEK_8029      0x8029
 443 
 444 #define PCI_VENDOR_ID_INIT              0x1101
 445 #define PCI_DEVICE_ID_INIT_320P         0x9100
 446 
 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
 452 
 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
 468 
 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
 472 
 473 #define PCI_VENDOR_ID_FORE              0x1127
 474 #define PCI_DEVICE_ID_FORE_PCA200PC     0x0210
 475 #define PCI_DEVICE_ID_FORE_PCA200E      0x0300
 476 
 477 #define PCI_VENDOR_ID_IMAGINGTECH       0x112f
 478 #define PCI_DEVICE_ID_IMAGINGTECH_ICPCI 0x0000
 479 
 480 #define PCI_VENDOR_ID_PLX               0x113c
 481 #define PCI_DEVICE_ID_PLX_9060          0x0001
 482 
 483 #define PCI_VENDOR_ID_ALLIANCE          0x1142
 484 #define PCI_DEVICE_ID_ALLIANCE_PROMOTIO 0x3210
 485 #define PCI_DEVICE_ID_ALLIANCE_PROVIDEO 0x6422
 486 
 487 #define PCI_VENDOR_ID_VMIC              0x114a
 488 #define PCI_DEVICE_ID_VMIC_VME          0x7587
 489 
 490 #define PCI_VENDOR_ID_MUTECH            0x1159
 491 #define PCI_DEVICE_ID_MUTECH_MV1000     0x0001
 492 
 493 #define PCI_VENDOR_ID_TOSHIBA           0x1179
 494 
 495 #define PCI_VENDOR_ID_ZEITNET           0x1193
 496 #define PCI_DEVICE_ID_ZEITNET_1221      0x0001
 497 #define PCI_DEVICE_ID_ZEITNET_1225      0x0002
 498 
 499 #define PCI_VENDOR_ID_SPECIALIX         0x11cb
 500 #define PCI_DEVICE_ID_SPECIALIX_XIO     0x4000
 501 #define PCI_DEVICE_ID_SPECIALIX_RIO     0x8000
 502 
 503 #define PCI_VENDOR_ID_RP               0x11fe
 504 #define PCI_DEVICE_ID_RP8OCTA          0x0001
 505 #define PCI_DEVICE_ID_RP8INTF          0x0002
 506 #define PCI_DEVICE_ID_RP16INTF         0x0003
 507 #define PCI_DEVICE_ID_RP32INTF         0x0004
 508 
 509 #define PCI_VENDOR_ID_CYCLADES          0x120e
 510 #define PCI_DEVICE_ID_CYCLADES_Y        0x0100
 511 
 512 #define PCI_VENDOR_ID_SYMPHONY          0x1c1c
 513 #define PCI_DEVICE_ID_SYMPHONY_101      0x0001
 514 
 515 #define PCI_VENDOR_ID_TEKRAM            0x1de1
 516 #define PCI_DEVICE_ID_TEKRAM_DC290      0xdc29
 517 
 518 #define PCI_VENDOR_ID_AVANCE            0x4005
 519 #define PCI_DEVICE_ID_AVANCE_2302       0x2302
 520 
 521 #define PCI_VENDOR_ID_S3                0x5333
 522 #define PCI_DEVICE_ID_S3_811            0x8811
 523 #define PCI_DEVICE_ID_S3_868            0x8880
 524 #define PCI_DEVICE_ID_S3_928            0x88b0
 525 #define PCI_DEVICE_ID_S3_864_1          0x88c0
 526 #define PCI_DEVICE_ID_S3_864_2          0x88c1
 527 #define PCI_DEVICE_ID_S3_964_1          0x88d0
 528 #define PCI_DEVICE_ID_S3_964_2          0x88d1
 529 #define PCI_DEVICE_ID_S3_968            0x88f0
 530 
 531 #define PCI_VENDOR_ID_INTEL             0x8086
 532 #define PCI_DEVICE_ID_INTEL_82375       0x0482
 533 #define PCI_DEVICE_ID_INTEL_82424       0x0483
 534 #define PCI_DEVICE_ID_INTEL_82378       0x0484
 535 #define PCI_DEVICE_ID_INTEL_82430       0x0486
 536 #define PCI_DEVICE_ID_INTEL_82434       0x04a3
 537 #define PCI_DEVICE_ID_INTEL_7116        0x1223
 538 #define PCI_DEVICE_ID_INTEL_82596       0x1226
 539 #define PCI_DEVICE_ID_INTEL_82865       0x1227
 540 #define PCI_DEVICE_ID_INTEL_82557       0x1229
 541 #define PCI_DEVICE_ID_INTEL_82437       0x122d
 542 #define PCI_DEVICE_ID_INTEL_82371_0     0x122e
 543 #define PCI_DEVICE_ID_INTEL_82371_1     0x1230
 544 #define PCI_DEVICE_ID_INTEL_P6          0x84c4
 545 
 546 #define PCI_VENDOR_ID_ADAPTEC           0x9004
 547 #define PCI_DEVICE_ID_ADAPTEC_7850      0x5078
 548 #define PCI_DEVICE_ID_ADAPTEC_7855      0x5578
 549 #define PCI_DEVICE_ID_ADAPTEC_7870      0x7078
 550 #define PCI_DEVICE_ID_ADAPTEC_7871      0x7178
 551 #define PCI_DEVICE_ID_ADAPTEC_7872      0x7278
 552 #define PCI_DEVICE_ID_ADAPTEC_7873      0x7378
 553 #define PCI_DEVICE_ID_ADAPTEC_7874      0x7478
 554 #define PCI_DEVICE_ID_ADAPTEC_7880      0x8078
 555 #define PCI_DEVICE_ID_ADAPTEC_7881      0x8178
 556 #define PCI_DEVICE_ID_ADAPTEC_7882      0x8278
 557 #define PCI_DEVICE_ID_ADAPTEC_7883      0x8378
 558 #define PCI_DEVICE_ID_ADAPTEC_7884      0x8478
 559 
 560 #define PCI_VENDOR_ID_ATRONICS          0x907f
 561 #define PCI_DEVICE_ID_ATRONICS_2015     0x2015
 562 
 563 #define PCI_VENDOR_ID_HER               0xedd8
 564 #define PCI_DEVICE_ID_HER_STING         0xa091
 565 #define PCI_DEVICE_ID_HER_STINGARK      0xa099
 566 
 567 /*
 568  * The PCI interface treats multi-function devices as independent
 569  * devices.  The slot/function address of each device is encoded
 570  * in a single byte as follows:
 571  *
 572  *      7:4 = slot
 573  *      3:0 = function
 574  */
 575 #define PCI_DEVFN(slot,func)    ((((slot) & 0x1f) << 3) | ((func) & 0x07))
 576 #define PCI_SLOT(devfn)         (((devfn) >> 3) & 0x1f)
 577 #define PCI_FUNC(devfn)         ((devfn) & 0x07)
 578 
 579 /*
 580  * There is one pci_dev structure for each slot-number/function-number
 581  * combination:
 582  */
 583 struct pci_dev {
 584         struct pci_bus  *bus;           /* bus this device is on */
 585         struct pci_dev  *sibling;       /* next device on this bus */
 586         struct pci_dev  *next;          /* chain of all devices */
 587 
 588         void            *sysdata;       /* hook for sys-specific extension */
 589 
 590         unsigned int    devfn;          /* encoded device & function index */
 591         unsigned short  vendor;
 592         unsigned short  device;
 593         unsigned int    class;          /* 3 bytes: (base,sub,prog-if) */
 594         unsigned int    master : 1;     /* set if device is master capable */
 595         /*
 596          * In theory, the irq level can be read from configuration
 597          * space and all would be fine.  However, old PCI chips don't
 598          * support these registers and return 0 instead.  For example,
 599          * the Vision864-P rev 0 chip can uses INTA, but returns 0 in
 600          * the interrupt line and pin registers.  pci_init()
 601          * initializes this field with the value at PCI_INTERRUPT_LINE
 602          * and it is the job of pcibios_fixup() to change it if
 603          * necessary.  The field must not be 0 unless the device
 604          * cannot generate interrupts at all.
 605          */
 606         unsigned char   irq;            /* irq generated by this device */
 607 };
 608 
 609 struct pci_bus {
 610         struct pci_bus  *parent;        /* parent bus this bridge is on */
 611         struct pci_bus  *children;      /* chain of P2P bridges on this bus */
 612         struct pci_bus  *next;          /* chain of all PCI buses */
 613 
 614         struct pci_dev  *self;          /* bridge device as seen by parent */
 615         struct pci_dev  *devices;       /* devices behind this bridge */
 616 
 617         void            *sysdata;       /* hook for sys-specific extension */
 618 
 619         unsigned char   number;         /* bus number */
 620         unsigned char   primary;        /* number of primary bridge */
 621         unsigned char   secondary;      /* number of secondary bridge */
 622         unsigned char   subordinate;    /* max number of subordinate buses */
 623 };
 624 
 625 /*
 626  * This is used to map a vendor-id/device-id pair into device-specific
 627  * information.
 628  */
 629 struct pci_dev_info {
 630         unsigned short  vendor;         /* vendor id */
 631         unsigned short  device;         /* device id */
 632 
 633         const char      *name;          /* device name */
 634         unsigned char   bridge_type;    /* bridge type or 0xff */
 635 };
 636 
 637 extern struct pci_bus   pci_root;       /* root bus */
 638 extern struct pci_dev   *pci_devices;   /* list of all devices */
 639 
 640 
 641 extern unsigned long pci_init (unsigned long mem_start, unsigned long mem_end);
 642 
 643 extern struct pci_dev_info *pci_lookup_dev (unsigned int vendor,
 644                                             unsigned int dev);
 645 extern const char *pci_strclass (unsigned int class);
 646 extern const char *pci_strvendor (unsigned int vendor);
 647 extern const char *pci_strdev (unsigned int vendor, unsigned int device);
 648 
 649 extern int get_pci_list (char *buf);
 650 
 651 #endif /* PCI_H */

/* [previous][next][first][last][top][bottom][index][help] */