summaryrefslogtreecommitdiff
path: root/src/kernel/main.cc
diff options
context:
space:
mode:
authorRichard Qin <richard.qin.x@gmail.com>2026-01-01 15:04:47 +0800
committerRichard Qin <richard.qin.x@gmail.com>2026-01-01 15:04:47 +0800
commit2dde56422dcfb94affee2baffc8d240ad16ad4b2 (patch)
treeaeee8a0dad24ceaca22585f773411e386c8019be /src/kernel/main.cc
parent0a6815b7143a8ffd0e09777b5fbd12098d8884c2 (diff)
downloadlume-2dde56422dcfb94affee2baffc8d240ad16ad4b2.tar.gz
lume-2dde56422dcfb94affee2baffc8d240ad16ad4b2.tar.xz
dev(device): implement VirtIO
See dev log for detail
Diffstat (limited to 'src/kernel/main.cc')
-rw-r--r--src/kernel/main.cc7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/kernel/main.cc b/src/kernel/main.cc
index 081ab3e..6e3bdde 100644
--- a/src/kernel/main.cc
+++ b/src/kernel/main.cc
@@ -1,6 +1,8 @@
#include "common/types.h"
#include "kernel/riscv.h"
#include "drivers/uart.h"
+#include "drivers/plic.h"
+#include "drivers/virtio.h"
#include "kernel/pmm.h"
#include "kernel/mm.h"
#include "kernel/proc.h"
@@ -8,7 +10,6 @@
#include "kernel/timer.h"
#include "kernel/cpu.h"
-// 引用外部 FDT 初始化函数
extern void fdt_init(uint64 dtb);
extern uint64 g_dtb_addr;
@@ -30,6 +31,9 @@ extern "C" void kernel_main(uint64 hartid, uint64 dtb)
VM::kvminithart(); // Enable MMU
Trap::init(); // Trap Management
Trap::inithart();
+ PLIC::init();
+ PLIC::inithart();
+ VirtIO::init();
Timer::init();
ProcManager::init(); // Process Management
ProcManager::user_init(); // Initialize first user process
@@ -45,6 +49,7 @@ extern "C" void kernel_main(uint64 hartid, uint64 dtb)
VM::kvminithart();
Trap::inithart();
+ PLIC::inithart();
Timer::init();
Drivers::uart_puts("[Boot] Hart started.\n");
}