riscv64: 映射uefi systemtable,并完善了riscv64页表填写的部分内容 (#498)

* 从fdt的chosen段获取几个需要的字段

* merge patch-early-ioremap

* feature: 增加early io remap的fixmap功能

允许在内存管理初始化之前,使用fixmap功能,映射一些物理内存,并记录.

* riscv64: 映射uefi systemtable,并完善了riscv64页表填写的部分内容

* 更新仓库网址
This commit is contained in:
LoGin
2024-01-21 15:38:12 +08:00
committed by GitHub
parent 3e3c6316aa
commit 7a29d4fcbc
29 changed files with 894 additions and 91 deletions

View File

@ -284,6 +284,11 @@ impl MemoryManagementArch for X86_64MMArch {
return None;
}
}
#[inline(always)]
fn make_entry(paddr: PhysAddr, page_flags: usize) -> usize {
return paddr.data() | page_flags;
}
}
impl X86_64MMArch {
@ -334,8 +339,6 @@ impl X86_64MMArch {
}
total_mem_size += mb2_mem_info[i].len as usize;
// PHYS_MEMORY_AREAS[areas_count].base = PhysAddr::new(mb2_mem_info[i].addr as usize);
// PHYS_MEMORY_AREAS[areas_count].size = mb2_mem_info[i].len as usize;
mem_block_manager()
.add_block(
@ -450,7 +453,7 @@ unsafe fn allocator_init() {
// 取消最开始时候在head.S中指定的映射(暂时不刷新TLB)
{
let table = mapper.table();
let empty_entry = PageEntry::<MMArch>::new(0);
let empty_entry = PageEntry::<MMArch>::from_usize(0);
for i in 0..MMArch::PAGE_ENTRY_NUM {
table
.set_entry(i, empty_entry)