RE: >64MB RAM problems, why?

From: nathan.zook@amd.com
Date: Wed Apr 05 2000 - 14:12:48 EST


Most of the kernel regulars have probably grown tired of the explanation,
but here it is again.

There are three methods of extended memory detection. All use various
functions of int-15. The original was 88, which is limited to 64M. Some
vendors created an "extension", which they placed in e801. It reports the
memory in two segments, the first from 1-16M, the second for memory beyond
16M. Note that some motherboards reserve as much as 2M of space below 16M.
Starting with 2.2.x, Linux has supported the e801 function.

Enter WinTel, and the ACPI spec, which was adopted for the PC-99 standard.
This introduced a new function, e820, which is to report out all available
system memory. For various reasons, the standard may require changes to the
e801 report if a bios supports both. Starting with Award, many bios
manufactures have opted to drop e801 support entirely. On systems with
these bioses, Linux <2.3.19 is limited to 64M without command line support.
Even with command line support, the user is taking a risk if he specifies
his own top of memory, because he might attempt to use memory that the
system has reserved for its own use (NVS regions, in particular).

As for back porting, the patch for 2.4.x has not yet been agreed upon, and
it must be the priority. After that, the patch takes advantage of a number
of 2.3.x innovations, and there might be some problems with a straight port.
On the other hand, a minimally-featured "dumb" implementation would not be
that hard--it would just lack a number of useful features.

Nathan Zook

> -----Original Message-----
> From: tcrompton@home.com [mailto:tcrompton@home.com]
> Sent: Wednesday, April 05, 2000 10:46 AM
> To: linux-kernel@vger.rutgers.edu
> Subject: >64MB RAM problems, why?
>
>
> While trying to help new users install Linux, questions
> relating to the
> >64MB RAM problem occurs quite frequently. Although the
> solution is well documented, the reason why it occurs is not.
>
> While trying to find an explanation, I found this at
> http://www.meangene.com/notes/memory.html
>
> "Just FYI, the problem /w Linux not knowing the real amount
> of memory is
> due to a BIOS limitation, and not a software limitation. The BIOS can
> not properly report memory over 64MB, and this information
> must be known
> before the kernel is loaded into memory. Hence, this info is passed to
> the kernel as a boot command line argument, so that the reliability of
> the system will not be dependent on a flaky BIOS report."
>
> But I contrast I found this in the Brief Linux FAQ
> (http://metalab.unc.edu/pub/Linux/docs/faqs/BLFAQ)
>
> "Linux uses the BIOS to detect the amount of available RAM. At the
> present time there are two separate function calls available to do the
> job. Any version of Linux prior to 2.1.x uses the old call which is
> limited to 64M.
> The newer call (used by 95/NT and Linux 2.1.x) can return
> more than 64M.
> This problem should be fixed in the next stable release of the Linux
> kernel
> (release 2.2.0)."
>
> And I know some users who still have this problem using kernel 2.2, so
> why does this bug occur?
>
> I say bug because new users are convinced that this is a Linux bug,
> since Windows 95 or greater detects all of their RAM just fine.
>
> So, which is it? A Linux problem or a BIOS problem. If it is a BIOS
> problem, how does Windows properly detect the amount of RAM.
>
> I've also heard that 2.4 solves this problems. How hard would it be to
> "back-port" the solution to 2.2?
>
> "Why?", you may ask.
>
> Should the correct detection of RAM depend on the user? If
> so, then why
> fix the problem in 2.4?
>
> Answers to these questions will be relayed to new users in
> the form of a
> FAQ, so hopefully they will only have to be answered once.
>
> Please CC: me (tcrompton@home.com) any responses to this post.
>
> Thank you for your time.
>
> -
> To unsubscribe from this list: send the line "unsubscribe
> linux-kernel" in
> the body of a message to majordomo@vger.rutgers.edu
> Please read the FAQ at http://www.tux.org/lkml/
>

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Fri Apr 07 2000 - 21:00:15 EST