RE: Fw: [PATCH]: Correctly locate RSDP in EBDA

From: Moore, Robert <hidden>
Date: 2005-07-25 22:19:57

There are two versions of this code in Linux, the ACPICA version and the
version in boot.c. It is very cumbersome to maintain two versions of
this sensitive code, and the version in boot.c should be removed.  The
ACPICA version (in tbxfroot.c) already handles EBDA and bad checksums
correctly.

Bob Moore

-----Original Message-----
From: acpi-devel-admin-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org [mailto:acpi-devel-
admin-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org] On Behalf Of Andrew Morton
Sent: Monday, July 25, 2005 3:13 PM
To: acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org
Cc: Udo A. Steinberg
Subject: [ACPI] Fw: [PATCH]: Correctly locate RSDP in EBDA



Begin forwarded message:

Date: Wed, 20 Jul 2005 17:42:07 +0200
From: "Udo A. Steinberg" <us15-IG//nw+yl+iQIjdd1DhZXWfrygkm6VTR@public.gmane.org>
To: Linux Kernel Mailing List <redacted>
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
quoted hunk
Area
40:0E is the segment address of the EBDA.

Signed-off-by: Udo A. Steinberg <us15-IG//nw+yl+iQIjdd1DhZXWfrygkm6VTR@public.gmane.org>
--- 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).
quoted hunk
         */
-       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);


-------------------------------------------------------
SF.Net email is sponsored by: Discover Easy Linux Migration Strategies
from IBM. Find simple to follow Roadmaps, straightforward articles,
informative Webcasts and more! Get everything you need to get up to
speed, fast. http://ads.osdn.com/?ad_idt77&alloc_id492&op=click
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help