Annotation of sys/arch/macppc/pci/pchb.c, Revision 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