diff options
author | Niklas Hallqvist <niklas@cvs.openbsd.org> | 1998-04-04 17:13:18 +0000 |
---|---|---|
committer | Niklas Hallqvist <niklas@cvs.openbsd.org> | 1998-04-04 17:13:18 +0000 |
commit | a7d921793f76f17212eed8bdd6996637d14e63b9 (patch) | |
tree | fdfe3454efc0aae4f17cea6721ae913d6e1ab093 /sys/arch/amiga | |
parent | fea4ed414ba9473b4771a8a6fc5872e0ded10910 (diff) |
Yay! This fixes a bug that has been there since day one of the amiga port.
We have never protected the kvm area that maps Zorro I/O registers in the
Z2 memory space from being allocated by the kmem_* routines. Lately kvm
usage has increased and we have needed more kvm allocated than earlier thus
this area have got allocated with random results. Most often resulting in
MMU fault panics, but also in hangs. This bug has stalled the amiga port
release builds for several weeks, but now I *hope* the amiga will have a
chance to be built and tested in time for 2.3.
Diffstat (limited to 'sys/arch/amiga')
-rw-r--r-- | sys/arch/amiga/amiga/amiga_init.c | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/sys/arch/amiga/amiga/amiga_init.c b/sys/arch/amiga/amiga/amiga_init.c index 0fa5ebc365f..db604d6d2a9 100644 --- a/sys/arch/amiga/amiga/amiga_init.c +++ b/sys/arch/amiga/amiga/amiga_init.c @@ -1,4 +1,4 @@ -/* $OpenBSD: amiga_init.c,v 1.15 1997/09/08 19:42:28 niklas Exp $ */ +/* $OpenBSD: amiga_init.c,v 1.16 1998/04/04 17:13:17 niklas Exp $ */ /* $NetBSD: amiga_init.c,v 1.56 1997/06/10 18:22:24 veego Exp $ */ /* @@ -739,8 +739,6 @@ start_c(id, fphystart, fphysize, cphysize, esym_addr, flags, inh_sync) * some nice variables for pmap to use */ RELOC(amigahwaddr, vm_offset_t) = RELOC(DRCCADDR, u_int); - RELOC(namigahwpg, u_int) = - NDRCCPG + NDRCIAPG + RELOC(NZTWOMEMPG, u_int); } else #endif { @@ -766,16 +764,17 @@ start_c(id, fphystart, fphysize, cphysize, esym_addr, flags, inh_sync) * some nice variables for pmap to use */ RELOC(amigahwaddr, vm_offset_t) = RELOC(CHIPMEMADDR, u_int); - RELOC(namigahwpg, u_int) = - NCHIPMEMPG + NCIAPG + NZTWOROMPG + RELOC(NZTWOMEMPG, u_int); } + /* Tell pmap how much of the kernel_map to reserve */ + RELOC(namigahwpg, u_int) = ptextra; + /* * set this before copying the kernel, so the variable is updated in * the `real' place too. protorp[0] is already preset to the * CRP setting. */ - (RELOC(protorp[1], u_int)) = RELOC(Sysseg_pa, u_int); /* + segtable address */ + RELOC(protorp[1], u_int) = RELOC(Sysseg_pa, u_int); /* + segtable address */ /* * copy over the kernel (and all now initialized variables) |