Annotation of sys/arch/macppc/pci/pchb.c, Revision 1.1.1.1
1.1 nbrk 1: /* $OpenBSD: pchb.c,v 1.10 2006/04/10 22:14:12 deraadt Exp $ */
2: /* $NetBSD: pchb.c,v 1.4 2000/01/25 07:19:11 tsubai Exp $ */
3:
4: /*-
5: * Copyright (c) 1996 The NetBSD Foundation, Inc.
6: * All rights reserved.
7: *
8: * This code is derived from software contributed to The NetBSD Foundation
9: * by Jason R. Thorpe.
10: *
11: * Redistribution and use in source and binary forms, with or without
12: * modification, are permitted provided that the following conditions
13: * are met:
14: * 1. Redistributions of source code must retain the above copyright
15: * notice, this list of conditions and the following disclaimer.
16: * 2. Redistributions in binary form must reproduce the above copyright
17: * notice, this list of conditions and the following disclaimer in the
18: * documentation and/or other materials provided with the distribution.
19: * 3. All advertising materials mentioning features or use of this software
20: * must display the following acknowledgement:
21: * This product includes software developed by the NetBSD
22: * Foundation, Inc. and its contributors.
23: * 4. Neither the name of The NetBSD Foundation nor the names of its
24: * contributors may be used to endorse or promote products derived
25: * from this software without specific prior written permission.
26: *
27: * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
28: * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
29: * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
30: * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE
31: * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
32: * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
33: * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
34: * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
35: * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
36: * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
37: * POSSIBILITY OF SUCH DAMAGE.
38: */
39:
40: #include <sys/types.h>
41: #include <sys/param.h>
42: #include <sys/systm.h>
43: #include <sys/device.h>
44:
45: #include <machine/bus.h>
46:
47: #include <dev/pci/pcivar.h>
48: #include <dev/pci/pcireg.h>
49: #include <dev/pci/pcidevs.h>
50:
51: int pchbmatch(struct device *, void *, void *);
52: void pchbattach(struct device *, struct device *, void *);
53:
54: struct cfattach pchb_ca = {
55: sizeof(struct device), pchbmatch, pchbattach
56: };
57:
58: struct cfdriver pchb_cd = {
59: NULL, "pchb", DV_DULL
60: };
61:
62: int
63: pchbmatch(struct device *parent, void *cf, void *aux)
64: {
65: struct pci_attach_args *pa = aux;
66:
67: /*
68: * Match all known PCI host chipsets.
69: */
70: switch (PCI_VENDOR(pa->pa_id)) {
71: case PCI_VENDOR_APPLE:
72: switch (PCI_PRODUCT(pa->pa_id)) {
73: case PCI_PRODUCT_APPLE_BANDIT:
74: case PCI_PRODUCT_APPLE_UNINORTH:
75: case PCI_PRODUCT_APPLE_UNINORTHETH:
76: case PCI_PRODUCT_APPLE_UNINORTH_AGP:
77: case PCI_PRODUCT_APPLE_PANGEA:
78: case PCI_PRODUCT_APPLE_PANGEA_PCI:
79: case PCI_PRODUCT_APPLE_PANGEA_AGP:
80: case PCI_PRODUCT_APPLE_UNINORTH2:
81: case PCI_PRODUCT_APPLE_UNINORTH2ETH:
82: case PCI_PRODUCT_APPLE_UNINORTH2_AGP:
83: case PCI_PRODUCT_APPLE_UNINORTH_AGP3:
84: case PCI_PRODUCT_APPLE_UNINORTH5:
85: case PCI_PRODUCT_APPLE_UNINORTH6:
86: case PCI_PRODUCT_APPLE_SHASTA_HT:
87: case PCI_PRODUCT_APPLE_K2:
88: case PCI_PRODUCT_APPLE_K2_AGP:
89: case PCI_PRODUCT_APPLE_INTREPID2_AGP:
90: case PCI_PRODUCT_APPLE_INTREPID2_PCI1:
91: case PCI_PRODUCT_APPLE_INTREPID2_PCI2:
92: return (1);
93: }
94: break;
95:
96: case PCI_VENDOR_MOT:
97: switch (PCI_PRODUCT(pa->pa_id)) {
98: case PCI_PRODUCT_MOT_MPC106:
99: return (1);
100: }
101: break;
102: }
103:
104: return (0);
105: }
106:
107: /*ARGSUSED*/
108: void
109: pchbattach(struct device *parent, struct device *self, void *aux)
110: {
111: printf("\n");
112:
113: /*
114: * All we do is print out a description. Eventually, we
115: * might want to add code that does something that's
116: * possibly chipset-specific.
117: */
118:
119: /*
120: pci_devinfo(pa->pa_id, pa->pa_class, 0, devinfo, sizeof devinfo);
121: printf("%s: %s (rev. 0x%02x)\n", self->dv_xname, devinfo,
122: PCI_REVISION(pa->pa_class));
123: */
124: }
CVSweb