aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Moestl <tmm@FreeBSD.org>2002-02-13 17:05:56 +0000
committerThomas Moestl <tmm@FreeBSD.org>2002-02-13 17:05:56 +0000
commit89a87417d65dcfe01eeb09fd2b4b0a5d53513fa2 (patch)
tree0cc4f24589e64104f3991c95b56da9e68835e26c
parent9a60579c158d776ef5a8f8d2bfaefe9a16595ba0 (diff)
Notes
-rw-r--r--sys/sparc64/sparc64/machdep.c16
-rw-r--r--sys/sparc64/sparc64/pmap.c4
2 files changed, 10 insertions, 10 deletions
diff --git a/sys/sparc64/sparc64/machdep.c b/sys/sparc64/sparc64/machdep.c
index 45d3cae1ae7b..7d4a6ee028ab 100644
--- a/sys/sparc64/sparc64/machdep.c
+++ b/sys/sparc64/sparc64/machdep.c
@@ -243,9 +243,14 @@ sparc64_init(caddr_t mdp, u_int *state, u_int mid, u_int bootmid,
end = (vm_offset_t)_end;
}
+#ifdef DDB
+ kdb_init();
+#endif
+
/*
- * XXX calculate physmem
+ * Initialize virtual memory and calculate physmem.
*/
+ pmap_bootstrap(end);
/*
* Initialize tunables.
@@ -253,15 +258,6 @@ sparc64_init(caddr_t mdp, u_int *state, u_int mid, u_int bootmid,
init_param1();
init_param2(physmem);
-#ifdef DDB
- kdb_init();
-#endif
-
- /*
- * Initialize virtual memory.
- */
- pmap_bootstrap(end);
-
/*
* Disable tick for now.
*/
diff --git a/sys/sparc64/sparc64/pmap.c b/sys/sparc64/sparc64/pmap.c
index 1211b1882c70..5f2ddccf1c30 100644
--- a/sys/sparc64/sparc64/pmap.c
+++ b/sys/sparc64/sparc64/pmap.c
@@ -256,6 +256,7 @@ pmap_bootstrap(vm_offset_t ekva)
vm_offset_t off;
vm_offset_t pa;
vm_offset_t va;
+ vm_size_t physsz;
ihandle_t pmem;
ihandle_t vmem;
int sz;
@@ -292,12 +293,15 @@ pmap_bootstrap(vm_offset_t ekva)
sz /= sizeof(*mra);
CTR0(KTR_PMAP, "pmap_bootstrap: physical memory");
qsort(mra, sz, sizeof (*mra), mr_cmp);
+ physsz = 0;
for (i = 0, j = 0; i < sz; i++, j += 2) {
CTR2(KTR_PMAP, "start=%#lx size=%#lx", mra[i].mr_start,
mra[i].mr_size);
phys_avail[j] = mra[i].mr_start;
phys_avail[j + 1] = mra[i].mr_start + mra[i].mr_size;
+ physsz += mra[i].mr_size;
}
+ physmem = btoc(physsz);
/*
* Allocate the kernel tsb and lock it in the tlb.