svn commit: r204504 - user/jmallett/octeon/sys/mips/mips
Juli Mallett
jmallett at FreeBSD.org
Mon Mar 1 04:07:56 UTC 2010
Author: jmallett
Date: Mon Mar 1 04:07:56 2010
New Revision: 204504
URL: http://svn.freebsd.org/changeset/base/204504
Log:
o) nkpt calculation is busted with 64-bit addresses, so don't use memory above
512M so we don't have to recalculate it. Gross.
o) Fix thread0 stack setup to load the whole stack address in case of n64.
Modified:
user/jmallett/octeon/sys/mips/mips/locore.S
user/jmallett/octeon/sys/mips/mips/pmap.c
Modified: user/jmallett/octeon/sys/mips/mips/locore.S
==============================================================================
--- user/jmallett/octeon/sys/mips/mips/locore.S Mon Mar 1 03:37:37 2010 (r204503)
+++ user/jmallett/octeon/sys/mips/mips/locore.S Mon Mar 1 04:07:56 2010 (r204504)
@@ -178,8 +178,8 @@ VECTOR(_locore, unknown)
nop
PTR_LA sp, _C_LABEL(thread0)
- lw a0, TD_PCB(sp)
- li t0, ~7
+ REG_L a0, TD_PCB(sp)
+ REG_LI t0, ~7
and a0, a0, t0
subu sp, a0, START_FRAME
Modified: user/jmallett/octeon/sys/mips/mips/pmap.c
==============================================================================
--- user/jmallett/octeon/sys/mips/mips/pmap.c Mon Mar 1 03:37:37 2010 (r204503)
+++ user/jmallett/octeon/sys/mips/mips/pmap.c Mon Mar 1 04:07:56 2010 (r204504)
@@ -297,14 +297,22 @@ again:
phys_avail[i] = round_page(phys_avail[i]);
phys_avail[i + 1] = trunc_page(phys_avail[i + 1]);
- if (phys_avail[i + 1] >= MIPS_KSEG0_LARGEST_PHYS)
+ if (phys_avail[i] >= MIPS_KSEG0_LARGEST_PHYS) {
+ phys_avail[i] = 0;
+ phys_avail[i + 1] = 0;
+ }
+
+ if (phys_avail[i + 1] >= MIPS_KSEG0_LARGEST_PHYS) {
+#if 0
memory_larger_than_512meg++;
+#endif
+ phys_avail[i + 1] = trunc_page(MIPS_KSEG0_LARGEST_PHYS - 1);
+ }
if (i < 2)
continue;
if (phys_avail[i - 2] > phys_avail[i]) {
vm_paddr_t ptemp[2];
-
ptemp[0] = phys_avail[i + 0];
ptemp[1] = phys_avail[i + 1];
More information about the svn-src-user
mailing list