From 911922c6a37064a3de878643f95e2be4b7572e40 Mon Sep 17 00:00:00 2001 From: Bananymous Date: Wed, 31 May 2023 00:34:21 +0300 Subject: [PATCH] Kernel: RSDP location is now done with virtual addresses --- kernel/kernel/ACPI.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/kernel/kernel/ACPI.cpp b/kernel/kernel/ACPI.cpp index 04cc9b289..7296af10b 100644 --- a/kernel/kernel/ACPI.cpp +++ b/kernel/kernel/ACPI.cpp @@ -82,7 +82,7 @@ namespace Kernel static const RSDP* locate_rsdp() { // Look in main BIOS area below 1 MB - for (uintptr_t addr = 0x000E0000; addr < 0x000FFFFF; addr += 16) + for (uintptr_t addr = P2V(0x000E0000); addr < P2V(0x000FFFFF); addr += 16) if (is_rsdp(addr)) return (const RSDP*)addr; return nullptr; @@ -120,8 +120,8 @@ namespace Kernel else { const RSDT* rsdt = (const RSDT*)(uintptr_t)rsdp->rsdt_address; - PageTable::kernel().identity_map_page((uintptr_t)rsdt, PageTable::Flags::Present); - BAN::ScopeGuard _([rsdt] { PageTable::kernel().unmap_page((uintptr_t)rsdt); }); + PageTable::kernel().identity_map_page((vaddr_t)rsdt, PageTable::Flags::Present); + BAN::ScopeGuard _([rsdt] { PageTable::kernel().unmap_page((vaddr_t)rsdt); }); if (memcmp(rsdt->signature, "RSDT", 4) != 0) return BAN::Error::from_error_code(ErrorCode::ACPI_RootInvalid);