svn commit: r207131 - in head/sys/mips: conf sibyte
Juli Mallett
jmallett at FreeBSD.org
Fri Apr 23 19:20:56 UTC 2010
Author: jmallett
Date: Fri Apr 23 19:20:56 2010
New Revision: 207131
URL: http://svn.freebsd.org/changeset/base/207131
Log:
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.
Modified:
head/sys/mips/conf/SWARM
head/sys/mips/sibyte/sb_machdep.c
Modified: head/sys/mips/conf/SWARM
==============================================================================
--- head/sys/mips/conf/SWARM Fri Apr 23 18:53:17 2010 (r207130)
+++ head/sys/mips/conf/SWARM Fri Apr 23 19:20:56 2010 (r207131)
@@ -8,12 +8,6 @@ options CPU_SB1
files "../sibyte/files.sibyte"
hints "SWARM.hints"
-#
-# 32-bit kernel cannot deal with physical memory beyond 4GB
-# XXX pmap assumes that all the memory can be mapped using KSEG0
-#
-options MAXMEM=512*1024
-
options CFE
options CFE_CONSOLE
options CFE_ENV
Modified: head/sys/mips/sibyte/sb_machdep.c
==============================================================================
--- head/sys/mips/sibyte/sb_machdep.c Fri Apr 23 18:53:17 2010 (r207130)
+++ head/sys/mips/sibyte/sb_machdep.c Fri Apr 23 19:20:56 2010 (r207131)
@@ -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.
More information about the svn-src-head
mailing list