diff options
author | Miod Vallat <miod@cvs.openbsd.org> | 2006-07-06 17:49:46 +0000 |
---|---|---|
committer | Miod Vallat <miod@cvs.openbsd.org> | 2006-07-06 17:49:46 +0000 |
commit | f0ae7a9538081ce7342efa8e6a488eace6d570d0 (patch) | |
tree | 12aafc4c4b42408d39ce31e8ddba88f12af3bec4 /sys/arch/mac68k | |
parent | 1139e38b5679455073863e7b3e0601ef45296f86 (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/arch/mac68k')
-rw-r--r-- | sys/arch/mac68k/mac68k/locore.s | 21 | ||||
-rw-r--r-- | sys/arch/mac68k/mac68k/pmap_bootstrap.c | 5 |
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 |