summaryrefslogtreecommitdiff
path: root/sys
diff options
context:
space:
mode:
authorMiod Vallat <miod@cvs.openbsd.org>2006-07-06 17:49:46 +0000
committerMiod Vallat <miod@cvs.openbsd.org>2006-07-06 17:49:46 +0000
commitf0ae7a9538081ce7342efa8e6a488eace6d570d0 (patch)
tree12aafc4c4b42408d39ce31e8ddba88f12af3bec4 /sys
parent1139e38b5679455073863e7b3e0601ef45296f86 (diff)
Insert an empty page at the beginning of the kernel, so that we can map it
invalid and have NULL pointer dereferences in the kernel fault now.
Diffstat (limited to 'sys')
-rw-r--r--sys/arch/mac68k/mac68k/locore.s21
-rw-r--r--sys/arch/mac68k/mac68k/pmap_bootstrap.c5
2 files changed, 18 insertions, 8 deletions
diff --git a/sys/arch/mac68k/mac68k/locore.s b/sys/arch/mac68k/mac68k/locore.s
index 215930ff5c7..cef70be4f83 100644
--- a/sys/arch/mac68k/mac68k/locore.s
+++ b/sys/arch/mac68k/mac68k/locore.s
@@ -1,4 +1,4 @@
-/* $OpenBSD: locore.s,v 1.55 2006/07/06 17:48:55 miod Exp $ */
+/* $OpenBSD: locore.s,v 1.56 2006/07/06 17:49:45 miod Exp $ */
/* $NetBSD: locore.s,v 1.103 1998/07/09 06:02:50 scottr Exp $ */
/*
@@ -86,6 +86,11 @@
GLOBAL(kernel_text)
/*
+ * Clear and skip the first page of text; it will not be mapped.
+ */
+ .fill NBPG / 4, 4, 0
+
+/*
* Initialization
*/
@@ -201,13 +206,21 @@ Lstart1:
1:
#endif
#if defined(M68020) || defined(M68030)
- cmpl #CPU_68040,a0@ | 68040?
- jeq 1f | yes, skip
+#if defined(M68030)
+ cmpl #CPU_68030,a0@ | 68030?
+ jeq 1f | yes, ok
+#endif
+#if defined(M68020)
+ cmpl #CPU_68020,a0@ | 68020?
+ jeq 1f | yes, ok
+#endif
+ jra 9f
+1:
movl #_C_LABEL(busaddrerr2030),a2@(8)
movl #_C_LABEL(busaddrerr2030),a2@(12)
jra Lstart2
-1:
#endif
+9:
/* Config botch; no hope. */
movl _C_LABEL(MacOSROMBase),a1 | Load MacOS ROMBase
jra Ldoboot1
diff --git a/sys/arch/mac68k/mac68k/pmap_bootstrap.c b/sys/arch/mac68k/mac68k/pmap_bootstrap.c
index 877853d80a4..9f20b440c11 100644
--- a/sys/arch/mac68k/mac68k/pmap_bootstrap.c
+++ b/sys/arch/mac68k/mac68k/pmap_bootstrap.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: pmap_bootstrap.c,v 1.37 2006/01/13 19:36:46 miod Exp $ */
+/* $OpenBSD: pmap_bootstrap.c,v 1.38 2006/07/06 17:49:45 miod Exp $ */
/* $NetBSD: pmap_bootstrap.c,v 1.50 1999/04/07 06:14:33 scottr Exp $ */
/*
@@ -89,9 +89,6 @@ void bootstrap_mac68k(int);
#define RELOC(v, t) *((t*)((u_int)&(v)))
#define PA2VA(v, t) *((t*)((u_int)&(v) - firstpa))
-extern caddr_t kernel_start;
-#define PMAP_MD_RWLOW atop(round_page((vaddr_t)&kernel_start))
-
/*
* Present a totally tricky view of the world here...
* - count video mappings in the internal IO space (which will