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