Page 1 of 1
ACPI Tables guaranteed in memory type 3?
Posted: Wed Mar 02, 2016 2:16 am
by WeirdCat
Is it safe to assume that the ACPI Tables are always in a address range type 3 (AddressRangeACPI)? So that I could map all type 3 regions (from INT 0x15 function 0xE820) in long mode and then parse them without checking every step of the way if the memory is mapped?
I didn't find any guaranty for that in the ACPI Specification, but all computers I've tested did it this way.
Re: ACPI Tables guaranteed in memory type 3?
Posted: Wed Mar 02, 2016 8:20 am
by BrightLight
I think, yes. But every PC is different; maybe one BIOS has the ACPI tables in a hardware-reserved range. I don't think you should depend on the fact that it works now.
Re: ACPI Tables guaranteed in memory type 3?
Posted: Thu Mar 03, 2016 4:18 am
by Brendan
Hi,
WeirdCat wrote:Is it safe to assume that the ACPI Tables are always in a address range type 3 (AddressRangeACPI)? So that I could map all type 3 regions (from INT 0x15 function 0xE820) in long mode and then parse them without checking every step of the way if the memory is mapped?
No, some or all of the ACPI tables could be in reserved areas. You can even have a single table that's half in one area and half in another. The only thing the "ACPI reclaimable" area type guarantees is that the OS can reclaim the areas (use them as normal RAM) after it has finished using the ACPI tables (or copied them elsewhere).
WeirdCat wrote:I didn't find any guaranty for that in the ACPI Specification, but all computers I've tested did it this way.
If you test on every single computer in the world, that still won't ensure that someone won't release a new computer tomorrow that complies with the ACPI specification but breaks your code.
Cheers,
Brendan