aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFelix Morgner <felix.morgner@ost.ch>2026-04-08 14:15:56 +0200
committerFelix Morgner <felix.morgner@ost.ch>2026-04-08 14:15:56 +0200
commit1c52a859d105f6b0f8afb16565b10435fa728882 (patch)
treedbc26b65177098aa7d70b567399ac3f468a00e72
parent878852c94c4d56f303366cec177b3edef9b3b9c5 (diff)
downloadteachos-1c52a859d105f6b0f8afb16565b10435fa728882.tar.xz
teachos-1c52a859d105f6b0f8afb16565b10435fa728882.zip
kapi: fix mmio initialization
-rw-r--r--arch/x86_64/kapi/memory.cpp1
-rw-r--r--kernel/src/main.cpp6
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())