ACPI Tables guaranteed in memory type 3?

Question about which tools to use, bugs, the best way to implement a function, etc should go here. Don't forget to see if your question is answered in the wiki first! When in doubt post here.
Post Reply
WeirdCat
Posts: 11
Joined: Thu Feb 05, 2009 5:13 am
Location: Berlin, Germany

ACPI Tables guaranteed in memory type 3?

Post 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.
User avatar
BrightLight
Member
Member
Posts: 901
Joined: Sat Dec 27, 2014 9:11 am
Location: Maadi, Cairo, Egypt
Contact:

Re: ACPI Tables guaranteed in memory type 3?

Post 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.
You know your OS is advanced when you stop using the Intel programming guide as a reference.
User avatar
Brendan
Member
Member
Posts: 8561
Joined: Sat Jan 15, 2005 12:00 am
Location: At his keyboard!
Contact:

Re: ACPI Tables guaranteed in memory type 3?

Post 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
For all things; perfection is, and will always remain, impossible to achieve in practice. However; by striving for perfection we create things that are as perfect as practically possible. Let the pursuit of perfection be our guide.
Post Reply