だからMSI MB嫌いなんだよ あとgigabyteとaopenもきらい

  • MSI doesn't work with the ServerWorks CNB20-HE Host Bridge or the CMIC-SL (AKA ServerWorks GC_LE).
  • MSI doesn't work on earlier Intel chipsets including E7500, E7501, E7505, 845, 865, 875/E7210, and 855.
  • MSI doesn't work with devices behind the AMD 8131 HT-PCIX bridge.

cat -n /usr/src/sys/dev/pci/pci.c

     1  /*-
     2   * Copyright (c) 1997, Stefan Esser <se@freebsd.org>
     3   * Copyright (c) 2000, Michael Smith <msmith@freebsd.org>
     4   * Copyright (c) 2000, BSDi
     5   * All rights reserved.
     6   *
     7   * Redistribution and use in source and binary forms, with or without
     8   * modification, are permitted provided that the following conditions
     9   * are met:
    10   * 1. Redistributions of source code must retain the above copyright
    11   *    notice unmodified, this list of conditions, and the following
    12   *    disclaimer.
    13   * 2. Redistributions in binary form must reproduce the above copyright
    14   *    notice, this list of conditions and the following disclaimer in the
    15   *    documentation and/or other materials provided with the distribution.
    16   *
    17   * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
    18   * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
    19   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
    20   * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
    21   * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
    22   * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
    23   * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
    24   * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
    25   * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
    26   * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    27   */
    28
    29  #include <sys/cdefs.h>
    30  __FBSDID("$FreeBSD: src/sys/dev/pci/pci.c,v 1.355.2.2 2008/02/12 20:20:56 jhb Exp$");
    31


   186  struct pci_quirk pci_quirks[] = {
   187          /* The Intel 82371AB and 82443MX has a map register at offset 0x90. */
   188          { 0x71138086, PCI_QUIRK_MAP_REG,        0x90,    0 },
   189          { 0x719b8086, PCI_QUIRK_MAP_REG,        0x90,    0 },
   190          /* As does the Serverworks OSB4 (the SMBus mapping register) */
   191          { 0x02001166, PCI_QUIRK_MAP_REG,        0x90,    0 },
   192
   193          /*
   194           * MSI doesn't work with the ServerWorks CNB20-HE Host Bridge
   195           * or the CMIC-SL (AKA ServerWorks GC_LE).
   196           */
   197          { 0x00141166, PCI_QUIRK_DISABLE_MSI,    0,      0 },
   198          { 0x00171166, PCI_QUIRK_DISABLE_MSI,    0,      0 },
   199
   200          /*
   201           * MSI doesn't work on earlier Intel chipsets including
   202           * E7500, E7501, E7505, 845, 865, 875/E7210, and 855.
   203           */
   204          { 0x25408086, PCI_QUIRK_DISABLE_MSI,    0,      0 },
   205          { 0x254c8086, PCI_QUIRK_DISABLE_MSI,    0,      0 },
   206          { 0x25508086, PCI_QUIRK_DISABLE_MSI,    0,      0 },
   207          { 0x25608086, PCI_QUIRK_DISABLE_MSI,    0,      0 },
   208          { 0x25708086, PCI_QUIRK_DISABLE_MSI,    0,      0 },
   209          { 0x25788086, PCI_QUIRK_DISABLE_MSI,    0,      0 },
   210          { 0x35808086, PCI_QUIRK_DISABLE_MSI,    0,      0 },
   211
   212          /*
   213           * MSI doesn't work with devices behind the AMD 8131 HT-PCIX
   214           * bridge.
   215           */
   216          { 0x74501022, PCI_QUIRK_DISABLE_MSI,    0,      0 },
   217
   218          { 0 }
   219  };
   220


   267  static int pci_honor_msi_blacklist = 1;
   268  TUNABLE_INT("hw.pci.honor_msi_blacklist", &pci_honor_msi_blacklist);
   269  SYSCTL_INT(_hw_pci, OID_AUTO, honor_msi_blacklist, CTLFLAG_RD,
   270      &pci_honor_msi_blacklist, 1, "Honor chipset blacklist for MSI");
   271


  1682  /*
  1683   * Returns true if the specified device is blacklisted because MSI
  1684   * doesn't work.
  1685   */
  1686  int
  1687  pci_msi_device_blacklisted(device_t dev)
  1688  {
  1689          struct pci_quirk *q;
  1690
  1691          if (!pci_honor_msi_blacklist)
  1692                  return (0);
  1693
  1694          for (q = &pci_quirks[0]; q->devid; q++) {
  1695                  if (q->devid == pci_get_devid(dev) &&
  1696                      q->type == PCI_QUIRK_DISABLE_MSI)
  1697                          return (1);
  1698          }
  1699          return (0);
  1700  }

おすすめはASUS Tek, EpoX, VIA(refボード), Tyan, Intel(refボード)