lkml.org 
[lkml]   [2005]   [Jul]   [20]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Date
From
Subject[PATCH]: Correctly locate RSDP in EBDA

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);
[unhandled content-type:application/pgp-signature]
\
 
 \ /
  Last update: 2005-07-20 17:45    [W:5.990 / U:0.012 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site