riscv: 初始化irq (#560)

完成riscv的irqchip初始化的代码。

这是该功能的第一个PR。由于还需要实现timer驱动才能测试,因此该功能将会通过2~3个PR来完成。
This commit is contained in:
LoGin
2024-03-05 17:22:04 +08:00
committed by GitHub
parent bc6f0a967c
commit 338f690326
21 changed files with 995 additions and 67 deletions

View File

@ -5,7 +5,10 @@ use crate::{
exception::ipi::{IpiKind, IpiTarget},
};
use self::cpu::ProcessorId;
use self::{
core::smp_get_processor_id,
cpu::{smp_cpu_manager_init, ProcessorId},
};
pub mod c_adapter;
pub mod core;
@ -29,3 +32,11 @@ pub trait SMPArch {
/// 该函数需要标记为 `#[inline(never)]`
fn init() -> Result<(), SystemError>;
}
/// 早期SMP初始化
#[inline(never)]
pub fn early_smp_init() -> Result<(), SystemError> {
smp_cpu_manager_init(smp_get_processor_id());
return Ok(());
}