diff options
author | Mark Kettenis <kettenis@cvs.openbsd.org> | 2011-04-10 16:40:43 +0000 |
---|---|---|
committer | Mark Kettenis <kettenis@cvs.openbsd.org> | 2011-04-10 16:40:43 +0000 |
commit | c883a5231eb5513d6e9c9babb654c150c37ec1f9 (patch) | |
tree | ef68a341b856fd988d5b131e29821786bd55a975 /sys/arch | |
parent | 949835012a2d33afd59997f5b9be067535cd04e2 (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.c | 10 |
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; |