| @@ -29,38 +29,38 @@ | | | @@ -29,38 +29,38 @@ |
29 | * NO WARRANTY | | 29 | * NO WARRANTY |
30 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS | | 30 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |
31 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT | | 31 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |
32 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR | | 32 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR |
33 | * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT | | 33 | * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT |
34 | * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | | 34 | * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL |
35 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS | | 35 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS |
36 | * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | | 36 | * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) |
37 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, | | 37 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, |
38 | * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING | | 38 | * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING |
39 | * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE | | 39 | * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE |
40 | * POSSIBILITY OF SUCH DAMAGES. | | 40 | * POSSIBILITY OF SUCH DAMAGES. |
41 | * | | 41 | * |
42 | * $Id: ahc_pci.c,v 1.68 2009/11/26 15:17:08 njoly Exp $ | | 42 | * $Id: ahc_pci.c,v 1.69 2014/02/18 12:32:12 macallan Exp $ |
43 | * | | 43 | * |
44 | * //depot/aic7xxx/aic7xxx/aic7xxx_pci.c#57 $ | | 44 | * //depot/aic7xxx/aic7xxx/aic7xxx_pci.c#57 $ |
45 | * | | 45 | * |
46 | * $FreeBSD: /repoman/r/ncvs/src/sys/dev/aic7xxx/aic7xxx_pci.c,v 1.22 2003/01/20 20:44:55 gibbs Exp $ | | 46 | * $FreeBSD: /repoman/r/ncvs/src/sys/dev/aic7xxx/aic7xxx_pci.c,v 1.22 2003/01/20 20:44:55 gibbs Exp $ |
47 | */ | | 47 | */ |
48 | /* | | 48 | /* |
49 | * Ported from FreeBSD by Pascal Renauld, Network Storage Solutions, Inc. - April 2003 | | 49 | * Ported from FreeBSD by Pascal Renauld, Network Storage Solutions, Inc. - April 2003 |
50 | */ | | 50 | */ |
51 | | | 51 | |
52 | #include <sys/cdefs.h> | | 52 | #include <sys/cdefs.h> |
53 | __KERNEL_RCSID(0, "$NetBSD: ahc_pci.c,v 1.68 2009/11/26 15:17:08 njoly Exp $"); | | 53 | __KERNEL_RCSID(0, "$NetBSD: ahc_pci.c,v 1.69 2014/02/18 12:32:12 macallan Exp $"); |
54 | | | 54 | |
55 | #include <sys/param.h> | | 55 | #include <sys/param.h> |
56 | #include <sys/systm.h> | | 56 | #include <sys/systm.h> |
57 | #include <sys/malloc.h> | | 57 | #include <sys/malloc.h> |
58 | #include <sys/kernel.h> | | 58 | #include <sys/kernel.h> |
59 | #include <sys/queue.h> | | 59 | #include <sys/queue.h> |
60 | #include <sys/device.h> | | 60 | #include <sys/device.h> |
61 | #include <sys/reboot.h> | | 61 | #include <sys/reboot.h> |
62 | | | 62 | |
63 | #include <sys/bus.h> | | 63 | #include <sys/bus.h> |
64 | #include <sys/intr.h> | | 64 | #include <sys/intr.h> |
65 | | | 65 | |
66 | #include <dev/pci/pcireg.h> | | 66 | #include <dev/pci/pcireg.h> |
| @@ -823,40 +823,42 @@ ahc_pci_attach(device_t parent, device_t | | | @@ -823,40 +823,42 @@ ahc_pci_attach(device_t parent, device_t |
823 | switch (memtype) { | | 823 | switch (memtype) { |
824 | case PCI_MAPREG_TYPE_MEM | PCI_MAPREG_MEM_TYPE_32BIT: | | 824 | case PCI_MAPREG_TYPE_MEM | PCI_MAPREG_MEM_TYPE_32BIT: |
825 | case PCI_MAPREG_TYPE_MEM | PCI_MAPREG_MEM_TYPE_64BIT: | | 825 | case PCI_MAPREG_TYPE_MEM | PCI_MAPREG_MEM_TYPE_64BIT: |
826 | memh_valid = (pci_mapreg_map(pa, AHC_PCI_MEMADDR, | | 826 | memh_valid = (pci_mapreg_map(pa, AHC_PCI_MEMADDR, |
827 | memtype, 0, &memt, &memh, NULL, NULL) == 0); | | 827 | memtype, 0, &memt, &memh, NULL, NULL) == 0); |
828 | break; | | 828 | break; |
829 | default: | | 829 | default: |
830 | memh_valid = 0; | | 830 | memh_valid = 0; |
831 | } | | 831 | } |
832 | #endif | | 832 | #endif |
833 | ioh_valid = (pci_mapreg_map(pa, AHC_PCI_IOADDR, | | 833 | ioh_valid = (pci_mapreg_map(pa, AHC_PCI_IOADDR, |
834 | PCI_MAPREG_TYPE_IO, 0, &iot, | | 834 | PCI_MAPREG_TYPE_IO, 0, &iot, |
835 | &ioh, NULL, NULL) == 0); | | 835 | &ioh, NULL, NULL) == 0); |
| | | 836 | |
836 | #if 0 | | 837 | #if 0 |
837 | printf("%s: bus info: memt 0x%lx, memh 0x%lx, iot 0x%lx, ioh 0x%lx\n", | | 838 | printf("%s: bus info: memt 0x%lx, memh 0x%lx, iot 0x%lx, ioh 0x%lx\n", |
838 | ahc_name(ahc), (u_long)memt, (u_long)memh, (u_long)iot, | | 839 | ahc_name(ahc), (u_long)memt, (u_long)memh, (u_long)iot, |
839 | (u_long)ioh); | | 840 | (u_long)ioh); |
840 | #endif | | 841 | #endif |
841 | | | 842 | |
842 | if (ioh_valid) { | | | |
843 | st = iot; | | | |
844 | sh = ioh; | | | |
845 | #ifdef AHC_ALLOW_MEMIO | | 843 | #ifdef AHC_ALLOW_MEMIO |
846 | } else if (memh_valid) { | | 844 | if (memh_valid) { |
847 | st = memt; | | 845 | st = memt; |
848 | sh = memh; | | 846 | sh = memh; |
| | | 847 | } else |
849 | #endif | | 848 | #endif |
| | | 849 | if (ioh_valid) { |
| | | 850 | st = iot; |
| | | 851 | sh = ioh; |
850 | } else { | | 852 | } else { |
851 | printf(": unable to map registers\n"); | | 853 | printf(": unable to map registers\n"); |
852 | return; | | 854 | return; |
853 | } | | 855 | } |
854 | ahc->tag = st; | | 856 | ahc->tag = st; |
855 | ahc->bsh = sh; | | 857 | ahc->bsh = sh; |
856 | | | 858 | |
857 | ahc->chip |= AHC_PCI; | | 859 | ahc->chip |= AHC_PCI; |
858 | /* | | 860 | /* |
859 | * Before we continue probing the card, ensure that | | 861 | * Before we continue probing the card, ensure that |
860 | * its interrupts are *disabled*. We don't want | | 862 | * its interrupts are *disabled*. We don't want |
861 | * a misstep to hang the machine in an interrupt | | 863 | * a misstep to hang the machine in an interrupt |
862 | * storm. | | 864 | * storm. |