summaryrefslogtreecommitdiff
path: root/sys/arch
diff options
context:
space:
mode:
authorMark Kettenis <kettenis@cvs.openbsd.org>2011-04-10 16:40:43 +0000
committerMark Kettenis <kettenis@cvs.openbsd.org>2011-04-10 16:40:43 +0000
commitc883a5231eb5513d6e9c9babb654c150c37ec1f9 (patch)
treeef68a341b856fd988d5b131e29821786bd55a975 /sys/arch
parent949835012a2d33afd59997f5b9be067535cd04e2 (diff)
Extend the PCI memory address space to 36-bit. The first BIOSen that assign
addresses >4GB to 64-bit BARs have started to appear. But as long as machines still support running 32-bit operating systems we don't expect to see BARs that aren't addressable using PAE. Fixes a panic reported by william@. ok deraadt@
Diffstat (limited to 'sys/arch')
-rw-r--r--sys/arch/amd64/pci/pci_machdep.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/sys/arch/amd64/pci/pci_machdep.c b/sys/arch/amd64/pci/pci_machdep.c
index 9aeadf8ea66..f6a4bb449cd 100644
--- a/sys/arch/amd64/pci/pci_machdep.c
+++ b/sys/arch/amd64/pci/pci_machdep.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: pci_machdep.c,v 1.41 2011/04/02 18:16:50 oga Exp $ */
+/* $OpenBSD: pci_machdep.c,v 1.42 2011/04/10 16:40:42 kettenis Exp $ */
/* $NetBSD: pci_machdep.c,v 1.3 2003/05/07 21:33:58 fvdl Exp $ */
/*-
@@ -444,7 +444,13 @@ pci_init_extents(void)
}
if (pcimem_ex == NULL) {
- pcimem_ex = extent_create("pcimem", 0, 0xffffffff, M_DEVBUF,
+ /*
+ * Cover the 36-bit address space addressable by PAE
+ * here. As long as vendors continue to support
+ * 32-bit operating systems, we should never see BARs
+ * outside that region.
+ */
+ pcimem_ex = extent_create("pcimem", 0, 0xfffffffff, M_DEVBUF,
NULL, 0, EX_NOWAIT);
if (pcimem_ex == NULL)
return;