summaryrefslogtreecommitdiff
path: root/sys/arch/amiga
diff options
context:
space:
mode:
authorNiklas Hallqvist <niklas@cvs.openbsd.org>1998-04-04 17:13:18 +0000
committerNiklas Hallqvist <niklas@cvs.openbsd.org>1998-04-04 17:13:18 +0000
commita7d921793f76f17212eed8bdd6996637d14e63b9 (patch)
treefdfe3454efc0aae4f17cea6721ae913d6e1ab093 /sys/arch/amiga
parentfea4ed414ba9473b4771a8a6fc5872e0ded10910 (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.c11
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)