UNIX does not recognize more than 8Mbytes of physical memory
joe at fluke.UUCP
joe at fluke.UUCP
Sat Jun 23 02:07:50 AEST 1984
Index: sys/vax/locore.s 4.2BSD
Description:
When booted on a machine with > 8 Mbytes of physical memory,
UNIX will report and use on 8 Mbytes of the total available.
Repeat-By:
Buy a new VAX-11/780, or upgrade your existing 780 to the
new 64K chip internally-interleaved memory controller.
Then, install more than 8Mbytes of memory in the machine.
Boot UNIX and look at the memory message displayed as it comes
up.
Fix:
In locore.s, the magic number 8192 is wired into the code in
a loop which steps through memory testing for the end of physical
memory. This seems ludicrous - at least they could have used
a #define constant! I replaced the 8192 with a #define constant,
MAXPHYMEM, defined in nexus.h. I set up MAXPHYMEM to 32768, the
current maximum physical memory on a UNIX VAX. Here is the
relevan section of code from locore.s:
/* count up memory */
clrl r7
1: pushl $4; pushl r7; calls $2,_badaddr; tstl r0; bneq 9f
#ifndef FLUKE
acbl $8192*1024-1,$64*1024,r7,1b
#else
acbl $MAXPHYMEM*1024-1,$64*1024,r7,1b
#endif FLUKE
9:
/* clear memory from kernel bss and pages for proc 0 u. and page table */
Now, I'll just wait and see how UNIX does with 10 Mbytes!
/Joe
More information about the Comp.bugs.4bsd.ucb-fixes
mailing list