sparreal_kernel/driver/
mod.rs1use crate::{globals::global_val, irq, platform, time};
2use log::debug;
3pub use rdrive::*;
4pub use sparreal_macros::module_driver;
5
6pub fn init() {
7 let info = match &global_val().platform_info {
8 crate::globals::PlatformInfoKind::DeviceTree(fdt) => DriverInfoKind::Fdt {
9 addr: fdt.get_addr(),
10 },
11 };
12
13 rdrive::init(info);
14
15 rdrive::register_append(&platform::module_registers());
16
17 debug!("add registers");
18
19 rdrive::probe_intc().unwrap();
20
21 irq::init_main_cpu();
22
23 rdrive::probe_timer().unwrap();
24
25 time::init_current_cpu();
26}
27
28pub fn probe() {
29 rdrive::probe().unwrap();
30}