diff options
| author | Warner Losh <imp@FreeBSD.org> | 2009-05-20 22:00:39 +0000 |
|---|---|---|
| committer | Warner Losh <imp@FreeBSD.org> | 2009-05-20 22:00:39 +0000 |
| commit | 89c81b88f141fb1d561d5bd76046b1d02f7feebe (patch) | |
| tree | 901803bb979f730e8db6029b728d1810e3d6d0ed | |
| parent | 9e31449738aa74508575c8ff4a01ac3c1594b484 (diff) | |
Notes
| -rw-r--r-- | sys/dev/pci/pci.c | 87 | ||||
| -rw-r--r-- | sys/dev/pci/pci_pci.c | 15 | ||||
| -rw-r--r-- | sys/dev/pci/pcib_if.m | 14 |
3 files changed, 0 insertions, 116 deletions
diff --git a/sys/dev/pci/pci.c b/sys/dev/pci/pci.c index af1691b1855a..3b330c7b8301 100644 --- a/sys/dev/pci/pci.c +++ b/sys/dev/pci/pci.c @@ -418,38 +418,6 @@ pci_hdrtypedata(device_t pcib, int b, int s, int f, pcicfgregs *cfg) #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, int b, int s, int f, size_t size) 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 dev, int force, uint32_t prefetchmask) } } -/* - * 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 domain, int busno, size_t dinfo_size) } } #undef REG - pci_fix_bridges(dev); } void diff --git a/sys/dev/pci/pci_pci.c b/sys/dev/pci/pci_pci.c index 8bb2eff39156..15cad92484d7 100644 --- a/sys/dev/pci/pci_pci.c +++ b/sys/dev/pci/pci_pci.c @@ -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) { diff --git a/sys/dev/pci/pcib_if.m b/sys/dev/pci/pcib_if.m index 765e6449a312..0b7e8bc62c9b 100644 --- a/sys/dev/pci/pcib_if.m +++ b/sys/dev/pci/pcib_if.m @@ -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; -}; |
