
This document describes how to configure the Linux kernel to
support more than 950MB physical RAM on x86 systems:

you only have to change the 'Max physical memory in MB' kernel
config option to get everything working. If you have less than
900M RAM, dont touch the default setting, this option buys you
nothing at all! The option is in 'General setup':

          [ ] Kernel math emulation
          (1800)  Max physical memory in MB
          [*] Networking support
          [ ] Limit memory to low 16MB

the unit of CONFIG_MAX_MEMSIZE is 'megabytes', ie. a value of
'1024' means '1024 MBytes'. Unless in 2.1 there is no restriction
on the value of CONFIG_MAX_MEMSIZE!

IMPORTANT: the value of CONFIG_MAX_MEMSIZE should be about 128M
more than the amount of physical RAM (or 1024 if RAM is less than
900M), because the kernel needs some space for it's own memory
mappings. The kernel enforces this 128M window by clipping away
from the end of phsyical memory if necessary. (in this case that
chunk of physical memory is not used by Linux!) So configure this
option carefully, and look at 'free' output and boot messages
wether all RAM is correctly detected and configured.

A system with 2G physical memory should use a value of ~2400, a
system with 3.8G memory should use something like 3900. A bit of
experimentation with the limit wont hurt, the kernel needs a ~128M
window for vmalloc() plus PCI space uses up some memory too, thus
physical addresses above FD000000 should rather be kept free.

if the BIOS does not report correct memory size, use the mem= boot
commandline option to override it.

feel free to report any problems/suggestions to:

         Ingo Molnar <mingo@redhat.com>

