summaryrefslogtreecommitdiff
path: root/sys
diff options
context:
space:
mode:
authorragge <ragge@NetBSD.org>2003-10-19 14:58:22 +0000
committerragge <ragge@NetBSD.org>2003-10-19 14:58:22 +0000
commit9fb208fc0a130f569b824c0eab97cd6974dcc613 (patch)
treeacef563b6a91165c94ee4b19d1c2f9b08d94b85b /sys
parent836c5d5ec4b967b4dc778b8ff5ed1c3a6870d60e (diff)
Avoid the pvtable when devices are mapped. Fixes panics when unmapping
framebuffers. Set aside space in kernel map for framebuffer on VS4k.
Diffstat (limited to 'sys')
-rw-r--r--sys/arch/vax/vax/pmap.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/sys/arch/vax/vax/pmap.c b/sys/arch/vax/vax/pmap.c
index a9d4754190e..49cae531c3c 100644
--- a/sys/arch/vax/vax/pmap.c
+++ b/sys/arch/vax/vax/pmap.c
@@ -1,4 +1,4 @@
-/* $NetBSD: pmap.c,v 1.128 2003/07/15 02:15:05 lukem Exp $ */
+/* $NetBSD: pmap.c,v 1.129 2003/10/19 14:58:22 ragge Exp $ */
/*
* Copyright (c) 1994, 1998, 1999, 2003 Ludd, University of Lule}, Sweden.
* All rights reserved.
@@ -30,7 +30,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: pmap.c,v 1.128 2003/07/15 02:15:05 lukem Exp $");
+__KERNEL_RCSID(0, "$NetBSD: pmap.c,v 1.129 2003/10/19 14:58:22 ragge Exp $");
#include "opt_ddb.h"
#include "opt_cputype.h"
@@ -235,6 +235,9 @@ calc_kvmsize(vsize_t usrptsize)
/* Physmap */
kvmsize += VM_PHYS_SIZE;
#endif
+#if VAX46 || VAX49
+ kvmsize += 0x800000; /* 8 MB framebuffer */
+#endif
#ifdef LKM
/* LKMs are allocated out of kernel_map */
#define MAXLKMSIZ 0x100000 /* XXX */
@@ -516,6 +519,9 @@ rmpage(pmap_t pm, int *br)
else
vaddr = (br - (int *)pm->pm_p1br) * VAX_NBPG + 0x40000000;
+ if (IOSPACE((br[0] & PG_FRAME) << VAX_PGSHIFT))
+ return; /* Forget mappings of IO space */
+
pv = pv_table + ((br[0] & PG_FRAME) >> LTOHPS);
if (((br[0] & PG_PROT) == PG_RW) &&
((pv->pv_attr & PG_M) != PG_M))