Changeset 33


Ignore:
Timestamp:
Oct 1, 2010, 4:07:50 PM (15 years ago)
Author:
markus
Message:

added evaluation version message; changed boot logo to contain adapter ID strings

Location:
trunk/src/os2ahci
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/os2ahci/os2ahci.c

    r32 r33  
    8585static char     init_msg[] = "OS2AHCI driver version %d.%02d\n";
    8686static char     exit_msg[] = "OS2AHCI driver *not* installed\n";
     87static char     eval_msg[] = ANSI_CLR_RED ANSI_CLR_BRIGHT "Evaluation version "
     88                             "- not licensed for production use.\n" ANSI_RESET;
     89
    8790
    8891/* ----------------------------- start of code ----------------------------- */
     
    140143  /* print initialization message */
    141144  cprintf(init_msg, VERSION / 100, VERSION % 100);
     145  cprintf(eval_msg);
    142146
    143147  /* register driver with resource manager */
  • trunk/src/os2ahci/os2ahci.def

    r31 r33  
    11library os2ahci
    2 Description '$@#thi.guten (www.thiguten.de):1.00.20100930#@OS/2 AHCI Adapter Device Driver'
     2Description '$@#thi.guten (www.thiguten.de):1.00.20101001#@OS/2 AHCI Adapter Device Driver'
    33protmode
    44
  • trunk/src/os2ahci/os2ahci.h

    r31 r33  
    239239#define PCI_CLASS_STORAGE_OTHER         0x0180
    240240
     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
    241253/* ------------------------ typedefs and structures ------------------------ */
    242254
     
    255267  u32   class_mask;      /* bits to match when scanning for 'class' */
    256268  u32   board;           /* AHCI controller board type (board_* constants) */
     269  char  *chipname;       /* human readable chip ID string */
    257270} PCI_ID;
    258271
     
    434447extern int       pci_enable_int (UCHAR bus, UCHAR dev_func);
    435448extern void      pci_hack_virtualbox(void);
     449extern char     *vendor_from_id (u16 vendor);
     450extern char     *device_from_id (u16 device);
    436451
    437452/* ctxhook.c */
  • trunk/src/os2ahci/pci.c

    r31 r33  
    11/******************************************************************************
    2  * pci.c - PCI constants and detection code for os2ahci driver
     2 * PCI.c - PCI constants and detection code for os2ahci driver
    33 *
    44 * Copyright (c) 2010 Christian Mueller. Parts copied from/inspired by the
    5  * Linux AHCI driver; those parts are (c) Linux AHCI/ATA maintainers
     5 * LINUX ahci driver; those parts are (c) Linux AHCI/ATA maintainers
    66 *
    77 *  This program is free software; you can redistribute it and/or modify
     
    155155
    156156/******************************************************************************
     157 * chipset/controller name strings
     158 */
     159static char chip_esb2[]       = "ESB2";
     160static char chip_ich8[]       = "ICH8";
     161static char chip_ich8m[]      = "ICH8M";
     162static char chip_ich9[]       = "ICH9";
     163static char chip_ich9m[]      = "ICH9M";
     164static char chip_ich10[]      = "ICH10";
     165static char chip_pchahci[]    = "PCH AHCI";
     166static char chip_pchraid[]    = "PCH RAID";
     167static char chip_tolapai[]    = "Tolapai";
     168static char chip_sb600[]      = "SB600";
     169static char chip_sb700[]      = "SB700/800";
     170static char chip_vt8251[]     = "VT8251";
     171static char chip_mcp65[]      = "MCP65";
     172static char chip_mcp67[]      = "MCP67";
     173static char chip_mcp73[]      = "MCP73";
     174static char chip_mcp77[]      = "MCP77";
     175static char chip_mcp79[]      = "MCP79";
     176static char chip_mcp89[]      = "MCP689";
     177static char chip_sis968[]     = "968";
     178
     179static char s_generic[]       = "Generic";
     180
     181
     182
     183/******************************************************************************
    157184 * PCI vendor and device IDs for known AHCI adapters. Copied from the Linux
    158185 * AHCI driver.
     
    164191   * NOTE: ICH5 controller does NOT support AHCI, so we do
    165192   *       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 */
    206233
    207234  /* JMicron 360/1/3/5/6, match class to avoid IDE function */
    208235  { 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" },
    210237
    211238  /* 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 */
    219246
    220247  /* AMD */
     
    222249  /* AMD is using RAID class only for ahci controllers */
    223250  { 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" },
    225252
    226253  /* 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 */
    229256
    230257  /* 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 */
    300327
    301328  /* 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 */
    305332
    306333  /* 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 */
    309336
    310337  /* Promise */
    311   { PCI_VDEVICE(PROMISE, 0x3f20), board_ahci },  /* PDC42819 */
     338  { PCI_VDEVICE(PROMISE, 0x3f20), board_ahci,          "PDC42819"   }, /* PDC42819 */
    312339
    313340  /* Generic, PCI class code for AHCI */
    314341  { 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  },
    316343
    317344  /* 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 }
    330357};
    331358
     
    363390  pci_ids[i].device = device;
    364391  pci_ids[i].board = board_ahci;
     392  pci_ids[i].chipname = s_generic;
    365393  return(0);
    366394}
     
    560588
    561589  /* 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);
    564595
    565596  /* make sure we got room in the adapter information array */
     
    930961  return(data->bios_info.rc);
    931962}
     963
     964/******************************************************************************
     965 * return vendor name for PCI vendor ID
     966 */
     967char *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 */
     1013char *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.