mirror of
https://github.com/panpaul/tiny_os
synced 2024-09-20 01:35:19 +08:00
feat: kernel/entry: wire up intc setup
This commit is contained in:
parent
bb54000486
commit
9b2cca3f69
@ -1,8 +1,11 @@
|
||||
use crate::logging::set_log_level;
|
||||
use crate::plat::console::{set_console, ConsoleDriver};
|
||||
use crate::plat::lowlevel::{Hardware, LowLevel};
|
||||
use crate::plat::timer::{Timer, TimerOps};
|
||||
use crate::plat::trap::{Trap, TrapOps};
|
||||
use crate::plat::{
|
||||
console::{set_console, ConsoleDriver},
|
||||
irq::{set_irq_driver, IrqDriver},
|
||||
lowlevel::{Hardware, LowLevel},
|
||||
timer::{Timer, TimerOps},
|
||||
trap::{Trap, TrapOps},
|
||||
};
|
||||
use crate::root::setup_root_server;
|
||||
use crate::scheduler::{IDLE_THREAD, SCHEDULER};
|
||||
use core::cell::Cell;
|
||||
@ -23,6 +26,7 @@ pub fn rust_main() -> ! {
|
||||
|
||||
set_log_level(&fdt);
|
||||
setup_console(&fdt);
|
||||
setup_intc(&fdt);
|
||||
|
||||
info!("Kernel Started");
|
||||
|
||||
@ -58,3 +62,10 @@ fn setup_console(fdt: &Fdt) {
|
||||
Some(driver) => set_console(driver),
|
||||
}
|
||||
}
|
||||
|
||||
fn setup_intc(fdt: &Fdt) {
|
||||
match fdt.all_nodes().find_map(|node| IrqDriver::new(node, fdt)) {
|
||||
None => error!("No compatible interrupt controller found! System may not work properly"),
|
||||
Some(driver) => set_irq_driver(driver),
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user