Module Name: src Committed By: rkujawa Date: Mon Jul 9 19:23:45 UTC 2012
Modified Files: src/sys/arch/amiga/amiga: amiga_init.c src/sys/arch/m68k/m68k: pmap_motorola.c Log Message: Set user page table base address dynamically on amiga. This unbreaks machines with large Zorro III I/O spaces. Patch originally by Michael L. Hitch. Test on an A4000. To generate a diff of this commit: cvs rdiff -u -r1.126 -r1.127 src/sys/arch/amiga/amiga/amiga_init.c cvs rdiff -u -r1.65 -r1.66 src/sys/arch/m68k/m68k/pmap_motorola.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/arch/amiga/amiga/amiga_init.c diff -u src/sys/arch/amiga/amiga/amiga_init.c:1.126 src/sys/arch/amiga/amiga/amiga_init.c:1.127 --- src/sys/arch/amiga/amiga/amiga_init.c:1.126 Sun Feb 12 16:34:06 2012 +++ src/sys/arch/amiga/amiga/amiga_init.c Mon Jul 9 19:23:45 2012 @@ -1,4 +1,4 @@ -/* $NetBSD: amiga_init.c,v 1.126 2012/02/12 16:34:06 matt Exp $ */ +/* $NetBSD: amiga_init.c,v 1.127 2012/07/09 19:23:45 rkujawa Exp $ */ /* * Copyright (c) 1994 Michael L. Hitch @@ -38,7 +38,7 @@ #include "ser.h" #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: amiga_init.c,v 1.126 2012/02/12 16:34:06 matt Exp $"); +__KERNEL_RCSID(0, "$NetBSD: amiga_init.c,v 1.127 2012/07/09 19:23:45 rkujawa Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -73,7 +73,8 @@ __KERNEL_RCSID(0, "$NetBSD: amiga_init.c extern u_int lowram; extern u_int Umap; extern u_long boot_partition; -vaddr_t amiga_uptbase; +extern vaddr_t m68k_uptbase; + #ifdef P5PPC68KBOARD extern int p5ppc; #endif @@ -705,7 +706,7 @@ start_c(int id, u_int fphystart, u_int f * XXX 16 MB instead of 256 MB should be enough, but... * we need to fix the fastmem loading first. (see comment at line 375) */ - RELOC(amiga_uptbase, vaddr_t) = + RELOC(m68k_uptbase, vaddr_t) = roundup(vstart + 0x10000000, 0x10000000); /* Index: src/sys/arch/m68k/m68k/pmap_motorola.c diff -u src/sys/arch/m68k/m68k/pmap_motorola.c:1.65 src/sys/arch/m68k/m68k/pmap_motorola.c:1.66 --- src/sys/arch/m68k/m68k/pmap_motorola.c:1.65 Fri Jan 27 19:48:38 2012 +++ src/sys/arch/m68k/m68k/pmap_motorola.c Mon Jul 9 19:23:45 2012 @@ -1,4 +1,4 @@ -/* $NetBSD: pmap_motorola.c,v 1.65 2012/01/27 19:48:38 para Exp $ */ +/* $NetBSD: pmap_motorola.c,v 1.66 2012/07/09 19:23:45 rkujawa Exp $ */ /*- * Copyright (c) 1999 The NetBSD Foundation, Inc. @@ -119,7 +119,7 @@ #include "opt_m68k_arch.h" #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: pmap_motorola.c,v 1.65 2012/01/27 19:48:38 para Exp $"); +__KERNEL_RCSID(0, "$NetBSD: pmap_motorola.c,v 1.66 2012/07/09 19:23:45 rkujawa Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -256,6 +256,8 @@ int page_cnt; /* number of pages manage bool pmap_initialized = false; /* Has pmap_init completed? */ +vaddr_t m68k_uptbase = M68K_PTBASE; + struct pv_header { struct pv_entry pvh_first; /* first PV entry */ uint16_t pvh_attrs; /* attributes: @@ -514,7 +516,7 @@ pmap_init(void) st_map = uvm_km_suballoc(kernel_map, &addr, &addr2, s, 0, false, &st_map_store); - addr = M68K_PTBASE; + addr = m68k_uptbase; if ((M68K_PTMAXSIZE / M68K_MAX_PTSIZE) < maxproc) { s = M68K_PTMAXSIZE; /*