summaryrefslogtreecommitdiffstats
path: root/sys/amd64/pci/pci_bus.c
diff options
context:
space:
mode:
authorpeter <peter@FreeBSD.org>2003-02-18 03:36:49 +0000
committerpeter <peter@FreeBSD.org>2003-02-18 03:36:49 +0000
commitc8ccde80634ad03a47022b779945a560de87ff45 (patch)
tree270743a1e37313780e77b69f0a64688c6a9451e2 /sys/amd64/pci/pci_bus.c
parent6fe1c30dbcd92f7fc8f668bcaa4b2a0e07ad1eaa (diff)
downloadFreeBSD-src-c8ccde80634ad03a47022b779945a560de87ff45.zip
FreeBSD-src-c8ccde80634ad03a47022b779945a560de87ff45.tar.gz
Initiate de-orbit burn for USE_PCI_BIOS_FOR_READ_WRITE. This has been
#if'ed out for a while. Complete the deed and tidy up some other bits. We need to be able to call this stuff from outer edges of interrupt handlers for devices that have the ISR bits in pci config space. Making the bios code mpsafe was just too hairy. We had also stubbed it out some time ago due to there simply being too much brokenness in too many systems. This adds a leaf lock so that it is safe to use pci_read_config() and pci_write_config() from interrupt handlers. We still will use pcibios to do interrupt routing if there is no acpi.. [yes, I tested this] Briefly glanced at by: imp
Diffstat (limited to 'sys/amd64/pci/pci_bus.c')
-rw-r--r--sys/amd64/pci/pci_bus.c18
1 files changed, 0 insertions, 18 deletions
diff --git a/sys/amd64/pci/pci_bus.c b/sys/amd64/pci/pci_bus.c
index 7830406..9e28868 100644
--- a/sys/amd64/pci/pci_bus.c
+++ b/sys/amd64/pci/pci_bus.c
@@ -310,7 +310,6 @@ nexus_pcib_identify(driver_t *driver, device_t parent)
int pcifunchigh;
int found824xx = 0;
int found_orion = 0;
- int found_pcibios_flaming_death = 0;
device_t child;
devclass_t pci_devclass;
@@ -402,23 +401,6 @@ nexus_pcib_identify(driver_t *driver, device_t parent)
}
/*
- * This is just freaking brilliant! Some BIOS writers have
- * decided that we must be forcibly prevented from using
- * PCIBIOS to query the host->pci bridges. If you try and
- * access configuration registers, it pretends there is
- * no pci device at that bus:device:function address.
- */
- if (!found && pci_pcibios_active() && !found_pcibios_flaming_death) {
- /* retry with the old mechanism, or fail */
- if (pci_kill_pcibios() == 0)
- return;
- printf("nexus_pcib_identify: found broken PCIBIOS - disabling it and retrying.\n");
- printf("nexus_pcib_identify: it is bogusly censoring host->pci bridges.\n");
- found_pcibios_flaming_death = 1;
- goto retry;
- }
-
- /*
* Make sure we add at least one bridge since some old
* hardware doesn't actually have a host-pci bridge device.
* Note that pci_cfgregopen() thinks we have PCI devices..
OpenPOWER on IntegriCloud