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;
/*