Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src/sys/arch Add a third argument to pmap_bootstrap() which plat...
details: https://anonhg.NetBSD.org/src/rev/b0cfaf059460
branches: trunk
changeset: 526018:b0cfaf059460
user: kleink <kleink%NetBSD.org@localhost>
date: Tue Apr 23 12:41:04 2002 +0000
description:
Add a third argument to pmap_bootstrap() which platform-specific
initialization can use to specify additional segment registers to be set
up in the kernel pmap.
diffstat:
sys/arch/amigappc/amigappc/machdep.c | 4 ++--
sys/arch/bebox/bebox/machdep.c | 4 ++--
sys/arch/macppc/macppc/machdep.c | 4 ++--
sys/arch/mvmeppc/mvmeppc/machdep.c | 4 ++--
sys/arch/ofppc/ofppc/machdep.c | 4 ++--
sys/arch/powerpc/include/mpc6xx/pmap.h | 13 +++++++++++--
sys/arch/powerpc/mpc6xx/pmap.c | 15 +++++++++++++--
sys/arch/prep/prep/machdep.c | 4 ++--
sys/arch/sandpoint/sandpoint/machdep.c | 4 ++--
9 files changed, 38 insertions(+), 18 deletions(-)
diffs (189 lines):
diff -r 5caddc36d756 -r b0cfaf059460 sys/arch/amigappc/amigappc/machdep.c
--- a/sys/arch/amigappc/amigappc/machdep.c Tue Apr 23 12:07:52 2002 +0000
+++ b/sys/arch/amigappc/amigappc/machdep.c Tue Apr 23 12:41:04 2002 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: machdep.c,v 1.17 2001/12/04 18:54:11 is Exp $ */
+/* $NetBSD: machdep.c,v 1.18 2002/04/23 12:41:04 kleink Exp $ */
/*
* Copyright (C) 1995, 1996 Wolfgang Solfrank.
@@ -252,7 +252,7 @@
/*
* Initialize pmap module
*/
- pmap_bootstrap(startkernel, endkernel);
+ pmap_bootstrap(startkernel, endkernel, NULL);
}
diff -r 5caddc36d756 -r b0cfaf059460 sys/arch/bebox/bebox/machdep.c
--- a/sys/arch/bebox/bebox/machdep.c Tue Apr 23 12:07:52 2002 +0000
+++ b/sys/arch/bebox/bebox/machdep.c Tue Apr 23 12:41:04 2002 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: machdep.c,v 1.70 2002/02/26 23:56:52 kleink Exp $ */
+/* $NetBSD: machdep.c,v 1.71 2002/04/23 12:41:04 kleink Exp $ */
/*
* Copyright (C) 1995, 1996 Wolfgang Solfrank.
@@ -348,7 +348,7 @@
/*
* Initialize pmap module.
*/
- pmap_bootstrap(startkernel, endkernel);
+ pmap_bootstrap(startkernel, endkernel, NULL);
#ifdef DDB
ddb_init((int)((u_int)endsym - (u_int)startsym), startsym, endsym);
diff -r 5caddc36d756 -r b0cfaf059460 sys/arch/macppc/macppc/machdep.c
--- a/sys/arch/macppc/macppc/machdep.c Tue Apr 23 12:07:52 2002 +0000
+++ b/sys/arch/macppc/macppc/machdep.c Tue Apr 23 12:41:04 2002 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: machdep.c,v 1.110 2002/03/02 00:44:08 matt Exp $ */
+/* $NetBSD: machdep.c,v 1.111 2002/04/23 12:41:05 kleink Exp $ */
/*
* Copyright (C) 1995, 1996 Wolfgang Solfrank.
@@ -391,7 +391,7 @@
/*
* Initialize pmap module.
*/
- pmap_bootstrap(startkernel, endkernel);
+ pmap_bootstrap(startkernel, endkernel, NULL);
restore_ofmap(ofmap, ofmaplen);
}
diff -r 5caddc36d756 -r b0cfaf059460 sys/arch/mvmeppc/mvmeppc/machdep.c
--- a/sys/arch/mvmeppc/mvmeppc/machdep.c Tue Apr 23 12:07:52 2002 +0000
+++ b/sys/arch/mvmeppc/mvmeppc/machdep.c Tue Apr 23 12:41:04 2002 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: machdep.c,v 1.2 2002/03/02 11:01:50 scw Exp $ */
+/* $NetBSD: machdep.c,v 1.3 2002/04/23 12:41:06 kleink Exp $ */
/*
* Copyright (C) 1995, 1996 Wolfgang Solfrank.
@@ -336,7 +336,7 @@
/*
* Initialize pmap module.
*/
- pmap_bootstrap(startkernel, endkernel);
+ pmap_bootstrap(startkernel, endkernel, NULL);
#ifdef DDB
ddb_init((int)((u_long)endsym - (u_long)startsym), startsym, endsym);
diff -r 5caddc36d756 -r b0cfaf059460 sys/arch/ofppc/ofppc/machdep.c
--- a/sys/arch/ofppc/ofppc/machdep.c Tue Apr 23 12:07:52 2002 +0000
+++ b/sys/arch/ofppc/ofppc/machdep.c Tue Apr 23 12:41:04 2002 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: machdep.c,v 1.73 2001/10/29 19:04:26 thorpej Exp $ */
+/* $NetBSD: machdep.c,v 1.74 2002/04/23 12:41:07 kleink Exp $ */
/*
* Copyright (C) 1995, 1996 Wolfgang Solfrank.
@@ -266,7 +266,7 @@
/*
* Initialize pmap module.
*/
- pmap_bootstrap(startkernel, endkernel);
+ pmap_bootstrap(startkernel, endkernel, NULL);
#ifdef DDB
ddb_init((int)((u_int)endsym - (u_int)startsym), startsym, endsym);
diff -r 5caddc36d756 -r b0cfaf059460 sys/arch/powerpc/include/mpc6xx/pmap.h
--- a/sys/arch/powerpc/include/mpc6xx/pmap.h Tue Apr 23 12:07:52 2002 +0000
+++ b/sys/arch/powerpc/include/mpc6xx/pmap.h Tue Apr 23 12:41:04 2002 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: pmap.h,v 1.3 2001/06/28 20:31:37 matt Exp $ */
+/* $NetBSD: pmap.h,v 1.4 2002/04/23 12:41:07 kleink Exp $ */
/*-
* Copyright (C) 1995, 1996 Wolfgang Solfrank.
@@ -73,7 +73,16 @@
#define pmap_resident_count(pmap) ((pmap)->pm_stats.resident_count)
#define pmap_wired_count(pmap) ((pmap)->pm_stats.wired_count)
-void pmap_bootstrap (vaddr_t kernelstart, vaddr_t kernelend);
+/*
+ * pmap_bootstrap interface
+ */
+struct segtab {
+ sr_t st_sr[16]; /* SR contents */
+ int st_mask; /* st_sr allocation bitmask */
+};
+
+void pmap_bootstrap (vaddr_t kernelstart, vaddr_t kernelend,
+ const struct segtab *);
boolean_t pmap_extract (struct pmap *, vaddr_t, paddr_t *);
boolean_t pmap_query_bit (struct vm_page *, int);
boolean_t pmap_clear_bit (struct vm_page *, int);
diff -r 5caddc36d756 -r b0cfaf059460 sys/arch/powerpc/mpc6xx/pmap.c
--- a/sys/arch/powerpc/mpc6xx/pmap.c Tue Apr 23 12:07:52 2002 +0000
+++ b/sys/arch/powerpc/mpc6xx/pmap.c Tue Apr 23 12:41:04 2002 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: pmap.c,v 1.41 2002/04/19 20:56:56 kleink Exp $ */
+/* $NetBSD: pmap.c,v 1.42 2002/04/23 12:41:07 kleink Exp $ */
/*-
* Copyright (c) 2001 The NetBSD Foundation, Inc.
* All rights reserved.
@@ -2635,7 +2635,8 @@
* is really initialized.
*/
void
-pmap_bootstrap(paddr_t kernelstart, paddr_t kernelend)
+pmap_bootstrap(paddr_t kernelstart, paddr_t kernelend,
+ const struct segtab *kernsegs)
{
struct mem_region *mp, tmp;
paddr_t s, e;
@@ -2903,6 +2904,16 @@
__asm __volatile ("mtsr %0,%1"
:: "n"(KERNEL2_SR), "r"(KERNEL2_SEGMENT));
#endif
+ if (kernsegs != NULL) {
+ for (i = 0; i < 16; i++) {
+ if (kernsegs->st_mask & (1 << i)) {
+ pmap_kernel()->pm_sr[i] = kernsegs->st_sr[i];
+ __asm __volatile ("mtsrin %0,%1"
+ :: "r"(i << ADDR_SR_SHFT),
+ "r"(kernsegs->st_sr[i]));
+ }
+ }
+ }
__asm __volatile ("sync; mtsdr1 %0; isync"
:: "r"((u_int)pmap_pteg_table | (pmap_pteg_mask >> 10)));
tlbia();
diff -r 5caddc36d756 -r b0cfaf059460 sys/arch/prep/prep/machdep.c
--- a/sys/arch/prep/prep/machdep.c Tue Apr 23 12:07:52 2002 +0000
+++ b/sys/arch/prep/prep/machdep.c Tue Apr 23 12:41:04 2002 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: machdep.c,v 1.36 2002/03/02 14:25:02 kleink Exp $ */
+/* $NetBSD: machdep.c,v 1.37 2002/04/23 12:41:08 kleink Exp $ */
/*
* Copyright (C) 1995, 1996 Wolfgang Solfrank.
@@ -371,7 +371,7 @@
/*
* Initialize pmap module.
*/
- pmap_bootstrap(startkernel, endkernel);
+ pmap_bootstrap(startkernel, endkernel, NULL);
#ifdef DDB
ddb_init((int)((u_long)endsym - (u_long)startsym), startsym, endsym);
diff -r 5caddc36d756 -r b0cfaf059460 sys/arch/sandpoint/sandpoint/machdep.c
--- a/sys/arch/sandpoint/sandpoint/machdep.c Tue Apr 23 12:07:52 2002 +0000
+++ b/sys/arch/sandpoint/sandpoint/machdep.c Tue Apr 23 12:41:04 2002 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: machdep.c,v 1.17 2002/03/05 19:06:38 briggs Exp $ */
+/* $NetBSD: machdep.c,v 1.18 2002/04/23 12:41:08 kleink Exp $ */
/*
* Copyright (C) 1995, 1996 Wolfgang Solfrank.
@@ -356,7 +356,7 @@
/*
* Initialize pmap module.
*/
- pmap_bootstrap(startkernel, endkernel);
+ pmap_bootstrap(startkernel, endkernel, NULL);
#ifdef DDB
ddb_init((int)((u_int)endsym - (u_int)startsym), startsym, endsym);
Home |
Main Index |
Thread Index |
Old Index