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