[PATCH]: Correctly locate RSDP in EBDA

From: Udo A. Steinberg
Date: Wed Jul 20 2005 - 10:43:20 EST


--Signature_Wed__20_Jul_2005_17_42_07_+0200_E3J2nFGb42VDVaDO
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: quoted-printable


ACPI spec. states that the location of the RSDP structure is found by searc=
hing
* 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 th=
is.

-Udo.

---

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

Signed-off-by: Udo A. Steinberg <us15@xxxxxxxxxxxxxxxxxxxx>

--- 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.0000000=
00 +0200
@@ -648,7 +648,7 @@
* Scan memory looking for the RSDP signature. First search EBDA (l=
ow
* memory) paragraphs and then search upper memory (E0000-FFFFF).
*/
- rsdp_phys =3D acpi_scan_rsdp (0, 0x400);
+ rsdp_phys =3D acpi_scan_rsdp (*(u16*) 0x40E << 4, 0x400);
if (!rsdp_phys)
rsdp_phys =3D acpi_scan_rsdp (0xE0000, 0x20000);
=20

--Signature_Wed__20_Jul_2005_17_42_07_+0200_E3J2nFGb42VDVaDO
Content-Type: application/pgp-signature

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.7 (GNU/Linux)

iD8DBQFC3nDQnhRzXSM7nSkRAmyvAJ93egsK96cJgO3q3oreV4ZvenFp5wCfRZeK
sstdVXvVkD/Iu8U6Ei0OwOM=
=MARK
-----END PGP SIGNATURE-----

--Signature_Wed__20_Jul_2005_17_42_07_+0200_E3J2nFGb42VDVaDO--
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/