Subject: Re: 128M max virtual mem
To: Rob Windsor <windsor@hedgehog.com>
From: James Lever <J.Lever@mailbox.uq.oz.au>
List: port-i386
Date: 12/15/1995 23:53:13
>Verily did Charles Hannum write:
>
>> In article <199512030104.RAA03965@gabriella.resort.com>
>> banshee@gabriella.resort.com (Robert Dobbs) writes:
>
>>    Isn't there an upper netbsd limit of 128 meg on the i386 port?
>
>> No; that's kernel virtual memory, which is a different problem
>> altogether.  There is no practical limit to the amount of memory you
>> can use, save that if you have more than 64MB you currently need to
>> make a small modification for the rest to be recognized.
>
>What is this modification, for the record?

For the record, it is in the mailing-list archives in port-i386.0064 amongst
others.  But anyhow.. 

There is a limitation of the fields in the CMOS used to hold the amount of 
RAM.  You need to hard-code the amount into machdep.c.  You need to use 
something like the following: 

(in /sys/arch/i386/i386/machdep.c)
...
biosextmem = (mc146818_read(NULL, NVRAM_EXTHI) << 8) |
    mc146818_read(NULL, NVRAM_EXTLO);
                     
/* Allow hard-coding RAM for broken BIOS */
#ifdef ACTUAL_EXTMEM
if ( ACTUAL_EXTMEM > biosextmem)
     biosextmem = ACTUAL_EXTMEM;
#endif /* ACTUAL_EXTMEM */

Then you can put in your kernel config:
options         "ACTUAL_EXTMEM=127*1024"

cheers,
James