joe@fluke.UUCP (Joe Kelsey) (06/22/84)
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
joe@fluke.UUCP (Joe Kelsey) (06/22/84)
I was a little hasty in sending that last message out. There is a problem in locore.c in recognizing more than 8 Mbytes, but simply changing the loop limit breaks something else in the kernel. The machine seemed to just hang trying to come up multi-user after seeing 10 Mbytes of memory out there. Well, back to the old sources. I will post whatever other changes I find may be necessary. /Joe