mirror of
https://github.com/panpaul/tiny_os
synced 2024-09-20 09:45: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::logging::set_log_level;
|
||||||
use crate::plat::console::{set_console, ConsoleDriver};
|
use crate::plat::{
|
||||||
use crate::plat::lowlevel::{Hardware, LowLevel};
|
console::{set_console, ConsoleDriver},
|
||||||
use crate::plat::timer::{Timer, TimerOps};
|
irq::{set_irq_driver, IrqDriver},
|
||||||
use crate::plat::trap::{Trap, TrapOps};
|
lowlevel::{Hardware, LowLevel},
|
||||||
|
timer::{Timer, TimerOps},
|
||||||
|
trap::{Trap, TrapOps},
|
||||||
|
};
|
||||||
use crate::root::setup_root_server;
|
use crate::root::setup_root_server;
|
||||||
use crate::scheduler::{IDLE_THREAD, SCHEDULER};
|
use crate::scheduler::{IDLE_THREAD, SCHEDULER};
|
||||||
use core::cell::Cell;
|
use core::cell::Cell;
|
||||||
@ -23,6 +26,7 @@ pub fn rust_main() -> ! {
|
|||||||
|
|
||||||
set_log_level(&fdt);
|
set_log_level(&fdt);
|
||||||
setup_console(&fdt);
|
setup_console(&fdt);
|
||||||
|
setup_intc(&fdt);
|
||||||
|
|
||||||
info!("Kernel Started");
|
info!("Kernel Started");
|
||||||
|
|
||||||
@ -58,3 +62,10 @@ fn setup_console(fdt: &Fdt) {
|
|||||||
Some(driver) => set_console(driver),
|
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