Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/sys/arch/i386/pci Moved to x86/pci.



details:   https://anonhg.NetBSD.org/src/rev/403db31b4213
branches:  trunk
changeset: 543530:403db31b4213
user:      fvdl <fvdl%NetBSD.org@localhost>
date:      Thu Feb 27 00:30:21 2003 +0000

description:
Moved to x86/pci.

diffstat:

 sys/arch/i386/pci/pci_machdep.c |  689 ----------------------------------------
 1 files changed, 0 insertions(+), 689 deletions(-)

diffs (truncated from 693 to 300 lines):

diff -r f26473106afd -r 403db31b4213 sys/arch/i386/pci/pci_machdep.c
--- a/sys/arch/i386/pci/pci_machdep.c   Thu Feb 27 00:28:08 2003 +0000
+++ /dev/null   Thu Jan 01 00:00:00 1970 +0000
@@ -1,689 +0,0 @@
-/*     $NetBSD: pci_machdep.c,v 1.51 2003/02/26 22:23:08 fvdl Exp $    */
-
-/*-
- * Copyright (c) 1997, 1998 The NetBSD Foundation, Inc.
- * All rights reserved.
- *
- * This code is derived from software contributed to The NetBSD Foundation
- * by Jason R. Thorpe of the Numerical Aerospace Simulation Facility,
- * NASA Ames Research Center.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *     This product includes software developed by the NetBSD
- *     Foundation, Inc. and its contributors.
- * 4. Neither the name of The NetBSD Foundation nor the names of its
- *    contributors may be used to endorse or promote products derived
- *    from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
- * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-/*
- * Copyright (c) 1996 Christopher G. Demetriou.  All rights reserved.
- * Copyright (c) 1994 Charles M. Hannum.  All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *     This product includes software developed by Charles M. Hannum.
- * 4. The name of the author may not be used to endorse or promote products
- *    derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-/*
- * Machine-specific functions for PCI autoconfiguration.
- *
- * On PCs, there are two methods of generating PCI configuration cycles.
- * We try to detect the appropriate mechanism for this machine and set
- * up a few function pointers to access the correct method directly.
- *
- * The configuration method can be hard-coded in the config file by
- * using `options PCI_CONF_MODE=N', where `N' is the configuration mode
- * as defined section 3.6.4.1, `Generating Configuration Cycles'.
- */
-
-#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: pci_machdep.c,v 1.51 2003/02/26 22:23:08 fvdl Exp $");
-
-#include <sys/types.h>
-#include <sys/param.h>
-#include <sys/time.h>
-#include <sys/systm.h>
-#include <sys/errno.h>
-#include <sys/device.h>
-#include <sys/lock.h>
-
-#include <uvm/uvm_extern.h>
-
-#define _X86_BUS_DMA_PRIVATE
-#include <machine/bus.h>
-
-#include <machine/pio.h>
-#include <machine/intr.h>
-
-#include <dev/isa/isavar.h>
-#include <dev/pci/pcivar.h>
-#include <dev/pci/pcireg.h>
-#include <dev/pci/pcidevs.h>
-
-#include "ioapic.h"
-
-#if NIOAPIC > 0
-#include <machine/i82093var.h>
-#include <machine/mpbiosvar.h>
-#endif
-
-#include "opt_pci_conf_mode.h"
-
-int pci_mode = -1;
-
-struct simplelock pci_conf_slock = SIMPLELOCK_INITIALIZER;
-
-#define        PCI_CONF_LOCK(s)                                                \
-do {                                                                   \
-       (s) = splhigh();                                                \
-       simple_lock(&pci_conf_slock);                                   \
-} while (0)
-
-#define        PCI_CONF_UNLOCK(s)                                              \
-do {                                                                   \
-       simple_unlock(&pci_conf_slock);                                 \
-       splx((s));                                                      \
-} while (0)
-
-#define        PCI_MODE1_ENABLE        0x80000000UL
-#define        PCI_MODE1_ADDRESS_REG   0x0cf8
-#define        PCI_MODE1_DATA_REG      0x0cfc
-
-#define        PCI_MODE2_ENABLE_REG    0x0cf8
-#define        PCI_MODE2_FORWARD_REG   0x0cfa
-
-#define _m1tag(b, d, f) \
-       (PCI_MODE1_ENABLE | ((b) << 16) | ((d) << 11) | ((f) << 8))
-#define _qe(bus, dev, fcn, vend, prod) \
-       {_m1tag(bus, dev, fcn), PCI_ID_CODE(vend, prod)}
-struct {
-       u_int32_t tag;
-       pcireg_t id;
-} pcim1_quirk_tbl[] = {
-       _qe(0, 0, 0, PCI_VENDOR_COMPAQ, PCI_PRODUCT_COMPAQ_TRIFLEX1),
-       /* XXX Triflex2 not tested */
-       _qe(0, 0, 0, PCI_VENDOR_COMPAQ, PCI_PRODUCT_COMPAQ_TRIFLEX2),
-       _qe(0, 0, 0, PCI_VENDOR_COMPAQ, PCI_PRODUCT_COMPAQ_TRIFLEX4),
-       /* Triton needed for Connectix Virtual PC */
-       _qe(0, 0, 0, PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_82437FX),
-       /* Connectix Virtual PC 5 has a 440BX */
-       _qe(0, 0, 0, PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_82443BX_NOAGP),
-       {0, 0xffffffff} /* patchable */
-};
-#undef _m1tag
-#undef _id
-#undef _qe
-
-/*
- * PCI doesn't have any special needs; just use the generic versions
- * of these functions.
- */
-struct x86_bus_dma_tag pci_bus_dma_tag = {
-       0,                      /* _bounce_thresh */
-       _bus_dmamap_create,
-       _bus_dmamap_destroy,
-       _bus_dmamap_load,
-       _bus_dmamap_load_mbuf,
-       _bus_dmamap_load_uio,
-       _bus_dmamap_load_raw,
-       _bus_dmamap_unload,
-       NULL,                   /* _dmamap_sync */
-       _bus_dmamem_alloc,
-       _bus_dmamem_free,
-       _bus_dmamem_map,
-       _bus_dmamem_unmap,
-       _bus_dmamem_mmap,
-};
-
-void
-pci_attach_hook(parent, self, pba)
-       struct device *parent, *self;
-       struct pcibus_attach_args *pba;
-{
-
-       if (pba->pba_bus == 0)
-               printf(": configuration mode %d", pci_mode);
-}
-
-int
-pci_bus_maxdevs(pc, busno)
-       pci_chipset_tag_t pc;
-       int busno;
-{
-
-       /*
-        * Bus number is irrelevant.  If Configuration Mechanism 2 is in
-        * use, can only have devices 0-15 on any bus.  If Configuration
-        * Mechanism 1 is in use, can have devices 0-32 (i.e. the `normal'
-        * range).
-        */
-       if (pci_mode == 2)
-               return (16);
-       else
-               return (32);
-}
-
-pcitag_t
-pci_make_tag(pc, bus, device, function)
-       pci_chipset_tag_t pc;
-       int bus, device, function;
-{
-       pcitag_t tag;
-
-#ifndef PCI_CONF_MODE
-       switch (pci_mode) {
-       case 1:
-               goto mode1;
-       case 2:
-               goto mode2;
-       default:
-               panic("pci_make_tag: mode not configured");
-       }
-#endif
-
-#if !defined(PCI_CONF_MODE) || (PCI_CONF_MODE == 1)
-#ifndef PCI_CONF_MODE
-mode1:
-#endif
-       if (bus >= 256 || device >= 32 || function >= 8)
-               panic("pci_make_tag: bad request");
-
-       tag.mode1 = PCI_MODE1_ENABLE |
-                   (bus << 16) | (device << 11) | (function << 8);
-       return tag;
-#endif
-
-#if !defined(PCI_CONF_MODE) || (PCI_CONF_MODE == 2)
-#ifndef PCI_CONF_MODE
-mode2:
-#endif
-       if (bus >= 256 || device >= 16 || function >= 8)
-               panic("pci_make_tag: bad request");
-
-       tag.mode2.port = 0xc000 | (device << 8);
-       tag.mode2.enable = 0xf0 | (function << 1);
-       tag.mode2.forward = bus;
-       return tag;
-#endif
-}
-
-void
-pci_decompose_tag(pc, tag, bp, dp, fp)
-       pci_chipset_tag_t pc;
-       pcitag_t tag;
-       int *bp, *dp, *fp;
-{
-
-#ifndef PCI_CONF_MODE
-       switch (pci_mode) {
-       case 1:
-               goto mode1;
-       case 2:
-               goto mode2;
-       default:
-               panic("pci_decompose_tag: mode not configured");
-       }
-#endif
-
-#if !defined(PCI_CONF_MODE) || (PCI_CONF_MODE == 1)
-#ifndef PCI_CONF_MODE
-mode1:
-#endif
-       if (bp != NULL)
-               *bp = (tag.mode1 >> 16) & 0xff;
-       if (dp != NULL)
-               *dp = (tag.mode1 >> 11) & 0x1f;
-       if (fp != NULL)
-               *fp = (tag.mode1 >> 8) & 0x7;
-       return;
-#endif
-
-#if !defined(PCI_CONF_MODE) || (PCI_CONF_MODE == 2)
-#ifndef PCI_CONF_MODE
-mode2:
-#endif
-       if (bp != NULL)
-               *bp = tag.mode2.forward & 0xff;
-       if (dp != NULL)
-               *dp = (tag.mode2.port >> 8) & 0xf;
-       if (fp != NULL)
-               *fp = (tag.mode2.enable >> 1) & 0x7;
-#endif
-}
-



Home | Main Index | Thread Index | Old Index