summaryrefslogtreecommitdiffstats
path: root/sys/mips/sibyte
diff options
context:
space:
mode:
authorjmallett <jmallett@FreeBSD.org>2010-04-23 19:20:56 +0000
committerjmallett <jmallett@FreeBSD.org>2010-04-23 19:20:56 +0000
commitd92d4020c1609e86a1fbf85085cb24f934d93ae6 (patch)
tree657818dbb62a7f2f7f368ccedbc49863cd34ca2f /sys/mips/sibyte
parent57dd8a9a91e30a2b94ef34d227c41f697831d0cc (diff)
downloadFreeBSD-src-d92d4020c1609e86a1fbf85085cb24f934d93ae6.zip
FreeBSD-src-d92d4020c1609e86a1fbf85085cb24f934d93ae6.tar.gz
o) Remove default MAXMEM on SWARM; pmap can readily use lmem for >512M
physical addresses. o) Set a local maxmem in sb_machdep.c to avoid trying to use pages over 2^64 under 32-bit ABIs. Our pmap needs corrected to use vm_paddr_t consistently, then we can make vm_paddr_t 64-bit under 32-bit ABIs and add code in pmap to limit phys_avail by the maximum PFN that a 32-bit PTE can hold.
Diffstat (limited to 'sys/mips/sibyte')
-rw-r--r--sys/mips/sibyte/sb_machdep.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/sys/mips/sibyte/sb_machdep.c b/sys/mips/sibyte/sb_machdep.c
index dca2869..559bf74 100644
--- a/sys/mips/sibyte/sb_machdep.c
+++ b/sys/mips/sibyte/sb_machdep.c
@@ -158,6 +158,17 @@ mips_init(void)
TUNABLE_INT_FETCH("hw.physmem", &tmp);
maxmem = (uint64_t)tmp * 1024;
+ /*
+ * XXX
+ * If we used vm_paddr_t consistently in pmap, etc., we could
+ * use 64-bit page numbers on !n64 systems, too, like i386
+ * does with PAE.
+ */
+#if !defined(__mips_n64)
+ if (maxmem == 0 || maxmem > 0xffffffff)
+ maxmem = 0xffffffff;
+#endif
+
#ifdef CFE
/*
* Query DRAM memory map from CFE.
OpenPOWER on IntegriCloud