[Gllug] Missing RAM

John Southern john at sinoda.demon.co.uk
Sun May 17 14:58:02 UTC 2009


On Sunday 17 May 2009 12:15:58 Richard Jones wrote:
> > However my question is where is the missing 24608 bytes.
>
> As Peter points out, this is 24 MB short, which is close to a
> 'typical' number for some old/cheap chipsets where system RAM is
> stolen for video RAM.

Yes, I forgot to multiple by another 1024 for bytes.

> However you can't really tell what's going on with RAM without sharing
> with us the BIOS e820 maps.  For example, from this machine which has
> 4 GB of total memory, with my annotations:
>
> BIOS-provided physical RAM map:
>  BIOS-e820: 0000000000000000 - 000000000009fc00 (usable)
>
> ^ This is the "640K will be enough for anyone" low memory.
>
>  BIOS-e820: 000000000009fc00 - 00000000000a0000 (reserved)
>  BIOS-e820: 00000000000e8000 - 0000000000100000 (reserved)
>
> ^ ROMs?  #a0000 is the starting address of ancient PC text mode video
> memory.  (Actually, it was #a0000 for mono and #a8000 for colour).
>
>  BIOS-e820: 0000000000100000 - 000000000fff0000 (usable)
>
> ^ #100000 is the start of upper memory on all post-AT PCs.
>
>  BIOS-e820: 000000000fff0000 - 0000000010000000 (ACPI data)
>
> ^ 1 MB of ACPI data located just under the 256MB memory boundary.
>
>  BIOS-e820: 00000000fffbd000 - 0000000100000000 (reserved)
>
> ^ And the rest of upper memory, constituting another 3840MB of RAM.
> [Not sure why this is marked 'reserved' when it quite clearly should
> be 'usable']
>
> From the above maps, you can see the usable memory on the machine is
> approximately: 3840M + 255M + 640K which is just a snip under 4096 MB.
>
> You'll also note that memory does not need to be physically located in
> a single contiguous chunk starting at address 0.  Even physical memory
> has addressing holes, and this has been true ever since PCs came with
> more than 640K of RAM.

Ah, that does help a little.
dmesg | grep 820
[    0.000000]  BIOS-e820: 0000000000000000 - 000000000009fc00 (usable)
[    0.000000]  BIOS-e820: 000000000009fc00 - 00000000000a0000 (reserved)
[    0.000000]  BIOS-e820: 00000000000e8000 - 0000000000100000 (reserved)
[    0.000000]  BIOS-e820: 0000000000100000 - 000000007ffb0000 (usable)		
[    0.000000]  BIOS-e820: 000000007ffb0000 - 000000007ffc0000 (ACPI data)
[    0.000000]  BIOS-e820: 000000007ffc0000 - 000000007fff0000 (ACPI NVS)
[    0.000000]  BIOS-e820: 000000007fff0000 - 0000000080000000 (reserved)
[    0.000000]  BIOS-e820: 00000000ff7c0000 - 0000000100000000 (reserved)

>From that, I can see everything that makes up the 2GB (Up to the 80000000) 
assuming a0000-e800 is a rom table.

free is reporting 2072544K which is less than the usable bit between 100000 
and 7ffb0000 (2095808K).

John
-- 
Gllug mailing list  -  Gllug at gllug.org.uk
http://lists.gllug.org.uk/mailman/listinfo/gllug




More information about the GLLUG mailing list