Sat Aug 7 02:39:01 2010 UTC ()
Add NVIDIA MCP77 to the quirk table, so ahcisata will attach when the
BIOS is set to 'RAID' mode.


(jmcneill)
diff -r1.21 -r1.22 src/sys/dev/pci/ahcisata_pci.c

cvs diff -r1.21 -r1.22 src/sys/dev/pci/ahcisata_pci.c (expand / switch to unified diff)

--- src/sys/dev/pci/ahcisata_pci.c 2010/07/27 22:27:52 1.21
+++ src/sys/dev/pci/ahcisata_pci.c 2010/08/07 02:39:01 1.22
@@ -1,14 +1,14 @@ @@ -1,14 +1,14 @@
1/* $NetBSD: ahcisata_pci.c,v 1.21 2010/07/27 22:27:52 jakllsch Exp $ */ 1/* $NetBSD: ahcisata_pci.c,v 1.22 2010/08/07 02:39:01 jmcneill Exp $ */
2 2
3/* 3/*
4 * Copyright (c) 2006 Manuel Bouyer. 4 * Copyright (c) 2006 Manuel Bouyer.
5 * 5 *
6 * Redistribution and use in source and binary forms, with or without 6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions 7 * modification, are permitted provided that the following conditions
8 * are met: 8 * are met:
9 * 1. Redistributions of source code must retain the above copyright 9 * 1. Redistributions of source code must retain the above copyright
10 * notice, this list of conditions and the following disclaimer. 10 * notice, this list of conditions and the following disclaimer.
11 * 2. Redistributions in binary form must reproduce the above copyright 11 * 2. Redistributions in binary form must reproduce the above copyright
12 * notice, this list of conditions and the following disclaimer in the 12 * notice, this list of conditions and the following disclaimer in the
13 * documentation and/or other materials provided with the distribution. 13 * documentation and/or other materials provided with the distribution.
14 * 14 *
@@ -16,27 +16,27 @@ @@ -16,27 +16,27 @@
16 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 16 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
17 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 17 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
18 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, 18 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
19 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 19 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
20 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 20 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
21 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 21 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
22 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 22 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
23 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 23 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
24 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 24 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
25 * 25 *
26 */ 26 */
27 27
28#include <sys/cdefs.h> 28#include <sys/cdefs.h>
29__KERNEL_RCSID(0, "$NetBSD: ahcisata_pci.c,v 1.21 2010/07/27 22:27:52 jakllsch Exp $"); 29__KERNEL_RCSID(0, "$NetBSD: ahcisata_pci.c,v 1.22 2010/08/07 02:39:01 jmcneill Exp $");
30 30
31#include <sys/types.h> 31#include <sys/types.h>
32#include <sys/malloc.h> 32#include <sys/malloc.h>
33#include <sys/param.h> 33#include <sys/param.h>
34#include <sys/kernel.h> 34#include <sys/kernel.h>
35#include <sys/systm.h> 35#include <sys/systm.h>
36#include <sys/disklabel.h> 36#include <sys/disklabel.h>
37#include <sys/pmf.h> 37#include <sys/pmf.h>
38 38
39#include <uvm/uvm_extern.h> 39#include <uvm/uvm_extern.h>
40 40
41#include <dev/pci/pcivar.h> 41#include <dev/pci/pcivar.h>
42#include <dev/pci/pcidevs.h> 42#include <dev/pci/pcidevs.h>
@@ -56,26 +56,50 @@ struct ahci_pci_quirk {  @@ -56,26 +56,50 @@ struct ahci_pci_quirk {
56static const struct ahci_pci_quirk ahci_pci_quirks[] = { 56static const struct ahci_pci_quirk ahci_pci_quirks[] = {
57 { PCI_VENDOR_NVIDIA, PCI_PRODUCT_NVIDIA_MCP65_SATA, 57 { PCI_VENDOR_NVIDIA, PCI_PRODUCT_NVIDIA_MCP65_SATA,
58 AHCI_PCI_QUIRK_FORCE }, 58 AHCI_PCI_QUIRK_FORCE },
59 { PCI_VENDOR_NVIDIA, PCI_PRODUCT_NVIDIA_MCP65_SATA2, 59 { PCI_VENDOR_NVIDIA, PCI_PRODUCT_NVIDIA_MCP65_SATA2,
60 AHCI_PCI_QUIRK_FORCE }, 60 AHCI_PCI_QUIRK_FORCE },
61 { PCI_VENDOR_NVIDIA, PCI_PRODUCT_NVIDIA_MCP65_SATA3, 61 { PCI_VENDOR_NVIDIA, PCI_PRODUCT_NVIDIA_MCP65_SATA3,
62 AHCI_PCI_QUIRK_FORCE }, 62 AHCI_PCI_QUIRK_FORCE },
63 { PCI_VENDOR_NVIDIA, PCI_PRODUCT_NVIDIA_MCP65_SATA4, 63 { PCI_VENDOR_NVIDIA, PCI_PRODUCT_NVIDIA_MCP65_SATA4,
64 AHCI_PCI_QUIRK_FORCE }, 64 AHCI_PCI_QUIRK_FORCE },
65 { PCI_VENDOR_NVIDIA, PCI_PRODUCT_NVIDIA_MCP67_SATA, 65 { PCI_VENDOR_NVIDIA, PCI_PRODUCT_NVIDIA_MCP67_SATA,
66 AHCI_PCI_QUIRK_FORCE }, 66 AHCI_PCI_QUIRK_FORCE },
67 { PCI_VENDOR_NVIDIA, PCI_PRODUCT_NVIDIA_MCP73_AHCI_1, 67 { PCI_VENDOR_NVIDIA, PCI_PRODUCT_NVIDIA_MCP73_AHCI_1,
68 AHCI_PCI_QUIRK_FORCE }, 68 AHCI_PCI_QUIRK_FORCE },
 69 { PCI_VENDOR_NVIDIA, PCI_PRODUCT_NVIDIA_MCP77_AHCI_1,
 70 AHCI_PCI_QUIRK_FORCE },
 71 { PCI_VENDOR_NVIDIA, PCI_PRODUCT_NVIDIA_MCP77_AHCI_2,
 72 AHCI_PCI_QUIRK_FORCE },
 73 { PCI_VENDOR_NVIDIA, PCI_PRODUCT_NVIDIA_MCP77_AHCI_3,
 74 AHCI_PCI_QUIRK_FORCE },
 75 { PCI_VENDOR_NVIDIA, PCI_PRODUCT_NVIDIA_MCP77_AHCI_4,
 76 AHCI_PCI_QUIRK_FORCE },
 77 { PCI_VENDOR_NVIDIA, PCI_PRODUCT_NVIDIA_MCP77_AHCI_5,
 78 AHCI_PCI_QUIRK_FORCE },
 79 { PCI_VENDOR_NVIDIA, PCI_PRODUCT_NVIDIA_MCP77_AHCI_6,
 80 AHCI_PCI_QUIRK_FORCE },
 81 { PCI_VENDOR_NVIDIA, PCI_PRODUCT_NVIDIA_MCP77_AHCI_7,
 82 AHCI_PCI_QUIRK_FORCE },
 83 { PCI_VENDOR_NVIDIA, PCI_PRODUCT_NVIDIA_MCP77_AHCI_8,
 84 AHCI_PCI_QUIRK_FORCE },
 85 { PCI_VENDOR_NVIDIA, PCI_PRODUCT_NVIDIA_MCP77_AHCI_9,
 86 AHCI_PCI_QUIRK_FORCE },
 87 { PCI_VENDOR_NVIDIA, PCI_PRODUCT_NVIDIA_MCP77_AHCI_10,
 88 AHCI_PCI_QUIRK_FORCE },
 89 { PCI_VENDOR_NVIDIA, PCI_PRODUCT_NVIDIA_MCP77_AHCI_11,
 90 AHCI_PCI_QUIRK_FORCE },
 91 { PCI_VENDOR_NVIDIA, PCI_PRODUCT_NVIDIA_MCP77_AHCI_12,
 92 AHCI_PCI_QUIRK_FORCE },
69 { PCI_VENDOR_MARVELL, PCI_PRODUCT_MARVELL_88SE6121, 93 { PCI_VENDOR_MARVELL, PCI_PRODUCT_MARVELL_88SE6121,
70 AHCI_PCI_QUIRK_FORCE }, 94 AHCI_PCI_QUIRK_FORCE },
71 /* ATI SB600 AHCI 64-bit DMA only works on some boards/BIOSes */ 95 /* ATI SB600 AHCI 64-bit DMA only works on some boards/BIOSes */
72 { PCI_VENDOR_ATI, PCI_PRODUCT_ATI_SB600_SATA_1, 96 { PCI_VENDOR_ATI, PCI_PRODUCT_ATI_SB600_SATA_1,
73 AHCI_PCI_QUIRK_BAD64 }, 97 AHCI_PCI_QUIRK_BAD64 },
74}; 98};
75 99
76struct ahci_pci_softc { 100struct ahci_pci_softc {
77 struct ahci_softc ah_sc; 101 struct ahci_softc ah_sc;
78 pci_chipset_tag_t sc_pc; 102 pci_chipset_tag_t sc_pc;
79 pcitag_t sc_pcitag; 103 pcitag_t sc_pcitag;
80 void * sc_ih; 104 void * sc_ih;
81}; 105};