Changeset 33
- Timestamp:
- Oct 1, 2010, 4:07:50 PM (15 years ago)
- Location:
- trunk/src/os2ahci
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/os2ahci/os2ahci.c
r32 r33 85 85 static char init_msg[] = "OS2AHCI driver version %d.%02d\n"; 86 86 static char exit_msg[] = "OS2AHCI driver *not* installed\n"; 87 static char eval_msg[] = ANSI_CLR_RED ANSI_CLR_BRIGHT "Evaluation version " 88 "- not licensed for production use.\n" ANSI_RESET; 89 87 90 88 91 /* ----------------------------- start of code ----------------------------- */ … … 140 143 /* print initialization message */ 141 144 cprintf(init_msg, VERSION / 100, VERSION % 100); 145 cprintf(eval_msg); 142 146 143 147 /* register driver with resource manager */ -
trunk/src/os2ahci/os2ahci.def
r31 r33 1 1 library os2ahci 2 Description '$@#thi.guten (www.thiguten.de):1.00.2010 0930#@OS/2 AHCI Adapter Device Driver'2 Description '$@#thi.guten (www.thiguten.de):1.00.20101001#@OS/2 AHCI Adapter Device Driver' 3 3 protmode 4 4 -
trunk/src/os2ahci/os2ahci.h
r31 r33 239 239 #define PCI_CLASS_STORAGE_OTHER 0x0180 240 240 241 /****************************************************************************** 242 * ANSI color code constants 243 */ 244 #define ANSI_CLR_BRIGHT "\x1b[1m" 245 #define ANSI_CLR_RED "\x1b[31m" 246 #define ANSI_CLR_GREEN "\x1b[32m" 247 #define ANSI_CLR_BLUE "\x1b[34m" 248 #define ANSI_CLR_CYAN "\x1b[36m" 249 #define ANSI_CLR_WHITE "\x1b[37m" 250 #define ANSI_RESET "\x1b[0m" 251 252 241 253 /* ------------------------ typedefs and structures ------------------------ */ 242 254 … … 255 267 u32 class_mask; /* bits to match when scanning for 'class' */ 256 268 u32 board; /* AHCI controller board type (board_* constants) */ 269 char *chipname; /* human readable chip ID string */ 257 270 } PCI_ID; 258 271 … … 434 447 extern int pci_enable_int (UCHAR bus, UCHAR dev_func); 435 448 extern void pci_hack_virtualbox(void); 449 extern char *vendor_from_id (u16 vendor); 450 extern char *device_from_id (u16 device); 436 451 437 452 /* ctxhook.c */ -
trunk/src/os2ahci/pci.c
r31 r33 1 1 /****************************************************************************** 2 * pci.c - PCI constants and detection code for os2ahci driver2 * PCI.c - PCI constants and detection code for os2ahci driver 3 3 * 4 4 * Copyright (c) 2010 Christian Mueller. Parts copied from/inspired by the 5 * L inux AHCIdriver; those parts are (c) Linux AHCI/ATA maintainers5 * LINUX ahci driver; those parts are (c) Linux AHCI/ATA maintainers 6 6 * 7 7 * This program is free software; you can redistribute it and/or modify … … 155 155 156 156 /****************************************************************************** 157 * chipset/controller name strings 158 */ 159 static char chip_esb2[] = "ESB2"; 160 static char chip_ich8[] = "ICH8"; 161 static char chip_ich8m[] = "ICH8M"; 162 static char chip_ich9[] = "ICH9"; 163 static char chip_ich9m[] = "ICH9M"; 164 static char chip_ich10[] = "ICH10"; 165 static char chip_pchahci[] = "PCH AHCI"; 166 static char chip_pchraid[] = "PCH RAID"; 167 static char chip_tolapai[] = "Tolapai"; 168 static char chip_sb600[] = "SB600"; 169 static char chip_sb700[] = "SB700/800"; 170 static char chip_vt8251[] = "VT8251"; 171 static char chip_mcp65[] = "MCP65"; 172 static char chip_mcp67[] = "MCP67"; 173 static char chip_mcp73[] = "MCP73"; 174 static char chip_mcp77[] = "MCP77"; 175 static char chip_mcp79[] = "MCP79"; 176 static char chip_mcp89[] = "MCP689"; 177 static char chip_sis968[] = "968"; 178 179 static char s_generic[] = "Generic"; 180 181 182 183 /****************************************************************************** 157 184 * PCI vendor and device IDs for known AHCI adapters. Copied from the Linux 158 185 * AHCI driver. … … 164 191 * NOTE: ICH5 controller does NOT support AHCI, so we do 165 192 * not add it here! */ 166 { PCI_VDEVICE(INTEL, 0x2652), board_ahci }, /* ICH6 */167 { PCI_VDEVICE(INTEL, 0x2653), board_ahci }, /* ICH6M */168 { PCI_VDEVICE(INTEL, 0x27c1), board_ahci }, /* ICH7 */169 { PCI_VDEVICE(INTEL, 0x27c5), board_ahci }, /* ICH7M */170 { PCI_VDEVICE(INTEL, 0x27c3), board_ahci }, /* ICH7R */171 { PCI_VDEVICE(AL, 0x5288), board_ahci_ign_iferr }, /* ULi M5288 */172 { PCI_VDEVICE(INTEL, 0x2681), board_ahci }, /* ESB2 */173 { PCI_VDEVICE(INTEL, 0x2682), board_ahci }, /* ESB2 */174 { PCI_VDEVICE(INTEL, 0x2683), board_ahci }, /* ESB2 */175 { PCI_VDEVICE(INTEL, 0x27c6), board_ahci }, /* ICH7-M DH */176 { PCI_VDEVICE(INTEL, 0x2821), board_ahci }, /* ICH8 */177 { PCI_VDEVICE(INTEL, 0x2822), board_ahci_nosntf }, /* ICH8 */178 { PCI_VDEVICE(INTEL, 0x2824), board_ahci }, /* ICH8 */179 { PCI_VDEVICE(INTEL, 0x2829), board_ahci }, /* ICH8M */180 { PCI_VDEVICE(INTEL, 0x282a), board_ahci }, /* ICH8M */181 { PCI_VDEVICE(INTEL, 0x2922), board_ahci }, /* ICH9 */182 { PCI_VDEVICE(INTEL, 0x2923), board_ahci }, /* ICH9 */183 { PCI_VDEVICE(INTEL, 0x2924), board_ahci }, /* ICH9 */184 { PCI_VDEVICE(INTEL, 0x2925), board_ahci }, /* ICH9 */185 { PCI_VDEVICE(INTEL, 0x2927), board_ahci }, /* ICH9 */186 { PCI_VDEVICE(INTEL, 0x2929), board_ahci }, /* ICH9M */187 { PCI_VDEVICE(INTEL, 0x292a), board_ahci }, /* ICH9M */188 { PCI_VDEVICE(INTEL, 0x292b), board_ahci }, /* ICH9M */189 { PCI_VDEVICE(INTEL, 0x292c), board_ahci }, /* ICH9M */190 { PCI_VDEVICE(INTEL, 0x292f), board_ahci }, /* ICH9M */191 { PCI_VDEVICE(INTEL, 0x294d), board_ahci }, /* ICH9 */192 { PCI_VDEVICE(INTEL, 0x294e), board_ahci }, /* ICH9M */193 { PCI_VDEVICE(INTEL, 0x502a), board_ahci }, /* Tolapai */194 { PCI_VDEVICE(INTEL, 0x502b), board_ahci }, /* Tolapai */195 { PCI_VDEVICE(INTEL, 0x3a05), board_ahci }, /* ICH10 */196 { PCI_VDEVICE(INTEL, 0x3a22), board_ahci }, /* ICH10 */197 { PCI_VDEVICE(INTEL, 0x3a25), board_ahci }, /* ICH10 */198 { PCI_VDEVICE(INTEL, 0x3b22), board_ahci }, /* PCH AHCI */199 { PCI_VDEVICE(INTEL, 0x3b23), board_ahci }, /* PCH AHCI */200 { PCI_VDEVICE(INTEL, 0x3b24), board_ahci }, /* PCH RAID */201 { PCI_VDEVICE(INTEL, 0x3b25), board_ahci }, /* PCH RAID */202 { PCI_VDEVICE(INTEL, 0x3b29), board_ahci }, /* PCH AHCI */203 { PCI_VDEVICE(INTEL, 0x3b2b), board_ahci }, /* PCH RAID */204 { PCI_VDEVICE(INTEL, 0x3b2c), board_ahci }, /* PCH RAID */205 { PCI_VDEVICE(INTEL, 0x3b2f), board_ahci }, /* PCH AHCI */193 { PCI_VDEVICE(INTEL, 0x2652), board_ahci, "ICH6" }, /* ICH6 */ 194 { PCI_VDEVICE(INTEL, 0x2653), board_ahci, "ICH6M" }, /* ICH6M */ 195 { PCI_VDEVICE(INTEL, 0x27c1), board_ahci, "ICH7" }, /* ICH7 */ 196 { PCI_VDEVICE(INTEL, 0x27c5), board_ahci, "ICH7M" }, /* ICH7M */ 197 { PCI_VDEVICE(INTEL, 0x27c3), board_ahci, "ICH7R" }, /* ICH7R */ 198 { PCI_VDEVICE(AL, 0x5288), board_ahci_ign_iferr, "ULiM5288" }, /* ULi M5288 */ 199 { PCI_VDEVICE(INTEL, 0x2681), board_ahci, chip_esb2 }, /* ESB2 */ 200 { PCI_VDEVICE(INTEL, 0x2682), board_ahci, chip_esb2 }, /* ESB2 */ 201 { PCI_VDEVICE(INTEL, 0x2683), board_ahci, chip_esb2 }, /* ESB2 */ 202 { PCI_VDEVICE(INTEL, 0x27c6), board_ahci, "ICH7MDH" }, /* ICH7-M DH */ 203 { PCI_VDEVICE(INTEL, 0x2821), board_ahci, chip_ich8 }, /* ICH8 */ 204 { PCI_VDEVICE(INTEL, 0x2822), board_ahci_nosntf, chip_ich8 }, /* ICH8 */ 205 { PCI_VDEVICE(INTEL, 0x2824), board_ahci, chip_ich8 }, /* ICH8 */ 206 { PCI_VDEVICE(INTEL, 0x2829), board_ahci, chip_ich8m }, /* ICH8M */ 207 { PCI_VDEVICE(INTEL, 0x282a), board_ahci, chip_ich8m }, /* ICH8M */ 208 { PCI_VDEVICE(INTEL, 0x2922), board_ahci, chip_ich9 }, /* ICH9 */ 209 { PCI_VDEVICE(INTEL, 0x2923), board_ahci, chip_ich9 }, /* ICH9 */ 210 { PCI_VDEVICE(INTEL, 0x2924), board_ahci, chip_ich9 }, /* ICH9 */ 211 { PCI_VDEVICE(INTEL, 0x2925), board_ahci, chip_ich9 }, /* ICH9 */ 212 { PCI_VDEVICE(INTEL, 0x2927), board_ahci, chip_ich9 }, /* ICH9 */ 213 { PCI_VDEVICE(INTEL, 0x2929), board_ahci, chip_ich9m }, /* ICH9M */ 214 { PCI_VDEVICE(INTEL, 0x292a), board_ahci, chip_ich9m }, /* ICH9M */ 215 { PCI_VDEVICE(INTEL, 0x292b), board_ahci, chip_ich9m }, /* ICH9M */ 216 { PCI_VDEVICE(INTEL, 0x292c), board_ahci, chip_ich9m }, /* ICH9M */ 217 { PCI_VDEVICE(INTEL, 0x292f), board_ahci, chip_ich9m }, /* ICH9M */ 218 { PCI_VDEVICE(INTEL, 0x294d), board_ahci, chip_ich9 }, /* ICH9 */ 219 { PCI_VDEVICE(INTEL, 0x294e), board_ahci, chip_ich9m }, /* ICH9M */ 220 { PCI_VDEVICE(INTEL, 0x502a), board_ahci, chip_tolapai }, /* Tolapai */ 221 { PCI_VDEVICE(INTEL, 0x502b), board_ahci, chip_tolapai }, /* Tolapai */ 222 { PCI_VDEVICE(INTEL, 0x3a05), board_ahci, chip_ich10 }, /* ICH10 */ 223 { PCI_VDEVICE(INTEL, 0x3a22), board_ahci, chip_ich10 }, /* ICH10 */ 224 { PCI_VDEVICE(INTEL, 0x3a25), board_ahci, chip_ich10 }, /* ICH10 */ 225 { PCI_VDEVICE(INTEL, 0x3b22), board_ahci, chip_pchahci }, /* PCH AHCI */ 226 { PCI_VDEVICE(INTEL, 0x3b23), board_ahci, chip_pchahci }, /* PCH AHCI */ 227 { PCI_VDEVICE(INTEL, 0x3b24), board_ahci, chip_pchraid }, /* PCH RAID */ 228 { PCI_VDEVICE(INTEL, 0x3b25), board_ahci, chip_pchraid }, /* PCH RAID */ 229 { PCI_VDEVICE(INTEL, 0x3b29), board_ahci, chip_pchahci }, /* PCH AHCI */ 230 { PCI_VDEVICE(INTEL, 0x3b2b), board_ahci, chip_pchraid }, /* PCH RAID */ 231 { PCI_VDEVICE(INTEL, 0x3b2c), board_ahci, chip_pchraid }, /* PCH RAID */ 232 { PCI_VDEVICE(INTEL, 0x3b2f), board_ahci, chip_pchahci }, /* PCH AHCI */ 206 233 207 234 /* JMicron 360/1/3/5/6, match class to avoid IDE function */ 208 235 { PCI_VENDOR_ID_JMICRON, PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID, 209 PCI_CLASS_STORAGE_SATA_AHCI, 0xffffffL, board_ahci_ign_iferr },236 PCI_CLASS_STORAGE_SATA_AHCI, 0xffffffL, board_ahci_ign_iferr, "360" }, 210 237 211 238 /* ATI */ 212 { PCI_VDEVICE(ATI, 0x4380), board_ahci_sb600 }, /* ATI SB600 */213 { PCI_VDEVICE(ATI, 0x4390), board_ahci_sb700 }, /* ATI SB700/800 */214 { PCI_VDEVICE(ATI, 0x4391), board_ahci_sb700 }, /* ATI SB700/800 */215 { PCI_VDEVICE(ATI, 0x4392), board_ahci_sb700 }, /* ATI SB700/800 */216 { PCI_VDEVICE(ATI, 0x4393), board_ahci_sb700 }, /* ATI SB700/800 */217 { PCI_VDEVICE(ATI, 0x4394), board_ahci_sb700 }, /* ATI SB700/800 */218 { PCI_VDEVICE(ATI, 0x4395), board_ahci_sb700 }, /* ATI SB700/800 */239 { PCI_VDEVICE(ATI, 0x4380), board_ahci_sb600, "SB600" }, /* ATI SB600 */ 240 { PCI_VDEVICE(ATI, 0x4390), board_ahci_sb700, chip_sb700 }, /* ATI SB700/800 */ 241 { PCI_VDEVICE(ATI, 0x4391), board_ahci_sb700, chip_sb700 }, /* ATI SB700/800 */ 242 { PCI_VDEVICE(ATI, 0x4392), board_ahci_sb700, chip_sb700 }, /* ATI SB700/800 */ 243 { PCI_VDEVICE(ATI, 0x4393), board_ahci_sb700, chip_sb700 }, /* ATI SB700/800 */ 244 { PCI_VDEVICE(ATI, 0x4394), board_ahci_sb700, chip_sb700 }, /* ATI SB700/800 */ 245 { PCI_VDEVICE(ATI, 0x4395), board_ahci_sb700, chip_sb700 }, /* ATI SB700/800 */ 219 246 220 247 /* AMD */ … … 222 249 /* AMD is using RAID class only for ahci controllers */ 223 250 { PCI_VENDOR_ID_AMD, PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID, 224 PCI_CLASS_STORAGE_RAID << 8, 0xffffffL, board_ahci },251 PCI_CLASS_STORAGE_RAID << 8, 0xffffffL, board_ahci, "Hudson2" }, 225 252 226 253 /* VIA */ 227 { PCI_VDEVICE(VIA, 0x3349), board_ahci_vt8251 }, /* VIA VT8251 */228 { PCI_VDEVICE(VIA, 0x6287), board_ahci_vt8251 }, /* VIA VT8251 */254 { PCI_VDEVICE(VIA, 0x3349), board_ahci_vt8251, chip_vt8251 }, /* VIA VT8251 */ 255 { PCI_VDEVICE(VIA, 0x6287), board_ahci_vt8251, chip_vt8251 }, /* VIA VT8251 */ 229 256 230 257 /* NVIDIA */ 231 { PCI_VDEVICE(NVIDIA, 0x044c), board_ahci_mcp65 },/* MCP65 */232 { PCI_VDEVICE(NVIDIA, 0x044d), board_ahci_mcp65 },/* MCP65 */233 { PCI_VDEVICE(NVIDIA, 0x044e), board_ahci_mcp65 },/* MCP65 */234 { PCI_VDEVICE(NVIDIA, 0x044f), board_ahci_mcp65 },/* MCP65 */235 { PCI_VDEVICE(NVIDIA, 0x045c), board_ahci_mcp65 },/* MCP65 */236 { PCI_VDEVICE(NVIDIA, 0x045d), board_ahci_mcp65 },/* MCP65 */237 { PCI_VDEVICE(NVIDIA, 0x045e), board_ahci_mcp65 },/* MCP65 */238 { PCI_VDEVICE(NVIDIA, 0x045f), board_ahci_mcp65 },/* MCP65 */239 { PCI_VDEVICE(NVIDIA, 0x0550), board_ahci_yesncq },/* MCP67 */240 { PCI_VDEVICE(NVIDIA, 0x0551), board_ahci_yesncq },/* MCP67 */241 { PCI_VDEVICE(NVIDIA, 0x0552), board_ahci_yesncq },/* MCP67 */242 { PCI_VDEVICE(NVIDIA, 0x0553), board_ahci_yesncq },/* MCP67 */243 { PCI_VDEVICE(NVIDIA, 0x0554), board_ahci_yesncq },/* MCP67 */244 { PCI_VDEVICE(NVIDIA, 0x0555), board_ahci_yesncq },/* MCP67 */245 { PCI_VDEVICE(NVIDIA, 0x0556), board_ahci_yesncq },/* MCP67 */246 { PCI_VDEVICE(NVIDIA, 0x0557), board_ahci_yesncq },/* MCP67 */247 { PCI_VDEVICE(NVIDIA, 0x0558), board_ahci_yesncq },/* MCP67 */248 { PCI_VDEVICE(NVIDIA, 0x0559), board_ahci_yesncq },/* MCP67 */249 { PCI_VDEVICE(NVIDIA, 0x055a), board_ahci_yesncq },/* MCP67 */250 { PCI_VDEVICE(NVIDIA, 0x055b), board_ahci_yesncq },/* MCP67 */251 { PCI_VDEVICE(NVIDIA, 0x0580), board_ahci_yesncq },/* Linux ID */252 { PCI_VDEVICE(NVIDIA, 0x07f0), board_ahci_yesncq },/* MCP73 */253 { PCI_VDEVICE(NVIDIA, 0x07f1), board_ahci_yesncq },/* MCP73 */254 { PCI_VDEVICE(NVIDIA, 0x07f2), board_ahci_yesncq },/* MCP73 */255 { PCI_VDEVICE(NVIDIA, 0x07f3), board_ahci_yesncq },/* MCP73 */256 { PCI_VDEVICE(NVIDIA, 0x07f4), board_ahci_yesncq },/* MCP73 */257 { PCI_VDEVICE(NVIDIA, 0x07f5), board_ahci_yesncq },/* MCP73 */258 { PCI_VDEVICE(NVIDIA, 0x07f6), board_ahci_yesncq },/* MCP73 */259 { PCI_VDEVICE(NVIDIA, 0x07f7), board_ahci_yesncq },/* MCP73 */260 { PCI_VDEVICE(NVIDIA, 0x07f8), board_ahci_yesncq },/* MCP73 */261 { PCI_VDEVICE(NVIDIA, 0x07f9), board_ahci_yesncq },/* MCP73 */262 { PCI_VDEVICE(NVIDIA, 0x07fa), board_ahci_yesncq },/* MCP73 */263 { PCI_VDEVICE(NVIDIA, 0x07fb), board_ahci_yesncq },/* MCP73 */264 { PCI_VDEVICE(NVIDIA, 0x0ad0), board_ahci },/* MCP77 */265 { PCI_VDEVICE(NVIDIA, 0x0ad1), board_ahci },/* MCP77 */266 { PCI_VDEVICE(NVIDIA, 0x0ad2), board_ahci },/* MCP77 */267 { PCI_VDEVICE(NVIDIA, 0x0ad3), board_ahci },/* MCP77 */268 { PCI_VDEVICE(NVIDIA, 0x0ad4), board_ahci },/* MCP77 */269 { PCI_VDEVICE(NVIDIA, 0x0ad5), board_ahci },/* MCP77 */270 { PCI_VDEVICE(NVIDIA, 0x0ad6), board_ahci },/* MCP77 */271 { PCI_VDEVICE(NVIDIA, 0x0ad7), board_ahci },/* MCP77 */272 { PCI_VDEVICE(NVIDIA, 0x0ad8), board_ahci },/* MCP77 */273 { PCI_VDEVICE(NVIDIA, 0x0ad9), board_ahci },/* MCP77 */274 { PCI_VDEVICE(NVIDIA, 0x0ada), board_ahci },/* MCP77 */275 { PCI_VDEVICE(NVIDIA, 0x0adb), board_ahci },/* MCP77 */276 { PCI_VDEVICE(NVIDIA, 0x0ab4), board_ahci },/* MCP79 */277 { PCI_VDEVICE(NVIDIA, 0x0ab5), board_ahci },/* MCP79 */278 { PCI_VDEVICE(NVIDIA, 0x0ab6), board_ahci },/* MCP79 */279 { PCI_VDEVICE(NVIDIA, 0x0ab7), board_ahci },/* MCP79 */280 { PCI_VDEVICE(NVIDIA, 0x0ab8), board_ahci },/* MCP79 */281 { PCI_VDEVICE(NVIDIA, 0x0ab9), board_ahci },/* MCP79 */282 { PCI_VDEVICE(NVIDIA, 0x0aba), board_ahci },/* MCP79 */283 { PCI_VDEVICE(NVIDIA, 0x0abb), board_ahci },/* MCP79 */284 { PCI_VDEVICE(NVIDIA, 0x0abc), board_ahci },/* MCP79 */285 { PCI_VDEVICE(NVIDIA, 0x0abd), board_ahci },/* MCP79 */286 { PCI_VDEVICE(NVIDIA, 0x0abe), board_ahci },/* MCP79 */287 { PCI_VDEVICE(NVIDIA, 0x0abf), board_ahci },/* MCP79 */288 { PCI_VDEVICE(NVIDIA, 0x0d84), board_ahci },/* MCP89 */289 { PCI_VDEVICE(NVIDIA, 0x0d85), board_ahci },/* MCP89 */290 { PCI_VDEVICE(NVIDIA, 0x0d86), board_ahci },/* MCP89 */291 { PCI_VDEVICE(NVIDIA, 0x0d87), board_ahci },/* MCP89 */292 { PCI_VDEVICE(NVIDIA, 0x0d88), board_ahci },/* MCP89 */293 { PCI_VDEVICE(NVIDIA, 0x0d89), board_ahci },/* MCP89 */294 { PCI_VDEVICE(NVIDIA, 0x0d8a), board_ahci },/* MCP89 */295 { PCI_VDEVICE(NVIDIA, 0x0d8b), board_ahci },/* MCP89 */296 { PCI_VDEVICE(NVIDIA, 0x0d8c), board_ahci },/* MCP89 */297 { PCI_VDEVICE(NVIDIA, 0x0d8d), board_ahci },/* MCP89 */298 { PCI_VDEVICE(NVIDIA, 0x0d8e), board_ahci },/* MCP89 */299 { PCI_VDEVICE(NVIDIA, 0x0d8f), board_ahci },/* MCP89 */258 { PCI_VDEVICE(NVIDIA, 0x044c), board_ahci_mcp65, chip_mcp65 }, /* MCP65 */ 259 { PCI_VDEVICE(NVIDIA, 0x044d), board_ahci_mcp65, chip_mcp65 }, /* MCP65 */ 260 { PCI_VDEVICE(NVIDIA, 0x044e), board_ahci_mcp65, chip_mcp65 }, /* MCP65 */ 261 { PCI_VDEVICE(NVIDIA, 0x044f), board_ahci_mcp65, chip_mcp65 }, /* MCP65 */ 262 { PCI_VDEVICE(NVIDIA, 0x045c), board_ahci_mcp65, chip_mcp65 }, /* MCP65 */ 263 { PCI_VDEVICE(NVIDIA, 0x045d), board_ahci_mcp65, chip_mcp65 }, /* MCP65 */ 264 { PCI_VDEVICE(NVIDIA, 0x045e), board_ahci_mcp65, chip_mcp65 }, /* MCP65 */ 265 { PCI_VDEVICE(NVIDIA, 0x045f), board_ahci_mcp65, chip_mcp65 }, /* MCP65 */ 266 { PCI_VDEVICE(NVIDIA, 0x0550), board_ahci_yesncq, chip_mcp67 }, /* MCP67 */ 267 { PCI_VDEVICE(NVIDIA, 0x0551), board_ahci_yesncq, chip_mcp67 }, /* MCP67 */ 268 { PCI_VDEVICE(NVIDIA, 0x0552), board_ahci_yesncq, chip_mcp67 }, /* MCP67 */ 269 { PCI_VDEVICE(NVIDIA, 0x0553), board_ahci_yesncq, chip_mcp67 }, /* MCP67 */ 270 { PCI_VDEVICE(NVIDIA, 0x0554), board_ahci_yesncq, chip_mcp67 }, /* MCP67 */ 271 { PCI_VDEVICE(NVIDIA, 0x0555), board_ahci_yesncq, chip_mcp67 }, /* MCP67 */ 272 { PCI_VDEVICE(NVIDIA, 0x0556), board_ahci_yesncq, chip_mcp67 }, /* MCP67 */ 273 { PCI_VDEVICE(NVIDIA, 0x0557), board_ahci_yesncq, chip_mcp67 }, /* MCP67 */ 274 { PCI_VDEVICE(NVIDIA, 0x0558), board_ahci_yesncq, chip_mcp67 }, /* MCP67 */ 275 { PCI_VDEVICE(NVIDIA, 0x0559), board_ahci_yesncq, chip_mcp67 }, /* MCP67 */ 276 { PCI_VDEVICE(NVIDIA, 0x055a), board_ahci_yesncq, chip_mcp67 }, /* MCP67 */ 277 { PCI_VDEVICE(NVIDIA, 0x055b), board_ahci_yesncq, chip_mcp67 }, /* MCP67 */ 278 { PCI_VDEVICE(NVIDIA, 0x0580), board_ahci_yesncq, chip_mcp67 }, /* Linux ID */ 279 { PCI_VDEVICE(NVIDIA, 0x07f0), board_ahci_yesncq, chip_mcp73 }, /* MCP73 */ 280 { PCI_VDEVICE(NVIDIA, 0x07f1), board_ahci_yesncq, chip_mcp73 }, /* MCP73 */ 281 { PCI_VDEVICE(NVIDIA, 0x07f2), board_ahci_yesncq, chip_mcp73 }, /* MCP73 */ 282 { PCI_VDEVICE(NVIDIA, 0x07f3), board_ahci_yesncq, chip_mcp73 }, /* MCP73 */ 283 { PCI_VDEVICE(NVIDIA, 0x07f4), board_ahci_yesncq, chip_mcp73 }, /* MCP73 */ 284 { PCI_VDEVICE(NVIDIA, 0x07f5), board_ahci_yesncq, chip_mcp73 }, /* MCP73 */ 285 { PCI_VDEVICE(NVIDIA, 0x07f6), board_ahci_yesncq, chip_mcp73 }, /* MCP73 */ 286 { PCI_VDEVICE(NVIDIA, 0x07f7), board_ahci_yesncq, chip_mcp73 }, /* MCP73 */ 287 { PCI_VDEVICE(NVIDIA, 0x07f8), board_ahci_yesncq, chip_mcp73 }, /* MCP73 */ 288 { PCI_VDEVICE(NVIDIA, 0x07f9), board_ahci_yesncq, chip_mcp73 }, /* MCP73 */ 289 { PCI_VDEVICE(NVIDIA, 0x07fa), board_ahci_yesncq, chip_mcp73 }, /* MCP73 */ 290 { PCI_VDEVICE(NVIDIA, 0x07fb), board_ahci_yesncq, chip_mcp73 }, /* MCP73 */ 291 { PCI_VDEVICE(NVIDIA, 0x0ad0), board_ahci, chip_mcp77 }, /* MCP77 */ 292 { PCI_VDEVICE(NVIDIA, 0x0ad1), board_ahci, chip_mcp77 }, /* MCP77 */ 293 { PCI_VDEVICE(NVIDIA, 0x0ad2), board_ahci, chip_mcp77 }, /* MCP77 */ 294 { PCI_VDEVICE(NVIDIA, 0x0ad3), board_ahci, chip_mcp77 }, /* MCP77 */ 295 { PCI_VDEVICE(NVIDIA, 0x0ad4), board_ahci, chip_mcp77 }, /* MCP77 */ 296 { PCI_VDEVICE(NVIDIA, 0x0ad5), board_ahci, chip_mcp77 }, /* MCP77 */ 297 { PCI_VDEVICE(NVIDIA, 0x0ad6), board_ahci, chip_mcp77 }, /* MCP77 */ 298 { PCI_VDEVICE(NVIDIA, 0x0ad7), board_ahci, chip_mcp77 }, /* MCP77 */ 299 { PCI_VDEVICE(NVIDIA, 0x0ad8), board_ahci, chip_mcp77 }, /* MCP77 */ 300 { PCI_VDEVICE(NVIDIA, 0x0ad9), board_ahci, chip_mcp77 }, /* MCP77 */ 301 { PCI_VDEVICE(NVIDIA, 0x0ada), board_ahci, chip_mcp77 }, /* MCP77 */ 302 { PCI_VDEVICE(NVIDIA, 0x0adb), board_ahci, chip_mcp77 }, /* MCP77 */ 303 { PCI_VDEVICE(NVIDIA, 0x0ab4), board_ahci, chip_mcp79 }, /* MCP79 */ 304 { PCI_VDEVICE(NVIDIA, 0x0ab5), board_ahci, chip_mcp79 }, /* MCP79 */ 305 { PCI_VDEVICE(NVIDIA, 0x0ab6), board_ahci, chip_mcp79 }, /* MCP79 */ 306 { PCI_VDEVICE(NVIDIA, 0x0ab7), board_ahci, chip_mcp79 }, /* MCP79 */ 307 { PCI_VDEVICE(NVIDIA, 0x0ab8), board_ahci, chip_mcp79 }, /* MCP79 */ 308 { PCI_VDEVICE(NVIDIA, 0x0ab9), board_ahci, chip_mcp79 }, /* MCP79 */ 309 { PCI_VDEVICE(NVIDIA, 0x0aba), board_ahci, chip_mcp79 }, /* MCP79 */ 310 { PCI_VDEVICE(NVIDIA, 0x0abb), board_ahci, chip_mcp79 }, /* MCP79 */ 311 { PCI_VDEVICE(NVIDIA, 0x0abc), board_ahci, chip_mcp79 }, /* MCP79 */ 312 { PCI_VDEVICE(NVIDIA, 0x0abd), board_ahci, chip_mcp79 }, /* MCP79 */ 313 { PCI_VDEVICE(NVIDIA, 0x0abe), board_ahci, chip_mcp79 }, /* MCP79 */ 314 { PCI_VDEVICE(NVIDIA, 0x0abf), board_ahci, chip_mcp79 }, /* MCP79 */ 315 { PCI_VDEVICE(NVIDIA, 0x0d84), board_ahci, chip_mcp89 }, /* MCP89 */ 316 { PCI_VDEVICE(NVIDIA, 0x0d85), board_ahci, chip_mcp89 }, /* MCP89 */ 317 { PCI_VDEVICE(NVIDIA, 0x0d86), board_ahci, chip_mcp89 }, /* MCP89 */ 318 { PCI_VDEVICE(NVIDIA, 0x0d87), board_ahci, chip_mcp89 }, /* MCP89 */ 319 { PCI_VDEVICE(NVIDIA, 0x0d88), board_ahci, chip_mcp89 }, /* MCP89 */ 320 { PCI_VDEVICE(NVIDIA, 0x0d89), board_ahci, chip_mcp89 }, /* MCP89 */ 321 { PCI_VDEVICE(NVIDIA, 0x0d8a), board_ahci, chip_mcp89 }, /* MCP89 */ 322 { PCI_VDEVICE(NVIDIA, 0x0d8b), board_ahci, chip_mcp89 }, /* MCP89 */ 323 { PCI_VDEVICE(NVIDIA, 0x0d8c), board_ahci, chip_mcp89 }, /* MCP89 */ 324 { PCI_VDEVICE(NVIDIA, 0x0d8d), board_ahci, chip_mcp89 }, /* MCP89 */ 325 { PCI_VDEVICE(NVIDIA, 0x0d8e), board_ahci, chip_mcp89 }, /* MCP89 */ 326 { PCI_VDEVICE(NVIDIA, 0x0d8f), board_ahci, chip_mcp89 }, /* MCP89 */ 300 327 301 328 /* SiS */ 302 { PCI_VDEVICE(SI, 0x1184), board_ahci },/* SiS 966 */303 { PCI_VDEVICE(SI, 0x1185), board_ahci },/* SiS 968 */304 { PCI_VDEVICE(SI, 0x0186), board_ahci },/* SiS 968 */329 { PCI_VDEVICE(SI, 0x1184), board_ahci, "966" }, /* SiS 966 */ 330 { PCI_VDEVICE(SI, 0x1185), board_ahci, chip_sis968 }, /* SiS 968 */ 331 { PCI_VDEVICE(SI, 0x0186), board_ahci, chip_sis968 }, /* SiS 968 */ 305 332 306 333 /* Marvell */ 307 { PCI_VDEVICE(MARVELL, 0x6145), board_ahci_mv },/* 6145 */308 { PCI_VDEVICE(MARVELL, 0x6121), board_ahci_mv },/* 6121 */334 { PCI_VDEVICE(MARVELL, 0x6145), board_ahci_mv, "6145" }, /* 6145 */ 335 { PCI_VDEVICE(MARVELL, 0x6121), board_ahci_mv, "6121" }, /* 6121 */ 309 336 310 337 /* Promise */ 311 { PCI_VDEVICE(PROMISE, 0x3f20), board_ahci },/* PDC42819 */338 { PCI_VDEVICE(PROMISE, 0x3f20), board_ahci, "PDC42819" }, /* PDC42819 */ 312 339 313 340 /* Generic, PCI class code for AHCI */ 314 341 { PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID, 315 PCI_CLASS_STORAGE_SATA_AHCI, 0xffffffL, board_ahci },342 PCI_CLASS_STORAGE_SATA_AHCI, 0xffffffL, board_ahci, s_generic }, 316 343 317 344 /* end of list, including a few slots to define custom adapters (10) */ 318 { 0, 0, 0, 0, 0, 0, 0 },319 { 0, 0, 0, 0, 0, 0, 0 },320 { 0, 0, 0, 0, 0, 0, 0 },321 { 0, 0, 0, 0, 0, 0, 0 },322 { 0, 0, 0, 0, 0, 0, 0 },323 { 0, 0, 0, 0, 0, 0, 0 },324 { 0, 0, 0, 0, 0, 0, 0 },325 { 0, 0, 0, 0, 0, 0, 0 },326 { 0, 0, 0, 0, 0, 0, 0 },327 { 0, 0, 0, 0, 0, 0, 0 },328 329 { 0, 0, 0, 0, 0, 0, 0 }345 { 0, 0, 0, 0, 0, 0, 0, NULL }, 346 { 0, 0, 0, 0, 0, 0, 0, NULL }, 347 { 0, 0, 0, 0, 0, 0, 0, NULL }, 348 { 0, 0, 0, 0, 0, 0, 0, NULL }, 349 { 0, 0, 0, 0, 0, 0, 0, NULL }, 350 { 0, 0, 0, 0, 0, 0, 0, NULL }, 351 { 0, 0, 0, 0, 0, 0, 0, NULL }, 352 { 0, 0, 0, 0, 0, 0, 0, NULL }, 353 { 0, 0, 0, 0, 0, 0, 0, NULL }, 354 { 0, 0, 0, 0, 0, 0, 0, NULL }, 355 356 { 0, 0, 0, 0, 0, 0, 0, NULL } 330 357 }; 331 358 … … 363 390 pci_ids[i].device = device; 364 391 pci_ids[i].board = board_ahci; 392 pci_ids[i].chipname = s_generic; 365 393 return(0); 366 394 } … … 560 588 561 589 /* found a supported AHCI device */ 562 cprintf("found AHCI device: %04x:%04x (class = 0x%06lx, bus = %d, dev_func = 0x%02x)\n", 563 vendor, device, class, bus, dev_func); 590 cprintf("found AHCI device: %s %s (%04x:%04x)\n" 591 " class:0x%06lx bus:%d devfunc:0x%02x\n", 592 vendor_from_id(vendor), device_from_id(device), 593 vendor, device, 594 class, bus, dev_func); 564 595 565 596 /* make sure we got room in the adapter information array */ … … 930 961 return(data->bios_info.rc); 931 962 } 963 964 /****************************************************************************** 965 * return vendor name for PCI vendor ID 966 */ 967 char *vendor_from_id(u16 id) 968 { 969 970 switch(id) { 971 972 case PCI_VENDOR_ID_AL: 973 return "Ali"; 974 case PCI_VENDOR_ID_AMD: 975 case PCI_VENDOR_ID_ATI: 976 return "AMD"; 977 case PCI_VENDOR_ID_AT: 978 return "Allied Telesyn"; 979 case PCI_VENDOR_ID_ATT: 980 return "ATT"; 981 case PCI_VENDOR_ID_CMD: 982 return "CMD"; 983 case PCI_VENDOR_ID_CT: 984 return "CT"; 985 case PCI_VENDOR_ID_INTEL: 986 return "Intel"; 987 case PCI_VENDOR_ID_INITIO: 988 return "Initio"; 989 case PCI_VENDOR_ID_JMICRON: 990 return "JMicron"; 991 case PCI_VENDOR_ID_MARVELL: 992 return "Marvell"; 993 case PCI_VENDOR_ID_NVIDIA: 994 return "NVIDIA"; 995 case PCI_VENDOR_ID_PROMISE: 996 return "PROMISE"; 997 case PCI_VENDOR_ID_SI: 998 return "SiS"; 999 case PCI_VENDOR_ID_VIA: 1000 return "VIA"; 1001 default: 1002 break; 1003 } 1004 1005 return "Generic"; 1006 1007 } 1008 1009 /****************************************************************************** 1010 * return a device name for a PCI device id 1011 * NOTE: this is as simple as can be, so don't call it twice in one statement. 1012 */ 1013 char *device_from_id(u16 device) 1014 { 1015 int i; 1016 1017 for (i = 0; pci_ids[i].vendor != 0; i++) { 1018 1019 if (pci_ids[i].device == device) { 1020 return pci_ids[i].chipname; 1021 } 1022 1023 } 1024 1025 return s_generic; 1026 }
Note:
See TracChangeset
for help on using the changeset viewer.