[net.bugs.4bsd] UNIX does not recognize more than 8Mbytes of physical memory

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