Page 1 of 1
Reporting low memory memory map
Posted: Sun Nov 03, 2013 9:50 am
by lopidas
I read here in
http://www.uruk.org/orig-grub/mem64mb.html in Assumptions and limitations that e820 does report whole low memory as free (type 1). Is it true (I am running on emulators)? How can I get reliable map of this space (without making assumptions)? Does SMBIOS returns reliable map?
Re: Reporting low memory memory map
Posted: Mon Nov 04, 2013 3:38 pm
by Combuster
e820 returns the memory available for protected mode OSes - which includes the IVT and BDA as free space, but not the part the BIOS needs for it's 32-bit functions like the EBDA which is reserved. Which means it does not technically return all of lower memory, just what you're allowed to use which is the more interesting figure in the end.
Don't use the SMBIOS. it's designed to tell you what the system actually contains, rather than what's safe and available for you to use.
Bottom line, E820 is the designated method for querying the memory map, so you should use it when possible.
Re: Reporting low memory memory map
Posted: Wed Nov 06, 2013 1:05 pm
by lopidas
I am not sure, if it can help, but I have found in Table. 7-9 in SMBIOS specification. Which looks like mapping all non-RAM related devices. Does it do it?
Re: Reporting low memory memory map
Posted: Fri Nov 08, 2013 8:12 pm
by tom9876543
The low memory map is fixed.
0:0 - 0:03FF Interrupt Descriptor Table
40:0 - 40:FF Bios Data Area
http://www.bioscentral.com/misc/bda.htm
As you know, you need to find the address of the EBDA via BIOS Interrupt.
This is explained at
http://wiki.osdev.org/Detecting_Memory_%28x86%29
Re: Reporting low memory memory map
Posted: Sat Nov 09, 2013 11:01 am
by lopidas
I want to clarify one thing: are these parts coppied to RAM, which are mapped to that range or mapped on the addresses of that range?
Re: Reporting low memory memory map
Posted: Sat Nov 09, 2013 4:21 pm
by tom9876543
It is normal RAM, not memory mapped I/O.