public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH]: Correctly locate RSDP in EBDA
@ 2005-07-20 15:42 Udo A. Steinberg
  0 siblings, 0 replies; only message in thread
From: Udo A. Steinberg @ 2005-07-20 15:42 UTC (permalink / raw)
  To: Linux Kernel Mailing List

[-- Attachment #1: Type: text/plain, Size: 1061 bytes --]


ACPI spec. states that the location of the RSDP structure is found by searching
* The first 1 KB of the Extended BIOS Data Area (EBDA).
* The BIOS read-only memory space between 0E0000h and 0FFFFFh

The EBDA scan looks wrong. The patch below against 2.6.12 should correct this.

-Udo.

---

Calculate correct EBDA address for ACPI RSDP scan. The word at BIOS Data Area
40:0E is the segment address of the EBDA.

Signed-off-by: Udo A. Steinberg <us15@os.inf.tu-dresden.de>

--- linux-2.6.12/arch/i386/kernel/acpi/boot.c.old       2005-07-20 17:28:32.000000000 +0200
+++ linux-2.6.12/arch/i386/kernel/acpi/boot.c   2005-07-20 17:31:15.000000000 +0200
@@ -648,7 +648,7 @@
         * Scan memory looking for the RSDP signature. First search EBDA (low
         * memory) paragraphs and then search upper memory (E0000-FFFFF).
         */
-       rsdp_phys = acpi_scan_rsdp (0, 0x400);
+       rsdp_phys = acpi_scan_rsdp (*(u16*) 0x40E << 4, 0x400);
        if (!rsdp_phys)
                rsdp_phys = acpi_scan_rsdp (0xE0000, 0x20000);
 

[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2005-07-20 15:42 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-07-20 15:42 [PATCH]: Correctly locate RSDP in EBDA Udo A. Steinberg

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox