Re:Detecting RAM installed
Posted: Fri Aug 12, 2005 9:26 pm
Hi,
http://www.pcpitstop.com/faq/smbios.asp
The ACPI standard will tell you to use the BIOS's "Get System Memory Map" function (http://www.ctyme.com/intr/rb-1741.htm).
There may be other ways of using ACPI, but I doubt it. For ACPI there's 2 parts - the tables used during boot and the interpretted language used after boot. For the tables used during boot the only other possibility I can think of is the "SRAT" table, which shows which memory areas are in each NUMA domain (currently only used for 80x86 for multi-socket AMD motherboards), however I don't think there's a correspondance between each NUMA memory range and RAM areas (e.g. the SRAT might say the first 1 GB of the physical address space is connected to CPU 1, but won't say what the first 1 GB of the physical address space contains).
AFAIK the interpretted language stuff doesn't have anything that will return memory sizes, but if it does you'd need a fully operational physical memory manager (and a lot more) before you got the interpretter working anyway.
I don't know about the Plug & Play BIOS - I've never really looked at it (but probably should when I have more time).
Cheers,
Brendan
SMBIOS is designed to allow "administrators" to assess hardware upgrade options or maintain a catalogue of what hardware a company current has in use (ie. it provides information for use by humans, rather than for use by software). From what I've seen it doesn't give reliable results on many computers, and others seem to agree - see:smiddy wrote:I suspect there is a couple of other ways to, SMBIOS in protected mode and perhaps ACPI. Both of which would also require some research before implentation.
http://www.pcpitstop.com/faq/smbios.asp
The ACPI standard will tell you to use the BIOS's "Get System Memory Map" function (http://www.ctyme.com/intr/rb-1741.htm).
There may be other ways of using ACPI, but I doubt it. For ACPI there's 2 parts - the tables used during boot and the interpretted language used after boot. For the tables used during boot the only other possibility I can think of is the "SRAT" table, which shows which memory areas are in each NUMA domain (currently only used for 80x86 for multi-socket AMD motherboards), however I don't think there's a correspondance between each NUMA memory range and RAM areas (e.g. the SRAT might say the first 1 GB of the physical address space is connected to CPU 1, but won't say what the first 1 GB of the physical address space contains).
AFAIK the interpretted language stuff doesn't have anything that will return memory sizes, but if it does you'd need a fully operational physical memory manager (and a lot more) before you got the interpretter working anyway.
I don't know about the Plug & Play BIOS - I've never really looked at it (but probably should when I have more time).
Cheers,
Brendan