summaryrefslogtreecommitdiff
path: root/na/drivers/plic.cc
diff options
context:
space:
mode:
Diffstat (limited to 'na/drivers/plic.cc')
-rw-r--r--na/drivers/plic.cc24
1 files changed, 24 insertions, 0 deletions
diff --git a/na/drivers/plic.cc b/na/drivers/plic.cc
new file mode 100644
index 0000000..f640a2a
--- /dev/null
+++ b/na/drivers/plic.cc
@@ -0,0 +1,24 @@
+/* SPDX-License-Identifier: GPL-2.0-or-later */
+/* Copyright (C) 2026 Richard Qin */
+
+/*
+ * plic.cc — Platform-Level Interrupt Controller stub
+ */
+
+#include <lume/fdt.h>
+#include <lume/vmm.h>
+#include <arch/config.h>
+
+void plic_init() {
+ /*
+ * In a fully implemented driver, we would discover the PLIC base
+ * and size via FDT. For now, we map the default QEMU virt PLIC.
+ */
+ uint64 plic_pa = arch::kDefaultPlicPA;
+ /* QEMU virt PLIC is 0x4000000 in size */
+ vmm_map_kernel_mmio(plic_pa, 0x4000000);
+}
+
+void plic_init_ap() {
+ /* AP per-CPU init */
+}