diff options
| author | Richard Qin <richard.qin.x@gmail.com> | 2026-01-01 15:04:47 +0800 |
|---|---|---|
| committer | Richard Qin <richard.qin.x@gmail.com> | 2026-01-01 15:04:47 +0800 |
| commit | 2dde56422dcfb94affee2baffc8d240ad16ad4b2 (patch) | |
| tree | aeee8a0dad24ceaca22585f773411e386c8019be /src/kernel/main.cc | |
| parent | 0a6815b7143a8ffd0e09777b5fbd12098d8884c2 (diff) | |
| download | lume-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.cc | 7 |
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"); } |
