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

@ -409,12 +409,22 @@ pub fn scm_disable_put_to_window() {
/// 当内存管理单元被初始化之后,重新处理帧缓冲区问题
#[inline(never)]
pub fn scm_reinit() -> Result<(), SystemError> {
let r = true_scm_reinit();
if r.is_err() {
send_to_default_serial8250_port("scm reinit failed.\n\0".as_bytes());
#[cfg(target_arch = "x86_64")]
{
let r = true_scm_reinit();
if r.is_err() {
send_to_default_serial8250_port("scm reinit failed.\n\0".as_bytes());
}
return r;
}
#[cfg(not(target_arch = "x86_64"))]
{
return Ok(());
}
return r;
}
#[allow(dead_code)]
fn true_scm_reinit() -> Result<(), SystemError> {
video_refresh_manager()
.video_reinitialize(false)

View File

@ -1085,6 +1085,7 @@ pub fn textui_putstr(
/// 初始化text ui框架
#[inline(never)]
pub fn textui_init() -> Result<i32, SystemError> {
#[cfg(target_arch = "x86_64")]
textui_framwork_init();
return Ok(0);