diff options
author | peter <peter@FreeBSD.org> | 2003-02-18 03:36:49 +0000 |
---|---|---|
committer | peter <peter@FreeBSD.org> | 2003-02-18 03:36:49 +0000 |
commit | c8ccde80634ad03a47022b779945a560de87ff45 (patch) | |
tree | 270743a1e37313780e77b69f0a64688c6a9451e2 /sys/amd64/pci/pci_bus.c | |
parent | 6fe1c30dbcd92f7fc8f668bcaa4b2a0e07ad1eaa (diff) | |
download | FreeBSD-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.c | 18 |
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.. |