diff options
| author | Felix Morgner <felix.morgner@ost.ch> | 2026-04-08 14:15:56 +0200 |
|---|---|---|
| committer | Felix Morgner <felix.morgner@ost.ch> | 2026-04-08 14:15:56 +0200 |
| commit | 1c52a859d105f6b0f8afb16565b10435fa728882 (patch) | |
| tree | dbc26b65177098aa7d70b567399ac3f468a00e72 | |
| parent | 878852c94c4d56f303366cec177b3edef9b3b9c5 (diff) | |
| download | teachos-1c52a859d105f6b0f8afb16565b10435fa728882.tar.xz teachos-1c52a859d105f6b0f8afb16565b10435fa728882.zip | |
kapi: fix mmio initialization
| -rw-r--r-- | arch/x86_64/kapi/memory.cpp | 1 | ||||
| -rw-r--r-- | kernel/src/main.cpp | 6 |
2 files changed, 5 insertions, 2 deletions
diff --git a/arch/x86_64/kapi/memory.cpp b/arch/x86_64/kapi/memory.cpp index 853639c..5f12e5c 100644 --- a/arch/x86_64/kapi/memory.cpp +++ b/arch/x86_64/kapi/memory.cpp @@ -245,7 +245,6 @@ namespace kapi::memory [](auto const & region) { return region.base + region.size_in_B; })); init_pmm(frame::containing(physical_address{highest_byte}).number() + 1, handoff_to_kernel_pmm); - init_mmio(mmio_base, 1_GiB / page::size); kstd::println("[x86_64:MEM] Releasing bootstrap memory allocators."); region_based_allocator.reset(); diff --git a/kernel/src/main.cpp b/kernel/src/main.cpp index e704955..4b61948 100644 --- a/kernel/src/main.cpp +++ b/kernel/src/main.cpp @@ -19,11 +19,14 @@ #include <kstd/memory> #include <kstd/os/error.hpp> #include <kstd/print> +#include <kstd/units> #include <kstd/vector> #include <algorithm> #include <cstddef> +using namespace kstd::units_literals; + auto test_device_names() -> void { auto storage_mgmt = kernel::devices::storage::management::get(); @@ -177,8 +180,9 @@ auto main() -> int kapi::memory::init(); kernel::memory::init_heap(kapi::memory::heap_base); - kstd::println("[OS] Memory subsystem initialized."); kapi::system::memory_initialized(); + kapi::memory::init_mmio(kapi::memory::mmio_base, 1_GiB / kapi::memory::page::size); + kstd::println("[OS] Memory subsystem initialized."); auto acpi_root_pointer = kapi::acpi::get_root_pointer(); if (acpi_root_pointer && acpi_root_pointer->validate()) |
