From b047e41327f71f11a71fbe896f556c22ef96f004 Mon Sep 17 00:00:00 2001 From: Stefano Ceccherini Date: Fri, 10 Jun 2011 12:59:14 +0000 Subject: [PATCH] Map the whole table also in acpi_check_rsdt(). Also print the table revision, after the vendor. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42084 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/system/boot/platform/bios_ia32/acpi.cpp | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/system/boot/platform/bios_ia32/acpi.cpp b/src/system/boot/platform/bios_ia32/acpi.cpp index f05ccedad0..a38387438c 100644 --- a/src/system/boot/platform/bios_ia32/acpi.cpp +++ b/src/system/boot/platform/bios_ia32/acpi.cpp @@ -39,7 +39,8 @@ static int32 sNumEntries = -1; static status_t acpi_check_rsdt(acpi_rsdp* rsdp) { - TRACE(("acpi: found rsdp at %p oem id: %.6s\n", rsdp, rsdp->oem_id)); + TRACE(("acpi: found rsdp at %p oem id: %.6s\n, rev %d", + rsdp, rsdp->oem_id, rsdp->revision)); TRACE(("acpi: rsdp points to rsdt at 0x%lx\n", rsdp->rsdt_address)); // map and validate the root system description table @@ -55,7 +56,13 @@ acpi_check_rsdt(acpi_rsdp* rsdp) return B_ERROR; } - sAcpiRsdt = rsdt; + // Map the whole table, not just the header + uint32 length = rsdt->length; + mmu_free(rsdt, sizeof(acpi_descriptor_header)); + + sAcpiRsdt = (acpi_descriptor_header*)mmu_map_physical_memory(rsdp->rsdt_address, + length, kDefaultPageFlags); + return B_OK; }