summaryrefslogtreecommitdiffstats
path: root/sys
diff options
context:
space:
mode:
authorimp <imp@FreeBSD.org>2002-01-15 06:46:59 +0000
committerimp <imp@FreeBSD.org>2002-01-15 06:46:59 +0000
commitec363a654937df9a2fd6fc5b9acdd5a94864a2ad (patch)
treee0c3be1a3ae151e09022be0de3e0f012e603753f /sys
parent68ef2c33964f060544c2228aef4b62bd79b37666 (diff)
downloadFreeBSD-src-ec363a654937df9a2fd6fc5b9acdd5a94864a2ad.zip
FreeBSD-src-ec363a654937df9a2fd6fc5b9acdd5a94864a2ad.tar.gz
Make PCI_ALLOW_UNSUPPORTED_IO_RANGE an option until the ISA address
problem is fixed at the bridge level. This is needed for some newer laptops that have the cardbus bridge not on pci0.
Diffstat (limited to 'sys')
-rw-r--r--sys/conf/options1
-rw-r--r--sys/dev/pci/pci_pci.c5
2 files changed, 6 insertions, 0 deletions
diff --git a/sys/conf/options b/sys/conf/options
index 066911f..ef111b5 100644
--- a/sys/conf/options
+++ b/sys/conf/options
@@ -417,6 +417,7 @@ MSGBUF_SIZE opt_msgbuf.h
# PCI related options
PCI_QUIET opt_pci.h
PCI_ENABLE_IO_MODES opt_pci.h
+PCI_ALLOW_UNSUPPORTED_IO_RANGE opt_pci.h
# NFS options
NFS_MINATTRTIMO opt_nfs.h
diff --git a/sys/dev/pci/pci_pci.c b/sys/dev/pci/pci_pci.c
index 0a4be2d..166f490 100644
--- a/sys/dev/pci/pci_pci.c
+++ b/sys/dev/pci/pci_pci.c
@@ -45,6 +45,7 @@
#include <pci/pcireg.h>
#include "pcib_if.h"
+#include "opt_pci.h"
/*
* Bridge-specific data.
@@ -281,6 +282,10 @@ pcib_alloc_resource(device_t dev, device_t child, int type, int *rid,
*/
switch (type) {
case SYS_RES_IOPORT:
+ if (start < sc->iobase)
+ start = sc->iobase;
+ if (end > sc->iolimit && start < end)
+ end = sc->iolimit;
if ((start < sc->iobase) || (end > sc->iolimit)) {
device_printf(dev, "device %s%d requested unsupported I/O range 0x%lx-0x%lx"
" (decoding 0x%x-0x%x)\n",
OpenPOWER on IntegriCloud