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  *      - Send all that to frederic@cao-vlsi.ibp.fr, and I'll add
  33  *        your device to the list as soon as possible
  34  *              fred.
  35  */
  36 
  37 
  38 
  39 #ifndef PCI_H
  40 #define PCI_H
  41 
  42 /*
  43  * Under PCI, each device has 256 bytes of configuration address space,
  44  * of which the first 64 bytes are standardized as follows:
  45  */
  46 #define PCI_VENDOR_ID           0x00    /* 16 bits */
  47 #define PCI_DEVICE_ID           0x02    /* 16 bits */
  48 #define PCI_COMMAND             0x04    /* 16 bits */
  49 #define  PCI_COMMAND_IO         0x1     /* Enable response in I/O space */
  50 #define  PCI_COMMAND_MEMORY     0x2     /* Enable response in Memory space */
  51 #define  PCI_COMMAND_MASTER     0x4     /* Enable bus mastering */
  52 #define  PCI_COMMAND_SPECIAL    0x8     /* Enable response to special cycles */
  53 #define  PCI_COMMAND_INVALIDATE 0x10    /* Use memory write and invalidate */
  54 #define  PCI_COMMAND_VGA_PALETTE 0x20   /* Enable palette snooping */
  55 #define  PCI_COMMAND_PARITY     0x40    /* Enable parity checking */
  56 #define  PCI_COMMAND_WAIT       0x80    /* Enable address/data stepping */
  57 #define  PCI_COMMAND_SERR       0x100   /* Enable SERR */
  58 #define  PCI_COMMAND_FAST_BACK  0x200   /* Enable back-to-back writes */
  59 
  60 #define PCI_STATUS              0x06    /* 16 bits */
  61 #define  PCI_STATUS_66MHZ       0x20    /* Support 66 Mhz PCI 2.1 bus */
  62 #define  PCI_STATUS_UDF         0x40    /* Support User Definable Features */
  63 
  64 #define  PCI_STATUS_FAST_BACK   0x80    /* Accept fast-back to back */
  65 #define  PCI_STATUS_PARITY      0x100   /* Detected parity error */
  66 #define  PCI_STATUS_DEVSEL_MASK 0x600   /* DEVSEL timing */
  67 #define  PCI_STATUS_DEVSEL_FAST 0x000   
  68 #define  PCI_STATUS_DEVSEL_MEDIUM 0x200
  69 #define  PCI_STATUS_DEVSEL_SLOW 0x400
  70 #define  PCI_STATUS_SIG_TARGET_ABORT 0x800 /* Set on target abort */
  71 #define  PCI_STATUS_REC_TARGET_ABORT 0x1000 /* Master ack of " */
  72 #define  PCI_STATUS_REC_MASTER_ABORT 0x2000 /* Set on master abort */
  73 #define  PCI_STATUS_SIG_SYSTEM_ERROR 0x4000 /* Set when we drive SERR */
  74 #define  PCI_STATUS_DETECTED_PARITY 0x8000 /* Set on parity error */
  75 
  76 #define PCI_CLASS_REVISION      0x08    /* High 24 bits are class, low 8
  77                                            revision */
  78 #define PCI_REVISION_ID         0x08    /* Revision ID */
  79 #define PCI_CLASS_PROG          0x09    /* Reg. Level Programming Interface */
  80 #define PCI_CLASS_DEVICE        0x0a    /* Device class */
  81 
  82 #define PCI_CACHE_LINE_SIZE     0x0c    /* 8 bits */
  83 #define PCI_LATENCY_TIMER       0x0d    /* 8 bits */
  84 #define PCI_HEADER_TYPE         0x0e    /* 8 bits */
  85 #define PCI_BIST                0x0f    /* 8 bits */
  86 #define PCI_BIST_CODE_MASK      0x0f    /* Return result */
  87 #define PCI_BIST_START          0x40    /* 1 to start BIST, 2 secs or less */
  88 #define PCI_BIST_CAPABLE        0x80    /* 1 if BIST capable */
  89 
  90 /*
  91  * Base addresses specify locations in memory or I/O space.
  92  * Decoded size can be determined by writing a value of 
  93  * 0xffffffff to the register, and reading it back.  Only 
  94  * 1 bits are decoded.
  95  */
  96 #define PCI_BASE_ADDRESS_0      0x10    /* 32 bits */
  97 #define PCI_BASE_ADDRESS_1      0x14    /* 32 bits */
  98 #define PCI_BASE_ADDRESS_2      0x18    /* 32 bits */
  99 #define PCI_BASE_ADDRESS_3      0x1c    /* 32 bits */
 100 #define PCI_BASE_ADDRESS_4      0x20    /* 32 bits */
 101 #define PCI_BASE_ADDRESS_5      0x24    /* 32 bits */
 102 #define  PCI_BASE_ADDRESS_SPACE 0x01    /* 0 = memory, 1 = I/O */
 103 #define  PCI_BASE_ADDRESS_SPACE_IO 0x01
 104 #define  PCI_BASE_ADDRESS_SPACE_MEMORY 0x00
 105 #define  PCI_BASE_ADDRESS_MEM_TYPE_MASK 0x06
 106 #define  PCI_BASE_ADDRESS_MEM_TYPE_32   0x00    /* 32 bit address */
 107 #define  PCI_BASE_ADDRESS_MEM_TYPE_1M   0x02    /* Below 1M */
 108 #define  PCI_BASE_ADDRESS_MEM_TYPE_64   0x04    /* 64 bit address */
 109 #define  PCI_BASE_ADDRESS_MEM_PREFETCH  0x08    /* prefetchable? */
 110 #define  PCI_BASE_ADDRESS_MEM_MASK      (~0x0f)
 111 #define  PCI_BASE_ADDRESS_IO_MASK       (~0x03)
 112 /* bit 1 is reserved if address_space = 1 */
 113 
 114 #define PCI_CARDBUS_CIS         0x28
 115 #define PCI_SUBSYSTEM_ID        0x2c
 116 #define PCI_SUBSYSTEM_VENDOR_ID 0x2e  
 117 #define PCI_ROM_ADDRESS         0x30    /* 32 bits */
 118 #define  PCI_ROM_ADDRESS_ENABLE 0x01    /* Write 1 to enable ROM,
 119                                            bits 31..11 are address,
 120                                            10..2 are reserved */
 121 /* 0x34-0x3b are reserved */
 122 #define PCI_INTERRUPT_LINE      0x3c    /* 8 bits */
 123 #define PCI_INTERRUPT_PIN       0x3d    /* 8 bits */
 124 #define PCI_MIN_GNT             0x3e    /* 8 bits */
 125 #define PCI_MAX_LAT             0x3f    /* 8 bits */
 126 
 127 #define PCI_CLASS_NOT_DEFINED           0x0000
 128 #define PCI_CLASS_NOT_DEFINED_VGA       0x0001
 129 
 130 #define PCI_BASE_CLASS_STORAGE          0x01
 131 #define PCI_CLASS_STORAGE_SCSI          0x0100
 132 #define PCI_CLASS_STORAGE_IDE           0x0101
 133 #define PCI_CLASS_STORAGE_FLOPPY        0x0102
 134 #define PCI_CLASS_STORAGE_IPI           0x0103
 135 #define PCI_CLASS_STORAGE_RAID          0x0104
 136 #define PCI_CLASS_STORAGE_OTHER         0x0180
 137 
 138 #define PCI_BASE_CLASS_NETWORK          0x02
 139 #define PCI_CLASS_NETWORK_ETHERNET      0x0200
 140 #define PCI_CLASS_NETWORK_TOKEN_RING    0x0201
 141 #define PCI_CLASS_NETWORK_FDDI          0x0202
 142 #define PCI_CLASS_NETWORK_ATM           0x0203
 143 #define PCI_CLASS_NETWORK_OTHER         0x0280
 144 
 145 #define PCI_BASE_CLASS_DISPLAY          0x03
 146 #define PCI_CLASS_DISPLAY_VGA           0x0300
 147 #define PCI_CLASS_DISPLAY_XGA           0x0301
 148 #define PCI_CLASS_DISPLAY_OTHER         0x0380
 149 
 150 #define PCI_BASE_CLASS_MULTIMEDIA       0x04
 151 #define PCI_CLASS_MULTIMEDIA_VIDEO      0x0400
 152 #define PCI_CLASS_MULTIMEDIA_AUDIO      0x0401
 153 #define PCI_CLASS_MULTIMEDIA_OTHER      0x0480
 154 
 155 #define PCI_BASE_CLASS_MEMORY           0x05
 156 #define  PCI_CLASS_MEMORY_RAM           0x0500
 157 #define  PCI_CLASS_MEMORY_FLASH         0x0501
 158 #define  PCI_CLASS_MEMORY_OTHER         0x0580
 159 
 160 #define PCI_BASE_CLASS_BRIDGE           0x06
 161 #define  PCI_CLASS_BRIDGE_HOST          0x0600
 162 #define  PCI_CLASS_BRIDGE_ISA           0x0601
 163 #define  PCI_CLASS_BRIDGE_EISA          0x0602
 164 #define  PCI_CLASS_BRIDGE_MC            0x0603
 165 #define  PCI_CLASS_BRIDGE_PCI           0x0604
 166 #define  PCI_CLASS_BRIDGE_PCMCIA        0x0605
 167 #define  PCI_CLASS_BRIDGE_NUBUS         0x0606
 168 #define  PCI_CLASS_BRIDGE_CARDBUS       0x0607
 169 #define  PCI_CLASS_BRIDGE_OTHER         0x0680
 170 
 171 
 172 #define PCI_BASE_CLASS_COMMUNICATION    0x07
 173 #define PCI_CLASS_COMMUNICATION_SERIAL  0x0700
 174 #define PCI_CLASS_COMMUNICATION_PARALLEL 0x0701
 175 #define PCI_CLASS_COMMUNICATION_OTHER   0x0780
 176 
 177 #define PCI_BASE_CLASS_SYSTEM           0x08
 178 #define PCI_CLASS_SYSTEM_PIC            0x0800
 179 #define PCI_CLASS_SYSTEM_DMA            0x0801
 180 #define PCI_CLASS_SYSTEM_TIMER          0x0802
 181 #define PCI_CLASS_SYSTEM_RTC            0x0803
 182 #define PCI_CLASS_SYSTEM_OTHER          0x0880
 183 
 184 #define PCI_BASE_CLASS_INPUT            0x09
 185 #define PCI_CLASS_INPUT_KEYBOARD        0x0900
 186 #define PCI_CLASS_INPUT_PEN             0x0901
 187 #define PCI_CLASS_INPUT_MOUSE           0x0902
 188 #define PCI_CLASS_INPUT_OTHER           0x0980
 189 
 190 #define PCI_BASE_CLASS_DOCKING          0x0a
 191 #define PCI_CLASS_DOCKING_GENERIC       0x0a00
 192 #define PCI_CLASS_DOCKING_OTHER         0x0a01
 193 
 194 #define PCI_BASE_CLASS_PROCESSOR        0x0b
 195 #define PCI_CLASS_PROCESSOR_386         0x0b00
 196 #define PCI_CLASS_PROCESSOR_486         0x0b01
 197 #define PCI_CLASS_PROCESSOR_PENTIUM     0x0b02
 198 #define PCI_CLASS_PROCESSOR_ALPHA       0x0b10
 199 #define PCI_CLASS_PROCESSOR_POWERPC     0x0b20
 200 #define PCI_CLASS_PROCESSOR_CO          0x0b40
 201 
 202 #define PCI_BASE_CLASS_SERIAL           0x0c
 203 #define PCI_CLASS_SERIAL_FIREWIRE       0x0c00
 204 #define PCI_CLASS_SERIAL_ACCESS         0x0c01
 205 #define PCI_CLASS_SERIAL_SSA            0x0c02
 206 #define PCI_CLASS_SERIAL_USB            0x0c03
 207 #define PCI_CLASS_SERIAL_FIBER          0x0c04
 208 
 209 #define PCI_CLASS_OTHERS                0xff
 210 
 211 /*
 212  * Vendor and card ID's: sort these numerically according to vendor
 213  * (and according to card ID within vendor)
 214  */
 215 #define PCI_VENDOR_ID_NCR               0x1000
 216 #define PCI_DEVICE_ID_NCR_53C810        0x0001
 217 #define PCI_DEVICE_ID_NCR_53C820        0x0002
 218 #define PCI_DEVICE_ID_NCR_53C825        0x0003
 219 #define PCI_DEVICE_ID_NCR_53C815        0x0004
 220 
 221 #define PCI_VENDOR_ID_ATI               0x1002
 222 #define PCI_DEVICE_ID_ATI_68800         0x4158
 223 #define PCI_DEVICE_ID_ATI_215CT222      0x4354
 224 #define PCI_DEVICE_ID_ATI_210888CX      0x4358
 225 #define PCI_DEVICE_ID_ATI_210888GX      0x4758
 226 
 227 #define PCI_VENDOR_ID_VLSI              0x1004
 228 #define PCI_DEVICE_ID_VLSI_82C592       0x0005
 229 #define PCI_DEVICE_ID_VLSI_82C593       0x0006
 230 
 231 #define PCI_VENDOR_ID_ADL               0x1005
 232 #define PCI_DEVICE_ID_ADL_2301          0x2301
 233 
 234 #define PCI_VENDOR_ID_NS                0x100b
 235 #define PCI_DEVICE_ID_NS_87410          0xd001
 236 
 237 #define PCI_VENDOR_ID_TSENG             0x100c
 238 #define PCI_DEVICE_ID_TSENG_W32P_2      0x3202
 239 #define PCI_DEVICE_ID_TSENG_W32P_b      0x3205
 240 #define PCI_DEVICE_ID_TSENG_W32P_c      0x3206
 241 #define PCI_DEVICE_ID_TSENG_W32P_d      0x3207
 242 
 243 #define PCI_VENDOR_ID_WEITEK            0x100e
 244 #define PCI_DEVICE_ID_WEITEK_P9000      0x9001
 245 #define PCI_DEVICE_ID_WEITEK_P9100      0x9100
 246 
 247 #define PCI_VENDOR_ID_DEC               0x1011
 248 #define PCI_DEVICE_ID_DEC_BRD           0x0001
 249 #define PCI_DEVICE_ID_DEC_TULIP         0x0002
 250 #define PCI_DEVICE_ID_DEC_TULIP_FAST    0x0009
 251 #define PCI_DEVICE_ID_DEC_FDDI          0x000F
 252 #define PCI_DEVICE_ID_DEC_TULIP_PLUS    0x0014
 253 
 254 #define PCI_VENDOR_ID_CIRRUS            0x1013
 255 #define PCI_DEVICE_ID_CIRRUS_5430       0x00A0
 256 #define PCI_DEVICE_ID_CIRRUS_5434_4     0x00A4
 257 #define PCI_DEVICE_ID_CIRRUS_5434_8     0x00A8
 258 #define PCI_DEVICE_ID_CIRRUS_6729       0x1100
 259 #define PCI_DEVICE_ID_CIRRUS_7542       0x1200
 260 
 261 #define PCI_VENDOR_ID_AMD               0x1022
 262 #define PCI_DEVICE_ID_AMD_LANCE         0x2000
 263 #define PCI_DEVICE_ID_AMD_SCSI          0x2020
 264 
 265 #define PCI_VENDOR_ID_TRIDENT           0x1023
 266 #define PCI_DEVICE_ID_TRIDENT_9420      0x9420
 267 #define PCI_DEVICE_ID_TRIDENT_9440      0x9440
 268 
 269 #define PCI_VENDOR_ID_AI                0x1025
 270 #define PCI_DEVICE_ID_AI_M1435          0x1435
 271 
 272 #define PCI_VENDOR_ID_MATROX            0x102B
 273 #define PCI_DEVICE_ID_MATROX_MGA_2      0x0518
 274 #define PCI_DEVICE_ID_MATROX_MIL        0x0519
 275 #define PCI_DEVICE_ID_MATROX_MGA_IMP    0x0d10
 276 
 277 #define PCI_VENDOR_ID_CT                0x102c
 278 #define PCI_DEVICE_ID_CT_65545          0x00d8
 279 
 280 #define PCI_VENDOR_ID_FD                0x1036
 281 #define PCI_DEVICE_ID_FD_36C70          0x0000
 282 
 283 #define PCI_VENDOR_ID_SI                0x1039
 284 #define PCI_DEVICE_ID_SI_503            0x0008
 285 #define PCI_DEVICE_ID_SI_501            0x0406
 286 #define PCI_DEVICE_ID_SI_496            0x0496
 287 #define PCI_DEVICE_ID_SI_601            0x0601
 288 
 289 #define PCI_VENDOR_ID_HP                0x103c
 290 #define PCI_DEVICE_ID_HP_J2585A         0x1030
 291 
 292 #if 0
 293 
 294 #define PCI_VENDOR_ID_SMC               0x1042  /* Is this really correct?? */
 295 #define PCI_DEVICE_ID_SMC_37C665        0x1000
 296 #define PCI_DEVICE_ID_SMC_37C922        0x1001
 297 
 298 #else
 299 
 300 #define PCI_VENDOR_ID_PCTECH            0x1042  /* Known to be correct */
 301 #define PCI_DEVICE_ID_PCTECH_RZ1000     0x1000
 302 
 303 #endif
 304 
 305 #define PCI_VENDOR_ID_DPT               0x1044   
 306 #define PCI_DEVICE_ID_DPT               0xa400  
 307 
 308 #define PCI_VENDOR_ID_OPTI              0x1045
 309 #define PCI_DEVICE_ID_OPTI_82C557       0xc557
 310 #define PCI_DEVICE_ID_OPTI_82C558       0xc558
 311 #define PCI_DEVICE_ID_OPTI_82C621       0xc621
 312 #define PCI_DEVICE_ID_OPTI_82C822       0xc822
 313 
 314 #define PCI_VENDOR_ID_BUSLOGIC          0x104B
 315 #define PCI_DEVICE_ID_BUSLOGIC_946C_2   0x0140
 316 #define PCI_DEVICE_ID_BUSLOGIC_946C     0x1040
 317 
 318 #define PCI_VENDOR_ID_PROMISE           0x105a
 319 #define PCI_DEVICE_ID_PROMISE_5300      0x5300
 320 
 321 #define PCI_VENDOR_ID_N9                0x105D
 322 #define PCI_DEVICE_ID_N9_I128           0x2309
 323 
 324 #define PCI_VENDOR_ID_UMC               0x1060
 325 #define PCI_DEVICE_ID_UMC_UM8673F       0x0101
 326 #define PCI_DEVICE_ID_UMC_UM8891A       0x0891
 327 #define PCI_DEVICE_ID_UMC_UM8886A       0x886a
 328 #define PCI_DEVICE_ID_UMC_UM8881F       0x8881
 329 #define PCI_DEVICE_ID_UMC_UM8886F       0x8886
 330 
 331 #define PCI_VENDOR_ID_X                 0x1061
 332 #define PCI_DEVICE_ID_X_AGX016          0x0001
 333 
 334 #define PCI_VENDOR_ID_QLOGIC            0x1077
 335 #define PCI_DEVICE_ID_QLOGIC_ISP1020    0x1020
 336 #define PCI_DEVICE_ID_QLOGIC_ISP1022    0x1022
 337 
 338 #define PCI_VENDOR_ID_LEADTEK           0x107d
 339 #define PCI_DEVICE_ID_LEADTEK_805       0x0000
 340 
 341 #define PCI_VENDOR_ID_CONTAQ            0x1080
 342 #define PCI_DEVICE_ID_CONTAQ_82C599     0x0600
 343 
 344 #define PCI_VENDOR_ID_OLICOM            0x108d
 345 
 346 #define PCI_VENDOR_ID_CMD               0x1095
 347 #define PCI_DEVICE_ID_CMD_640           0x0640
 348 
 349 #define PCI_VENDOR_ID_VISION            0x1098
 350 #define PCI_DEVICE_ID_VISION_QD8500     0x0001
 351 #define PCI_DEVICE_ID_VISION_QD8580     0x0002
 352 
 353 #define PCI_VENDOR_ID_ACC               0x10aa
 354 
 355 #define PCI_VENDOR_ID_WINBOND           0x10ad
 356 #define PCI_DEVICE_ID_WINBOND_83769     0x0001
 357 
 358 #define PCI_VENDOR_ID_3COM              0x10b7
 359 #define PCI_DEVICE_ID_3COM_3C590        0x5900
 360 #define PCI_DEVICE_ID_3COM_3C595TX      0x5950
 361 #define PCI_DEVICE_ID_3COM_3C595T4      0x5951
 362 #define PCI_DEVICE_ID_3COM_3C595MII     0x5952
 363 
 364 #define PCI_VENDOR_ID_AL                0x10b9
 365 #define PCI_DEVICE_ID_AL_M1445          0x1445
 366 #define PCI_DEVICE_ID_AL_M1449          0x1449
 367 #define PCI_DEVICE_ID_AL_M1451          0x1451
 368 #define PCI_DEVICE_ID_AL_M1461          0x1461
 369 #define PCI_DEVICE_ID_AL_M4803          0x5215
 370 
 371 #define PCI_VENDOR_ID_IMS               0x10e0
 372 #define PCI_DEVICE_ID_IMS_8849          0x8849
 373 
 374 #define PCI_VENDOR_ID_VIA               0x1106
 375 #define PCI_DEVICE_ID_VIA_82C505        0x0505
 376 #define PCI_DEVICE_ID_VIA_82C561        0x0561
 377 #define PCI_DEVICE_ID_VIA_82C576        0x0576
 378 
 379 #define PCI_VENDOR_ID_VORTEX            0x1119
 380 #define PCI_DEVICE_ID_VORTEX_GDT        0x0001
 381 
 382 #define PCI_VENDOR_ID_EF                0x111a
 383 #define PCI_DEVICE_ID_EF_ATM            0x0000
 384 
 385 #define PCI_VENDOR_ID_IMAGINGTECH       0x112f
 386 #define PCI_DEVICE_ID_IMAGINGTECH_ICPCI 0x0000
 387 
 388 #define PCI_VENDOR_ID_PLX               0x113c
 389 #define PCI_DEVICE_ID_PLX_9060          0x0001
 390 
 391 #define PCI_VENDOR_ID_MUTECH            0x1159
 392 #define PCI_DEVICE_ID_MUTECH_MV1000     0x0001
 393 
 394 #define PCI_VENDOR_ID_ZEINET            0x1193
 395 #define PCI_DEVICE_ID_ZEINET_1221       0x0001
 396 
 397 #define PCI_VENDOR_ID_CYCLADES          0x120e
 398 #define PCI_DEVICE_ID_CYCLADES_Y        0x0100
 399 
 400 #define PCI_VENDOR_ID_SYMPHONY          0x1c1c
 401 #define PCI_DEVICE_ID_SYMPHONY_101      0x0001
 402 
 403 #define PCI_VENDOR_ID_TEKRAM            0x1de1
 404 #define PCI_DEVICE_ID_TEKRAM_DC290      0xdc29
 405 
 406 #define PCI_VENDOR_ID_S3                0x5333
 407 #define PCI_DEVICE_ID_S3_811            0x8811
 408 #define PCI_DEVICE_ID_S3_868            0x8880
 409 #define PCI_DEVICE_ID_S3_928            0x88b0
 410 #define PCI_DEVICE_ID_S3_864_1          0x88c0
 411 #define PCI_DEVICE_ID_S3_864_2          0x88c1
 412 #define PCI_DEVICE_ID_S3_964_1          0x88d0
 413 #define PCI_DEVICE_ID_S3_964_2          0x88d1
 414 #define PCI_DEVICE_ID_S3_968            0x88f0
 415 
 416 #define PCI_VENDOR_ID_INTEL             0x8086
 417 #define PCI_DEVICE_ID_INTEL_82375       0x0482
 418 #define PCI_DEVICE_ID_INTEL_82424       0x0483
 419 #define PCI_DEVICE_ID_INTEL_82378       0x0484
 420 #define PCI_DEVICE_ID_INTEL_82430       0x0486
 421 #define PCI_DEVICE_ID_INTEL_82434       0x04a3
 422 #define PCI_DEVICE_ID_INTEL_7116        0x1223
 423 #define PCI_DEVICE_ID_INTEL_82865       0x1227
 424 #define PCI_DEVICE_ID_INTEL_82437       0x122d
 425 #define PCI_DEVICE_ID_INTEL_82371       0x122e
 426 #define PCI_DEVICE_ID_INTEL_82438       0x1230
 427 #define PCI_DEVICE_ID_INTEL_P6          0x84c4
 428 
 429 #define PCI_VENDOR_ID_ADAPTEC           0x9004
 430 #define PCI_DEVICE_ID_ADAPTEC_7850      0x5078
 431 #define PCI_DEVICE_ID_ADAPTEC_294x      0x7078
 432 #define PCI_DEVICE_ID_ADAPTEC_2940      0x7178
 433 #define PCI_DEVICE_ID_ADAPTEC_7872      0x7278
 434 
 435 #define PCI_VENDOR_ID_ATRONICS          0x907f
 436 #define PCI_DEVICE_ID_ATRONICS_2015     0x2015
 437 
 438 #define PCI_VENDOR_ID_HER               0xedd8
 439 #define PCI_DEVICE_ID_HER_STING         0xa091
 440 #define PCI_DEVICE_ID_HER_STINGARK      0xa099
 441 
 442 /*
 443  * The PCI interface treats multi-function devices as independent
 444  * devices.  The slot/function address of each device is encoded
 445  * in a single byte as follows:
 446  *
 447  *      7:4 = slot
 448  *      3:0 = function
 449  */
 450 #define PCI_DEVFN(slot,func)    ((((slot) & 0x1f) << 3) | ((func) & 0x07))
 451 #define PCI_SLOT(devfn)         (((devfn) >> 3) & 0x1f)
 452 #define PCI_FUNC(devfn)         ((devfn) & 0x07)
 453 
 454 /*
 455  * There is one pci_dev structure for each slot-number/function-number
 456  * combination:
 457  */
 458 struct pci_dev {
 459         struct pci_bus  *bus;           /* bus this device is on */
 460         struct pci_dev  *sibling;       /* next device on this bus */
 461         struct pci_dev  *next;          /* chain of all devices */
 462 
 463         void            *sysdata;       /* hook for sys-specific extension */
 464 
 465         unsigned int    devfn;          /* encoded device & function index */
 466         unsigned short  vendor;
 467         unsigned short  device;
 468         unsigned int    class;          /* 3 bytes: (base,sub,prog-if) */
 469         unsigned int    master : 1;     /* set if device is master capable */
 470         /*
 471          * In theory, the irq level can be read from configuration
 472          * space and all would be fine.  However, old PCI chips don't
 473          * support these registers and return 0 instead.  For example,
 474          * the Vision864-P rev 0 chip can uses INTA, but returns 0 in
 475          * the interrupt line and pin registers.  pci_init()
 476          * initializes this field with the value at PCI_INTERRUPT_LINE
 477          * and it is the job of pcibios_fixup() to change it if
 478          * necessary.  The field must not be 0 unless the device
 479          * cannot generate interrupts at all.
 480          */
 481         unsigned char   irq;            /* irq generated by this device */
 482 };
 483 
 484 struct pci_bus {
 485         struct pci_bus  *parent;        /* parent bus this bridge is on */
 486         struct pci_bus  *children;      /* chain of P2P bridges on this bus */
 487         struct pci_bus  *next;          /* chain of all PCI buses */
 488 
 489         struct pci_dev  *self;          /* bridge device as seen by parent */
 490         struct pci_dev  *devices;       /* devices behind this bridge */
 491 
 492         void            *sysdata;       /* hook for sys-specific extension */
 493 
 494         unsigned char   number;         /* bus number */
 495         unsigned char   primary;        /* number of primary bridge */
 496         unsigned char   secondary;      /* number of secondary bridge */
 497         unsigned char   subordinate;    /* max number of subordinate buses */
 498 };
 499 
 500 /*
 501  * This is used to map a vendor-id/device-id pair into device-specific
 502  * information.
 503  */
 504 struct pci_dev_info {
 505         unsigned short  vendor;         /* vendor id */
 506         unsigned short  device;         /* device id */
 507 
 508         const char      *name;          /* device name */
 509         unsigned char   bridge_type;    /* bridge type or 0xff */
 510 };
 511 
 512 extern struct pci_bus   pci_root;       /* root bus */
 513 extern struct pci_dev   *pci_devices;   /* list of all devices */
 514 
 515 
 516 extern unsigned long pci_init (unsigned long mem_start, unsigned long mem_end);
 517 
 518 extern struct pci_dev_info *pci_lookup_dev (unsigned int vendor,
 519                                             unsigned int dev);
 520 extern const char *pci_strbioserr (int error);
 521 extern const char *pci_strclass (unsigned int class);
 522 extern const char *pci_strvendor (unsigned int vendor);
 523 extern const char *pci_strdev (unsigned int vendor, unsigned int device);
 524 
 525 extern int get_pci_list (char *buf);
 526 
 527 #endif /* PCI_H */

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