feat: Add HVM boot support for x86_64 (#953)

Signed-off-by: longjin <longjin@DragonOS.org>
This commit is contained in:
LoGin
2024-10-09 21:36:18 +08:00
committed by GitHub
parent a8753f8fff
commit 59a6bcf6ae
24 changed files with 696 additions and 826 deletions

View File

@ -8,7 +8,10 @@ use alloc::{boxed::Box, collections::LinkedList, string::String, sync::Arc};
use system_error::SystemError;
use crate::{
driver::{serial::serial8250::send_to_default_serial8250_port, video::video_refresh_manager},
driver::{
serial::serial8250::send_to_default_serial8250_port,
video::{has_video_refresh_manager, video_refresh_manager},
},
libs::{lib_ui::textui::textui_is_enable_put_to_window, rwlock::RwLock, spinlock::SpinLock},
mm::{mmio_buddy::MMIOSpaceGuard, VirtAddr},
};
@ -430,9 +433,10 @@ pub fn scm_reinit() -> Result<(), SystemError> {
#[allow(dead_code)]
fn true_scm_reinit() -> Result<(), SystemError> {
video_refresh_manager()
.video_reinitialize(false)
.expect("video reinitialize failed");
if !has_video_refresh_manager() {
return Err(SystemError::ENODEV);
}
video_refresh_manager().video_reinitialize(false)?;
// 遍历当前所有使用帧缓冲区的框架,更新地址
let device_buffer = video_refresh_manager().device_buffer().clone();