ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

bm_devs.h
Go to the documentation of this file.
00001 /*++
00002 
00003 Copyright (c) 2002-2011 Alexandr A. Telyatnikov (Alter)
00004 
00005 Module Name:
00006     bm_devs.h
00007 
00008 Abstract:
00009     This file contains list of 'well known' PCI IDE controllers
00010 
00011 Author:
00012     Alexander A. Telyatnikov (Alter)
00013 
00014 Environment:
00015     kernel mode only
00016 
00017 Notes:
00018 
00019     THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
00020     IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
00021     OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
00022     IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
00023     INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
00024     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
00025     DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
00026     THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
00027     (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
00028     THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
00029 
00030 Revision History:
00031 
00032 --*/
00033 
00034 #define IDE_MAX_CHAN          16
00035 #define IDE_DEFAULT_MAX_CHAN  2
00036 // Thanks to SATA Port Multipliers:
00037 //#define IDE_MAX_LUN_PER_CHAN  SATA_MAX_PM_UNITS
00038 #define IDE_MAX_LUN_PER_CHAN  2
00039 
00040 #define IDE_MAX_LUN           (AHCI_MAX_PORT*IDE_MAX_LUN_PER_CHAN)
00041 
00042 #define MAX_QUEUE_STAT        8
00043 
00044 //
00045 // values for TransferMode
00046 //
00047 #define         ATA_PIO                 0x00
00048 #define     ATA_PIO_NRDY            0x01
00049 
00050 #define         ATA_PIO0                0x08
00051 #define         ATA_PIO1                0x09
00052 #define         ATA_PIO2                0x0a
00053 #define         ATA_PIO3                0x0b
00054 #define         ATA_PIO4                0x0c
00055 #define         ATA_PIO5                0x0d
00056 
00057 #define         ATA_DMA                 0x10
00058 #define         ATA_SDMA                0x10
00059 #define         ATA_SDMA0               0x10
00060 #define         ATA_SDMA1               0x11
00061 #define         ATA_SDMA2               0x12
00062 
00063 #define         ATA_WDMA                0x20
00064 #define         ATA_WDMA0               0x20
00065 #define         ATA_WDMA1               0x21
00066 #define         ATA_WDMA2               0x22
00067 
00068 #define         ATA_UDMA                0x40
00069 #define         ATA_UDMA0               0x40 // ATA-16
00070 #define         ATA_UDMA1               0x41 // ATA-25
00071 #define         ATA_UDMA2               0x42 // ATA-33
00072 #define         ATA_UDMA3               0x43 // ATA-44
00073 #define         ATA_UDMA4               0x44 // ATA-66
00074 #define         ATA_UDMA5               0x45 // ATA-100
00075 #define         ATA_UDMA6               0x46 // ATA-133
00076 //#define         ATA_UDMA7               0x47 // ATA-166
00077 
00078 #define         ATA_SA150               0x47 /*0x80*/
00079 #define         ATA_SA300               0x48 /*0x81*/
00080 #define         ATA_SA600               0x49 /*0x82*/
00081 
00082 // define PIO timings in nanoseconds
00083 #define         PIO0_TIMING             600
00084 
00085 //#define UniataGetPioTiming(LunExt)      ((LunExt->TransferMode <= ATA_PIO0) ? PIO0_TIMING : 0)
00086 #define UniataGetPioTiming(LunExt)      0 //ktp
00087 
00088 #ifndef __IDE_BUSMASTER_DEVICES_H__
00089 #define __IDE_BUSMASTER_DEVICES_H__
00090 
00091 typedef struct _BUSMASTER_CONTROLLER_INFORMATION {
00092     PCHAR   VendorId;
00093     ULONG   VendorIdLength;
00094     ULONG   nVendorId;
00095     PCHAR   DeviceId;
00096     ULONG   DeviceIdLength;
00097     ULONG   nDeviceId;
00098     ULONG   nRevId;
00099     ULONG   MaxTransferMode;
00100     PCHAR   FullDevName;
00101     ULONG   RaidFlags;
00102     CHAR    VendorIdStr[4];
00103     CHAR    DeviceIdStr[4];
00104     ULONG   slotNumber;
00105     ULONG   busNumber;
00106     CHAR    channel;
00107 //    CHAR    numOfChannes;
00108     CHAR    MasterDev;
00109     BOOLEAN Known;
00110 #ifndef USER_MODE
00111     CHAR    ChanInitOk;             // 0x01 - primary,  0x02 - secondary
00112     BOOLEAN Isr2Enable;
00113     PDEVICE_OBJECT Isr2DevObj;
00114     KIRQL      Isr2Irql;
00115     KAFFINITY  Isr2Affinity;
00116     ULONG      Isr2Vector;
00117     PKINTERRUPT Isr2InterruptObject;
00118     CHAR    AltInitMasterDev;       // 0xff - uninitialized,  0x00 - normal,  0x01 - change ISA to PCI
00119     CHAR    NeedAltInit;            // 0x01 - try change ISA to PCI
00120 #endif
00121 
00122 }BUSMASTER_CONTROLLER_INFORMATION, *PBUSMASTER_CONTROLLER_INFORMATION;
00123 
00124 /* defines for known chipset PCI id's */
00125 #define ATA_ACARD_ID        0x1191
00126 #define ATA_ATP850      0x00021191
00127 #define ATA_ATP850A     0x00041191
00128 #define ATA_ATP850R     0x00051191
00129 #define ATA_ATP860A     0x00061191
00130 #define ATA_ATP860R     0x00071191
00131 #define ATA_ATP865A     0x00081191
00132 #define ATA_ATP865R     0x00091191
00133 
00134 #define ATA_AMD_ID      0x1022
00135 #define ATA_AMD755      0x74011022
00136 #define ATA_AMD756      0x74091022
00137 #define ATA_AMD766      0x74111022
00138 #define ATA_AMD768      0x74411022
00139 #define ATA_AMD8111     0x74691022
00140 #define ATA_AMD5536             0x209a1022
00141 
00142 #define ATA_ACER_LABS_ID    0x10b9
00143 #define ATA_ALI_1533            0x153310b9
00144 #define ATA_ALI_5228            0x522810b9
00145 #define ATA_ALI_5229            0x522910b9
00146 #define ATA_ALI_5281            0x528110b9
00147 #define ATA_ALI_5287            0x528710b9
00148 #define ATA_ALI_5288            0x528810b9
00149 #define ATA_ALI_5289            0x528910b9
00150 
00151 #define ATA_ATI_ID              0x1002
00152 #define ATA_ATI_IXP200          0x43491002
00153 #define ATA_ATI_IXP300          0x43691002
00154 #define ATA_ATI_IXP300_S1       0x436e1002
00155 #define ATA_ATI_IXP400          0x43761002
00156 #define ATA_ATI_IXP400_S1       0x43791002
00157 #define ATA_ATI_IXP400_S2       0x437a1002
00158 #define ATA_ATI_IXP600          0x438c1002
00159 #define ATA_ATI_IXP600_S1       0x43801002
00160 #define ATA_ATI_IXP700          0x439c1002
00161 #define ATA_ATI_IXP700_S1       0x43901002
00162 #define ATA_ATI_IXP700_S2   0x43911002
00163 #define ATA_ATI_IXP700_S3   0x43921002
00164 #define ATA_ATI_IXP700_S4   0x43931002
00165 #define ATA_ATI_IXP800_S1   0x43941002
00166 #define ATA_ATI_IXP800_S2   0x43951002
00167 
00168 #define ATA_CENATEK_ID          0x16ca
00169 #define ATA_CENATEK_ROCKET      0x000116ca
00170 
00171 #define ATA_CYRIX_ID        0x1078
00172 #define ATA_CYRIX_5530      0x01021078
00173 
00174 #define ATA_CYPRESS_ID      0x1080
00175 #define ATA_CYPRESS_82C693  0xc6931080
00176 
00177 #define ATA_DEC_21150       0x00221011
00178 #define ATA_DEC_21150_1     0x00231011
00179 
00180 #define ATA_HIGHPOINT_ID    0x1103
00181 #define ATA_HPT366      0x00041103
00182 #define ATA_HPT372      0x00051103
00183 #define ATA_HPT302      0x00061103
00184 #define ATA_HPT371      0x00071103
00185 #define ATA_HPT374      0x00081103
00186 
00187 #define ATA_INTEL_ID        0x8086
00188 #define ATA_I960RM      0x09628086
00189 #define ATA_I82371FB        0x12308086
00190 #define ATA_I82371SB        0x70108086
00191 #define ATA_I82371AB        0x71118086
00192 #define ATA_I82443MX        0x71998086
00193 #define ATA_I82451NX        0x84ca8086
00194 #define ATA_I82372FB        0x76018086
00195 #define ATA_I82801AB        0x24218086
00196 #define ATA_I82801AA        0x24118086
00197 #define ATA_I82801BA        0x244a8086
00198 #define ATA_I82801BA_1      0x244b8086
00199 #define ATA_I82801CA        0x248a8086
00200 #define ATA_I82801CA_1      0x248b8086
00201 #define ATA_I82801DB        0x24cb8086
00202 #define ATA_I82801DB_1      0x24ca8086
00203 #define ATA_I82801EB        0x24db8086
00204 #define ATA_I82801EB_S1         0x24d18086
00205 #define ATA_I82801EB_R1         0x24df8086
00206 #define ATA_I6300ESB            0x25a28086
00207 #define ATA_I6300ESB_S1         0x25a38086
00208 #define ATA_I6300ESB_R1         0x25b08086
00209 #define ATA_I63XXESB2           0x269e8086
00210 #define ATA_I63XXESB2_S1        0x26808086
00211 #define ATA_I63XXESB2_S2        0x26818086
00212 #define ATA_I63XXESB2_R1        0x26828086
00213 #define ATA_I63XXESB2_R2        0x26838086
00214 #define ATA_I82801FB        0x266f8086
00215 #define ATA_I82801FB_S1     0x26518086
00216 #define ATA_I82801FB_R1     0x26528086
00217 #define ATA_I82801FB_M          0x26538086
00218 #define ATA_I82801GB            0x27df8086
00219 #define ATA_I82801GB_S1         0x27c08086
00220 #define ATA_I82801GB_AH         0x27c18086
00221 #define ATA_I82801GB_R1         0x27c38086
00222 #define ATA_I82801GBM_S1        0x27c48086
00223 #define ATA_I82801GBM_AH        0x27c58086
00224 #define ATA_I82801GBM_R1        0x27c68086
00225 #define ATA_I82801HB_S1         0x28208086
00226 #define ATA_I82801HB_AH6        0x28218086
00227 #define ATA_I82801HB_R1         0x28228086
00228 #define ATA_I82801HB_AH4        0x28248086
00229 #define ATA_I82801HB_S2         0x28258086
00230 #define ATA_I82801HBM           0x28508086
00231 #define ATA_I82801HBM_S1        0x28288086
00232 #define ATA_I82801HBM_S2        0x28298086
00233 #define ATA_I82801HBM_S3        0x282a8086
00234 #define ATA_I82801IB_S1         0x29208086
00235 #define ATA_I82801IB_AH2        0x29218086
00236 #define ATA_I82801IB_AH6        0x29228086
00237 #define ATA_I82801IB_AH4        0x29238086
00238 #define ATA_I82801IB_R1         0x29258086
00239 #define ATA_I82801IB_S2         0x29268086
00240 #define ATA_I82801JIB_S1        0x3a208086
00241 #define ATA_I82801JIB_AH        0x3a228086
00242 #define ATA_I82801JIB_R1        0x3a258086
00243 #define ATA_I82801JIB_S2        0x3a268086
00244 #define ATA_I82801JD_S1         0x3a008086
00245 #define ATA_I82801JD_AH         0x3a028086
00246 #define ATA_I82801JD_R1         0x3a058086
00247 #define ATA_I82801JD_S2         0x3a068086
00248 /*
00249 #define ATA_I82801JI_S1         0x3a208086
00250 #define ATA_I82801JI_AH         0x3a228086
00251 #define ATA_I82801JI_R1         0x3a258086
00252 #define ATA_I82801JI_S2         0x3a268086
00253 */
00254 #define ATA_5Series_S1          0x3b208086
00255 #define ATA_5Series_S2          0x3b218086
00256 #define ATA_5Series_AH1         0x3b228086
00257 #define ATA_5Series_AH2         0x3b238086
00258 #define ATA_5Series_R1          0x3b258086
00259 #define ATA_5Series_S3          0x3b268086
00260 #define ATA_5Series_S4          0x3b288086
00261 #define ATA_5Series_AH3         0x3b298086
00262 #define ATA_5Series_R2          0x3b2c8086
00263 #define ATA_5Series_S5          0x3b2d8086
00264 #define ATA_5Series_S6          0x3b2e8086
00265 #define ATA_5Series_AH4         0x3b2f8086
00266 
00267 #define ATA_CPT_S1              0x1c008086
00268 #define ATA_CPT_S2              0x1c018086
00269 #define ATA_CPT_AH1             0x1c028086
00270 #define ATA_CPT_AH2             0x1c038086
00271 #define ATA_CPT_R1              0x1c048086
00272 #define ATA_CPT_R2              0x1c058086
00273 #define ATA_CPT_S3              0x1c088086
00274 #define ATA_CPT_S4              0x1c098086
00275 
00276 #define ATA_I31244              0x32008086
00277 #define ATA_ISCH                0x811a8086
00278 
00279 #define ATA_JMICRON_ID          0x197b
00280 #define ATA_JMB360              0x2360197b
00281 #define ATA_JMB361              0x2361197b
00282 #define ATA_JMB363              0x2363197b
00283 #define ATA_JMB365              0x2365197b
00284 #define ATA_JMB366              0x2366197b
00285 #define ATA_JMB368              0x2368197b
00286 
00287 #define ATA_MARVELL_ID          0x11ab
00288 #define ATA_M88SX5040           0x504011ab
00289 #define ATA_M88SX5041           0x504111ab
00290 #define ATA_M88SX5080           0x508011ab
00291 #define ATA_M88SX5081           0x508111ab
00292 #define ATA_M88SX6041           0x604111ab
00293 #define ATA_M88SX6042           0x604211ab
00294 #define ATA_M88SX6081           0x608111ab
00295 #define ATA_M88SX7042           0x704211ab
00296 #define ATA_M88SX6101           0x610111ab
00297 #define ATA_M88SX6102           0x610211ab
00298 #define ATA_M88SX6111           0x611111ab
00299 #define ATA_M88SX6121           0x612111ab
00300 #define ATA_M88SX6141           0x614111ab
00301 #define ATA_M88SX6145           0x614511ab
00302 #define ATA_MARVELL2_ID         0x1b4b
00303 
00304 #define ATA_MICRON_ID           0x1042
00305 #define ATA_MICRON_RZ1000       0x10001042
00306 #define ATA_MICRON_RZ1001       0x10011042
00307 
00308 #define ATA_NATIONAL_ID     0x100b
00309 #define ATA_SC1100      0x0502100b
00310 
00311 #define ATA_NETCELL_ID          0x169c
00312 #define ATA_NETCELL_SR          0x0044169c
00313 
00314 #define ATA_NVIDIA_ID       0x10de
00315 #define ATA_NFORCE1     0x01bc10de
00316 #define ATA_NFORCE2     0x006510de
00317 #define ATA_NFORCE2_PRO         0x008510de
00318 #define ATA_NFORCE2_PRO_S1      0x008e10de
00319 #define ATA_NFORCE3     0x00d510de
00320 #define ATA_NFORCE3_PRO     0x00e510de
00321 #define ATA_NFORCE3_PRO_S1  0x00e310de
00322 #define ATA_NFORCE3_PRO_S2  0x00ee10de
00323 #define ATA_NFORCE_MCP04        0x003510de
00324 #define ATA_NFORCE_MCP04_S1     0x003610de
00325 #define ATA_NFORCE_MCP04_S2     0x003e10de
00326 #define ATA_NFORCE_CK804        0x005310de
00327 #define ATA_NFORCE_CK804_S1     0x005410de
00328 #define ATA_NFORCE_CK804_S2     0x005510de
00329 #define ATA_NFORCE_MCP51        0x026510de
00330 #define ATA_NFORCE_MCP51_S1     0x026610de
00331 #define ATA_NFORCE_MCP51_S2     0x026710de
00332 #define ATA_NFORCE_MCP55        0x036e10de
00333 #define ATA_NFORCE_MCP55_S1     0x037e10de
00334 #define ATA_NFORCE_MCP55_S2     0x037f10de
00335 #define ATA_NFORCE_MCP61        0x03ec10de
00336 #define ATA_NFORCE_MCP61_S1     0x03e710de
00337 #define ATA_NFORCE_MCP61_S2     0x03f610de
00338 #define ATA_NFORCE_MCP61_S3     0x03f710de
00339 #define ATA_NFORCE_MCP65        0x044810de
00340 #define ATA_NFORCE_MCP65_A0     0x044c10de
00341 #define ATA_NFORCE_MCP65_A1     0x044d10de
00342 #define ATA_NFORCE_MCP65_A2     0x044e10de
00343 #define ATA_NFORCE_MCP65_A3     0x044f10de
00344 #define ATA_NFORCE_MCP65_A4     0x045c10de
00345 #define ATA_NFORCE_MCP65_A5     0x045d10de
00346 #define ATA_NFORCE_MCP65_A6     0x045e10de
00347 #define ATA_NFORCE_MCP65_A7     0x045f10de
00348 #define ATA_NFORCE_MCP67        0x056010de
00349 #define ATA_NFORCE_MCP67_A0     0x055010de
00350 #define ATA_NFORCE_MCP67_A1     0x055110de
00351 #define ATA_NFORCE_MCP67_A2     0x055210de
00352 #define ATA_NFORCE_MCP67_A3     0x055310de
00353 #define ATA_NFORCE_MCP67_A4     0x055410de
00354 #define ATA_NFORCE_MCP67_A5     0x055510de
00355 #define ATA_NFORCE_MCP67_A6     0x055610de
00356 #define ATA_NFORCE_MCP67_A7     0x055710de
00357 #define ATA_NFORCE_MCP67_A8     0x055810de
00358 #define ATA_NFORCE_MCP67_A9     0x055910de
00359 #define ATA_NFORCE_MCP67_AA     0x055A10de
00360 #define ATA_NFORCE_MCP67_AB     0x055B10de
00361 #define ATA_NFORCE_MCP67_AC     0x058410de
00362 #define ATA_NFORCE_MCP73        0x056c10de
00363 #define ATA_NFORCE_MCP73_A0     0x07f010de
00364 #define ATA_NFORCE_MCP73_A1     0x07f110de
00365 #define ATA_NFORCE_MCP73_A2     0x07f210de
00366 #define ATA_NFORCE_MCP73_A3     0x07f310de
00367 #define ATA_NFORCE_MCP73_A4     0x07f410de
00368 #define ATA_NFORCE_MCP73_A5     0x07f510de
00369 #define ATA_NFORCE_MCP73_A6     0x07f610de
00370 #define ATA_NFORCE_MCP73_A7     0x07f710de
00371 #define ATA_NFORCE_MCP73_A8     0x07f810de
00372 #define ATA_NFORCE_MCP73_A9     0x07f910de
00373 #define ATA_NFORCE_MCP73_AA     0x07fa10de
00374 #define ATA_NFORCE_MCP73_AB     0x07fb10de
00375 #define ATA_NFORCE_MCP77        0x075910de
00376 #define ATA_NFORCE_MCP77_A0     0x0ad010de
00377 #define ATA_NFORCE_MCP77_A1     0x0ad110de
00378 #define ATA_NFORCE_MCP77_A2     0x0ad210de
00379 #define ATA_NFORCE_MCP77_A3     0x0ad310de
00380 #define ATA_NFORCE_MCP77_A4     0x0ad410de
00381 #define ATA_NFORCE_MCP77_A5     0x0ad510de
00382 #define ATA_NFORCE_MCP77_A6     0x0ad610de
00383 #define ATA_NFORCE_MCP77_A7     0x0ad710de
00384 #define ATA_NFORCE_MCP77_A8     0x0ad810de
00385 #define ATA_NFORCE_MCP77_A9     0x0ad910de
00386 #define ATA_NFORCE_MCP77_AA     0x0ada10de
00387 #define ATA_NFORCE_MCP77_AB     0x0adb10de
00388 #define ATA_NFORCE_MCP79_A0     0x0ab410de
00389 #define ATA_NFORCE_MCP79_A1     0x0ab510de
00390 #define ATA_NFORCE_MCP79_A2     0x0ab610de
00391 #define ATA_NFORCE_MCP79_A3     0x0ab710de
00392 #define ATA_NFORCE_MCP79_A4     0x0ab810de
00393 #define ATA_NFORCE_MCP79_A5     0x0ab910de
00394 #define ATA_NFORCE_MCP79_A6     0x0aba10de
00395 #define ATA_NFORCE_MCP79_A7     0x0abb10de
00396 #define ATA_NFORCE_MCP79_A8     0x0abc10de
00397 #define ATA_NFORCE_MCP79_A9     0x0abd10de
00398 #define ATA_NFORCE_MCP79_AA     0x0abe10de
00399 #define ATA_NFORCE_MCP79_AB     0x0abf10de
00400 #define ATA_NFORCE_MCP89_A0     0x0d8410de
00401 #define ATA_NFORCE_MCP89_A1     0x0d8510de
00402 #define ATA_NFORCE_MCP89_A2     0x0d8610de
00403 #define ATA_NFORCE_MCP89_A3     0x0d8710de
00404 #define ATA_NFORCE_MCP89_A4     0x0d8810de
00405 #define ATA_NFORCE_MCP89_A5     0x0d8910de
00406 #define ATA_NFORCE_MCP89_A6     0x0d8a10de
00407 #define ATA_NFORCE_MCP89_A7     0x0d8b10de
00408 #define ATA_NFORCE_MCP89_A8     0x0d8c10de
00409 #define ATA_NFORCE_MCP89_A9     0x0d8d10de
00410 #define ATA_NFORCE_MCP89_AA     0x0d8e10de
00411 #define ATA_NFORCE_MCP89_AB     0x0d8f10de
00412 
00413 #define ATA_PROMISE_ID      0x105a
00414 #define ATA_PDC20246        0x4d33105a
00415 #define ATA_PDC20262        0x4d38105a
00416 #define ATA_PDC20263        0x0d38105a
00417 #define ATA_PDC20265        0x0d30105a
00418 #define ATA_PDC20267        0x4d30105a
00419 #define ATA_PDC20268        0x4d68105a
00420 #define ATA_PDC20269        0x4d69105a
00421 #define ATA_PDC20270        0x6268105a
00422 #define ATA_PDC20271        0x6269105a
00423 #define ATA_PDC20275        0x1275105a
00424 #define ATA_PDC20276        0x5275105a
00425 #define ATA_PDC20277        0x7275105a
00426 #define ATA_PDC20318        0x3318105a
00427 #define ATA_PDC20319        0x3319105a
00428 #define ATA_PDC20371        0x3371105a
00429 #define ATA_PDC20375        0x3375105a
00430 #define ATA_PDC20376        0x3376105a
00431 #define ATA_PDC20377        0x3377105a
00432 #define ATA_PDC20378        0x3373105a
00433 #define ATA_PDC20379        0x3372105a
00434 #define ATA_PDC20571            0x3571105a
00435 #define ATA_PDC20575            0x3d75105a
00436 #define ATA_PDC20579            0x3574105a
00437 #define ATA_PDC20771            0x3570105a
00438 #define ATA_PDC40518            0x3d18105a
00439 #define ATA_PDC40519            0x3519105a
00440 #define ATA_PDC40718            0x3d17105a
00441 #define ATA_PDC40719            0x3515105a
00442 #define ATA_PDC40775            0x3d73105a
00443 #define ATA_PDC40779            0x3577105a
00444 #define ATA_PDC20617        0x6617105a
00445 #define ATA_PDC20618        0x6626105a
00446 #define ATA_PDC20619        0x6629105a
00447 #define ATA_PDC20620        0x6620105a
00448 #define ATA_PDC20621        0x6621105a
00449 #define ATA_PDC20622        0x6622105a
00450 #define ATA_PDC20624            0x6624105a
00451 #define ATA_PDC81518            0x8002105a
00452 
00453 #define ATA_SERVERWORKS_ID  0x1166
00454 #define ATA_ROSB4_ISA       0x02001166
00455 #define ATA_ROSB4       0x02111166
00456 #define ATA_CSB5        0x02121166
00457 #define ATA_CSB6        0x02131166
00458 #define ATA_CSB6_1      0x02171166
00459 #define ATA_HT1000              0x02141166
00460 #define ATA_HT1000_S1           0x024b1166
00461 #define ATA_HT1000_S2           0x024a1166
00462 #define ATA_K2          0x02401166
00463 #define ATA_FRODO4      0x02411166
00464 #define ATA_FRODO8      0x02421166
00465 
00466 #define ATA_SILICON_IMAGE_ID    0x1095
00467 #define ATA_SII3114     0x31141095
00468 #define ATA_SII3512     0x35121095
00469 #define ATA_SII3112     0x31121095
00470 #define ATA_SII3112_1       0x02401095
00471 #define ATA_SII3124     0x31241095
00472 #define ATA_SII3132     0x31321095
00473 #define ATA_SII3132_1       0x02421095
00474 #define ATA_SII3132_2       0x02441095
00475 #define ATA_SII0680     0x06801095
00476 #define ATA_CMD646      0x06461095
00477 #define ATA_CMD648      0x06481095
00478 #define ATA_CMD649      0x06491095
00479 
00480 #define ATA_SIS_ID      0x1039
00481 #define ATA_SISSOUTH        0x00081039
00482 #define ATA_SIS5511     0x55111039
00483 #define ATA_SIS5513     0x55131039
00484 #define ATA_SIS5517     0x55171039
00485 #define ATA_SIS5518     0x55181039
00486 #define ATA_SIS5571     0x55711039
00487 #define ATA_SIS5591     0x55911039
00488 #define ATA_SIS5596     0x55961039
00489 #define ATA_SIS5597     0x55971039
00490 #define ATA_SIS5598     0x55981039
00491 #define ATA_SIS5600     0x56001039
00492 #define ATA_SIS530      0x05301039
00493 #define ATA_SIS540      0x05401039
00494 #define ATA_SIS550      0x05501039
00495 #define ATA_SIS620      0x06201039
00496 #define ATA_SIS630      0x06301039
00497 #define ATA_SIS635      0x06351039
00498 #define ATA_SIS633      0x06331039
00499 #define ATA_SIS640      0x06401039
00500 #define ATA_SIS645      0x06451039
00501 #define ATA_SIS646      0x06461039
00502 #define ATA_SIS648      0x06481039
00503 #define ATA_SIS650      0x06501039
00504 #define ATA_SIS651      0x06511039
00505 #define ATA_SIS652      0x06521039
00506 #define ATA_SIS655      0x06551039
00507 #define ATA_SIS658      0x06581039
00508 #define ATA_SIS661      0x06611039
00509 #define ATA_SIS730      0x07301039
00510 #define ATA_SIS733      0x07331039
00511 #define ATA_SIS735      0x07351039
00512 #define ATA_SIS740      0x07401039
00513 #define ATA_SIS745      0x07451039
00514 #define ATA_SIS746      0x07461039
00515 #define ATA_SIS748      0x07481039
00516 #define ATA_SIS750      0x07501039
00517 #define ATA_SIS751      0x07511039
00518 #define ATA_SIS752      0x07521039
00519 #define ATA_SIS755      0x07551039
00520 #define ATA_SIS961      0x09611039
00521 #define ATA_SIS962      0x09621039
00522 #define ATA_SIS963      0x09631039
00523 #define ATA_SIS964      0x09641039
00524 #define ATA_SIS965              0x09651039
00525 #define ATA_SIS964_1        0x01801039
00526 #define ATA_SIS180              0x01801039
00527 #define ATA_SIS181              0x01811039
00528 #define ATA_SIS182              0x01821039
00529 
00530 #define ATA_VIA_ID      0x1106
00531 #define ATA_VIA82C571       0x05711106
00532 #define ATA_VIA82C586       0x05861106
00533 #define ATA_VIA82C596       0x05961106
00534 #define ATA_VIA82C686       0x06861106
00535 #define ATA_VIA8231     0x82311106
00536 #define ATA_VIA8233     0x30741106
00537 #define ATA_VIA8233A        0x31471106
00538 #define ATA_VIA8233C        0x31091106
00539 #define ATA_VIA8235     0x31771106
00540 #define ATA_VIA8237     0x32271106
00541 #define ATA_VIA8237A            0x05911106
00542 #define ATA_VIA8237S        0x53371106
00543 #define ATA_VIA8237_5372    0x53721106
00544 #define ATA_VIA8237_7372    0x73721106
00545 #define ATA_VIA8251             0x33491106
00546 #define ATA_VIA8361     0x31121106
00547 #define ATA_VIA8363     0x03051106
00548 #define ATA_VIA8371     0x03911106
00549 #define ATA_VIA8662     0x31021106
00550 #define ATA_VIA6410     0x31641106
00551 #define ATA_VIA6420     0x31491106
00552 #define ATA_VIA6421             0x32491106
00553 
00554 #define ATA_VIACX700IDE         0x05811106
00555 #define ATA_VIACX700            0x83241106
00556 #define ATA_VIASATAIDE          0x53241106
00557 #define ATA_VIAVX800            0x83531106
00558 #define ATA_VIASATAIDE2         0xc4091106
00559 #define ATA_VIAVX855            0x84091106
00560 #define ATA_VIASATAIDE3         0x90011106
00561 #define ATA_VIAVX900            0x84101106
00562 
00563 #define ATA_ITE_ID      0x1283
00564 #define ATA_IT8172G     0x81721283
00565 #define ATA_IT8211F             0x82111283
00566 #define ATA_IT8212F             0x82121283
00567 #define ATA_IT8213F             0x82131283
00568 
00569 #define ATA_OPTI_ID             0x1045
00570 #define ATA_OPTI82C621          0xc6211045
00571 #define ATA_OPTI82C625          0xd5681045
00572 
00573 #define ATA_HINT_ID         0x3388
00574 #define ATA_HINTEIDE_ID         0x80133388
00575 
00576 /* chipset setup related defines          */
00577 /* Used in HW_DEVICE_EXTENSION.InitMethod */
00578 
00579 #define CHIPTYPE_MASK   0x000000ff
00580 #define CHIPFLAG_MASK   0xffffff00
00581 
00582 #define UNIATA_RAID_CONTROLLER  0x80000000
00583 #define UNIATA_SIMPLEX_ONLY     0x40000000
00584 #define UNIATA_NO_SLAVE         0x20000000
00585 #define UNIATA_SATA             0x10000000
00586 #define UNIATA_NO_DPC           0x08000000
00587 #define UNIATA_NO_DPC_ATAPI     0x04000000
00588 #define UNIATA_AHCI             0x02000000
00589 #define UNIATA_NO80CHK          0x01000000
00590 
00591 #define ATPOLD      0x0100
00592 
00593 #define ALIOLD      0x0100
00594 #define ALINEW      0x0200
00595 
00596 #define HPT366      0
00597 #define HPT370      1
00598 #define HPT372      2
00599 #define HPT374      3
00600 #define HPTOLD      0x0100
00601 
00602 #define PROLD       0
00603 #define PRNEW       1
00604 #define PRTX        2
00605 #define PRMIO       3
00606 #define PRIDX       4
00607 #define PRTX4       0x0100
00608 #define PRSX4K      0x0200
00609 #define PRSX6K      0x0400
00610 #define PRSATA      0x0800
00611 #define PRDUAL      0x1000
00612 
00613 #define SWKS33      0
00614 #define SWKS66      1
00615 #define SWKS100     2
00616 #define SWKSMIO     3
00617 
00618 #define SIIOLD          0
00619 #define SIICMD          1
00620 #define SIIMIO          2
00621 
00622 #define SIIINTR         0x0100
00623 #define SIIENINTR       0x0200
00624 #define SII4CH          0x0400
00625 #define SIISETCLK       0x0800
00626 #define SIIBUG          0x1000
00627 #define SIINOSATAIRQ    0x2000
00628 
00629 //#define SIS_SOUTH 1
00630 #define SISSATA     2
00631 #define SIS133NEW   3
00632 #define SIS133OLD   4
00633 #define SIS100NEW   5
00634 #define SIS100OLD   6
00635 #define SIS66       7
00636 #define SIS33       8
00637 
00638 #define SIS_BASE        0x0100
00639 #define SIS_SOUTH       0x0200
00640 
00641 #define INTEL_STD       0
00642 #define INTEL_IDX       1
00643 
00644 #define ICH4_FIX        0x0100
00645 #define ICH5            0x0200
00646 #define I6CH            0x0400
00647 #define I6CH2           0x0800
00648 #define I1CH            0x1000
00649 
00650 #define NV4OFF          0x0100
00651 #define NVQ             0x0200
00652 
00653 #define VIA33       0
00654 #define VIA66       1
00655 #define VIA100      2
00656 #define VIA133      3
00657 #define AMDNVIDIA   4
00658 #define AMDCABLE    0x0100
00659 #define AMDBUG      0x0200
00660 #define VIABAR      0x0400
00661 #define VIACLK      0x0800
00662 #define VIABUG      0x1000
00663 #define VIASOUTH    0x2000
00664 #define VIAAST      0x4000
00665 #define VIAPRQ      0x8000
00666 #define VIASATA         0x10000
00667 
00668 #define ITE_33          0
00669 #define ITE_133         1
00670 #define ITE_133_NEW     2
00671 
00672 #ifdef USER_MODE
00673   #define PCI_DEV_HW_SPEC_BM(idhi, idlo, rev, mode, name, flags) \
00674     { #idlo, 4, 0x##idlo, #idhi, 4, 0x##idhi, rev, mode, name, flags}
00675 #else
00676   #define PCI_DEV_HW_SPEC_BM(idhi, idlo, rev, mode, name, flags) \
00677     { (PCHAR) #idlo, 4, 0x##idlo, (PCHAR) #idhi, 4, 0x##idhi, rev, mode, NULL, flags}
00678 #endif
00679 
00680 #define BMLIST_TERMINATOR   (0xffffffffL)
00681 
00682 BUSMASTER_CONTROLLER_INFORMATION const BusMasterAdapters[] = {
00683 
00684     PCI_DEV_HW_SPEC_BM( 0005, 1191, 0x00, ATA_UDMA2, "Acard ATP850"     , ATPOLD | UNIATA_SIMPLEX_ONLY            ),
00685     PCI_DEV_HW_SPEC_BM( 0006, 1191, 0x00, ATA_UDMA4, "Acard ATP860A"    , UNIATA_NO80CHK                          ),
00686     PCI_DEV_HW_SPEC_BM( 0007, 1191, 0x00, ATA_UDMA4, "Acard ATP860R"    , UNIATA_NO80CHK                          ),
00687     PCI_DEV_HW_SPEC_BM( 0008, 1191, 0x00, ATA_UDMA6, "Acard ATP865A"    , UNIATA_NO80CHK                          ),
00688     PCI_DEV_HW_SPEC_BM( 0009, 1191, 0x00, ATA_UDMA6, "Acard ATP865R"    , UNIATA_NO80CHK                          ),
00689                                           
00690     PCI_DEV_HW_SPEC_BM( 5289, 10b9, 0x00, ATA_SA150, "ALI M5289"        , UNIATA_SATA | UNIATA_NO_SLAVE           ),
00691     PCI_DEV_HW_SPEC_BM( 5288, 10b9, 0x00, ATA_SA300, "ALI M5288"        , UNIATA_SATA | UNIATA_NO_SLAVE           ),
00692     PCI_DEV_HW_SPEC_BM( 5287, 10b9, 0x00, ATA_SA150, "ALI M5287"        , UNIATA_SATA | UNIATA_NO_SLAVE           ),
00693     PCI_DEV_HW_SPEC_BM( 5281, 10b9, 0x00, ATA_SA150, "ALI M5281"        , UNIATA_SATA | UNIATA_NO_SLAVE           ),
00694     PCI_DEV_HW_SPEC_BM( 5228, 10b9, 0xc5, ATA_UDMA6, "ALI M5228 UDMA6"  , ALINEW                                  ),
00695     PCI_DEV_HW_SPEC_BM( 5229, 10b9, 0xc5, ATA_UDMA6, "ALI M5229 UDMA6"  , ALINEW                                  ),
00696     PCI_DEV_HW_SPEC_BM( 5229, 10b9, 0xc4, ATA_UDMA5, "ALI M5229 UDMA5"  , ALINEW                                  ),
00697     PCI_DEV_HW_SPEC_BM( 5229, 10b9, 0xc2, ATA_UDMA4, "ALI M5229 UDMA4"  , ALINEW                                  ),
00698     PCI_DEV_HW_SPEC_BM( 5229, 10b9, 0x20, ATA_UDMA2, "ALI M5229 UDMA2"  , ALIOLD                                  ),
00699     PCI_DEV_HW_SPEC_BM( 5229, 10b9, 0x00, ATA_WDMA2, "ALI M5229 WDMA2"  , ALIOLD                                  ),
00700 
00701     PCI_DEV_HW_SPEC_BM( 7401, 1022, 0x00, ATA_UDMA2, "AMD 755"          , AMDNVIDIA | 0x00                        ),
00702     PCI_DEV_HW_SPEC_BM( 7409, 1022, 0x00, ATA_UDMA4, "AMD 756"          , AMDNVIDIA | UNIATA_NO80CHK              ),
00703     PCI_DEV_HW_SPEC_BM( 7411, 1022, 0x00, ATA_UDMA5, "AMD 766"          , AMDNVIDIA | AMDBUG                      ),
00704     PCI_DEV_HW_SPEC_BM( 7441, 1022, 0x00, ATA_UDMA5, "AMD 768"          , AMDNVIDIA                               ),
00705     PCI_DEV_HW_SPEC_BM( 7469, 1022, 0x00, ATA_UDMA6, "AMD 8111"         , AMDNVIDIA                               ),
00706     PCI_DEV_HW_SPEC_BM( 209a, 1022, 0x00, ATA_UDMA5, "AMD CS5536"       , AMDNVIDIA                               ),
00707 
00708     PCI_DEV_HW_SPEC_BM( 4349, 1002, 0x00, ATA_UDMA5, "ATI IXP200"       , 0                                       ),
00709     PCI_DEV_HW_SPEC_BM( 4369, 1002, 0x00, ATA_UDMA6, "ATI IXP300"       , 0                                       ),
00710     PCI_DEV_HW_SPEC_BM( 4376, 1002, 0x00, ATA_UDMA6, "ATI IXP400"       , 0                                       ),
00711     PCI_DEV_HW_SPEC_BM( 436e, 1002, 0x00, ATA_SA150, "ATI IXP300"       , SIIMIO |                UNIATA_SATA     ),
00712     PCI_DEV_HW_SPEC_BM( 4379, 1002, 0x00, ATA_SA150, "ATI IXP400"       , SIIMIO | SIINOSATAIRQ | UNIATA_SATA     ),
00713     PCI_DEV_HW_SPEC_BM( 437a, 1002, 0x00, ATA_SA300, "ATI IXP400"       , SIIMIO | SIINOSATAIRQ | UNIATA_SATA     ),
00714     PCI_DEV_HW_SPEC_BM( 438c, 1002, 0x00, ATA_UDMA6, "ATI IXP600"       , 0                                       ),
00715     PCI_DEV_HW_SPEC_BM( 4380, 1002, 0x00, ATA_SA150, "ATI IXP600"       , UNIATA_SATA | UNIATA_AHCI               ),
00716     PCI_DEV_HW_SPEC_BM( 439c, 1002, 0x00, ATA_UDMA6, "ATI IXP700"       , 0                                       ),
00717     PCI_DEV_HW_SPEC_BM( 4390, 1002, 0x00, ATA_SA150, "ATI IXP700"       , UNIATA_SATA | UNIATA_AHCI               ),
00718 
00719     PCI_DEV_HW_SPEC_BM( 0004, 1103, 0x05, ATA_UDMA6, "HighPoint HPT372" , HPT372 | 0x00   | UNIATA_RAID_CONTROLLER),
00720     PCI_DEV_HW_SPEC_BM( 0004, 1103, 0x03, ATA_UDMA5, "HighPoint HPT370" , HPT370 | 0x00   | UNIATA_RAID_CONTROLLER),
00721     PCI_DEV_HW_SPEC_BM( 0004, 1103, 0x02, ATA_UDMA4, "HighPoint HPT368" , HPT366 | 0x00   | UNIATA_RAID_CONTROLLER),
00722     PCI_DEV_HW_SPEC_BM( 0004, 1103, 0x00, ATA_UDMA4, "HighPoint HPT366" , HPT366 | HPTOLD | UNIATA_RAID_CONTROLLER),
00723     PCI_DEV_HW_SPEC_BM( 0005, 1103, 0x01, ATA_UDMA6, "HighPoint HPT372" , HPT372 | 0x00   | UNIATA_RAID_CONTROLLER),
00724     PCI_DEV_HW_SPEC_BM( 0005, 1103, 0x00, ATA_UDMA4, "HighPoint HPT372" , HPT372 | HPTOLD | UNIATA_RAID_CONTROLLER),
00725     PCI_DEV_HW_SPEC_BM( 0006, 1103, 0x01, ATA_UDMA6, "HighPoint HPT302" , HPT372 | 0x00   | UNIATA_RAID_CONTROLLER),
00726     PCI_DEV_HW_SPEC_BM( 0007, 1103, 0x01, ATA_UDMA6, "HighPoint HPT371" , HPT372 | 0x00   | UNIATA_RAID_CONTROLLER),
00727     PCI_DEV_HW_SPEC_BM( 0008, 1103, 0x07, ATA_UDMA6, "HighPoint HPT374" , HPT374 | 0x00   | UNIATA_RAID_CONTROLLER),
00728 
00729     PCI_DEV_HW_SPEC_BM( 1230, 8086, 0x00, ATA_WDMA2, "Intel PIIX"       , 0                                       ),
00730     PCI_DEV_HW_SPEC_BM( 7010, 8086, 0x00, ATA_WDMA2, "Intel PIIX3"      , 0                                       ),
00731     PCI_DEV_HW_SPEC_BM( 7111, 8086, 0x00, ATA_UDMA3, "Intel PIIX4"      , 0                                       ),
00732     PCI_DEV_HW_SPEC_BM( 7199, 8086, 0x00, ATA_UDMA2, "Intel PIIX4"      , 0                                       ),
00733     PCI_DEV_HW_SPEC_BM( 84ca, 8086, 0x00, ATA_UDMA2, "Intel PIIX4"      , 0                                       ),
00734     PCI_DEV_HW_SPEC_BM( 7601, 8086, 0x00, ATA_UDMA2, "Intel ICH0"       , 0                                       ),
00735 
00736     PCI_DEV_HW_SPEC_BM( 2421, 8086, 0x00, ATA_UDMA4, "Intel ICH"        , 0                                       ),
00737     PCI_DEV_HW_SPEC_BM( 2411, 8086, 0x00, ATA_UDMA4, "Intel ICH"        , 0                                       ),
00738 
00739     PCI_DEV_HW_SPEC_BM( 244a, 8086, 0x00, ATA_UDMA5, "Intel ICH2"       , 0                                       ),
00740     PCI_DEV_HW_SPEC_BM( 244b, 8086, 0x00, ATA_UDMA5, "Intel ICH2"       , 0                                       ),
00741 
00742     PCI_DEV_HW_SPEC_BM( 248a, 8086, 0x00, ATA_UDMA5, "Intel ICH3"       , 0                                       ),
00743     PCI_DEV_HW_SPEC_BM( 248b, 8086, 0x00, ATA_UDMA5, "Intel ICH3"       , 0                                       ),
00744 
00745     PCI_DEV_HW_SPEC_BM( 24cb, 8086, 0x00, ATA_UDMA5, "Intel ICH4"       , ICH4_FIX | UNIATA_NO_DPC                ),
00746     PCI_DEV_HW_SPEC_BM( 24ca, 8086, 0x00, ATA_UDMA5, "Intel ICH4"       , ICH4_FIX | UNIATA_NO_DPC                ),
00747 
00748     PCI_DEV_HW_SPEC_BM( 24db, 8086, 0x00, ATA_UDMA5, "Intel ICH5 EB"    , 0                                       ),
00749     PCI_DEV_HW_SPEC_BM( 24d1, 8086, 0x00, ATA_SA150, "Intel ICH5 EB1"   , ICH5 | UNIATA_SATA                      ),
00750     PCI_DEV_HW_SPEC_BM( 24df, 8086, 0x00, ATA_SA150, "Intel ICH5 EB2"   , ICH5 | UNIATA_SATA                      ),
00751 
00752     PCI_DEV_HW_SPEC_BM( 25a2, 8086, 0x00, ATA_UDMA5, "Intel 6300ESB"    , 0                                       ),
00753     PCI_DEV_HW_SPEC_BM( 25a3, 8086, 0x00, ATA_SA150, "Intel 6300ESB1"   , ICH5 | UNIATA_SATA                      ),
00754     PCI_DEV_HW_SPEC_BM( 25b0, 8086, 0x00, ATA_SA150, "Intel 6300ESB2"   , ICH5 | UNIATA_SATA                      ),
00755 
00756     PCI_DEV_HW_SPEC_BM( 266f, 8086, 0x00, ATA_UDMA5, "Intel ICH6"       , 0                                       ),
00757     PCI_DEV_HW_SPEC_BM( 2651, 8086, 0x00, ATA_SA150, "Intel ICH6"       , UNIATA_SATA | UNIATA_AHCI               ),
00758     PCI_DEV_HW_SPEC_BM( 2652, 8086, 0x00, ATA_SA150, "Intel ICH6"       , UNIATA_SATA | UNIATA_AHCI               ),
00759     PCI_DEV_HW_SPEC_BM( 2653, 8086, 0x00, ATA_SA150, "Intel ICH6M"      , UNIATA_SATA | UNIATA_AHCI               ),
00760 
00761     PCI_DEV_HW_SPEC_BM( 27df, 8086, 0x00, ATA_UDMA5, "Intel ICH7"       , I1CH                                    ),
00762     PCI_DEV_HW_SPEC_BM( 27c0, 8086, 0x00, ATA_SA300, "Intel ICH7 S1"    , UNIATA_SATA                             ),
00763     PCI_DEV_HW_SPEC_BM( 27c1, 8086, 0x00, ATA_SA300, "Intel ICH7"       , UNIATA_SATA | UNIATA_AHCI               ),
00764     PCI_DEV_HW_SPEC_BM( 27c3, 8086, 0x00, ATA_SA300, "Intel ICH7"       , UNIATA_SATA                             ),
00765     PCI_DEV_HW_SPEC_BM( 27c4, 8086, 0x00, ATA_SA150, "Intel ICH7M R1"   , UNIATA_SATA                             ),
00766     PCI_DEV_HW_SPEC_BM( 27c5, 8086, 0x00, ATA_SA150, "Intel ICH7M"      , UNIATA_SATA | UNIATA_AHCI               ),
00767     PCI_DEV_HW_SPEC_BM( 27c6, 8086, 0x00, ATA_SA150, "Intel ICH7M"      , UNIATA_SATA                             ),
00768 
00769     PCI_DEV_HW_SPEC_BM( 269e, 8086, 0x00, ATA_UDMA5, "Intel 63XXESB2"   , I1CH                                    ),
00770     PCI_DEV_HW_SPEC_BM( 2680, 8086, 0x00, ATA_SA300, "Intel 63XXESB2"   , UNIATA_SATA                             ),
00771     PCI_DEV_HW_SPEC_BM( 2681, 8086, 0x00, ATA_SA300, "Intel 63XXESB2"   , UNIATA_SATA | UNIATA_AHCI               ),
00772     PCI_DEV_HW_SPEC_BM( 2682, 8086, 0x00, ATA_SA300, "Intel 63XXESB2"   , UNIATA_SATA | UNIATA_AHCI               ),
00773     PCI_DEV_HW_SPEC_BM( 2683, 8086, 0x00, ATA_SA300, "Intel 63XXESB2"   , UNIATA_SATA | UNIATA_AHCI               ),
00774 
00775     PCI_DEV_HW_SPEC_BM( 2820, 8086, 0x00, ATA_SA300, "Intel ICH8"       , I6CH                                    ),
00776     PCI_DEV_HW_SPEC_BM( 2821, 8086, 0x00, ATA_SA300, "Intel ICH8"       , UNIATA_SATA | UNIATA_AHCI               ),
00777     PCI_DEV_HW_SPEC_BM( 2822, 8086, 0x00, ATA_SA300, "Intel ICH8"       , UNIATA_SATA | UNIATA_AHCI               ),
00778     PCI_DEV_HW_SPEC_BM( 2824, 8086, 0x00, ATA_SA300, "Intel ICH8"       , UNIATA_SATA | UNIATA_AHCI               ),
00779     PCI_DEV_HW_SPEC_BM( 2825, 8086, 0x00, ATA_SA300, "Intel ICH8"       , I6CH2 | UNIATA_SATA                     ),
00780     PCI_DEV_HW_SPEC_BM( 2828, 8086, 0x00, ATA_SA300, "Intel ICH8M"      , I6CH | UNIATA_SATA                      ),
00781     PCI_DEV_HW_SPEC_BM( 2829, 8086, 0x00, ATA_SA300, "Intel ICH8M"      , UNIATA_SATA | UNIATA_AHCI               ),
00782     PCI_DEV_HW_SPEC_BM( 282a, 8086, 0x00, ATA_SA300, "Intel ICH8M"      , UNIATA_SATA | UNIATA_AHCI               ),
00783     PCI_DEV_HW_SPEC_BM( 2850, 8086, 0x00, ATA_UDMA5, "Intel ICH8M"      , I1CH                                    ),
00784 
00785     PCI_DEV_HW_SPEC_BM( 2920, 8086, 0x00, ATA_SA300, "Intel ICH9"       , I6CH | UNIATA_SATA                      ),
00786     PCI_DEV_HW_SPEC_BM( 2926, 8086, 0x00, ATA_SA300, "Intel ICH9"       , I6CH2 | UNIATA_SATA                     ),
00787     PCI_DEV_HW_SPEC_BM( 2921, 8086, 0x00, ATA_SA300, "Intel ICH9"       , UNIATA_SATA | UNIATA_AHCI               ),
00788     PCI_DEV_HW_SPEC_BM( 2922, 8086, 0x00, ATA_SA300, "Intel ICH9"       , UNIATA_SATA | UNIATA_AHCI               ),
00789     PCI_DEV_HW_SPEC_BM( 2923, 8086, 0x00, ATA_SA300, "Intel ICH9"       , UNIATA_SATA | UNIATA_AHCI               ),
00790     PCI_DEV_HW_SPEC_BM( 2925, 8086, 0x00, ATA_SA300, "Intel ICH9"       , UNIATA_SATA | UNIATA_AHCI               ),
00791 
00792     PCI_DEV_HW_SPEC_BM( 3a20, 8086, 0x00, ATA_SA300, "Intel ICH10"      , I6CH | UNIATA_SATA                      ),
00793     PCI_DEV_HW_SPEC_BM( 3a26, 8086, 0x00, ATA_SA300, "Intel ICH10"      , I6CH2 | UNIATA_SATA                     ),
00794     PCI_DEV_HW_SPEC_BM( 3a22, 8086, 0x00, ATA_SA300, "Intel ICH10"      , UNIATA_SATA | UNIATA_AHCI               ),
00795     PCI_DEV_HW_SPEC_BM( 3a25, 8086, 0x00, ATA_SA300, "Intel ICH10"      , UNIATA_SATA | UNIATA_AHCI               ),
00796 
00797     PCI_DEV_HW_SPEC_BM( 3a00, 8086, 0x00, ATA_SA300, "Intel ICH10"      , I6CH | UNIATA_SATA                      ),
00798     PCI_DEV_HW_SPEC_BM( 3a06, 8086, 0x00, ATA_SA300, "Intel ICH10"      , I6CH2 | UNIATA_SATA                     ),
00799     PCI_DEV_HW_SPEC_BM( 3a02, 8086, 0x00, ATA_SA300, "Intel ICH10"      , UNIATA_SATA | UNIATA_AHCI               ),
00800     PCI_DEV_HW_SPEC_BM( 3a05, 8086, 0x00, ATA_SA300, "Intel ICH10"      , UNIATA_SATA | UNIATA_AHCI               ),
00801 /*
00802     PCI_DEV_HW_SPEC_BM( ????, 8086, 0x00, ATA_SA300, "Intel ICH10"      , I6CH | UNIATA_SATA                      ),
00803     PCI_DEV_HW_SPEC_BM( ????, 8086, 0x00, ATA_SA300, "Intel ICH10"      , I6CH2 | UNIATA_SATA                     ),
00804     PCI_DEV_HW_SPEC_BM( ????, 8086, 0x00, ATA_SA300, "Intel ICH10"      , UNIATA_SATA | UNIATA_AHCI               ),
00805     PCI_DEV_HW_SPEC_BM( ????, 8086, 0x00, ATA_SA300, "Intel ICH10"      , UNIATA_SATA | UNIATA_AHCI               ),
00806 */
00807     PCI_DEV_HW_SPEC_BM( 3b20, 8086, 0x00, ATA_SA300, "Intel 5 Series/3400" , I6CH | UNIATA_SATA                      ),
00808     PCI_DEV_HW_SPEC_BM( 3b21, 8086, 0x00, ATA_SA300, "Intel 5 Series/3400" , I6CH2 | UNIATA_SATA                     ),
00809     PCI_DEV_HW_SPEC_BM( 3b22, 8086, 0x00, ATA_SA300, "Intel 5 Series/3400" , UNIATA_SATA | UNIATA_AHCI               ),
00810     PCI_DEV_HW_SPEC_BM( 3b23, 8086, 0x00, ATA_SA300, "Intel 5 Series/3400" , UNIATA_SATA | UNIATA_AHCI               ),
00811     PCI_DEV_HW_SPEC_BM( 3b25, 8086, 0x00, ATA_SA300, "Intel 5 Series/3400" , UNIATA_SATA | UNIATA_AHCI               ),
00812     PCI_DEV_HW_SPEC_BM( 3b26, 8086, 0x00, ATA_SA300, "Intel 5 Series/3400" , I6CH2 | UNIATA_SATA                     ),
00813     PCI_DEV_HW_SPEC_BM( 3b28, 8086, 0x00, ATA_SA300, "Intel 5 Series/3400" , I6CH | UNIATA_SATA                      ),
00814     PCI_DEV_HW_SPEC_BM( 3b29, 8086, 0x00, ATA_SA300, "Intel 5 Series/3400" , UNIATA_SATA | UNIATA_AHCI               ),
00815     PCI_DEV_HW_SPEC_BM( 3b2c, 8086, 0x00, ATA_SA300, "Intel 5 Series/3400" , UNIATA_SATA | UNIATA_AHCI               ),
00816     PCI_DEV_HW_SPEC_BM( 3b2d, 8086, 0x00, ATA_SA300, "Intel 5 Series/3400" , I6CH2 | UNIATA_SATA                     ),
00817     PCI_DEV_HW_SPEC_BM( 3b2e, 8086, 0x00, ATA_SA300, "Intel 5 Series/3400" , I6CH | UNIATA_SATA                      ),
00818     PCI_DEV_HW_SPEC_BM( 3b2f, 8086, 0x00, ATA_SA300, "Intel 5 Series/3400" , UNIATA_SATA | UNIATA_AHCI               ),
00819 
00820     PCI_DEV_HW_SPEC_BM( 1c00, 8086, 0x00, ATA_SA300, "Intel Cougar Point"  , I6CH | UNIATA_SATA                      ),
00821     PCI_DEV_HW_SPEC_BM( 1c01, 8086, 0x00, ATA_SA300, "Intel Cougar Point"  , I6CH | UNIATA_SATA                      ),
00822     PCI_DEV_HW_SPEC_BM( 1c02, 8086, 0x00, ATA_SA300, "Intel Cougar Point"  , UNIATA_SATA | UNIATA_AHCI               ),
00823     PCI_DEV_HW_SPEC_BM( 1c03, 8086, 0x00, ATA_SA300, "Intel Cougar Point"  , UNIATA_SATA | UNIATA_AHCI               ),
00824     PCI_DEV_HW_SPEC_BM( 1c04, 8086, 0x00, ATA_SA300, "Intel Cougar Point"  , UNIATA_SATA | UNIATA_AHCI               ),
00825     PCI_DEV_HW_SPEC_BM( 1c05, 8086, 0x00, ATA_SA300, "Intel Cougar Point"  , UNIATA_SATA | UNIATA_AHCI               ),
00826     PCI_DEV_HW_SPEC_BM( 1c08, 8086, 0x00, ATA_SA300, "Intel Cougar Point"  , I6CH2 | UNIATA_SATA                     ),
00827     PCI_DEV_HW_SPEC_BM( 1c09, 8086, 0x00, ATA_SA300, "Intel Cougar Point"  , I6CH2 | UNIATA_SATA                     ),
00828 
00829 //    PCI_DEV_HW_SPEC_BM( 3200, 8086, 0x00, ATA_SA150, "Intel 31244"      , UNIATA_SATA                             ),
00830     PCI_DEV_HW_SPEC_BM( 3200, 8086, 0x00, ATA_UDMA5, "Intel SCH"        , I1CH                                    ),
00831 
00832 
00833     PCI_DEV_HW_SPEC_BM( 2360, 197b, 0x00, ATA_SA300, "JMB360"           , UNIATA_SATA | UNIATA_AHCI               ),
00834 
00835     PCI_DEV_HW_SPEC_BM( 2361, 197b, 0x00, ATA_UDMA6, "JMB361"           , 0                                       ),
00836     PCI_DEV_HW_SPEC_BM( 2363, 197b, 0x00, ATA_UDMA6, "JMB363"           , 0                                       ),
00837     PCI_DEV_HW_SPEC_BM( 2365, 197b, 0x00, ATA_UDMA6, "JMB365"           , 0                                       ),
00838     PCI_DEV_HW_SPEC_BM( 2366, 197b, 0x00, ATA_UDMA6, "JMB366"           , 0                                       ),
00839     PCI_DEV_HW_SPEC_BM( 2368, 197b, 0x00, ATA_UDMA6, "JMB368"           , 0                                       ),
00840 /*    
00841     PCI_DEV_HW_SPEC_BM( 5040, 11ab, 0x00, ATA_SA150, "Marvell 88SX5040" , UNIATA_SATA                             ),
00842     PCI_DEV_HW_SPEC_BM( 5041, 11ab, 0x00, ATA_SA150, "Marvell 88SX5041" , UNIATA_SATA                             ),
00843     PCI_DEV_HW_SPEC_BM( 5080, 11ab, 0x00, ATA_SA150, "Marvell 88SX5080" , UNIATA_SATA                             ),
00844     PCI_DEV_HW_SPEC_BM( 5081, 11ab, 0x00, ATA_SA150, "Marvell 88SX5081" , UNIATA_SATA                             ),
00845     PCI_DEV_HW_SPEC_BM( 6041, 11ab, 0x00, ATA_SA300, "Marvell 88SX6041" , UNIATA_SATA                             ),
00846     PCI_DEV_HW_SPEC_BM( 6081, 11ab, 0x00, ATA_SA300, "Marvell 88SX6081" , UNIATA_SATA                             ),*/
00847     PCI_DEV_HW_SPEC_BM( 6101, 11ab, 0x00, ATA_UDMA6, "Marvell 88SX6101" , 0                                       ),
00848     PCI_DEV_HW_SPEC_BM( 6121, 11ab, 0x00, ATA_UDMA6, "Marvell 88SX6121" , 0                                       ),
00849     PCI_DEV_HW_SPEC_BM( 6145, 11ab, 0x00, ATA_UDMA6, "Marvell 88SX6145" , 0                                       ),
00850 
00851     PCI_DEV_HW_SPEC_BM( 01bc, 10de, 0x00, ATA_UDMA5, "nVidia nForce"    , AMDNVIDIA                               ),
00852     PCI_DEV_HW_SPEC_BM( 0065, 10de, 0x00, ATA_UDMA6, "nVidia nForce2"   , AMDNVIDIA                               ),
00853     PCI_DEV_HW_SPEC_BM( 0085, 10de, 0x00, ATA_UDMA6, "nVidia nForce2 Pro",AMDNVIDIA                               ),
00854     PCI_DEV_HW_SPEC_BM( 008e, 10de, 0x00, ATA_SA150, "nVidia nForce2 Pro S1",UNIATA_SATA                          ),
00855     PCI_DEV_HW_SPEC_BM( 00d5, 10de, 0x00, ATA_UDMA6, "nVidia nForce3"   , AMDNVIDIA                               ),
00856     PCI_DEV_HW_SPEC_BM( 00e5, 10de, 0x00, ATA_UDMA6, "nVidia nForce3 Pro",AMDNVIDIA                               ),
00857     PCI_DEV_HW_SPEC_BM( 00e3, 10de, 0x00, ATA_SA150, "nVidia nForce3 Pro S1",UNIATA_SATA                          ),
00858     PCI_DEV_HW_SPEC_BM( 00ee, 10de, 0x00, ATA_SA150, "nVidia nForce3 Pro S2",UNIATA_SATA                          ),
00859     PCI_DEV_HW_SPEC_BM( 0035, 10de, 0x00, ATA_UDMA6, "nVidia nForce MCP", AMDNVIDIA                               ),
00860     PCI_DEV_HW_SPEC_BM( 0036, 10de, 0x00, ATA_SA150, "nVidia nForce MCP S1",NV4OFF | UNIATA_SATA                  ),
00861     PCI_DEV_HW_SPEC_BM( 003e, 10de, 0x00, ATA_SA150, "nVidia nForce MCP S2",NV4OFF | UNIATA_SATA                  ),
00862     PCI_DEV_HW_SPEC_BM( 0053, 10de, 0x00, ATA_UDMA6, "nVidia nForce CK804", AMDNVIDIA                             ),
00863     PCI_DEV_HW_SPEC_BM( 0054, 10de, 0x00, ATA_SA300, "nVidia nForce CK804 S1",NV4OFF | UNIATA_SATA                ),
00864     PCI_DEV_HW_SPEC_BM( 0055, 10de, 0x00, ATA_SA300, "nVidia nForce CK804 S2",NV4OFF | UNIATA_SATA                ),
00865     PCI_DEV_HW_SPEC_BM( 0265, 10de, 0x00, ATA_UDMA6, "nVidia nForce MCP51", AMDNVIDIA                             ),
00866     PCI_DEV_HW_SPEC_BM( 0266, 10de, 0x00, ATA_SA300, "nVidia nForce MCP51 S1",NV4OFF | NVQ | UNIATA_SATA          ),
00867     PCI_DEV_HW_SPEC_BM( 0267, 10de, 0x00, ATA_SA300, "nVidia nForce MCP51 S2",NV4OFF | NVQ | UNIATA_SATA          ),
00868     PCI_DEV_HW_SPEC_BM( 036e, 10de, 0x00, ATA_UDMA6, "nVidia nForce MCP55", AMDNVIDIA                             ),
00869     PCI_DEV_HW_SPEC_BM( 037e, 10de, 0x00, ATA_SA300, "nVidia nForce MCP55 S1",NV4OFF | NVQ | UNIATA_SATA          ),
00870     PCI_DEV_HW_SPEC_BM( 037f, 10de, 0x00, ATA_SA300, "nVidia nForce MCP55 S2",NV4OFF | NVQ | UNIATA_SATA          ),
00871     PCI_DEV_HW_SPEC_BM( 03ec, 10de, 0x00, ATA_UDMA6, "nVidia nForce MCP61", AMDNVIDIA                             ),
00872     PCI_DEV_HW_SPEC_BM( 03e7, 10de, 0x00, ATA_SA300, "nVidia nForce MCP61 S1",NV4OFF | NVQ | UNIATA_SATA          ),
00873     PCI_DEV_HW_SPEC_BM( 03f6, 10de, 0x00, ATA_SA300, "nVidia nForce MCP61 S2",NV4OFF | NVQ | UNIATA_SATA          ),
00874     PCI_DEV_HW_SPEC_BM( 03f7, 10de, 0x00, ATA_SA300, "nVidia nForce MCP61 S3",NV4OFF | NVQ | UNIATA_SATA          ),
00875     PCI_DEV_HW_SPEC_BM( 0448, 10de, 0x00, ATA_UDMA6, "nVidia nForce MCP65", AMDNVIDIA                             ),
00876     PCI_DEV_HW_SPEC_BM( 0560, 10de, 0x00, ATA_UDMA6, "nVidia nForce MCP67", AMDNVIDIA                             ),
00877     PCI_DEV_HW_SPEC_BM( 056c, 10de, 0x00, ATA_UDMA6, "nVidia nForce MCP73", AMDNVIDIA                             ),
00878     PCI_DEV_HW_SPEC_BM( 0759, 10de, 0x00, ATA_UDMA6, "nVidia nForce MCP77", AMDNVIDIA                             ),
00879 
00880     PCI_DEV_HW_SPEC_BM( 0502, 100b, 0x00, ATA_UDMA2, "National Geode SC1100", 0                                   ),
00881 
00882     PCI_DEV_HW_SPEC_BM( 4d33, 105a, 0x00, ATA_UDMA2, "Promise PDC20246" , PROLD | 0x00                            ),
00883     PCI_DEV_HW_SPEC_BM( 4d38, 105a, 0x00, ATA_UDMA4, "Promise PDC20262" , PRNEW | 0x00                            ),
00884     PCI_DEV_HW_SPEC_BM( 0d38, 105a, 0x00, ATA_UDMA4, "Promise PDC20263" , PRNEW | 0x00    | UNIATA_RAID_CONTROLLER),
00885     PCI_DEV_HW_SPEC_BM( 0d30, 105a, 0x00, ATA_UDMA5, "Promise PDC20265" , PRNEW | 0x00    | UNIATA_RAID_CONTROLLER),
00886     PCI_DEV_HW_SPEC_BM( 4d30, 105a, 0x00, ATA_UDMA5, "Promise PDC20267" , PRNEW | 0x00    | UNIATA_RAID_CONTROLLER),
00887     PCI_DEV_HW_SPEC_BM( 4d68, 105a, 0x00, ATA_UDMA5, "Promise PDC20268" , PRTX  | PRTX4   | UNIATA_RAID_CONTROLLER),
00888     PCI_DEV_HW_SPEC_BM( 4d69, 105a, 0x00, ATA_UDMA6, "Promise PDC20269" , PRTX  | 0x00    | UNIATA_RAID_CONTROLLER),
00889     PCI_DEV_HW_SPEC_BM( 6268, 105a, 0x00, ATA_UDMA5, "Promise PDC20270" , PRTX  | PRTX4   | UNIATA_RAID_CONTROLLER),
00890     PCI_DEV_HW_SPEC_BM( 6269, 105a, 0x00, ATA_UDMA6, "Promise PDC20271" , PRTX  | 0x00    | UNIATA_RAID_CONTROLLER),
00891     PCI_DEV_HW_SPEC_BM( 1275, 105a, 0x00, ATA_UDMA6, "Promise PDC20275" , PRTX  | 0x00    | UNIATA_RAID_CONTROLLER),
00892     PCI_DEV_HW_SPEC_BM( 5275, 105a, 0x00, ATA_UDMA6, "Promise PDC20276" , PRTX  | PRSX6K  | UNIATA_RAID_CONTROLLER),
00893     PCI_DEV_HW_SPEC_BM( 7275, 105a, 0x00, ATA_UDMA6, "Promise PDC20277" , PRTX  | 0x00    | UNIATA_RAID_CONTROLLER),
00894     PCI_DEV_HW_SPEC_BM( 3318, 105a, 0x00, ATA_SA150, "Promise PDC20318" , PRMIO | PRSATA  | UNIATA_RAID_CONTROLLER | UNIATA_SATA),
00895     PCI_DEV_HW_SPEC_BM( 3319, 105a, 0x00, ATA_SA150, "Promise PDC20319" , PRMIO | PRSATA  | UNIATA_RAID_CONTROLLER | UNIATA_SATA),
00896     PCI_DEV_HW_SPEC_BM( 3371, 105a, 0x00, ATA_SA150, "Promise PDC20371" , PRMIO | PRSATA  | UNIATA_RAID_CONTROLLER | UNIATA_SATA),
00897     PCI_DEV_HW_SPEC_BM( 3375, 105a, 0x00, ATA_SA150, "Promise PDC20375" , PRMIO | PRSATA  | UNIATA_RAID_CONTROLLER | UNIATA_SATA),
00898     PCI_DEV_HW_SPEC_BM( 3376, 105a, 0x00, ATA_SA150, "Promise PDC20376" , PRMIO | PRSATA  | UNIATA_RAID_CONTROLLER | UNIATA_SATA),
00899     PCI_DEV_HW_SPEC_BM( 3377, 105a, 0x00, ATA_SA150, "Promise PDC20377" , PRMIO | PRSATA  | UNIATA_RAID_CONTROLLER | UNIATA_SATA),
00900     PCI_DEV_HW_SPEC_BM( 3373, 105a, 0x00, ATA_SA150, "Promise PDC20378" , PRMIO | PRSATA  | UNIATA_RAID_CONTROLLER | UNIATA_SATA),
00901     PCI_DEV_HW_SPEC_BM( 3372, 105a, 0x00, ATA_SA150, "Promise PDC20379" , PRMIO | PRSATA  | UNIATA_RAID_CONTROLLER | UNIATA_SATA),
00902     PCI_DEV_HW_SPEC_BM( 6617, 105a, 0x00, ATA_UDMA6, "Promise PDC20617" , PRMIO | PRDUAL  | UNIATA_RAID_CONTROLLER),
00903     PCI_DEV_HW_SPEC_BM( 6626, 105a, 0x00, ATA_UDMA6, "Promise PDC20618" , PRMIO | PRDUAL  | UNIATA_RAID_CONTROLLER),
00904     PCI_DEV_HW_SPEC_BM( 6629, 105a, 0x00, ATA_UDMA6, "Promise PDC20619" , PRMIO | PRDUAL  | UNIATA_RAID_CONTROLLER),
00905     PCI_DEV_HW_SPEC_BM( 6620, 105a, 0x00, ATA_UDMA6, "Promise PDC20620" , PRMIO | PRDUAL  | UNIATA_RAID_CONTROLLER),
00906 /*    PCI_DEV_HW_SPEC_BM( 6621, 105a, 0x00, ATA_UDMA6, "Promise PDC20621" , PRMIO | PRSX4X  | UNIATA_RAID_CONTROLLER),
00907     PCI_DEV_HW_SPEC_BM( 6622, 105a, 0x00, ATA_UDMA6, "Promise PDC20622" , PRMIO | PRSX4X  | UNIATA_RAID_CONTROLLER),*/
00908 
00909     PCI_DEV_HW_SPEC_BM( 0211, 1166, 0x00, ATA_UDMA2, "ServerWorks ROSB4", SWKS33  | UNIATA_NO_DPC                 ),
00910     PCI_DEV_HW_SPEC_BM( 0212, 1166, 0x92, ATA_UDMA5, "ServerWorks CSB5" , SWKS100                                 ),
00911     PCI_DEV_HW_SPEC_BM( 0212, 1166, 0x00, ATA_UDMA4, "ServerWorks CSB5" , SWKS66                                  ),
00912     PCI_DEV_HW_SPEC_BM( 0213, 1166, 0x00, ATA_UDMA5, "ServerWorks CSB6" , SWKS100                                 ),
00913     PCI_DEV_HW_SPEC_BM( 0217, 1166, 0x00, ATA_UDMA4, "ServerWorks CSB6" , SWKS66                                  ),
00914     PCI_DEV_HW_SPEC_BM( 0214, 1166, 0x00, ATA_UDMA5, "ServerWorks HT1000" , SWKS100                               ),
00915     PCI_DEV_HW_SPEC_BM( 024b, 1166, 0x00, ATA_SA150, "ServerWorks HT1000" , SWKS100                               ),
00916     PCI_DEV_HW_SPEC_BM( 024a, 1166, 0x00, ATA_SA150, "ServerWorks HT1000" , SWKSMIO                               ),
00917     PCI_DEV_HW_SPEC_BM( 0240, 1166, 0x00, ATA_SA150, "ServerWorks K2"     , SWKSMIO                               ),
00918     PCI_DEV_HW_SPEC_BM( 0241, 1166, 0x00, ATA_SA150, "ServerWorks Frodo4" , SWKSMIO                               ),
00919     PCI_DEV_HW_SPEC_BM( 0242, 1166, 0x00, ATA_SA150, "ServerWorks Frodo8" , SWKSMIO                               ),
00920 
00921     PCI_DEV_HW_SPEC_BM( 3114, 1095, 0x00, ATA_SA150, "SiI 3114"         , SIIMIO | SII4CH | UNIATA_SATA           ),
00922     PCI_DEV_HW_SPEC_BM( 3512, 1095, 0x02, ATA_SA150, "SiI 3512"         , SIIMIO |          UNIATA_SATA           ),
00923     PCI_DEV_HW_SPEC_BM( 3112, 1095, 0x02, ATA_SA150, "SiI 3112"         , SIIMIO |          UNIATA_SATA           ),
00924     PCI_DEV_HW_SPEC_BM( 0240, 1095, 0x02, ATA_SA150, "SiI 3112"         , SIIMIO |          UNIATA_SATA           ),
00925     PCI_DEV_HW_SPEC_BM( 3512, 1095, 0x00, ATA_SA150, "SiI 3512"         , SIIMIO | SIIBUG | UNIATA_SATA           ),
00926     PCI_DEV_HW_SPEC_BM( 3112, 1095, 0x00, ATA_SA150, "SiI 3112"         , SIIMIO | SIIBUG | UNIATA_SATA           ),
00927     PCI_DEV_HW_SPEC_BM( 0240, 1095, 0x00, ATA_SA150, "SiI 3112"         , SIIMIO | SIIBUG | UNIATA_SATA           ),
00928     PCI_DEV_HW_SPEC_BM( 0680, 1095, 0x00, ATA_UDMA6, "SiI 0680"         , SIIMIO | SIISETCLK                      ),
00929     PCI_DEV_HW_SPEC_BM( 0649, 1095, 0x00, ATA_UDMA5, "CMD 649"          , SIICMD | SIIINTR | UNIATA_NO_DPC_ATAPI  ),
00930     PCI_DEV_HW_SPEC_BM( 0648, 1095, 0x00, ATA_UDMA4, "CMD 648"          , SIICMD | SIIINTR                        ),
00931     PCI_DEV_HW_SPEC_BM( 0646, 1095, 0x07, ATA_UDMA2, "CMD 646U2"        , SIICMD | 0                              ),
00932     PCI_DEV_HW_SPEC_BM( 0646, 1095, 0x00, ATA_WDMA2, "CMD 646"          , SIICMD | 0                              ),
00933     PCI_DEV_HW_SPEC_BM( 0640, 1095, 0x00, ATA_PIO4 , "CMD 640"          , SIIOLD | SIIENINTR | UNIATA_SIMPLEX_ONLY),
00934 
00969     PCI_DEV_HW_SPEC_BM( 5513, 1039, 0xc2, ATA_UDMA2, "SiS ATA-xxx"      , 0                                       ),
00970     PCI_DEV_HW_SPEC_BM( 5513, 1039, 0x00, ATA_WDMA2, "SiS ATA-xxx"      , 0                                       ),
00971     PCI_DEV_HW_SPEC_BM( 0601, 1039, 0x00, ATA_WDMA2, "SiS ATA-xxx"      , 0                                       ),
00972 
00973 /*    PCI_DEV_HW_SPEC_BM( 0586, 1106, 0x41, ATA_UDMA2, "VIA 82C586B"      , VIA33  | 0x00                           ),
00974     PCI_DEV_HW_SPEC_BM( 0586, 1106, 0x40, ATA_UDMA2, "VIA 82C586B"      , VIA33  | VIAPRQ                         ),
00975     PCI_DEV_HW_SPEC_BM( 0586, 1106, 0x02, ATA_UDMA2, "VIA 82C586B"      , VIA33  | 0x00                           ),
00976     PCI_DEV_HW_SPEC_BM( 0586, 1106, 0x00, ATA_WDMA2, "VIA 82C586"       , VIA33  | 0x00                           ),
00977     PCI_DEV_HW_SPEC_BM( 0596, 1106, 0x12, ATA_UDMA4, "VIA 82C596B"      , VIA66  | VIACLK                         ),
00978     PCI_DEV_HW_SPEC_BM( 0596, 1106, 0x00, ATA_UDMA2, "VIA 82C596"       , VIA33  | 0x00                           ),
00979     PCI_DEV_HW_SPEC_BM( 0686, 1106, 0x40, ATA_UDMA5, "VIA 82C686B"      , VIA100 | VIABUG                         ),
00980     PCI_DEV_HW_SPEC_BM( 0686, 1106, 0x10, ATA_UDMA4, "VIA 82C686A"      , VIA66  | VIACLK                         ),
00981     PCI_DEV_HW_SPEC_BM( 0686, 1106, 0x00, ATA_UDMA2, "VIA 82C686"       , VIA33  | 0x00                           ),
00982     PCI_DEV_HW_SPEC_BM( 8231, 1106, 0x00, ATA_UDMA5, "VIA 8231"         , VIA100 | VIABUG                         ),
00983     PCI_DEV_HW_SPEC_BM( 3074, 1106, 0x00, ATA_UDMA5, "VIA 8233"         , VIA100 | 0x00                           ),
00984     PCI_DEV_HW_SPEC_BM( 3109, 1106, 0x00, ATA_UDMA5, "VIA 8233C"        , VIA100 | 0x00                           ),
00985     PCI_DEV_HW_SPEC_BM( 3147, 1106, 0x00, ATA_UDMA6, "VIA 8233A"        , VIA133 | VIAAST                         ),
00986     PCI_DEV_HW_SPEC_BM( 3177, 1106, 0x00, ATA_UDMA6, "VIA 8235"         , VIA133 | VIAAST                         ),
00987 */
00988     PCI_DEV_HW_SPEC_BM( 0571, 1106, 0x00, ATA_UDMA2, "VIA ATA-xxx"      , 0                                       ),
00989     PCI_DEV_HW_SPEC_BM( 0581, 1106, 0x00, ATA_UDMA6, "VIA UATA-xxx"     , 0                                       ),
00990     /* has no SATA registers, all mapped to PATA-style regs */
00991     PCI_DEV_HW_SPEC_BM( 5324, 1106, 0x00, ATA_SA150, "VIA SATA-xxx"     , 0                                       ),
00992     PCI_DEV_HW_SPEC_BM( 3164, 1106, 0x00, ATA_UDMA6, "VIA 6410"         , 0                                       ),
00993     PCI_DEV_HW_SPEC_BM( 3149, 1106, 0x00, ATA_SA150, "VIA 6420"         , 0      | UNIATA_SATA                    ),
00994     PCI_DEV_HW_SPEC_BM( 3249, 1106, 0x00, ATA_SA150, "VIA 6421"         , VIABAR | UNIATA_SATA                    ),
00995     PCI_DEV_HW_SPEC_BM( 0591, 1106, 0x00, ATA_SA150, "VIA 8237A"        , 0      | UNIATA_SATA                    ),
00996     PCI_DEV_HW_SPEC_BM( 5337, 1106, 0x00, ATA_SA150, "VIA 8237S"        , 0      | UNIATA_SATA                    ),
00997     PCI_DEV_HW_SPEC_BM( 5372, 1106, 0x00, ATA_SA300, "VIA 8237"         , 0      | UNIATA_SATA                    ),
00998     PCI_DEV_HW_SPEC_BM( 7372, 1106, 0x00, ATA_SA300, "VIA 8237"         , 0      | UNIATA_SATA                    ),
00999     //PCI_DEV_HW_SPEC_BM( 3349, 1106, 0x00, ATA_SA150, "VIA 8251"         , VIAAHCI| UNIATA_SATA                    ),
01000 
01001     PCI_DEV_HW_SPEC_BM( c693, 1080, 0x00, ATA_WDMA2, "Cypress 82C693"   ,0                                        ),
01002 
01003 /*                                                                                     
01004     PCI_DEV_HW_SPEC_BM( 4d68, 105a, 0, 0, "Promise TX2 ATA-100 controller",          UNIATA_RAID_CONTROLLER),
01005     PCI_DEV_HW_SPEC_BM( 6268, 105a, 0, 0, "Promise TX2 ATA-100 controller",          UNIATA_RAID_CONTROLLER),
01006 
01007     PCI_DEV_HW_SPEC_BM( 4d69, 105a, 0, 0, "Promise TX2 ATA-133 controller",          UNIATA_RAID_CONTROLLER),
01008     PCI_DEV_HW_SPEC_BM( 5275, 105a, 0, 0, "Promise TX2 ATA-133 controller",          UNIATA_RAID_CONTROLLER),
01009     PCI_DEV_HW_SPEC_BM( 6269, 105a, 0, 0, "Promise TX2 ATA-133 controller",          UNIATA_RAID_CONTROLLER),
01010     PCI_DEV_HW_SPEC_BM( 7275, 105a, 0, 0, "Promise TX2 ATA-133 controller",          UNIATA_RAID_CONTROLLER),
01011 
01012     PCI_DEV_HW_SPEC_BM( 4d33, 105a, 0, 0, "Promise Ultra/FastTrak-33 controller",    UNIATA_RAID_CONTROLLER),
01013 
01014     PCI_DEV_HW_SPEC_BM( 0d38, 105a, 0, 0, "Promise FastTrak 66 controller",          0),
01015     PCI_DEV_HW_SPEC_BM( 4d38, 105a, 0, 0, "Promise Ultra/FastTrak-66 controller",    UNIATA_RAID_CONTROLLER),
01016 
01017     PCI_DEV_HW_SPEC_BM( 4d30, 105a, 0, 0, "Promise Ultra/FastTrak-100 controller",   UNIATA_RAID_CONTROLLER),
01018     PCI_DEV_HW_SPEC_BM( 0d30, 105a, 0, 0, "Promise OEM ATA-100 controllers",         UNIATA_RAID_CONTROLLER),
01019 
01020     PCI_DEV_HW_SPEC_BM( 0004, 1103, 0, 0, "HighPoint HPT366/368/370/372 controller", UNIATA_RAID_CONTROLLER),
01021     PCI_DEV_HW_SPEC_BM( 0005, 1103, 0, 0, "HighPoint HPT372 controller",             UNIATA_RAID_CONTROLLER),
01022     PCI_DEV_HW_SPEC_BM( 0008, 1103, 0, 0, "HighPoint HPT374 controller",             UNIATA_RAID_CONTROLLER),
01023 */
01024     PCI_DEV_HW_SPEC_BM( 0001, 16ca, 0x00, ATA_WDMA2, "Cenatek Rocket Drive",0                                     ),
01025 
01026     PCI_DEV_HW_SPEC_BM( 0102, 1078, 0x00, ATA_UDMA2, "Cyrix 5530"       , 0                                       ),
01027 
01028     PCI_DEV_HW_SPEC_BM( 0102, 1042, 0x00, ATA_PIO4,  "RZ 100x"          , 0                                       ),
01029 
01030     PCI_DEV_HW_SPEC_BM( 8172, 1283, 0x00, ATA_UDMA2, "IT8172"           , 0                                       ),
01031     PCI_DEV_HW_SPEC_BM( 8213, 1283, 0x00, ATA_UDMA6, "IT8213F"          , ITE_133_NEW                             ),
01032     PCI_DEV_HW_SPEC_BM( 8212, 1283, 0x00, ATA_UDMA6, "IT8212F"          , ITE_133                                 ),
01033     PCI_DEV_HW_SPEC_BM( 8211, 1283, 0x00, ATA_UDMA6, "IT8211F"          , ITE_133                                 ),
01034 
01035     PCI_DEV_HW_SPEC_BM( 0044, 169c, 0x00, ATA_UDMA2, "Netcell SR3000/5000", 0                                     ),
01036 
01037     PCI_DEV_HW_SPEC_BM( 8013, 3388, 0x00, ATA_DMA,   "HiNT VXII EIDE"   , 0                                       ),
01038 
01039     // Terminator
01040     PCI_DEV_HW_SPEC_BM( ffff, ffff, 0xff, BMLIST_TERMINATOR, NULL       , BMLIST_TERMINATOR )
01041 };
01042 
01043 #define NUM_BUSMASTER_ADAPTERS (sizeof(BusMasterAdapters) / sizeof(BUSMASTER_CONTROLLER_INFORMATION))
01044 
01045 /*
01046     Looks for device with specified Device/Vendor and Revision
01047     in specified device list and returnts its index.
01048     If no matching record found, -1 is returned
01049 */
01050 __inline
01051 ULONG
01052 Ata_is_dev_listed(
01053     PBUSMASTER_CONTROLLER_INFORMATION BusMasterAdapters,
01054     ULONG VendorId,
01055     ULONG DeviceId,
01056     ULONG RevId, // min suitable revision
01057     ULONG lim
01058     )
01059 {
01060     for(ULONG k=0; k<lim; k++) {
01061         if(BusMasterAdapters[k].nVendorId == 0xffff &&
01062            BusMasterAdapters[k].nDeviceId == 0xffff &&
01063            BusMasterAdapters[k].nRevId    == 0xff) {
01064             if(lim != BMLIST_TERMINATOR)
01065                 continue;
01066             return BMLIST_TERMINATOR;
01067         }
01068         if(BusMasterAdapters[k].nVendorId == VendorId &&
01069            (BusMasterAdapters[k].nDeviceId == DeviceId || DeviceId == 0xffff) &&
01070            (!RevId || BusMasterAdapters[k].nRevId <= RevId) )
01071             return k;
01072     }
01073     return BMLIST_TERMINATOR;
01074 }
01075 
01076 #define Ata_is_supported_dev(pciData) \
01077     ((pciData)->BaseClass == PCI_DEV_CLASS_STORAGE && \
01078      (pciData)->SubClass == PCI_DEV_SUBCLASS_IDE)
01079 
01080 #define Ata_is_ahci_dev(pciData) \
01081     ((pciData)->BaseClass == PCI_DEV_CLASS_STORAGE && \
01082      (pciData)->SubClass == PCI_DEV_SUBCLASS_SATA && \
01083      (pciData)->ProgIf == PCI_DEV_PROGIF_AHCI_1_0 && \
01084      ((pciData)->u.type0.BaseAddresses[5] & ~0x7))
01085 
01086 
01087 #endif //__IDE_BUSMASTER_H__

Generated on Sat May 26 2012 04:26:55 for ReactOS by doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.