Open chyyuu opened 5 years ago
in arch/riscv32/paging.rs // Set kernel identity map p2[0x40].set(Frame::of_addr(PhysAddr::new(0x10000000)), ......); p2[KERNEL_PML4].set(Frame::of_addr(PhysAddr::new((KERNEL_PML4 as u32) << 22)),......); p2[KERNEL_PML4 + 1].set(Frame::of_addr(PhysAddr::new((KERNEL_PML4 as u32 + 1) << 22)),......);
What's the meaning of these mappings?
@wangrunji0408
0x40 -- 1^6 <<22 E.Q. 1^28 == 0x10000000 --1^28 后面又映射了两个4M 这样一共映射了12MB空间
in arch/riscv32/paging.rs
// Set kernel identity map p2[0x40].set(Frame::of_addr(PhysAddr::new(0x10000000)), ......); p2[KERNEL_PML4].set(Frame::of_addr(PhysAddr::new((KERNEL_PML4 as u32) << 22)),......); p2[KERNEL_PML4 + 1].set(Frame::of_addr(PhysAddr::new((KERNEL_PML4 as u32 + 1) << 22)),......);
What's the meaning of these mappings?
@wangrunji0408