Re: Linux does not see my 32 Meg RAM

Sun, 27 Oct 1996 17:48:55 +0100 (MET)

On Sun, 27 Oct 1996, Jari Soderholm wrote:

> Well , I tried that patch but it did not help, Linux still
> sees on only 16 MB.

Arghh. Mmmm, I suspect that you have a "memory hole" : in your CPU address
space, you would have some memory mapped from 0 to some address
(usualy 15M), then you would have a hole (that can be used for some exotic
memory-mapping devices), and then the other part of your memory starting
at 16M.

On my BIOS (AMI) I can configure this option in the Chipset Setup, and
it's just named "Memory Hole". But sometimes the option gets another name.

Currently, Linux can't be configured to support a memory hole. This will
have to change.

Do you have exactly 16M detected, or a little less ? (this would be a
great hint that you have a memory hole). What is your /proc/kcore file size ?

(note that mine is 32558528 bytes, i.e. 32M+4K.... can someone explain me
what is this additionnal page ?)

> But I wonder what is the difference so that windows 95 can
> find all memery without problems.
> And this laptop is completely new model from compaq (120 Pentium)
> so it probably does not have very old bios.

There is several ways to ask for the memory size. All modern bioses have
support for the newer ways, and that's what win95 uses.

Basically, Linux uses the old int 15h/ah=88h interface, that returns the
memory size over 1M in 1K units, in a 16-bit word. This gives us problems
because : - the 16-bit word can't report more than 64M
- this scheme can't report memory holes
- some BIOSes don't want to report more than 16M

My patch only turns around the third problem, by reading the memory size
in another place (the CMOS clock), but it's still limited.

The final patch would be to use other (modern) BIOS interfaces. They have
much more support for reporting every physical memory mapping that you
could imagine.

Michel "Walken" LESPINASSE - Student at Ecole Centrale Paris (France)
www Email :
(o o) Http :