Lowlevel
Lowlevel => Lowlevel-Coding => Thema gestartet von: Programm Noob am 12. August 2010, 20:58
-
Moin
Ich versuche momentan ein ACPI Treiber zu programmieren. Ich habe zwar jetzt nur eine Frage aber da im laufe der programmierung des Treibers mehr Fragen auftauchen werden, eröffne ich jetzt dieses Thema.
Laut Wikipedia müsste ich nur den ersten Megabyte RAM nach der Zeichenfolge "RSD PTR" durchsuchen um die Adresse der RSDP Tabelle zu erhalten oder? Die Adresse ist dann doch die adresse an der sich das erste Zeichen der Zeichenfolge befindet oder? Ist das soweit alles richtig?
Programm Noob
-
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.
Du musst also nicht das ganze erste MiB durchsuchen.
Und ja, die Adresse von "RSD PTR " ist die Adresse der RSDP Tabelle. (Siehe auch ACPIv4.0 - 5.2.5.3 RSDP Struktur)
-
Ich verstehe das Zitat aus der Spec nicht ganz, ich glaube die will mir sagen das ich die BDA und EBDA nicht mit durchsuchen brauch stimmts?
-
Nein, genau umgekehrt, du musst bzw. darfst nur dort danach suchen. Ansonsten würde ich mal behaupten, dass für deinen Erfolg essenziell sein wird die Spec zu verstehen, insofern versuch das bestmöglich.