Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/sys/arch Set user page table base address dynamically on ami...



details:   https://anonhg.NetBSD.org/src/rev/9f0bccdb5be5
branches:  trunk
changeset: 780056:9f0bccdb5be5
user:      rkujawa <rkujawa%NetBSD.org@localhost>
date:      Mon Jul 09 19:23:45 2012 +0000

description:
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.

diffstat:

 sys/arch/amiga/amiga/amiga_init.c  |  9 +++++----
 sys/arch/m68k/m68k/pmap_motorola.c |  8 +++++---
 2 files changed, 10 insertions(+), 7 deletions(-)

diffs (73 lines):

diff -r 9fe7c5008b28 -r 9f0bccdb5be5 sys/arch/amiga/amiga/amiga_init.c
--- a/sys/arch/amiga/amiga/amiga_init.c Mon Jul 09 19:10:16 2012 +0000
+++ b/sys/arch/amiga/amiga/amiga_init.c Mon Jul 09 19:23:45 2012 +0000
@@ -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 @@
 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 @@
         * 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);
 
        /*
diff -r 9fe7c5008b28 -r 9f0bccdb5be5 sys/arch/m68k/m68k/pmap_motorola.c
--- a/sys/arch/m68k/m68k/pmap_motorola.c        Mon Jul 09 19:10:16 2012 +0000
+++ b/sys/arch/m68k/m68k/pmap_motorola.c        Mon Jul 09 19:23:45 2012 +0000
@@ -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 @@
 
 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 @@
        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;
                /*



Home | Main Index | Thread Index | Old Index