svn commit: r192481 - head/sys/dev/pci

Warner Losh imp at FreeBSD.org
Wed May 20 22:00:40 UTC 2009


Author: imp
Date: Wed May 20 22:00:39 2009
New Revision: 192481
URL: http://svn.freebsd.org/changeset/base/192481

Log:
  Revert junk from last commit.  These are WIP and not ready (and don't
  match the description of the last commit).

Modified:
  head/sys/dev/pci/pci.c
  head/sys/dev/pci/pci_pci.c
  head/sys/dev/pci/pcib_if.m

Modified: head/sys/dev/pci/pci.c
==============================================================================
--- head/sys/dev/pci/pci.c	Wed May 20 21:34:01 2009	(r192480)
+++ head/sys/dev/pci/pci.c	Wed May 20 22:00:39 2009	(r192481)
@@ -418,38 +418,6 @@ pci_hdrtypedata(device_t pcib, int b, in
 #undef REG
 }
 
-/*
- * This is a lame example: we should have some way of managing this table
- * from userland.  The user should be able to tell us from the boot loader
- * or at runtime what mapping to do.
- */
-static struct pci_remap_entry
-{
-	uint16_t vendor;
-	uint16_t device;
-	uint16_t mapped_vendor;
-	uint16_t mapped_device;
-} pci_remap[] =
-{
-	{ 0x1039, 0x0901, 0x1039, 0x0900 }	/* Map sis 901 to sis 900 */
-};
-static int pci_remap_entries = 1;
-
-static void
-pci_apply_remap_table(pcicfgregs *cfg)
-{
-	int i;
-
-	for (i = 0; i < pci_remap_entries; i++) {
-		if (cfg->vendor == pci_remap[i].vendor &&
-		    cfg->device == pci_remap[i].device) {
-			cfg->vendor = pci_remap[i].mapped_vendor;
-			cfg->device = pci_remap[i].mapped_device;
-			return;
-		}
-	}
-}
-
 /* read configuration header into pcicfgregs structure */
 struct pci_devinfo *
 pci_read_device(device_t pcib, int d, int b, int s, int f, size_t size)
@@ -496,7 +464,6 @@ pci_read_device(device_t pcib, int d, in
 
 		pci_fixancient(cfg);
 		pci_hdrtypedata(pcib, b, s, f, cfg);
-		pci_apply_remap_table(cfg);
 
 		if (REG(PCIR_STATUS, 2) & PCIM_STATUS_CAPPRESENT)
 			pci_read_extcap(pcib, cfg);
@@ -2652,59 +2619,6 @@ pci_add_resources(device_t bus, device_t
 	}
 }
 
-/*
- * After we've added the children to the pci bus device, we need to fixup
- * the children in various ways.  This function fixes things that require
- * multiple passes to get right, such as bus number and some resource
- * things (although the latter hasn't been implemented yet).  This must be
- * done before the children are probe/attached, sicne by that point these
- * things must be fixed.
- */
-static void
-pci_fix_bridges(device_t dev)
-{
-	int i, numdevs, error, secbus, subbus;
-	device_t child, *devlist;
-
-	if ((error = device_get_children(dev, &devlist, &numdevs)))
-		return;
-	/*
-	 * First pass, get the bus numbers that are in use
-	 */
-	for (i = 0; i < numdevs; i++) {
-		child = devlist[i];
-		switch (pci_read_config(child, PCIR_HDRTYPE, 1) & PCIM_HDRTYPE) {
-		default:
-			continue;
-		case 1:	/* PCI-PCI bridge */
-		case 2: /* CardBus bridge -- offsets are the same */
-			secbus = pci_read_config(child, PCIR_SECBUS_1, 1);
-			subbus = pci_read_config(child, PCIR_SUBBUS_1, 1);
-			break;
-		}
-		printf("%d:%d:%d:%d sec %d sub %d\n", pcib_get_domain(dev),
-		    pci_get_bus(child), pci_get_slot(child),
-		    pci_get_function(child), secbus, subbus);
-	}
-#if 0
-	/*
-	 * Second pass, Fix the bus numbers, as needed
-	 */
-	for (i = 0; i < numdevs; i++) {
-		child = devlist[i];
-		switch (pci_read_config(dev, PCIR_HDRTYPE, 1) & PCIM_HDRTYPE) {
-		case 1:	/* PCI-PCI bridge */
-			break;
-		case 2: /* CardBus bridge */
-			break;
-		default:
-			continue;
-		}
-	}
-#endif
-	free(devlist, M_TEMP);
-}
-
 void
 pci_add_children(device_t dev, int domain, int busno, size_t dinfo_size)
 {
@@ -2736,7 +2650,6 @@ pci_add_children(device_t dev, int domai
 		}
 	}
 #undef REG
-	pci_fix_bridges(dev);
 }
 
 void

Modified: head/sys/dev/pci/pci_pci.c
==============================================================================
--- head/sys/dev/pci/pci_pci.c	Wed May 20 21:34:01 2009	(r192480)
+++ head/sys/dev/pci/pci_pci.c	Wed May 20 22:00:39 2009	(r192481)
@@ -52,13 +52,6 @@ __FBSDID("$FreeBSD$");
 
 #include "pcib_if.h"
 
-// #define KLUDGE_O_MATIC
-#ifdef KLUDGE_O_MATIC
-int	hack_unit = 1;
-u_long	mem_base  = 0xc0400000ul;
-u_long	mem_limit = 0x00100000ul;
-#endif
-
 static int		pcib_probe(device_t dev);
 
 static device_method_t pcib_methods[] = {
@@ -331,14 +324,6 @@ pcib_attach(device_t dev)
     struct pcib_softc	*sc;
     device_t		child;
 
-#ifdef KLUDGE_O_MATIC
-    if (device_get_unit(dev) == hack_unit) {
-	    pci_write_config(dev, PCIR_COMMAND,
-		PCIM_CMD_MEMEN | pci_read_config(dev, PCIR_COMMAND, 1), 1);
-	    pci_write_config(dev, PCIR_MEMBASE_1, mem_base >> 16, 2);
-	    pci_write_config(dev, PCIR_MEMLIMIT_1, mem_limit >> 16, 2);
-    }
-#endif
     pcib_attach_common(dev);
     sc = device_get_softc(dev);
     if (sc->secbus != 0) {

Modified: head/sys/dev/pci/pcib_if.m
==============================================================================
--- head/sys/dev/pci/pcib_if.m	Wed May 20 21:34:01 2009	(r192480)
+++ head/sys/dev/pci/pcib_if.m	Wed May 20 22:00:39 2009	(r192481)
@@ -144,17 +144,3 @@ METHOD int map_msi {
 	uint64_t	*addr;
 	uint32_t	*data;
 };
-
-#
-# Return the range of busses passed through this bridge.  For normal
-# pci-pci bridges (and compatible things like pci-x and pcie), this will
-# just be the secbus and subbus configuration registers.   For non-standard
-# bridges, or for host bridges which have no standard, this will be the
-# same data read from either device specific registers of from "perfect
-# knowledge" of what they must be.
-#
-METHOD int bus_range {
-	device_t	pcib;
-	u_int		*secbus;
-	u_int		*subbus;
-};


More information about the svn-src-head mailing list