sparreal_kernel/driver/
mod.rs

1use 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}