diff options
author | jmallett <jmallett@FreeBSD.org> | 2010-04-23 19:20:56 +0000 |
---|---|---|
committer | jmallett <jmallett@FreeBSD.org> | 2010-04-23 19:20:56 +0000 |
commit | d92d4020c1609e86a1fbf85085cb24f934d93ae6 (patch) | |
tree | 657818dbb62a7f2f7f368ccedbc49863cd34ca2f /sys/mips/sibyte | |
parent | 57dd8a9a91e30a2b94ef34d227c41f697831d0cc (diff) | |
download | FreeBSD-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.c | 11 |
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. |