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.
Hi. I'm trying to write ACPI code for my OS.
I wrote a simple function to find the RSDP table using the Anchor string "RDS PTR ". My function is (i'm in higher half)
AlfaOmega08 wrote:My code returns two tables at 0xC00E1ECF and at 0xC00FB970.
ACPI 3.0 wrote:5.2.5.1 Finding the RSDP on IA-PC Systems
OSPM finds the Root System Description Pointer (RSDP) structure by searching physical memory ranges on 16-byte boundaries for a valid Root System Description Pointer structure signature and checksum match as follows:
The first 1 KB of the Extended BIOS Data Area (EBDA). For EISA or MCA systems, the EBDA can be found in the two-byte location 40:0Eh on the BIOS data area.
The BIOS read-only memory space between 0E0000h and 0FFFFFh.
I'm guessing the table at 0xC00E1ECF isn't on a 16-byte boundary (and the checksum probably doesn't match either)...
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.